在Intel Mac OS X上与Pyomo一起使用PATH AMPL solver

2024-09-19 23:43:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在macosx(10.11,Intel)上与Pyomo一起使用路径求解器(http://pages.cs.wisc.edu/~ferris/path.html)。我在python3.5中使用了最新的Anaconda安装。在

Pyomo可以使用AMPL库。从http://prod.sandia.gov/techlib/access-control.cgi/2015/155584.pdf开始,我尝试运行以下示例:

`# file munson1.py
from pyomo.environ import *
from pyomo.mpec import *
model = ConcreteModel()
model.x1 = Var()
model.x2 = Var()
model.x3 = Var()
model.f1 = Complementarity(expr=
complements(model.x1 >= 0,
model.x1 + 2*model.x2 + 3*model.x3 >= 1))
model.f2 = Complementarity(expr=
complements(model.x2 >= 0,
model.x2 - model.x3 >= -1))
model.f3 = Complementarity(expr=
complements(model.x3 >= 0,
model.x1 + model.x2 >= -1))`

它应该使用pyomo solve --solver=path munson1.py从bash运行

为了实现这一点,我应该使用可执行的pathampl(AMPL的路径解算器)并将其放入我的$PATH中。我用了它的两个版本(可从PATH网站获得):

macosx版本似乎是为PowerPC设计的,它显示的内容大致是“错误的CPU版本”。在

或者我尝试了Linux版本,但是pyomo命令返回Solver (path) returned non-zero return code (-1)。它自己调用pathampl会显示/usr/local/bin/pathampl: cannot execute binary file。在

有人知道如何让它工作吗?谢谢!在


Tags: path路径版本modelvarmacosxpyomox1
1条回答
网友
1楼 · 发布于 2024-09-19 23:43:05

如果系统上可执行文件的名称为“pathampl”,则需要将其用作Pyomo的解算器名称。原因在于Pyomo如何与它不认识的解算器交互。在

Pyomo为某些解算器提供了自定义接口,但当您要求它使用它无法识别的解算器(Path的情况下),它会返回到一个更通用的接口,该接口适用于任何设计为使用AMPL的解算器可执行文件。当发生这种情况时,它假定您提供的解算器名称是系统上某些可执行文件的名称。在

相关问题 更多 >