專利名稱:一種可生成指定性能序列編碼器的遺傳編程實(shí)現(xiàn)方法
所屬領(lǐng)域本發(fā)明涉及一種可生成指定性能序列編碼器的遺傳編程實(shí)現(xiàn)方法。
而在新一代的移動(dòng)通信技術(shù)中,為了更有效地利用頻率資源,采用了碼分多址技術(shù),這就需要性能很好地滿足特定要求的多址正交碼。同樣在其他方面,比如光通信領(lǐng)域,所要求碼的性能和其它通信方式又不一樣,我們就又需要生成此類碼的方法。
所以,找到一種較為通用的方法,較好地解決生成某種性能的序列這一類問題是有意義的。本發(fā)明找到了能較好的解決此類問題的一種通法,揭示了一種有效地生成此類編碼器的途徑。
目前現(xiàn)有的技術(shù)中,生成某種特定序列的方法一般是通過運(yùn)用數(shù)論理論來得到,或運(yùn)用代數(shù)學(xué)的理論來推得。比如偽隨機(jī)序列,它常常通過確定性的算法得到,而這個(gè)算法是程序員事先知道的,同時(shí)這種傳統(tǒng)方法需要隨機(jī)數(shù)的種子,所以輸出的隨機(jī)數(shù)是可再生的。因此通過確定性的方法得到的數(shù)隨機(jī)性能不好。再如,有人用非線性動(dòng)力學(xué)生成擴(kuò)頻碼,其性能一般不能達(dá)到極限。
總的來說,這些方法的主要缺點(diǎn)是(1)性能一般不能逼近其極限值;(2)生成的碼數(shù)量有限;(3)要解決一個(gè)問題,只能量身打造一個(gè)專用的方法,沒有通用性。
本發(fā)明的技術(shù)方案為(1)用一系列操作符和操作數(shù)隨機(jī)組成N個(gè)算式,每一個(gè)算式其實(shí)就是一個(gè)編碼器,其中N稱為群體規(guī)模數(shù);
(2)對每一個(gè)編碼器有一個(gè)評價(jià)指標(biāo),也就是適應(yīng)度值,算出群體中N個(gè)個(gè)體的適應(yīng)度值,其評價(jià)指標(biāo)由用戶指定,且有什么評價(jià)指標(biāo)就會生成什么編碼器;(3)以適應(yīng)度值為基礎(chǔ),按照遺傳概率與適應(yīng)度值成正比的準(zhǔn)則算出每一個(gè)算式遺傳到下一代的概率。然后對此群體進(jìn)行遺傳變異操作演化出下一代群體。根據(jù)需要演化一定的代數(shù),將最終群體中適應(yīng)度最高的算式作為最終結(jié)果。
本發(fā)明的兩個(gè)實(shí)施方案為1)它生成香農(nóng)意義下的最復(fù)雜序列編碼器,它采用的適應(yīng)度準(zhǔn)則為香農(nóng)準(zhǔn)則;2)生成CDMA中的多址正交碼,它采用的適應(yīng)度準(zhǔn)則為在一個(gè)碼組中找出自相關(guān)和互相關(guān)值中的最大值y,if y>a,適應(yīng)度值=0(a是一個(gè)可調(diào)的值),else適應(yīng)度值=香農(nóng)熵-y(控制0的個(gè)數(shù))。
由于采用了具有遺傳變異功能的遺傳編程方法,使本發(fā)明的方法搜索空間范圍很大,從而保證了結(jié)果有很好的性能。
由于遺傳編程的內(nèi)在隨機(jī)性,使得通過一次次運(yùn)行,可以得到性能優(yōu)秀且互不相似的編碼器。
由于適應(yīng)度指標(biāo)可由用戶指定,使得本發(fā)明的應(yīng)用范圍很廣。
由于采用香農(nóng)熵為適應(yīng)度準(zhǔn)則,可以得到信息論的準(zhǔn)則下最復(fù)雜的編碼器,所以此編碼器在信息加密、Monte Carlo隨機(jī)模擬、彩票號碼生成等方面有很大的應(yīng)用前景。
由于采用了移動(dòng)通信中對多址正交碼的要求作為適應(yīng)度準(zhǔn)則,可得到很好的多址正交碼組。
由于此方法的高度適應(yīng)性和通用性,使得本發(fā)明在通信的廣泛領(lǐng)域中有很大的應(yīng)用價(jià)值,如衛(wèi)星通信和光通信中各種碼型的生成等。
圖3為本發(fā)明編程實(shí)現(xiàn)方法產(chǎn)生的編碼器輸出序列香農(nóng)熵隨著遺傳代數(shù)的變化曲線圖4為本發(fā)明編程實(shí)現(xiàn)方法在香農(nóng)準(zhǔn)則下產(chǎn)生的128位隨機(jī)序列編碼器輸出序列的自相關(guān)特性曲線圖5為本發(fā)明編程實(shí)現(xiàn)方法的多址正交碼自相關(guān)圖
(2)運(yùn)算符只限于{+,-,*,DIV,MOD},其中DIV是整除運(yùn)算符。并且,由于要考慮到特殊情況,故規(guī)定n MOD 0=1,n DIV 0=1,這樣無論何時(shí),進(jìn)化過程都會進(jìn)行下去。
(3)操作數(shù)只限于{0,1,2,3,j},其中j是編碼器的輸入,可取值是自然數(shù)集,當(dāng)j從1取到N時(shí)便得到一個(gè)序列,雖然這個(gè)序列開始演化時(shí)并不只由0,1組成,但演化到一定代數(shù),便會得到只輸出0,1的編碼器。比如我的一個(gè)結(jié)果(15代)為(二叉樹的先序遍歷序列)M++Dj+MDj2++MDj+13+Mj2MD+312-*0103M-+j31+++D0j*113M3-Dj213332畫成樹型如
圖1(由于紙面不夠,只能畫出一部分)。
由于我們要對一個(gè)編碼器群體進(jìn)行遺傳變異操作,那么首先我們必須隨機(jī)得到M個(gè)編碼器(M為群體的人口數(shù)),這是需要解決的的一個(gè)問題。
第二步,決定一個(gè)個(gè)體的適應(yīng)度。這個(gè)評判標(biāo)準(zhǔn)是由用戶根據(jù)他們的需要給出的。我們現(xiàn)在以香農(nóng)熵為例來說明。
對每一個(gè)樹型編碼器,若沒有輸入節(jié)點(diǎn)J,那么此編碼器輸出是常數(shù),我們將會看到此編碼器輸出序列香農(nóng)熵是零。若有輸入節(jié)點(diǎn)J,那么讓J從1連續(xù)取值到M(我的程序中取為5000),便得到一系列輸出值,將這些值按順序存儲起來。
我應(yīng)用了香農(nóng)準(zhǔn)則(當(dāng)然也可用其他準(zhǔn)則)對定字長(h)的序列,有2h種可能,當(dāng)每一種序列出現(xiàn)的概率相等時(shí),香農(nóng)熵最大,大小為h,即式子Eh=-∑philog2phj達(dá)到最大值h。由于我們要優(yōu)化字長小于k(本程序中k取7)的所有序列,故定義適應(yīng)度函數(shù)為Etotal=Σk[-Σphjlog2phj].]]>不難知道,Etotal的香農(nóng)極限值為k(k+1)2]]>。這樣對一個(gè)給定的編碼樹就得到它的適應(yīng)度。然后按照“個(gè)體被遺傳的概率與它的適應(yīng)度成正比”的法則來選擇被遺傳的個(gè)體。隨著代數(shù)的增加,得到的編碼器的輸出序列的香農(nóng)熵會逼近極限值,也就是說,編碼器會在香農(nóng)意義下逼近最優(yōu)。(事實(shí)上到第3代時(shí),得到的編碼器的輸出序列熵就達(dá)到25以上了,此后隨著代數(shù)的增加,熵以很慢的速度逼近極限值28)第三步,交叉和變異操作得到群體中每一個(gè)個(gè)體的適應(yīng)度后,就要進(jìn)行一次遺傳變異操作來得到下一代群體。首先,由于適應(yīng)度標(biāo)志了一個(gè)個(gè)體對環(huán)境的適應(yīng)程度,適應(yīng)度大的個(gè)體對環(huán)境較適應(yīng),它應(yīng)該更容易生存和遺傳到下一代中去。而這樣會帶來一個(gè)問題,適應(yīng)度大的個(gè)體有可能不被遺傳,而適應(yīng)度小的個(gè)體也有可能被遺傳(因?yàn)榫幊虒?shí)現(xiàn)時(shí)是通過隨機(jī)數(shù)來實(shí)現(xiàn)的),為了保持算法的穩(wěn)定性,我使適應(yīng)度排在前10%的個(gè)體一成不變的復(fù)制到下一代中,遺傳變異操作只對10%以后的個(gè)體進(jìn)行。
遺傳變異操作時(shí),先按照如上所述的選擇準(zhǔn)則,選擇一對雙親(parents),也就是說選定了兩棵樹,那么這兩個(gè)個(gè)體就要進(jìn)行交配,過程很清楚的顯示在圖2中需要注意的是,圖2(a)箭頭顯示的交叉點(diǎn)的位置也是隨機(jī)選擇的,以0.9的概率選擇操作符節(jié)點(diǎn),以0.1的概率選擇操作數(shù)節(jié)點(diǎn)。此外,由于要減少程序的運(yùn)行時(shí)間,交叉操作時(shí)要保證得到的兩棵樹深度不超過15。為了擴(kuò)大算法的選擇范圍,有時(shí)需要進(jìn)行變異操作,正如現(xiàn)實(shí)的自然界中,生物的突變發(fā)生的概率很小,所以我的程序中規(guī)定了個(gè)體發(fā)生變異的概率為0.1。
下面具體討論一下變異的具體實(shí)現(xiàn)由于一棵樹中節(jié)點(diǎn)有兩種類型,運(yùn)算符和操作數(shù),那么不難想象變異有兩種可能A.運(yùn)算符→操作數(shù)B.操作數(shù)→運(yùn)算符對情況A,原來運(yùn)算符節(jié)點(diǎn)下的左子樹和右子樹就要被刪除掉。對情況B,變異得到的運(yùn)算符節(jié)點(diǎn)必須新長出左右子樹,否則就是沒有意義的樹!而由于要減小程序運(yùn)行的規(guī)模,規(guī)定此情況中只長出兩個(gè)操作數(shù)節(jié)點(diǎn)。進(jìn)一步,變異節(jié)點(diǎn)的選擇和情況B中長出的左右子樹,也是具有隨機(jī)性的。
運(yùn)用此技術(shù)方案的運(yùn)行結(jié)果正如上文所說,本發(fā)明中,編碼器的適應(yīng)度指標(biāo)是由用戶指定的,用戶可根據(jù)需要自己改動(dòng)。以下以在香農(nóng)熵準(zhǔn)則下和在第三代移動(dòng)通信對多址碼的要求下的兩個(gè)具體實(shí)施方案分別給出運(yùn)行結(jié)果。
具體實(shí)施方案一以香農(nóng)熵為適應(yīng)度標(biāo)準(zhǔn)的運(yùn)行結(jié)果。
(1)圖3所示為一次運(yùn)行過程中,群體中性能最好的個(gè)體的輸出序列熵隨著遺傳代數(shù)的變化曲線。可見,算法的收斂速度是很快的。
(2)下面是與圖3同一次運(yùn)行中得到的128位隨機(jī)序列生成器(中序逆波蘭式)D1M-M+M+DM-2j2*Mj31Mj3j*13D-j13+DjM+M+*+jj1+M+-2jMj3j+j1+jM1+M*Mj311*2j+M+*33Mj3jDjM*13M-2jD+Dj3Dj33*Dj3M32j+M212此編碼器的輸出序列香農(nóng)熵達(dá)到27.9以上,在香農(nóng)意義下此編碼器是接近于最復(fù)雜的,而用Matlab軟件提供的隨機(jī)數(shù)發(fā)生器香農(nóng)熵只有22左右,而用移位寄存器產(chǎn)生的m序列的香農(nóng)熵小于20。
(3)圖4所示為與圖3同一次運(yùn)行中利用遺傳編程實(shí)現(xiàn)的128位隨機(jī)序列編碼器的輸出序列自相關(guān)特性曲線。
具體實(shí)施方案二以第三代移動(dòng)通信中對編碼的要求為適應(yīng)度標(biāo)準(zhǔn)的運(yùn)行結(jié)果。
本發(fā)明的靈活性很大程度上在于,它能根據(jù)用戶的不同需要生成滿足不同標(biāo)準(zhǔn)的編碼器。比如我們需要輸出序列自相關(guān)旁瓣很小的編碼器,這種編碼器在通信技術(shù)中有廣泛應(yīng)用,主要由于移動(dòng)通信中抗多徑時(shí)延的需要。
通信技術(shù)的目標(biāo)是實(shí)現(xiàn)個(gè)人通信,但無線頻率資源有限,如何在有限的頻帶中傳輸盡量多的信息,這個(gè)技術(shù)問題的解決很大程度上在于編碼的性能。在CDMA技術(shù)中,通過把不同的信號用相互正交的碼組擴(kuò)頻,然后將這些信號在同一個(gè)頻段中發(fā)送。在沒有解碼時(shí)這些信號是混疊的,甚至淹沒在噪聲中。然后接收機(jī)用相關(guān)器可以在混疊的信號中選出使用特定碼型的信號。在CDMA系統(tǒng)中同一小區(qū)的許多用戶以及相鄰小區(qū)的許多用戶都工作在同一頻率上,因而在頻率的使用效率上來說它是一種最有效的多址方式,但CDMA中的多址干擾仍然對系統(tǒng)的容量起制約作用,因?yàn)殡S著同時(shí)工作用戶的不斷增多,多址干擾電平必然越來越大,當(dāng)增加到一定程度時(shí),接收信號的信噪比將變得無法忍受。
所以設(shè)計(jì)出生成一定長度的正交碼組,變得很重要。然而考慮到無線通信信道中存在著嚴(yán)重的多徑效應(yīng),所以我們需要自相關(guān)性能很好的正交碼組。這樣這種碼既可以抗多址干擾,又可以抗多徑時(shí)延,將極大改善通信的性能。
事實(shí)上正是由于一組碼之間的不完全正交,才有遠(yuǎn)近干擾,如果碼的互相關(guān)為零,不同地址碼之間除了太靠近基站而阻塞基站接收,并不對其他用戶造成干擾,就不需要良好的功率控制,系統(tǒng)將簡化許多。
如果碼間的互相關(guān)性只有在對齊時(shí)為零,相差一位就不為零,這就限制了SCDMA的性能,因?yàn)闊o線信道中存在多徑傳播。
綜上,我們需要這樣一種性能的多址碼組(1)這類碼的自相關(guān)旁瓣壓得盡量小(2)碼組內(nèi)的任兩組碼,互相關(guān)很小。
(3)碼的密度盡量高。
這樣適應(yīng)度指標(biāo)可以確定為在一個(gè)碼組中找出自相關(guān)和互相關(guān)值中的最大值y,if y>a適應(yīng)度值=0(a是一個(gè)可調(diào)的值)else適應(yīng)度值=香農(nóng)熵-y(控制0的個(gè)數(shù))
以64位的碼組為例,給出一個(gè)正交碼組。00000000001000000000000001100000000000000000100100000000100000 (1)0000000001000000000000001100000000000000000001001000000001000000(2)0000000010000000000000011000000000000000000010010000000010000000(3)圖5所示為某個(gè)多址正交碼的自相關(guān)圖。此碼組內(nèi)碼與碼的互相關(guān)值控制在0,1之間。
當(dāng)然在實(shí)際應(yīng)用中我們需要的碼長度要長得多,達(dá)到千位乃至萬位以上。光通信中甚至需要十萬位的低密度碼。只要計(jì)算機(jī)足夠快,比如說并行機(jī),本發(fā)明也能夠勝任。
權(quán)利要求
1.用遺傳編程的方法生成滿足特定要求的編碼器,其特征在于采用以下方式(1)用一系列操作符和操作數(shù)隨機(jī)組成N個(gè)算式,每一個(gè)算式其實(shí)就是一個(gè)編碼器,其中N稱為群體規(guī)模數(shù);(2)一個(gè)編碼器有一個(gè)評價(jià)指標(biāo),也就是適應(yīng)度值,算出群體中N個(gè)個(gè)體的適應(yīng)度值,其評價(jià)指標(biāo)由用戶指定,且有什么評價(jià)指標(biāo)就會生成什么編碼器;(3)以適應(yīng)度值為基礎(chǔ),按照遺傳概率與適應(yīng)度值成正比的準(zhǔn)則算出每一個(gè)算式遺傳到下一代的概率。然后對此群體進(jìn)行遺傳變異操作演化出下一代群體。根據(jù)需要演化一定的代數(shù),將最終群體中適應(yīng)度最高的算式作為最終結(jié)果。
2.根據(jù)權(quán)利要求1所述的編碼器生成方法,其特征在于生成香農(nóng)意義下的最復(fù)雜序列編碼器,它采用的適應(yīng)度準(zhǔn)則為香農(nóng)準(zhǔn)則。
3.權(quán)力要求1所述的編碼器生成方法,其特征在于生成CDMA中的多址正交碼,它采用的適應(yīng)度準(zhǔn)則為在一個(gè)碼組中找出自相關(guān)和互相關(guān)值中的最大值y,if y>a,適應(yīng)度值=0(a是一個(gè)可調(diào)的值),else適應(yīng)度值=香農(nóng)熵-y(控制0的個(gè)數(shù))。
全文摘要
本發(fā)明公開了一種可生成指定性能序列編碼器的遺傳編程實(shí)現(xiàn)方法。用遺傳編程的方法生成滿足特定要求的編碼器,它采用以下方式(1)用一系列操作符和操作數(shù)隨機(jī)組成N個(gè)算式,每一個(gè)算式其實(shí)就是一個(gè)編碼器,其中N稱為群體規(guī)模數(shù);(2)一個(gè)編碼器有一個(gè)評價(jià)指標(biāo),也就是適應(yīng)度值,算出群體中N個(gè)個(gè)體的適應(yīng)度值,其評價(jià)指標(biāo)由用戶指定,且有什么評價(jià)指標(biāo)就會生成什么編碼器;(3)以適應(yīng)度值為基礎(chǔ),按照遺傳概率與適應(yīng)度值成正比的準(zhǔn)則算出每一個(gè)算式遺傳到下一代的概率。然后對此群體進(jìn)行遺傳變異操作演化出下一代群體。根據(jù)需要演化一定的代數(shù),將最終群體中適應(yīng)度最高的算式作為最終結(jié)果。
文檔編號H03M13/00GK1391413SQ0213801
公開日2003年1月15日 申請日期2002年7月26日 優(yōu)先權(quán)日2002年7月26日
發(fā)明者李曦田 申請人:李曦田