使用MindtPy与Pyomo时,如何指定MIP/NLP求解器可执行文件路径?
在MindtPy中指定求解器路径或让Pyomo自动识别的方法
一、正确指定求解器可执行文件路径
你之前的代码参数传递有误,nlp_solver和nlp_solver_args被错误嵌套在mip_solver_args字典里,导致MindtPy无法正确读取NLP求解器的路径。正确写法是将mip_solver_args和nlp_solver_args作为独立参数传入solve方法,与mip_solver、nlp_solver同级:
results = SolverFactory('mindtpy').solve( model, mip_solver='glpk', mip_solver_args={'executable': r'G:\Mi unidad\dev\winglpk-4.65\glpk-4.65\w64\glpsol.exe'}, nlp_solver='ipopt', nlp_solver_args={'executable': r'G:\Mi unidad\dev\Ipopt-3.6.1-win64-icl10.1\Ipopt-3.6.1-win64-icl10.1\bin\ipopt.exe'} )
调整后MindtPy就能分别调用指定路径下的GLPK和Ipopt求解器。
二、让Pyomo自动识别求解器的方法
如果不想每次手动指定路径,可通过以下方式实现自动识别:
- 添加系统环境变量:将GLPK和Ipopt可执行文件所在的文件夹路径(如
G:\Mi unidad\dev\winglpk-4.65\glpk-4.65\w64、G:\Mi unidad\dev\Ipopt-3.6.1-win64-icl10.1\Ipopt-3.6.1-win64-icl10.1\bin)添加到系统PATH环境变量中。Pyomo会自动扫描PATH路径识别求解器,此时你的初始无路径参数代码即可正常运行。 - 使用conda安装求解器:若Pyomo运行在conda环境中,直接通过conda安装求解器可自动配置路径。在conda终端执行命令:
安装完成后,Pyomo会自动识别这些求解器,无需额外设置路径。conda install -c conda-forge ipopt glpk
内容的提问来源于stack exchange,提问作者Pablo Moreno
相关产品推荐
相关产品推荐

