一种车辆调度问题的粒子群优化方法

文档序号:6543849阅读:143来源:国知局
专利名称:一种车辆调度问题的粒子群优化方法
技术领域
本发明涉及一种车辆调度问题的粒子群优化方法。
背景技术
车辆调度是实施社会化物流的关键技术,优化车辆行驶路线,提升企业竞争力,降低企业成本,解决城市交通拥挤、能源短缺、大气污染等问题,实现交通在效率、资源、环境和价值观念各方面的内在统一,保证物流产业的可持续发展。但目前大多数企业所使用的车辆调度软件更多意义上是一个管理软件,缺少对资源的优化配置功能,还主要依靠具有丰富实践经验的管理人员和调度人员借助于会议、电话、报表等进行管理和调度的人工作业方式,显然不能满足快节奏的现代化生产和市场激烈竞争的需要。随着计算机及计算机网络引进企业,基于信息集成而发展起来的优化车辆调度正在兴起。
VRP(Vehicle Routing Problem即车辆调度)问题一般定义为对一系列装货点和(或)卸货点,组织适当的行车线路,使车辆有序地通过它们,在满足一定的约束条件(如货物需求量、发送量、交发货时间、车辆容量限制、行驶里程限制、时间限制等)下,达到一定的目标(如路程最短、费用最少、时间尽量少、使用车辆数尽量少等)。
影响车辆调度问题的因素很多,正常情况下有道路的交通状况,客户的需求量,要求的到货时间,车辆的载重,驾驶员的情况,行驶费用等,这些都是所谓的约束条件。有些约束条件是必须要满足的,如客户要求的到货时间,车的载重等,而有些达到一定的满意度即可,如行驶的费用等。这些约束在进行调度时可以作为确定性因素考虑。而对于道路的交通状况,客户需求的改变等非正常情况,都是事先不能预见的,在进行车辆调度时大都作为不确定性因素考虑。
车辆调度问题是非常复杂的问题。通常是多约束、多目标、随机不确定优化问题。求解过程的计算量随问题的规模呈指数增长,已被证明是NP完全问题。很多研究表明,寻找车辆调度问题的最优解是非常困难的,最有工程意义的求解算法是放弃寻找最优解的目标,转而试图在合理、有限的时间内寻找到一个近似的、有用的解。
现有的车辆调度方法中有人采用遗传算法、粒子群算法、节约法以及扫描法等方法。其中,粒子群算法现有的编码方式有实数编码,二进制编码,整数编码。在求解车辆调度问题这类组合优化问题方面,使用整数编码方式的优点是易于解码,计算适应度方便,缺点是计算量比较大,计算结果比较差,粒子群易陷于局部极值点,早熟收敛的情况比较严重。使用整数编码方式对粒子群算法本身的特点没有发挥出来。当前使用实数编码方案求解车辆调度问题,是使用一个2L维的向量表示有L个客户的VRP问题。每个粒子的对应的2L维状态分成2维,一维表示各客户对应的车辆,令一维表示各客户在对应车辆中的配送次序。此种表示方法表示的维数较高,且对每一维,在进行解码时,都需要进行取整,排序,操作比较复杂,计算速度较慢,当出现非法解时,调整也比较困难。

