【发布时间】:2016-01-12 08:57:00
【问题描述】:
我有一个简单的(实际上是经济学标准)非线性约束离散最大化问题要在 R 中解决,但遇到了麻烦。我找到了问题的部分的解决方案(非线性最大化;离散最大化),但不是所有问题的联合。
这就是问题所在。一位消费者想要购买三种产品(凤梨、香蕉、饼干),知道价格并且有 20 欧元的预算。他喜欢多样化(即,如果可能,他想拥有所有三种产品)并且他的满意度正在下降(他喜欢他的第一个饼干超过他的第 100 个)。
他希望最大化的函数是
当然,由于每个人都有价格,而且他的预算有限,他会在以下约束条件下最大化此功能
我要做的是找到满足约束条件的最优购买清单(N ananas, M banans, K cookies)。
如果问题是线性的,我会简单地使用 linprog::solveLP()。但是目标函数是非线性的。 如果问题是连续性的,那将是一个简单的分析解决方案。
这个问题是离散和非线性的,我不知道如何继续。
这里有一些玩具数据可以玩。
df <- data.frame(rbind(c("ananas",2.17),c("banana",0.75),c("cookie",1.34)))
names(df) <- c("product","price")
我想要一个优化例程,为我提供 (N,M,K) 的最佳购买清单。
有什么提示吗?
【问题讨论】:
-
基本上你需要的是一个非线性、不等式约束的离散优化器,我不相信它存在于 R 中(目前)。您可以使用
Rsolnp,它提供了除离散案例之外的所有内容,然后测试估计值的向上和向下舍入的所有组合。如果参数太多,那么您可以通过取舍入的值来妥协。在大多数情况下,这仍然是一个可以接受的解决方案。 -
我想知道现在R中是否存在这样的包?
标签: r optimization constraints discrete-mathematics