在线客服

路径规划典型算法实用13篇

引论:我们为您整理了13篇路径规划典型算法范文,供您借鉴以丰富您的创作。它们是您写作时的宝贵资源,期望它们能够激发您的创作灵感,让您的文章更具深度。

路径规划典型算法

篇1

实际应用当中,AGV的工作路径随着不同工厂的环境条件和规划可能各不相同。

图1.1中AGV轨道模型,图中圆圈内的数字代表该位置的站点号,直有向线代表直线轨道,弯曲的有向线代表半圆轨道,线上的数值代表其长度或者半圆的半径。图1.1所示显然为一个有向赋权图,记为G(V,E),V为图中所有站点的集合,显然非空,E为任意站点Vi到另一站点Vj的边的集合。

2.AGV调度问题研究

2.1单个AGV路径规划算法

单个AGV的调度问题可以简化为AGV的路径规划问题,即等价为求最短路径问题。

Dijkstra算法是一种用于计算有向图中一个节点到其他所有节点最短路径的典型图形搜索算法。其时间复杂度O(V2+E)~O(VlgV+E)取决于是否采用最小优先级队列。

实现的具体方法,即当不用队列而用数组实现时为O(V2),用二叉最小堆来实现时为:

O((V+E)lgV),用Fibonacci堆来实现时为:

O(VlgV+E)。采用Fibonacci堆使算法的运行时间性能相比于O(V2)虽然有一些提高,但是编程时由于其常数较大,多数时候会发现其实际运行速度并没有明显的提高,并没有多大的效率优势。算法具体步骤为:

1)分组初始化,集合S中只有源节点v0,T由除V外的剩余节点组成。根据图的信息初始化各个节点的邻接关系和权值。

2)从T中选取与v0有邻接关系且权值最小的顶点Tp,把Tp又加入到S中(v0到Tp的最短路径值即为其权值大小,最短路径为v0Tp)。

3)以Tp为中间节点,考察T中与Tp邻接的节点。如果从源节点v0经过Tp到T中节点的距离比不经过Tp时距离短,则修改T中已比较过的顶点的路径值为经过Tp的路径。

4)判断T是否为空,或者源顶点到目的顶点的最短路径是否已经找到,若没有则

重新返回步骤2再次寻找。否则,推出循环,算法结束。

2.2 多个AGV路径规划算法

协调各个AGV之间能够无碰撞地高效完成其工厂里的作业任务,是多AGV调度系统的主要任务。相向冲突、站点冲突、拐角冲突、赶超冲突是多AGV运行过程中常见的几种基本冲突。多AGV的任务调度问题的典型的有效方法有以下几种:

(1)基于时间窗的AGV无碰撞路径规划

针对每段路径引入时间窗来指示该路段在某段时间是否已经被AGV占用,根据接受任务的优先级依次分配空闲的AGV,并利用算法选择最优路径,并产生各路径的时间窗。

(2)混合区域控制模型调度方法

通过对AGV的工作空间进行按不同的区域建模,AGV作业于不同区域内,且一个区域中最多只有一台AGV位于其中。

(3)线段网络控制调度算法通过把AGV小车的路线分为可进行控制的若干条路段,当小车将要或已经在一个路段上行驶时,AGV调度系统将这个路段及其终点分配给该AGV,当AGV行驶离开此路段的起始点一定距离后,系统又将该路段释放。

(4)两阶段控制调度算法

将AGV的调度控制系统分为离线路径表的生成和在线交通控制两个模块,其中离线路径表生成模块根据路径网路模型离线生成各结点间的所有路径,而在线交通控制模块根据下达的任务和工作中AGV的运行信息利用路径库中的路径表生成无冲突的最佳路径。

两阶段控制算法,利用已知信息先离线生成路径库,能很好的减少在线阶段的运行负担,提高系统实时性,且分阶段的控制方法使得实现和优化改进更简单。但是该算法生成的不是各结点的k条最优路径,当某个路段堵塞时,又要附加约束条件在线重新生成最优路径,使得效率反而更差。因此提出离线阶段对每个顶点生成k条最短路径集,以改进两阶段控制算法。

3 AGV调度算法算法分析与实现

(1)流程分析

假设AGV任务离线批量下发,本系统基于改进的两阶段控制算法的流程图设计如图3.1所示。正如图3.1所示,路径规划工作大部分静态工作如最优路径的生成等由调度系统离线阶段完成,而系统在线阶段主要负责动态的状态监控和资源的管理以及进行突况处理。突况下如果下位机可以采用一般的等待策略解决,则调度系统只负责路径资源时间窗的更新即可;若发现等待超时,即视为不能解决,则需以当前站点为起点重新为该任务进行路径规划。

在任务下发后,AGV开始执行任务,AGV执行任务过程中的避障策略算法如图图3.2所示。AGV根据调度系统对任务的路径规划,从起点开始不断检测障碍物和冲突以确定是否进行下一步。当遇到冲突时,首先自行进行等待处理,若调度系统发现等到时间过长而超时会对任务进行重新路径规划并发送任务的更新命令,AGV接收到该命令后会终止当前流程重新任务的执行。同时,AGV会定时不断的向监控调度系统更新AGV自身的状态信息,供调度系统决策使用。

结论

篇2

在移动机器人导航技术应用过程中,路径规划是一种必不可少的算法,路径规划要求机器人可以自己判定障碍物,以便自主决定路径,能够避开障碍物,自主路径规划可以自动的要求移动机器人能够安全实现智能化移动的标志,通常而言,机器人选择的路径包括很多个,因此,在路径最短、使用时间最短、消耗的能量最少等预定的准则下,能够选择一条最优化的路径,成为许多计算机学者研究的热点和难点。

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).

篇3

一、对最佳路径的分析

配电网故障区域恢复供电的最佳路径事实上是在故障情况下的配电网络重构。主要的目的在于,能够快速的将非故障区域供电恢复,与此同时,还能够有效的满足线路负载容量的要求以及线损最小等各个方面的条件。现阶段,在配网自动化领域中研究最多的在于怎样能够快速的实现故障隔离以及快速的恢复费故障区域的供电技术方法,因此,在恢复路径的最优化选择方面出现了较多的研究。

一般而言,配电网故障区域恢复供电的路径为多目标最佳路径问题,现阶段在最佳路径问题的研究上较多的便是城市交通网络中的最短路径问题的研究。由于问题解决的思路存在着极大的不同点,因此最短路径问题能够被分为单元最短路径算法与基于启发式搜索最短路径算法[1]。这与邓群,孙才新,周驳仍凇恫捎枚态规划技术实现配电网恢复供电》一文中的观点极为相似。其中,单元最短路径算法主要体现在几个方面,即:

第一,在GIS空间查询语言方面的最短路径。该职工路径的研究方法在当前还停留在理论研究方面,例如在MAX中定义了一套空间查询语言,该套语言对其完备性给予了相关证明,同时通过举证的方式,对范围查询与时态查询等进行了应用分析。

