Ich benutze Gurobi 7, um meine MIP zu lösen. Ich habe mehrere verschiedene Variablen. Ich interessiere mich jedoch speziell für zwei davon, nämlich "x" und "y". Für den Hinweis, ich meinen Code gebe, das zeigt, wie ich Variablen x und y in den Solver hinzugefügt:Gurobi Optimierung Ergebnis Schreiben in Csv Datei
# 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]]))
Auch wenn der obige Code nicht wirklich Sinn machen kann, wollte ich es nur um zu zeigen, falls Sie kann es für mein Problem verwenden.
Nachdem ich das Problem zu lösen, erhalte ich folgende Ergebnisse:
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
Ich möchte speziell Variablen x und y mit ihren Indizes angezeigt werden soll. Andere Variablen sind nicht notwendig. Meine Frage ist, wie kann ich diese Ergebnisse in eine CSV-Datei in einer Spalte wie folgt schreiben?
x[1,3]
x[2,2]
x[3,2]
.
.
.
x[10,5]
y[1,2]
y[2,9]
y[3,5]
.
.
.
y[10,1]
Ich brauche nicht ihren entsprechenden Wert, der nur "1" sein kann, da sie binäre Variablen sind. Ich muss nur die Variablen schreiben, die den Wert "1" haben.
Ich verstehe, was Sie tun, aber es funktioniert wirklich nicht in meinem Fall. Nun, ich überprüfe die Machbarkeit; Das Problem ist machbar und gibt eine Antwort. Sollte ich irgendwas an var.VarName [0] ändern? – user8028576
Ich habe gerade meinen Code überprüft und es scheint, dass ich 'str (var.VarName [0])' verwende. Könntest du es versuchen? Stellen Sie sicher, Sie vergleichen mit einem Kleinbuchstaben "x" – Ioannis
mit diesem: 'wr.writerows (zip (var_names))', es funktioniert perfekt. Vielen Dank! – user8028576