毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
最短路径算法中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在线学习辅导系统的设计与实现
基于Apriori算法的电影推荐
基于PageRank算法的网络数据分析
基于神经网络的验证码识别算法
python基于决策树算法的球赛预测
加密与解密算法的研究【1931字】
一種删除准则的NOMA资源联...
vc++几种排序算法演示软件实现
C#学校科研管理系统的设计
神经外科重症监护病房患...
国内外图像分割技术研究现状
承德市事业单位档案管理...
中国学术生态细节考察《...
志愿者活动的调查问卷表
10万元能开儿童乐园吗,我...
医院财务风险因素分析及管理措施【2367字】
公寓空调设计任务书
AT89C52单片机的超声波测距...