无法找出在gurobi中做我想做的优化功能吗?

时间:2017-12-30 22:40:08

标签: python optimization gurobi

我试图制作一个位于优化位置的立方体矩阵。目前,我想阻止该程序将太多相同的程序放在一起。

对于12个可用选项,

vars是x,y坐标和12维度的3d数组,以及用于将该值放在特定x,y槽中的二元决策变量。

我删除了优化功能的其他部分并留下了这个麻烦的部分:

m.setObjective(quicksum((-(vars[x,y,z]**3-vars[x,y,z]**2)/20) 
for x0 in range(1,3) 
for y0 in range(1,3) 
for x in range(x0*ed) 
for y in range(y0*ed) 
for z in range(12))) 

请注意,这通常都在一条线上,为了您的方便和我的分手。这种在gurobi quicksum中进行循环的方法有效,我不知道为什么,也不确定它是否在gurobi之外起作用。

无论如何,我得到了**或pow()的"不支持的操作数类型:' Var'和' int'"功能部分的错误(** 3和** 2)。

但是忽略了这一点,我甚至不知道代码是否正在做我想要它做的事情,那么为什么错误是正确的呢?我认为它总结的变量是相同的z并且在" ed"彼此之间的距离然后从目标函数中减去它们的值^ 3值^ 2的量。但我对此表示怀疑。有什么建议吗?

我不想做约束,因为我想允许三个或更多相同类型的可能性,如果它是最佳的,那么没有理由完全否定它。我的目标是惩罚太多特定类型的功能。

我试图阻止此处显示的群集:

https://imgur.com/a/fN82f

0 个答案:

没有答案