我需要帮助将我的问题描述为Python中的约束优化问题。
id, views, score
id是每个视频的唯一标识。views是视频被观看的次数。score是计算视频质量分数的函数f的输出。它的实施对这个问题并不重要。我现在有两个独立但相关的优化函数,我想实现。
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背包问题而不是分数背包问题。
谢谢
发布于 2019-05-22 11:35:37
你的问题似乎没有得到很好的表述。就线性规划(优化)而言,您可以将其表述为
\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。
现在,您可以使用scipy的优化来解决这个问题。
Ps.:很抱歉格式化,我在Stack Exchange上很新
https://stackoverflow.com/questions/56229182
复制相似问题