粒子群优化算法车辆路径问题.docx

上传人:b****6 文档编号:6973822 上传时间:2023-01-13 格式:DOCX 页数:11 大小:23.27KB
下载 相关 举报
粒子群优化算法车辆路径问题.docx_第1页
第1页 / 共11页
粒子群优化算法车辆路径问题.docx_第2页
第2页 / 共11页
粒子群优化算法车辆路径问题.docx_第3页
第3页 / 共11页
粒子群优化算法车辆路径问题.docx_第4页
第4页 / 共11页
粒子群优化算法车辆路径问题.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

粒子群优化算法车辆路径问题.docx

《粒子群优化算法车辆路径问题.docx》由会员分享,可在线阅读,更多相关《粒子群优化算法车辆路径问题.docx(11页珍藏版)》请在冰豆网上搜索。

粒子群优化算法车辆路径问题.docx

粒子群优化算法车辆路径问题

粒子群优化算法

计算车辆路径问题

摘要

粒子群优化算法中,粒子群由多个粒子组成,每个粒子的位置代表优化问题在□维搜索空间中潜在的解。

根据各自的位置,每个粒子用一个速度来决定其飞行的方向和距离,然后通过优化函数计算出一个适应度函数值(fitness)。

粒子是根据如下三条原则来更新自身的状态:

(1)在飞行过程中始终保持自身的惯性;

(2)按自身的最优位置来改变状态;(3)按群体的最优位置来改变状态。

本文主要运用运筹学中粒子群优化算法解决车辆路径问题。

车辆路径问题由Dantzig和Ram

ser于1959年首次提出的,它是指对一系列发货点(或收货点),组成适当的行车路径,使车辆有序地通过它们,在满足一定约束条件的情况下,达到一定的目标(诸如路程最短、费用最小,耗费时间尽量少等),属于完全NP问题,在运筹、计算机、物流、管理等学科均有重要意义。

粒子群算法是最近出现的一种模拟鸟群飞行的仿生算法,有着个体数目少、计算简单、鲁棒性好等优点,在各类多维连续空间优化问题上均取得非常好的效果。

本文将PSO应用于车辆路径问题求解中,取得了很好的效果。

针对本题,一个中心仓库、7个需求点、中心有3辆车,容量均为1,由这三辆车向7个需求点配送货物,出发点和收车点都是中心仓库。

k=3,q1=q^=q3=1,^=7.货物需求量

=0.89,g2=0.14,g3=0.28,g4=0.33,g5=0.21,g6=0.41,g7=0.57,且

mgiaXk。

利用matlab编程,求出需求点和中心仓库、需求点之间的各

个距离,用Cj表示。

求满足需求的最小的车辆行驶路径,就是求minz八77CjXi。

经过初始化粒子群,将初始的适应值作为每个粒子的个

ijk

体最优解,并寻找子群内的最优解以及全局的最优解。

重复以上步骤,直到满足

终止条件。

本题的最短路径由计算可知为217.81。

关键字:

粒子群算法、车辆路径、速度

问题的重述

一个中心仓库序号为0,7个需求点序号为1~7,其位置坐标见表1,中心有

3辆车,容量均为1,由这三辆车向7个需求点配送货物,出发点和收车点都是中心仓库。

求满足需求的距离最小的车辆行驶路径。

问题假设

表1仓库中心坐标和需求点坐标及需求量

序号

0

1

2

3

4

5

6

7

坐标

(18,54)

(22,60)

(58,69)

(71,71)

(83,46)

(91,38)

(24,42)

(18,40)

需求量

0

0.89

0.14

0.28

0.33

0.21

0..41

0.57

1•现实生活中中心仓库以及各个需求点之间军事直线连接,两点之间距离即为坐标系中两点坐标间距离。

2•不因天气及失火等原因车辆停止运输。

3•每个需求点由一辆车供应货物。

三、符号说明

k

配送货物车辆数

l

需求点个数

gi

货物需求量

qk

配送货物车辆的容量

Cj

从点i到j的距离

yki

