啟髮式搜索
啟髮式搜索
啟髮式搜索就是在狀態空間中的搜索對每一個搜索的位置進行評估,得到最好的位置,再從這個位置進行搜索直到目標。
目錄
啟髮式搜索這樣可以省略大量無謂的搜索路徑,提高了效率。在啟髮式搜索中,對位置的估價是十分重要的。採用了不同的估價可以有不同的效果。我們先看看估價是如何表示的。
啟發中的估價是用估價函數表示的,如:
最佳優先搜索的最廣為人知的形式稱為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的解的實際耗散.
啟發演演算法有:蟻群演演算法,遺傳演演算法、模擬退火演演算法等
蟻群演演算法是一種來自大自然的隨機搜索尋優方法,是生物界的群體啟髮式行為,現己陸續應用到組合優化、人工智慧、通訊等多個領域。蟻群演演算法的正反饋性和協同性使其可用於分散式系統,隱含的并行性更使之具有極強的發展潛力。從數值模擬結果來看,它比目前風行一時的遺傳演演算法、模擬退火演演算法等有更好的適應性。