基于遗传算法的最美路径导航算法
【技术领域】
[0001] 本发明设及智能优化算法领域,具体地说是一种基于遗传算法的最美路径导航算 法,应用于地图导航中获取最美路径。
【背景技术】
[0002] 使用地图导航已经变得越来越普及,普通导航通常选取两地之间最短或最方便的 线路,但路途枯燥乏味。能否让导航获得的路线变得精彩起来已逐渐成为研究热点。雅虎 实验室于2014年8月在ACM会议上提出了最美路线的问题,即旅途过程中不仅仅关注于最 短路线,同时也关注于路线经过的地方风景是否优美。传统的GI^S地图程序,用户只需要输 入起始点和终点,就可W得到一个最短的行进路径。但该通常仅适合赶时间的用户而非游 客。游客通常希望从起点到终点的路途中,能沿途看到美丽的景色。但此类问题目前还处 于理论研究阶段,实验数据也多为小范围地图,当前并未投入到实际应用中。由于采集景点 数据量大,制定标准复杂,因此开发全自动高性能的算法具有一定难度。
[0003] 遗传算法是模仿自然界生物进化机制发展起来的随机全局捜索和优化算法,它借 鉴了达尔文的进化论和孟德尔的遗传学说。它能在捜索过程中自动获取和积累有关捜索空 间的知识,并自适应的控制捜索过程W求得最优解。遗传算法操作使用适者生存的原则,在 潜在的解决方案种群中逐次产生一个近似最优解的方案。在遗传算法的每一代中,根据个 体在问题域中的适应度值和从自然遗传学中借鉴来的再造方法进行个体选择,产生一个新 的近似解。该个过程导致种群中个体的进化,得到的新个体比原来个体更能适应环境,就像 自然界中的改造一样。
[0004] 遗传算法是计算机科学人工智能领域中用于解决最优化的一种捜索启发式算法, 是进化算法的一种。进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,该些 现象包括遗传、变异、自然选择W及杂交等。
[0005] 遗传算法通常实现方式为一种计算机模拟。在算法中,优化问题的解被称为个体, 它表示为一个变量序列,叫做染色体或者基因串。染色体一般被表达为简单的字符串或数 字串,不过也有其他的依赖于特殊问题的表示方法适用,该一过程称为编码。首先,算法随 机生成一定数量的个体,有时候操作者也可W对该个随机产生过程进行干预,W提高初始 种群的质量。在每一代中,每一个个体都被评价,并通过计算适应度函数得到一个适应度数 值。种群中的个体被按照适应度排序,适应度高的在前面。
[0006] 下一步是产生下一代个体并组成种群。该个过程是通过选择和繁殖完成的,其中 繁殖包括交叉(crossover)和变异(mutation)。
[0007] 选择则是根据新个体的适应度进行的,但同时并不意味着完全的W适应度高低作 为导向,因为单纯选择适应度高的个体将可能导致算法快速收敛到局部最优解而非全局最 优解,称之为早熟。作为折中,遗传算法依据原则:适应度越高,被选择的机会越高,而适应 度低的,被选择的机会就低。初始的数据可W通过该样的选择过程组成一个相对优化的群 体。
[000引之后,被选择的个体进入交叉过程。一般的遗传算法都有一个交叉概率,范围一般 是0. 6~1,该个交叉概率反映两个被选中的个体进行交叉的概率。每两个个体通过交叉产 生两个新个体,代替原来的"老"个体,而不交叉的个体则保持不变。交叉父母的染色体相 互交换,从而产生两个新的染色体。
[0009] 下一步是变异,通过变异产生新的"子"个体。一般遗传算法都有一个固定的变异 概率,通常是0. 1或者更小,该代表变异发生的概率。根据该个概率,新个体的染色体随机 的变异,通常就是改变染色体的一个字节(0变到1,或者1变到0)。
[0010] 经过该一系列的过程(选择、交叉和变异),产生的新一代个体不同于初始的一 代,并迭代向增加整体适应度的方向发展,因为最好的个体总是更多的被选择去产生下一 代,而适应度低的个体逐渐被淘汰掉。该样的过程不断的重复;每个个体被评价,计算出适 应度,两个个体交叉,然后突变,产生第=代。周而复始,直到终止条件满足为止。
[0011] 生物的进化过程主要是通过染色体之间的交叉和变异来完成的。基于对自然界中 生物遗传与进化机理的模仿,针对不同的问题,很多学者设计了许多不同的编码方法来表 示问题的可行解,开发出了许多种不同的遗传算子来模仿不同环境下的生物遗传特性。该 样,由不同的编码方法和不同的遗传算子就构成了各种不同的遗传算法。
[0012] 针对最美路径导航问题的分析,采用遗传算法进行求解存在两方面问题:
[0013] 问题1 ;变长染色体的处理问题。不同于传统遗传算法中定长染色体序列,路径导 航结果路线应为变长序列。
[0014] 问题2 ;途经路线长度和沿途景点选取两者的平衡选择问题。不同于传统遗传算 法中单目标优化问题,路径导航设及多目标优化问题。
[0015] 相较于传统的遗传算法采用定长的染色体,获取最美路径问题中路径节点为变化 的,即染色体为变长。为了保持在进化过程中,染色体的长度是可变的,传统的交叉和变异 算子将不再适用。其次,并不是一个随机的节点序列就可W表示为一条有用路径,还需要考 虑到是否有节点重复等问题。另外,为简化问题描述和编解码,采用序号编码相较于二进制 编码更有优势。
[0016] 适应度函数在遗传算法中的作用举足轻重。适应度函数设计应满足W下条件:规 范性、合理性、单值、连续、计算量小、通用性。另外,设计适应度函数应注意两个遗传算法的 欺骗问题:算法初期,种群中出现的少数适应度较高的个体会充斥整个种群,使产生新个体 的操作失去作用,算法迅速收敛到一个局部最优解;算法后期,种群中个体之间差异缩小, 算法失去竞争性,退化成随机选择过程。设计适应度函数时,需要对函数式进行优化。优 化目标为保证适应度值不局限于一个很小的子区间;越靠近最优解,适应度值变化越灵敏; 在平均适应度值W下的个体,适应度值下降更快。
【发明内容】
[0017] 本发明的目的是提供一种基于遗传算法的最美路径导航算法,该算法能够达到原 始设计要求,取得相应的有效解,良好的解决了获取最美路径的问题。
[001引本发明的目的是该样实现的:
[0019] 一种基于遗传算法的最美路径导航算法,该算法用于地图导航,其中:景点总数为n,算法中适应度函数为:
[0020]
[002U
【主权项】
1. 一种基于遗传算法的最美路径导航算法,其特征在于该算法用于地图导航,其中: 景点总数为η,算法中适应度函数为:
.?为η个景点的路程总长度和总评分,pmin为起点到终点的最短路程, c为用户路程额定参数;q为散列参数;采用序号编码的形式,对每个景点进行编号,则一条 路线以起点编号〇、途经景点的编号和终点编号η来表示,每一个基因均代表一条对应的路 径;具体步骤为: 1) 设计起始路径作为初始基因,其中包括起点终点Vn,以及随机数个随机节点;每 条路径中不应有重复的节点; 2) 设定起始最美路径为(V(l,νη),此路径不包含任何景点,只有起点和终点;设定每代 种群为pop ; 3) 设定算法最大迭代数目为maxGen,只要未达到此数目,则重复步骤4-7 ; 4) 使用适应度函数计算pop中各基因个体g的适应度值; 5) 计算各基因个体的适应度值与当前代所有基因个体的适应度值总和的比值,产生 一个随机数,找出适应度比值劣于该随机数的基因个体,将此基因个体选出加入候选基因 集; 6) 依次从候选基因集中选出个体g',进行如下a-d操作: a) 如果满足插入概率,设定g'包含景点外的所有景点集合为候选集;从候选集中随机 选取随机数个节点插入到g'中的随机位置,但插入位置不包括第一个节点的前面和最后一 个节点的后面; b) 如果满足删除概率,在g'中的随机位置删除随机数个景点,但删除操作后的子代中 至少应包含起点和终点; c) 如果满足变异概率,设定g'包含景点外的所有景点集合为候选集;从候选集中选择 不包括起点和终点的随机数个节点,随机替换g'中相同数目的节点; d) 对g'中的景点序列进行排序,排序规则为按照各景点到终点的距离,由远及近进 行; 7) 将适应度值最大的基因 gmax保存为最美路径; 8) 输出最美路径。
【专利摘要】本发明公开了一种基于遗传算法的最美路径导航算法,它采用序号编码的形式,对每个景点进行编号,路线以经过景点的编号来表示,便于编码和解码,并采用线性聚合优先权法处理多目标遗传算法(MOGA),设计由自适应概率控制的插入、删除和变异算子处理变长染色体遗传算法(Clv GA),添加排序算子缩小搜索空间,加快收敛。本发明能够达到原始设计要求,取得相应的有效解,良好的解决了获取最美路径的问题。并且用户可指定计算参数,在获得的解集中选取自身喜爱的路径。
【IPC分类】G06N3-12, G06F17-30
【公开号】CN104866903
【申请号】CN201510249511
【发明人】刘垚, 张恺, 吴萍
【申请人】华东师范大学
【公开日】2015年8月26日
【申请日】2015年5月15日