遺傳算法在計算機(jī)仿真技術(shù)中的應(yīng)用
摘 要:通過對隨機(jī)性問題進(jìn)行計算機(jī)仿真,從而得出待解問題的解。提出了基于遺傳算法進(jìn)行計算機(jī)仿真 的基本模型。通過圓周率的計算,實踐了該模型的應(yīng)用過程。實踐證明,該模型在進(jìn)行計算機(jī)仿真時準(zhǔn)確度比較高。 關(guān)鍵詞:蒙特卡羅方法;;隨機(jī)數(shù);遺傳算法0 引 言
計算機(jī)的出現(xiàn)和計算技術(shù)的發(fā)展為仿真技術(shù)的發(fā)展 提供了強(qiáng)有力的手段和工具。最近幾年,隨著計算機(jī)的迅 速發(fā)展和普及,尤其是微型計算機(jī)的發(fā)展和普及,很多大 計算量的仿真系統(tǒng)得以實現(xiàn),并在國民生產(chǎn)、科學(xué)研究等 領(lǐng)域得到廣泛的應(yīng)用。
現(xiàn)代科技發(fā)展中提出愈來愈復(fù)雜的隨機(jī)性問題, 除極 少數(shù)外, 要想通過仿真給出其嚴(yán)格解是困難的, 用確定性 方法給出其近似解也很困難, 甚至不可能。遺傳算法 GA (Genetic Algorithm)[1]是模擬生物進(jìn)化的優(yōu)化算法,把遺 傳算法GA 應(yīng)用到仿真技術(shù)中,是一種很強(qiáng)的特殊的數(shù)值 方法。
1 遺傳算法[ 1 ]
1.1 并行遺傳算法實現(xiàn)方案 目前并行遺傳算法的實現(xiàn)方案大致可分為3 類: (1)全局型—主從式模型(master-slave model):并行
系統(tǒng)分為一個主處理器和若干個從處理器。主處理器監(jiān)控 整個染色體種群,并基于全局統(tǒng)計執(zhí)行選擇操作;各個從 處理器接受來自主處理器的個體進(jìn)行重組交叉和變異,產(chǎn) 生新一代個體,并計算適應(yīng)度,再把計算結(jié)果傳給主處理
器。
從而加快滿足終止條件的要求。粗粒度模型也稱島嶼模型
(island model),基于粗粒度模型的遺傳算法也稱為分布 式遺傳算法(Distributed Genetic Algorithm),也是目 前應(yīng)用最廣泛的一種并行遺傳算法。
(3)分散型—細(xì)粒度模型(fine-grained model):為種 群中的每一個個體分配一個處理器,每個處理器進(jìn)行適應(yīng) 度的計算,而選擇、重組交叉和變異操作僅在與之相鄰的 一個處理器之間相互傳遞個體中進(jìn)行,細(xì)粒度模型也稱鄰 域模型(neighborhood model),適合于連接機(jī)、陣列機(jī)和 SIMD 系統(tǒng)。
1.2 遷移策略
遷移(migration)是并行遺傳算法引入的一個新的算 子,它是指在進(jìn)化過程中子群體間交換個體的過程,一般 的遷移方法是將子群體中最好的個體發(fā)給其它的子群體, 通過遷移可以加快較好個體在群體中的傳播,提高收斂速 度和解的精度。最基本的遷移模型是環(huán)狀拓?fù)淠P?/SPAN>,如圖
1 所示。
1.3 并行遺傳算法的性能參數(shù) 為了評價并行算法的性能,人們提出了許多不同的 評價指標(biāo),其中最重要的一個評價標(biāo)準(zhǔn)是加速比。設(shè)T 1 為
個方面,它們除了與遷移策略有關(guān),還與一些參數(shù)選取的 合理性密切相關(guān),如遺傳代數(shù)、群體數(shù)目、群體規(guī)模、遷 移率和遷移間隔。
2 計算機(jī)仿真
“系統(tǒng)仿真是通過對系統(tǒng)模型的實驗,研究一個存在 的或設(shè)計中的系統(tǒng)”[2] 。對于給定目標(biāo),仿真過程可大致分 為仿真建模、程序?qū)崿F(xiàn)、仿真結(jié)果的統(tǒng)計分析三大部分[3] 。 其中仿真建模是最基礎(chǔ)的.、關(guān)系整個仿真成敗的環(huán)節(jié)。如 果有軟件能夠輔助用戶方便快捷地完成仿真建模工作,那 么不僅可大大減少工作量,而且還可使用戶集中精力于提 高建模質(zhì)量[4] 。
通過以上的概念分析,可以看出:仿真成敗的關(guān)鍵是 仿真前的建模,模型建起來以后對輸入數(shù)據(jù)的優(yōu)化也很重 要。因此,可以把并行遺傳算法應(yīng)用在計算機(jī)仿真中,從 而來提高仿真的準(zhǔn)確度。
3 并行遺傳算法在計算機(jī)仿真中的應(yīng)用
并行遺傳算法敘述如下:
( 1) 基于對待解問題的詳細(xì)分析,建立詳細(xì)的符合其 特點的并行遺傳算法模型。
( 2) 基于并行遺傳算法模型確定仿真前各參數(shù)的實現(xiàn) 方案。
(3)運用蒙特卡羅方法生成的大量隨機(jī)數(shù),結(jié)合(2)的 實現(xiàn)方案對隨機(jī)數(shù)進(jìn)行優(yōu)化。
( 4) 進(jìn)行仿真試驗,得出仿真結(jié)果。
遺傳算法在計算機(jī)仿真技術(shù)中的應(yīng)用 張少剛 面隨意地投擲長度為 l 的細(xì)針, 設(shè)細(xì)針與平行線的垂直方 向的夾角為a,則細(xì)針與平行線相交的概率為I=Ig∣cosa∣。
由于a 是在[0, π] 間均勻分布的,所以細(xì)針與平行線相交
的概率等于1/
4.2 計算方法和結(jié)果
4.2.1 模型
在二維平面上畫三條相距為O.5 ,長度為L 的平行線, 取細(xì)針長度為 O.5 ,如圖 3 所示,因為本文所用隨機(jī)數(shù)在 [0 ,1] 之間,所以平行線的有效長度為L ,也就是說所有投 擲試驗都等效于在上述邊長為 L 的正方形區(qū)域內(nèi)進(jìn)行的。
根據(jù)對這個問題的分析,可以確定該仿真例子適合 遺傳算法的第(1) 類全局型—主從式模型,基于并行遺傳 算法模型確定仿真前各參數(shù)為x1、x2、y1、y2,其實現(xiàn)方案見
以下算法。
4.2.2 算法
(1)為計算作準(zhǔn)備,取總投針次數(shù)初始值N=0 ,相交次 數(shù)M=0,設(shè)定總投針試驗次數(shù)Nmax;
(2) 由蒙特卡羅方法產(chǎn)生兩個[O ,1] 間均勻分布的隨 機(jī)數(shù),并作為隨機(jī)構(gòu)造的細(xì)針的一個端點的坐標(biāo)(x 1 ,y 2 ); (3) 再產(chǎn)生一個隨機(jī)數(shù),作為細(xì)針另一端點的橫坐標(biāo)
X2 ;
(4)如果∣x2-x1 ∣>0.5,說明本次欲構(gòu)造的細(xì)針長度已 超過0.5 ,應(yīng)舍棄之,并回到上步;
(5) 利用細(xì)針長度為0.5 這個約束條件,計算細(xì)針端 點的縱坐標(biāo)y2=y1 ±
細(xì)針已不在選定的區(qū)域之內(nèi),應(yīng)舍棄,回到(3 );否則投針
有效,投針次數(shù)加1,N=N+1; (6)判斷細(xì)針是否與平行線相交如果x1>0.5 且x2>0.5,
或者x1<0.5 且x2<0.5,則細(xì)針與平行線不相交,回到(2);
否則相交,并令M=M+1; (7)如果N=Nmax,試驗結(jié)束,輸出結(jié)果,否則,(回到2),
繼續(xù)下一次投針試驗。
4 投針試驗
4.1 試驗
圖2 仿真過程圖
著名的Bufon 投針實驗是一種求π近似值的方法, 該 方法是在平坦桌面上劃一組相距為 l 的平行線, 然后向桌
圖3 模擬計算結(jié)果
模擬計算結(jié)果如圖 3 所示,可以看出,基于并行遺傳
度和求解質(zhì)量。
參考文獻(xiàn)
算法模型確定的仿真前各參數(shù)的實現(xiàn)方案準(zhǔn)確,所得圓周 率的計算精度比較高。因此,并行遺傳算法模型具有一定 的實用性。
5 結(jié)束語
本文將遺傳算法應(yīng)用到計算機(jī)仿真技術(shù)中,提出了 基于并行遺傳算法的仿真模型,并通過圓周率的計算,實 踐了它的應(yīng)用過程。成功地解決了一類多變量、多約束條 件的線性仿真問題。結(jié)果表明,PGA 有效地提高了運行速
1 Holland J. Adaptation in Natural and Artificial Systems
[M].Michigan:University of Michigan Press,2005
2 李書臣, 趙禮峰. 仿真技術(shù)的現(xiàn)狀及發(fā)展[J].自動化與儀表,
2004,14(6):1~4
3 徐庚保.系統(tǒng)仿真的過去、現(xiàn)在和未來[J].計算機(jī)仿真,2006,
15(3):2~4
4 惠天舒,李裕山,陳宗基.仿真模型的可重用性研究[J].北京航 空航天大學(xué)學(xué)報,2008,25(3):329~333
【遺傳算法在計算機(jī)仿真技術(shù)中的應(yīng)用】相關(guān)文章:
1.計算機(jī)仿真技術(shù)在物流服務(wù)中的應(yīng)用
2.淺談計算機(jī)仿真技術(shù)在實驗教學(xué)中的應(yīng)用論文
3.計算機(jī)三維仿真技術(shù)在復(fù)雜足踝部骨折手術(shù)中的應(yīng)用
4.計算機(jī)仿真技術(shù)的發(fā)展應(yīng)用論文
5.計算機(jī)在醫(yī)藥倉庫管理中的應(yīng)用