元啟發式算法(Metaheuristic algorithm)


元啟發式算法(Metaheuristic algorithm)

    計算機科學的兩大基礎目標,就是發現可證明其執行效率良好且可得最佳解或次佳解的算法。而啟發式算法則試圖一次提供一或全部目標。 例如它常能發現很不錯的解,但也沒辦法證明它不會得到較壞的解;它通常可在合理時間解出答案,但也沒辦法知道它是否每次都可以這樣的速度求解。

    有時候人們會發現在某些特殊情況下,啟發式算法會得到很壞的答案或效率極差,然而造成那些特殊情況的數據結構,也許永遠不會在現實世界出現。因此現實世界中啟發式算法常用來解決問題。啟發式算法處理許多實際問題時通常可以在合理時間內得到不錯的答案。有一類的通用啟發式策略稱為元啟發式算法(metaheuristic),通常使用亂數搜尋技巧。他們可以應用在非常廣泛的問題上,但不能保證效率。

算法原理

​1. 從一個或多個候選解開始作為初始值(pop(t))。

2. 根據初始值計算目標函數值

3. 基於已獲得的信息,通過個體變異、組合等方法不斷更新候選解域。

4. 新的候選解域進入下一輪迭代(pop(t+1))

如下圖:

編程分析

 

    從程序的角度分析,元啟發式算法包括以下幾個部分:

1. 內部數據結構G,用於描述候選解域X中的候選解。

2. 從數據結構G,創建候選解實例的法則。

3. 如果G ≠ X,需要定義一個函數g2x(),該函數用於將結果從G域映射到X域,g2x()函數往往對結果直接產生較大的影響。

4. 用於改變候選解的算法,如變異,交叉等。

5. 整體循環流程控制函數。

過程圖解如下:

 ---------------------------------------------------------

 參見:http://home.ustc.edu.cn/~chh1990/win/

-------------------------------------------------------------------

補腎的食物有哪些吃什么補腎專家建議初冬宜補腎

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM