2016-04-23 4 views
2

Mac OS X(10.11、Intel)上でPomoソルバー(http://pages.cs.wisc.edu/~ferris/path.html)をPyomoと一緒に使用しようとしています。 Python 3.5でインストールされた最新のAnacondaを使用しています。Intel Mac OS XでPyomoでPATH AMPLソルバーを使用

PyomoはAMPLライブラリを利用できます。 http://prod.sandia.gov/techlib/access-control.cgi/2015/155584.pdfから私は、次の例を実行しようとしている:

私は実行可能pathampl(AMPLのPATHソルバー)を使用して、それを置くべきである仕事を作るために pyomo solve --solver=path munson1.py

ではbashから実行する必要があります

`# 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))` 

私の$ PATHにあります。

のMac OS Xのバージョンは、それが「間違ったCPUバージョン」の線に沿って何かを表示するPowerPCのために作られているように見える:私は(PATHのウェブサイトから入手可能)、それの2つのバージョンであることでした。

また、Linux版を試しましたが、pyomoコマンドはSolver (path) returned non-zero return code (-1)を返します。 pathampをそれ自身で呼び出すと、/usr/local/bin/pathampl: cannot execute binary fileと表示されます。

誰かがそれを動作させる方法のアイデアはありますか?ありがとう!

+0

私はMacOSでpathamplを使用して試していません。コマンドを直接実行することをお勧めします。ファイル名を指定して実行: 'pyomoのNLファイルを生成するための変換--format = NL --output = munson1.nl munson1.py' 、その後、直接ソルバーを適用します。 ' pathampl munson1.nl' –

答えて

2

お使いのシステム上の実行可能ファイルの名前は「pathampl」である場合、あなたはPyomoのためのソルバー名としてそれを使用している必要があります。この理由は、Pyomoが認識していないソルバーとどのようにつながっているかに関係しています。

Pyomoには特定のソルバーのためのカスタムインターフェイスがありますが、認識できないソルバー(Pathの場合)を使用するように要求すると、動作するように設計された任意のソルバーで動作する汎用インターフェースに戻りますAMPLでこの場合、指定したソルバー名はシステム上の実行可能ファイルの名前であるとみなされます。