需求点i由k车配送

Xijk

车k从i行驶到j

四、问题分析

4.1算法分析

车辆路径问题(VRP可以描述为有一个中心仓库,拥有K辆车,容量

分别为q'k=1,2,…,K),负责向L个需求点配送货物,货物需求量为

gi(i=1,2,…,L),且maxg^maxqk;cij表示从点i至Uj的距离。

求满足需求的距离最小的车辆行驶路径。

将中心仓库编号为0,需求点编号为1,2,…,L。

数学模型为:

minZ=、、、CjXjk

ijk

s.t.giykiXk,—k

i

、yki7i=1,2,,L

k

'Xijk二ykj,j=0,1,丄;—k

i

'Xjk=yki,i=0,1,丄;—k

X=(Xjk)S

Xjk=0或1,i,j=0,1,丄;-kyki=0或1,i=0,1,丄;-k

其中,

需求点i由k车配送1车k从i行驶驶j

否则,Xjk」0否则

k=3,qi=q2=q3=1,1=7.货物需求量

g^0.89,g^0.14,g^0.28,g^0.33,g^0.21,g^0.41,g^0.57,利用粒子群

优化算法,经过初始化粒子群,将初始的适应值作为每个粒子的个体最优解,并

寻找子群内的最优解以及全局的最优解。

重复以上步骤,直到满足终止条件。

4.2举例具体演算分析

例如,设VRP问题中发货点任务数为7,车辆数为3,若某粒子的位置向量X为:

发货点任务号:

1234567

XV:

1222233Xr:

1431221

则该粒子对应解路径为:

车1:

0—1—0

车2:

0—4—5—3—2—0

车3:

0—7—6—0

粒子速度向量V与之对应表示为Vv和Vr

该表示方法的最大优点是使每个发货点都得到车辆的配送服务,并限制每个发货点的需求仅能由某一车辆来完成,使解的可行化过程计算大大减少Z虽然该表示方法的维数较高,但由于PSO算法在多维寻优问题有着非常好的特性,维数的增加并未增加计算的复杂性,这一点在实验结果中可以看到

五、模型的建立与求解

在本题中,需要分别计算以下几个内容,计算需求点与中心仓库及各需求点间距离,利用粒子群优化算法,求出函数的全局最优位置和最后得到的优化极值。

5.1需求点与中心仓库及各需求点间距离

利用直角三角形勾股定理,求斜边长度。

AX’yJ,B(x2,y2),直角坐标系

中求A,B两点之间距离ABf(y2-yj2(x2-x1)2

距离

0

1

2

3

4

5

6

7

0

0

7.2111

42.72

55.66

65.49

74.733

13.416

14

1

7.2111

0

37.108

50.22

62.586

72.422

18.111

20.396

2

42.72

37.108

0

13.153

33.971

45.277

43.417

49.406

3

55.66

50.22

13.153

0

27.731

38.588

55.227

61.4

4

65.49

62.586

33.971

27.731

0

11.314

59.135

65.276

5

74.733

72.422

45.277

38.588

11.314

0

67.119

73.027

6

13.416

18.111

43.417

55.227

59.135

67.119

0

6.3246

7

14

20.396

49.406

61.4

65.276

73.027

6.3246

0

5.2粒子群优化算法

5.2.1算法实现过程

步骤1初始化粒子群

1粒子群划分成若干个两两相互重叠的相邻子群;

2每个粒子位置向量Xv的每一维随机取1〜K(车辆数)之间的整数,Xr的每一维随机取1〜L(发货点任务数)之间的实数;

3每个速度向量Vv的每一维随机取-(K-1)〜(K-1)(车辆数)之间的整数,Vr的每一维随机取-(L-1)〜(L-1)之间的实数;

4用评价函数Eval评价所有粒子;

5将初始评价值作为个体历史最优解Pi,并寻找各子群内的最优解Pl和

总群体内最优解Pg

步骤2重复执行以下步骤,直到满足终止条件或达到最大迭代次数

1对每一个粒子,计算Vv、Vr;计算Xv、Xr,其中Xv向上取整;当V、

X超过其范围时按边界取值

2用评价函数EvaI评价所有粒子;

3若某个粒子的当前评价值优于其历史最优评价值,则记当前评价值为该历

史最优评价值,同时将当前位置向量记为该粒子历史最优位置Pi;

4寻找当前各相邻子群内最优和总群体内最优解,若优于历史最优解则更新

PI、Pg

5.2.2针对本题

0表示中心仓库,设车辆容量皆为q=1.0,由3辆车完成所有任务,初始化

群体个数n=40;惯性权重w=0.729;学习因子c1=c2=1.49445;最大代数

MaxDT=50;搜索空间维数(未知数个数)D=7;

算法得到的最优值的代数及所得到的最优解,预计迭代次数50,共进行20次运算

运算次数1

2

3

4

5

6

7

8

9

10

总距离

217.81

230.41

217.81

217.813

£3.04

217.81

303.04

217.81

217.81

230.41

运算次数1

1

12

13

14

15

16

17

18

19

20

总距离

217.81

217.81

230.41

217.81:

>17.81

217.81

217.81

217.81

217.81

217.81

从实验结果分析,15次达到已知最优解,得到的最优总路径为:

0r7-6_0-1-0-2-3-4-5_0

对应的行车路线为:

车辆一:

0》7》6》0

车辆二:

0》1》0

车辆三:

0>2>3>4>5>0

行车总距离217.81

粒子群优化算法达到最优路径50次的代数

7

23

2

17

7

17

13

7

41

19

28

11

33

14

21

23

11

71

82

24

13

58

36

20

10

3

8

5

65

35

9

2

15

76

25

67

30

55

9

29

21

6

38

9

43

148

1

29

3

79

六、模型的评价

粒子群优化算法结果分析

方法

达到最优

路径次数

未达最优

路径次数

达到最优路

径平均代数

达到最优路径平

均时间(S)

粒子群

50

0

28.36

3.04

分析PSO方法,可以看出它与GA等其他演化算法的最大不同在于

1)迭代运算中只涉及到初等运算,且运算量非常少;

2)每个粒子能直接获取群体历史经验和个体历史经验,比在其他方法中使用精

