Problema con el número de subprocesos en Cplex
Estoy resolviendo un montón de problemas similares y quiero compararlos. Para hacerlo, necesito que todo se ejecute en un hilo. Incluso estableciendo el número de subprocesos en 1, el modelo aún se ejecuta en 8 subprocesos. ¿Alguien ha encontrado este problema alguna vez? y hay alguna manera de solucionarlo? (Estoy usando Cplex con python)
Gracias,
Respuestas
Intente usar el contexto como se explica aquí . Un ejemplo de modelado con docplex (que se muestra a continuación) indica que puede cambiar la configuración predeterminada para las opciones del solucionador en cplex usando el siguiente código:
context = Context.make_default_context()
context.cplex_parameters.threads = 1
model = Model(context=context
Alternativamente, el código puede ser el siguiente:
model = Model()
model.context.cplex_parameters.threads = 1
O si está utilizando Pyomo, se utilizará la siguiente opción de solucionador:
mysolver = SolverFactory('CPLEX')
mysolver.options['threads'] = 1
déjeme cambiar el ejemplo del zoológico según sus necesidades. (Número de hilos)
from docplex.mp.model import Model
mdl = Model(name='buses')
mdl.parameters.threads=1
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.solve()
print("threads = ",mdl.parameters.threads.get())
for v in mdl.iter_integer_vars():
print(v," = ",v.solution_value)
lo que da
threads = 1
nbBus40 = 6.0
nbBus30 = 2.0