Gurobi Modelle

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
schuesra
User
Beiträge: 26
Registriert: Donnerstag 4. Oktober 2018, 17:40

Sonntag 9. Dezember 2018, 20:02

Kann mir jemand sagen, warum diese Version funktioniert:

Code: Alles auswählen

models = {}
for k in K:
                 models[k] = Model("RLP")
                 y = models[k].addVars(tau, n, name="y")
                 omega = models[k].addVars(L, tau, n, name="omega")
                 models[k].update()
                 obj = quicksum(f[j]*y[t, j] for t, j in y) - (1/L.size)*quicksum(teta[j]*omega[l, t, j] for l in L for t in tau for j in n)
                 models[k].setObjective(obj, GRB.MAXIMIZE)
                 models[k].update()
                 c19 = models[k].addConstrs(quicksum(A[i,j]*(S[k,l, t, j]*y[t,j] - omega[l,t,j]) for t in tau for j in n) <= c[i] for i in m for l in L)
                 c20 = models[k].addConstrs(omega[l,t,j] <= S[k,l, t, j]*y[t,j] for l in L for t in tau for j in n)
                 models[k].update()
                 print(models[k])
                 rho_K[k] = berechne_BP_RLP2(f, teta, c, A, D[k], S[k], m, tau, n, L, t, x, rho_il, rho, modell, models[k])
Und diese Version nicht:

Code: Alles auswählen

models = {}
for k in K:
                 models[k] = Model("RLP")
                 y = models[k].addVars(tau, n, name="y")
                 omega = models[k].addVars(L, tau, n, name="omega")
                 models[k].update()
                 obj = quicksum(f[j]*y[t, j] for t, j in y) - (1/L.size)*quicksum(teta[j]*omega[l, t, j] for l in L for t in tau for j in n)
                 models[k].setObjective(obj, GRB.MAXIMIZE)
                 models[k].update()
                 c19 = models[k].addConstrs(quicksum(A[i,j]*(S[k,l, t, j]*y[t,j] - omega[l,t,j]) for t in tau for j in n) <= c[i] for i in m for l in L)
                 c20 = models[k].addConstrs(omega[l,t,j] <= S[k,l, t, j]*y[t,j] for l in L for t in tau for j in n)
                 models[k].update()
                 print(models[k])
for k in K:
    rho_K[k] = berechne_BP_RLP2(f, teta, c, A, D[k], S[k], m, tau, n, L, t, x, rho_il, rho, modell, models[k]) 
In dieser Version bekomme ich die Fehlermeldung: "GurbiError Variable not found"
Hat jemand eine Erklärung dafür?
Antworten