陳 雷
(安徽精益測繪有限公司,安徽淮南232000)
Matlab中遺傳算法在測量平差中的應用
陳雷*
(安徽精益測繪有限公司,安徽淮南232000)
遺傳算法是模擬自然選擇和自然遺傳過程中的繁殖、交叉和基因突變現象,在每次迭代中都保留一組候選解,并按某種指標從解群中選取較優的個體,利用遺傳算子對這些個體進行組合,產生新一代的候選解群,重復此過程,直到滿足某種收斂指標為止。此算法在解決復雜優化問題的潛力和在工業領域的成功應用的到廣泛關注。主要介紹了遺傳算法用于測量中線性問題的解算,并根據此算法自身優點,應用于測邊網平差等非線性問題的解算中,得出了理想的結果,并據此得出了一些建議與結論。
遺傳算法;測量平差;線性;非線性
遺傳算法(GA)是模擬自然界生物進化機制的一種算法,在科學與生產實踐中表現為在所有可能的解決方案中找出最符合該問題所要求的條件的解決方法,就是找出一個最優解。此種算法是Holland在1960年提出來的其最初的目的是研究自然系統的自適應行為并設計具有自適應功能的軟件系統。其特點就是對參數進行編碼運算不需要有關體系的任何先驗知識,沿多種路線進行平行搜索不會落入局部較優大的陷阱,能在許多局部較優中找到全局最優點是一種全局最優化方法[1-3]。近年來,遺傳算法已經在國際上許多領域得到了應用。從遺傳算法的主要特點、基本原理以及改進算法,介紹遺傳算法的應用領域,并用Matlab實現了遺傳算法在測邊網平差這樣的非線性問題最優解求解的解算中。
遺傳算法作為仿生態優化搜索方法,具有穩健性強、易于并行處理、搜索全局最優等優點。沈明、周紅進等[4]對浮點編碼的遺傳算法在GPS技術姿態測量技術上的應用進行了研究。基于單基線的GPS載波相位雙差姿態測量模型,利用模型度函數法,建立起適應度函數,采用十進制編碼設計了能夠避開整周模糊度的求解而直接搜索解算載體姿態的遺產算法模型。劉智敏等[5]在2006年發表了《基于改進的遺傳算法解算GPS雙差模糊度的研究》一文,他們將遺傳算法應用于GPS雙差模糊度解算過程,提高了解算的穩定性與高效性。在本文中將著重講一下利用遺傳算法處理測繪中非線性問題的解算問題。
基本流程如圖1所示。

圖1 遺傳算法框圖
遺傳算法是具有“生成檢測”的迭代搜索算法。基本步驟為:
(1)編碼和確定種群規模;
(2)確定適應度函數;
(3)確定遺傳算子,包括確定選擇、交叉和變異的方法,以及確定交叉概率、變異概率等遺傳參數;
(4)初始化種群;
(5)計算種群中個體的適應值;
(6)按照遺傳策略,運用選擇、交叉和變異算子,生成下一代種群。
隨機初始化種群p(0)={x1,x2,…,xn};t=0;計算p(0)中個體的適應值;
While(不滿足終止條件)

在測量中,許多的數學模型也是非線性的模型。對于它們,以前的作法是線性近似,測量中稱為線性化,就是將其展為泰勒級數,并取至一次項,省略二次以上各項,這樣的方法一定會引起模型誤差[7-10]。
過去由于測量精度不高,線性近似所引起的誤差一般可以忽略不計。但是隨著科技的不斷發展,觀測精度已經大大提高,只是因為線性近似所產生的模型誤差和觀測誤差相當,甚至有些還會大于觀測誤差。
此外,有些非線性模型對參數的近似值十分敏感,若近似值精度較差,則線性化會產生較大的模型誤差。所以有必要結合測量數據處理的實際對非線性解算進行深入的研究。根據遺傳算法乘為例,以期到改進非線性問題解算的理論及方法。
(1)比如說這樣的優化問題:max{f(x)|x∈X},這里f 是X上的一個函數,X是問題的解空間。它可以是一個有限集合,也可以是一個實空間Rn的一個子集等。有了以上的理論基礎,現在來舉個簡單的例子來說明,例如優化下面的目標函數(求最大值):

