物流调度中的混合人工智能算法设计大学本科毕业论文.doc

上传人:沧海****B 文档编号:91493380 上传时间:2023-05-27 格式:DOC 页数:28 大小:243KB
返回 下载 相关 举报
物流调度中的混合人工智能算法设计大学本科毕业论文.doc_第1页
第1页 / 共28页
物流调度中的混合人工智能算法设计大学本科毕业论文.doc_第2页
第2页 / 共28页
点击查看更多>>
资源描述

《物流调度中的混合人工智能算法设计大学本科毕业论文.doc》由会员分享,可在线阅读,更多相关《物流调度中的混合人工智能算法设计大学本科毕业论文.doc(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、目 录摘要1Abstract21 引言32 车辆优化调度问题的描述42.1 组合优化问题的描述42.2 车辆调度问题的数学模型43 主要人工智能群算法研究53.1 人工鱼群算法原理及其模型63.1.1 人工鱼群算法原理63.1.2 人工鱼群的数学模型73.1.3 人工鱼群算法93.2 人工蜂群算法及其模型93.2.1 人工蜂群算法原理及数学模型93.2.2 人工蜂群算法步骤104 人工鱼群算法在VRP问题上的改进124.1 人工鱼群算法的传统处理方法124.1.1 初始化种群124.1.2 食物浓度的计算134.1.3 人工鱼行为的设计134.1.4 行为选择154.1.5公告栏154.2 传

2、统处理方法的改进164.2.1 基于相似片段的距离164.2.2 基于相似片段距离的人工鱼觅食行为164.2.3 人工鱼视域的改变174.3传统处理方法与改进的方法的实验对比分析174.3.1 实验参数的设置174.3.2 实验结果及对结果的分析185 混合人工蜂群鱼群算法及VRP应用研究205.1人工蜂群算法和人工鱼群算法的优缺点分析205.2 混合人工智能算法的设计215.3 混合人工蜂群人工鱼群算法示意图215.4 混合人工蜂群人工鱼群算法的实现225.5 基于混合人工蜂群人工鱼群算法的VRP问题求解225.5.1 人工蜂行为的设计225.5.2 公告栏236 混合人工智能算法的实验结果

3、分析246.1混合人工智能算法的参数设置246.2三种人工智能算法的实验结果246.3 实验结果的分析257 结束语278 致谢28参考文献29物流调度中的混合人工智能算法摘要随着经济的增长更多行业的分工更加细化,越来越多的企业某些原料在南方加工,而物品的进一步加工和组装在北方进行,进而促使物流配送行业的快速增加,成为企业盈利的重要一步。现在网购行为被大部分人的认可,良好的配送模式能够节省客户和卖家的时间成本和经济成本,从而使得双方达到共赢。因此,配送中心作业的重点就是如何将车辆有效的使用,并决定最经济的行驶路线,使商品能在最短的时间内送到各个客户手中。实际上上述物流配送问题就是车辆路线问题(

4、VRP,Vehicle Routing Problem),它是组合领域中非常著名的NP难题,近二十年来,VRP都是一个非常活跃的研究领域。随着问题规模的增大,使用数学中的确定算法获精确解几乎是不可能的。对于这一问题,目前出现了较多的应用人工智能算法来解决的思路。本论文中主要讨论的是人工蜂群算法和人工鱼群算法,并将这两种进行融合得到新的混合人工智能算法以解决VRP问题。人工鱼群算法在VRP问题上传统的处理方法存在一定的缺陷,本论文将会给予一定的修正。改变对人工鱼距离的定义,使用两条人工鱼中的相同片段的个数作为人工鱼的距离;改变人工鱼觅食行为的方式,使得人工鱼的觅食行为主要通过变换人工鱼中位置信息

5、的片段位置来实现;随着迭代次数的增加,增大人工鱼的视域,使得人工鱼的搜索范围逐渐变大。混合人工智能算法刚开始使用人工蜂群算法搜索全局,然后将这个过程中最好的几个解给予人工鱼鱼群作为人工鱼的初始位置,最后使用人工鱼群算法算法进行人工鱼的聚群、追尾和觅食等行为搜索可行解。每次迭代过程中将最好的解都放在公告栏上,迭代完成以后那么公告栏上的解即为整个搜索过程中得到的最优解。混合人工智能算法能够克服人工鱼群算法的早熟现象和人工蜂群算法的收敛度不高等缺点,在同样的条件下混合人工智能算法获得的解一般情况下比人工鱼群算法和人工蜂群算法要更好。关键词:混合人工智能、人工鱼群算法、人工蜂群算法AbstractWi

6、th the development of economy and more detailed branches,more and more enterprises finds its raw materials in the south of China,while for the further process,it will be in the north.So this kind of situation accelerate the increase of logistics,thus becoming an important step of companys profit.Now

7、adays,e-shopping is recognized by most people.A sound delivery pattern can save both the buyers and the sellerss time and money,leading a win-win result.So the focus of delivery center is how to use cars effectively and make a most economical route so that to ensure that goods can be distribute to e

8、very customer in a shortest time.Actually,the problem about logistic is just VRP,which is a quiet famous question in combination.In the recent 20 years ,VRP is always a very active research area.With the enlargement of the problem,it is almost impossible to attain an accurate result with the fixed a

9、lgorithm in mathematics.For this problem,artificial intelligence algorithm is used to the most to solve it.In this text ,we mainly discuss Artificial Bee Colony (ABC) algorithm and artificial fish school algorithm(AFSA) and we will combine these two to form a combined artificial intelligence algorit

10、hm to solve the problem of VRP.At first ,Mixed artificial intelligence algorithms just uses ABC to search the whole area, then several the best results will be given to the AFSA as the its initial position, and finally using the AFSA to search actives of clusters, rear-end and foraging behavior of a

11、rtificial fish to find the feasible solution .After each iteration, the best solution will be on the bulletin board. When all iterations are finished, the solution on the bulletin boards is the optimal solution.Mixed artificial intelligence algorithms can overcome the shortcomings that AFSA would be

12、 premature and ABC would not have a high degree of convergence. Under the same condition, mixed artificial intelligence algorithms will generally obtain a better solution than that of AFSA and ABC.Keyword: ABC, AFSA , artificial intelligence algorithm1 引言随着市场经济发展步伐的加快,作为“第三利润源泉”的物流行业对经济活动的影响益明显,越来越引

13、起人们的重视1。在现代物流配送系统中,各零售商为了减少资金积压并提供多样化的商品,必然要减少各种商品的存货数量,把主要库存集中到配送中心,由其统一配送;同时又必须考虑到向顾客提供最好的服务品质(不允许缺货等),这就要求配送具有准时等特性. 因此,配送中心作业的重点就是如何将车辆有效的使用,并决定最经济的行驶路线,使商品能在最短的时间内送到各个零售商手中2。而且合理的运送路线可以减少物流配送的运输费用,从而使得零售商的利润最大化。上述物流配送问题实际上就是车辆路线问题(VRP,Vehicle Routing Problem),它是组合领域中非常著名的NP难题,近二十年来,VRP都是一个非常活跃的

14、研究领域3。随着问题规模的增大,使用数学中的确定算法获精确解几乎是不可能的4。对于这一问题,目前出现了较多的应用人工智能算法来解决的思路,比如:遗传算法5、蚁群算法6-7、鱼群算法和蜂群算法等。我国李晓磊博士于2002年提出的一种人工智能算法即人工鱼群算法8-9,该算法具有快速的收敛能力,能够较好地克服局部极值,并且算法对参数选择以及初值不敏感,对搜索空间也就有一定的自适应能力,是一种高效、并行、自适应的全局搜索算法,特别适合于解决组合优化领域的问题,所以应用该算法来求解车辆调度问题是个不错的选择。但是人工鱼群算法也有自身的缺点,在计算早期表现的收敛速度较快,能够迅速靠近最佳求解点,但是后期计

15、算过程中该算法的收敛速度会降低很多,而且求解精度较低10。人工蜂群算法是2005年由土耳其学者KaraBoga11提出的模拟蜜蜂群体寻找优质蜜源的一种动物仿真的智能算法,是群体智能思想的应用。它的主要特点是不需要了解问题的特殊信息,只需要对问题进行优劣的比较,通过各人工蜂个体的局部寻优行为,最终在群体中使全局最优值突现出来,能避免解的早熟现象,但是人工蜂群算法收敛速度不快。所以本文将蜂群和鱼群的特点结合起来,开始使用蜂群算法能够全局搜索解,然后使用鱼群个体的聚群、追尾等群体行为进行搜索,使得全局最优值能够突现出来,达到快速收敛的目的。本文以VRP为基础,通过建立该问题的数学模型,设计具有良好的

16、近似解和较高收敛速度的混合人工智能算法。为了研究方便起见,本文假设不存在某客户的需求量超过一个货车载重量的情况,并且所有车辆的载重量相同,同时不考虑时间窗约束,仅仅将车辆的最短行驶距离作为目标函数。2 车辆优化调度问题的描述2.1 组合优化问题的描述为了满足一般性,对求解最小化问题进行描述,其数学模型如下所示: min g(x) s.t. h(x)0 xM上述公式中,x为决策变量,g(x)为需要求解的最小化目标函数,h(x)为约束函数即需要满足的条件,M为有限个点的组合集合。用M表示决策变量的定义域,G表示问题的可行域,g表示目标函数,x*为满足条件的可行解,故该问题解的数学模型如下:g(x*

17、)=ming(x*)|x*GG=x*|x*M and h(x*)02.2 车辆调度问题的数学模型将一般车辆的优化调度问题(VRP)进行如下描述:从某个物流配送中心(设其编号为0)使用m辆货车向n个货物需要点配送货物(编号依次为1,2,n)为第i个客户的货物需求量,其中这些货车具有相同的载重量qmax,配送中心和各需求点的位置事先已经确定, dij(i=0, 1, 2, ,n;j=0,1,2,,n)为点i和点j之间的运输距离,要求配送的车辆均从配送中心出发,完成货物运送任务后返回配送中心。该问题的目标是:在满足车辆载重量约束和各需求点需求量的约束的情况下,尽量使用较少的车辆且使得车辆的运输距离最

18、短。VRP的解必须满足以下条件:(1) 每个需求点的需求量均小于或等于配送货车的载重量;(2) 客户的需求必须得到满足,且每个需求点只能由一辆货车一次运送完成;(3) 运送完后,货车必须要回到配送中心。若客户i的需求由车辆k完成,则yij的值为1,否则则为0;若车辆k从货物需求点i行驶到需求点j,则xijk的值为1,否则则为0.VRP的数学模型如下:xijk=1表示车辆k从货物需求点i行驶到需求点j,其他情况则xijk=0(i or j=1,2,n; k=1,2,m);yki=1表示车辆k经过需求点i,其他情况则yki=0(i=1,2,n; k=1,2,m)。 3 主要人工智能群算法研究本章主

19、要研究人工鱼群算法和人工蜂群算法的基本原理、数学模型、算法实现等内容。3.1 人工鱼群算法原理及其模型人工鱼群算法由李晓磊等人采用自下而上的寻优模式在2002年提出。该算法模仿自然界鱼群觅食行为,主要以鱼的觅食、聚群和追尾行为构造个体的底层行为;通过鱼群中各个体的局部寻优,达到全局最优值在群体中突现出来的目的。3.1.1 人工鱼群算法原理人工鱼群算法是一种基于动物行为的自治体寻优模式。动物自治体通常指自主机器人或动物模拟实体,它主要是用来展示动物在复杂多变的环境里面能够自主的产生自适应的智能行为的一种方式。鱼类生活习性具有以下几种典型行为:(1)觅食行为:指鱼通过味觉、视觉来判断食物的位置和浓

20、度,从而接近食物的行为。一般情况下,鱼在水中随机的自由游动,当发现食物时,则会向着食物逐渐增多的方向快速游去。这是生物的一种最基本的行为,是通过感知水中的食物量或浓度来选择趋向的。(2)聚群行为:指鱼在游动过程中趋于聚集在一起来寻觅食物(集体觅食)、躲避敌害的行为。这是鱼类较常见的一种现象,鱼聚群时所遵守的规则有三条:分隔规则:尽量避免与临近伙伴过于拥挤:对准规则:尽量与临近伙伴的平均方向一致;内聚规则:尽量向临近伙伴的中心移动。(3)追尾行为:当某一条鱼或几条鱼发现食物时,它们附近的鱼会尾随其后快速游过来,进而导致更远处的鱼也尾随过来。(4)随机行为:鱼在水中悠闲的自由游动,基本上是随机的,

21、其实它们也是为了更大范围的寻觅食物或同伴。随机行为实际上是觅食行为的一种缺省。每条人工鱼通过对环境的感知,在每次移动中经过尝试后,执行其中的一种行为。人工鱼群算法就是利用这几种典型行为从构造单条鱼底层行为做起,通过鱼群中各个体的局部寻优达到全局最优值在群体中突现出来的目的。算法的进行就是人工鱼个体的自适应活动过程,整个过程包括觅食、聚群以及追尾三种行为,最优解将在该过程中突现出来。其中觅食行为是人工鱼根据当前自身的适应值随机游动的行为,是一种个体极值寻优过程,属于自学习的过程;而聚群和追尾行为则是人工鱼与周围环境交互过程。这两种过程是在保证不与伙伴过于拥挤,且与临近伙伴的平均移动方向一致的情况

22、下向群体极值(中心)移动。由此可见,人工鱼群算法也是一类基于群体智能的优化方法。人工鱼整个寻优过程中充分利用自身信息和环境信息来调整自身的搜索方向,从而最终搜索达到食物浓度最高的地方,即全局极植。3.1.2 人工鱼群的数学模型假设在一个D维的目标搜索空间中,有N条组成一个群体的人工鱼,其中第i条人工鱼:位置向量Xi=(xi1, xi2, xiD),位置的食物浓度(目标函数适应值) Yi=f(Xi),两条人工鱼Xi与Xj之间的距离表示为|Xj-Xi|,d表示拥挤度因子,代表某个位置附近的拥挤程度,以避免与临近伙伴过于拥挤,Visual表示人工鱼的感知范围,人工鱼每次移动都要观测感知范围内的其它鱼

23、的运动情况及其适应值,从而决定自己的运动方向。Step表示人工鱼每次移动的最大步长,为了防止运动速度过快而错过最优解,步长不能设置的过大,当然,太小的步长也不利于算法的收敛。Try_number表示人工鱼在觅食过程中最大的试探次数。(1)觅食行为觅食行为是鱼循着食物多的方向游动的一种行为。状态为Xi(t)的第i条人工鱼的觅食行为计算过程为:Step1 置k=1。Step2 在其感知范围内随机选择一个状态Xv(t):xvj(t)=xij(t)+rand()Visual (j=1,2,D)Step3 若Yv(t)Yi(t),则向该方向前进一步,达到状态Xi(t+1):xij(t+1)=xij(t)

24、+rand()Step(xvj(t)-xij(t)/| Xv(t)- Xi(t)| (j=1,2,D)结束。Step4 若k=Try_number,则转Step5;否则,置k=k+1,转Step2。Step5 在感知范围内随机移动一步,达到状态Xi(t+1):xij(t+1)=xij(t)+rand()Step (j=1,2,D)结束。其中rand()是0,1内的随机数。(2)聚群行为聚群行为是每条鱼在游动过程中尽量向临近伙伴的中心移动并避免过分拥挤。状态为Xi(t)的第i条人工鱼的聚群行为计算过程为:Step1 计算以自身位置为中心其感知范围内的人工鱼形成集合Si:Si=Xj(t)| Xj(

25、t)- Xi(t)|Visual,ji并计算Si中人工鱼数目Nf=|Si|。Step2 若Nf 0,则计算该集合的中心位置Xc(t):Xc(t)=(Xj(t)|j=1,2,Nf, Xj(t)Si)/NfStep3 若Yc(t)Yi(t)且Nf Yc(t)1),(表明该中心位置状态较优并且不太拥挤)则向该中心位置方向前进一步,达到状态Xi(t+1):xij(t+1)=xij(t)+rand()Step(xcj(t)-xij(t)/| Xc(t)- Xi(t)| (j=1,2,D)结束。Step4 执行觅食行为。(3)追尾行为追尾行为是鱼向临近的最活跃者追捉的行为。状态为Xi(t)的第i条人工鱼的

26、追尾行为计算过程为:Step1 计算以自身位置为中心其感知范围内的人工鱼形成集合Si:Si=Xj(t)| Xj(t)- Xi(t)|Visual,ji计算Si中人工鱼数目Nf=|Si|。Step2 若Nf 0,则计算感知范围内的所有伙伴中适应值为最小的伙伴位置Xm(t):Ym(t)=minYj(t)|Xj(t)SiStep3 若Ym(t)Yi(t)且Nf Ym(t)1),(表明该位置状态较优并且不太拥挤)则向该位置方向前进一步,达到状态Xi(t+1):xij(t+1)=xij(t)+rand()Step(xmj(t)-xij(t)/| Xm(t)- Xi(t)| (j=1,2,D)结束。Ste

27、p4 执行觅食行为。(4)设立公告板在人工鱼群算法中,设置一个公告板,用以记录当前搜索到的最优人工鱼状态及对应的适应值,各条人工鱼在每次行动后,将自身当前状态的适应值与公告板进行比较,如果优于公告板,则用自身状态及其适应值取代公告板中的相应值,以使公告板能够记录搜索到的最优状态及该状态的适应值。即算法结束时,最终公告板的值就是系统的最优解。(5)行为选择(移动策略)根据所要解决的问题性质,对人工鱼当前所处的环境进行评价,从上述各行为中选取一种合适的行为。常用的方法有两种:(进步即可原则)先进行追尾行为,如果没有进步则进行聚群行为,如果依然没有进步则进行觅食行为。也就是选择较优行为前进,即任选一

28、种行为,只要能向优的方向前进即可。(进步最快原则)试探执行各种行为,选择各行为中使得向最优方向前进最快的行为,即模拟执行聚群、追尾等行为,然后选择行动后状态较优的动作来实际执行,缺省的行为方式为觅食行为。也就是选择各行为中使得人工鱼的下一个状态最优的行为,如果没有能使下一状态优于当前状态的行为,则采取随机行为。对于此种方法,同样的迭代步数下,寻优效果会好一些,但计算量也会加大。人工鱼群算法通过这些行为的选择形成了一种高效的寻优策略,最终,人工鱼集结在几个局部极值的周围,且值较优的极值区域周围一般能集结较多人工鱼。3.1.3 人工鱼群算法人工鱼群算法的具体计算步骤为:Step1 (初始化)确定人

29、工鱼群规模N,在变量可行域内随机生成N个人工鱼,设定人工鱼的可视域Visual,人工鱼的移动步长Step,拥挤度因子d,尝试次数Try_number。Step2 (设置公告板)计算初始鱼群各个人工鱼的适应值并进行比较大小,取最优的人工鱼状态及其值赋给公告板。Step3 (行为选择)各个人工鱼分别模拟追尾行为和聚群行为,通过比较适应值选择最佳行为来执行,缺省行为为觅食行为。Step4 (更新公告板)每条人工 鱼对自身的适应值和公告板的值进行比较,如优于公告板的值则取代之,否则公告板的值不变。Step5:(终止条件判断)当公告板上的最优解达到了满意的误差界内时,算法结束,输出最优解,否则转step

30、3。3.2 人工蜂群算法及其模型 自然界中的蜂群总是能很快的找到优良的蜜源或花粉,通过这些发现,2005年,Karaboga等提出了人工蜂群算法。人工蜂群算法是模仿蜜蜂行为从而提出的一种优化方法,是集群智能思想的一个具体应用,它的主要特点是不需要了解问题的特殊信息,只需要对问题进行优劣的比较,通过各人工蜂个体的局部寻优行为,最终在群体中使全局最优值突现出来,有着较快的收敛速度。3.2.1 人工蜂群算法原理及数学模型在ABC算法中有3个重要的基本部分:食物源、人工蜂群、算法过程。(1) 食物源。不同的食物源代表了各种可能的解,且食物源的值由多种因素决定, 比如蜜源和蜂巢的距离、能量的大小和集中程

31、度以及采取该食物的容易程度等,所以每个食物源都包含了一系列的可优化参数。但为了算法的简单分析起见,算法中仅仅将食物源的“质量”作为衡量的标准。(2) 人工蜂群。人工蜂群包含三种蜜蜂:引领蜂、跟随蜂以及侦察蜂。引领蜂先出去寻找食物源;跟随蜂在舞蹈区等待引领蜂带回食物源的相关信息,并且根据信息选择食物源;侦查蜂则完全随机的寻找新的食物源,如果某个食物源被引领蜂和跟随蜂丢弃,那么和这个食物源对应的引领蜂就变成了侦查蜂。(3) 算法过程及数学模型首先,ABC算法生成含有SN个解(食物源)的初始种群。每个解xi(i=1,2,D)是一个D维的向量。然后,蜜蜂对所有的食物源进行循环搜索,循环次数为MCN。引

32、领蜂先对对应的食物源(解)进行一次领域搜索,并选择花蜜数量多也就是适应度较高的食物源(解)。引领蜂按照以下表达式进行领域搜索: vij = xij + Rij(xij - xkj) (k i) k1,2,.,SN , j1,2,.,D,这两个数都是随机选取的,Rij是一个在-1和1之间的随机数,这个步长可以适当的减小。 所有的引领蜂完成搜索之后,在舞蹈区把食物源的信息传达给跟随蜂,跟随蜂根据得到的信息按照概率选择食物源。在花蜜越多的食物源,被选择的概率越大。跟随蜂按照概率值pi选择食物源,根据以下表达式计算:Pi = fi / j=0SNfj fi是第i个解的适应度值随后,跟随蜂也进行一次领域

33、搜索,并选择较好的解。跟随蜂根据以下表达式进行领域搜索: vij = xij + Rij(xij - xkj) (k i)k1,2,.,SN , j1,2,.,D,这两个数都是随机选取的,Rij是一个在-1和1之间的随机数,这个步长可以适当的减小。如果某个解经过limit次循环后没有得到改善,那么这个节就要被丢弃。假定被丢掉的解是xi,那么就由侦查蜂按照以下表达式产生一个新的解来代替xi: xij = xjmin + rand(0,1)(xjmax - xjmin) 3.2.2 人工蜂群算法步骤人工蜂群算法的具体计算步骤为:设定3个参数:食物源的个数=引领蜂的个数=跟随蜂的个数(SN)、领域搜

34、索次数limit、最大循环次数MCN。算法步骤如下:Step1 产生初始解集xij,i1,2,.,SN,j1,2,.,D;Step2 计算各个解xij的适应度值;Step3 置cycle=1(外循环);Step4 置 s=1(内循环);Step5 引领蜂根据如下公式做领域搜索产生新解vij ,并计算其适应度值: vij = xij + Rij(xij - xkj) k1,2,.,SN 且 kiStep6 如果vij的适应度值大于xij,则xij=vij,否则xij不变;Step7 计算xij的适应度,并根据如下公式计算概率值Pi: Pi = fi / j=0SNfj Step8 跟随蜂根据Pi

35、选择食物源(解),并进行领域搜索产生新解vij,计算其适应度;Step9 同步骤6;Step10 记录到目前为止最好的解; Step11 s = s + 1Step12 cycle cycle + 1Step13 如果 s limit ,则转步骤5;Step14 经过limit次循环后,判断是否有要丢弃的解,如果存在,则侦查蜂根据如下公式产生一个新解xij代替: xij = xjmin + rand(0,1)(xjmax - xjmin) Step15 如果cycle MCN (最大循环次数),则转步骤Step4。4 人工鱼群算法在VRP问题上的改进人工鱼群算法在VRP问题上的传统方法没有考虑

36、VRP问题最优解的结构型问题,仅仅只是单纯的对解的结构进行离散化,所以在程序实现的过程中并没有表现人工鱼群算法的优势,反而使得在求解的过程中对某些问题的复杂处理造成求解时间过长,使得我们一般错误的认为人工鱼群算法不适合解决VRP问题。由于上述一些原因,本论文对传统的方法加以改进,使用独特的人工鱼视域以及人工鱼觅食行为,使得人工鱼在VRP问题上更快的向最优解靠近。4.1 人工鱼群算法的传统处理方法4.1.1 初始化种群每个种群的状态描述运用一个二维数组xFood_NumberClient_Number,Food_Number表示种群的个数(人工鱼或者跟随蜂的个数),Client_Number表示

37、需要运送站点的个数,xij表示第i条人工鱼(跟随蜂)第j个需要送货的站点(为了方便研究,我们令站点的取值分别为1Client_Number的正整数),例如1表示1号站点,2表示2号站点Client_Number表示Client_Number号站点。这样就确定了货车依次需要进过的站点,再根据货车的载重量就可以确定车辆的配送路径。例如数组xFood_NumberClient_Number(设Food_Number=4,Client_Number=5)为:3 2 4 1 51 4 3 2 52 5 1 4 31 3 5 4 2该数组表示的含义为:第0个种群(由于本文中的变量是基于C语言中的二维数组结

38、构存储的,所以数组的下标是从0开始的)依次需要经过的站点为32 4 1 5第1个种群依次需要经过的站点为1 4 3 2 5第2个种群依次需要经过的站点为2 5 1 4 3第3个种群依次需要经过的站点为1 3 5 4 2根据上面对变量意义的描述可以看出,对于xFood_NumberClient_Number数组有如下2个特点:从横向看,每个数的取值都是在1Client_Number的正整数,并且互不相同;从全局看,每一行的数不能与其他行的数完全一样,至少有两个数是不同的,这是因为不同的种群不能产生同样的解,否则就会造成种群个数的浪费或者种群过于拥挤。通过上述的特点,本文对每个种群的初始化采用如下

39、策略:(1)随机的生成一组1Client_Number这Client_Number个正整数的排列,将该排列赋给种群;(2)确保每个种群的值是不同,否则从新生成新的排列。生成的种群的解并不是货车的路径,仅仅是货车需要依次经过的站点,因为在设计货车的路径是我们还需要考虑货车的载重量这个参数。例如,假设货车的载重量为1,weightClient_Number=0.5,0.2,0.6,0.3,0.4为1Client_Number号站点依次需要货物的重量。第1个种群依次需要经过的站点为1 4 3 2 5,则通过上述的计算可得该货车需要经过的路径为0 1 4 0 3 2 0 5 0(0表示货物的仓库,货车

40、必须要从仓库出发,并且最终回到仓库)。4.1.2 食物浓度的计算食物浓度是指模型中的目标函数值,用来衡量种群当前状态的优劣程度。每个种群每次迭代后所在状态的食物浓度计算就是VRP问题的目标函数值的计算问题,它是判断状态优劣的标准。该食物浓度的计算如VRP模型由两部分组成为:(1)判断未达到满载率要求的车辆数目是否超过规定的车辆数目,如果超过则将之乘以一个很大的权数100000(该可以根据实际情况设定,但是一定要保证充分大),加入计算中是为了使得所求食物浓度尽量小时,首先考虑满足车辆要求的条件。(2)实际距离的计算,则需要知道distanceClient_Number+1Client_Numbe

41、r+1的值,distanceij表示的是从站点i到站点j的距离,当i或j为0时,则表示到货物的仓库的距离。4.1.3 人工鱼行为的设计(1)感知能力设计人工鱼的感知能力是它感知其他伙伴的状态和周围环境的保证,它的感知能力设计为有限的(在visual范围内,只有和鱼的距离不大于visual时才能被感知),符合现实中的鱼的实际情况,也从一定程度上降低了人工鱼行为的复杂度。这样我们就必须解决两条人工鱼之间的距离d,对于距离问题的计算,传统的方法采取计算两个变量取值的相似程度的做法。对于任意的两个变量数组,将数组中每个存储位置的值进行比较,如果两者不相等,则取值为1,否则取值为0。最后将所有位置比较后

42、的值相加就是两条鱼之间的距离d(xm,xn分别表示第m条和第n条人工鱼)的取值。用数学语言描述如下: 1 xmj xnj= 0 xmj = xnj 其中C表示Client_Number,j表示人工鱼的第j个参数。从变量意义的描述中可以看出,变量中存储的每个数值都不具有数值的真正含义,仅仅表示一个符号而已。因此用平常的欧氏距离明显是不合适的,因为那样得出的距离是毫无意义的,而且对不能真正体现人工鱼视觉的意义。采用上述的距离计算方法简单易行,它是以方案的总体视角来考虑问题的,比较两个种群,计算它们的相似程度,取值越大就说明这两个种群相似程度越小,当它大于所给的visual时,就认为这两个种群都是对

43、方看不见的。对于两个种群的距离运算中,最坏的情况是两种种群里面的值完全是不同的,这是他们之间的距离就是2*Client_Number。(2) 觅食行为 从VRP问题可以看出,每个变量都是一种可行的解决方案,它的解集空间是不连续的,而是很多离散的点,并且变量中每个分量的取值都不具有数值含义。所以步长的设计对于该问题的意义就不大。如果强硬的设置出步长并让人工鱼按照步长行动,会造成变量取值的混乱,反而对求解不是有利的。基于上面的考虑,对于每个种群的行动采取让人工鱼直接跳向更优状态的策略,这样会使问题变得更加简单易行,而且收效也很好。执行觅食行为的过程可以描述为:首先,对于任意的一条人工鱼,设其现在的

44、状态为x,在其视野范围内任意找到一点y,采用如下方法:保证y在x的视野范围内。使得两条人工鱼之间的距离dvisual保证y的任意性,并符合变量的定义规则。在寻找y的过程中,主要采取的是首先将x内任意(Client_Number-visual)个数保持不变赋给y,然后将剩下的visual个数随机的存放在y的空位置处,得到新的位置y。得到y后就进一步判断该点的食物浓度是否更优,如果是则跳向它。如果并没有在视野内找到更好的状态则继续扫描,这样寻优会持续try_number次;如果经过try_number后还没有找到一个更优的状态,就采取随机行为。(3) 聚群行为 聚群行为实现过程是首先找到视野范围内

45、的其他人工鱼,将它们的状态存在friendflagindexi(其中index表示这条人工的编号,i表示第i条人工,这个数组存储的值为bool型,true表示在该鱼的视野范围内,false则表示不在其的视野范围内)中,然后计算出这些人工鱼的中心位置,在判断这一中心是否优于人工鱼的当前的状态,如果比当前的状态优而且周围并不拥挤,该人工鱼就跳向中心,否则就保持原来的状态不变。这个过程中的重点是如何计算该中心状态。中心状态根据xFood_NumberClient_Number矩阵得出,设中心点的坐标为centerClient_Number=0(初始化),对于矩阵的计算是:首先标记出人工鱼index的

46、视野范围内的人工鱼,将friendflagindexFood_Number内的在范围内的人工鱼标号为true。计算这个鱼群中第1个经过站点的标号(axj1+,其中j表示在该鱼群中第j条人工鱼,axj1表示存储第一次经过某个标号的次数),通过axFood_Number1计算出第一次经过最多次数的某个点point,并进行赋值使得center1=point。将上述操作依次进行Client_Number次,计算出center内的每一个值。但是使用上面的方法可能使得中心位置不符合变量定义原则,因此需要对它进行修复,centerClient_Number可能出现的问题为:某个站点出现在很多位置;某个站点没有出现在任何位置。根据上面出现的两个问题采取以下修复措施;依次比较centerClient_Number内的每个值

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