0

I execute a program in cplex python (docplex), it has arrived at a gap 48% with 41 solutions. it's already been 2 days, I ask if I can interrupt it and have a result without restarting the execution with limit gap.

Nada.M
  • 103
  • 4

1 Answers1

0

If you run on Windows you could try CTRL C

If that does not work,

what you could do is run again your model with 1 new solution each time and then save the current solution and then each time you abort you have the latest solution

Example with the zoo story:

from docplex.mp.model import Model
from docplex.mp.progress import *

mdl = Model(name='buses')
nbbus40 = mdl.integer_var(name='nbBus40')
nbbus30 = mdl.integer_var(name='nbBus30')
mdl.add_constraint(nbbus40*40 + nbbus30*30 >= 300, 'kids')
mdl.minimize(nbbus40*500 + nbbus30*400)

mdl.parameters.mip.limits.solutions=1

while mdl.solve(log_output=False):
    
    for v in mdl.iter_integer_vars():
       print(v," = ",v.solution_value)
       
    print("status : ",mdl.solve_details.status)   
    if ("optimal solution" in str(mdl.solve_details.status)):
        break

that gives

nbBus40  =  8.0
nbBus30  =  0
status :  solution limit exceeded
nbBus40  =  7.0
nbBus30  =  1.0
status :  solution limit exceeded
nbBus40  =  6.0
nbBus30  =  2.0
status :  integer optimal solution
Alex Fleischer
  • 9,276
  • 2
  • 12
  • 15