本文分享一个作者做过的真实案例:是一家国际一线品牌(下文称X品牌)在大陆地区的电商业务,在某年双11期间增设临时大仓的选址问题。这些仓库的备货情况会直接影响双11期间物流效率和配送成本。因为X品牌是通过这些仓库直接交给2C快递公司(顺丰)进行配送的。除去目前已有的4个城市的固定仓库,再选出4-6个城市拓展临时仓库。目标是总配送成本(和顺丰合作)尽可能低,同时整体配送的时效性要达到标准。利用过去3年的全部订单数据进行大数据分析和计算,给出方案。
问题说明
根据X品牌大陆电商业务双11的销量历史数据,计算物流成本最优的2C仓库部署方案。可利用的输入数据包括:
- X品牌大陆电商业务(天猫旗舰店和官网)a年到b年(共3年)双11当天全国333个城市的销量数据;
- 各个城市之间顺丰快递的价格,包括基本价格和续重价格;
- 各个省之间顺丰快递的时效性数据。
需要得到的结果:
在给定期待销售量和仓库部署数量的情况下,在保证时效性的同时,计算出最优化物流成本的仓库分配方案。例如,当年双11期间X品牌电商预计销售900万件,并计划全国部署10个仓库,那么在保证所有城市的快递时效性尽可能快的前提下(1-2),给出这10个仓库应该选择在哪10个城市,以及每个仓库应该覆盖哪些城市。
算法说明
算法步骤:
- 根据a年到b年双11当天333个城市的销量占比和c年(b+1)预计的总销量,得出c年预测的每个城市的销量。这里采用a年到b年四年各城市销量占比的算术平均值作为预测的占比值。
- 利用顺丰给出的各个城市的快递价格和1得到的预测销量,得出各个城市间的快递成本矩阵。矩阵的第i行第j列的数据就表示从城市i往城市j发货预计的总成本。这里假设销售出去的每一件商品都是一个包裹,所以得出的成本要比实际成本高,但这并不会影响算法精度。另外,考虑到包裹超重的情况,所以得出三个矩阵:标准价格无续重,标准价格加0.5倍续重价格,标准价格加1倍续重价格。
- 根据顺丰快递在各个省之间的时效性数据,得出上面333个城市之间的时效性矩阵。矩阵的第i行第j列的数据就表示从城市i往城市j发货的时效性(取值1、2、3)。
- 开始进行成本最优化条件下的聚类:
- 聚类开始:初始假设333个城市均各自部署一个仓库,也就是每个城市独自形成一个簇,这时候物流成本最小,时效性最高;
- 聚类迭代:每次循环选出物流成本增量最小的两个簇进行聚类,如果物流成本增量相同,那么就选择簇内时效性最快的两个簇进行聚类。簇内时效性的定义是簇中心(即仓库城市)到簇内各个城市的根据销量的加权平均数(取值1-3之间);
- 合并两个簇成为一个新的簇,选出簇中心。选择方法就是新簇形成的物流成本矩阵中行加和最小的行索引对应的城市。并根据该中心计算簇内时效性和预计成本;
- 经过多次迭代之后就可以得到若干个簇,以及每个簇的中心城市,即候选仓库,以及簇内时效性。比如,目标是聚类成10个簇,那么就需要经过323次聚类迭代。
实验结果
本次实验假设c年线上总销量900万件,并需要10个仓库。这里并没有预先设定X已有的4个固定仓库(廊坊、吴江、广州、成都),而是一视同仁,以求成本优化的平等性。我们可以根据实验结果并结合实际情况给出最终的部署方案。
b年销量数据,10个仓库,物流标准价格无续重
序号 |
仓库所在城市 |
簇内时效性 |
预测销量 |
覆盖城市数量 |
1 |
成都市 |
2.29 |
328801 |
83 |
2 |
抚顺市 |
2.57 |
139065 |
48 |
3 |
台州市 |
1.85 |
1012646 |
50 |
4 |
郑州市 |
2.30 |
143264 |
28 |
5 |
崇左市 |
2.0 |
67124 |
14 |
6 |
北京市 |
1.26 |
299463 |
13 |
7 |
昆明市 |
2.0 |
79871 |
16 |
8 |
青岛市 |
2.0 |
170882 |
17 |
9 |
武汉市 |
2.57 |
284840 |
41 |
10 |
东莞市 |
2.03 |
510336 |
23 |
序号 |
仓库覆盖城市 |
1 |
阿坝藏族羌族自治州, 巴中市, 成都市, 眉山市, 资阳市, 广安市, 广元市, 甘孜藏族自治州, 雅安市, 遂宁市, 内江市, 自贡市, 达州市, 泸州市, 南充市, 乐山市, 宜宾市, 攀枝花市, 德阳市, 绵阳市, 凉山彝族自治州, 拉萨市, 山南地区, 那曲地区, 重庆市, 阿克苏地区, 哈密地区, 克孜勒苏柯尔克孜自治州, 博尔塔拉蒙古自治州, 塔城地区, 巴音郭楞蒙古自治州, 石河子市, 喀什地区, 克拉玛依市, 伊犁哈萨克自治州, 昌吉回族自治州, 乌鲁木齐市, 安顺市, 毕节市, 六盘水市, 铜仁市, 黔西南布依族苗族自治州, 贵阳市, 黔东南苗族侗族自治州, 黔南布依族苗族自治州, 遵义市, 安康市, 铜川市, 商洛市, 宝鸡市, 延安市, 汉中市, 渭南市, 西安市, 咸阳市, 榆林市, 白银市, 定西市, 甘南藏族自治州, 金昌市, 兰州市, 临夏回族自治州, 陇南市, 平凉市, 庆阳市, 天水市, 武威市, 张掖市, 嘉峪关市, 酒泉市, 固原市, 中卫市, 石嘴山市, 吴忠市, 银川市, 果洛藏族自治州, 海北藏族自治州, 海东市, 海南藏族自治州, 海西蒙古族藏族自治州, 玉树藏族自治州, 黄南藏族自治州, 西宁市 |
2 |
阿拉善盟, 巴彦淖尔市, 乌海市, 乌兰察布市, 包头市, 鄂尔多斯市, 呼和浩特市, 赤峰市, 锡林郭勒盟, 通辽市, 呼伦贝尔市, 兴安盟, 鞍山市, 阜新市, 本溪 |