當前位置:編程學習大全網 - 編程語言 - 什麽是啟發式搜索?並以八數碼難題為例,說明其原理

什麽是啟發式搜索?並以八數碼難題為例,說明其原理

啟發式搜索就是在狀態空間中的搜索對每壹個搜索的位置進行評估,得到最好的位置,再從這個位置進行搜索直到目標。這樣可以省略大量無謂的搜索路徑,提高了效率。在啟發式搜索中,對位置的估價是十分重要的。采用了不同的估價可以有不同的效果。我們先看看估價是如何表示的。 啟發中的估價是用估價函數表示的,如: 最佳優先搜索的最廣為人知的形式稱為A*搜索(發音為“A星搜索”).它把到達節點的耗散g(n) 和從該節點到目標節點的消耗h(n)結合起來對節點進行評價:f(n)=g(n)+h(n) 因為以g(n)給出了從起始節點到節點n的路徑耗散,而h(n)是從節點n到目標節點的最低耗散路徑的估計耗散值,因此f(n)=經過節點n的最低耗散解的估計耗散.這樣,如果我們想要找到最低耗散解,首先嘗試找到g(n)+h(n)值最小的節點是合理的。可以發現這個策略不只是合理的:倘若啟發函數h(n)滿足壹定的條件,A*搜索既是完備的也是最優的。 如果把A*搜索用於Tree-Search,它的最優性是能夠直接分折的。在這種情況下,如果h(n)是壹個可采納啟發式--也就是說,倘若h(n)從不會過高估計到達目標的耗散--A*算法是最優的。可采納啟發式天生是最優的,因為他們認為求解問題的耗散是低於實際耗散的。因為g(n)是到達節點n的確切耗散,我們得到壹個直接的結論:f(n)永遠不會高估經過節點n的解的實際耗散. 啟發算法有: 蟻群算法,遺傳算法、模擬退火算法等 蟻群算法是壹種來自大自然的隨機搜索尋優方法,是生物界的群體啟發式行為,現己陸續應用到組合優化、人工智能、通訊等多個領域。蟻群算法的正反饋性和協同性使其可用於分布式系統,隱含的並行性更使之具有極強的發展潛力。從數值仿真結果來看,它比目前風行壹時的遺傳算法、模擬退火算法等有更好的適應性。

  • 上一篇:積木原理-每壹個人都應該知道!
  • 下一篇:湖南機電職業技術學院地址在哪?電話網站
  • copyright 2024編程學習大全網