最短路径算法大讨论!!
目前我知道的最短路径算法只有DIJKSTRA算法跟A*算法,算是菜鸟了。前段时间本人优化了下最短路径算法,效率大大提升。不知道DIJKSTRA算法能否算大数据量网络的最短路径。
算大数据量网络最短路径的算法都有哪些?效率如何?
欢迎各位高手进来讨论一二,让我们学习一下!顺带散分~
[解决办法]
高深莫测
[解决办法]
作为一名搞.Net的程序员,我感觉我跑错地方了
[解决办法]
用优先级队列维护带更新节点到已更新集合的距离
[解决办法]
[解决办法]
void Min_path(long **cost = new long * [vertexNumber], long **path = new long * [vertexNumber]){ /******************************************************用于精确计算运行时间*********************************************************************/ QueryPerformanceFrequency(&Frequency); QueryPerformanceCounter(&BegainTime) ; /******************************************************用于精确计算运行时间*********************************************************************/ long i , j ,u , v , E , min , count , n = vertexNumber ; long s[vertexNumber] ; long pos[vertexNumber] ; long dist[vertexNumber] ; // cout << "Start Point and End Point :" ; // cin >> v >> E ; v = 236; E = 542; for (i = 0 ; i < n ; i ++) { s[i] = 0 ; dist[i] = cost[i][v - 1] ; path[i][0] = v - 1 + 1 ; pos[i] = 0 ; } s[v - 1] = 1 ; dist[v-1] = 0 ; for (count = 1 ; count < n ; count ++) { min = MAXINF ; for (i = 0 ; i < n ; i ++) { if (s[i] == 0 && dist[i] < min) { u = i ; min = dist [i] ; } } s[u] = 1 ; path[u][++ pos[u]] = u + 1 ; for (i = 0 ; i < n ; i ++) { if (s[i] == 0) { if (dist[u] + cost[i][u] < dist[i] && cost [i][u] < MAXINF) { dist[i] = dist[u] + cost[i][u] ; for (j = 0 ; j <= pos[u] ; j ++) { path[i][j] = path[u][j] ; } pos[i] = pos[u] ; } } } } /******************************************************用于精确计算运行时间*********************************************************************/ QueryPerformanceCounter(&EndTime); cout << "Dijkstra 算法的运行时间(单位:s):" <<(double)( EndTime.QuadPart - BegainTime.QuadPart )/ Frequency.QuadPart <<endl; /******************************************************用于精确计算运行时间*********************************************************************/ for (i = 0 ; i <= pos[E - 1] ; i ++) { cout << path[E - 1][i] << "," ; } cout << "\t" ; cout << dist[E - 1] ; cout << endl ; system("pause");}
[解决办法]
看不懂
[解决办法]
????????????????
[解决办法]
好高深。。学习!
[解决办法]
看不懂的路过
[解决办法]
帮你们顶一下吧。
[解决办法]
正在学习中。
[解决办法]
目前应用比较广泛的导航算法应该是双向A*算法, 优化来讲基本是对图进行提层, 另外A*算法中加入方向扩展的控制(加入期望 过滤可能性小的node点)。 当A*扩展点是遇到重要的连通点是 就往上层图跳转 继续A* 一直到双向碰撞为止。 基本上很多的优化都是基于这种思想
[解决办法]
帮你们顶一下吧。
[解决办法]
路过,看高见。
[解决办法]
深奥啊!
[解决办法]
接分啊接分~~~
[解决办法]
学习了!
[解决办法]
还是有些价值!
[解决办法]
看不懂啊
[解决办法]
学习一下再来
[解决办法]
我的妈呀···
都是高手啊·
[解决办法]
厉害,,