Problème avec le nombre de threads sur Cplex
Je résous un tas de problèmes similaires et je veux les comparer. Pour ce faire, j'ai besoin que tout fonctionne sur un seul thread. Même en définissant le nombre de threads sur 1, le modèle fonctionne toujours sur 8 threads. Quelqu'un a-t-il déjà rencontré ce problème? et y a-t-il un moyen de le réparer? (J'utilise Cplex avec python)
Merci,
Réponses
Essayez d'utiliser le contexte comme expliqué ici . Un exemple de modélisation avec docplex (illustré ci-dessous) indique que vous pouvez modifier le paramètre par défaut pour les options du solveur dans cplex à l'aide du code suivant:
context = Context.make_default_context()
context.cplex_parameters.threads = 1
model = Model(context=context
Alternativement, le code peut être le suivant:
model = Model()
model.context.cplex_parameters.threads = 1
Ou si vous utilisez Pyomo, l'option de solveur suivante sera utilisée:
mysolver = SolverFactory('CPLEX')
mysolver.options['threads'] = 1
laissez-moi changer l' exemple du zoo en fonction de vos besoins. (Le nombre de fils)
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)
qui donne
threads = 1
nbBus40 = 6.0
nbBus30 = 2.0