英集(elitism)的方法更有效;

3)整个粒子群被划分为几个的子群,且子群之间有一定重叠,从而使收敛于局部最优解的几率大大减少L

正因为如此,本文将PSO应用于带时间窗车辆路径问题求解中,取得了很好的效果,有着运算速度快、解的质量与个体数目相关性小、所获得的解质量高等诸多优点

七、模型的改进和推广

7.1模型的改进

针对粒子群优化算法存在的问题,提出了一种新的改进算法—基于粒子进化的多粒子群优化算法。

该算法采用局部版的粒子群优化方法,从“粒子进化”和“多种群”两个方面对标准粒子群算法进行改进。

多个粒子群彼此独立地搜索解空间,保持了粒子种群的多样性,从而增强了全局搜索能力而适当的“粒子进化”可以使陷入局部最优的粒子迅速跳出,有效的避免了算法“早熟”,提高了算法的稳定性。

将基于粒子进化的多粒子群优化算法用于求解非线性方程组。

该算法求解精度高、收敛速度快,而且克服了一些算法对初值的敏感和需要函数可导的困难,能较快地求出复杂非线性方程组的最优解。

数值仿真结果显示了该算法的有效性和可行性,为求解非线性方程组提供了一种实用的方法。

7.2模型的推广作为物流系统优化中的重要一环,合理安排车辆路径、进行物流车辆优化调度可以提高物流经济效益、实现物流科学化。

粒子群算法在多维寻优中有着非常好的特性,加入“邻居算子”的粒子群算法能使算法更好的全局寻优。

本文的研究表明,改进局部办粒子群算法,能过有效地解决车辆路径问题。

八、参考文献

[1]

李军,郭耀煌.物流配送车辆优化调度理论与方法

[M].北京:

中国

物资出版社,2001.

.计

