Мне нужна помощь в формулировании моей проблемы как задачи ограниченной оптимизации в Python.
Предположим, у меня есть Pandas DataFrame видео со следующими столбцами
id, views, score
id
- это уникальный идентификатор для каждого видео views
- это количество просмотров видео score
- это вывод функции f
, которая вычисляет показатель качества для видео.Его реализация не важна для этой проблемы.
Теперь у меня есть 2 отдельные, но связанные функции оптимизации, которые я хочу реализовать
- Учитывая максимальное количество видео
C
,и минимальное общее количество просмотров V
найти набор видео, которые максимизируют средний балл. - Учитывая максимальное количество видео
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 с ранцем, а не дробная задача о ранце .
Спасибо