#linear-programming #cvxpy #linearization
#линейное программирование #cvxpy #Линеаризация
Вопрос:
Я использую cvxpy
для моделирования проблемы.
Внутри очень большого и сложного LP я создаю два непрерывных аффинных (неограниченных) выражения: x
и y
.
Из-за того, как они создаются, я это знаю 0 < x < y <= U
. Очевидно: x/y < 1
.
В моей задаче LP как мне максимизировать соотношение x/y
?
Вещи, которые я пробовал:
- Максимизация
x*cp.inv_pos(Y)
утверждает, что моя проблема не связана с DCP (также, если я попытаюсь минимизировать обратное) - Я нашел различные формулировки LP для максимизации соотношений (например, здесь или здесь ), но для этого требуется переписать ограничения на все термины в выражениях для
x
— я понятия не имею, как это сделатьcvxpy
.
Если это правильный путь, то пример был бы очень полезен!
Комментарии:
1. Возможно, вы захотите взглянуть на алгоритм Динкельбаха.
2. Попробуйте решить проблему с помощью
prob.solve(qcp=True)
. Максимизация отношения — это DQCP (один из типов задач, решаемых с помощью cvxpy).3. @steven: К сожалению, остальная часть моей проблемы не связана с DQCP.