Cplex 中基于列的建模

Column based modelling in Cplex

我正在尝试使用 Cplex 求解 java 中的模型。我必须为此使用基于列的建模。我的问题类似于以下问题:

minimize 500x1 - x2
subject to   5x1 <= 10
             5x1 - 3x2 <=10

我知道我必须为每个决策变量创建一个新列。但是为了添加第二个约束,我需要为 x1 创建一个新列还是可以使用我用于第一个约束的同一列?

如果你做了显而易见的事情,它应该就会起作用。一个有用的技巧是让 CPLEX 将其内部模型写成相对容易阅读的 LP 文件,然后您可以检查该模型是否符合您的预期。我仍然发现以更代数的方式编写我的模型要容易得多,这类似于您将在保存的模型 LP 文件中获得的内容。通过显式更改矩阵中的系数来创建模型要复杂得多,因为它需要更加注意索引等。