基于GIS路径规划算法研究与实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于GIS路径规划算法研究与实现

基于GIS路径规划算法研究与实现   摘 要: 路径规划问题是地理信息系统(GIS)研究领域中的关键内容之一,最短路径的寻找更是热点问题。在数据量较大时,传统前K条最短路径算法效率较低,且不能解决某些实际需求下规划K条差异较大的路径问题。在Dijkstra算法的基础上,引入有利度与重复度的概念,通过对路径结果重复度的检测以及由有利度的改变所引起的图的变化,循环寻找当前图中的最短路径,从而实现了多条差异路径的规划。在上述算法的基础上,对野外区域中带状区域的有利度及重复度进行控制,解决了传统前K条最短路径算法难以满足野外区域多条差异路径规划的问题。   关键词: 路径规划; GIS; 有利度; 重复度   中图分类号: TN911?34; TM417 文献标识码: A 文章编号: 1004?373X(2016)05?0101?04   0 引 言   KSP问题是一个非常复杂的问题,而且根据不同的应用场景以及具体需求要采用完全不同的算法来解决[1]。目前虽然存在多种KSP算法,但没有一种算法能够普遍适用于常规多条路径规划的问题,而且每种KSP算法都倾向于问题的某些方面对问题进行解决[2]。   1 K优路径规划算法及其扩展   KSP问题是一个非常复杂的问题,根据不同的应用场景以及具体的需求,KSP问题需要相应的解决办法。现有的各种算法并不能很好地解决本文所面对的在大规模数据下寻找多条满足一定差异性路径的问题。因此,提出了大规模数据下满足重复度要求的K优路径规划算法(KPLR)[3]。   KPLR算法可有效解决在大规模数据下多条差异路径规划的问题。KPLR算法引入了有利度的概念,它是一种简单的启发信息,是图中每条边的附加属性,促使算法在每次循环中搜索有别于上次结果的其他路径[4]。同时,KPLR算法引入了重复度的概念,它的使用保证了结果集的质量。由于使用的启发信息较为简单,算法得到的路径结果牺牲了一定的精度,但大大提高了效率。考虑到在大规模数据下进行路径规划的需求以及用户注重路径之间差异的特点,这样的做法是较为合理的。由于需要解决的是实际中的问题,因此暂不考虑负边值所带来的问题[5]。   1.1 KPLR算法   使用path_current表示当前分析路径,path_current_vertex表示其顶点序列;path_current_edge表示其边序列;path_result表示已经得到的可用路径结果集合;函数Repetition(path_current,path_result)计算当前路径与路径结果集合中每条路径的重复度是否满足重复度限制系数[θ;][Kth]表示需要找到的路径数量;Count表示在给定某[θ]值时算法可以进行的循环次数上限;[Δθ]表示当需要放宽重复度限制时的递增步长。KPLR算法如下:   (1) int k=0(用整数[k]记录已经得到的路径数目);int c=0(用整数[c]记录在当前[θ]值下算法已循环的次数);path_result=[?。]   (2) 若[kKth]或者[θ≥1,]算法退出,否则转步骤(3)。   (3) 若[cCount,]置[c=0;]对所有[ei∈E,]重置[ei.u=]1;同时[θ=θ+Δθ,]即放宽重复度的限制。   (4) path_current=Dijkstra(G,s,e);c=c+1。   (5) 按顺序遍历path_current_edge中所有的边[ei,]降低其有利度,使[ei.u=ei.uα。]   (6) 若Repetition(path_current,path_result)为真,即对任意path∈path_result,Repetition(path,path_current)[θ,]则当前路径满足重复度要求,path_result=path_result∪{path_current},同时[k=k+1,]转步骤(2);若Repetition(path_current,path_result)为假,无操作,直接转步骤(2)。   在步骤(5)中,对当前路径path_current中所有边降低其有利度,这样就改变了当前图[G,]并降低了path_current在下次循环中的有利度,促使Dijkstra在新图[G’]中寻找有别于它的最短路径。   在具体的实现过程中,可以通过有利度惩罚因子[α]以及重复度限制系数[θ]对算法进行一定的控制。   1.2 扩展的多点规划KPLR算法   在实际应用场景中的路径规划往往不仅限于两点之间,经常会有在多点之间规划路线的需求,而上述KPLR算法无法满足这种需求,因此需要将其扩展,以便满足这种需求[6]。   扩展的KPLR算法(EKPLR)可用于进行多点之

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档