虽然,对于GIS空间发展研究GeoSQL为一种有效的处理最短路径的手段,但是GIS受到数据库技术发展的制约与影响,导致实际的应用领域和背景的不同,使其和商用之间还有很长的一段距离。

第二,在功能模块思想路径方面,需要按照不同的分类方法实施,而单元最短路径问题的算法能够被分为很多种,例如神经网络法与基于人工智能的启发式搜索算法等,对于不同的背景应用需求和具体软件应用的环境,各种算法在空间的复杂程度与时间的复杂程度等都有明显的体现[2],这与李振坤,周伟杰,钱啸等在《有源配电网孤岛恢复供电及黑启动策略研究》一文中有着相似的观点。并且各种算法在故障恢复方法中各具特色。

另外,启发式搜索最短路径算法也是一种有效的手段。基于启发式方向策略最短路径算法,其中包括空间有效方向的可控参数法,该方法能够有效的调节相关系数,在有效方向上路径无效的时候,能够确保得到有效的路径。

二、最佳路径的选择方法分析

事实上,配电网故障区域恢复供电的最佳路径并不是简单的路径问题,而是多目标最佳路径问题。为此,在研究配电网非故障区域恢复供电的最佳路径过程中,需要对其展开综合的分析。

首先,在多目标分析方面,通常在选择配电网非故障区域恢复供电最佳路径的时候,最为重视的目标为:

第一,在恢复供电路径的过程中,馈线负荷不能过载,同时,还需要确保恢复区域的电压质量能够与实际规定的标准要求相吻合。当供电质量可靠性最高的时候,那么恢复的时间将会很短[3];这与邓昆英,汪凤娇,饶杰等在《智能配电网有功自治互动建模研究》一文中的观点极为相似。另外,供电过程中,线损最低,证明开关拉合的次数最少,同时现场的操作点也会最少。

第二,在动态规划技术恢复供电的最短路径方面需要明确,动态规划主要是运筹学的一个分支,它是求解决策过程的最优的数学方式。早在很久以前,就已经有研究人员对多阶段过程转化问题转化为一系列的单阶段问题,并且逐一进行求解,这标志着解决这类过程优化问题的新方法的创立,即动态规划技术。

本文主要将一典型的复杂配电网络作为研究例子,该连通系包括10个电源点,8个分支点,同时联络开关有16个。将其加入到配网潮流方向和典型的运动方式中,将联络开关和电源点作为定点,那么可以将其分为26个定点。尽管从数量上顶点比较多,但是由于存在着较为复杂的网络关系,使得该问题成为一个极为简单的最短路径问题[4]。这与杨建在《配电网无功补偿系统的关键技术研究》一文中的观点有着相似之处。加之恢复路径主要指费故障区域相关的联络开关与相应路由,为此我们可以将其理解为从不同电源点出发到各个联络开关的最短路径问题,这样一来,故障恢复工作的实施便简单的多。

总结

本文主要从两个方面左手,共同分析了采用动态规划技术实现配电网恢复供电的方法与效果,一方面着手于最佳路径的分析,另一方面着手于最佳路径的选择方法。从这两个方面可以看出,利用动态规划技术去实现配电网恢复供电是一种可行的方法。但是,受到历史原因的影响,我国城市配电网络还缺少标准的规范要求,导致配电网常常出现一些事故。因此,恢复配电网供电已经成为当务之急。随着科技的发展,智能配电网已经被广泛的应用在供电方面,这为平稳供电提供了一定的保障,同时也为恢复配电网故障供电创建了良好的环境与条件等。

参考文献

[1]邓群,孙才新,周驳.采用动态规划技术实现配电网恢复供电[J].重庆大学学报(自然科学版),2006,29(3):40-44.

[2]李振坤,周伟杰,钱啸等.有源配电网孤岛恢复供电及黑启动策略研究[J].电工技术学报,2015,30(21):67-75.

[3]邓昆英,汪凤娇,饶杰等.智能配电网有功自治互动建模研究[J].机电工程技术,2014,(2):4-7.

篇4

1嵌入式智能机器人路径技术的研究

智能机器人路径规划是指处于有障碍物的工作条件下,如何寻找一条适当的运动路径(从给定起点到终点),在运动过程中,使机器人能够安全的规避全部障碍物。

(1)嵌入式智能机器人路径规划的发展趋势

从近些年的研究成果来看,有以下趋势:第一,以功能或行为为基础的智能机器热的路径规划。以功能或行为为基础的机器人具有一种典型的慎思结构,又被称为基于功能的控制体系结构,其主要内容是基于模型自顶向下的感知、建模、规划和动作。智能机器人路径规划问题,建模时,能够设置成为有约束性的规划问题,确保机器人能够完成路径规划、路径规避和定位等方面的任务。由于不同的机器人掌握信息环境的程度存在差异,可将智能机器人的路径规划分为两种,其一是以传感器为基础的局部路径规划,具体是获知了作业环境中的所有信息,主要包括:自由空间法、构型空间法以及神经网络法等;其二是以模型为基础的全局路径规划,具体是指已经全部获知或部分获知作业环境中的信息,主要包括混合法、滚动窗口法、人工势场法等。第二,神经网络、模糊控制等一系列算法不断涌现并相互结合形成新的算法。第三,智能机器人的系统路径规划。智能机器人的工作环境逐渐复杂化,再加上工作任务的增加,单智能机器人无法负荷这样的工作要求。因此,将会出现单个智能机器人路径规划与多智能机器人的合作相结合的发展趋势。

(2)机器人智能规划中的特点

智能机器人路径规划中主要存在以下特点,①复杂性,是指环境复杂,机器人的路径规划复杂,且路径规划过程中需要很大的计算量支持。②随机性,是指工作环境的变化复杂,存在较多的不确定因素和随机性。③约束性,在机器人运动的过程中,其速度、形状等方面均存在约束。

2智能机器人路径规划的算法研究

(1)局部路径规划算法研究

1)模糊逻辑控制法

在环境模型不完善的情况下,可以使用模糊逻辑算法。这种算法的推理和计算简单,对传感器信息的要求较低,且对机器人的行为有较高的稳定性、一致性以及连续性,能够有效的解决在路径规划过程中遇到的一些问题。虽然这种算法能够圆满的解决未知环境下的规划问题,但仍存在灵活性较差、无法学习的不足之处。

2)遗传算法

遗传算法是解决最佳化的搜索方法,属于进化算法的一种。这种算法最初借鉴了进化生物学中突变、自然选择、交叉和变异等现象而发展起来的,它采用群体搜索技术,实施选择、交叉、变异等一系列遗传操作后,使种群在迭代中不断进化。这种算法的理论推导简单,问题的最优解能够直接得出。遗传算法的基本思想是路径转换为二进制串,首先将路径群体实施初始化操作,然后对路径群体实施选择、复制等一系列遗传操作。通过多次进化后,达到最佳的进化状态,停止进化并将当前存在的最优个体输出。虽然遗传算法得推导理论简单,但路径规划过程中仍存在效率低、个体编码不合理等问题。

