MINLP中的Python外部约束函数

时间:2017-12-13 10:22:08

标签: python numpy matrix constraints mixed-integer-programming

是否可以在Python中的混合整数非线性规划库中添加外部自定义函数作为动态约束?我正在使用布尔变量和Numpy矩阵(大小为m x n),其中我想最小化所请求的总值的总和(例如tot_vals = 2,3 ...... n)。因此,我想添加一些“空间”约束,我已经创建了函数(基于布尔索引),并尝试在我的优化过程中实现它们。在CVXPY中,它失败了,因为我只能添加CVXPY的格式化约束(据我所知),PULP失败,因为它仅适用于LP问题,也许可以选择Pyomo,OpenOpt或PySCIPopt?

提前感谢您的帮助

1 个答案:

答案 0 :(得分:0)

使用PySCIPOpt这是可能的。您需要创建一个自定义约束处理程序,该处理程序检查当前LP解决方案的可行性,并可能添加有效的不等式以避免下一个节点中的不可行性。

此过程的一个示例是PySCIPOpt中的TSP implementation。关于PySCIPOpt的this tutorial article也对此进行了更详细的解释。