1、最佳化演算法介紹-模擬退火法摘要求解離散組合數學問題(Discrete Combination Mathematical Problem),有很多最佳化組合演算(Optimization Combination Algorithm)被提出,如支界法(Branch and Bound Method)、模擬退火法(Simulation Annealing)、基因遺傳演算法(Genetic Algorithm)、差分進化法(Differential Evolution)及模糊技術法(Fuzzy Technique)等陸續被應用,近年來更有提出類神經網路法(Neural Network Method)
2、、人工智慧法及將兩種不同方法混合成一種新的解法,例如:有人將專家系統與退火法結合成複合法(Hybrid Method) 等等,解法技術的精進,使以往可能只是求局部解的,現在則可能成為求全域解。關鍵詞:離散組合數學問題、最佳化組合演算、支界法、模擬退火法、基因遺傳演算法、差分進化法、模糊技術法、類神經網路法、人工智慧法。一、 前言最佳化演算法無論就早期數學最佳化,或最近所應用的組合數學最佳化法,其主要目標,不外乎希望在最短時間內,求出最精確的最佳解。本文將簡介模擬退火法1-6 以便進一步探索最佳化演算法。二、 材料與方法模擬退火法,源自於物理學上的退火法則:金屬被加熱至熔點以上會產生熔解,之後慢
3、慢的降溫到晶体粒子排列非常緊密,達到冷凍狀態,金屬在高溫時,原子會激烈地隨機動作,有朝能量最低狀態的趨勢,當降溫速度非常慢時,粒子間活動達一熱平衡(Thermal equlilbrium),直到冷凍狀態,此時系統能量最低。模擬退火法最早由 N.Metropolis 等人在 1953 年提出,直到 1983 年由S.Kirpatrick 等人用來解組合最佳化問題,主要是尋求問題的最佳解。它是一種機率登山搜尋(Probabilistic Hill Climbing Search )演算法,在搜尋過程中,通常以最陡降的方式,使解答往能量函數值較低處移動,透過隨機過程,偶爾往能量函數值較高處移動,此種
4、方法,提供具有跳脫局部解的能力,如圖一所示能量函數E(x) 狀 態 x圖 1:模擬退火法最佳解之搜尋模擬退火演算法,可進一步說明如下(1)QFKSAeval,其中 為退火代數, 為退火程序溫度, 為初始溫度、 為最終溫Ktt,.2100tft度。當 時,程式執行終止。 , 為降溫係數,fKt)1(iiK,.2, 則為求值函數, 是一探索串列,如下所示10eval= , (2)Qisq)1(i,.分別表前後程序, 表程序執行代數,串列中的每一 表前後程序的ii及 Kisq)1(兩個可行解(為人口數或染色体), 及 的遷移機率如下所示1isi= , (3)isq)1(),1(iisp,.2在現時退
5、火程序溫度 ,由前可行能 移動到後解 之機率的演算程序Ktt0 )1(isis中所產生的一系列可行解 ,形成一 Markov 鏈。在大部份 演算Ks,.)1(1 SA中,以人口數 , 其演算步驟如下所示:poN步驟一:輸入系統資料並設定初始溫度 ,最終溫度 ,擾動次數 及降溫係數0tftM,退火程序代數 等。i步驟二:隨機擾動產生第 的退火程序,其可行解為 。is步驟三:退火程序代數加一,即 ,現時程序溫度為 。1i )1(it步驟四:由前一可行解 ,連續產生 個差分擾動的可行解,即)1(isM, ,評估所有可行解的適合值,並找,),( tperubsmim,.2出其中最佳者為 。i步驟五:依
6、據機率登山搜尋法則,比較前次可行解 與後次可行解 ,決定到目)1(isis前為止的程序可行解。步驟六:比較現時程序溫度 是否小於等於最終溫度 ,如果:是,則輸出可行的it ft解,此即最後所求的最佳解,並終止程序執行。否,則跳至步驟三,繼續下一退火程序的執行。前解(父系解 ) 經差分擾動產生後解(子系解) 的機率 ,如式(3),它表示系1is isP統所有可能狀況的分佈為 Boltzman 分佈, 的解出自於問題獨特啟發式 (heuristic)的i論據,假如 解的能量為 ,而 的解為 ,後解的能量與前解的能量差為)1(i EisE, 以現行溫度 為基礎,則可行解的搜尋,其遷移機率分佈,在古典
7、E it為 Boltzman 分佈,如下所示 SA= (4)isq)1(),1(iispit/)exp(其中: 為波茲曼常數機率登山搜尋法則演算法如下所示:步驟一:將前後解作能量評估,以後解評估值為 ,而前解評估值為 ,)(ievalsF)(1ievalsF評估之後,兩者能量值相減如下所示= - (5)E)(ievalsF)(1ieval步驟二:能量差 ,則後解 取代前解 為現時的可行解,同時結束執行演0is)1(is算法。 ,則跳至步驟三。步驟三:產生一介於 0 與 1 間的隨機數 ,假如 ,則後解 取代前解)exp(itEis為現時的可行解,同時結束執行演算法。如果 ,則保)1(is )e
8、(it留前解為現時的可行解,結束演算法。上述機率登山搜尋法則演算法,說明在溫度 退火程序時,當後解 的能量比it is前解 低時,即 ,則往能量較低的地方搜尋;相反的,有一機率往能量高)1(is0E的地方移動,產生一個介於 與 之間的隨機數,假如隨機數小於 ,則1 )exp(itE往能量高的地方搜尋;反之,則維持在能量低處,因此可避免陷入局部解。三、 結論最佳化演算法,對許多學生而言是一門陌生的課程,建議先修習數值方法及研讀最佳化相關教科書後再行研究其應用。如此較易瞭解最佳化演算法精義,應用時方能得心應手。參考文獻1 蘇鴻潤, “模擬退火法之參數選擇” ,國立台灣工業技術學院機械工程研究所碩士
9、論文,民國八十五年。2 賴文祺, “改良式進化退火法應用於電力系統經濟調度之研究” ,國立台北科技大學電機工程研究所碩士論文,民國九十年。3 林惠民、陳曦照、張志明, “應用模擬退火法於配電系統電容器配置之研究” ,中華民國第十八屆電力工程研討會論文集,pp.73-77,1997。4 P. P. C. Yip and Y. H. Pao, “A guided evolutionary computation technique as function optimizer,” IEEE Conference on Evolutiona- ry Computation, vol. 2, pp. 628-633, 1994.5 李居昇, “配電系統最佳饋線重組與電容器配置” ,國立中正大學電機工程研究所博士論文,九十一級。6 P. P. C. Yip and Y. H. Pao, “Combinational optimization with use of guided evolutionary simulated annealing,” IEEE Transactions on Neural Networks, vol. 6, no. 2, pp. 290-295, Mar. 1995.