【问题标题】:How to code a linear combination in Gurobi如何在 Gurobi 中编写线性组合
【发布时间】:2018-10-18 20:24:18
【问题描述】:

我找到了以下示例,说明如何编写约束“所有 a_{i,j}*x_{i,j} 与 J 的 j 元素的总和对于 I 中的所有 i 而言

\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, '*' 的这个组合告诉我什么?

【问题讨论】:

  • 在不知道a 是什么的情况下很难正确回答您的问题。你能提供整个例子吗?此外,我认为应该是m.addConstrs 而不是m.addConstr
  • here 是我正在阅读的演示文稿的链接。我正在谈论的示例在幻灯片 27 上(隐式)

标签: mathematical-optimization gurobi


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    • 2012-04-09
    • 1970-01-01
    • 2021-05-15
    • 2011-08-01
    相关资源
    最近更新 更多