【发布时间】:2013-10-21 13:24:55
【问题描述】:
我想使用 ILP 求解器(例如 lp_solve)来找到优化问题的解决方案。
挑战在于某些约束过于复杂,无法正式化为线性语句,但可以使用模拟框架进行验证。
所以我需要运行求解器,对照我的复杂约束检查解决方案,如果他们不满意,继续使用 次优 解决方案等。
是否有求解器不仅提供最优解,而且提供关于给定目标函数的最佳 n 个解?
【问题讨论】:
我想使用 ILP 求解器(例如 lp_solve)来找到优化问题的解决方案。
挑战在于某些约束过于复杂,无法正式化为线性语句,但可以使用模拟框架进行验证。
所以我需要运行求解器,对照我的复杂约束检查解决方案,如果他们不满意,继续使用 次优 解决方案等。
是否有求解器不仅提供最优解,而且提供关于给定目标函数的最佳 n 个解?
【问题讨论】:
是的,有:
求解器通过解决方案池支持它,
或者您必须通过求解器的 API 提供的回调函数自己构建这个求解池。
在后一种情况下,只要找到一个新的、比当时最好的解决方案更好的解决方案,就会调用相应的回调函数。我所知道的所有著名求解器都支持第二个选项。
关于这个主题的更多信息:
【讨论】:
lpsolve,但this声称由于分支切割不可能得到最好的n个解决方案。
lp_solve API,所以我不能告诉你更多关于这个特定解决方案的信息。