论文部分内容阅读
网络分析是GIS空间分析的重要组成部分。随着人们普遍使用GIS来管理大型网状设施,网络分析在电子导航、交通旅游、城市规划以及电力、通讯等各种管网、管线的布局设计中发挥着重大的作用。网络分析,就是依据网络拓扑关系,通过考察网络元素的空间、属性数据,对网络的性能特征进行多方面的分析计算。
常规的网络分析功能包括路径分析、资源分配、连通分析、流分析、选址、寻找环路等等,每种分析功能都有着特定的应用。除了分治法、贪心算法、动态规划、回溯法等经典的算法思想外,近十来年又兴起了蚁群算法、遗传算法和模拟退火、神经网络等仿生学算法。多项式算法不能解决的NP问题,利用它们可以得到很好地解决。作者学习并研究了这些非经典算法,尝试着将它们应用到网络分析中来。
GIS网络分析的数学理论基础有图论、运筹学、人工智能等学科分枝。尽管图论提供了许多既成的算法,但GIS中的网络与图这种数学模型存在一定差距。首先,GIS网络模型的网线和结点的空间位置是有意义的;除了网线可以具有权值以外,结点也可以具有权值,并且权值可能是多重的。其次,工程应用中存在大量计算的问题,不得不考虑系统稳定性分析、运行状态分析等。所以,在真实的工程应用中,往往将图论算法进行推广和修正。
作者在学习经典算法思想(分治法、贪心法、动态规划和回溯法等)的同时,也关注到算法理论界近些年来的研究成果(蚁群算法、遗传算法、模拟退火和人工神经网络等)。针对Mapgis7.0的网络模型重新设计了网络分析算法。在路径搜索方面,研究了Dijkstra的改进算法——A*算法,并将它应用到最短路径的求解中来,大大避免了许多无用的搜索,提高了系统效率。对于TSP这样的NP完全问题,作者分别采用动态规划、蚁群算法和模拟退火等算法思想设计出三个不同的算法。在拓扑分析方面,连通元素的求解仍采用了图的生成树算法;回路的寻找运用了图论中环路空间和连枝集的知识。对于单源点的资源分配问题,在“度量因子=需求量/阻碍度”这个算法策略的基础上,提出用多线程模拟并行的实时分配算法;对求解P-中心定位分配问题的Teitz-Bart算法进行了改进。最后,运用面向对象的设计思想,设计了COra_NetCls、CNetElemSet、CConnVisitor等网络类接口,将网络分析模块以插件的形式嵌入到Mapgis7.0中。 通过这样的研究和改进,Mapgis7.0的网络分析能够适用于大地域范围、海量网络数据的分析计算问题,从而提高了网络分析的实用性、高效性。这将使GIS在实际生活中发挥更大的作用。