Эта ошибка генерируется ASL при оценке выражения во время процесса решения (т. Е. Это не ошибка Pyomo).
Уловка, чтобы сделать ошибку более понятной, - попросить Пиомо передать «символические» ярлыки решателю. По соображениям эффективности это по умолчанию отключено: генерация удобочитаемых ярлыков дороже, чем просто ограничения и переменные нумерации, и пользователи редко взаимодействуют с исходной моделью, которая отправляется решателю.
Если вы используете команду pyomo
, то вы можете передать --symbolic-solver-labels
вариант:
pyomo solve --solver ipopt --stream-solver --symbolic-solver-labels #...
Если вы сценариев, то вы хотите установить symbolic_solver_labels=True
в solve()
вызова:
SolverFactory('ipopt').solve(model, tee=True, symbolic_solver_labels=True)