(2)全局路径规划算法研究

1)构型空间法

构型空间法主要包括优化算法和可视图法。第一,优化算法。第二,可视图算法。路径图主要由机器人中的一维网络曲线自由空间中的节点构成。因此,在同路径图中,路径初始状态的点一一与目标状态的点相对应,从而促使点间搜索路径问题替代了路径规划问题。这就要求点与点之间的连线是无法穿越障碍物,即机器人与障碍物点、目标点与障碍物点、以及顶点与障碍物顶点之间的连线是可视的,然后,采取有效的搜索方法,搜索最优路径(起始点到目标点),从而使搜索最优路径问题演变为可视直线最短距离的问题。可视图法虽然能够得到最短路径。第二,优化算法。采用优化算法時,为了简化可视图和减少路径搜索时间,有部分可有可无的连线可以删除,最终实现求得最短路径的目的。

2)神经网络法

人工神经网络一种自适应非线性动态系统,主要是由大量神经元组成。在工作环境广泛、精度要求高的条件下,采用神经网络法表示环境,将会取得显著效果。在全局路径规划中应用神经网络法,能够将障碍约束变成惩罚函数,并用神经网络来描述碰撞惩罚函数进而将约束优化问题转变为无约束最优问题,实现全局路径规划。神经网络法具有较强的学习能力,但整体应用于路径规划中的效果不明显,这是因为智能机器人的工作环境复杂,并伴有一定的随机性,数学公式无法进行准确的描述。

3嵌入式智能机器人路径规划算法的应用与实现

嵌入式智能机器人的组成部分主要有驱动控制器和嵌入式微处理器。嵌入式智能机器人的硬件结构有较高的可扩展性、良好的独立性以及较小的功耗等特征,且能够得到嵌入式系统的充分支持。嵌入式智能机器人的主板是机器人的大脑,主要担任机器人运动过程中的实时计算工作。随着嵌入式技术的不断发展,为智能机器人的路径规划算法的实现和运用提供了无限的可能性,再加上以SOC技术为基础的高性能32位嵌入式微处理器的广泛应用,为智能机器人研究领域中,引入实时操作系统提供了强有力的物质基础,同时这将是机电控制系统的未来发展趋势。嵌入式智能机器人路径算法的主要从获取和决策两方面实现,获取是指通过感知系统获取所需要的环境信息,决策是指通过决策运算后,得出的控制数据由伺服控制系统接收,同还能够实现与其他机器人的通讯和人机交互。嵌入式智能机器人路径规划的运用,需要嵌入式操作系统有较好的实时性、可靠性,并对系统成本提出了更高的要求,此外,根据系统拥有的定制和裁减的特点,在开展多任务管理的同时也能够保证工作的实时性能。嵌入式智能机器人路径算法,不需要使用复杂的系统即功能,如文件系统等。嵌入式智能机器人路径技术的研究重点主要在仿人智能和仿生智能两方面,随着我国科学技术的发展,嵌入式智能机器人与多种学科交叉和结合,比如,人工智能、认知科学等,使其智能化的行为程度不断的提升。此外,嵌入式系统还适用于在功能、体积等方面有严格规定的专业计算机系统,使计算机系统具体专用性强、实时性好、微内核精简等优势,由此可见将嵌入式智能机器人路径规划算法与嵌入式技术相结合是未来智能化机器人的重要发展方向。

4总结

随着我国科技水平的不断提高,遥感技术、控制技术等诸多技术的进一步发展,在智能机器人研究领域,嵌入式智能机器人路径技术也已经取得了显著的成就。在未来的机器人系统中,遗传算法、神经网络法、模糊逻辑控制法等将会进一步应用于嵌入式智能机器人的研究中,使机器人的各方面性能得到显著提升。

【参考文献】 

篇5

物流与国民经济及生活的诸多领域密切相关,得到越来越多的重视,甚至被看作是企业“第三利润的源泉”。因此,作为物流领域中的典型问题,旅行商问题(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)

篇6

一、路径规划的意义

白车身焊接机器人焊接中制定出一条合理的路径规划可以有效缩短机器人生产时间,进而缩短整个工期,提高整个生产效率,某种程度上降低了生产成本。另一方面,白车身焊接机器人焊接路径规划具有一定的典型性,在自动驾驶、服务机器人、挖掘机器人等路径规划研究方面具有重要的借鉴意义,具有较高的社会价值和经济价值。

二、白车身焊接机器人焊接路径规划

(一)路径规划的基本任务

现代化工业生产的主要目标是为了获得较高的制造质量、取得较高的生产率,而付出较低的生产成本,这是现代企业提高自身竞争力的重要手段,也是路径规划中的主要任务之一,而在路径规划的过程中要想保证焊接质量主要取决于以下两点:

第一,最大程度的使用机器人工位。使用机器人工位能够有效降低工人的劳动强度,减少人为错误几率,提高焊接的准确性,保证焊接的顺利进行,从而保证焊接的稳定性。

第二,要完成所有的焊接点,保证焊接的工艺参数。

要想实现较低的制造成本就是最大化的利用现有资源,提高机器人的工作效率,缩短机器人工位的生产周期,减少机器人的使用数量。路径规划的重要方向就是提高生产率,保证生产环节的顺利进行,缩短生产周期,提高生产率。

(二)路径规划

白车身焊接机器人焊接路径规划主要有两个分支,一是改变工艺参数,使用新的工艺方法和辅助设备。二是要提高分配的合理性、提高焊接顺序的合理性,提高合理性的目标是为了减少机器人工位的生产周期。第二个分支实现的途径主要是通过提高机器人焊接路径的合理性,从而提高单个机器人的生产效率,最终缩短整个生产周期。

(三)遗传算法

遗传算法是进化算法中产生最早、应用最广泛的一种基本算法,在工程技术和经济管理领域都有广泛的应用。遗传算法有群体搜索和遗传算子两个基本特征,所谓的群体搜索打破了领域的限制,使信息可以广泛分布于整个空间。而遗传算子就是使染色体进行随机操作,以降低人机交互的依赖。两个特征保证了遗传算法具有最优的搜索能力、最简明的操作能力以及信息处理的隐秘能力。

白车身焊接路径规划主要问题如下:

第一,白车身中所需要焊接的焊接点众多。

第二,在生产的过程中常常追求没有意义的高精度。

第三,在解答相关问题时需要运用数学方法。

第四,因为方案最终应用于企业,所以数学方法最好要简洁明了,便于学习。

综上,在路径研究时需要运用遗传算法,主要优势在于:

第一,遗传算法的计算步骤比较简单明了,在实际操作时便于学习和使用。在计算时大大减少了计算量,从而节约时间。

第二,能够在很大程度上优化焊接作业顺序,减轻焊接的工作量。

