跳到内容
← 全部问题

如何用二元变量和月度预算约束来构建项目选择问题?

构建项目选择问题时,为每个项目定义一个二元决策变量 XiX_i,其中若选择项目 ii 则 Xi=1X_i = 1,否则为 00。构建目标函数以最大化总净回报,即将每个项目的回报与其对应的二元变量相乘后求和。为每个月添加线性不等式约束,确保所选项目的成本总和不超过该月的可用预算。

适用条件

  • 每个项目都有相关的成本和净回报。
  • 预算约束适用于特定的时间段(例如月份)。
  • 决策是二元的(选择或不选择)。

理解与推导

  1. 为每个项目 ii 定义二元变量 Xi∈{0,1}X_i \in \{0, 1\}。
  2. 识别每个项目的净回报。
  3. 构建目标函数:最大化 ∑(returni⋅Xi)\sum (\text{return}_i \cdot X_i)。
  4. 识别每个项目在每个时间段内的成本。
  5. 构建预算约束:对于每个时间段 tt,∑(costi,t⋅Xi)≤Budgett\sum (\text{cost}_{i,t} \cdot X_i) \le \text{Budget}_t。
  6. 指定域限制 Xi∈{0,1}X_i \in \{0, 1\}。

例子

对于四个回报分别为 217、125、88 和 109 的项目,目标是最大化 217X1+125X2+88X3+109X4217X_1 + 125X_2 + 88X_3 + 109X_4。一月预算约束为 58X1+44X2+26X3+23X4≤12058X_1 + 44X_2 + 26X_3 + 23X_4 \le 120。二月约束为 25X1+29X2+13X3+17X4≤8025X_1 + 29X_2 + 13X_3 + 17X_4 \le 80。三月约束为 43X1+25X2+23X3+29X4≤9543X_1 + 25X_2 + 23X_3 + 29X_4 \le 95。

容易误解的地方

  • 假设 XiX_i 可以取分数值(例如选择半个项目)。
  • 忘记包含二元约束 Xi∈{0,1}X_i \in \{0, 1\}。
  • 混淆目标函数系数(回报)与约束系数(成本)。

观看对应讲解

继续追问

答案依据视频资料生成并经过独立核验。若有疑问,请核对原视频或联系原作者。