Problema con il numero di thread su Cplex
Sto risolvendo una serie di problemi simili e voglio confrontarli. Per fare ciò, ho bisogno che tutto funzioni su un thread. Anche impostando il numero di thread su 1, il modello gira ancora su 8 thread. Qualcuno ha mai riscontrato questo problema? e c'è un modo per risolverlo? (Sto usando Cplex con Python)
Grazie,
Risposte
Prova a utilizzare il contesto come spiegato qui . Un esempio di modellazione con docplex (mostrato di seguito) indica che è possibile modificare l'impostazione predefinita per le opzioni del risolutore in cplex utilizzando il codice seguente:
context = Context.make_default_context()
context.cplex_parameters.threads = 1
model = Model(context=context
In alternativa il codice può essere il seguente:
model = Model()
model.context.cplex_parameters.threads = 1
Oppure, se stai usando Pyomo, verrà utilizzata la seguente opzione di risoluzione:
mysolver = SolverFactory('CPLEX')
mysolver.options['threads'] = 1
lasciami cambiare l' esempio dello zoo per le tue necessità. (Numero di thread)
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)
che dà
threads = 1
nbBus40 = 6.0
nbBus30 = 2.0