李星晨(江蘇省高速公路信息工程有限公司,南京 210000)
基于MATLAB的分布式粒子群優化算法
李星晨
(江蘇省高速公路信息工程有限公司,南京210000)
本文基于MATLAB軟件結合粒子群算法,實現了粒子群算法中粒子的分布式適應度計算,極大的減少了優化計算耗時,對適應度計算較為耗時的優化計算,如:電磁問題的優化,有著明顯的效果;最后本文采用分布式粒子群優化算法優化計算了電阻膜吸波頻率選擇表面結構,仿真證明分布式粒子群算法可以極大的減少優化耗時。
MATLAB;粒子群算法;分布式計算
隨著現代工業技術的發展的迅猛發展,需要降低工業設計的周期,以適應現今高速發展的社會。近年來,各種智能優化算法不斷涌現,為工業設計優化領域提供了堅實的理論基礎。但是,應用智能算法優化工業設計問題,特別是對于一般工業設計中使用的有限元計算方法,其所面臨的適應度計算量過大,使得優化設計周期較長,成為制約其發展的一大“瓶頸”。
為解決這一“瓶頸”,將分布式計算理論應用到智能算法優化設計領域,不失為一種好的方法。分布式計算,又稱并行計算,是指同時使用多種計算資源解決來計算問題的過程。多種計算資源可以指一臺多處理器的計算機或由多臺計算機組成的集群。分布式計算技術的主要目的在于加快求解問題的速度和提高求解問題的規模上。目前應用的分布式計算大都采用基本的FORTRAN、C或者BASIC語言等進行編程[1],代碼較為復雜,不易實現。近年來,MATLAB技術語言因其強大的科學計算能力、可視化功能和開放式可擴展環境等優點[2],廣泛應用于各個科學研究領域。MATLAB工具箱(Toolbox)是為特定的專業領域提供的插件,其中的并行計算工具箱是為解決并行計算問題提供的[2]。故利用并行計算工具箱(ParallelComputingToolbox),可在多個計算機上使用MATLAB來解決實現分布式計算問題。
粒子群優化算法PSO(ParticleSwarmOptim ization)是一種群體智能優化計算方法,其思想來源于自然界中鳥類捕食,最早由美國的Kennedy和Eberhart教授于1994年提出[3]。PSO算法是求解域的直接迭代優化算法,且算法參數較少,易于實現,其一經提出就備受眾多學者關注,并廣泛的應用于工業設計優化過程中。目前,對于PSO算法,已經提出了多種改進粒子群算法來提高優化收斂速度,如根據群體適應度方差自適應變異的PSO[4]、帶變異算子的PSO算法[5]、協同PSO算法[6]、小波變異PSO算法[7]。
在粒子群算法中,每個個體稱為一個“粒子”,其實每個粒子代表著一個潛在的最優解。在一個D維的目標搜索空間內,一個粒子代表空間中相對應的點,個粒子所構成的群體中粒子的位置為:
粒子根據設定的適應度函數計算當前位置的適應度,衡量粒子的優劣,然后根據自身最好位置pbest和全局最好位置gbest更新粒子速度和位置:
其中為慣性權重;c1,c2為學習因子,又稱加速因子;rand為(0, 1)之間的隨機數。分別為粒子i在第k次迭代第d維中的速度、位置、自身最優位置,而則為群體全局最優位置。
由于粒子群算法中沒有實際的機制來控制粒子的速度,所以需要對速度的最大值進行限制,設其為vmax。在更新過程中,速度不能超過這個最大值vmax。這個參數在求解最優過程中具有重要的地位:如果vmax的值太大會導致粒子在更新過程中直接跳過最好解;如果的值太小的話又會導致搜索不充分,很難獲得最優解。此外還要對速度的最小值進行限制,設其為vmax,故粒子的位置范圍為xmin~xmax。在式(2)中:第二項是可以看成是其搜索過程中的“認知”部分,代表了粒子對自己的認識,粒子根據自身的最優值進行學習;第三項是則代表了“社會”部分,代表粒子間相互協作的過程。通過式(2.2)可以看出,粒子的位置更新過程是根據它上一次迭代的速度、它當前位置和自身最好經驗與群體最好經驗之間的距離來更新速度。
在PSO優化過程中,耗時最多的一般就是在計算粒子的適應度上。因為現代工業上采用有限元等數值計算方法仿真計算,得出計算粒子的適應度時,所以粒子數量越多,一次計算流程中計算粒子適應度的步驟就越多,耗時就越長。恰好MATLAB分布式計算就是將需要計算的任務分割并分配給每一個Worker完成的,所以可以將一個粒子分配給一個Worker計算其適應度,具有多個Worker,就可以同時完成多個粒子適應度計算,實現PSO算法的分布式計算,提高計算適應度環節的效率,減少總體優化時間。由于MATLAB分布式計算工具箱的配置簡單等優點,可以利用MATLAB分布式計算工具箱和PSO算法,實現對PSO算法優化問題的分布式計算。圖1為分布式粒子群算法實現的邏輯圖。
為了證明分布式粒子群算法的有效性,本文使用DPSO優化設計了電阻膜頻率選擇表面。電阻膜頻率選擇表面是傳統頻率選擇表面的延伸,其采用導電涂層代替傳統的金屬,其可以實現寬帶且較好的吸波效果。圖2為所優化的電阻膜頻率選擇表面,其優化變量如圖。
設定DPSO算法的迭代次數為100次,種群為50個,采用20個分布計算worker完成適應度的分布式計算優化,粒子群算法的適應度設定為:
優化計算的適應度變化如圖3所示。
由于采用了20個worker進行分布式計算,此次優化計算相比以往的電磁優化問題約少了20倍的計算耗時,且由其適應度的變化曲線可得,優化算法確實有效。
本文利用MATLAB分布式計算工具箱,結合了PSO算法實現對優化問題的分布式優化設計,并通過一個頻率選擇表面優化設計的實例對算法進行了驗證。通過實際優化,我們總結本文提出的基于MATLAB的DPSO具有如下優點:(1)使用MATLAB將串行MATLAB應用程序轉換為分布式MATLAB應用程序,程序撰寫簡單,不需要使用低級語言編寫程序;(2)計算效率高,優化時間相比傳統大幅縮減;(3)優化過程自動進行,無需人為干預,算法魯棒性好。故本文所提的基于MATLAB實現的分布式粒子群算法在設計生產等優化設計問題中,有個較好的應用前景。
[1]張林波,遲學斌,莫則堯等.并行計算導論[M].北京:清華大學出版社,2006.
[2]周建興,豈興明,矯津毅等.MATLAB從入門到精通[M].北京:人民郵電出版社,2008.
[3]Kennedy J, Eberhart R. Par ticle swarm optimization[C].Proceed ings of IEEE internat ional conference on neural networks. 1995,4(02): 1942-1948.
[4]呂振肅,侯志榮. 自適應變異的粒子群優化算法[J].電子學報, 2004,32(03):416-420.
[5]李寧, 劉飛, 孫德寶. 基于帶變異算子粒子群優化算法的約束布局優化研究[J].計算機學報, 2004,27(07): 897-903.
[6]李愛國.多粒子群協同優化算法[J].復旦學報:自然科學版,2004,43(05):923-925.
[7]田雨波, 高東慧. 改進小波變異粒子群優化算法用于直線陣綜合[J]. 電波科學學報,2013,28(01): 111-129.
[8]蔡群.基于Mat lab分布式[Z].
李星晨(1988-),男,本科,初級工程師。