Максимизация соотношения / процента

#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.