该文章为原创,CSDN首发。转载请注明出处及原作者。
多仓库多货物配送算法
摘要:
随着电子商务和现代物流业的发展,多仓库发货已经成为越来越多企业的选择,随之而来的,是多仓库发货的分配问题,企业如何调度发货,已经成为一个迫切需要解决的问题。文章提出了一种多仓库配送算法,实现配送过程代价最小。
关键字:物流;多仓库;最小代价
1、研究现状
(1)sweep算法。根据就近的基本原则,通过对每一个任务的配送地点距离最近仓库的实际距离来计算得出比值。有点是较为简便、计算快捷。
(2)saving算法。类似TSP的节约算法。
(3)神经网络算法。
2、多仓库多货物配送算法(Multi storehouse and multi goods delivery algorithm,简称MSMGDA)
2.1符号及定义
企业存在多个仓库,分别为S1、S2…Sn;
企业拥有多个物品,分别为G1、G2…Gn;
各个仓库运送到目标的成本(可为价格成本、时间成本及其他成本,以下简称成本)为:P1、P2…Pn;
各仓库存储的物品为一矩阵,分别代表S1到Sn仓库是否有物品G1-Gn。
仓库名称 | G1 | G2 | … | Gn |
S1 | 有 | 有 | 无 | 有 |
S2 | 无 | 有 | 有 | 有 |
… | 有 | 无 | 有 | 有 |
Sn | 无 | 有 | 无 | 无 |
3 配送算法设计
3.1 A方案,仓库数量少于所选物品的情况。
(1)获取各个仓库运送到目标的成本P1-Pn,实际应用中,成本基本固定,可采用查表法检索,在具有索引的数据库上查询,时间复杂度为O(n)。
(2)获取所有仓库配送方式的组合A,并按成本从低到高排序。时间复杂度为O(n!)。
(3)剪枝(可选)。遍历组合A,去除成本高,但实际物品还不如低成本方案的情况。形成组合B。
实际情况下,如各库库存物品变化不频繁的情况下,步骤(2)(3)可计算后存储,方便后续使用。
(4)遍历组合A或B,获取最佳组合。实际情况下,平均时间复杂度应该远远小于最大时间复杂度。
3.2 B方案,所选物品较少的情况
(1)获取包含物品G1-Gn的所有仓库,形成类似下表的集合A,时间复杂度O(n):
物品 | G1 | G2 | … | Gn |
仓库 | S1、S3 | S1、S2、S4 | S2、S3 | S1、S2、S3 |
(2)该问题转化为经典的树问题,通过从叶子依次向上收缩+剪枝,来求解最小代价。时间复杂度为O()
3、算法适用范围。
(1)多仓库;
(2)多货物;
(3)仓库有选择的储存货物。
作者:黄大勇,2019-10-25,济南,联系方式:278544343@QQ.COM