Ограниченный Решатель Оптимизации в Python - PullRequest
1 голос
/ 21 мая 2019

Мне нужна помощь в формулировании моей проблемы как задачи ограниченной оптимизации в Python.

Предположим, у меня есть Pandas DataFrame видео со следующими столбцами

id, views, score

  1. id - это уникальный идентификатор для каждого видео
  2. views - это количество просмотров видео
  3. score - это вывод функции f, которая вычисляет показатель качества для видео.Его реализация не важна для этой проблемы.

Теперь у меня есть 2 отдельные, но связанные функции оптимизации, которые я хочу реализовать

  1. Учитывая максимальное количество видео C,и минимальное общее количество просмотров V найти набор видео, которые максимизируют средний балл.
  2. Учитывая максимальное количество видео C и минимальный показатель качества Q, найдите тот набор видео, которыемаксимизируйте общее количество просмотров.

Например, предположим, что следующие данные

+----+-------+-------+
| ID | Views | Score |
+----+-------+-------+
| X  |     1 |   0.9 |
| Y  |     2 |   0.8 |
| Z  |     3 |   0.7 |
+----+-------+-------+

Если бы мы выполняли оптимизацию 1 выше с ограничениями, в следующей таблице были бы обобщены результаты с различными критериями:

+-------------+----------------+------------------+
| C Less Than | V Greater Than | Resultant Videos |
+-------------+----------------+------------------+
|           3 |            0.5 | X                |
|           3 |            2.5 | X, Y             |
|           3 |            4.5 | Y, Z             |
+-------------+----------------+------------------+

Если бы мы выполняли оптимизацию 2 выше с ограничениями, в следующей таблице были бы обобщены результаты с различными критериями:

+-------------+----------------+------------------+
| C Less Than | Q Greater Than | Resultant Videos |
+-------------+----------------+------------------+
|           3 |           0.85 | X                |
|           3 |           0.75 | X, Y             |
|           3 |           0.95 | No Solution      |
+-------------+----------------+------------------+

Я чувствую, что ответ лежит где-то в пределах Сципиоптимизировать библиотеку .Следует отметить, что это проблема 0-1 с ранцем, а не дробная задача о ранце .

Спасибо

1 Ответ

0 голосов
/ 22 мая 2019

Ваша проблема, похоже, не сформулирована правильно. С точки зрения линейного программирования (оптимизации) вы могли бы сформулировать это как

\max b_1 \sum_i c_i/N+b_2 \sum_i v_i

such that \alpha c\geq \bar{c}
          \beta v\leq \underline{v}
          \gamma q\leq \underline{q}

Для фиксированных скаляров b_1, b_2, N и векторов альфа, бета, гамма.

В первой строке вы максимизируете одновременно средний балл c_i и общее количество просмотров v_i.

Теперь вы можете решить эту проблему с помощью оптимизации Сципи.

Ps .: Извините за форматирование, я довольно новый на Stack Exchange

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...