第三,减少定量分析与定性分析的工作量。

第四,能够很好的掌控全局,在全局中找到最优解。

三、路径规划的仿真

(一)仿真系统的各要素

路径仿真系统一般要具有以下几个基本要素:

第一,对仿真问题的描述。模型和仿真运行控制共同组成了一个仿真系统,而一个特定的模型又是由一个参数和一组参数值构成。例如白车身点焊机器人焊接路径的参数模型一般包括家具模型、机器人模型、侧围模型,在这基础之上还加入了具体的参数值,就形成了特定的模型。

第二,行为产生器。模型确定以后就要对模型进行试验,这是一套试验的软件,行为产生器可以生成一组根据时间变化的数据,这类数据是仿真的物资基础。

第三,模型行为及对行为的处理。

模型行为可以大致分为三种:轨迹行为、结构行为以及点行为。

仿真系统中都要获取轨迹行为,这些行为的获取主要是根据时间的推移而产生的。

(二)仿真软件的选择

一个完善的机器人仿真系统可以依据机器人的运动学、动力学、行为轨迹等多项内容进行仿真计算,并可以根据机器人的实际操作内容进行仿真操作过程,并不依赖于真正的机器人。但目前最主要的工作是对机器人的路径规划做一个仿真方案,而不是设计出一个机器人的仿真系统。在进行机器人路径规划时需要一定的条件,在现实生活中可以有多个选择,最好的选择就是使用一些类似CAR这种专业软件,如果条件不允许可以选择VC++或者使用CATIA等软件进行仿真。VC++自主编写的优点在于针对性比较强,在做路径时可以考虑多方面因素,然而缺点是不能建立详细的三维模型,在实际操作时不能全方面的展现白车身焊接工位情况,且工作量较大。CATIA与VC++相比最大的优势就是可以建立详细的三维模型,能够全方位展现工位情况,仿真轨迹最为真实,在仿真过程中还可以检查是否干涉。而缺点也是比较明显的,在仿真的过程中不能将动力学和控制算法考虑在内。

四、小结

白车身主要是以钢结构为主的支架,是汽车中重要组成部分。而车身制造是整个环节中比较复杂又极为重要的一环,影响整个汽车的质量。我国研究白车身焊接机器人焊接路径仍处于落后阶段,为了提高综合竞争力需要加大技术投资,提高我国白车身制造综合竞争。

参考文献:

篇7

1 群智能算法概述

群智能算法是近几十年发展起来的一类基于生物群体行为规律的全局概率搜索算法。这些算法将搜索空间中的每一个可行解视为生物个体,解的搜索和优化过程视为个体的进化或觅食过程。生物个体适应环境的能力用来度量待求解问题的目标函数,生物个体的进化或觅食过程用来模拟优化中较差的可行解被具有优势的可行解替代的迭代过程。下文将对几种典型的群智能算法进行简要的介绍。

2 典型群智能优化算法

2.1 蚁群算法

1991年意大利学者Dorigo M等受到自然界中蚁群觅食行为启发而提出了蚁群算法 (Ant Colony Optimization, ACO)。

蚁群算法的思想是:在最短路径的找寻过程中,每只蚂蚁只可以根据局部信息调整路径上的信息素,一轮循环结束后,采取全局信息对路径上的信息量再进行一次调整,且只对寻优过程中发现的最好路径上的信息素进行加强。在蚁群算法中,蚂蚁逐步地构造问题的可行解,在解的构造期间,每只蚂蚁使用概率方式向下一个节点跳转,这个节点是具有较强信息素和较高启发式因子的方向,直至无法进一步移动。此时,蚂蚁所走路径对应于待求解问题的一个可行解。

蚁群算法目前已成功地用于解决旅行商TSP问题、数据挖掘、二次指派问题、网络路由优化、机器人路径规划、图着色、物流配送车辆调度、PID控制参数优化及无线传感器网络等问题。

2.2 粒子群算法

1995年美国的Kennedy等受鸟群捕食行为的启发而提出了粒子群算法(Particle Swarm Optimization, PSO)。

粒子群算法的思想是:将群体中的任一个个体,即每个可行解,视为D维搜索空间的一个有飞行方向和速度的粒子。所有的粒子都有一个被目标函数决定的适应值,且记忆了自身曾经获得的最好位置及当前位置,视为自身的飞行经验。同时每个粒子还知道整个群体所有粒子已获得的最优位置,视为群体的飞行经验。在迭代过程中,所有的粒子将不断地统计个体的飞行经验和整个群体的飞行经验,以此动态调整本身飞行的方向和速度。在此过程中,个体逐步迁移到较优的区域,使群体最终搜索到问题的最优解。

粒子群算法的应用领域众多,如模式识别与图像处理、工程应用、神经网络训练、模糊系统控制、化工系统处理、滤波器设计、仿人智能控制参数优化、数据聚类等。

2.3 人工鱼算法

2002年由我国的李晓磊等受鱼群运动行为的启发而提出了人工鱼群算法 (Artificial Fish-Swarm Algorithm, AFSA)。

人工鱼群算法的思想是:将人工鱼随机地分布于解空间中,解空间中包含着若干局部最优值和一个全局最优值。可将最优值视为食物的浓度,而全局最优值为最大的食物浓度,且人工鱼将移动聚集到食物浓度较大的区域,通过移动策略来控制人工鱼个体的四种行为(觅食、聚群、追尾和随机),用视野来限制个体的邻域,用步长来控制个体探索的进度,用拥挤度来控制群体的过度密集。寻优期间,每次迭代执行完,人工鱼都将对比自身状态和公告板状态,如自身具有优势,则更新公告板状态,确保公告板为最优状态。

人工鱼群算法已在参数估计、组合优化、前向神经网络优化、电力系统无功优化、输电网规划、边坡稳定、非线性方程求解等方面得到应用,且取得了较好的效果。

2.4 混合蛙跳算法

2003年Eusuff等人受青蛙觅食特征的启发而提出了混合蛙跳算法[4] (Shuffled Frog Leaping Algorithm, SFLA)。

混合蛙跳算法的思想是:将青蛙个体随机地分布于解空间中,每只青蛙表示解空间的一个解。在进化更新的过程中既有全局性的信息交流,还有内部的信息交流。根据青蛙个体的适应度值的优劣进行排序和分组,组内只有适应度最差的青蛙更新,元进化并混合各组,在各组一轮元进化后,将组中的青蛙重新排序、分组并记录全局最优解,之后再继续局部搜索的过程。青蛙更新的学习对象首先是组内最优,其次是群体最优,若两次都未能进步,则随机初始化。

混合蛙跳算法已经应用于多个领域,如水资源网络优化、数据聚类、桥面修复、风电场电力系统动态优化、装配线排序、流水车间调度、PID控制器参数调节等。

2.5 人工蜂算法

