整数线性程序中的变量优先级
prioritizing variables in an integer linear program
我想听听您的想法,我如何使用约束(不更改 objective 函数)在整数规划中确定变量的优先级。
考虑以下问题
Min x1+x2+x3+x4+5*x5+6*x6
subject to
x1+x2+x3+x4+x5+x6>=2
xi is {0,1}
解法清晰,两个任意变量
xj (j in{1,2,3,4}) should be 1.
现在,假设我有一个同时最大化的优先级函数,就像这个:
1*x1+2*x2+3*x3+4*x4+5*x5+6*x6.
有了这个,解决方案是唯一的:
x3=x4=1
如何通过约束(不是 objective 函数)将此优先级强制到我的 LP?
这本质上是一个多objective的问题。标准方法是:
第 1 步:求解
Min z = x1+x2+x3+x4+5*x5+6*x6
x1+x2+x3+x4+x5+x6>=2
x in {0,1}
设 z* 为最优值 objective。
第 2 步:现在求解
min 1*x1+2*x2+3*x3+4*x4+5*x5+6*x6
x1+x2+x3+x4+5*x5+6*x6 = z*
x1+x2+x3+x4+x5+x6>=2
x in {0,1}
我想听听您的想法,我如何使用约束(不更改 objective 函数)在整数规划中确定变量的优先级。 考虑以下问题
Min x1+x2+x3+x4+5*x5+6*x6
subject to
x1+x2+x3+x4+x5+x6>=2
xi is {0,1}
解法清晰,两个任意变量
xj (j in{1,2,3,4}) should be 1.
现在,假设我有一个同时最大化的优先级函数,就像这个:
1*x1+2*x2+3*x3+4*x4+5*x5+6*x6.
有了这个,解决方案是唯一的:
x3=x4=1
如何通过约束(不是 objective 函数)将此优先级强制到我的 LP?
这本质上是一个多objective的问题。标准方法是:
第 1 步:求解
Min z = x1+x2+x3+x4+5*x5+6*x6
x1+x2+x3+x4+x5+x6>=2
x in {0,1}
设 z* 为最优值 objective。
第 2 步:现在求解
min 1*x1+2*x2+3*x3+4*x4+5*x5+6*x6
x1+x2+x3+x4+5*x5+6*x6 = z*
x1+x2+x3+x4+x5+x6>=2
x in {0,1}