Установка пути решения MIP и NLP с помощью Pyomo MindtPySolver - PullRequest
0 голосов
/ 21 февраля 2020

Я использую Pyomo 5.6.8 и пытаюсь решить проблему нелинейной оптимизации, используя MindtPySolver.

У меня нет проблем на моей локальной машине, я просто вызываю метод solve с этими аргументами:

SolverFactory('mindtpy').solve(model, mip_solver='cbc', nlp_solver='ipopt') 

Однако, когда я go облако на Azure, Pyomo не получает пути к решателям CB C и IPOPT. Когда мне нужно решить линейную проблему, я могу обойти эту проблему, используя следующую команду, добавив аргумент executable при создании экземпляра SolverFactory с помощью решателя LP:

SolverFactory("cbc", executable="/path/to/my/virtual/env/bin/cbc")

В моем не- случай линейного программирования, MindtpySolver не принимает дополнительный аргумент. Я посмотрел на исходный код do c & и не смог найти опцию для указания пути решения, которая, к сожалению, не распознается по умолчанию в моей среде Azure.

Я попытался передать опции, используя " Параметры solver_args "найдены в исходном коде следующим образом:

SolverFactory('mindtpy').solve(
    model,
    nlp_solver_args={
        "executable": "/path/to/my/virtual/env/bin/ipopt"
    },
    mip_solver_args={
        "executable": "/path/to/my/virtual/env/bin/cbc"
    },
    mip_solver='cbc', nlp_solver='ipopt',
)

Но я все еще получаю" ВНИМАНИЕ: Не удалось найти исполняемый файл 'ipopt', который требуется для solver", например ошибки. Я настаиваю на том, что все решатели (здесь cb c и ipopt) можно найти в моей виртуальной среде. Есть ли способ указать путь решателя, используя MindtPySolver?

...