如何在Gurobi中编码线性组合

时间:2018-10-18 20:24:18

标签: mathematical-optimization gurobi

我发现以下示例有关如何对约束进行编码:“对于I中的所有i,所有具有J的j元素的a_ {i,j} * x_ {i,j}的总和<= 5”。 (对不起,我不知道如何用代码正确地编写此代码,这是第一次尝试):

\sum{a_{i,j}*x_{i,j}} <= 5 

在Gurobi python中:

m.addConstr(x.prod(a,i,'*') <=5 for i in I)

如果有人可以向我解释这一表达,我将不胜感激!

这是我的理解: m通常用作存储模型的变量,在程序中,我们将从m = Model()开始创建一个空模型。 我们用addConstr()添加一个约束,并且x必须作为变量引入。 x.prod()方法创建其参数的线性组合。但是,我不知道如何解释这三个参数a, i, '*' i是for循环的一部分,它从1开始,然后递增1,直到到达I的最后一个元素。 “ *”用作通配符,将仅处理任何元素。但是a, i, '*'的组合告诉我什么?

1 个答案:

答案 0 :(得分:0)

a是一个参数,具有两个索引i,j。 '*'表示所有j。使用'*',就不需要j的“ for循环”,i则不需要“ for循环”。您可以在带有两个“ for循环”的slayt上以显式形式看到它。