粒子群算法编程问题实例:
MATLAB粒子群算法求解超市物流配送选址问题实例
粒子群算法编程问题实例:
在范围为(0,0)到(100,100)的矩形区域内,散布着40个连锁超市,各个连锁超市的坐标及需求量见表1。要求在该矩形区域内确定6个位置建立配送中心。已知各配送中心容量不限,每个超市只由一个配送中心负责配送,使得6个配送中心到所有超市的总配送物流量(距离×需求量)最小,其中配送中心到超市的距离为直线距离。请建立该问题的模型,利用粒子群算法编程求解上述问题。
表1 各需求点坐标及需求量
No. 坐标 需求量 No. 坐标 需求量 No. 坐标 需求量 No. 坐标 需求量
1 (1,0) 10 11 (82,95) 30 21 (56,34) 70 31 (17,80) 90
2 (33,3) 10 12 (21,42) 40 22 (86,26) 20 32 (29,33) 50
3 (35,21) 40 13 (95,83) 30 23 (17,42) 10 33 (40,24) 20
4 (53,19) 10 14 (92,81) 20 24 (69,16) 20 34 (41,5) 40
5 (70,94) 40 15 (45,60) 20 25 (53,64) 30 35 (49,98) 10
6 (27,44) 30 16 (66,59) 30 26 (62,0) 30 36 (0,40) 40
7 (10,69) 10 17 (54,72) 20 27 (78,26) 30 37 (6,7) 20
8 (56,4) 20 18 (11,40) 10 28 (46,38) 20 38 (25,97) 20
9 (16,81) 40 19 (12,67) 20 29 (37,58) 50 39 (35,40) 30
10 (68,76) 30 20 (47,49) 30 30 (60,27) 30 40 (19,19) 50
2 求解模型的粒子群算法设计
粒子群算法简介
已知信息:40个超市的坐标位置图
如何确定6个位置建立配送中心,使得6个配送中心到所有超市的总配送物流量(距离×需求量)最小呢?当然是通过算法优化求解啦!
先看下求解结果!
运行结果:
最优解:
所选配送中心编号(共6个): 3 31 11 15 30 12
下面求解出来的第一列表示超市编号,第二列表示对应的配送中心编号:
超市编号 对应的配送中心编号
1 3
2 3
4 30
5 11
6 12
7 31
8 30
9 31
10 11
13 11
14 11
16 15
17 15
18 12
19 31
20 15
21 30
22 30
23 12
24 30
25 15
26 30
27 30
28 30
29 15
32 12
33 3
34 3
35 11
36 12
37 3
38 31
39 12
40 3
总配送物流量:13904.5804
点击查看麦哥个人简介及代码获取方式