[2]马炫,彭芃,刘庆.求解带时间窗车辆路径问题的改进粒子群算法算机工程与应用,2009,45(27):

200-202

[3]姜启源,《数学建模》,高教出版社,2000年

附录

需求点与中心仓库及各需求点间距离

c=[];zuobiao=[1854

2260

5869

7171

8346

9138

2442

1840];

fori=1:

8

forj=1:

8

c(i,j)=sqrt((zuobiao(j,2)-zuobiao(i,2))A2+(zuobiaoQ,1)-zuobiao(i,1))

A2);

end

end

c

粒子群优化算法求解

主算法

clearall;

clc;

formatlong;

%给定初始化条件

c1=1.4962;

%

学习因子1

c2=1.4962;

%

学习因子2

w=0.7298;

%

惯性权重

MaxDT=50;

%

最大迭代次数

D=7;

%

搜索空间维数(未知数个数)

N=40;

%

初始化群体个体数目

%初始化种群的个体(可以在这里限定位置和速度的范围)

fori=1:

N

forj=1:

D

是向离它最近的大整数圆整

x1(i,j)=ceil(3*rand());%随机初始化位置ceil

x2(i,j)=ceil(7*rand());

v1(i,j)=2*(2*rand()-1);%随机初始化速度%v2(i,j)=6*(2*rand()-1);

end

end

%先计算各个粒子的适应度,并初始化Pbest和gbest

fori=1:

N

y1(i,:

)=x1(i,:

);

y2(i,:

)=x2(i,:

);

pbest(i)=fitness(y1(i,:

),y2(i,:

),D);

end

pg1=x1(1,:

);%Pg为全局最优

pg2=x2(1,:

);

fori=2:

N

iffitness(x1(i,:

),x2(i,:

),D)

pg1=x1(i,:

);

pg2=x2(i,:

);

gbest=fitness(pg1,pg2,D);

end

end

%进入主要循环,按照公式依次迭代,直到满足精度要求

fort=1:

MaxDT

fori=1:

N

v1(i,:

)=w*v1(i,:

)+c1*rand*(y1(i,:

)-x1(i,:

))+c2*rand*(pg1-x1(i,:

));

x1(i,:

)=x1(i,:

)+v1(i,:

);

x1(i,:

)=ceil(x1(i,:

));

forj=1:

D

ifx1(i,j)<1

x1(i,j)=1;

end

ifx1(i,j)>3

x1(i,j)=3;

end

end

forj=1:

D

x2(i,j)=ceil(7*rand());

end

iffitness(x1(i,:

),x2(i,:

),D)

y1(i,:

)=x1(i,:

);

y2(i,:

)=x2(i,:

);

pbest(i)=fitness(y1(i,:

),y2(i,:

),D);

end

ifpbest(i)

pg1=x1(i,:

);

pg2=x2(i,:

);

end

end

end

%最后给出计算结果

disp('disp('函数的全局最优位置为:

')

Solution1=pg1

Solution2=pg2disp('最后得到的优化极值为:

')

Result=fitness(pg1,pg2,D)

disp('

*************************************************************1

辅助算法

functionresult=fitness(x1,x2,D);

aa=[infinfinfinfinfinfinf];bb=[infinfinfinfinfinfinf];cc=[infinfinfinfinfinfinf];

fori=1:

D

ifx1(i)==1

aa(i)=x2(i);

elseifx1(i)==2bb(i)=x2(i);

elsecc(i)=x2(i);

end

endendresult=f(cc)+f(bb)+f(aa);辅助算法二functionff=f(x);

loadc.matsum=0;

[yind]=sort(x);fori=1:

7

ify(i)==inf

j=i-1;break;

elsej=7;

end

end

ifj<1

sum=inf;

elseifj==1sum=sum+2*c(1,ind(j)+1);

elsesum=sum+c(1,ind(j)+1)+c(1,ind

(1)+1);fori=1:

j-1sum=sum+c(ind(i)+1,ind(i+1)+1);end

end

end

ff=sum;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 中国风

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1