0

我正在使用纸浆(https://pythonhosted.org/PuLP/)进行优化并遇到问题。我需要使用类似的约束abs(x) > MIN,我在这里找到了解决方案http://lpsolve.sourceforge.net/5.5/absolute.htm,我只创建了两个约束:

x + M * B >= MIN
-x + M * (1 - B) >= MIN

其中 B 为 0 或 1 且 M 值足够大。问题是当我使用 M ~ 10000 时一切正常,但是当我使用 INT_MAX_VALUE 或 ~ 10000000000 时它不起作用。有没有人遇到过这样的问题?

4

1 回答 1

1

也许你用 COIN-CBC 会更好。我在另一篇文章中看到了您的数字问题,它似乎只是来自一些 VUB 约束。

首先,CBC 后面的 LP 求解器(CLP)比 GLPK 更精细,其次你可以使用SOS 约束,它对这些 VUB 约束进行建模,你想更好地用于你的 abs-Function(没有任何数字危险,它只是将它们分支出来)。总体而言,性能通常更好。随时跟进我的回答并评论问题。

于 2016-05-25T09:25:10.580 回答