我尝试为我的问题正确编写一个线性编程模型。我想最小化的总和,w_i
我有以下约束:
(a_i+w_i ≤ w_j) XOR (a_j+w_j ≤ w_i)
a_i and a_j are integer constants
w_i and w_j are integer variables
在一般情况下,当我们写了系统的标准形式,我们有方程其中写部分代表最高或产品的最低数量,这个数量是明确的,但我的问题都w_i
和w_j
未知,应通过计算我的ILP,因此b
在编写标准表格时以及在制定与标准表格相对应的第一个表格时我无法定义预算!请问我该怎么做?
回复:我使用单纯形法,所有变量都是整数
(1)严格来说,单纯形法仅适用于连续问题。
(2)INEQ1 OR INEQ2
可以通过添加二进制变量来完成。我从未见过的模特INEQ1 XOR INEQ2
。我怀疑在你的情况下我们可以使用INEQ1 OR INEQ2
。
(3)OR通常建模为:
a(i)+w(i) ≤ w(j) + M*δ(i,j)
a(j)+w(j) ≤ w(i) + M*(1-δ(i,j))
δ(i,j) ∈ {0,1}
这M
是一个big-M:足够大的常数。通常,我们可以将这些约束限制i<j
为对称的情况。
是的,它是一个OR,我已经添加了二进制变量,但是问题是当我想制定与标准格式相对应的表时,应该由ILP计算w(i)和w(j),所以我该如何定义我桌子上的预算吗?
不确定您的“标准格式”是什么。这主要用于教科书的第1章,但是MIP模型的软件工具通常在接受方面更加灵活。