实际中遇到一个实际场景,想了半天没想到合适的方式,有没有算法达人点拨下?
场景是电商发货中,每个商品都有多种的发货渠道,每种渠道的价格不同,然后还有各种包裹限制,所以需要综合判断,选择一个最优的发货方式:
1.有 n 个商品,每个商品有:
a.价格 price
b.重量 weight
c.税率 tax
2.有 m 种渠道,每个渠道都有如下几个属性:
a.首重成本 x 元(假设首重指的是 1kg)
b.续重成本 y 元 /kg
c.单个包裹重量上限 L1
d.单个包裹价值上限 L2
e.单个包裹税金上限 L3
现在要对这些商品进行拆分,寻找最优拆分方式,要求:
1.成本价最低
2.单个包裹不能超过上述的限制 L1\L2\L3,也就是说一旦超过后,则需要另外起一个包裹。
最简单的方式是把所有的可能性都摆出来,然后一一计算,选一个最优的,但是 n 和 m 一多的话,计算量就很大。。
不知道有什么合适的算法可以处理这种问题吗?
ps1:
之前还想这么做:m 个渠道就是 m 个 slot,然后对每个商品,计算该商品丢到各个 slot 后,总的成本价分别是多少,然后选择一个最便宜的丢进去,但是实际上这个每个渠道是由首重+续重来确定费用的,因此商品丢到这个 slot 后,可能当前是最便宜的,但是最终结果不一定,比如渠道 1:首重很便宜,但是续重很贵;渠道 2:首重很贵,但是续重很便宜。。
场景是电商发货中,每个商品都有多种的发货渠道,每种渠道的价格不同,然后还有各种包裹限制,所以需要综合判断,选择一个最优的发货方式:
1.有 n 个商品,每个商品有:
a.价格 price
b.重量 weight
c.税率 tax
2.有 m 种渠道,每个渠道都有如下几个属性:
a.首重成本 x 元(假设首重指的是 1kg)
b.续重成本 y 元 /kg
c.单个包裹重量上限 L1
d.单个包裹价值上限 L2
e.单个包裹税金上限 L3
现在要对这些商品进行拆分,寻找最优拆分方式,要求:
1.成本价最低
2.单个包裹不能超过上述的限制 L1\L2\L3,也就是说一旦超过后,则需要另外起一个包裹。
最简单的方式是把所有的可能性都摆出来,然后一一计算,选一个最优的,但是 n 和 m 一多的话,计算量就很大。。
不知道有什么合适的算法可以处理这种问题吗?
ps1:
之前还想这么做:m 个渠道就是 m 个 slot,然后对每个商品,计算该商品丢到各个 slot 后,总的成本价分别是多少,然后选择一个最便宜的丢进去,但是实际上这个每个渠道是由首重+续重来确定费用的,因此商品丢到这个 slot 后,可能当前是最便宜的,但是最终结果不一定,比如渠道 1:首重很便宜,但是续重很贵;渠道 2:首重很贵,但是续重很便宜。。