啟發式演算法

2022-08-25 12:21:30 字數 1283 閱讀 9576

啟發式演算法

(heuristic algorithm)是相對於最優化演算法提出的。

乙個問題的最優演算法求得該問題每個例項的最優解。

啟發式演算法可以這樣定義:乙個基於直觀或經驗構造的演算法,在可接受的花費(指計算時間和空間)下給出待解決組合優化問題每乙個例項的乙個可行解,該可行解與最優解的偏離程度一般不能被預計。

現階段,啟發式演算法以仿自然體演算法為主,主要有蟻群演算法、模擬退火法、神經網路等。

現代啟發式演算法的各種具體實現方法是相對獨立提出的,相互之間有一定的區別。從歷史上看,現代啟發式演算法主要有:

模擬退火演算法(sa)、遺傳演算法(ga)、列表搜尋演算法(st)、進化規劃(ep)、進化策略(es)、蟻群演算法(aca)、人工神經網路(ann)。

人在解決問題時所採取的一種根據經驗規則進行發現的方法。其特點是在解決問題時,利用過去的經驗,選擇已經行之有效的方法,而不是系統地、以確定的 步驟去尋求答案。啟發式解決問題的方法是與演算法相對立的。演算法是把各種可能性都一一進行嘗試,最終能找到問題的答案,但它是在很大的問題空間內,花費大量 的時間和精力才能求得答案。啟發式方法則是在有限的搜尋空間內,大大減少嘗試的數量,能迅速地達到問題的解決。但由於這種方法具有嘗試錯誤的特點,所以也 有失敗的可能性。科學家的許多重大發現,常常是利用極為簡單的啟發式規則。

超啟發式演算法

現有超啟發式演算法可以大致分為4類:

基於隨機選擇、基於貪心演算法、基於元啟發式演算法和基於學習的超啟發式演算法。

基於隨機選擇的超啟發式演算法

該類超啟發式演算法是從給定的集合中隨機選擇llh,組合形成新的啟發式演算法。這類超啟發式演算法的特點是結構簡單、容易實現。同時,這類超啟發式演算法也經常被用作基準(bench mark),以評價其他型別的超啟發式演算法效能。該類超啟發式演算法可以進一步細分為純隨機(pure random)、帶延遲接受條件的隨機(random with late acceptance)等。

基於貪心策略的超啟發式演算法

該類超啟發式演算法在構造新啟發式演算法時,每次都挑選那些能夠最大化改進當前(問題例項)解的llh。由於每次挑選llh時需要評估所有llh,故此該類方法的執行效率低於基於隨機選擇的超啟發式演算法。

基於元啟發式演算法的超啟發式演算法

該類超啟發式演算法採用現有的元啟發式演算法(作為高層策略)來選擇llh。由於元啟發式演算法研究相對充分,因此這類超啟發式演算法的研究成果相對較多。根據所採用的元啟發式演算法,該類超啟發式演算法可以細分為基於禁忌搜尋、基於遺傳演算法、基於遺傳程式設計、基於蟻群演算法和基於grasp with path-relinking等。[5] 

基於學習的超啟發式演算法

啟發式與元啟發式演算法

啟發式演算法 heuristic algorigthm 是一種基於直觀或經驗構造的演算法,在可接受的花費 指計算時間 計算空間等 給出待解決優化問題的每一例項的乙個可行解,該可行解與與最優解的偏離程度一般不可以事先預計。啟發式演算法是一種技術,這種演算法可以在可接受的計算費用內找到最好的解,但不一定...

啟發式演算法和元啟發式演算法

是一種基於直觀或經驗構造的演算法,在可接受的花費 指計算時間 計算空間等 給出待解決優化問題的每一例項的乙個可行解,該可行解與與最優解的偏離程度一般不可以事先預計。啟發式演算法是一種技術,這種演算法可以在可接受的計算費用內找到最好的解,但不一定能保證所得到解的可行性及最優性,甚至大多數情況下無法闡述...

啟發式演算法與元啟發式演算法

相對與精確演算法提出的。是一種群體智慧型演算法。平衡區域性最優解與全域性最優解。啟發式演算法可以這樣定義 乙個基於直觀或經驗構造的演算法,在可接受的花費 指計算時間和空間 下給出待解決組合優化問題每乙個例項的乙個可行解,該可行解與最優解的偏離程度一般不能被預計。許多啟發式演算法是相當特殊的,依賴於某...