毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
最短路径算法中Dijkstra算法的优化及应用(3)
void MGraph<T>::Dijkstra(int s,T*& d, int *& path)
{
int k,i,j;
if(s<0||s>n-1)throw OutOfBounds;
bool *inS=new bool[n];d=new T[n];path=new int[n];
for(i=0; i<n; i++){ //初始化
inS[i]=false; d[i]=a[s][i]; //a是有向图G的邻接矩阵
if(i! =s && d[i]<INFTY) path[i]=s;
Else pash[i]= -1;
}
inS[i]=true; d[s]=0; //将源点加入S中
for(i=1; i<n-1; i++){ //求n-1条最短路径
k=Choose( d, inS); //选出下一条最短路径的的结点k
inS[k]=true; //将k加入S中
for (j=0; j<n; j++) //更新d和path的值
if (! inS[i]&& d[k]+a[k][j]<d[j]){
d[j]=d[k]+a[k][j]; path[j]=k;
}
}
}
3.优化的Dijkstra算法
3.1 两种Dijkstra优化算法
第一类优化算法——减小算法中成功搜索范围
减小算法中成功搜索的搜索范围以尽快到达目标节点。在对现实问题中的交通图初始化为网络拓扑图时,虽然终点已知,而源点尚未确定,但依据常识离案发地段最近的派出所应为案发地段所在辖区派出所,或其周边派出所,也就是源点的选取范围可以确定利用MapObjects2组件提供的MapLayer.SearchExpression (expression)记录集筛选方法,根据案发地段(终点)的不同,动态选取案发地段所在辖区及相邻辖区的道路图层及派出所图层数据进行最短路径查询,从而有效地减少了拓扑图中节点总数 的值。
第二类优化算法——改进算法的存储结构
在实际工作中,还要建立起空间数据结构。网络数据结构使用的是“边和节点”的数据结构,该数据结构是建立在图论的基础上,节点可用来定义边的连接关系。对于网络数据的存储,传统的是采用图论中的邻接矩阵方法,其存储量为 ( 为网络中节点数)。通常的地理网络,尽管节点很多,但与节点相关联的节点数目并不多,一般都为稀疏图,将会浪费大量的空间。若采用邻接表的链式存储结构,其存储量为 ( 为节点列表中,同节点关联的所有边的数目),可节省大量的存储空间,尤其是在表示与节点和边相关信息较多的地理网络时,更为有效。但邻接表却难以判断两节点之间的关系,因此本文提出利用。.NET框架提供的特殊类Hashtable。.NET框架包含特殊类,比如通常所说的集合类用于存储对象。与数组类似,集合类可以把对象放入容器中,然后再取出。但集合的使用方法与数组不同,拥有用于插入和删除项的专用方法。使用Hashtable最大的优点就是大大降低数据存储和查找的时间花费,几乎可看成是常数时间。
3.2 优化的Dijkstra算法
本文采用第一类优化算法减小搜索范围的思路来对Dijkstra算法进行优化。Dijkstra算法用来求解图上从任一节点(源点)到其余各节点的最短路径。采用邻接矩阵存储网络拓扑结构,需要 的存储空间,随着节点数 的增大,其计算效率和存储效率越低。本文在对传统Dijkstra算法分析的基础上,对其进行了优化,优化算法只对最短路径上节点的邻居做处理,而不涉及到其他节点。
共3页:
上一页
1
2
3
下一页
上一篇:
ASP.net宿舍管理系统的设计与实现+ER图
下一篇:
ASP.net在线学习辅导系统的设计与实现
国产加密算法的研究与实现
基于深度学习的目标识别算法研究
智能算法的海上应急救援基地选址优化设计
基于启发式算法的智能路径规划研究
基于生物启发神经网络的AUV三维路径规划
SOM神经网络多机器人任务分配算法研究
Lukasiewicz模糊算子的图像融合算法研究+源代码
基于Joomla平台的计算机学院网站设计与开发
提高教育质量,构建大學生...
从政策角度谈黑龙江對俄...
AES算法GPU协处理下分组加...
酵母菌发酵生产天然香料...
压疮高危人群的标准化中...
上海居民的社会参与研究
浅论职工思想政治工作茬...
浅谈高校行政管理人员的...
STC89C52单片机NRF24L01的无线病房呼叫系统设计