2005年由土耳其的Karaboga等受蜜蜂采蜜行为的启发而提出了人工蜂群算法(Artificial Bee Colony, ABC)。

人工蜂群算法的思想是:将虚拟蜜蜂群初始时随机分布在解空间中,将食物源的位置抽象成解空间中的点(可行解)。通过三种蜜蜂对食物源位置(解)修正,进行一次循环搜索过程。引领蜂通过对比附近食物源的花蜜量(适应度),来对现有食物源位置(解)进行修正。如果新食物源的花蜜量(适应度)比现有的高,那么引领蜂记忆新食物源(解),放弃现有的。在引领蜂的搜索过程完成后,它们通过跳舞与跟随蜂传递食物源信息。跟随蜂通过汇总和评估所有食物源信息,计算出一个关于花蜜量的概率值,通过比较概率选取食物源。跟随蜂也是根据贪婪选择策略来更新当前食物源的位置。利用侦察蜂来使得陷入局部搜索停滞的蜜蜂跳出。

人工蜂群算法已经应用于多个领域,如车辆路径问题、人工神经网络训练、作业车间调度问题、数据聚类以及各类连续优化问题等。

2.6 萤火虫算法

2009年由剑桥大学的Xin-She Yang受萤火虫发光行为的启发而提出了萤火虫算法(Firefly Algorithm, FA)。

萤火虫算法的思想是:将萤火虫个体作为解随机地分布于解空间中。解的搜索和优化过程视为每只萤火虫的移动和吸引过程。个体所在位置的优劣用来度量所求问题目标函数。个体进化的过程用来模拟优化中较差的可行解被具有优势的可行解替代的迭代过程。萤火虫根据自身亮度和吸引度两个要素来更新自己的位置。萤火虫所在位置的目标值决定其能产生的荧光亮度,所处位置(目标值)越好其亮度越高。萤火虫的亮度与吸引力成正比,视线范围内,亮度稍弱的萤火虫将被吸引,朝着较亮萤火虫的方向移动,以完成的位置进化。当亮度相同时,萤火虫则随机地进行位置移动。萤火虫之间的距离与亮度和吸引度成反比,也即距离越大,亮度和吸引度越小。

目前萤火虫算法已应用在生产调度、路径规划、神经网络训练、天线阵列设计优化、图像处理、机械结构设计优化、负载经济均衡分配问题、复杂函数优化等方面。

3 结论

本文在简述群智能算法的基础上,对近年来发展的几种典型的群智能算法的生物原理、算法思想和应用进行了阐述和研究,为群智能算法的深入研究奠定了基础。

参考文献

[1]Colomi A,Dorigo M,Maniezzo V.The Ant System: An autocatalytic optimization process,Technical Report 91-016,Dept.of Electronics,Politecnicco di Milano,Italy,1991.

[2]Kennedy J,Eberhart RC.Particle swarm optimization[C].IEEE International Conference on Neural Networks,Perth,Piscataway,NJ,Australia: IEEE Service Center,1995,1942-1948.

[3]李晓磊,邵之江,钱积新.一种基于动物自治体的寻优模式:鱼群算法[J].系统工程理论与实践,2002,11,32-38.

篇8

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).

篇9

0 前言

移动机器人的实现涉及自动控制、智能、机械等多种学科。它通常被应用在医疗领域、工业领域等方面。从整体角度来讲,移动机器人的应用促进了生产效率的显著提升。路径规划技术是移动机器人的关键技术之一,研究该技术具有一定的现实意义。

1 路径规划技术的作用

将路径规划技术应用在移动机器人中,能够产生的作用主要包含以下几种:

(1)运动方面。路径规划技术的主要作用是其能够保证移动机器人完成从起点到终点的运动。(2)障碍物方面。设计移动机器人的最终目的是将其应用在实际环境中,在实际环境下,移动机器人的运行路线中可能存在一定数量的障碍物,为了保证最终目的地的顺利达到,需要利用路径规划技术实现对障碍物的有效避开[1]。(3)运行轨迹方面。对于移动机器人而言,除了实现障碍物躲避、达到最终目的地这两种作用之外,应用路径规划技术还可以产生一定的优化运行轨迹作用。在移动机器人的使用过程中,在路径规划技术的作用下,机器人可以完成对最佳运行路线的判断,进而更好地完成相应任务。

2 移动机器人路径规划技术综述

移动机器人的路径规划技术主要包含以下几种:

2.1 局部路径规划方面

在局部路径规划方面,能够被应用在移动机器人中的技术主要包含以下几种:

(1)神经网络路径规划技术。从本质上讲,可以将移动机器人的路径规划看成是空间到行为空间感知过程的一种映射,因此,可以利用神经网络的方式将其表现出来。就神经网络路径规划技术而言,首先需要将相关传感器数据当成网络输入,并将网络输出看成是某固定场合中期望运动方向角增量。在这种情况下,原始样本集则可以用不同选定位置对应的数据代替。为了保证样本集数据的有效性,需要将原始样本集中的冲突样本数据以及重复样本数据剔除掉。对最终样本集应用模糊规则,实现神经网络的有效训练。当典型样本学习完成之后,移动机器人对规则的掌握水平发生了显著提升,进而使得移动机器人在产生智能性能的基础上,顺利完成相应运动[2]。

(2)人工势场路径规划技术。这种规划技术是指,将移动机器人在实际环境中的运动过程当成其在虚拟人工受力场中的一种运动。在虚拟人工受力场中,目标终点会对移动机器人产生一定的引力,而该受力场中的障碍物则会对其产生一定的斥力。在某固定算法的作用下,这两种不同的作用力会产生相应的势,进而形成势场。当移动机器人在该场中运动时,势场中的抽象力会作用在移动机器人上,使得其完成对障碍物的有效避开。在人工势场路径规划技术的实际应用过程中,由于结构简单等因素的影响,移动机器人在到达终点之前可能会停留在局部最优点位置上。对此,需要从数学的角度出发,对势场方程进行重新定义,通过这种方式排除势场中的局部极值,继而保证移动机器人运动的顺利进行[3]。

(3)遗传路径规划技术。这种路径规划技术建立在自然遗传机制等理论的基础上。这种技术通过变异、选择以及交叉对控制机构的正确计算程序进行合理编制,进而实现数学方式基础上生物进化过程的合理模拟。当移动机器人的适应度函数为正数时,允许适应度函数具有不连续或不可导特点。由于这种路径规划技术不涉及梯度信息,因此其能够更好地解决移动机器人在实际运动过程中遇到的问题。遗传路径规划技术的应用优势在于,它能够实现跟踪与规划的同时进行,因此,遗传路径规划技术通常被应用在具有时变特点的未知环境中。

2.2 全局路径规划方面

在该方面,可以被应用在移动机器人中的技术主要包含以下几种:

