将 Pyomo 与启发式求解器一起使用
Using Pyomo with heuristic solvers
我正在使用 Pyomo 为我的优化问题 (MILP) 建模并使用 Gurobi 解决它。
使用 Pyomo 模型找到启发式解决方案的最佳、最快或最简单的方法是什么,我不关心间隙边界。
注意:我知道 Gurobi 有一个启发式求解器,但它没有说明他们使用的是什么启发式算法!
寻找一些 MILP 问题的启发式解决方案在复杂性方面与优化它一样困难!
总的来说,没有最好、最快、最简单的方法。你总是想利用一些问题特征。
首先,只需使用任何 MIP 求解器并调整参数以反映您的需求。如果您只想要任何启发式解决方案,请调整求解器的可行性,这可能意味着更高频率的启发式步骤并提前停止第一个可行的解决方案。
是的,您不会知道 Gurobi 内部使用的是什么。但了解所有代码也无济于事。那肯定不是你可以在维基百科上找到的东西(除了 feasibility pump 或 Relaxation induced n小区s搜索).
如果您想了解更多关于这些方法的信息,请查看有关 MIP-heuristics general 的论文!您会看到,大多数启发式算法都与问题的 MIP 性质紧密相关(尽管我预计在商业问题中也会在内部使用一些 SAT 求解器)。
我正在使用 Pyomo 为我的优化问题 (MILP) 建模并使用 Gurobi 解决它。
使用 Pyomo 模型找到启发式解决方案的最佳、最快或最简单的方法是什么,我不关心间隙边界。
注意:我知道 Gurobi 有一个启发式求解器,但它没有说明他们使用的是什么启发式算法!
寻找一些 MILP 问题的启发式解决方案在复杂性方面与优化它一样困难!
总的来说,没有最好、最快、最简单的方法。你总是想利用一些问题特征。
首先,只需使用任何 MIP 求解器并调整参数以反映您的需求。如果您只想要任何启发式解决方案,请调整求解器的可行性,这可能意味着更高频率的启发式步骤并提前停止第一个可行的解决方案。
是的,您不会知道 Gurobi 内部使用的是什么。但了解所有代码也无济于事。那肯定不是你可以在维基百科上找到的东西(除了 feasibility pump 或 Relaxation induced n小区s搜索).
如果您想了解更多关于这些方法的信息,请查看有关 MIP-heuristics general 的论文!您会看到,大多数启发式算法都与问题的 MIP 性质紧密相关(尽管我预计在商业问题中也会在内部使用一些 SAT 求解器)。