關(guān)于作者

 一個(gè)畢業(yè)于北京大學(xué)數(shù)學(xué)力學(xué)系,在中國(guó)科學(xué)院計(jì)算所、計(jì)算中心和網(wǎng)絡(luò)中心工作過,在澳大利亞科工組織DMS、香港浸會(huì)學(xué)院數(shù)學(xué)系和中國(guó)21世紀(jì)議程管理中心等處工作過,多次獲國(guó)家和中科院科技獎(jiǎng)并享受政府特殊津貼的退休老頭?,F(xiàn)在在【中國(guó)科普博覽】網(wǎng)“科學(xué)新語(yǔ)林”欄目里開設(shè)一個(gè)《數(shù)學(xué)與計(jì)算機(jī)》的個(gè)人專欄,愿和愛好數(shù)學(xué)與計(jì)算機(jī)的各界網(wǎng)友和青少年朋友,談?wù)剬?duì)數(shù)學(xué)與計(jì)算機(jī)的看法、想法。

《常用算法之智能計(jì)算(七) 》:物理智能計(jì)算

張建中
2019年01月04日
物理智能計(jì)(Physical?Intelligence Computing),是指一些受自然界物理現(xiàn)象啟發(fā)而設(shè)計(jì)出來的具有分布式智能行為特征的一類智能算法,出發(fā)點(diǎn)是基于物理中物質(zhì)與通常組合優(yōu)化問題之間的相似性,又是基于蒙特卡羅迭代求解策略的一種隨機(jī)尋優(yōu)算法。智能計(jì)算作為一種新興的計(jì)算機(jī)計(jì)算技術(shù),已成為越來越多研究者關(guān)注的焦點(diǎn),并有著廣泛的應(yīng)用。物理智能計(jì)算在沒有集中控制并且不提供全局模型的前提下,為尋找復(fù)雜的分布式問題的解決方案提供了基礎(chǔ)。
物理智能計(jì)算含模擬退火算法、煙花算法等,下面對(duì)它們進(jìn)行一些簡(jiǎn)單介紹。
模擬退火算法(Simulated annealing algorithm)來源于固體退火原理,是一種基于蒙特卡羅思想設(shè)計(jì)的近似求解最優(yōu)化問題的算法。
在熱力學(xué)上,退火現(xiàn)象是指物體逐漸降溫的物理現(xiàn)象,溫度愈低,物體的能量狀態(tài)會(huì)愈低;夠低后,物體開始冷凝并結(jié)晶,在結(jié)晶狀態(tài)時(shí),系統(tǒng)的能量最低、狀態(tài)最穩(wěn)。大自然在緩慢降溫(亦即,退火)時(shí),可“找到”最低能量狀態(tài):結(jié)晶。但是,如果過程過急過快,快速降溫時(shí),會(huì)導(dǎo)致不是最低能態(tài)的非晶形。
物理上的退火如下圖所示。首先,物體處于非晶體狀態(tài)(如圖1所示)。我們將固體加溫至充分高,固體內(nèi)能增大,內(nèi)部粒子隨溫度升高變?yōu)闊o(wú)序狀態(tài)(如圖2所示),再讓其徐徐冷卻,也就退火。降溫時(shí),徐徐冷卻時(shí)粒子漸趨有序,在每個(gè)溫度都達(dá)到平衡態(tài),最后在常溫時(shí)達(dá)到基態(tài),內(nèi)能減為最小,此時(shí)物體呈現(xiàn)晶體形態(tài)(如圖3所示),系統(tǒng)最穩(wěn)定。
模擬退火算法成功地將退火思想引入到組合優(yōu)化領(lǐng)域,從某一較高初溫出發(fā),伴隨溫度參數(shù)的不斷下降,結(jié)合概率突跳特性在解空間中隨機(jī)尋找目標(biāo)函數(shù)的全局最優(yōu)解,即在局部最優(yōu)解能概率性地跳出并最終趨于全局最優(yōu)。模擬退火算法是一種通用的優(yōu)化算法,理論上該算法具有概率的全局優(yōu)化性能,目前已在工程中得到了廣泛應(yīng)用,可以較高的效率求解最大化問題、0-1背包問題、圖著色問題等,再如在超大規(guī)模集成電路VLSI設(shè)計(jì)、生產(chǎn)調(diào)度、控制工程、機(jī)器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)、信號(hào)處理等領(lǐng)域都取得了成功應(yīng)用。模擬退火算法是通過賦予搜索過程一種時(shí)變且最終趨于1的概率突跳性,從而可有效避免陷入局部極小并最終趨于全局最優(yōu)的串行結(jié)構(gòu)的優(yōu)化算法。
模擬退火算法來源于固體退火原理,根據(jù)Metropolis準(zhǔn)則,粒子在溫度T時(shí)趨于平衡的概率為e-E/(kT),其中E為溫度T時(shí)的內(nèi)能, E為其改變量,k為Boltzmann常數(shù)。用固體退火模擬組合優(yōu)化問題,將內(nèi)能E模擬為目標(biāo)函數(shù)值f,溫度T演化成控制參數(shù)t,即得到解組合優(yōu)化問題的模擬退火算法:由初始解和控制參數(shù)初值t開始,對(duì)當(dāng)前解重復(fù)“產(chǎn)生新解 計(jì)算目標(biāo)函數(shù)差 接受或舍棄”的迭代,并逐步衰減t值,算法終止時(shí)的當(dāng)前解即為所得近似最優(yōu)解,這是基于蒙特卡羅迭代求解法的一種啟發(fā)式隨機(jī)搜索過程。退火過程由冷卻進(jìn)度表控制,包括控制參數(shù)的初值t及其衰減因子 t、每個(gè)t值時(shí)的迭代次數(shù)L和停止條件S。
模擬退火算法的產(chǎn)生和接受可分為如下四個(gè)步驟:
第一步是由一個(gè)產(chǎn)生函數(shù)從當(dāng)前解產(chǎn)生一個(gè)位于解空間的新解;為便于后續(xù)的計(jì)算和接受,減少算法耗時(shí),通常選擇由當(dāng)前新解經(jīng)過簡(jiǎn)單地變換即可產(chǎn)生新解的方法,如對(duì)構(gòu)成新解的全部或部分元素進(jìn)行置換、互換等,注意到產(chǎn)生新解的變換方法決定了當(dāng)前新解的鄰域結(jié)構(gòu),因而對(duì)冷卻進(jìn)度的選取有一定的影響。
第二步是計(jì)算與新解所對(duì)應(yīng)的目標(biāo)函數(shù)差。因?yàn)槟繕?biāo)函數(shù)差僅由變換部分產(chǎn)生,所以目標(biāo)函數(shù)差的計(jì)算最好按增量計(jì)算。事實(shí)表明,對(duì)大多數(shù)應(yīng)用而言,這是計(jì)算目標(biāo)函數(shù)差的最快方法。
第三步是判斷新解是否被接受,判斷的依據(jù)是一個(gè)接受準(zhǔn)則,最常用的接受準(zhǔn)則是Metropolis準(zhǔn)則: 若 T<0則接受S′作為新的當(dāng)前解S,否則以概率exp(- T/T)接受S′作為新的當(dāng)前解S。
第四步是當(dāng)新解被確定接受時(shí),用新解代替當(dāng)前解,這只需將當(dāng)前解中對(duì)應(yīng)于產(chǎn)生新解時(shí)的變換部分予以實(shí)現(xiàn),同時(shí)修正目標(biāo)函數(shù)值即可。此時(shí),當(dāng)前解實(shí)現(xiàn)一次迭代,可在此基礎(chǔ)上開始下一輪試驗(yàn)。而當(dāng)新解被判定為舍棄時(shí),則在原當(dāng)前解的基礎(chǔ)上繼續(xù)下一輪試驗(yàn)。
模擬退火算法與初始值無(wú)關(guān),算法求得的解與初始解狀態(tài)S(算法迭代的起點(diǎn))無(wú)關(guān);模擬退火算法具有漸近收斂性,已在理論上被證明是一種以概率l 收斂于全局最優(yōu)解的全局優(yōu)化算法,模擬退火算法還具有并行性。
模擬退火算法的應(yīng)用如下:
1、模擬退火算法在超大規(guī)模集成電路VLSI設(shè)計(jì)中的應(yīng)用
利用模擬退火算法進(jìn)行VLSI的最優(yōu)設(shè)計(jì),是目前模擬退火算法最成功的應(yīng)用實(shí)例之一。用模擬退火算法幾乎可以很好地完成所有優(yōu)化的VLSI設(shè)計(jì)工作。如全局布線、布板、布局和邏輯最小化等等。
2、模擬退火算法在神經(jīng)網(wǎng)計(jì)算機(jī)中的應(yīng)用
模擬退火算法具有跳出局部最優(yōu)陷阱的能力。在Boltzmann機(jī)中,即使系統(tǒng)落入了局部最優(yōu)的陷阱,經(jīng)過一段時(shí)間后,它還能再跳出來,再系統(tǒng)最終將往全局最優(yōu)值的方向收斂。
3、模擬退火算法在圖像處理中的應(yīng)用
模擬退火算法可用來進(jìn)行圖像恢復(fù)等工作,即把一幅被污染的圖像重新恢復(fù)成清晰的原圖,濾掉其中被畸變的部分。因此它在圖像處理方面的應(yīng)用前景是廣闊的。
4、模擬退火算法的其他應(yīng)用
除了上述應(yīng)用外,模擬退火算法還用于其它各種組合優(yōu)化問題,如TSP和Knapsack問題等。大量的模擬實(shí)驗(yàn)表明,模擬退火算法在求解這些問題時(shí)能產(chǎn)生令人滿意的近似最優(yōu)解,而且所用的時(shí)間也不很長(zhǎng)。
模擬退火算法的應(yīng)用很廣泛,但存在問題也不少,其主要問題有以下三點(diǎn):

  • 溫度T的初始值設(shè)置問題。
