J'ai résolu un problème d'IP dans PySCIPOpt et j'ai également résolu le même problème dans Julia et j'ai trouvé que le temps de solution était étonnamment différent. Julia a résolu le problème en 25 secondes en utilisant Cbc tandis que PySCIPOpt a pris 198 secondes en utilisant le solveur intégré. Lors de l'exécution de la ligne de code par ligne, j'ai constaté que la plupart du temps, on passait la partie de la formulation du problème dans PySCIPOpt par rapport à la résolution réelle. Je me demandais si cela était prévu ou s'il y avait des méthodes pour rendre cela plus efficace (ou comparable à la performance de Julia).Lenteur de performance de PySCIPOpt
Éditer: Voici la formulation que j'ai.
model=Model("Route_Selection")
start_time=time.clock()
x={}
for j in range(J):
x[j]=model.addVar(vtype = 'B', name = 'x (%s)' %j)
y={}
for i in range(I):
y[i]=model.addVar(vtype='C', name = 'y (%s)' %i)
model.setObjective(quicksum(C[j]*x[j] for j in range(J))+ M* quicksum(y[i] for i in range(I)), "minimize")
for i in range(I):
model.addCons(quicksum(A_mat[i,j]*x[j] for j in range(J))+y[i] ==1, name='coverage of (%s)' %i)
model.addCons(quicksum(x[j] for j in range(J))<= N, name = 'vehicle constraint')
model.optimize()
print (time.clock()-start_time, "seconds")
Qu'en est-il du partage de votre formulation? – mattmilten