2017-01-21 18 views
0

Pyomo 4.4.1(VOTD)(CPython 2.7.12)を使用していますが、抽象モデルです。私が使用している場合:モデルの作成(インスタンス)抽象モデル

WARNING: DEPRECATION WARNING: the Model.create() method is deprecated. Call 
     Model.create_instance() to create a concrete instance from an abstract 
     model. You do not need to call Model.create() for a concrete model. 
Model unknown 

しかし、それは良い解決策を返します。instance = model.create('datos.dat')

私が得ます!

私は、このライン、書き込みを変更:Model.create_instance(datos.dat)が、私はエラーを取得:

results = opt.solve(instance) 
NameError: name 'instance' is not defined 

誰もが私を助けることができますか?

おかげで、マリア

答えて

1

正しい:「非推奨の警告は、」方法、属性、または機能が変化しており、古い方法は、将来のリリースで削除されるという警告です。だから当分の間、古い方法(この場合はcreate()は今までどおり動作しますが、新しいインターフェイス(この場合はcreate_instance())を使用するようにモデルを変更する作業を開始してください。将来のリリースでは動作し

だから、あなたが何かしたいと思うあなたはまだあなたが後でソルバに渡すことができます create()または変数へ create_instance()からの結果を割り当てる必要があり、言っ

:。。

instance = model.create_instance('datos.dat') 
opt = SolverFactory('cbc') 
solver_results = opt.solve(instance) 

をこれらは単なるPython変数なので、簡単に実行できます。

a = model.create_instance('datos.dat') 
b = SolverFactory('cbc') 
c = b.solve(a) 

Pyomoの例では、例をより明確にするために、通常instance,opt(またはsolver)、およびresultsを使用しています。

+0

これは機能します! :)ありがとう! – Michael

関連する問題