コールバックを使ってリニアリラクゼーションの解を回復しようとするMIPがありますが、できません。私はMIPのリニアリラクゼーションの直後に変数Zを抽出するために以下のコードを使用します。Python Gurobi: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()
いくつかのコードや独自の試みを表示するか、この質問が終了する危険性があります。 – sascha
これは妥当な質問です。 Gurobiは、コールバック関数のための多くのドキュメントを提供していません。 –