進入Matlab建立一個M文件,程序內容如下,并保存文件名為sga.m的文件。完成后,回到command window窗口中,輸入剛才所保存的文件名sga(40,2,10,0.8,0.01,0.01)按enter鍵即可得出下面的數值,X= 8.384,Y=141.2。所得結果的精度與精確值相同,由此可見此算法是正確的。如圖2所示。

圖2 遺傳算法程序優化結果圖
(2)關于測邊網平差非線性的例子。有測邊網如圖3所示。

圖3 測邊網
網中A、B、C、D為知點,P1、P2、P3、P4為待定點,同精度觀測了13條邊長。已知點坐標與待定點近似坐標見表1,觀測邊長見表2。
創建一個適應度函數M文件my_fun,初始種群設置為: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,迭代次數為500。

表1 已知點坐標和待定點近似坐標
為了比較一下選擇操作中參數設置的不同對計算結果的影響,在其余參數設置(同前)保持不變的情況下,只是變化選擇的方法,經過多次試驗,由得出的結果中最小二乘值得比較可以得出:選擇方法為uniform時,最小二乘值最大,為0.012618,而且,可以得出,均值變化很不穩定,時高時低,因此對于這個函數,選擇這個方法是不合適的:選擇方法為Remainder時,最小二乘值最小,為0.0061273,是前者的1/2,所得在實驗中,選擇采用的方法是Remainder。

表2 邊長觀測值
為了得到最優解,在初始種群個體數為200,代數為800的條件下,設置交叉、變異等算子的不同數值。得出結果中任何一組算子所得到的結果均小于用經典平差計算的結果0.00658,充分說明了遺傳算法解算非線性問題的精度較高。
由表3可以看出,用遺傳算法計算得到的單位權中誤差要小于用一般的平差方法計算結果,這是因為在平差過程中沒有非線性問題向線性問題轉化而形成的誤差;而且通過這種方法免去了矩陣轉置,求逆等的麻煩,使計算過程更簡單。

表3 不同計算方法結果比較
初步探討了遺傳算法在測繪領域中的應用,講解了遺傳算法的優化問題以及在非線性問題中解算的應用,在非線性問題的解算中,遺傳算法優越性極為明顯。但在進行試驗時也發現了問題,如在變量多時,取值范圍大或者無給定范圍時,收斂速度下降,可以找到最優解附近,但可能無法精確確定最優解位置。并且根據應用領域遺傳算法是可能的,但是對一般問題進行研究顯得極其困難。
[1]周勇,等.非數值并行算法——遺傳算法[M].北京:科學出版社,2003:20-25.
[2]周明,孫樹棟.遺傳算法原理及應用[M].北京:國防工業出版社,1995:10-20.
[3]徐宗本,李國.解全局優化問題的仿生類算法(I)[J].運籌學雜志,1995(12):70-72.
[4]沈明,周紅進,朱穎.浮點編碼的遺傳算法在GPS姿態測量技術上的應用[J].彈箭與制導學報,2007,27(1):21-24.
[5]劉智敏,獨知行,鄒蓉.基于改進的遺傳算法解算GPS雙差模糊度的研究[J].山東科技大學學報:自然科學版,2007,26 (1):23-26.
[6]朱成娟.遺傳算法的改進及其若干應用[D].燕山大學,2006.
[7]張文修.遺傳算法的數學基礎[M].成都:西安交通大學出版社,2001:34-44.
[8]李敏強.遺傳算法的基本理論與應用[M].北京:科學出版社,2001:83-87.
[9]馬玉明.遺傳算法的理論研究綜述[J].山東輕工業學院學報,2004,18(3):46-53.
[10]唐穗欣.標準遺傳算法的原理及算例[J].軟件導刊,2007,17 (6):22-27.
P22
B
1004-5716(2016)07-0144-03
2016-03-17
2016-03-21
陳雷(1963-),男(漢族),安徽淮南人,中級測繪師,現從事測繪技術及管理工作。