【发布时间】:2016-01-14 14:29:04
【问题描述】:
仅在 Python 中,并使用来自 Pandas 数据框的数据,我如何使用PuLP 来解决线性规划问题,就像在 Excel 中一样?应该为“新预算”列下的每个渠道分配多少预算,以便我们最大化估计的成功总数?我真的在寻找一个具体的example,使用来自数据框的数据,而不是真正的高级建议。
问题数据设置
Channel 30-day Cost Trials Success Cost Min Cost Max New Budget
0 Channel1 1765.21 9865 812 882.61 2647.82 0
1 Channel2 2700.00 15000 900 1350.00 4050.00 0
2 Channel3 2160.00 12000 333 1080.00 3240.00 0
这是一个最大化问题。
目标函数是:
objective_function = sum((df['New Budget']/(df['30-day Cost']/df['Trials']))*(df['Success']/df['Trials']))
约束是:
-
df['New Budget']之和必须等于5000 - 给定频道的
New Budget不能低于Cost Min - 给定频道的
New Budget不能高于Cost Max
任何想法如何使用 PuLP 或任何其他求解器方法来翻译这个 pandas 数据帧求解器线性问题?最终结果将如下图所示。
【问题讨论】:
标签: python pandas dataframe linear-programming pulp