解决带有约束的离散矩阵的最小化问题

Solving minimization problem over discrete matrices with constraints

我正在尝试用 python 解决订单最小化问题。因此,我将 M 个订单分配给 N 个工人。每个工人都有一个基本能量水平 X_i,收集在向量 X 中。此外,每个订单都有特定的能量消耗 E_j,收集在 E 中。话虽如此,我正在努力解决以下问题

其中 Y 是某个最佳能量水平,范数为 2 范数。在约束下,任何列加起来正好是一,因为订单应该完成并且只能由一名工人完成。我查看了 scipy.optimize,但据我所知它似乎不支持这种优化。

是否知道 Python 中用于此类离散优化问题的任何工具?

答案取决于规范。如果你想要 2-范数,这是一个 MIQP(混合整数二次规划)问题。它是凸的,所以周围有很多求解器(例如 Cplex、Gurobi、Xpress——这些都是商业求解器)。它也可以由 BonMin(开源)等 MINLP 求解器处理。一些可以提供帮助的建模工具是 Pyomo 和 CVXPY。

如果你想要 1-范数,这可以表述为线性 MIP(混合整数规划)模型。有很多 MIP 求解器,例如 Cplex、Gurobi、Xpress(商业)和 CBC、GLPK(开源)。一些建模工具是 Pyomo、CVXPY 和 PuLP。