私はMROを解決するためにGurobi 7を使用しています。私はいくつかの異なる変数を持っています。しかし、私は具体的に "x"と "y"の2つに興味があります。参考のために、私はソルバーにxとyの変数を追加する方法を示し私のコードを与えている:グロビの最適化結果Csvファイルに書き込む
# Creating Variables
x = {}
y = {}
# Adding Variables
for i in range(I):
x[i+1,P[i]-d[0]] = m.addVar(vtype=GRB.BINARY, name="x%s" % str([i+1,P[i]-d[0]]))
x[i+1,P[i]] = m.addVar(vtype=GRB.BINARY, name="x%s" % str([i+1,P[i]]))
for i in range(I):
for k in range(len(rangevalue)):
y[i+1, rangevalue[k] - E[i]] = m.addVar(vtype=GRB.BINARY,
name="y%s" % str([i+1, rangevalue[k] - E[i]]))
上記のコードは、実際には何の意味も持たないかもしれないが、私は念のためにあなたをそれを見せたかったです私の問題のためにそれを使用するかもしれません。
私は問題を解決した後、私は次のような結果を得る:
m.printAttr('X')
Variable X
-------------------------
x[1, 3] 1
sigmaminus[1] 874
x[2, 2] 1
sigmaminus[2] 1010
x[3, 2] 1
sigmaminus[3] 1945
x[4, 4] 1
sigmaplus[4] 75
x[5, 4] 1
sigmaminus[5] 1153
x[6, 5] 1
sigmaminus[6] 280
x[7, 3] 1
sigmaplus[7] 1138
x[8, 2] 1
sigmaplus[8] 538
x[9, 1] 1
sigmaplus[9] 2432
x[10, 5] 1
sigmaminus[10] 480
omega[1] 12
OMEGA[1] 12
omega[2] 9
OMEGA[2] 12
omega[3] 8
OMEGA[3] 9
omega[4] 8
OMEGA[4] 8
OMEGA[5] 8
y[1, 2] 1
y[2, 9] 1
y[3, 5] 1
y[4, 6] 1
y[5, 4] 1
y[6, 6] 1
y[7, 3] 1
y[8, 11] 1
y[9, 8] 1
y[10, 1] 1
phiplus[6] 1
phiminus[7] 1
phiminus[10] 1
を私は特にそのインデックスで、xとy変数を表示します。他の変数は必要ありません。私の質問は、どのようにこれらの結果を次のように1つの列のCSVファイルに書き込むことができますか?
x[1,3]
x[2,2]
x[3,2]
.
.
.
x[10,5]
y[1,2]
y[2,9]
y[3,5]
.
.
.
y[10,1]
バイナリ変数であるため、対応する値は "1"にする必要はありません。私はちょうど値 "1"を持つ変数を記述する必要があります。
私はあなたがやっているものを手に入れていますが、私の場合は実際にはうまくいきません。さて、私は実現可能性をチェックしています。問題は実現可能であり、答えが得られる。 var.VarName [0]で何かを変更する必要がありますか? – user8028576
私はもう一度自分のコードをチェックし、 'str(var.VarName [0])'を使っているようです。あなたはそれを行けますか?小文字の '' x '' – Ioannis
とこれを比較してください: 'wr.writerows(zip(var_names))'、それは完全に動作します。どうもありがとうございました! – user8028576