什么是hill-climbing算法??
簡(jiǎn)介爬山算法是一種局部擇優(yōu)的方法,采用啟發(fā)式方法,是對(duì)深度優(yōu)先搜索的一種改進(jìn),它利用反饋信息幫助生成解的決策。 屬于人工智能算法的一種。
算法:
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
算法解釋:
從當(dāng)前的節(jié)點(diǎn)開(kāi)始,和周圍的鄰居節(jié)點(diǎn)的值進(jìn)行比較。 如果當(dāng)前節(jié)點(diǎn)是最大的,那么返回當(dāng)前節(jié)點(diǎn),作為最大值 (既山峰最高點(diǎn));反之就用最高的鄰居節(jié)點(diǎn)來(lái),替換當(dāng)前節(jié)點(diǎn),從而實(shí)現(xiàn)向山峰的高處攀爬的目的。如此循環(huán)直到達(dá)到最高點(diǎn)。
算法優(yōu)缺點(diǎn)
優(yōu)點(diǎn)
避免遍歷,通過(guò)啟發(fā)選擇部分節(jié)點(diǎn),從而達(dá)到提高效率的目的。
缺點(diǎn)
因?yàn)椴皇侨嫠阉?#xff0c;所以結(jié)果可能不是最佳。
爬山算法一般存在以下問(wèn)題:
1)、局部最大:某個(gè)節(jié)點(diǎn)比周圍任何一個(gè)鄰居都高,但是它卻不是整個(gè)問(wèn)題的最高點(diǎn)。
2)、高地:也稱為平頂,搜索一旦到達(dá)高地,就無(wú)法確定搜索最佳方向,會(huì)產(chǎn)生隨機(jī)走動(dòng),使得搜索效率降低。
3)、山脊:搜索可能會(huì)在山脊的兩面來(lái)回震蕩,前進(jìn)步伐很小。?
算法解釋:?
從當(dāng)前的節(jié)點(diǎn)開(kāi)始,和周圍的鄰居節(jié)點(diǎn)的值進(jìn)行比較。 如果當(dāng)前節(jié)點(diǎn)是最大的,那么返回當(dāng)前節(jié)點(diǎn),作為最大值 (既山峰最高點(diǎn));反之就用最高的鄰居節(jié)點(diǎn)來(lái),替換當(dāng)前節(jié)點(diǎn),從而實(shí)現(xiàn)向山峰的高處攀爬的目的。如此循環(huán)直到達(dá)到最高點(diǎn)。
算法優(yōu)缺點(diǎn)
優(yōu)點(diǎn)?
避免遍歷,通過(guò)啟發(fā)選擇部分節(jié)點(diǎn),從而達(dá)到提高效率的目的。?
缺點(diǎn)
因?yàn)椴皇侨嫠阉?#xff0c;所以結(jié)果可能不是最佳。?
爬山算法一般存在以下問(wèn)題: ?
1)、局部最大:某個(gè)節(jié)點(diǎn)比周圍任何一個(gè)鄰居都高,但是它卻不是整個(gè)問(wèn)題的最高點(diǎn)。?
2)、高地:也稱為平頂,搜索一旦到達(dá)高地,就無(wú)法確定搜索最佳方向,會(huì)產(chǎn)生隨機(jī)走動(dòng),使得搜索效率降低。 ?
3)、山脊:搜索可能會(huì)在山脊的兩面來(lái)回震蕩,前進(jìn)步伐很小。
---------------------?
?
總結(jié)
以上是生活随笔為你收集整理的什么是hill-climbing算法??的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Scoop安装使用及卸载
- 下一篇: 怎么把文字转语音?这三个方法教你搞定文字