0

我编写了一个算法,可以找到混合整数凸优化问题的可行点。现在我希望将它与MINLPlib 库中的测试平台上的混合整数非线性程序的可行性泵进行比较。

我可以通过 Pyomo 从Coin OR项目访问 BONMIN 求解器,该项目还实施了可行性泵。是此求解器的可能选项列表。

我的问题是

  1. 以下选项对于测试(普通香草)可行性泵是否正确?

    opt = SolverFactory('bonmin')
    opt.options['bonmin.algorithm'] = 'b-ifp' # Iterated Feasibility Pump as solver
    opt.options['bonmin.pump_for_minlp'] = 'yes' # Is this needed?
    opt.options['bonmin.solution_limit'] = '1' #For terminating after 1st feasible point
    

    如果没有,任何提示如何正确地做到这一点表示赞赏。

  2. 如何访问可行性泵的迭代次数(即泵送周期)?我可以在打印输出中看到迭代信息,但如果它存储在某个变量中,这将非常有帮助。
4

1 回答 1

1

Pyomo 通过 ASL(AMPL 求解器库)接口调用 Bonmin。因此,适用于 AMPL 的任何选项都应与此处适用的选项相同。

至于迭代信息,有多种方法可以捕获打印输出并对其进行解析以检索所需的信息。最直接的方法可能是将输出通过管道传输到文件并将其作为小型后处理脚本/函数的一部分读取。

于 2018-06-23T05:08:18.073 回答