Как установить результат моделирования в качестве цели в Gurobi вместо уравнения? - PullRequest
0 голосов
/ 08 февраля 2020

У меня есть дискретная имитационная модель события, которая выводит общую стоимость проекта. Несколько входов в симуляцию могут быть включены и выключены, и они были построены в переменных решения Gurobi. Поскольку это категориальные переменные с повторением, они могут иметь значения с нижней границей 0.

Во время каждой итерации оптимизации я хотел бы взять переменные решения с ненулевыми значениями и передать их в моделирование, которое затем выводит другое значение для стоимости. Затем оптимизатор продолжает работу, пока стоимость не будет минимизирована.

Проблема, с которой я сталкиваюсь, заключается в том, что симуляция рассматривается как черный ящик, а Гуроби видит только входы и выходы. Это правильный способ определения цели? Если так, как я могу это реализовать? Или Гуроби требует полного знания управляющих уравнений черного ящика?

Ниже псевдокодовое представление идеального конечного продукта:

paths = m.addVars(settings, lb=0, name="paths")

totalCost = simulation(nonZeroPaths)

m.setObjective(totalCost, GRB.minimize)
...