在 Intel Mac OS X 上将 PATH AMPL 求解器与 Pyomo 一起使用
Using PATH AMPL solver with Pyomo on Intel Mac OS X
我正在尝试在 Mac OS X(10.11,英特尔)上将 PATH 求解器 (http://pages.cs.wisc.edu/~ferris/path.html) 与 Pyomo 一起使用。我正在使用 most 最近安装的 Anaconda Python 3.5.
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))`
应该是 运行 来自 bash 和 pyomo solve --solver=path munson1.py
为了完成这项工作,我应该使用可执行文件 pathampl(AMPL 的 PATH 求解器)并将其放入我的 $PATH 中。我用它的两个版本(可从 PATH 网站获得)做到了这一点:
mac os x 版本似乎是为 PowerPC 制作的,它显示的内容类似于 "Wrong CPU version"。
或者我尝试了 Linux 版本,但是 pyomo 命令 returns Solver (path) returned non-zero return code (-1)
。单独调用 pathampl 它显示 /usr/local/bin/pathampl: cannot execute binary file
.
有人知道如何让它发挥作用吗?谢谢!
如果您系统上的可执行文件的名称是 'pathampl',您需要使用它作为 Pyomo 的求解器名称。这样做的原因与 Pyomo 如何与它无法识别的求解器交互有关。
Pyomo 具有针对某些求解器的自定义接口,但是当您要求它使用它无法识别的求解器时(Path 的情况),它会回退到适用于任何求解器可执行文件的更通用的接口与 AMPL 合作。发生这种情况时,它假定您提供的求解器名称是您系统上某个可执行文件的名称。
我正在尝试在 Mac OS X(10.11,英特尔)上将 PATH 求解器 (http://pages.cs.wisc.edu/~ferris/path.html) 与 Pyomo 一起使用。我正在使用 most 最近安装的 Anaconda Python 3.5.
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))`
应该是 运行 来自 bash 和 pyomo solve --solver=path munson1.py
为了完成这项工作,我应该使用可执行文件 pathampl(AMPL 的 PATH 求解器)并将其放入我的 $PATH 中。我用它的两个版本(可从 PATH 网站获得)做到了这一点:
mac os x 版本似乎是为 PowerPC 制作的,它显示的内容类似于 "Wrong CPU version"。
或者我尝试了 Linux 版本,但是 pyomo 命令 returns Solver (path) returned non-zero return code (-1)
。单独调用 pathampl 它显示 /usr/local/bin/pathampl: cannot execute binary file
.
有人知道如何让它发挥作用吗?谢谢!
如果您系统上的可执行文件的名称是 'pathampl',您需要使用它作为 Pyomo 的求解器名称。这样做的原因与 Pyomo 如何与它无法识别的求解器交互有关。
Pyomo 具有针对某些求解器的自定义接口,但是当您要求它使用它无法识别的求解器时(Path 的情况),它会回退到适用于任何求解器可执行文件的更通用的接口与 AMPL 合作。发生这种情况时,它假定您提供的求解器名称是您系统上某个可执行文件的名称。