将定价优化制定为 MILP
Formulating pricing optimization as MILP
我不确定是否有可能以线性方式表述以下问题,或者我是否应该尝试非线性优化它。
我希望找到产品的固定费用 F
和可变价格 p
的最佳组合。
我有给定数量的 n
客户,他们每个人都想购买数量 q_i
,他们愿意为此支付总价 w_i
。
我的 objective 是最大化收入:max sum( F + q_i * p)
所有客户 i in n
我的决策变量当然是F
和p
,然后是n个二进制变量s_i
,表示客户是否购买。
我在表述这个问题时遇到了困难,并且以一种允许客户不购买的方式进行限制 - 一些客户的支付意愿非常低。
显然存在约束 F + q_i * p <= w_i
但这仅适用于购买的客户。我想强加类似 s_i * (F + q_i * p) <= w_i
的东西,但这显然不是线性的。
我希望以上内容有意义,并在此先感谢您的帮助。
我再试一次。
我们可以将问题表述为:
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)]
我不确定是否有可能以线性方式表述以下问题,或者我是否应该尝试非线性优化它。
我希望找到产品的固定费用 F
和可变价格 p
的最佳组合。
我有给定数量的 n
客户,他们每个人都想购买数量 q_i
,他们愿意为此支付总价 w_i
。
我的 objective 是最大化收入:max sum( F + q_i * p)
所有客户 i in n
我的决策变量当然是F
和p
,然后是n个二进制变量s_i
,表示客户是否购买。
我在表述这个问题时遇到了困难,并且以一种允许客户不购买的方式进行限制 - 一些客户的支付意愿非常低。
显然存在约束 F + q_i * p <= w_i
但这仅适用于购买的客户。我想强加类似 s_i * (F + q_i * p) <= w_i
的东西,但这显然不是线性的。
我希望以上内容有意义,并在此先感谢您的帮助。
我再试一次。
我们可以将问题表述为:
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)]