gpt4 book ai didi

python-3.x - 如何在 pyomo 中使用/选择/安装混合整数非线性求解器

转载 作者:行者123 更新时间:2023-12-03 23:12:33 32 4
gpt4 key购买 nike

在网上我可以读到用 pyomo 解决混合整数非线性问题是可能的。但我不明白怎么做。
我用“glpk”和“ipopt”求解器解决了问题,但两者都不适用于我当前的问题(ipopt 不尊重 bool 变量)。 (我还重建了问题以避免 bool 变量,但如果全局最优值为 0(在一维中),ipopt 只会向我显示远离 0 的局部最优值)。

我找到了这篇论文 http://egon.cheme.cmu.edu/Papers/Bernal_Chen_MindtPy_PSE2018Paper.pdf
展示 MindtPy,但我不知道如何安装它。
我阅读了许多可能的求解器,例如 BARON、ANTIGONE、SCIP、LINDOGLOBAL 和 COUENNE。但是我如何在 pyomo 中使用它们,如果可能的话,没有许可证,或者是否有其他可以推荐的解算器,它附带 pyomo 或 anaconda(或易于安装)。
非常感谢提前

最佳答案

我正在为 Pyomo(或 AMPL)开发一个免费的 MINLP 求解器,称为 APOPT。可以下载当前解决的版本NLP problems in Pyomo (MINLP not yet supported) .它将 .nl 问题发送到服务器,然后将 .sol 解决方案返回给 Pyomo。

我有使用 Python Gekko 解决 MINLP 问题的界面。这也是 Pyomo 求解器性能的预览。您可以使用以下方式安装 Gekko:
pip install gekko
或者,如果您在 Jupyter 笔记本中,则可以通过在单元格中运行以下命令来安装 Gekko(只需要一次):
!pip install gekko
下面是一个 MINLP 问题的例子:

from gekko import GEKKO
m = GEKKO() # Initialize gekko
m.options.SOLVER=1 # APOPT is an MINLP solver

# optional solver settings with APOPT
m.solver_options = ['minlp_maximum_iterations 500', \
# minlp iterations with integer solution
'minlp_max_iter_with_int_sol 10', \
# nlp sub-problem max iterations
'nlp_maximum_iterations 50', \
# maximum deviation from whole number
'minlp_integer_tol 0.05', \
# covergence tolerance
'minlp_gap_tol 0.01']

# Initialize variables
x1 = m.Var(value=1,lb=1,ub=5)
x2 = m.Var(value=5,lb=1,ub=5)
# Integer constraints for x3 and x4
x3 = m.Var(value=5,lb=1,ub=5,integer=True)
x4 = m.Var(value=1,lb=1,ub=5,integer=True)
# Equations
m.Equation(x1*x2*x3*x4>=25)
m.Equation(x1**2+x2**2+x3**2+x4**2==40)
m.Obj(x1*x4*(x1+x2+x3)+x3) # Objective
m.solve(disp=False) # Solve
print('Results')
print('x1: ' + str(x1.value))
print('x2: ' + str(x2.value))
print('x3: ' + str(x3.value))
print('x4: ' + str(x4.value))
print('Objective: ' + str(m.options.objfcnval))

它产生以下输出:
Results
x1: [1.3589086474]
x2: [4.5992789966]
x3: [4.0]
x4: [1.0]
Objective: 17.532267301

关于python-3.x - 如何在 pyomo 中使用/选择/安装混合整数非线性求解器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56020864/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com