主要方法:
1.先用Dijstra算法從目標節點G向起始節點搜尋。儲存路網中目標點到各個節點的最短路和該位置到目標點的實際值h,k(k為所有變化h之中最小的值,當前為k=h。每個節點包含上一節點到目標點的最短路信息1(2),2(5),5(4),4(7)。則1到4的最短路為1-2-5-4。
原OPEN和CLOSE中節點信息保存。
2.機器人沿最短路開始移動,在移動的下一節點沒有變化時,無需計算,利用上一步Dijstra計算出的最短路信息從出發點向後追述即可,當在Y點探測到下一節點X狀態發生改變,如堵塞。機器人首先調整自己在當前位置Y到目標點G的實際值h(Y),h(Y)=X到Y的新權值c(X,Y)+X的原實際值h(X).X為下一節點(到目標點方向Y->X->G),Y是當前點。k值取h值變化前後的最小。
3.用A*或其它算法計算,這裡假設用A*算法,遍歷Y的子節點,點放入CLOSE,調整Y的子節點a的h值,h(a)=h(Y)+Y到子節點a的權重C(Y,a),比較a點是否存在於OPEN和CLOSE中,方法如下:
while()
{
從OPEN表中取k值最小的節點Y;
遍歷Y的子節點a,計算a的h值 h(a)=h(Y)+Y到子節點a的權重C(Y,a)
{
if(a in OPEN) 比較兩個a的h值
if( a的h值小於OPEN表a的h值 )
{ 更新OPEN表中a的h值;k值取最小的h值
有未受影響的最短路經存在
break;
}
if(a in CLOSE) 比較兩個a的h值 //注意是同一個節點的兩個不同路徑的估價值
if( a的h值小於CLOSE表的h值 )
{
更新CLOSE表中a的h值; k值取最小的h值;將a節點放入OPEN表
有未受影響的最短路經存在
break;
}
if(a not in both)
將a插入OPEN表中; //還沒有排序
}
放Y到CLOSE表;
OPEN表比較k值大小進行排序;
}
機器人利用第一步Dijstra計算出的最短路信息從a點到目標點的最短路經進行。
D*算法在動態環境中尋路非常有效,向目標點移動中,只檢查最短路徑上下一節點或臨近節點的變化情況,如機器人尋路等情況。對於距離遠的最短路徑上發生的變化,則感覺不太適用。
相關詞條
-
D算法
D算法,是拓撲結構測試中最經典的方法,也是最早實現自動化的測試生成算法之一。它是完備的測試算法,它可以檢測非冗餘電路中所有可以檢測的故障。
-
路由算法
路由算法,又名選路算法,可以根據多個特性來加以區分。算法的目的是找到一條從源路由器到目的路由器的“好”路徑(即具有最低費用的路徑)。
概述 主要目的 設計目標 技術要素 區分要素 -
Dijkstra算法
Dijkstra算法是典型最短路算法,用於計算一個節點到其他所有節點的最短路徑。主要特點是以起始點為中心向外層層擴展,直到擴展到終點為止。Dijkstr...
-
計算機算法
計算機算法是以一步接一步的方式來詳細描述計算機如何將輸入轉化為所要求的輸出的過程,或者說,算法是對計算機上執行的計算過程的具體描述。
簡介 重要算法 特性 評價 十位大師 -
MD5算法
MD5的全稱是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Compute...
一、MD5算法 二、算法描述 三、MD5的安全性 四、C++算法 四、Java算法 -
密碼算法
密碼算法是用於加密和解密的數學函式,密碼算法是密碼協定的基礎。現行的密碼算法主要包括序列密碼、分組密碼、公鑰密碼、散列函式等,用於保證信息的安全,提供鑒...
概述 1 加密技術概述 2 密碼學簡介 相關條目 -
免疫算法
生物免疫系統是一個分散式、自組織和具有動態平衡能力的自適應複雜系統。它對外界入侵的抗原,可由分布全身的不同種類的淋巴細胞產生相應的抗體,其目標是儘可能保...
提出 相關概念 算法流程 發展 分析 -
隨機化算法
在我們的生活中,人們經常會去擲色子來看結果,投硬幣來決定行動,這就牽涉到一個問題:隨機。計算機為我們提供好了隨機方法(部分計算器也提供了),那么對於有些...
隨機數 數值隨機化算法 -
貪婪算法
貪婪算法是一種不追求最優解,只希望得到較為滿意解的方法。
概念 問題實例