Ошибка локального решения с remote=False
Ошибка, на которую вы ссылаетесь, связана либо с тем, что решателю не удалось найти решение, либо потому, что вы работаете на MacOS и вам нужны некоторые общие библиотеки с gcc
. Если у вас MacOS, попробуйте установить gcc
, чтобы получить необходимые общие библиотеки, как указано в обсуждении проблемы GitHub для локального решения на MacOS.
brew install gcc
Если это проблема решателя, вы можете увидеть сообщение об ошибке, если отобразите выходные данные решателя с помощью:
m.solve(disp=True)
Локальное решение иногда отличается от решения удаленного сервера из-за лицензионных ограничений на линейные решатели в IPOPT или из-за вашего локальный исполняемый файл не имеет одного из решателей (например, IPOPT недоступен для локального решения в MacOS, ARM Linux или x86-64 Linux). Исполняемый файл apm
, который обрабатывает локальные запросы, автоматически переключается на следующий доступный вариант решателя, если запрошенный недоступен. Вы можете попробовать m.options.SOLVER=1
для APOPT или m.options.SOLVER=2
для BPOPT в качестве разных решателей.
Кроме того, вы должны оставить уровень отладки на 1
, если вы хотите генерировать исключение, когда решатель не работает на найти решение. В противном случае установите debug=0
и используйте m.options.APPSTATUS
, чтобы определить, была ли решающая программа успешной.
m.solve(disp=True,debug=0)
if m.options.APPSTATUS==0:
print('Solver failed to find a solution')
else:
print('Successful solution')
Мы можем предложить дополнительные c предложения по обеспечению локальной работы вашей программы, если вы можете опубликовать минимальный пример, показывающий проблему .
Облачные вычисления с remote=True
Сервер publi c сегодня был недоступен в течение нескольких часов, но он резервное копирование сейчас. Из-за популярности Gekko серверы иногда могут быть перегружены или недоступны из-за периодического обслуживания. Выделенный сервер APMonitor доступен как вычислительный сервер для Linux или как вычислительный сервер для Windows, если вы хотите разместить свою собственную систему в облаке или как выделенный сервер. Если вы действительно создаете свой собственный сервер, используйте:
m = GEKKO(server='http://10.0.0.10',remote=True)
, но замените 10.0.0.10
на IP-адрес сервера.