具有最小绝对值的Python纸浆优化器

时间:2016-05-23 09:11:39

标签: python mathematical-optimization linear-programming integer-programming pulp

我正在使用纸浆(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时,它不起作用。 有人有这样的问题吗?

1 个答案:

答案 0 :(得分:1)

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

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