什么是hill-climbing算法??
簡介爬山算法是一種局部擇優的方法,采用啟發式方法,是對深度優先搜索的一種改進,它利用反饋信息幫助生成解的決策。 屬于人工智能算法的一種。
算法:
function HILL-CLIMBING(problem) returns a state that is a local maximum
inputs: problem, a problem
??local variables: current, a node
?????????????????????????neighbor, a node
??current <- MAKE-NODE(INITIAL-STATE[problem])
??loop do
neighbor <- a highest-valued successor of current
if VALUE[neighbor]<= VALUE[current] then return STATE[current]
current <- neighbor
算法解釋:
從當前的節點開始,和周圍的鄰居節點的值進行比較。 如果當前節點是最大的,那么返回當前節點,作為最大值 (既山峰最高點);反之就用最高的鄰居節點來,替換當前節點,從而實現向山峰的高處攀爬的目的。如此循環直到達到最高點。
算法優缺點
優點
避免遍歷,通過啟發選擇部分節點,從而達到提高效率的目的。
缺點
因為不是全面搜索,所以結果可能不是最佳。
爬山算法一般存在以下問題:
1)、局部最大:某個節點比周圍任何一個鄰居都高,但是它卻不是整個問題的最高點。
2)、高地:也稱為平頂,搜索一旦到達高地,就無法確定搜索最佳方向,會產生隨機走動,使得搜索效率降低。
3)、山脊:搜索可能會在山脊的兩面來回震蕩,前進步伐很小。?
算法解釋:?
從當前的節點開始,和周圍的鄰居節點的值進行比較。 如果當前節點是最大的,那么返回當前節點,作為最大值 (既山峰最高點);反之就用最高的鄰居節點來,替換當前節點,從而實現向山峰的高處攀爬的目的。如此循環直到達到最高點。
算法優缺點
優點?
避免遍歷,通過啟發選擇部分節點,從而達到提高效率的目的。?
缺點
因為不是全面搜索,所以結果可能不是最佳。?
爬山算法一般存在以下問題: ?
1)、局部最大:某個節點比周圍任何一個鄰居都高,但是它卻不是整個問題的最高點。?
2)、高地:也稱為平頂,搜索一旦到達高地,就無法確定搜索最佳方向,會產生隨機走動,使得搜索效率降低。 ?
3)、山脊:搜索可能會在山脊的兩面來回震蕩,前進步伐很小。
---------------------?
?
總結
以上是生活随笔為你收集整理的什么是hill-climbing算法??的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Scoop安装使用及卸载
- 下一篇: 怎么把文字转语音?这三个方法教你搞定文字