gurobi约束防止重复解

0 投票
1 回答
15 浏览
提问于 2025-04-12 18:56

我想从我的 Gurobi 优化 MIP 模型中创建多个最佳解决方案,但不想使用 PoolMode。我的模型是用来生成最佳的 NBA DFS 阵容的。其中一个约束条件确保一个球员在所有解决方案中不会出现超过三分之一。我想添加另一个约束,检查当前的解决方案是否已经存在于另一个名为 created_lineups 的列表中。我该怎么做呢?

我尝试了这个:

m.addConstrs((set([x for x in player_pos_map if y[x].X == 1]) != set(i) for i in created_lineups), name='unique_lineup')

但是我遇到了这个错误:

点击这里查看错误图片

1 个回答

0

你在抱怨 set( ... ) 这个东西不能被哈希。

其实,我们可以简单地用 tuple(sorted(set( ... ))) 这个表达式来解决。

不过,你可能需要考虑一下你的更高层次的目标是怎么跟这个问题结合在一起的。

撰写回答