通用區域性搜尋演算法之爬山法也叫貪婪演算法

2021-07-13 06:09:56 字數 361 閱讀 5262

在上山移動中,隨機選擇下一步,選擇的概率隨著上山移動到陡峭程度而變化;

隨機地生成後繼節點直到生成乙個優於當前節點的後繼

「如果一開始沒有成功,那麼嘗試,繼續嘗試」

演算法通過隨機生成的初始狀態來進行一系列的爬山法搜尋,找到目標時停止搜尋。

該演算法以概率1接近於完備:因為演算法最終會生成乙個目標狀態作為初始狀態

如果每次爬山搜尋成功的概率為p,則需要重新開始搜尋的期望次數為 1/p。例如:

八皇后問題,大概需要7次迭代(6次失敗,1次成功)即可找到目標,即:

p=1/7=0.14

所需步數的期望值:一次成功迭代的搜尋步數 + 失敗搜尋步數 * (1-p)/p

1*4+6*3=22

搜尋演算法 爬山法

一 爬山演算法 爬山演算法是一種簡單的貪心搜尋演算法,該演算法每次從當前位置的臨近空間中選擇乙個最優解作為當前解,直到達到乙個區域性最優解。爬山演算法可以模擬成乙個有失憶的人在濃霧中爬山。這裡就揭示了爬山演算法的兩個問題 失憶 就是說這個人不記得他去過什麼地方,他只記得他現在所處的位置,以及周邊的情...

搜尋演算法 爬山法

爬山法是深度優先搜尋的改進演算法。在這種方法中,使用某種貪心演算法來幫助我們決定在搜尋空間中向哪個方向搜尋。由於爬山法總是選擇往區域性最優的方向搜尋,所以可能會有 無解 的風險,而且找到的接不一定是最優解。但是他比深度優先搜尋的效率要高很多。主要的演算法描述如下 1 構造由根節點組成的1元棧。2 檢...

爬山搜尋演算法

1.爬山法 hill climbing 爬山法是向值增加的方向持續移動到簡單迴圈過程,演算法在到達乙個 峰頂 時終止,此時相鄰狀態中沒有比該 峰頂 更高的值。爬山法不維護搜尋樹,當前節點只需要記錄當前狀態及其目標函式值 爬山法不會前瞻與當前狀態不直接相鄰的狀態的值 就像健忘的人在大霧中試圖登頂珠峰一...