溫度T的初始值設(shè)置是影響模擬退火算法全局搜索性能的重要因素之一。初始溫度高,則搜索到全局最優(yōu)解的可能性大,但因此要花費(fèi)大量的計(jì)算時(shí)間;反之,則可節(jié)約計(jì)算時(shí)間,但全局搜索性能可能受到影響。實(shí)際應(yīng)用過程中,初始溫度一般需要依據(jù)實(shí)驗(yàn)結(jié)果進(jìn)行若干次調(diào)整。

  • 退火速度問題。
模擬退火算法的全局搜索性能也與退火速度密切相關(guān)。一般來說,同一溫度下的“充分”搜索(退火)是相當(dāng)必要的,但這需要計(jì)算時(shí)間。實(shí)際應(yīng)用中,要針對(duì)具體問題的性質(zhì)和特征設(shè)置合理的退火平衡條件。

  • 溫度管理問題。
溫度管理問題也是模擬退火算法難以處理的問題之一。實(shí)際應(yīng)用中,由于必須考慮計(jì)算復(fù)雜度的切實(shí)可行性等問題,常采用如下所示的降溫方式:T(t+1)=k*T(t) 式中k為正的略小于1.00的常數(shù),t為降溫的次數(shù)。
模擬退火算法的優(yōu)缺點(diǎn)及其改進(jìn):
優(yōu)點(diǎn):計(jì)算過程簡(jiǎn)單,通用,穩(wěn)健性強(qiáng),適用于并行處理,可用于求解復(fù)雜的非線性優(yōu)化問題。
缺點(diǎn):收斂速度慢,執(zhí)行時(shí)間長(zhǎng),算法性能與初始值有關(guān)及參數(shù)敏感等。
模擬退火算法的改進(jìn):
1) 設(shè)計(jì)合適的狀態(tài)產(chǎn)生函數(shù),使其根據(jù)搜索進(jìn)程的需要表現(xiàn)出狀態(tài)的全空間分散性或局部區(qū)域性。
2) 設(shè)計(jì)高效的退火策略,避免狀態(tài)的迂回搜索。
3) 采用并行搜索結(jié)構(gòu),避免陷入局部極小,改進(jìn)對(duì)溫度的控制方式。
4) 選擇合適的初始狀態(tài)和算法終止準(zhǔn)則。
也可通過增加某些環(huán)節(jié)而實(shí)現(xiàn)對(duì)模擬退火算法的改進(jìn),改進(jìn)方式包括:
(1)增加升溫或重升溫過程。在算法進(jìn)程的適當(dāng)時(shí)機(jī),將溫度適當(dāng)提高,從而可激活各狀態(tài)的接受概率,以調(diào)整搜索進(jìn)程中的當(dāng)前狀態(tài),避免算法在局部極小解處停滯不前。
(2)增加記憶功能。為避免搜索過程中由于執(zhí)行概率接受環(huán)節(jié)而遺失當(dāng)前遇到的最優(yōu)解,可通過增加存儲(chǔ)環(huán)節(jié),將一些在這之前好的態(tài)記憶下來。
(3)增加補(bǔ)充搜索過程。即在退火過程結(jié)束后,以搜索到的最優(yōu)解為初始狀態(tài),再次執(zhí)行模擬退火過程或局部性搜索。
(4)對(duì)每一當(dāng)前狀態(tài),采用多次搜索策略,以概率接受區(qū)域內(nèi)的最優(yōu)狀態(tài),而非標(biāo)準(zhǔn)單次比較方式。
(5)結(jié)合其他搜索機(jī)制的算法,如遺傳算法、混沌搜索等。
(6)上述各種方法的綜合應(yīng)用。
煙花算法 (Fire Works Algorithm)是受到夜空中煙花爆炸的啟發(fā)而提出的一種物理智能算法。
煙花算法自2010年首次提出之后?,對(duì)煙花算法的研究逐步深入并展開。通過對(duì)原始煙花算法的細(xì)致、深入的分析,針對(duì)原始煙花算法的不足,提出了大量的改進(jìn)方法,并據(jù)此發(fā)展了各種改進(jìn)算法以及與其他方法的混合方法,大大提高的原始煙花算法的性能,同時(shí)研究了煙花算法在求解不同類型優(yōu)化問題的能力,還進(jìn)行了煙花算法的應(yīng)用研究,給出了一些典型的成功應(yīng)用案例。