(1)栅格路径规划技术。这种技术是指,在将实际工作环境分成许多包含二值信息的网格单元的基础上,应用优化算法完成最佳路径的规划搜索。在这种规划技术中,其网格单元通常是由八叉树或者四叉树的方式表示出来。在该技术的应用中,栅格的作用是完成相关环境信息的记录。如果栅格中某位置的累计值相对较低,代表移动机器人可以从该位置通过;如果栅格中某个位置的累计值相对较高,则表示该位置存在障碍物,此时,移动机器人需要利用优化算法将该障碍物避开[4]。

(2)可视图路径规划技术。这种路径规划技术是指,将整个移动机器人看成一个点,然后分别将其与障碍物以及目标终点连接起来,上述连线要求为保证所连直线不会碰触障碍物。当所有连线都连完之后,即完成了一整张可视图。在该可视图中,由于起点到目标终点之间的连线都不涉及障碍物,因此上述所有连线都属于有效直线。在这种情况下,需要解决的问题主要是从这些连线中找出一条距离最短的连线。对此,需要应用优化算法将可视图中距离较长的连线删除,这种处理方式能够有效提升移动机器人的搜索时间。

(3)拓扑路径规划技术。这种规划技术是指,将移动机器人的移动范围,即规划区域分成多个具有拓扑特征的子空间,然后利用不同子空间之间的连通性完成拓扑网络的构建。当该网络构建完成后,直接从网络中找出能够使得机器人顺利从起点移动到终点的拓扑路径,将所得的拓扑路径作为参考依据完成几何路径的计算。这种规划技术的劣势主要表现为其拓扑网络的构建过程较为复杂。但这种规划技术可以实现移动机器人搜索空间的有效缩小[5]。

3 结论

路径规划技术主要分为局部规划和全局规划两方面。这两方面分别包含人工势场路径规划技术以及神经网络路径规划技术等。应用这些规划技术之后,移动机器人可以在避开障碍物的基础上,顺利完成起点到终点最优运行轨迹的运动。

参考文献:

[1]朱大奇,颜明重.移动机器人路径规划技术综述[J].控制与决策,2010(07):961-967.

[2]张捍东,郑睿,岑豫皖.移动机器人路径规划技术的现状与展望[J].系统仿真学报,2005(02):439-443.