发明内容为了克服已有的车辆调度方法的操作复杂、计算速度慢、调整困难的不足,本发明提供一种操作简单、计算速度快、便于调整的车辆调度问题的粒子群优化方法。
本发明解决其技术问题所采用的技术方案是一种车辆调度问题的粒子群优化方法,所述的方法主要包括以下步骤(1)、从委托单中得到配送信息,所述的配送信息包括客户名称、客户需求的货物的总数量、总重量、总体积、卸货地址、要求的到货时间;(2)、从委运单得到的客户名称,从地址数据库中查询出客户的地址信息,包括客户的具体地址,客户间的距离;
(3)、设定粒子群算法的参数,所述的参数包括种群规模、迭代次数,所述的种群规模表示初始配送方案的数量,迭代次数表示在众多的配送方案空间中的搜索次数;(4)、将上述的配送信息、客户的地址信息读入粒子群算法中;(5)、根据客户的数目,计算所需要的车辆数,对各个配送方案进行编码,编码方式采用基于实数向量的编码方式对于有L个客户的配送方案,使用L维的实数向量X表示粒子的状态;对于向量的每一维,其整数部分表示所在的车辆,如整数部分相同的,表示在同一辆车中;小数部分表示在车辆中配送的次序,按照大小顺序;(6)、使用解码算法进行解码(6.1)对于粒子的状态的每一维,进行[X]操作;(6.2)根据[X]值进行分组,形成客户分组;(6.3)在分组内,对粒子进行{X}操作;(6.4)根据{X}的大小进行排列,形成客户的访问顺序;(7)、调整线路间和线路内的次序,及对生成的配送方案进行再优化;(8)、根据配送成本计算方案,计算访问所有客户的线路长度或者时间或访问所有客户的费用,粒子的适应度定义为成本的倒数;(9)、比较粒子的适应度,找出种群中适应度最高的粒子保存,同时每个粒子和自身以前计算的适应度比较,保存自身最好的适应度;(10)、对粒子所代表的配送方案进行调整,根据如下的公式(1)进行粒子状态的更新Vit+1=c1Vit+c2(Pi,t-Xit)+c3(Pg,t-Xit)Xit+1=Xit+Vit+1---(1)]]>
上式中,Xi=(xi1,xi2,…xiD)表示第i个粒子的状态,每个粒子表示D维空间的一个解,Vi=(vi1,vi2,…viD)表示每个粒子的速度向量,且Vi满足Vi≤最大速度Vmax;Pi表示每个粒子经历过的最优状态,Pg表示群体经历过的最优状态,c1是惯性权重,c2,c3是加速度常数。粒子的状态在具体的应用中代表不同的含义,在本发明的应用中,粒子的状态表示车辆调度的配送方案,即客户由那辆车配送,和客户在配送中的顺序。粒子的速度表示配送方案间的差异,即同一客户所在车辆的不同,客户在配送中的顺序不同。
(11)、随机的选择一些粒子进行交叉操作,对各个粒子表示的配送方案进行调整;(12)、重复(6)~(11),对可能的配送方案进行搜索,达到预定的迭代次数后,输出粒子群算法寻找到的配送方案。
进一步,所述的(7)中,使用节约法、最邻近法或Or-Opt法调整线路间和线路内的次序。
本发明的工作原理是粒子群算法是由Kennedy和Eberhart等于1995年提出的一种演化计算技术。其核心思想是对生物社会性行为的模拟。其最初设想是模拟鸟群捕食的过程,在研究过程中,将其应用于各种问题的优化取得了良好效果。假设一群鸟在捕食,其中的一只发现了食物,则其他一些鸟会跟随这只鸟飞向食物处,而令一些会去寻找更好的食物源。在捕食的整个过程中,鸟会利用自身的经验和群体的信息来寻找食物。粒子群算法从鸟群的这种行为得到启示,并将其用于优化问题的求解。在粒子群算法中,每个问题的解都被看作搜索空间中的一只鸟,我们称为“粒子”。粒子的状态好坏,用由被优化问题决定的适应值表示。每个粒子有一个速度表示粒子飞行的距离和方向。粒子追随当前的最优粒子在解空间进行搜索。当求解一个问题的时候,将该问题采用一定的编码方法编码成粒子,然后按照粒子群算法的机理进行迭代运算。
求解车辆调度问题的可行性分析车辆调度问题是NP问题,采用传统的方法求解,存在求解问题规模小,解的质量不高等问题。粒子群算法是一种新型的仿生智能优化算法。具有求解速度快,解的质量高等有点。粒子群在神经网络优化,电气参数设计优化等领域都取得了成功应用。在求解旅行商问题,任务分配问题等NP方面也取得了良好效果。
本发明提出一种基于实数向量的编码方式,此方法区别于现有的编码方法的关键在于在不增加维数的前提下,将车辆和车辆线路中的客户排序在编码表示出来。对于有L个客户的VRP问题,使用L维的实数向量表示粒子的状态。对于向量的每一维,其整数部分表示所在的车辆,整数部分相同的,表示在同一辆车中。小数部分表示在车辆中配送的次序。
本发明的有益效果主要表现在1、操作简单;、2、便于调整;3、计算速度快。


