混合整数线性规划中如何处理单次事件(机器处置与采购)成本?
混合整数线性规划模型中添加单次事件成本的方法
问题背景
初始时刻t=0时,拥有x=(1,2,...,10)台机器。计划在运营周期t=(0,1,2,...,100)内采购新机器和/或处置现有机器,目标是最小化总成本,成本包含:
- 机器每日固定成本
- 可变运行成本
- 现有机器处置成本(单次事件成本)
- 新机器采购成本(单次事件成本)
已定义变量
A = 某台现有机器在指定日期是否运行(二进制变量) B = 某台现有机器是否可用(二进制变量) C = 某台新机器在指定日期是否运行(二进制变量) D = 某台新机器是否可用(二进制变量)
已有约束
机器可用才可投入运行:
A ≤ BC ≤ D
核心需求
如何在上述模型中添加现有机器处置成本与新机器采购成本这类单次事件成本?
解决方案
1. 新增二进制变量捕捉单次事件
- 定义
E_i:第i台现有机器是否被处置(二进制变量,E_i=1表示处置,E_i=0表示保留) - 定义
F_j:第j台新机器是否被采购(二进制变量,F_j=1表示采购,F_j=0表示未采购)
2. 关联变量与现有状态约束
- 对于现有机器:若某台机器被处置(
E_i=1),则从处置时刻起永久不可用,添加约束:B_{i,t} ≤ 1 - E_i(对所有运营时刻t),确保处置后该机器不再处于可用状态。 - 对于新机器:若某台新机器被采购(
F_j=1),则从采购时刻起变为可用,若设定采购后立即可用,添加约束:D_{j,t} ≥ F_j(对采购时刻及之后的所有t),同时D_{j,t}=0(对采购时刻之前的所有t)。
3. 在目标函数中加入单次事件成本
目标函数为总成本最小化,具体形式:
Minimize = (每日固定成本总和) + (可变运行成本总和) + (处置成本总和) + (采购成本总和)
其中:
- 处置成本总和:
Σ (Cost_dispose_i * E_i),Cost_dispose_i是第i台现有机器的单次处置成本 - 采购成本总和:
Σ (Cost_purchase_j * F_j),Cost_purchase_j是第j台新机器的单次采购成本
补充说明
如果需要精细化控制处置/采购的时间点,可以引入整数变量表示事件发生时刻(比如T_i为第i台机器的处置时刻,取值范围0 ≤ T_i ≤ 100),再通过约束关联状态变量与时间变量,还可适配不同时间点的成本差异。
内容的提问来源于stack exchange,提问作者incog-no-one
相关产品推荐
相关产品推荐

