У меня есть MIP, который я поворачиваю, чтобы попытаться восстановить решение линейной релаксации через обратный вызов, но я не могу. Я использую приведенный ниже код для извлечения переменной Z сразу после повторной обработки линейной релаксации моего MIP.
# Definition de la fonction callback
def mycallback(model, where):
if where == GRB.Callback.MIPNODE:
if model.cbGet(GRB.Callback.MIPNODE_STATUS) == GRB.Status.OPTIMAL:
sol_Z=model.cbGetNodeRel(model.getAttr('x', vZ))
FTe=range(1,FT+1)
for cb in FCBloc:
for e in FOpEq:
for t in FTe:
Bl_ZDonnees.update({(cb,e,t):sol_Z[cb[0],cb[1],t,e]})
NomFichier="M_1_Relax.csv"
fichier = open(NomFichier, 'w')
cw = csv.writer(fichier, delimiter=';')
for bl1 in Bl_ZDonnees:
cw.writerow([bl1,Blst_Donnees[bl1]])
fichier.close()
model.terminate()