Python 具有最小绝对值的纸浆优化剂
Python pulp optimizer with min absolute value
我正在使用纸浆(https://pythonhosted.org/PuLP/) for optimization purposes and get issue. I need to use constraint like abs(x) > MIN
and I found solution here 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 时它不起作用。
有人遇到过这样的问题吗?
也许您使用 COIN-CBC 会更好。我在另一个 post 中看到了你的数字问题,它似乎只是来自一些 VUB 约束。
首先,CBC 背后的 LP 求解器 (CLP) 比 GLPK 更精细,其次,您可以使用 SOS 约束,它模拟了这些 VUB 约束,您想要将其用于您的腹肌- 功能更好(没有任何数字危险,它只是将它们分支出来)。总体而言,性能通常更好。
欢迎关注我的回答并评论问题。
我正在使用纸浆(https://pythonhosted.org/PuLP/) for optimization purposes and get issue. I need to use constraint like abs(x) > MIN
and I found solution here 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 时它不起作用。 有人遇到过这样的问题吗?
也许您使用 COIN-CBC 会更好。我在另一个 post 中看到了你的数字问题,它似乎只是来自一些 VUB 约束。
首先,CBC 背后的 LP 求解器 (CLP) 比 GLPK 更精细,其次,您可以使用 SOS 约束,它模拟了这些 VUB 约束,您想要将其用于您的腹肌- 功能更好(没有任何数字危险,它只是将它们分支出来)。总体而言,性能通常更好。 欢迎关注我的回答并评论问题。