爬山演算法顧名思義就是不斷需找自變數使得當前的函式值小於新的自變數對應的函式值。他和模擬退火演算法很像,可以說模擬退火演算法也是爬山演算法的一類。
爬山演算法,是一種區域性貪心的最優演算法. 該演算法的主要思想是:每次拿相鄰點對應函式值與當前點對應函式值進行比對,取兩者中較優者,作為爬坡的下一步。爬山演算法有很多類,下面簡單介紹。
1. 首選爬山演算法
依次尋找該點x的鄰近點中首次出現的比點x價值高的點,並將該點作為爬山的點(此處說的價值高,在該題中是指z或f(x,y)值較大). 依次迴圈,直至該點的鄰近點中不再有比其大的點. 我們成為該點就是山的頂點,又稱為最優點.
2.最陡爬山演算法
最陡爬山演算法是在首選爬山演算法上的一種改良,它規定每次選取鄰近點價值最大的那個點作為爬上的點.
3.隨機重新開始爬山演算法
隨機重新開始爬山演算法是基於最陡爬山演算法,其實就是加乙個達到全域性最優解的條件,如果滿足該條件,就結束運算,反之則無限次重複運算最陡爬山演算法(選取新的點重新開始)
4.模擬退火演算法
模擬退火演算法以一定概率選擇比當前差的點,所以可以跳出區域性最大。在我的部落格模擬退火演算法的定義和應用中有詳細介紹。.
爬山演算法 A Star not a Tree
爬山演算法是用來解決乙個不規律函式的最值問題的乙個演算法,其基本演算法是每一次向周圍走一步,並比對一下是否更優,如果更優的話就更改目前的位置,如果不是的話就不進行更改。但是爬山演算法的劣勢也是比較顯然的,由於達到區域性最優解之後就很難跳出這個區間最低點,所以很容易陷入區域性最優解,盜一張圖 那麼爬山...
爬山搜尋演算法
1.爬山法 hill climbing 爬山法是向值增加的方向持續移動到簡單迴圈過程,演算法在到達乙個 峰頂 時終止,此時相鄰狀態中沒有比該 峰頂 更高的值。爬山法不維護搜尋樹,當前節點只需要記錄當前狀態及其目標函式值 爬山法不會前瞻與當前狀態不直接相鄰的狀態的值 就像健忘的人在大霧中試圖登頂珠峰一...
爬山演算法與模擬退火演算法
模擬退火演算法 爬山演算法是一種基於貪心的搜尋方法,其原理是每次前往最佳的相鄰狀態。由於一般的搜尋問題無法看作結點數有限的圖,因此這裡的相鄰其實不是圖的那種相鄰。以搜尋二維平面上的乙個點為例。設 f x y f x,y f x,y 表示座標為 x,y x,y x,y 的點的權值,現在要找到乙個 x,...