根据其他变量定义Gurobi变量

我正在将Gurobi 9.0.0与Python API配合使用来解决MIP。我坚持表达基于另一个变量定义的变量。

具体来说,我为变量x[i]定义了一个变量i。现在,我想创建一个变量y[i],它是x[i]的定义范围内x[i+1]i之间的绝对差。最终目标是使目标中所有y的最大i最小。

我尝试如下定义变量:

y[i] = model.addVar(abs_(x[i] - x[i+1]) for i in range(i_range - 1))

但是Gurobi抛出了错误

File "model.pxi",line 2562,in gurobipy.Model.addVar
TypeError: must be real number,not GenExpr

直接基于x定义目标而没有y也会给我带来错误。

这必须是一个非常典型的用例。如何在Gurobi中正确定义它?

jiangyao112 回答:根据其他变量定义Gurobi变量

请注意,在if(mouseLook.y>-40 && mouseLook.y<60) transform.localRotation = Quaternion.AngleAxis (-mouseLook.y,Vector3.right); 部分,您尝试使用命令添加单个变量,但以生成器表达式(即由AddVar(abs_(x[i] - x[i+1] for range(i_range - 1)索引的多个表达式)作为参数。这会导致您遇到错误。

添加这样的定义的常见步骤是添加两个变量,i作为实数(自由符号)变量和y非负变量,它们都与{{1} },然后添加以下约束:

z

x

本文链接:https://www.f2er.com/2786804.html

大家都在问