Problem mit der Anzahl der Threads in Cplex

Sep 30 2020

Ich löse eine Reihe ähnlicher Probleme und möchte sie vergleichen. Dazu brauche ich alles, um auf einem Thread zu laufen. Selbst wenn Sie die Anzahl der Threads auf 1 setzen, läuft das Modell immer noch auf 8 Threads. Hat jemand jemals dieses Problem angetroffen? und gibt es eine Möglichkeit, dies zu beheben? (Ich benutze Cplex mit Python)

Vielen Dank,

Antworten

1 OguzToragay Oct 01 2020 at 12:09

Versuchen Zusammenhang mit wie erklärt hier . Ein Beispiel für die Modellierung mit docplex (siehe unten) zeigt, dass Sie die Standardeinstellung für Solver-Optionen in cplex mithilfe des folgenden Codes ändern können:

context = Context.make_default_context()
context.cplex_parameters.threads = 1
model = Model(context=context

Alternativ kann der Code wie folgt lauten:

model = Model()
model.context.cplex_parameters.threads = 1

Wenn Sie Pyomo verwenden, wird die folgende Löseroption verwendet:

mysolver = SolverFactory('CPLEX')
mysolver.options['threads'] = 1
2 AlexFleischer Oct 01 2020 at 13:49

Lassen Sie mich das Beispiel des Zoos für Ihre Bedürfnisse ändern . (Anzahl der Themen)

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)

was gibt

threads =  1
nbBus40  =  6.0
nbBus30  =  2.0