[3]鲍庆勇,李舜酩,沈`,门秀花.自主移动机器人局部路径规划综述[J].传感器与微系统,2009(09):1-4+11.

篇10

贪心算法是用来求解某些问题最优解的一种有效算法,它可以简单迅速的解决很多实际应用的问题,在图论领域也有着非常广泛的应用。

1 贪心算法概述

1.1 贪心算法定义

贪心算法是一种经过改进的分级处理的方法。贪心算法在进行决策的时候总会做出对目前情况最好的选择。和动态规划算法不同的是,贪心算法并不考虑问题的整体最优,而只是选择某种意义上的局部最优。所以,贪心方法未必能针对所有问题求得整体的最优解,但是对于许多问题而言,它却能得到整体最优解。在某些情况下,贪心算法虽然得不到整体最优解,却可以得到最优解的很好的近似。

1.2 贪心算法的基本要素

对于一个具体问题,怎样才能知道能否可以用贪心算法求解并得到最优解呢?在实际应用中人们总结出了两个重要的性质:

(1)贪心选择性质;(2)最优子结构性质。

许多可以利用贪心方法求解的问题一般都具备这两个性质。

1.3 贪心算法的求解步骤

贪心算法求解问题首先要确定一个贪心准则,每一步都是按这个准则选取优化方案。按照这种度量标准对此问题的n个输入排序,并按序一次输入一个量。如果这个输入和当前已构成在这种量度意义下的部分最优解加在一起不能产生一个可行解,则不把此输入加到这部分解中。因此贪心准则的选取直接关系到可行解能否达到最优。

2 贪心算法求解单源点最短路径问题

图论中有一个非常典型的问题:单源点最短路径问题。问题描述如下:对于有向带权图G =(V,E),其中每条边上的权值是一个非负实数。选定V中的一个顶点,称之为源点。这个问题求解的是从源点到图G中其他所有顶点的最短路径的长度。所谓的长度是指经过的各边上的权值总和。

Dijkstra算法正是利用贪心算法求解此问题,用迄今已生成的所有路径长度之和为最小作为贪心准则,为此,每一条单独的路径都必须具有最小长度。此算法的实现步骤为:将顶点集合分为S和V-S这两个子集。子集S中均为已求得最短路径的顶点。初始时,集合S中只有源点,接下来不断做贪心选择来扩充此集合。取G中的一个顶点v,把从源点到v点并且只经过S中顶点的路径称为从源点到顶点v的特殊路径,设置数组dist记录每个顶点当前所对应的最短特殊路径的长度。Dijkstra算法每次都从子集V-S中取出特殊路径长度为最短的顶点,并把该顶点添加至子集S,随后对数组dist进行修改。一旦子集S等于顶点集V,算法结束。数组dist中记录的就是源点到图中其他各顶点的最短路径的长度。

例如,下图1中的有向带权图,采用Dijkstra算法,从源点1到图中剩余各顶点间最短路径的计算过程如下表1所示:

3 贪心算法求解最小生成树问题

最小生成树是非常具有实际应用价值的图论问题,具体描述如下:已知无向连通带权图G=(V,E)。E中每条边(u,v)的权值设为c[u][v]。求图G的生成树G’,使得G’上各边权值的总和是所有生成树中各边权值总和最小的。这个问题被称为最小生成树问题。最小生成树的求解方法有多种,其中应用比较广泛的几种算法,如Prim算法和Kruskal算法都是采用了贪心算法的策略。

3.1 Prim算法

Prim算法的基本思想为:首先选择图中任意顶点u,并将u置于顶点集合的子集S中。如果S是顶点集合V的真子集,就继续选择顶点j添加到子集S中,这里的j必须满足条件i?S,j?V-S,且c[i][j]是权值最小的边。按照同样的步骤不断进行贪心选择,直到子集S=V为止。此时,选取到的所有的边就构成了图G的一棵最小生成树。例如,对于图2中的无向连通带权图,按照Prim算法求最小生成树的过程如图3所示。

3.2 Kruskal算法

Kruskal算法构造最小生成树的过程相比Prim算法更加简单明了。首先将无向连通带权图G的n个顶点作为n个孤立的连通分支。并按照权值给所有的边从小到大进行排序。将第一条边加入到连通分支,然后按权值递增的顺序依次查看剩下的每一条边,如果这条边加入构成回路就抛弃,继续考察下一条边,反之加入到连通分支中。一旦加入边的条数等于n-1,则算法结束。剩下唯一的连通分支就是要求取的最小生成树。

例如,对上图2,按Kruskal算法求得最小生成树的过程如下图4所示。

比较上述两种方法可以看出,虽然都是利用贪心算法解决,但是由于选择的贪心准则不一样,因次求解步骤和最小生成树的选边过程都是不一样的。

4 总结

贪心算法也存在着缺点,比如应用范畴比较狭窄而且有一些极难证明,但是针对图论的部分问题,比如上述的两个典型问题,贪心算法不但能够正确的求解,而且与其他算法相比,更是体现了其高效的优势。当然,图论中还有许多未解的问题,这些问题能否用贪心算法求解,或者能否找到更好的贪心准则提高求解的效率则需要更加深入的研究和发现。

参考文献:

[1]余祥宣,崔国华,邹海明.计算机算法基础(第三版)[M].华中科技大学出版社,2006.

篇11

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.

篇12

1背景

数据结构和算法是计算机科学与技术、软件工程等相关专业的专业基础课,其重要性不言而喻,在教学过程中需要运用多种教学方法,让学生领会算法实现的过程和本质,加深对所学知识的理解、记忆和应用。在数据结构和算法课程教学中,图状结构的教学是一个难点,特别是涉及到图的具体应用时,更让学生难以掌握,本文将图示教学法应用到数据结构中关于图状结构的一个典型应用――最小生成树问题,给出该教学方法的基本方法和过程,取得了良好的教学效果。

最小生成树是图状(网络)结构中一个典型的实践应用,可以解决实际中诸如公路网的规划,即在n个城市中,如何规划n-1条公路,使得n个城市都可以连接起来,而所有城市间的连接线长度的总和最短(所要修建的公路长度最短,因而费用最少)。

对于这个典型的应用,绝大多数教科书均介绍了普里姆(Prim)算法,用于求最小生成树问题,然而教科书对这个算法实现的论述,一般是先介绍应用背景,然后就给出算法实现的过程,缺少形象的算法分析过程,课堂教学讲解如果按照这种方式去传授,学生在理解上十分吃力,而且不能有效地长期记忆。笔者结合自己在教学中的经验,将以上算法采用了图示教学法来分析其基本原理和实现过程,并给出算法实现过程,取得了良好的效果。

2教学方法

图示教学法就是用各种图形表示的方法描述问题、引导学生的思考,增强对新知识的记忆,并在教学中被广泛使用。最小生成树属于网络的实践应用,下面以图1为例,用图示教学法来对最小生成树算法进行图示过程分析。

假设某一区域内有n个城市,现要为这些城市修建城间公路,使得任意两城市间都能够相互通达(连通),由于要求所有的城市都在该公路网上,某两个城市间的道路称为一个路段,则修建的道路路段总数应等于n-1个(容易理解:如果路段总数小于n-1,则会有存在城市不能处在该道路网的节点上;如果路段总数大于n-1则会存在某两个城市间有至少两个路段,则路段距离的总和将不是最小),先从这些城市中任选一个作为种子,把剩下的城市用路段连接到由该种子城市为起始点的城市网络中,保证路段长度总和最小(最优路段网),则最后连接好的路段即为最小生成树。

如图1,每个带圈的数字表示一个城市,城市间的边表示城市间的距离,如果两城市间没有边存在,则表示这两个城市间不适宜修道路(如有山脉或河流隔断,造价太高),假设种子城市为数字1(选定的网络的起始顶点),通过图示教学法求最优路段网的过程如图2:

图中,Li-j表示城市i与城市j间的距离,例如在(b)中,当把城市2加入到最优路段网后,城市3、4、6与该最优路段网的距离发生了变化,例如城市3,由于由L1-3(=∞)> L2-3(=5),故其与最优路段网的距离由原先的∞也转变为5

首先构造一个初始最优路段网,但该网络只有一个节点,即“种子城市”,其位于图2(a)中的中心圆圈内,圈外的节点称为节点或城市。然后根据图1城市间的距离(网络节点间的边的权值),求其它所有城市(网络节点)与种子城市间的距离(通过访问网络的物理存储结构如邻接表获取),该图表示仅通过了种子城市来连接所有的其它城市,图中中心圆圈外的城市当前还没有加入到最优路段网规划中,圈外连接每个城市与中心圆圈的实线表示该城市如果按当前规划方案加入到该路段网时所需要建造的路段长度(即网络边的权),圈内的虚线表示当前城市通过某一个最优路段网中的某城市为“桥梁”,而进入到该网络中。例如,城市2如果通过城市1进入规划网,则需要修建长度为16(仅表示相对数值)的道路,城市5要修建长度19的道路,城市6要修建长度21的道路,而城市3和城市4无法通过城市1来连接到最优路段网中(距离为无穷大,∞),而必须通过其它城市作为“桥梁”,来进入该规划网络中。很明显,如果按照该方案来把所有的城市都加入到初始最优路段网,得到的路段网如图2(g),需要修建的路段网总长度为∞,显然不是最优路段网。

注意到为了使规划的路段网是最优的(路段长度总和最小),只要保证每次加入到最优路段网中的城市都具有最短路段长度,则最后的路段总长度也必然最小。在图2(a)中,城市2与种子城市具有最小的距离(16),因而不可能找到其它任何一个路段,实现“种子城市与其它城市实现互连时,种子城市到其它任意一个城市的路段距离小于该值”,因而路段②-①必然是满足种子城市连通其它城市的最优路段,将城市2加入到最优路段网后,得到图2(b)。注意到当城市2加入到最优路段网后,城市3、4、6如果是通过城市2为“桥梁”(图中的虚线所示),加入到该最优路段网中,可以使各自的路段长度由原先的∞、∞和21分别缩短到5、6、11(其它城市通过城市2无法实现路段长度缩短,因为保持不变),此时路段总长度也由原先的∞缩小到57(即16+5+6+19+11),较图2(a),该方案有了很大的进步。然而该网络仍不是最优路段网,因为其仅保证了路段②-①的最优性(注意圆圈内的网络是最优的),而其它城市到该网络中的路段并非最优,这样不能保证路段总长度最小。

进一步注意到,在所有的当前城市中,城市3距离最优路段网的距离最短(5),也就是为了使当前最优路段网(圆圈内的城市及连线)与其它城市能够实现连通,且连通后的路段总长度最小,所以当前应加入城市3(图2(c))。城市3的加入或许可以使得其它的城市通过该城市为“桥梁”,而缩短城市到最优路段网的距离(当然这里城市3的加入实际并没有使其它城市到最优路段网的距离缩小)。同样的道理,在第4步(图2(d)),将城市4加入到最优路段网中(因为在余下的城市中,城市4到最优路段网的距离最小),该城市的加入,也使得城市1以该城市为“桥梁”而到最优路段网的距离由原来的19缩短到18(其它路段不变)。第5步将城市6加入到最优路段网中(图2(e)),该城市的加入没有影响余下的城市(当前仅剩一个城市,即城市5),最后将城市5加入到最优路段网中(图2(f))。得到的最终的最优路段网如图2(h),其路段长度的总和为56(16+5+11+6+18)。

3算法求解

有了如上的图示教学法描述的计算最小生成树实现基本过程,在讲解算法时就比较容易了。算法在实现时需要构造三个辅助数组:第1个数组A[n](n为节点数)记录当前节点是节点还是已加入最短路段(路径)网的节点,数组元素A[i]=0或1,0表示节点i是一个节点,当加入到最短路段(路径)网后,A[i]=1;第2个数组B[n]记录各节点到最短路段(路径)网的距离,用B[n]表示;第3个数组C[n]记录节点通过最短路段(路径)网内的哪一个节点为“桥梁”而进入该路段(路径)网的。注意这里的路径R和路段L是两个不同的概念,路段是节点的边,而路径是具有共同节点的有序边起节点与尾节点首尾相连在一起的序列,如在图1中,其中的一个路径R1-3=L1-2+L2-3。下面结合图2和图3,给出这些数组的值在计算过程中的变化情况。

辅助数组的变化情况如下图3所示,其中图3(a)即对应于图2(a),图3(b)对应于图2(b),依此类推。在图3(a)中,首先只有第一个节点进入最短路段网,因此A[1]=1,其它的A元素均为0,节点与最短路段网的距离B[i]与图2(a)中的距离对应,这里节点1由于已在最短路段网,所以B[1]=0,由于所有的节点目前都是通过节点1与最短路段网连接,因而所有的C[i]的值都是1。在图3(b)中,由于节点2距最短路段网的距离最小(16),节点2进入最短路段网,因而A[2]=1,此时由于节点2已进入最短路段网,因而B[2]=0,而节点3和节点4通过节点2,使它们距最短路段网的距离由原先的∞缩短到5和6,节点6也通过节点2使B[6]由21缩小到11。图3(c)、3(d)、3(e)、3(f)的过程不再赘述。最后的结果(图3(f))表明,节点1通过其本身进入最短路段网,节点2通过节点1进入最短路段网,节点3、4、6均通过节点2为“桥梁”进入最短路段网,而节点5通过节点4进入最短路段网。

基于上述分析,不难给出以上算法的实现描述:

(1) 初始化数组A、B、C,结果如图2(a)、图3(a),这里假设以节点1为起始(源)节点,共有n个节点。

(2) 反复执行如下操作:将B[i]中值最小的元素对应的编号i(即节点i)放入A中(即修改A[i]为1),然后修改A[j]!=0(j!=i)对应的B[j]和C[j]的值,修改的依据是:如果B[j]>Li-j,则用B[j]的值更改为Li-j。直至所有的A[i](1

(3) 输出结果,将B、C的最后值输出即可以得到最后结果,B所有的元素最后都为0,表示所有的元素都进入了最短路段网(最小生成数网),而C中的元素值表示的是当前节点元素(即节点1、2、3、4、5或6)是通过C中表示的节点编号而进入最短路段网的,即:节点1是通过其自身进入路段网,节点2通过节点1进入路段网,节点3、4和6均通过节点2进入路段网,节点5通过节点4进入路段网。

4结论

本文提出将图示教学法可应用于数据结构和算法课程教学的多个环节中,有些算法在大多数教科书中有了一定的图示过程表示,而有些算法却没有给出形象的图示表示,因而需要在教学中应补充。本文以图状结构中的最小生成树算法为例,通过图示分析,详细地讲解这个算法的核心思想和实现过程,通过视觉刺激,使学生能够加深对这个算法过程的把握,取得了良好的教学效果。

参考文献:

[1] 戴敏,于长云,董玉涛. 高效学习数据结构[J]. 计算机教育,2006(2):59-60.

篇13

文章编号:1671-489X(2014)04-0040-03

以计算机和互联网为代表的现代科技迅猛发展,越来越多的具有高科技含量的装备在教育领域得到了广泛应用,使教育装备的分配、管理、保障、运输和更新等工作变得更加复杂。这势必要求学校的管理人员不仅要定性、更要定量地研究教育装备的决策问题,否则将无法做出可行性决策,更不要提什么优化了。同时,我国的社会发展阶段和经济发展水平共同决定了教育经费的数目是有限的,在保证日常教学和科研的前提下,如何尽可能地压缩管理成本是教育装备管理工作中面临的难题。

因此,本文以如何使教育装备在运输过程中的成本最低为切入点,提出教育装备中心选址的最优化问题,采用Floyd最短路径算法实现其求解,为教育装备的管理工作提供科学依据。

1 数学模型

图论的产生和发展经历了200多年历史,1736年瑞士著名数学家欧拉(L.Euler)提出并解决了“哥尼斯堡七桥问题”,标志着图论的起源[1]。随着现代生产和科学技术的迅猛发展,特别是计算机的出现和互联网的普及,使图论方法得以快速扩展,图论已成为现代数学科学中的一门引人注目的新兴学科,渗透到物理学、化学、电工学、管理学、控制论、信息论等诸多学科[2-3]。

最短路径的求取是图论中的一个典型问题。所谓最短路径是指在指定网络中两点间的一条距离最小的路[4]。在求解网络上任意节点间最短路径的方法中,学术界一致公认的较好的算法是Dijkstra和Floyd算法。这两个方法的主要区别是:Dijkstra算法可以计算从图中某一点到其他各点的最短路径;Floyd算法主要用于计算图中所有点之间的最短路径。显然,在研究教育装备运输问题时,可以采用Dijkstra方法进行计算,从而得到装备中心到目标学校之间的最短路径。

当目标学校有多个校区时,装备中心地址的选择必须考虑多方面因素,其中最基本的一点是保证该装备中心到所有校区的最短路径之和最小。此时,如果采用狄克斯屈拉算法,需要计算备选地址和各个校区之间的最短距离,该过程需要重复多次,且计算繁琐;而计算图中所有点之间的最短路径正是Floyd算法所“擅长”的。因此,本文在研究教育装备中心的选址问题时,优选Floyd算法。

表1中每行的合计数表示教材配送中心建于该校区时,满足所有校区每学期教学需要的大学英语教材运输的册千米数。从表中可以看出C列的合计数最小,表明当把教材配送中心建于C校区时,教材运输的册千米数最小,为107 500。

3 结论

虽然规模庞大的高校校区比较分散,但是每学年在每个校区开设的专业和在校生规模基本保持不变,这就保证了每个校区每学年需要的教育装备数目基本保持稳定。因此,高校在建设装备中心时的选址问题必须充分考虑如何使总的运输成本最低,往往一个错误的决策将导致在以后每次装备运输中都产生浪费。本文依据Floyd最短路径算法给出了定量计算,通过本文的实例相信可以为每位管理者提供崭新的思路。

参考文献

[1]李慧.教育装备运筹规划[M].北京:北京大学出版社,2010:100-116.

[2]辛宇.基于运筹学图论的物流网络优化研究[J].中国外资,2011(6):125-127.

[3]蒋智凯.浅谈运筹学教学[J].重庆科技学院学报:社会科学版,2010(24):176-177.

[4]徐俊明.图论及其应用[M].3版.北京:中国科学技术大学出版社,2010:84-90.