1 / 49

通用啟發法 Metaheuristics

通用啟發法 Metaheuristics. 大綱. 前言 專有名詞 模擬退火法 (Simulated Annealing ; SA) 禁忌搜尋法 (Tabu Search ; TS) 基因演算法 (Genetic Algorithms ; GA) 粒子群最佳化演算法 (Particle Swarm Optimization; PSO) 蟻群最佳化演算法 (Ant Colony Optimization ; ACO). 前言.

mare
Download Presentation

通用啟發法 Metaheuristics

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 通用啟發法 Metaheuristics 通用啟發法

  2. 大綱 前言 專有名詞 模擬退火法(Simulated Annealing;SA) 禁忌搜尋法(Tabu Search;TS) 基因演算法(Genetic Algorithms;GA) 粒子群最佳化演算法(Particle Swarm Optimization; PSO) 蟻群最佳化演算法(Ant Colony Optimization;ACO) 通用啟發法

  3. 前言 通用啟發法(metaheuristic)一般用以求解組合最佳化(combinatorial optimization)問題,以在合理時間求得近似最佳解 Metaheuristic是由兩個希臘字而來;meta是指超越更高階,而heuristic來自heuriskein,代表發現 通用啟發法的概念經常是由觀察自然界所獲得的想法 五種常用的通用啟發法 模擬退火法(simulated annealing;SA) 禁忌搜尋法(tabu search;TS) 基因演算法(genetic algorithms;GA) 粒子群最佳化演算法(particle swarm optimization;PSO) 蟻群最佳化演算法(ant colony optimization;ACO) 通用啟發法

  4. 通用啟發法的優點 可對不同問題,設計適合的演算法,因此其所能求解的問題十分廣泛 均有跳脫區域最佳解的機制,經常可找到近似最佳解,甚至全域最佳解 對於問題複雜度較高、問題規模較大時,經常可獲得良好的求解品質及求解效率 即使對問題特性不十分瞭解,仍可使用,因此經常是最佳化方法或特定演算法的有效替代方案。 通用啟發法

  5. 通用啟發法的缺點 因經常需針對問題而設計,較少現有套裝軟體,因此使用時需具有一定的程式撰寫能力 僅能求得近似最佳解,而無法保證為最佳解。 僅是一種廣義的啟發法,相較最佳化方法,較缺乏理論基礎 對於相同的問題,可設計不同的通用啟發法;即使同一種通用啟發法(如GA),亦可發展不同的演算程序 必須設定一些(有時相當多)所需要的參數值 通用啟發法

  6. 專有名詞 1/2 組合最佳化(combinatorial optimization):由一個以上的離散變數組合為極大化或極小化的問題(NP complete) 例如, Min 4x+5y ,x[-10, 10] ,y[-10, 10] ,x,y整數,共有2121=441種解 搜尋空間(search space):在搜尋最佳解的過程中,決策變數所能搜尋的範圍或數值 可行解(feasible solution):符合所有限制式的解 不可行解(infeasible solution):違反任何一個限制式的解 最佳解(optimal solution):具最佳目標函數值的可行解 近似最佳解(near-optimal solution):具接近最佳目標函數值的可行解 區域最佳解(local optimum):鄰近可行解中的最佳解 通用啟發法

  7. 專有名詞 2/2 全域最佳解(global optimum):所有可行解中的最佳解 初始解(initial solution):可隨機產生或以特定演算法產生 移步(move):從一個可行解移至另一個新的可行解 鄰近搜尋(neighborhood search) 又稱區域搜尋(local search) 移步法則一般使用插入(insert)、任意兩點交換(interchange)或相鄰兩點交換(adjacent interchange)等 常用的鄰近解選擇方式:改善目標值的鄰近解、部份鄰近解中最佳者、全部鄰近解中最佳者。 停止條件(termination condition):常用的有 最大搜尋次數(迭代次數)或 連續未改善的次數(收斂) 通用啟發法

  8. 常用變數的定義 通用啟發法

  9. 模擬退火法 模擬退火法(simulated annealing;SA)最早於1953年由N. Metropolis等學者所提出 基本概念是模擬物理界熱處理的退火(annealing)過程;當固體加熱至一定的溫度並熔化成液態後,再緩慢降溫凝結成固態的情形,此時分子便可重新排列呈預期的穩定狀態 1983年Kirkpatrick等學者將此演算法應用於網路組合最佳化問題,始引起學術界的重視 SA使用最陡坡降法(steepest descent method),使最終解收斂於一個區域最佳解,並使用隨機過程法將其跳脫區域最佳解 通用啟發法

  10. 模擬退火法步驟(極小化問題) 通用啟發法

  11. SA演算法的說明及特性 SA演算法的說明: 以上演算法每次迭代僅執行一次移步。也可在每次迭代中執行數次移步(即鄰近搜尋) 可接受較現行解差的解,接受的機率則由接受函數決定。因Tn隨著n增加而降低,因此接受機率逐漸降低;極差解(Δ很大)的接受機率非常低(解越差,接受機率越低) 可用最大搜尋次數或連續未改善次數為停止條件,亦可用溫度小於預設值為停止條件 SA的特性: 允許接受較現行解差的鄰近可行解,以跳脫區域最佳解 以機率方式決定是否接受較差的解 接受函數由溫度(控制參數)決定,因溫度隨著迭代次數增加而降低,因此接受機率會逐漸降低 通用啟發法

  12. SA應用於旅行推銷員問題(traveling-salesman problem;TSP)1 從城市1出發,必須拜訪每個城市且僅能拜訪一次,然後再回到城市1,最佳路徑為何? 6 1 4 2 3 5 7 8 註:(n-1)!個解 ∴共有7!=5040個解 通用啟發法

  13. SA應用於旅行推銷員問題(TSP)2 從城市1出發,必須拜訪每個城市且僅能拜訪一次,然後再回到城市1,最佳路徑為何? 通用啟發法

  14. SA應用於旅行推銷員問題(TSP) Sol: 通用啟發法

  15. SA應用於旅行推銷員問題(TSP) Sol: 通用啟發法

  16. 禁忌搜尋法 禁忌搜尋法(tabu search;TS)亦稱塔布搜尋法,最早是由Fred Glover於1989年所提出。 兩種記憶方式 短期記憶將最近的移步(move)記錄於禁忌名單(tabu list;TL)中,避免重覆搜尋而落入區域最佳解,並加入免禁準則(aspiration level),讓較佳移步不受TL限制 長期記憶一方面使用加強性(intensification)策略,專注於較佳的區域中,另一方面使用分散性(diversification)策略,以探索新的求解空間 通用啟發法

  17. 禁忌搜尋法 TS求解極小化問題的執行步驟(僅含短期記憶) 通用啟發法

  18. TS應用於旅行推銷員問題 使用效果較佳的插入法產生初始解: 由節點(城市)1開始,選擇與節點1最近的節點i。由節點1與節點形成迴路(即1i1)R。 任取迴路R以外的節點,將該節點插入R中,並選擇插入後之迴路路徑最短者,將此新的迴路取代原來的R。 重覆執行步驟2,直到迴路R包含所有的節點為止。 通用啟發法

  19. TS應用於旅行推銷員問題 Sol: 通用啟發法

  20. TS應用於旅行推銷員問題 Sol: 通用啟發法

  21. 基因演算法 基因演算法(genetic algorithms;GA) 最早是由John Holland於1975年提出 主要想法源自於達爾文「物競天擇,適者生存」的進化論 作法簡介 一個染色體代表一個解,由一連串的基因(gene)所組成 各染色體的基因值由0或1表示(二元編碼),並以合適度函數(fitness function)評估染色體模擬問題的適合度 接著將現階段的染色體運用選取(selection)、交配(crossover)及突變(mutation)三種運算,模仿自然界的生物演化過程,以產生新染色體 現階段的染色體為母代(parents),下階段的新染色體為子代(children),每一個世代(generation)染色體的集合為族群(population) 通用啟發法

  22. 基因演算法步驟 通用啟發法

  23. 基因演算法說明 編碼:一般採用兩種方法:二元編碼法和順序編碼法(符號編碼) 合適度函數:用以評估每個染色體的優劣。若為極大化問題,可直接作為合適度函數;若為極小化問題,則可轉換:合適度函數值=max-目標函數值,其中max值一般選擇目前母代染色體中最大的目標函數值,若為多目標問題則須進行正規化 選取:上述演算法僅以簡單的方式選取最好的兩個染色體。一般常用的方法有:輪盤法(roulette wheel selection)和餘數抽樣法(remainder stochastic sampling without replacement)。 通用啟發法

  24. 基因演算法說明(續) 交配:上述演算法直接將最好的二個染色體進行交配。一般常會先依交配率計算母代要進行交換之解的個數。常用方式有: 單點交配(one-point crossover) 兩點交配(two-point crossover) 位置交配(position based crossover) 突變:藉由引進新的基因樣式,跳脫區域最佳解。一般會先依突變率(mutation rate)計算母代要進行突變之解的個數。常用方式有: 相鄰兩點突變(adjacent two-point mutation) 任意兩點突變(arbitrary two-point mutation) 任意三點突變(arbitrary three-point mutation) 移動(shift) 通用啟發法

  25. 基因演算法的特性 每次搜尋是多點方式,而非單點搜尋。 交配及突變的運算加入了機率機制,而非確定性法則。 根據問題的特性編碼,以編碼的結果執行。 合適度函數對於演算法的速度和效果均很重要。 特別適合於多目標、非線性、甚至無法確定有可行解的問題。(NP hard) 具有高度的問題獨立性,即使對問題的特性不是十分瞭解,也可直接以GA求解。 通用啟發法

  26. GA應用於旅行推銷員問題 使用順序編碼法定義每個染色體。隨機產生5個初始解作為第一代的族群,並評估各染色體之合適度函數值(路徑長度): 選取:選取合適度值最大的兩個解:第2個及第5個染色體。 交配:使用單點交配方式隨機產生一點,從母代重新組合基因,以繁衍產生兩個新的子代,如下圖所示。 通用啟發法

  27. GA應用於旅行推銷員問題 編號2之染色體 1 2 4 8 5 3 7 6 1 1 2 4 8 5 7 3 6 1 子代染色體1 編號5之染色體 1 7 3 6 5 8 2 4 1 編號5之染色體 1 7 3 6 5 8 2 4 1 1 7 3 6 5 2 4 8 1 子代染色體2 編號2之染色體 1 2 4 8 5 3 7 6 1 通用啟發法

  28. GA應用於旅行推銷員問題 突變:假設依突變率,子代染色體2需進行突變。使用任意兩點改變法進行突變,如下圖所示: 替代:將新的二個子代解,取代母代第3與4個染色體(最差的兩個解),取代後新的族群如下表所示: 上述僅完成一個世代。本例繼續執行到第4世代時,所有的染色體皆為 ,其路徑長度為906.9,表示收斂。但GA仍繼續做到n=100為止。 1 7 3 6 5 2 4 8 1 子代染色體2 新子代染色體2 1 2 3 6 5 7 4 8 1 通用啟發法

  29. 粒子群最佳化演算法 粒子群最佳化演算法(Particle Swarm Optimization; PSO) 由J. Kennedy 與 R. C. Eberhart於1995年所提出的一種演化式演算法(evolutionary algorithm;EA) 基於模擬鳥群覓食的行為 鳥群在搜尋食物過程,會記憶自己過去最好的經驗並分享給同伴 當每次決定下一個搜尋的位置時,每隻鳥會考量自己過去最好之經驗及其他同伴給予的最好經驗,調整飛行速度,飛到下一個位置 每隻鳥即稱為粒子(particle),粒子1在決定下一個搜尋的位置時,它會依自己過去學習的經驗,考慮朝向過去走過的路徑中距離食物最近的位置前進,但它也會藉由群體(swarm)同伴分享的資訊,考慮朝向同伴中最好經驗的位置前進 因此,粒子1會綜合「學習的經驗」與「群體的資訊」,朝向虛線箭頭前進到下一個位置。透過每個粒子一次一次的學習並分享給予其他粒子,PSO得以尋找到相當不錯的解 通用啟發法

  30. 粒子群最佳化演算法 粒子群最佳化演算法的圖示 通用啟發法

  31. PSO演算法之步驟 通用啟發法

  32. PSO演算法的說明與特性 演算法說明 特性 所需的參數設定較少。 屬多點(群體)搜尋,而非單點搜尋。 具有記憶性,應用記憶過去表現及群體最佳的解,互相交換正向資訊。 以機率性法則更新速度,而非確定性法則。 較適合連續型最佳化問題,但亦可用於離散型最佳化問題。 通用啟發法

  33. PSO演算法求解範例 通用啟發法

  34. PSO演算法求解範例 通用啟發法

  35. PSO演算法求解範例 通用啟發法

  36. PSO演算法求解範例 通用啟發法

  37. 蟻群最佳化演算法 蟻群最佳化演算法(ant colony optimization;ACO) 於1992年由Dorigo模擬蟻群實際行為而來 基本概念 針對蟻群如何溝通,以及建立食物源與巢穴之間最短的路線進行研究。當螞蟻在覓食時,所走過的路徑會留下一種稱之為費洛蒙(pheromone)的化學物質,讓蟻群藉由費洛蒙的濃度來判斷應該行進的路線。 當費洛蒙濃度愈強,該路線被螞蟻選擇的機率也愈大;若一段時間不再有螞蟻經過該路徑並貢獻費洛蒙時,其費洛蒙濃度便會降低。 最終所有螞蟻會因費落蒙的引導,均選擇行進較短的路徑。 通用啟發法

  38. 蟻群最佳化演算法(極大化問題) 通用啟發法

  39. 蟻群最佳化演算法(極大化問題) 通用啟發法

  40. ACO演算法之說明1 參數設定:包括螞蟻個數、費洛蒙蒸發比例、費洛蒙量(pheromone trails)與貪婪法則(greedy heuristic)之相對重要性參數,以及控制「開發」與「探索」之相對比例的參數q0。 狀態轉移法則:狀態轉移法則在開發(exploitation)和探索(exploration)之間提供了一個平衡機制。所謂「開發」(q<=q0)是螞蟻參考過去所經歷的較佳路徑,以獲得更好的解;「探索」(q>q0)則是欲發現未曾嘗試過的解,以避免陷入區域最佳解。 貪婪法則:ACO的螞蟻不同於真實螞蟻之處,在於其並非全盲;除了擁有費落蒙引導外,亦可經由貪婪法則給予一個較為適當的搜尋方向。 通用啟發法

  41. ACO演算法之說明2 區域費洛蒙更新:當某螞蟻完成一個可行解後,ACO會依據此螞蟻的路徑即時更新其費洛蒙濃度,避免其他螞蟻陷入區域最佳解。 全域費洛蒙更新:此部分僅記錄該迭代蟻群中表現最好的螞蟻,並對其解進行費洛蒙更新,增加其行經路徑的費洛蒙濃度,以給未來蟻群適當引導。 區域搜尋:當一個迭代中每隻螞蟻分別建構完其完整的解後,此時可對該解進行區域搜尋,找尋更好的可行解以取代原先建構的解。 p.41/47 通用啟發法 作業研究 二版 Ch.14 通用啟發法

  42. ACO演算法之特性 ACO與PSO的想法皆來自生物界個體與群集生活之社交行為 屬多點(多隻螞蟻)搜尋,而非單點搜尋 擁有正向回饋,對表現較好的解增加其費洛蒙濃度;擁有負項回饋,對表現較差的解降低其費洛蒙濃度 傾向於選擇費洛蒙濃度較高的路徑,能透過費落蒙傳達訊息 同時藉由費洛蒙量及經驗法則,引導下一迭代蟻群搜尋方向 通用啟發法

  43. ACO演算法之特性 ACO與PSO的想法皆來自生物界個體與群集生活之社交行為 屬多點(多隻螞蟻)搜尋,而非單點搜尋 擁有正向回饋,對表現較好的解增加其費洛蒙濃度;擁有負項回饋,對表現較差的解降低其費洛蒙濃度 傾向於選擇費洛蒙濃度較高的路徑,能透過費落蒙傳達訊息 同時藉由費洛蒙量及經驗法則,引導下一迭代蟻群搜尋方向 通用啟發法

  44. ACO應用於旅行推銷員問題 通用啟發法

  45. ACO應用於旅行推銷員問題 通用啟發法

  46. ACO應用於旅行推銷員問題 通用啟發法

  47. ACO應用於旅行推銷員問題 通用啟發法

  48. ACO應用於旅行推銷員問題 通用啟發法

  49. ACO應用於旅行推銷員問題 通用啟發法

More Related