RuntimeError: Невозможно записать допустимый файл LP. Цель «Maximum_profit» имеет нелинейные условия, которые не являются квадратичными - PullRequest
0 голосов
/ 15 апреля 2020

Я использую pyomo и gurobi для решения задачи нелинейной оптимизации. но когда я запускаю свой код, я получаю эту ошибку:

RuntimeError: Cannot write legal LP file.  Objective 'Maximum_profit' has nonlinear terms that are not quadratic.

(у меня нет никаких проблем, когда я использую gurobi в качестве решателя в задаче линейной оптимизации.) Моя целевая функция:

 Maximum_profit=pyo.Objective(doc="Profit Maximization", rule=lambda model: sum(pyo.log10(1+sum(pyo.log10(1.0 + model.t[i,k]) for i in model.N)) for k in model.J) - sum(sum(model.t[i,k] * model.p[i,k] for k in model.J) for i in model.N),sense=-1)

как я могу это исправить?

1 Ответ

0 голосов
/ 15 апреля 2020

Гуроби не может решить нелинейные модели оптимизации (за исключением некоторых случаев квадратичных c моделей). Если в вашей цели есть термины журнала, вам нужен решатель, который сможет их обработать, например, BARON или IPOPT.

...