【发布时间】:2018-12-19 14:55:11
【问题描述】:
我有这个问题,我知道答案,但我需要能够通过 R 解决它
有 5 个广告系列,称为 A、B、C、D、E
看起来像这样
Campaign Max Budget ROI
A 156.09 0.77
B 73.92 1.46
C 65.8 2.14
D 43.68 0.77
E 41.01 1.81
有两个限制条件,您在所有广告系列中总共只能花费 100 美元,并且您在每个广告系列上的花费不能超过您的最高预算,并且您正在努力使您的利润最大化,即您的投资回报率乘以预算您在广告系列上的花费。
我知道答案是在广告系列 C 上花费 65.8,因为它具有更高的投资回报率,然后在广告系列 E 上花费 34.2,因为您的投资回报率第二高,因此您将达到最高支出 100 的限制。
如果有人可以帮助我使用 lpSolveAPI 或 lpsolve 进行设置,在此先感谢
这是我迄今为止尝试过的
library("lpSolveAPI")
model<-make.lp(ncol=5)
m1<-lp.control(model, sense="max", verbose="neutral")
m2<-set.objfn(model, obj=c(120.1893,107.9232,140.812,33.6336,74.2462))
m3<-set.bounds(model, upper =c(156.09,73.92,65.8,43.68,41.02))
m4<-add.constraint(model, c(1,1,1,1,1), "<=",100)
solve(model)
get.variables(model)
34.2 0.0 65.8 0.0 0.0
为什么我在露营 C 上得到 65.8 而在 A 上得到 34.2,应该是在 E 上吗?我假设我的目标函数不正确,对于目标函数,我将 ROI 乘以最大预算并使用这些系数。
【问题讨论】:
-
到目前为止你有什么尝试?
-
您为什么选择使用线性规划?正如您在问题中指出的那样,最好按投资回报率排序并从列表中向下直到您的预算用完为止。
标签: r linear-programming lpsolve