陳 雷
(安徽精益測繪有限公司,安徽淮南232000)
Matlab中遺傳算法在測量平差中的應(yīng)用
陳雷*
(安徽精益測繪有限公司,安徽淮南232000)
遺傳算法是模擬自然選擇和自然遺傳過程中的繁殖、交叉和基因突變現(xiàn)象,在每次迭代中都保留一組候選解,并按某種指標(biāo)從解群中選取較優(yōu)的個體,利用遺傳算子對這些個體進(jìn)行組合,產(chǎn)生新一代的候選解群,重復(fù)此過程,直到滿足某種收斂指標(biāo)為止。此算法在解決復(fù)雜優(yōu)化問題的潛力和在工業(yè)領(lǐng)域的成功應(yīng)用的到廣泛關(guān)注。主要介紹了遺傳算法用于測量中線性問題的解算,并根據(jù)此算法自身優(yōu)點(diǎn),應(yīng)用于測邊網(wǎng)平差等非線性問題的解算中,得出了理想的結(jié)果,并據(jù)此得出了一些建議與結(jié)論。
遺傳算法;測量平差;線性;非線性
遺傳算法(GA)是模擬自然界生物進(jìn)化機(jī)制的一種算法,在科學(xué)與生產(chǎn)實(shí)踐中表現(xiàn)為在所有可能的解決方案中找出最符合該問題所要求的條件的解決方法,就是找出一個最優(yōu)解。此種算法是Holland在1960年提出來的其最初的目的是研究自然系統(tǒng)的自適應(yīng)行為并設(shè)計(jì)具有自適應(yīng)功能的軟件系統(tǒng)。其特點(diǎn)就是對參數(shù)進(jìn)行編碼運(yùn)算不需要有關(guān)體系的任何先驗(yàn)知識,沿多種路線進(jìn)行平行搜索不會落入局部較優(yōu)大的陷阱,能在許多局部較優(yōu)中找到全局最優(yōu)點(diǎn)是一種全局最優(yōu)化方法[1-3]。近年來,遺傳算法已經(jīng)在國際上許多領(lǐng)域得到了應(yīng)用。從遺傳算法的主要特點(diǎn)、基本原理以及改進(jìn)算法,介紹遺傳算法的應(yīng)用領(lǐng)域,并用Matlab實(shí)現(xiàn)了遺傳算法在測邊網(wǎng)平差這樣的非線性問題最優(yōu)解求解的解算中。
遺傳算法作為仿生態(tài)優(yōu)化搜索方法,具有穩(wěn)健性強(qiáng)、易于并行處理、搜索全局最優(yōu)等優(yōu)點(diǎn)。沈明、周紅進(jìn)等[4]對浮點(diǎn)編碼的遺傳算法在GPS技術(shù)姿態(tài)測量技術(shù)上的應(yīng)用進(jìn)行了研究?;趩位€的GPS載波相位雙差姿態(tài)測量模型,利用模型度函數(shù)法,建立起適應(yīng)度函數(shù),采用十進(jìn)制編碼設(shè)計(jì)了能夠避開整周模糊度的求解而直接搜索解算載體姿態(tài)的遺產(chǎn)算法模型。劉智敏等[5]在2006年發(fā)表了《基于改進(jìn)的遺傳算法解算GPS雙差模糊度的研究》一文,他們將遺傳算法應(yīng)用于GPS雙差模糊度解算過程,提高了解算的穩(wěn)定性與高效性。在本文中將著重講一下利用遺傳算法處理測繪中非線性問題的解算問題。
基本流程如圖1所示。
圖1 遺傳算法框圖
遺傳算法是具有“生成檢測”的迭代搜索算法。基本步驟為:
(1)編碼和確定種群規(guī)模;
(2)確定適應(yīng)度函數(shù);
(3)確定遺傳算子,包括確定選擇、交叉和變異的方法,以及確定交叉概率、變異概率等遺傳參數(shù);
(4)初始化種群;
(5)計(jì)算種群中個體的適應(yīng)值;
(6)按照遺傳策略,運(yùn)用選擇、交叉和變異算子,生成下一代種群。
隨機(jī)初始化種群p(0)={x1,x2,…,xn};t=0;計(jì)算p(0)中個體的適應(yīng)值;
While(不滿足終止條件)
在測量中,許多的數(shù)學(xué)模型也是非線性的模型。對于它們,以前的作法是線性近似,測量中稱為線性化,就是將其展為泰勒級數(shù),并取至一次項(xiàng),省略二次以上各項(xiàng),這樣的方法一定會引起模型誤差[7-10]。
過去由于測量精度不高,線性近似所引起的誤差一般可以忽略不計(jì)。但是隨著科技的不斷發(fā)展,觀測精度已經(jīng)大大提高,只是因?yàn)榫€性近似所產(chǎn)生的模型誤差和觀測誤差相當(dāng),甚至有些還會大于觀測誤差。
此外,有些非線性模型對參數(shù)的近似值十分敏感,若近似值精度較差,則線性化會產(chǎn)生較大的模型誤差。所以有必要結(jié)合測量數(shù)據(jù)處理的實(shí)際對非線性解算進(jìn)行深入的研究。根據(jù)遺傳算法乘為例,以期到改進(jìn)非線性問題解算的理論及方法。
(1)比如說這樣的優(yōu)化問題:max{f(x)|x∈X},這里f 是X上的一個函數(shù),X是問題的解空間。它可以是一個有限集合,也可以是一個實(shí)空間Rn的一個子集等。有了以上的理論基礎(chǔ),現(xiàn)在來舉個簡單的例子來說明,例如優(yōu)化下面的目標(biāo)函數(shù)(求最大值):
進(jìn)入Matlab建立一個M文件,程序內(nèi)容如下,并保存文件名為sga.m的文件。完成后,回到command window窗口中,輸入剛才所保存的文件名sga(40,2,10,0.8,0.01,0.01)按enter鍵即可得出下面的數(shù)值,X= 8.384,Y=141.2。所得結(jié)果的精度與精確值相同,由此可見此算法是正確的。如圖2所示。
圖2 遺傳算法程序優(yōu)化結(jié)果圖
(2)關(guān)于測邊網(wǎng)平差非線性的例子。有測邊網(wǎng)如圖3所示。
圖3 測邊網(wǎng)
網(wǎng)中A、B、C、D為知點(diǎn),P1、P2、P3、P4為待定點(diǎn),同精度觀測了13條邊長。已知點(diǎn)坐標(biāo)與待定點(diǎn)近似坐標(biāo)見表1,觀測邊長見表2。
創(chuàng)建一個適應(yīng)度函數(shù)M文件my_fun,初始種群設(shè)置為:ones(200,1)*[48580.270 60500.505 68481.390 55018.279 43767.223 57968.593 40843.219 64867.875],種群大小為200,交叉概率為Pc=0.6,變異率Pm=0.02,迭代次數(shù)為500。
表1 已知點(diǎn)坐標(biāo)和待定點(diǎn)近似坐標(biāo)
為了比較一下選擇操作中參數(shù)設(shè)置的不同對計(jì)算結(jié)果的影響,在其余參數(shù)設(shè)置(同前)保持不變的情況下,只是變化選擇的方法,經(jīng)過多次試驗(yàn),由得出的結(jié)果中最小二乘值得比較可以得出:選擇方法為uniform時,最小二乘值最大,為0.012618,而且,可以得出,均值變化很不穩(wěn)定,時高時低,因此對于這個函數(shù),選擇這個方法是不合適的:選擇方法為Remainder時,最小二乘值最小,為0.0061273,是前者的1/2,所得在實(shí)驗(yàn)中,選擇采用的方法是Remainder。
表2 邊長觀測值
為了得到最優(yōu)解,在初始種群個體數(shù)為200,代數(shù)為800的條件下,設(shè)置交叉、變異等算子的不同數(shù)值。得出結(jié)果中任何一組算子所得到的結(jié)果均小于用經(jīng)典平差計(jì)算的結(jié)果0.00658,充分說明了遺傳算法解算非線性問題的精度較高。
由表3可以看出,用遺傳算法計(jì)算得到的單位權(quán)中誤差要小于用一般的平差方法計(jì)算結(jié)果,這是因?yàn)樵谄讲钸^程中沒有非線性問題向線性問題轉(zhuǎn)化而形成的誤差;而且通過這種方法免去了矩陣轉(zhuǎn)置,求逆等的麻煩,使計(jì)算過程更簡單。
表3 不同計(jì)算方法結(jié)果比較
初步探討了遺傳算法在測繪領(lǐng)域中的應(yīng)用,講解了遺傳算法的優(yōu)化問題以及在非線性問題中解算的應(yīng)用,在非線性問題的解算中,遺傳算法優(yōu)越性極為明顯。但在進(jìn)行試驗(yàn)時也發(fā)現(xiàn)了問題,如在變量多時,取值范圍大或者無給定范圍時,收斂速度下降,可以找到最優(yōu)解附近,但可能無法精確確定最優(yōu)解位置。并且根據(jù)應(yīng)用領(lǐng)域遺傳算法是可能的,但是對一般問題進(jìn)行研究顯得極其困難。
[1]周勇,等.非數(shù)值并行算法——遺傳算法[M].北京:科學(xué)出版社,2003:20-25.
[2]周明,孫樹棟.遺傳算法原理及應(yīng)用[M].北京:國防工業(yè)出版社,1995:10-20.
[3]徐宗本,李國.解全局優(yōu)化問題的仿生類算法(I)[J].運(yùn)籌學(xué)雜志,1995(12):70-72.
[4]沈明,周紅進(jìn),朱穎.浮點(diǎn)編碼的遺傳算法在GPS姿態(tài)測量技術(shù)上的應(yīng)用[J].彈箭與制導(dǎo)學(xué)報(bào),2007,27(1):21-24.
[5]劉智敏,獨(dú)知行,鄒蓉.基于改進(jìn)的遺傳算法解算GPS雙差模糊度的研究[J].山東科技大學(xué)學(xué)報(bào):自然科學(xué)版,2007,26 (1):23-26.
[6]朱成娟.遺傳算法的改進(jìn)及其若干應(yīng)用[D].燕山大學(xué),2006.
[7]張文修.遺傳算法的數(shù)學(xué)基礎(chǔ)[M].成都:西安交通大學(xué)出版社,2001:34-44.
[8]李敏強(qiáng).遺傳算法的基本理論與應(yīng)用[M].北京:科學(xué)出版社,2001:83-87.
[9]馬玉明.遺傳算法的理論研究綜述[J].山東輕工業(yè)學(xué)院學(xué)報(bào),2004,18(3):46-53.
[10]唐穗欣.標(biāo)準(zhǔn)遺傳算法的原理及算例[J].軟件導(dǎo)刊,2007,17 (6):22-27.
P22
B
1004-5716(2016)07-0144-03
2016-03-17
2016-03-21
陳雷(1963-),男(漢族),安徽淮南人,中級測繪師,現(xiàn)從事測繪技術(shù)及管理工作。