Позволяет ли Pyomo параллельное построение модели?Python

Программы на Python
Anonymous
Позволяет ли Pyomo параллельное построение модели?

Сообщение Anonymous »

У меня есть крупномасштабная модель оптимизации на основе сценариев, решение которой в Pyomo с использованием решателя Gurobi занимает много времени. Хотя решение модели с использованием Gurobi (поскольку оно использует все доступные ядра) происходит быстро, часть определения ограничений (выполненная Pyomo) занимает все время. Можем ли мы распараллелить часть определения модели на Pyomo? Я спросил у chatGPT, и там сказали, что часть определения модели по своей сути выполняется в одном процессе и не может быть распараллелена. Мне просто интересно, сталкивались ли вы с такой же проблемой и знаете ли вы способ ее обойти.
** Насколько я понимаю, решение модели оптимизации с использованием решателя Pyomo и Gurobi заключается в том, что Pyomo определяет и конструирует модель и передает ее решателю Gurobi для ее решения. Я хочу использовать механизм параллельных вычислений для построения модели (сделано Pyomo). Очевидно, это невозможно.
*** Следующие два ограничения отнимают большую часть времени:

Код: Выделить всё

for k in range(len(y)):
for i in range(NumBus):
model.Constraints.add(inequality(Pminm[i], model.P[i]-model.Lambda[i] * sum(y[k, :]), Pmaxm[i]))

for k in range(len(y)):
for i in range(NumBus):
for j in range(NumBus):
if i != j:
model.Constraints.add(
inequality(
-100,
B[i, j] * (
model.Angles[i] +
sum(B_u[i, m] * (y[k, i] - model.Lambda[m]) for m in range(NumBus)) -
model.Angles[j] -
sum(B_u[j, n] * (y[k, j] - model.Lambda[n]) for n in range(NumBus))
),
100
)
)
Здесь len(y)=10 000 и NumBus=118.

Подробнее здесь: https://stackoverflow.com/questions/781 ... n-of-model

Вернуться в «Python»