私たちはあなたが何をしているのか推測しなければならないので、コードを見ずに答えるのは難しいです。
しかし、あなたは
model.write("out.sol")
を使用する場合も...
Gurobiはそれを書くために(そして何書かにそのファイルサフィックスから推測される)独自のフォーマットです使用されます。あなたがPythonの基本的なIO-ツールを使用していて、もちろんPythonがする点でそのファイルを解釈しません
x = read("out.sol")
を使用した場合
model.read("out.sol")
:
この
を簡単に読み取ることができますフォーマット。そのような読み物はテキストモードです(バイナリが必要かもしれませんが、わかりません)。
一般的なルール:クラスモデルのクラスメソッドを使用してソリューションを作成した場合は、クラスモデルのクラスメソッドも使用して読み込みます。
通常、上記の使用は、モデルの一部の状態(たとえばMIP開始)を元に戻すために使用されます。プロットしたい場合は、さらに作業をしなければなりません。この場合、PythonのIOツールを使用することは良い考えです。フォーマットdescribed hereを尊重する必要があります。これはcsvまたは手動で読むことができます(以前の私の発言とは反対です:バイナリではなくテキストモードです)。
ので、リンクからの例では、ファイルgur.sol
であると仮定すると:
import csv
with open('gur.sol', newline='\n') as csvfile:
reader = csv.reader((line.replace(' ', ' ') for line in csvfile), delimiter=' ')
next(reader) # skip header
sol = {}
for var, value in reader:
sol[var] = float(value)
print(sol)
出力:
{'z': 0.2, 'x': 1.0, 'y': 0.5}
備考:
- コードはPythonのcsvモジュールは、いくつかの制限があるため醜いれます
- 区切り文字は、この形式の二のスペースであり、我々は(唯一の文字は、この機能に許可されているように)を読むためのコードをハックする必要が
- コードはPythonのために調整される可能性があります私が使用しているものを3( ;非常に良い説明 - おそらく次の()メソッドは、
- pandasは、この目的(非常に良いcsv_readerを持つ巨大なツール)
ありがとうのためにはるかに良いでしょう)PY2では異なるであろう – tm553