如何使用单纯形方法动态定义约束?

问题描述

我尝试为我的问题正确编写线性规划模型。 我想最小化 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 和 { {1}} 是未知的,它们应该由我的 ILP 计算,所以我无法在编写标准表格时定义预算 w_j,并且在制定与标准表格相对应的第一个表格时!请问我该怎么做?!

Re: 我使用单纯形法 所有变量都是整数

解决方法

(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 是一个大 M:一个足够大的常数。通常我们可以将这些约束限制在 i<j 由于对称性的情况。