假设现在某型号有2个供货商提供,最简化模型如下:

A: (P X),(Q Y)

B: (P M),(Q N)

根据实际情况,买的多价格越低,故X>Y,M>N

如果M>X,N>Y,明显的不论数量多少都应该去A买,反之亦然。

M>X,N<Y为例,则可推断出M>X>Y>N

假设两家的价格阶梯相同,则P<Q。客户需要购买产品数量是W,如果顾客拆分到两家分别购买是最优解的话,则有:

1
iQ*N + (W-iQ)*X < W*N 且 0 < W - iQ < Q (其中i为小于W时Q的最大倍数,比如W=21,Q=10,则i=2)

为了方便计算令i为1,如果上述假设成立,则应得出结果是:X < N

与题设矛盾。那么,真的存在这种从B买iQ个从A买(W-iQ)个的最优解吗?

上面的模型建立应该是有问题的,比如**阶梯数量不同的时候,多个阶梯价格成交替状态,产品库存数量…都会影响到最优推荐算法。

怎么办呢??????

这个赶脚本质应该是一个第归问题。

1
2
3
4
5
6
7
8
9
(A,R)(B,S)(C,T)

(A,J)(B,K)(C,L)

R>S>T

J>k>L

R<J,S>K,T<L

那么则 J>R>S>K>L>T

这里还是先不考虑阶梯数量不同的问题。

首先需要的数量为W,由题设可知iC个数量应该用价格T购买,则问题变成了:对于剩下的(W-iC)个数量,是继续用T的价格买还是分配到小于当前的数量阶梯去买合适?

想知道这个答案,则需要知道的是: 对于数量是(W-iC)的情况,该如何在(A,R)(B,S)(A,J)(B,K)中购买最便宜?(这里假设W-iC > B,即可以从第2阶梯购买)

由题设知道K<S,则剩下的大部分应该用K的价格买。那么,问题就变成了:对于剩下的(W-iC-xB)个数量,是继续用K的价格买还是分配到小于当前数量阶梯去买合适?

想知道这个答案,则需要知道的是: 对于数量是(W-iC-xB)的情况,该如何在(A,J)(B,K)中购买最便宜?

由题设可知,R<J,则剩下的部分用R的价格买。

那么,这一步比较的是:W-iC-xB)* K(W-iC-xB)* R 的大小。

假设(W-iC-xB)*R小(这是复杂情况),进而比较的是(W-iC-xB)* R + xB * K(W-iC)* T 的大小。

否则比较的是(W-iC)* K(W-iC)* T的大小

不论阶梯价格如何,最终价格有以下几种可能组合

  1. W * T 剩下的(W-iC)用T价格购买,即全部用T购买。
  2. iC * T + (W-iC) * K 剩下的(W-iC)全部用K购买,即(W-iC-xB)* K <(W-iC-xB)* R
  3. iC * T + xB * K + (W-iC-xB)* R 剩下的(W-iC)中,xB个用K购买,剩下的用R购买。(W-iC-xB)* K <(W-iC-xB)* R

对于更多数量阶梯原理类似。

这里需要注意的是,建立在严格的J>R>S>K>L>T前提下,W*T一定是最优解。

不知道这个算法对不对呢?

补充:

最大阶梯应该限制在满足库存的情况下

(A,R)(B,S) 虽然T<L 不过库存数量小于C,则忽略T的价格阶梯。

(A,J)(B,K)(C,L)

再比如:

  • (A,R)(B,S)(C,T)
  • (B,J)(C,K)(D,L)

(1,10)(5,5)(10,1) (3,9)(6,4)(9,2)

假设买12个,虽然10和9不是同数量,但是都是各自阶梯中最接近12的,所以他们放在一起比较。

这种阶梯应也不影响上面的算法。