前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇路径规划典型算法范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
1 引言
在移动机器人导航技术应用过程中,路径规划是一种必不可少的算法,路径规划要求机器人可以自己判定障碍物,以便自主决定路径,能够避开障碍物,自主路径规划可以自动的要求移动机器人能够安全实现智能化移动的标志,通常而言,机器人选择的路径包括很多个,因此,在路径最短、使用时间最短、消耗的能量最少等预定的准则下,能够选择一条最优化的路径,成为许多计算机学者研究的热点和难点。
2 背景知识
神经网络模拟生物进化思维,具有独特的结构神经元反馈机制,其具有分布式信息存储、自适应学习、并行计算和容错能力较强的特点,以其独特的结构和信息处理方法,在自动化控制、组合优化领域得到了广泛的应用,尤其是大规模网络数据分析和态势预测中,神经网络能够建立一个良好的分类学习模型,并且在学习过程中优化每一层的神经元和神经元连接的每一个节点。1993年,Banta等将神经网络应用于移动机器人路径规划过程中,近年来,得到了广泛的研究和发展,morcaso等人构建利用一个能够实现自组织的神经网络实现机器人导航的功能,并且可以通过传感器训练网络,取得更好的发展,确定系统的最佳路径。神经网络拓扑结构模型可以分为:
2.1 前向网络
网络中各个神经元接受前一级的输入,并输出到下一级,网络中没有反馈,可以用一个有向无环路图表示。这种网络实现信号从输入空间到输出空间的变换,它的信息处理能力来自于简单非线性函数的多次复合。网络结构简单,易于实现。反传网络是一种典型的前向网络。
2.2 反馈网络
网络内神经元间有反馈,可以用一个无向的完备图表示。这种神经网络的信息处理是状态的变换,可以用动力学系统理论处理。系统的稳定性与联想记忆功能有密切关系。Hopfield网络、波耳兹曼机均属于这种类型。
3 基于人工神经网络的移动机器人路径规划算法
神经网络解决移动机器人路径规划的思路是:使用神经网络算法能够描述机器人移动环境的各种约束,计算碰撞函数,该算法能够将迭代路径点集作为碰撞能量函数和距离函数的和当做算法需要优化的目标函数,通过求解优化函数,能够确定点集,实现路径最优规划。神经网络算法在移动机器人路径规划过程中的算法如下:
(1)神将网络算法能够初始化神经网络中的所有神经元为零,确定目标点位置的神经元活性值,并且能够神经网络每层的神经元连接将神经元的值传播到出发点;
(2)动态优化神经网络,根据神经网络的目标节点和障碍物的具置信息,在神经网络拓扑结构中的映射中产生神经元的外部输入;
(3)确定目标值附件的神经元活性值,并且使用局部侧的各个神经元之间,连接整个神经网络,并且在各个神经元中进行传播。
(4)利用爬山法搜索当前邻域内活性值最大的神经元,如果邻域内的神经元活性值都不大于当前神经元的活性值,则机器人保持在原处不动;否则下一个位置的神经元为邻域内具有最大活性值的神经元。
(5)如果机器人到达目标点则路径规划过程结束,否则转步骤(2)。
4 基于人工神经网络的移动机器人路径规划技术展望
未来时间内,人工神经在机器人路径规划过程中的应用主要发展方向包括以下几个方面:
4.1 与信息论相融合,确定神经网络的最优化化目标解
在神经网络应用过程中,由于经验值较为难以确定,因此在神经网络的应用过程中,将神经网络看做是一个贝叶斯网络,根据贝叶斯网络含有的信息熵,确定神经网络的目标函数的最优解,以便更好的判断机器人移动的最佳路径。
4.2 与遗传算法想结合,确定全局最优解
将神经网络和遗传算法结合起来,其可以将机器人的移动环境设置为一个二维的环境,障碍物的数目、位置和形状是任意的,路径规划可以由二维工作空间一系列的基本点构成,神经网络决定机器人的运动控制规则,利用相关的神经元的传感器作用获未知环境的情况,将障碍信息和目标点之间的距离作为神经网络的输入信息,使用遗传算法完成神经网络的权值训练,神经网络的输出作为移动机器人的运动作用力,实现一个可以在未知环境中进行的机器人运动路径规划。
4.3 与蚁群算法相结合,降低搜索空间,提高路径规划准确性
为了提高神经网络的搜索准确性和提高效率,可以将蚁群算法与神经网络相互结合,蚁群算法的路径规划方法首先采用栅格法对机器人工作环境进行建模,然后将机器人出发点作为蚁巢位置,路径规划最终目标点作为蚁群食物源,通过蚂蚁间相互协作找到一条避开障碍物的最优机器人移动路径。
5 结语
随着移动机器人技术的发展,路径规划作为最重要的一个组成部分,其得到了许多的应用和发展,其在导航过程中,也引入了许多先进的算法,比如神经网络,更加优化了移动的路径。未来时间内,随着神经网络技术的改进,可以引入遗传算法、信息论、蚁群算法等,将这些算法优势结合,将会是路径规划更加准确和精确。
参考文献
[1]朱大奇,颜明重,滕蓉. 移动机器人路径规划技术综述[J].控制与决策,2010,25(7): 961-967.
[2]刘毅.移动机器人路径规划中的仿真研究[J].计算机仿真,2011,28(6): 227-230.
[3]熊开封,张华.基于改进型 FNN 的移动机器人未知环境路径规划[J].制造业自动化,2013,35(22): 1-4.
[4]柳长安,鄢小虎,刘春阳.基于改进蚁群算法的移动机器人动态路径规划方法[J].电子学报,2011,39(5).
[5]范浩锋,刘俊.基于 BP 神经网络的红外目标识别技术[J].计算机与数字工程,2013,41(4): 559-560.
关键词:遗传算法;蚁群算法;路径规划;旅行商问题
引言
物流与国民经济及生活的诸多领域密切相关,得到越来越多的重视,甚至被看作是企业“第三利润的源泉”。因此,作为物流领域中的典型问题,旅行商问题(Traveling Salesman Problem,TSP)的研究具有巨大的经济意义。
TSP(Traveling Salesman Problem)问题, 是VRP[2]的特例,也称为巡回旅行商问题,货担郎问题。简称为TSP问题,已证明TSP问题是NP难题。。TSP问题可描述为:给定一组n个城市和它们两两之间的直达距离,寻找一条闭合的旅程,使得每个城市刚好经过一次而且总的旅行路径最短。TSP问题的描述很简单,简言之就是寻找一条最短的遍历n个城市的路径,或者说搜索整数子集X={1,2,…,n}(X中的元素表示对n个城市的编号)的一个排列π(X)={v1, v2,…, vn},使取最小值.式中的d(vi,vi+1)表示城市vi到城市vi+1的距离。它是一个典型的、容易描述但却难以处理的NP完全问题。同时TSP问题也是诸多领域内出现的多种复杂问题的集中概括和简化形式。所以,有效解决TSP问题在计算理论上和实际应用上都有很高的价值。而且TSP问题由于其典型性已经成为各种启发式的搜索、优化算法 (如遗传算法、神经网络优化法、列表寻优法、模拟退火法等)的间接比较标准。
1 遗传算法与蚁群算法
1.1 遗传算法原理
遗传算法(Genetic Algorithms,GA) 是一种借鉴生物界自然选择和自然遗传机制的随机搜索算法,由美国J.Holland教授提出,其主要内容是种群搜索策略和种群中个体之间的信息交换,搜索不依赖于梯度信息.该算法是一种全局搜索算法,尤其适用于传统搜索算法难于解决的复杂和非线性问题.。选择算子、交叉算子和变异算子是遗传算法的3个主要操作算子.遗传算法中包含了如下5个基本要素:①对参数进行编码;②设定初始种群大小;③设计适应度函数;④设计遗传操作;⑤设定控制参数(包括种群大小、最大进化代数、交叉率、变异率等)
1.2 蚁群算法原理
研究表明:蚂蚁在觅食途中会留下一种外激素.蚂蚁利用外激素与其他蚂蚁交流、合作,找到较短路径.经过某地的蚂蚁越多,外激素的强度越大.蚂蚁择路偏向选择外激素强度大的方向.这种跟随外激素强度前进的行为会随着经过蚂蚁的增多而加强,因为通过较短路径往返于食物和巢穴之间的蚂蚁能以更短的时间经过这条路径上的点,所以这些点上的外激素就会因蚂蚁经过的次数增多而增强.这样就会有更多的蚂蚁选择此路径,这条路径上的外激素就会越来越强,选择此路径的蚂蚁也越来越多.直到最后,几乎所有的蚂蚁都选择这条最短的路径.这是一种正反馈现象.
2.算法改进
在传统解决方法中,遗传算法以其快速全局搜索能力在物流领域获得了广泛的应用。但遗传算法在求解到一定程度时,往往作大量的冗余迭代,对于系统中的反馈信息利用不够,效率较低;蚁群算法也以其较强的鲁棒性和智能选择能力被广泛应用于旅行商问题 。蚁群算法是通过信息素的累积和更新而收敛于最优路径,具有分布、并行、全局收敛能力,但由于蚁群算法的全局搜索能力较差,易陷入局部最优,很难得到最优解。
为了克服两种算法各自的缺陷,形成优势互补。为此首先利用遗传算法的随机搜索、快速性、全局收敛性产生有关问题的初始信息素分布。然后,充分利用蚁群的并行性、正反馈机制以及求解效率高等特征。算法流程如图1
图1 遗传混合算法流程
2.1遗传混合算法的具体描述如下:
Step1 给出,放置m个蚂蚁在n个城市上。
Step 2 把所有蚂蚁的初始城市号码放置到tabuk中,列表tabuk纪录了当前蚂蚁k所走过的城市,当所有n个城市都加入到tabuk中时,蚂蚁k便完成了一次循环,此时蚂蚁k所走过的路径便是问题的一个解。
Step 3 蚂蚁K从起点开始,按概率的大小选择下一个城市j,k∈{1,2,…,m},j∈allowedk如果蚂蚁k转移到j ,从allowedk中删除,并将j加入到tabuk直至allowedk= 时重新回到起点。
Step 4 是否走完所有的城市,否,则转入Step 3。
Step 5 计算,记录,更新信息素浓度,所有路径信息更新,如果,清空tabuk则转入Step 2。
Step 6 当时,得到相对较优蚂蚁的序列。初始化种群。
Step 7 计算适应度值。
Step 8 进行遗传交叉与变异操作。
Step 9 输出得到的最短回路及其长度。
2.2 算法过程实现
(1)种群初始化
用蚁群算法进行初始化种群,放m只蚂蚁对所有城市进行遍历,将得到的结果进行优化,做为蚁群算法的初始种群。每只蚂蚁走过的路径的就代表了一条基因(a0、a1、…、am-1、am),对于这条基因表示这只蚂蚁首先从a0出发,次之访问a1、…然后依次访问am-1、am最后再回到a0。
(2)状态转移规则设置
转移概率,为t时刻蚂蚁由i城到j城的概率。
(1)
式中,allowedk表示蚂蚁k下一步允许选则的城市,表示信息启发因子,其值越大,该蚂蚁越倾向于选择其他蚂蚁经过的路径,蚂蚁之间的协作性超强;β为期望启发因子,β的大小表明启发式信息受重视的程度,其值越大,蚂蚁选择离它近的城市的可能性也越大,越接近于贪心规则[6]。为启发因子,其表达式为: ,每条路上的信息量为:
(2)其中
其中ρ表示路径上信息的蒸发系数,1-ρ表示信息的保留系数;表示本次循环路径(i,j)上信息的增量。表示第k只蚂蚁在本次循环中留在路径(i,j)上的信息量,如果蚂蚁k没有经过路径(i,j),则的值为零,表示为:
(3)
其中,Q为常数, 表示第k只蚂蚁在本次循环中所走过的路径的长度。
(3)交叉算子的设计
首先随机地在父体中选择两杂交点,再交换杂交段,其它位置根据保持父体中城市的相对次序来确定。例如,设两父体及杂交点的A1和A2, A1=(2 6 4 7 3 5 8 9 1), A2=(4 5 2 8 1 6 7 9 3)。交换杂交段于是仍有B1=(2 6 4 1 8 7 6 9 1),B2=(4 5 2 7 3 5 8 9 3)。在新的城市序列中有重复的数,将杂交段中对应次序排列,即: 7-8、3-1、5-6,依此对应关系替换杂交段中重复的城市数。将B1中(2 6 4)重复的6换为5,B2(9 3)中重复的3换为1.。杂交后的两个体为B1=(2 5 4 1 8 7 6 9 1),B2=(4 5 2 7 3 5 8 9 1)。本算法采用此方法交杂交。
3.仿真实验
对TSP问题仿真所用的数据库是TSPLIB典型51城市的数据。仿真平台如表1所示。
表1 仿真试验平台
设备名称
型号
CPU
Pentium(R)M 1.66 GH
内存
512M
操作系统
Microsoft Windows XP
仿真软件
MierosoftVisualC++6.0
3.1 遗传算法仿真
基本遗传算法仿真。对51城市路径优化路径优化。参数设置如下:种群:50,最大迭代数:5000,交叉概率:0.8,变异概率:0.2
遗传算法找到最优解的时间是95 s, ,路径长度497。
3.2 蚁群算法仿真
基本蚁群算法对51城市路径优化。其参数设置如下:ρ=1α=1,β=8,τ0=0.001Qu=100., m=51
基本蚁群算法找到最优解的时间是68 s, 路径长度465。
3.3遗传混合算法
遗传混合算法对51城市路径优化。其参数设置如下:种群:51,最大迭代数:5 000,交叉概率:0.8,变异概率:0.001;ρ=1α=1,β=8,τ0=0.001Qu=100,m=51;
遗传混合算法找到最优解的时间是50 s, 路径长度459。
遗传算法、基本蚁群算法、遗传混合算法对TSPLIB典型51城市的数据进行仿真,仿真结
果对比如表2所
算法名称
所用时间(s)
最优结果
遗传算法
95
497
基本蚁群算法
68
465
改进混合算法
50
456
4.结论
本文为了更好地解决物流领域中的旅行商问题,充分发挥遗传算法的全局搜索能力和蚁群算法的正反馈能力和协同能力,采用了遗传算法与蚁群算法混合算法进行求解,并且进行了模拟仿真。仿真结果表明,利用遗传与蚁群混合算法可以找到较好解的能力,大大提高计算效率,结果质量也较好。
参考文献:
[1]小平,曹立明.遗传算法———理论、应用与软件实现[M].西安交通大学出版社,2002.
[2][日]玄光男,程润伟.遗传算法与工程设计[M].科学出版社, 2000.
[3]胡小兵,黄席樾。蚁群优化算法及其应用[J]. 计算机仿真 2004,24(5)
[4]王凌。智能优化算法及其应用[M]. 北京:清华大学出版社 2001.
关键词:路径规划;多仓库多配送任务;iOS;电子地图;最优路径
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)32-0190-04
Design and Implementation of Order Routing System Based on iOS
XU Jing-hui
(North China University of Technology, Beijing 100144, China)
Abstract: The routing problem of multi-warehouse and multi-distribution task in order distribution has the characteristics of picking from the warehouse and returning to the starting warehouse after completing the delivery task by multiple distribution points. In view of the current path planning applications on the mobile platform to solve the known starting point to the end of the route planning, after a number of points along the planning has not yet been a good application to achieve. Therefore, this paper combines the path planning and iOS platform to make full use of the characteristics of electronic map application, design and implement the order routing system based on iOS in order to provide the optimal path results. This paper focuses on how to realize the function of map display and operation, map location, mark drawing, route planning and so on. Finally, using the real order data of inventory management platform, the test proves the effectiveness and convenience of the system.
Key words: route plan; multi-warehouse multi-distribution tasks; iOS; digital map; optimal path
在实际订单配送环节中,路径规划要求找出车辆从仓库取货出发依次经过一系列配送点后返回仓库的最短回路路径。目前关于路径规划的研究多数集中在常见路径算法的改进及优化方面[1-3],对于路径规划应用系统的研究还较少。国内iOS平台上有关路径规划的热门应用有高德地图、百度地图等App,但它们也只提供了支持公交、驾车及步行三种出行方式的点到点的路径规划,对于从起点经过多个沿途点到达终点的路线规划并未涉及。鉴于目前尚未有将路径规划与iOS移动平台的应用特点充分相结合的应用,本文就设计开发了iOS平台上基于电子地图的路径规划系统――称之为“易配送系统”。易配送系统可在用户使用期间自动定位用户当前所在位置,同时提供仓库到各配送点的路线规划和导航等主要功能,还通过服务端的接口服务将数据封装成XML编码格式通过网络提供给客户端,保障了订单数据的真实性与实时性。在系统开发过程中利用高德iOS地图SDK进行应用开发,提供了可视化的路径规划人机交互界面。
本文的内容首先对iOS平台开发相关技术进行了简要介绍,然后对订单配送路径规划系统进行分析,设计出了整体的技术方案与系统架构,然后对系统功能进行详细实现,包括仓库、订单查询,地图位置显示、路线规划及导航等功能,最后进行结果分析与总结。
1 iOS开发平台介绍
1.1 iOS系统架构
iOS平台应用的开发语言主要有Objective-C和Swift语言,由于swift作为一门新生语言使用人数较少的原因,本系统采用了主流开发语言Objective-C进行编码开发。Objective-C作ANSI C的超集[4],不仅扩展了面向对象设计的能力,如类、消息、继承,同时它可以调用C的函数,也可以通过C++对象访问方法,具有对C和C++语言的兼容性。
苹果公司最新推出的iOS 10 SDK (Software Development Kit, 软件开发工具包)增加了新的API (Application Programming Interface, 应用程序编程接口)和服务,能够支持更多新类型的应用程序和功能。目前基于iOS平台开发的应用程序可以扩展到消息、Siri、电话和地图等系统自带服务,拥有了更吸引人的功能。图1为iOS系统架构图:
图中可触摸层主要提供用户交互相关的服务如界面控件、事件管理、通知中心、地图,包含以下框架:UIKit、Notification Center、MapKit等;媒体层主要提供图像引擎、音频引擎及视频引擎框架;核心服务层为程序提供基础的系统服务如网络访问、浏览器引擎、定位、文件访问、数据库访问等。最底层的核心系统层为上层结构提供了最基础的服务包括操作系统内核服务、本地认证、安全、加速等。
1.2 iOS 地图SDK
iOS 地图SDK 是高德提供的一套基于 iOS 6.0.0 及以上版本的地图应用程序开发接口,供开发者在iOS应用中加入地图相关的功能[6]。它提供的四种地图模式包括:标准地图、卫星地图、夜景模式地图和导航模式地图。开发者不仅可以利用其地图计算工具实现坐标转换和距离或面积计算,而且可以调用API完成出行路线规划及点标注、折线、面的绘制等工作。这些实现的提前需要注册并认证成为高德开发者,接着为应用申请APIKey,然后将iOS地图SDK配置到应用工程中,这里可以采用手动和自动化两种配置方式。前者的配置过程简单易操作,但更新操作代价大,后者配置过程稍显负杂,但更新很方便。手动配置的方式则需要手动向工程项目中导入MAMapKit.framework和AMapSearchKit. framework两个包,当框架有更新时需将工程中旧框架删除并添加新框架,其使用稍显麻烦。本系统的实现采用了自动化配置工程的方式,利用第三方库管理工具CocoaPods通过命令:pod ‘AMap3DMap’, ‘~>4.0’和pod ‘AMapSearch’, ‘~>4.0’完成自动导入框架的目的,当框架更新时只需执行pod update即可实现项目中框架的更新。
2 整体方案设计
通常App功能复杂的情况下需要有后台服务器的业务处理支持,本文涉及的路径规划功能需要处理的计算量会随着配送点个数的增长呈指数阶上升,因此需要后台服务器的强大计算能力处理路径规划结果,进而减轻客户端内存使用压力。
本系统整体技术方案的设计综合考虑了移动应用端、服务端(包括应用服务器和提供商服务器)以及数据库服务器三部分所涉及的技术及其简要的功能模块划分,如下图2所示:
其中应用服务端是典型的电商进销存管理系统,移动端LBS应用――易配送App的实现需要在进销存Web系统的表示层、业务逻辑层、数据持久层添加相应的订单配送接口,该接口将服务端经过处理的数据结果封装成XML标准的数据格式通过HTTP协议传输给App。
3 基于iOS的路径规划App设计
3.1 App开发模式
易配送App采用Objective-C开发语言,开发工具为Xcode7.0,主要针对iPhone进行设计的。系统的设计模式采用了MVC范型如图3。由于系统所涉及的内容数据均通过网络请求服务器实时更新获取,故采用了iOS App开发模式中的Native App,以保证有较好的网络环境以及节省的带宽,以便利用充分的设备资源来提供良好的交互体验。
该系统平台中的位置信息主要体现在:位置服务和地图。位置服务是由Core Location框架负责,它将用户的位置及方向信息以Objective-C语言能识别的形式罗列出来[4];地图服务通过应用中集成的高德开发平台提供的MAMapKit框架负责,利用它可以展示出地图和图钉标注等信息。易配送App的路径规划模块有效地将Core Location框架和MAMapKit框架结合起来,以实现地图定位、距离测试、路线显示及导航功能。
3.2 重要功能设计及关键技术实现
系统的主界面设计采用了图文结合的布局方式如图4,使用户能够快速便捷的操作系统。对于信息查询类似功能的界面多采用表视图结构,得到了清楚地展示大量内容信息的效果如图5所展示的待配送订单列表。
图4 主界面 图5 待配送列表
图6 路径规划
系统主要的路径规划功能在电子地图的地理信息背景下完成了标注及路线可视化如图6所示,其关键技术的实现如下:
1)初始化地图服务
系统中地图服务的使用首先需要初始化地图控件,这需要在创建MAMapView之前需要先绑定APIKey:[MAMapServices sharedServices].apiKey = APIKey; 和[AMapSearchServices sharedServices].apiKey = APIKey;接着初始化MAMapView地图控件:_mapView = [[MAMapView alloc] initWithFrame: self.view. frame];并o系统添加地图视图:[self.view addSubview:_mapView];
2)分组待配送订单
因为业务要求需要将待配送订单按各自对应的出货仓库进行分组配送,系统中通过自定义实现分组方法:-(void)groupAction:(NSMutableArray *)array; 其中参数array中存储着多个配送单对象XJDeliveryOrder。方法实现中利用可变的集合对象NSMutableSet保存的内容对象不重复的特性,用_warehouseSet记录不同的仓库信息:_warehouseSet = [NSMutableSet set]; [array enumerateObjectsUsing Block: ^( XJDeliveryOrder * _Nonnull order, NSUInteger idx, BOOL * _Nonnull stop) {[_warehouseSet addObject:order.warehouseName]; }]; 同时该方法中利用谓词NSPredicate过滤数组array实现按仓库名称分组:[_warehouseSet enumerateObjectsUsingBlock:^(NSString * _Nonnull warehouseName, BOOL * _Nonnull stop) {NSPredicate *predicate = [NSPredicate predicateWithFormat: @"warehouseName = %@", warehouseName];NSArray *tempArr = [NSArray arrayWithArray:[array filteredArrayUsingPredicate:predicate]]; [groupArr addObject: tempArr];}];
3)添加标注及气泡视图
给地图添加标注需要调用地理编码请求:[self.search AMapGeocodeSearch: geo]; 其中对象geo为AMapGeocodeSearchRequest类对象且其属性值address不为空,该请求会回调AMapSearchDelegate中的方法:- (void)onGeocodeSearchDone: (AMapGeocodeSearchRequest*)request response:(AMapGeocodeSearchResponse *) response;其中response对象中包含了经纬度信息并且该方法中调用了添加标注方法:[_mapView addAnnotation:pointAn];其中对象pointAn为MAPointAnnotation类对象。
实现触摸标注弹出气泡的效果需要实现MAMapViewDelegate委托中-(MAAnnotationView*)mapView:(MAMapView*)mapViewviewForAnnotaion: (id< MAAnotation>)annotation;和-(void)mapView:(MAMapView*)mapView didSelect AnnotationView:(MAAnnotationView *)view;方法。
4)路径规划及绘制路线
iOS地图API提供了按参数顺序进行路径规划的方法:[_search AMapDriving RouteSearch:request];其中request为AMapDrivingRouteSearchRequ -est对象,需要给定request的属性:起点origin、终点destination和沿途点waypoints的值。而对于最优路径的规划只能通过自定义方法:-(void)planBestPaths WithLoaction:(CLLocationCoordinate2D)location wayPoints: (NSArray*) wayPoints;该方法中调用了网络请求服务器方法,并能够获取服务器返回的处理结果,其结果中包含了多个经纬度字符串,需要利用方法- (CLLocationCoordinate2D *)coordinatesForString:(NSString*)string coordinateCount:(NSUInteger *)coordinate Count parseToken:(NSString *)token;来解析经纬度,然后系统利用解析得到的经纬度调用[MAPolyline polylineWithCoordinates:coordinates count:count]来绘制路线。
5)最优路径算法
本系统的服务端路径规划接口实现中采用了适合解决单回路最短路径问题的算法――最近c插入算法。最近插入法是一种启发式算法,它不仅适用于各种复杂的TSP问题,对于中小规模问题同样适用。图7为算法具体流程。算法的实现是在后台服务端通过java语言实现的,这里就不做详细说明了。
4 系统测评与应用实例
为了对系统的功能及路径优化效果进行测试,采用了如下的实验环境:客户端是所有系统为iOS 7.0及以上iPhone手机,安装App后即可使用;服务端为可安装运行在windows平台下的进销存管理系统;数据库为Oracle数据库安装在Linux数据库服务器上。
本系统中路径规划功能的实现采用了将多个仓库多配送点的路径规划分解为多个单仓库多点配送的思想。下面一系列图示说明了多个单仓库出发到多个配送点的路径规划对比结果。
图8中显示当天需要规划路径的所有点,包括三个仓库和八个客户位置。接下来分别对三个仓库进行出货配送安排,如图9为从总仓库出发的配送路线对比,其中上图为按下单顺序依次配送的路线图,下图为根据与出发仓库距离由近到远的依次配送的路线图,从图中可以明显看出两者各自的路程代价,表1为各仓库配送路径的对比结果。
通过实验测试结果表明,当单次规划的配送数量小于等于6时,本系统的最优路径准确且计算处理很快,几乎网络无延迟。当单次规划的配送数量大于6小于17时,优化结果准确但是处理速度变慢,并且处理响应时间虽配送数量呈现指数阶增长。当单次规划的配送数量大于16时,服务端需通过一定路径优化算法处理大规模计算,但其结果往往是最优解的近似值而非最优路径值。
5 结束语
本文是在iOS系统上基于电子地图的应用开发,基本实现了小规模订单配送的路径规划功能。经过优化的路径的确节省了许多里程,真正意义上为企业提高了效益。但是本系统还存在一些不足之处,如适合处理小规模订单配送路径规划的局限性,系统的可扩展性有待加强。在今后的学习和研究中,将进一步深化和扩展该应用的功能,提供更加丰富的视图信息和交互方式,实现更良好的路径规划体验。
参考文献:
[1] WANG Tiejun,WU Kaijun. Study multi-depots vehicle routing based on improve -ed particle swarm optimization[J]. Computer Engineering and Applications,2013, 49(2): 5-8.
[2] 马建华,房勇,袁杰.多车场多车型最快完成车辆路径问题的变异蚁群算法[J].系统工程理论与实践,2011(8).
[3] 李波,邱红艳.基于双层模糊聚类的多车场车辆路径遗传算法[J].计算机工程与应用,2014(5).
[4] 胡杨帆,杨刚,胡颢石.结合LBS和信息推送的博物馆App的设计实现[J].计算机应用与软件,2013, 12(30):108-112.
关键词:车辆路径问题;启发式算法;优化
中图分类号:U116.2 文献标识码:A
Abstract: Vehicle routing problem is the core problem in logistics management and in the organization and optimization of transportation, and is a classic combinatorial optimization problem in operations research. This article systematically summarized the common classifications and the basic model of VRP problems. And through referring to scholars' research situation, summarized the commonly used and efficient heuristic algorithms of solving VRP problems and the present situation of the corresponding research. Finally, summarized the problems in the research of VRP problems and discussed the future research and the solving methods for VRP problems.
Key words: vehicle routing problem; heuristic algorithm; optimization
0 引 言
随着科技的进步和电子商务的飞速发展,作为国民经济中一个重要行业的物流产业已成为拉动国家经济发展与提高居民生活水平的重要动力源泉,而物流行业中的车辆路径问题(Vehicle Routing Problem, VRP)是制约物流行业发展的一个关键要素,其研究也受到人们的广泛关注。车辆路径问题是物流管理与运输组织优化中的核心问题之一,是指在满足一定的约束条件(如时间限制、车载容量限制、交通限制等)下,通过对一系列收货点与发货点客户合理安排行车路线,在客户的需求得到满足的前提下,达到配送车辆最少、配送时间最短、配送成本最低、配送路程最短等目标。该问题由Dantzig和Ramser[1]于1959年在优化亚特兰大炼油厂的运输路径问题时首次提出,现已成为运筹学中一类经典的组合优化问题,是典型的NP-难题。
企业通过选取恰当的配送路径,对运输车辆进行优化调度,可以明显提高配送效率,有效减少车辆的空驶率和行驶距离,降低运输成本,加快响应客户的速度从而提高客户服务质量,提高企业的核心竞争力。VRP作为物流系统优化环节中关键的一环,其研究成果已经应用到快递和报纸配送连锁商店线路优化以及城市绿化车线路优化等社会实际问题中,因而车辆路径问题的优化研究具有很好的现实意义。
1 车辆路径问题的分类与基本模型
VRP的构成要素通常包括车辆、客户点、货物、配送中心(车场)、道路网络、目标函数和约束条件等,根据侧重点的不同,VRP可以分为不同的类型。根据运输车辆载货状况分类可分为非满载车辆路径问题和满载车辆路径问题;根据任务特征可分为仅装货、仅卸货和装卸混合的车辆路径问题;根据优化目标的数量可分为单目标车辆路径问题和多目标车辆路径问题;根据配送车辆是否相同可分为同型车辆路径问题和异型车辆路径问题;根据客户对货物接收与发送有无时间窗约束可分为不带时间窗的车辆路径问题和带时间窗的车辆路径问题;根据客户需求是否可拆分可分为需求可拆分车辆路径问题和需求不可拆分车辆路径问题;根据客户是否优先可分为优先约束车辆路径问题和无优先约束车辆路径问题;根据配送与取货完成后车辆是否需要返回出发点可分为开放式车辆路径问题和闭合式车辆路径问题;还可以将上述两个或更多约束条件结合起来,构成一些更复杂的车辆路径问题。
由于VRP的约束条件不同引起了其分类多种多样,而不同类型的VRP其模型构造及求解算法有很大差别。VRP的一般数学模型为:
在上述模型中,式(1)表示目标函数,式(2)表示约束条件。其他VRP模型大致都是在此模型的基础上根据约束条件完善形成的。
2 VRP的求解算法与研究现状
VRP的求解方法,基本上可分为精确算法和启发式算法两大类。由于精确算法的计算难度与计算量随着客户点的增多呈指数级增加,在实际中应用范围有限,而启发式算法则具有全局搜索能力强、求解效率高的特点,求出的解也具有较好的参考性,因此,目前大部分研究者们主要把精力集中在如何构造高质量的启发式算法上,本文也主要讨论一些近年来研究比较多的启发式优化算法。针对VRP问题目前已提出了大量的启发式算法,其中研究较多的主要包括以下算法:
2.1 遗传算法(Genetic Algorithm,GA)
GA是一种通过模拟生物进化过程来搜索最优解的方法,该方法通过对群体进行选择、交叉和变异等操作,产生代表新的解集的种群,根据个体适应度大小选择个体,通过迭代逐步使群体进化到近似最优解状态。但是该算法具有搜索速度慢、易早熟、总体可行解质量不高等缺点。
采用遗传算法研究VRP问题的研究现状包括:蒋波[2]设计了遗传算法求解以配送总成本最小为目标函数和带有惩罚函数的VRPTW模型;赵辰[3]基于遗传算法求解了从生产中心到仓库之间的路径优化问题,设计了配送路径优化决策;张群和颜瑞[4]建立了多配送中心、多车型车辆路径问题混合模型,并采用一种新的模糊遗传算法求解该问题。
2.2 模拟退火算法(Simulated Annealing,SA)
SA同禁忌搜索算法一样,也属于局部搜素算法,但是模拟退火算法是模仿金属加工中退火的过程,通过一个温度函数作为目标函数,使其趋于最小值,是一种基于概率的算法。
采用模拟退火算法研究VRP问题的研究现状包括:郎茂祥[5]研究了装卸混合车辆路径问题,并构造了模拟退火算法求解该问题;穆东等[6]提出了一种并行模拟退火算法,并将该算法的应用领域扩展到其他车辆路径问题和组合优化问题;魏江宁和夏唐斌[7]以模拟退火算法为基础,研究了单个集散点与多个客户之间的运输问题;Mirabi和Fatemi Ghomi等[8]提出了一种基于模拟退火思想的三步启发式算法求解最小化配送时间的多配送中心VRP模型。
2.3 蚁群算法(Ant Colony Optimization,ACO)
蚁群算法是人们受蚂蚁可以快速找到食物的自然现象启发提出的。蚁群算法所建立的机制,主要包括蚂蚁的记忆、蚂蚁利用信息素进行交互通信及蚂蚁的集群活动三个方面。单个蚂蚁缺乏智能,但整个蚁群则表现为一种有效的智能行为。通过这种群体智能行为建立的路径选择机制可使蚁群算法的搜索向最优解靠近。
采用蚁群算法研究VRP问题的研究现状包括:马建华等[9]研究了基于动态规划方法的多车场最快完成车辆路径问题的变异蚁群算法;辛颖[10]通过对MMAS蚁群算法进行了三种策略的改造,指出蚁群算法可以找到相对较好的解和很强的鲁棒性;陈迎欣[11]针对蚁群算法的缺点,分别对信息素更新策略、启发因子进行改进,引入搜索热区机制,有效解决车辆路径优化问题;段征宇等[12]通过最小成本的最邻近法生成蚁群算法和局部搜索操作设计了一种求解TDVRP问题的改进蚁群算法。
2.4 粒子群算法(Particle Swarm Optimization,PSO)
PSO算法是通过对鸟群觅食行为的研究而得出的一种群体并行优化算法,它从随机解出发,通过迭代寻找最优解。蚁群算法具有容易实现、收敛速度快、精度高等优点,在多种优化问题上均取得了较好的效果。但是由于PSO算法是通过粒子之间的相互作用来寻找最优解,缺乏像遗传算法那样的变异机制,因而PSO算法容易陷入局部最优。
采用粒子群算法研究VRP问题的研究现状包括:马炫等[13]提出了一种基于粒子交换原理的整数粒子更新方法求解有时间窗约束的车辆路径问题;吴耀华和张念志[14]以处理集货或送货非满载带时间窗车辆路径优化问题为背景,提出了带自调节机制的局部近邻粒子群算法解决VRP问题。
2.5 蝙蝠算法(Bat Algorithm,BA)
蝙蝠算法是剑桥大学学者Yang[15]于2010年提出的一种新型群智能进化算法,模拟自然界中蝙蝠通过超声波搜索、捕食猎物的生物学特性,是一种基于种群的随机寻优算法。截至目前,蝙蝠算法主要用于求解连续域的函数优化问题,只有少数学者将其用来求解离散型问题,具有很好的研究前景。
采用蝙蝠算法研究VRP问题的研究现状包括:马祥丽等[16]将蝙蝠算法应用于求解VRP问题,在蝙蝠速度更新公式中引入了惯性权重,对基本蝙蝠算法进行了改进,克服了基本蝙蝠算法的不足之处;马祥丽等[16]针对VRPTW问题的具体特性重新定义了蝙蝠算法的操作算子,设计了求解VRPTW 问题的蝙蝠算法,并采用罚函数的方式对目标函数进行了简化求解。
3 总结与展望
车辆路径问题由于约束条件的不同其分类多种多样,数学模型与求解算法也层出不穷。本文总结了近几年一些相关学者对VRP问题的研究和求解算法,通过较为系统地总结VRP问题,本文总结出以下当前研究存在的问题和今后可能的研究方向:
(1)研究目标太过理想化。目前学者研究VRP的研究过于注重成本最小和路径最短,大部分是单目标优化,而在实际应用中,配送的驾驶员也可能会因许多原因耽误计划的行程,顾客的需求各异甚至冲突,顾客满意度与企业成本最小化目标之间存在效益悖反的矛盾。今后的研究可以将成本、路程、驾驶员休息、顾客满意度等多个目标联合起来进行研究,并可以通过线性加权的方式进行综合求解。
(2)单个约束的VRP问题由于研究时间较长,现在已经研究的较为成熟,而且其应用局限也比较大,应该考虑将多个约束条件结合起来,建立符合实际的多约束条件的车辆路径问题,更好地解决企业的配送优化。
(3)虽然启发式算法具有全局搜索能力强,运算方便等优点,但是也存在着局部搜索能力差、收敛时间过长、易陷于局部最优等问题。使用单一的群智能算法不是求解VRP的最有效算法,将两种和多种群智能算法结合起来研究车辆路径问题,取长补短,是今后应该考虑的问题;同时,应考虑寻求更多的智能优化算法来求解VRP问题。
参考文献:
[1] GB. Dantzig, JK. Ramser. The truck dispatching problem[J]. Management Science, 1959,6(1):80-91.
[2] 蒋波. 基于遗传算法的带时间窗车辆路径优化问题研究[D]. 北京:北京交通大学(硕士学位论文),2010.
[3] 赵辰. 基于遗传算法的车辆路径优化问题研究[D]. 天津:天津大学(硕士学位论文),2012.
[4] 张群,颜瑞. 基于改进遗传算法的混合车辆路径问题[J]. 中国管理科学,2012,20(2):121-128.
[5] 郎茂祥. 装卸混合车辆路径问题的模拟退火算法研究[J]. 系统工程学报,2005,20(5):485-491.
[6] 穆东,王超,王胜春,等. 基于并行模拟退火算法求解时间依懒型车辆路径问题[J]. 计算机集成制造系统,2015,21(6):1626
-1636.
[7] 魏江宁,夏唐斌. 基于混合模拟退火算法的多阶段库存路径问题研究[J]. 工业工程与管理,2015,20(3):1-8.
[8] M Mirabi, SMTF Ghomi, F Jolai. Efficent stochastic hybrid heuristics for the multi-depot vehicle routing problem[J]. Robotics and Computer-Integrated Manufacturing, 2010,26(6):564-569.
[9] 马建华,房勇,袁杰. 多车场多车型最快完成车辆路径问题的变异蚁群算法[J]. 系统工程理论与实践,2011,31(8):1508
-1516.
[10] 辛颖. 基于蚁群算法的车辆路径规划问题求解研究[D]. 长春:吉林大学(硕士学位论文),2015.
[11] 陈迎欣. 基于改进蚁群算法的车辆路径优化问题研究[J]. 计算机应用研究,2012,29(6):2031-2034.
[12] 段征宇,杨东援,王上. 时间依赖型车辆路径问题的一种改进蚁群算法[J]. 控制理论与应用,2010,27(11):1557-1563.
[13] 马炫,彭M,刘庆. 求解带时间窗车辆路径问题的改进粒子群算法[J]. 计算机工程与应用,2009,45(27):200-204.
[14] 吴耀华,张念志. 带时间窗车辆路径问题的改进粒子群算法研究[J]. 计算机工程与应用,2010,46(15):230-235.
[15] Yang X S. A new metaheuristic bat-inspired algorithm[C] // Nature-Inspired Coopreative Strategies for Optimization, 2010:65
Key words:distribution regional division; distribution vehicle routing optimization; algorithm
0 引 言
流通领域中,许多物流配送企业借助外部经济的发展,实现了规模扩张与快速发展,但对如何控制成本,提高运营效率的迫切性并不强。现在随着经营环境的变化,物流需求量更大,客户、网络更复杂,对服务的要求更多样化。但面临的竞争更加激烈,不管是从事跨区域配送还是城市配送,首先需要考虑顾客服务水平,赢得客户的认可,然后考虑配送运营的成本问题,因而如何创新物流服务,提高运营效率和控制日常运营成本成为每个配送企业需要时刻思考的问题。
传统的基于经验的方法,在企业规模有限,客户数量不是非常多,配送网络相对简单的情况下,只要员工和管理者技能过关,执行力好,都应该能够较好地完成配送任务,获得企业的发展。但是随着销售区域扩大,客户数量的不断增加,客户需求持续增长,配送业务量大增,配送周期缩短,配送线路更复杂,并且需求的随机性、变动性加大,光凭经验和手工安排,已无法做到配送计划的优化,必须借助于统计分析、利用数学模型和智能算法,才能获得较好的配送计划,节省时间,提高效率。本文就是针对这些问题,从企业应用的角度,提出先合理划分配送区域,再优化配送路线的方法,从而达到降低成本,提高竞争力的目标。
1 论文总体思路综述
排单和车辆调度是整个配送计划和作业实施的核心,是配送任务和客户服务按时完成的有力保证。
传统的订单排单和车辆调度、路线安排都是由公司里业务能手来完成,送货区域大了,客户多了,这项工作的效率和完成工作的成本控制都会不理想,现在常用的智能优化方法,把它作为一个典型的VSP问题,建立数学模型,利用智能化的算法,求解可行的配送路径规划,作为理论研究,这样的做法是有意义的。但是有两个问题:(1)这个模型数据的收集整理工作量特别大,计算过程也较长,因而成本不会低。(2)模型本身一定要适合实际的作业过程,这就需要有一个不断测试和优化的过程,并且还要适应每天的动态变化,否则反而会影响到日常的作业过程。许多研究理论完备、精深,但是在适应产业化运营时,工程上的可实现性还有待提高和完善。因而影响了这些很有价值的研究在企业实际中的运用。
本文的研究并不针对配送路径规划做理论上的深究,而是立足实际应用,在可接受的范围内,利用较简易实用的智能优化方法,在较短的时间内,以较低的成本获得相对优化的配送路径规划方案。不求最佳,但求有效。为今后电子排单和送货线路优化软件的开发和应用作必要的铺垫。
具体设想:第一步,利用聚类分析法对配送区域进行合理分区,先把复杂问题简单化。第二步,每个分区内就是个典型的TSP问题,有很成熟的解决办法。在平衡好各分区工作时间安排后,就能很快获得较理想的配送方案。
重点是第一步,分区时一定要考虑到客户位置、需求量、车辆载重、作业时间均衡限制等因素,需要花费好多功夫。
2 配送区域动态优化及其方法
2.1 配送区域的初始划分方法。配送区域优化方法对最终优化的结果有很大的影响,因而合理的划分方法的选择十分重要,目前常用的划分方法有扫描法和聚类算法,在配送客户有限、区域较小时运用扫描法就可以了,但是当客户数量很多,区域较大,又要考虑约束条件时,聚类算法就是我们必然的选择了,聚类算法中K- means比较成熟,操作简单,原理是:把大量d维(二维)数据对象n个聚集成k个聚类k 在运用聚类分析法时有几个问题要注意:第一,k的选择,以一天送货总量/单车载重量,也可以放宽一些,到:一天送货总量/单车载重量+1。第二,k个聚类内的密度,分区密度大,效率高,成本低。第三,每个分区内工作时间大体相当,这样便于运行的稳定,进行成本控制和人员、车辆的考核。第四,每个聚类间不重合。做到这样分区效果会比较好。
传统的K-means聚类法,k个聚类区内,初始点是随机产生的,运行时间长,收敛效果差。基于均衡化考虑,在配送对象分布不均匀时,用密度法效果较好,初始中心点以密度来定义,运用两点间欧氏距离方法,求解所有对象间的相互距离,并求平均数,用meanD表示,确定领域半径R,n是对象数目,coefR是半径调节系数,0 coefR=0.13时,效果最好。如果使用平均欧
氏距离还不理想,可增加距离长度,甚至用最大距离选择法,收敛速度比较快。 在配送对象分布较均匀时,可考虑用网格法,效果较好,整个配送区域划分用k=Q/q,k为初始点个数,假设k=mn,将地图划分成m行n列,以每格中心点为初始点,通过网格内的反复聚类运算,达到收敛,获得网格稳定的聚类中心。
2.2 分区内配送工作量的均衡。这样就完成了配送区域的初步划分,但是没有考虑各个分区内工作量的均衡问题,如果工作量不均衡,对于客户服务水平的保证,成本的控制,作业的安排,人员、车辆的考核都存在问题。
在实际的物流企业配送作业过程中,一般一辆车一天也就送货10多家或20来家,多余的时间要用于收款,与公司财务部门交账,核算出车相关费用,所以不考虑同一车同一天出车多次的情况,多次出车待以后深入探讨。那么就意味着每个分区就是一辆车一条线路,把问题大大简化了,需要说明的是:这种方法对于配送规模不是特别大的单个城市配送是适用的,也具有广泛性。
各分区内的每日配送工作量是以配送作业耗用时间来衡量的,耗用时间有两部分构成:(1)车辆行驶时间;(2)客户服务时间。由于配送分区有限,每个分区内的客户数量不是很多,可以采用实地测时的方式,把每条线路的配送时间统计出来,这是一种手工办法,但比较符合实际来调整超过差值的分区内的客户,从而使得各区作业时间基本均衡。
如果客户数量众多,分区也较复杂,就需要借助统计学方法,通过对样本线路车辆行驶时间以及服务时间,拟合出分区作业时间函数,然后,计算出所有线路作业时间,即使分区重新调整,线路重新组合,仍可以很快计算出线路作业时间。本文不在这个方面进行深入探讨。
2.3 重新组合客户,确定最终区域划分。观察各线路作业时间超过允许差值的部分,由大到小来调整,将离聚类中心最远的数据点弹出,使本区T值下降,直至在差值以内,将弹出点加入到临近的不足均衡作业时间的分区内,如果临近分区作业时间超过允许差值,这个点就不能弹出,只能弹出另外的次远数据点,以此类推,任何一个数据点只能弹出一次,直到所有数据点和分区调整完毕。
这样最终确定的分区,既能做到区域划分紧密,效率、成本更低,又能做到各区作业时间均衡,便于工作指派,车辆、人员核算。
以上是本文的第一部分工作,也是最有意义的工作,确定好合理的区域划分,不仅是配送作业合理化的重要步骤,也是业务人员访销工作和客户服务的重要依据。
3 基于改进蚁群算法的分区线路优化方法
分区内线路安排,就是一辆送货车由DC出发,依次经过分区内每一个客户点,完成送货后返回DC,求出近似最优的行车顺序,这是个典型的旅行商问题(Traveling Salesman Problem,TSP),TSP是NP完全问题,解法很多,有精确算法,也有启发式算法,目前许多智能算法就属于启发式算法,可以解决较复杂的线路优化问题,对于一般线路优化也能做得更准确,这里介绍蚁群算法解决实际问题。原因是蚁群算法与其他启发式算法相比,在求解性能上,具有较强的鲁棒性和搜索较好解的能力,是一种分布式的并行算法,一种正反馈算法,易于与其它方法结合。克服基本算法缺点,改善算法性能。
3.1 蚁群算法简介。蚁群算法(Ant Colony Algorithm, ACA)是由意大利学者M.Dorigo等人于20世纪90年代初提出的一种新的模拟进化算法,其真实地模拟了自然界蚂蚁群体的觅食行为。 M.Dorigo等人将其用于解决旅行商问题TSP,并取得了较好的实验结果。
蚁群算法用于解决优化问题的基本思路是:用蚂蚁的行走路径表示待优化问题的可行解,整个蚂蚁群体的所有路径构成待优化问题的解空间。路径较短的蚂蚁释放的信息素数量较多,随时间推移,较短路径上积累的信息素浓度逐步增高,选择该路线的蚂蚁数量也越来越多,最终整个蚂蚁会在正反馈的作用下集中到最佳线路上,这个路线就是最有解。
蚁群算法解决TSP问题具体步骤:(1)基本参数设置:包括蚂蚁数m,信息素重要程度因子0≤α≤5,启发函数重要因子1≤β≤5,信息素消逝参数0.1≤ρ≤0.99,信息素释放总量10≤Q≤10 000,最大迭代次数iter_max,迭代次数初值iter=1。用试验方法确定α、β、ρ、Q值,以获得较优的组合,有助于改进基本蚁群算法,提高整体优化效果,并缩短运算时间。(2)初始解的求解:利用最近邻算法,以缩短算法运算时间,并以此算法产生初始解的路径长度作为产生初始信息素的基础。 (3)构建解空间:将各个蚂蚁随机地置于不同出发点,对每个蚂蚁,按公式(1)计算其下一个待访问的网点,直到所有蚂蚁访问完区域内所有网点。(4)更新信息素:计算各个蚂蚁经过的路径长度Lk=1,2,…,m,记录当前迭代次数中的最优解。同时,根据(2)式和(3)式对各个网点连接路径上的信息素浓度进行更新。(5)判断是否终止:若iter 蚁群算法如结合其他启发式算法,建立混合算法,能够解决许多现实问题,达到较好运算效果,结合具体问题,可以深入研究。
4 本文的局限与进一步研究的方向