① 啟發式演算法
什麼是演算法?從枚舉到貪心再到啟發式(上)
目標 :要優化的東西
決策 :根據目標做出的決策
約束 :進行決策時必須遵循的條件
算例 :問題參數的具體化
枚舉法 :將問題所有的解一一枚舉出來,挨個去評價,選出最好的那個
1.枚舉法能夠找到問題的最優解
2.枚舉法求解時間隨問題規模增長而呈爆炸式增長
貪心法 :利用「構造」的方式生成解,速度相對而言會非常快,同時不會隨著問題規模的增長而大幅度增加,是平緩的線性增長
什麼是演算法?從枚舉到貪心再到啟發式(下)
啟發式演算法 :在一個合理的求解資源范圍內(合理的時間,合理的內存開銷等)求得一個較為滿意的解。目前主要包括鄰域搜索和群體仿生兩大類。
解空間 :所有該問題的解的集合,包括可行解和不可行解
局部搜索 :不完全遍歷解空間,只選擇一部分進行遍歷,進而大大降低搜索需要的資源。為了提高局部搜索的質量,大部分局部搜索演算法都會在搜索的時候不斷地抓取多個區域進行搜索,直到滿足演算法終止條件。
鄰域 :在鄰域結構定義下的解的集合,它是一個相對的概念,即鄰域肯定是基於某個解產生的
鄰居解 :鄰域內某個解的稱呼
鄰域結構 :定義了一個解的鄰域
鄰域結構的設計在啟發式演算法中非常重要,它直接決定了搜索的范圍,對最終的搜索結構有著重要的影響,直接決定了最終結果質量的好壞
搜索過程
不斷重復步驟2-步驟5,直到滿足終止條件,最後輸出全局最優解
所有的啟發式找到的都是滿意解,不能說是最優解(即便真的是),因為它遍歷的是解空間的局部。
一般情況下,啟發式演算法的時間是隨著問題規模增長而呈線性增長的
干貨 | 想學習優化演算法,不知從何學起?
鄰域搜索類
迭代局部搜索演算法
模擬退火演算法
變鄰域搜索演算法
禁忌搜索
自適應大鄰域搜索
群體仿生類
遺傳演算法
蟻群演算法
粒子群演算法
人工魚群演算法
演算法應用
禁忌搜索演算法求解帶時間窗的車輛路徑問題
基於樹表示法的變鄰域搜索演算法求解考慮後進先出的取派貨旅行商問題
變鄰域搜索演算法求解Max-Mean dispersion problem
遺傳演算法求解混合流水車間調度問題
② 什麼是啟發式演算法 – Heuristic
啟發式演算法(Heuristic)是相對於最優演算法提出的,旨在在可接受的時間和空間花費下,為組合優化問題提供可行解。這些演算法基於直觀或經驗構建,提供一種可能的解,該解與最優解的偏離程度不能被精確預計。目前,啟發式演算法主要以模擬自然體演算法為主,包括蟻群演算法、模擬退火法、神經網路等。
啟發式演算法在實際應用中,常能在合理時間內得到滿意的答案,但無法保證每次都達到最優解。它們處理問題時,既可能得到很好的解,也可能遇到某些特殊情況導致解的品質下降,但這些特殊情況在現實中可能不會出現。因此,啟發式演算法在解決實際問題時具有廣泛的應用價值。
元啟發式演算法是通用型啟發式演算法的一種,其優化機制不依賴於特定演算法的組織結構信息,適用於函數優化和計算。元啟發式演算法主要分為模擬退火演算法(SA)、遺傳演算法(GA)、列表搜索演算法(ST)、進化規劃(EP)、進化策略(ES)、蟻群演算法(ACA)和人工神經網路(ANN)等。
元啟發式演算法起源於50年代中期的仿生學,旨在借鑒生物進化機理解決復雜問題優化。近年來,智能計算領域的研究逐漸引入了超啟發式演算法,這是一種基於多個啟發式演算法組合的更高級演算法。超啟發式演算法包括基於隨機選擇、基於貪心策略、基於元啟發式演算法和基於學習的超啟發式演算法等。
超啟發式演算法的結構分為問題域層面和高層策略層面,前者由領域專家提供問題定義、評估函數和一系列低層啟發式演算法,後者由智能計算專家設計高效的管理機制,利用問題特徵信息和低層演算法庫構造新啟發式演算法。
近年來,為了提高優化質量和搜索效率,研究人員開發了新的搜索機制和並行、混合搜索演算法。現代啟發式演算法的結構開放性和與問題無關性,使得各演算法之間容易進行綜合。這種研究有助於分析演算法性能和適用范圍,發現各演算法的獨特優點和不足,以便改進演算法結構、參數和操作運算元,發展高效混合演算法。
現代啟發式演算法研究的未來發展方向包括整合研究成果、開發新的數學工具、研究混合演算法和高效並行或分布式優化演算法等。這些研究將有助於解決計算機科學、人工智慧和數學優化領域中的復雜問題。
③ 七種啟發式演算法
七種啟發式演算法包括:
差分進化:一種基於群體差異的進化演算法,通過變異、交叉和選擇操作來迭代優化解。
遺傳演算法:模擬自然選擇和遺傳機制的優化演算法,常用於解決組合優化和全局優化問題。
粒子群優化:模仿鳥群或魚群等群體行為的優化演算法,通過粒子間的信息共享和協作來尋找最優解。
模擬退火:基於物理退火過程的優化演算法,通過概率接受較差解來避免陷入局部最優,適用於全局優化問題。
螞蟻群演算法:模擬螞蟻覓食行為的優化演算法,通過信息素更新和路徑選擇來尋找最優路徑,常用於解決TSP等組合優化問題。
火蟻演算法:一種基於火蟻覓食行為的啟發式演算法,通過模擬火蟻的協作和信息傳遞機制來優化問題。
免疫優化:模仿生物免疫系統的優化演算法,利用免疫系統的自適應性和進化特性來搜索最優解,適用於復雜優化問題。
④ 啟發式演算法介紹
啟發式演算法是一種基於直觀或經驗構造的演算法,用於在可接受的花費下,給出待解決組合優化問題的一個可行解。以下是關於啟發式演算法的詳細介紹:
定義與特點:
應用場景:
主要類型:
優勢與局限:
綜上所述,啟發式演算法是一種實用的演算法,能夠在可接受的花費下給出組合優化問題的一個可行解,但其解的質量通常無法預知。在選擇使用啟發式演算法時,需要根據問題的具體特點和需求進行權衡。