来自lis的Gurobi Python addConstr sum子集

2024-09-27 19:25:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个约束,对棋盘的对角线求和。其思想是每个对角线只能有一个片段,因此变量是二进制的[0,1]。有没有办法用一个列表来子集变量?你知道吗

我试过了

x.sum(Diag_list)

x.sum([a,b for a,b in Diag_List])

我能想到的其他组合。你知道吗

如果我做x.sum[0,0],我只得到点(0,0),但是如果你做x.sum([0,0]),你得到沿0列轴或0行轴的任何点。你知道吗


Tags: in列表for棋盘二进制子集listdiag
1条回答
网友
1楼 · 发布于 2024-09-27 19:25:02

tuplelist.sum()函数是一个方便的函数,用于对单个变量进行切片。你可以用来限制一辆车在棋盘上的位置。要限制皇后的位置,需要使用生成器表达式和quicksum()函数进行更复杂的求和:

m.addConstr(quicksum(x[a,b] for a,b in Diag_List) <= 1)

相关问题 更多 >

    热门问题