将定价优化表述为混合整数线性规划问题(MILP)

3
我不确定是否可以线性地表述以下问题,还是应该尝试非线性优化。
我希望找到一个产品的固定费用F和变量价格p的最佳组合。
我有给定数量的n个客户,每个客户都想购买数量为qi的产品,他们愿意支付wi的总价。
我的目标是最大化收入:对于所有客户i∈n,max sum(F+qi*p)。
我的决策变量当然是F和p,以及n个二进制变量si,表示客户是否购买。
我在构建这个问题和约束方面遇到了困难,因为有些客户的购买意愿非常低。
显然有约束条件F+qi*p<=wi,但这仅适用于购买的客户。我想要施加类似于si*(F+qi*p)<=wi的东西,但这显然不是线性的。
希望以上内容有意义,并感谢您提前的任何帮助。

1
这被称为“固定费用问题”。这是一个众所周知的问题。标准公式可以在谷歌上找到。 - Erwin Kalvelagen
感谢您的评论!我很可能错了,但据我了解,固定费用问题是关于最小化已知固定和可变“费用”的总成本 - 通常是生产或运输成本。在我的情况下,“费用”本身是一个决策变量,价格必须确定以优化收入。 - Ingmar
为什么不使用NLP with gekko呢? - undefined
对于MILP(混合整数线性规划)的这个公式,请提供翻译后的文本。 - undefined
1个回答

3
让我再试一次。
我们可以将问题陈述为:

 max sum(i,  s(i)*(F+p*q(i))) 
     s(i)*(F+p*q(i)) ≤ w(i)
     for variables s(i) ∈ {0,1}, p ≥ 0, F ≥ 0

这可以线性化为:
 max sum(i, y(i))
     y(i) ≤ F+p*q(i)
     y(i) ≤ s(i)*w(i)
     y(i) ≥ F+p*q(i) - (1-s(i))*M
     for variables s(i) ∈ {0,1}, p ≥ 0, F ≥ 0, y(i) ≥ 0
     with M a large enough constant

许多求解器允许使用指示器约束。这将简化事情:

 max sum(i, y(i))
     s(i) = 1 ==> y(i) = F+p*q(i)
     y(i) ≤ s(i)*w(i)  
     for variables s(i) ∈ {0,1}, p ≥ 0, F ≥ 0, y(i) ≥ 0      

或者使用两个指示器约束:
 max sum(i, y(i))
     s(i) = 1 ==> y(i) = F+p*q(i)
     s(i) = 0 ==> y(i) = 0
     for variables s(i) ∈ {0,1}, p ≥ 0, F ≥ 0, y(i) ∈ [0,w(i)]      

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接