图1是车辆调度的粒子群优化方法的流程图。
图2是车辆调度的系统结构图。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1,一种车辆调度问题的粒子群优化方法,包括以下步骤第一步从委运单得到配送信息。这些信息包括客户名称,客户需求货物的总数量,总重量,总体积,卸货地址,要求的到货时间,估计需要的卸货时间。
第二步根据从委运单得到的客户名称,从数据库中查询出客户的地址信息,包括客户的具体地址,客户间的距离(或者运行时间)。
第三步算法参数,粒子群算法的参数包括种群规模,此处代表有多少个初始配送方案。迭代次数,表示在众多的配送方案空间中,不停的搜索,搜索的次数,根据客户的数目,客户越多,算法迭代的次数越多,种群规模越大。
第四步将上述所述的数据信息读入算法中。
第五步根据客户的数目,预估计的所需要的车辆数,按照本文设计的编码方式进行编码。所谓编码,及将一个配送方案用粒子算法所能理解的方式表达出来。
基于实数向量的编码方式,此方法区别于上述的方法的关键在于在不增加维数的前提下,将车辆和车辆线路中的客户排序在编码表示出来。对于有L个客户的VRP问题,使用L维的实数向量表示粒子的状态。对于向量的每一维,其整数部分表示所在的车辆,整数部分相同的,表示在同一辆车中。小数部分表示在车辆中配送的次序。
定义[X]表示对x取整数部分,{X}表示对X取小数部分,每个粒子整数部分相同的表示相应的客户在一辆车上服务,小数部分的排列表示服务的顺序。
解码的过程(1)对于粒子的状态的每一维,进行[X]操作。
(2)根据[X]值进行分组,形成客户分组。
(3)在分组内,对粒子进行{X}操作。
(4)根据{X}的大小进行排列,形成客户的访问顺序。
假设7个客户的VRP问题,需要的车辆数为3,对于这个问题的,将配送方案采用此种编码方式编码,得到如下结果客户编号 1 2 3 4 5 6 7X4.1 1.86 1.53 1.12 1.24 3.29 3.05这组编码对应的解的路径是第一条线路0-1-0第二条线路0-4-5-3-2-0第三条线路0-7-6-0这种表示方法,维数和客户数目相当,进行粒子状态更新操作简单,能发挥粒子群算法的固有优点。
第六步根据上述解码方法将粒子的状态解码为客户的分组及排列,及车辆调度的方案。
第七步用Or-Opt,最邻近法,节约法等方法调整线路间和线路内的次序,及对生成的配送方案进行再优化。
第八步然后根据配送成本计算方案,及可以是计算访问所有客户的线路长度或者时间,也可以是访问所有客户的费用等。粒子的适应度定义为成本的倒数。
第九步比较粒子的适应度,找出种群中适应度最高的粒子保存,同时每个粒子和自身以前计算的适应度比较,保存自身最好的适应度。此操作的目的是保存当前算法搜索到的最优配送方案及每个粒子搜索到的最优配送方案第十步根据上文提到的公式(10.1)进行粒子状态的更新,此更新的过程,就是对粒子所代表的配送方案的调整过程。及让所有粒子所代表的配送方案都向目前已知的最优的配送方案靠拢。
第十一步随机的选择一些粒子进行交叉操作,此操作表示,对各个粒子表示的配送方案进行调整。由此可以产生更优秀的配送方案。
第十二步重复第六步到十一步的过程,及对可能的配送方案进行搜索,达到预定的迭代次数,则从算法退出。
第十三步输出粒子群算法寻找到的配送方案,以承运单的形式显示。
参照图2,应用本实施例的方法实现的车辆智能调度系统,主要包括基础信息子系统、智能算法子系统。
所述的基础子信息系统包括(1)、客户的坐标信息此功能可以让用户添加、修改、查询客户的坐标,这些操作都是基于电子地图,客户可以通过鼠标点出客户的位置,坐标数值可以自动修改,显示。
(2)、客户间的距离(时间)此功能提供客户间距离(时间)的查询、添加、修改。这些操作都是基于电子地图的,方便用户查看。
(3)、客户配送的难易程度此功能提供客户配送难易程度的查询、添加、修改。难易程度用通俗的语言“难”、“易”等词语表示,方便用户使用。
(4)、算法的参数信息此功能提供各种算法参数的显示,修改。
所述的智能算法子系统包括(1)、车辆最少调度优化的目标为此次派车任务需要得车辆最少,运行得线路最短(也可以是成本最少,油耗最少等目标,根据基础信息中提供的信息的不同);该调度具有以下功能(1.1)、智能算法调度采用本发明的车辆调度方案进行车辆调度,显示配送方案,为下一步生成委运单准备。调度的过程如图1所示,方法的描述略。
(1.2)、生成承运单对满意的调度结果生成承运单。承运单编号根据日期自动产生,承运单的信息可以查看,修改,删除。
(1.3)、图形化显示采用图形化方法显示调度的结果。在地图上会用不同颜色的线条表示不同的车配送的线路。地图上会表示出配送客户的位置和名称。模拟小车会按照算法安排的线路访问客户。
(1.4)、收敛图画出算法此次计算的收敛图,给用户提供判断此次运算结果是否优秀的一个准则。
(2)、准时到达调度准时到达排车的目标是首先是满足客户时间上的要求,及保证在客户要求达到的时间内进行配送。其次是希望所用的车辆数最少,车辆行驶的距离最短(也可以是成本最少,油耗最少等目标,根据基础信息中提供的信息的不同)。功能与上述(1)的车辆最少模型相同。
(3)、综合智能算法排车此功能提供多种算法的综合调度算法,每次调度结果给出四种排车方案,用户可以根据需要选择合适的方案。每种方案可以查看详细,可以看图形化演示结果。选中的方案可以生产承运单。功能与上述(1)的车辆最少模型相同。
权利要求
1.一种车辆调度问题的粒子群优化方法,所述的方法主要包括以下步骤(1)、从委托单中得到配送信息,所述的配送信息包括客户名称、客户需求的货物的总数量、总重量、总体积、卸货地址、要求的到货时间;(2)、从委运单得到的客户名称,从地址数据库中查询出客户的地址信息,包括客户的具体地址,客户间的距离;(3)、设定粒子群算法的参数,所述的参数包括种群规模、迭代次数,所述的种群规模表示初始配送方案的数量,迭代次数表示在众多的配送方案空间中的搜索次数;(4)、将上述的配送信息、客户的地址信息读入粒子群算法中;(5)、根据客户的数目,计算所需要的车辆数,对各个配送方案进行编码,编码方式采用基于实数向量的编码方式对于有L个客户的配送方案,使用L维的实数向量X表示粒子的状态;对于向量的每一维,其整数部分表示所在的车辆,如整数部分相同的,表示在同一辆车中;小数部分表示在车辆中配送的次序,按照大小顺序;(6)、使用解码算法进行解码(6.1)对于粒子的状态的每一维,进行[X]操作;(6.2)根据[X]值进行分组,形成客户分组;(6.3)在分组内,对粒子进行{X}操作;(6.4)根据{X}的大小进行排列,形成客户的访问顺序;(7)、调整线路间和线路内的次序,及对生成的配送方案进行再优化;(8)、根据配送成本计算方案,计算访问所有客户的线路长度或者时间或访问所有客户的费用,粒子的适应度定义为成本的倒数;(9)、比较粒子的适应度,找出种群中适应度最高的粒子保存,同时每个粒子和自身以前计算的适应度比较,保存自身最好的适应度;(10)、对粒子所代表的配送方案进行调整,根据如下的公式进行粒子状态的更新,公式如下(1)Vit+1=c1Vit+c2(Pi,t-Xit)+c3(Pg,t-Xit)Xit+1=Xit+Vit+1---(1)]]>上式中,Xi=(xi1,xi2,…xiD)表示第i个粒子的状态,每个粒子表示D维空间的一个解,Vi=(vi1,vi2,…viD)表示每个粒子的速度向量,且Vi满足Vi≤最大速度Vmax;Pi表示每个粒子经历过的最优状态,Pg表示群体经历过的最优状态,c1是惯性权重,c2,c3是加速度常数;(11)、随机的选择一些粒子进行交叉操作,对各个粒子表示的配送方案进行调整;(12)、重复(6)~(11),对可能的配送方案进行搜索,达到预定的迭代次数后,输出粒子群算法寻找到的配送方案。
2.如权利要求1所述的一种车辆调度问题的粒子群优化方法,其特征在于所述的(7)中,使用节约法调整线路间和线路内的次序。
3.如权利要求1所述的一种车辆调度问题的粒子群优化方法,其特征在于所述的(7)中,使用最邻近法调整线路间和线路内的次序。
4.如权利要求1所述的一种车辆调度问题的粒子群优化方法,其特征在于所述的(7)中,使用Or-Opt法调整线路间和线路内的次序。
全文摘要
一种车辆调度问题的粒子群优化方法,通过对该车辆调度问题的一些预分析和预处理,简化实际车辆路径度问题求解。提出了实数编码方式表示车辆调度问题的调度方案,用粒子群算法方法进行求解。对于有L个客户的VRP问题,使用L维的实数向量表示粒子的状态。对于向量的每一维,其整数部分表示所在的车辆,整数部分相同的,表示在同一辆车中。小数部分表示在车辆中配送的次序。本发明提供一种操作简单、计算速度快、便于调整的车辆调度的智能优化方法。
文档编号G06Q10/00GK1750028SQ20051006123
公开日2006年3月22日 申请日期2005年10月21日 优先权日2005年10月21日
发明者赵燕伟, 吴斌, 王万良, 董红召, 杨丰玉, 王景 申请人:浙江工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1