煙花之火花圖(摘自互聯(lián)網(wǎng))

煙花算法開始迭代,依次利用爆炸算子、變異算子、映射規(guī)則和選擇策略,直到達(dá)到終止條件,即滿足問題的精度要求或者達(dá)到最大函數(shù)評(píng)估次數(shù)。
煙花算法的實(shí)現(xiàn)步驟:
1)在特定的解空間中隨機(jī)產(chǎn)生一些煙花,每一個(gè)煙花代表解空間的一個(gè)解。
2)根據(jù)適應(yīng)度函數(shù)計(jì)算每一個(gè)煙花的適應(yīng)度值,并根據(jù)適應(yīng)度值產(chǎn)生火花?;鸹ǖ膫€(gè)數(shù)是基于免疫學(xué)中的免疫濃度的思想來計(jì)算的,即適應(yīng)度值越好的煙花產(chǎn)生火花的數(shù)目越多。
3)根據(jù)現(xiàn)實(shí)中的煙花屬性并結(jié)合搜索問題的實(shí)際情況,在煙花的輻射空間內(nèi)產(chǎn)生火花。某個(gè)煙花的爆炸幅度的大小由該煙花在函數(shù)上的適應(yīng)度值決定,適應(yīng)度值越大,爆炸幅度越大,反之亦然。每一個(gè)火花代表解空間中的一個(gè)解。為了保證種群的多樣性,需要對(duì)煙花進(jìn)行適當(dāng)變異,如高斯變異。
4)計(jì)算種群的最優(yōu)解,判定是否滿足要求,如果滿足則停止搜索,沒有滿足則繼續(xù)迭代。迭代的初始值為此次循環(huán)得到的最好的解和選擇的其他的解。
煙花算法的特點(diǎn)
基本煙花算法具有如下特點(diǎn)??:隨機(jī)性、局部性、爆發(fā)性、隱并行性、簡(jiǎn)單性、多樣性和瞬時(shí)性、可擴(kuò)充性及適應(yīng)性等。
煙花算法的未來發(fā)展
迄今為止,煙花算法的研究還是很初步的。在有些方面,還是空白,在許多方面還比較膚淺,急需對(duì)其進(jìn)行進(jìn)一步研究。煙花算法的未來發(fā)展方向歸納起來,有以下幾個(gè)方面:
1、 算法的理論基礎(chǔ)和分析,如穩(wěn)定性、收斂及其特性和參數(shù)靈敏度分析等問題的研究;
2、 各種改進(jìn)方法的深入研究,如各種因素對(duì)煙花算法性能的影響,如何有效控制和調(diào)整,重點(diǎn)是子煙花間的協(xié)同機(jī)制建立和研究等;
3、混合算法研究和大數(shù)據(jù)問題的求解;
4、動(dòng)態(tài)優(yōu)化問題的求解和更廣泛的應(yīng)用研究。