多面無限基因表達式編程(MIGEP)

多面無限基因表達式編程(MIGEP)

蘇  啓

(海南大學,學歷本科,聯繫方式:[email protected],15595971535)

這是一篇關於中國傳統文化在科學研究實踐中應用的文章,希望所有領域的科研工作者都能看到並得到啓發!

摘要:提出一種全新的多面無限基因表達式編程編碼方法(MIGEP),以統一數據單元編碼同時表示節點、葉子、爪子等多種基因遺傳信息,解碼表現型採用無限循環樹結構。MIGEP具有與GA一樣的簡單編碼,極低的算法約束,有無限多的表現型,與GEP相比計算效率更高,多樣性、全局最優發現能力更強。

關鍵詞:基因表達式編程;遺傳編程;遺傳算法;遺傳進化計算;

Multidimensional Infinite Gene Expression Programming(MIGEP)

Qi Su

(Hainan University,Bachelor degree,Contact information:[email protected],15595971535

This is an article about the application of Chinese traditional culture in scientific research practice. I hope that researchers in all fields can see and get inspiration!

AbstractAn new encoding method was proposed for multidimensional infinite gene expression programming. Unified data unit coding is used to represent genetic information of nodes, leaves, claws and other genes at the same time, and infinite cyclic tree structure is used to decode the phenotype. MIGEP has the same simple coding as GA, very low algorithmic constraints, and has infinite phenotypes. Compared with GEP, MIGEP has higher computational efficiency, more diversity and better global optimal discovery ability.

Key wordsGene Expression Programming;Genetic Programming; Genetic Algorithm;Genetic Evolutionary Algorithms;

0、引言

基因表達式編程(gene expression programming,GEP)在遺傳進化算法領域以其結合了傳統遺傳算法 (genetic algorithm,GA)及遺傳編程(geneticprogramming,GP)的優勢,體現出相對簡單的編碼方式和較高的計算效率,在自動編程、函數發現、優化、分類等衆多應用領域取得了豐碩成果。

但GEP編碼的基因型存在結構排列順序、基因頭部和尾部長度相關聯及節點(函數符)、葉子(終結符)基因位區分等約束要求,解碼時受到基因長度、基因內區等限制,導致GEP多樣性受到限制,編碼、解碼等遺傳進化計算效率無法提高。

本文提出一種全新的多面無限基因表達式編程編碼方法(MIGEP),以統一數據單元編碼同時表示節點、葉子、爪子等多種基因遺傳信息,解碼表現型採用無限循環樹結構,完全破解了GEP的相關約束條件。MIGEP具有與GA一樣的簡單編碼,極低的算法約束,有無限多的表現型,與GEP相比計算效率更高,多樣性、全局最優發現能力更強。

1、遺傳進化算法簡介

遺傳進化算法是一種模擬生物優勝劣汰進化發展的計算機搜索算法。主要經歷了遺傳算法(GA)、遺傳編程(GP)、基因表達式編程(GEP)、多表達式編程(MEP)等發展階段。

算法的核心結構是:1)對現實問題進行編碼,並隨機形成大量編碼後的染色體(含基因)羣體;2)對編碼後的染色體種羣進行遺傳進化計算,主要包括遺傳選擇、交叉(重組)、變異、解碼表現型、適應度計算等過程;3)產生新的種羣,再對其重複進行遺傳進化計算,直到種羣中出現滿足所需問題解的染色體個體,並對其解碼得到問題的現實解。

其中的第2部分是遺傳進化計算需要重複循環執行的內容,因此編碼、解碼、適應度計算、交叉變異等成爲影響算法計算效率的關鍵,而編碼、解碼是關鍵之核心。

GEP正是由於編碼解碼方式和效率而優越於GP,本文提出的MIGEP算法對編碼解碼進行全新變革,在計算效率、全局多樣性等各方面比GEP算法提高一個層次。

2、MIGEP的多面性

★(本節爲全文的重點,請讀者對其思想內涵反覆思考。)

以GEP的單基因染色體爲例,基因的編碼特點爲頭部+尾部,頭部由函數符集(以下簡稱節點)和終結符集(以下簡稱葉子)組成,尾部必須由終結符集(葉子)組成,假設基因頭部長度爲h,尾部長度t,n爲函數符集(節點)中函數的最大參數目數。必須t=h∗(n−1)+1才能保證基因的合法性。基因解碼時從頭部開始依次將基因位從上到下從左到右構建樹結構如圖1示例。

 

可見GEP編碼存在以下限制:

1)基因區分頭部和尾部

2)頭部和尾部長度必須保持一定比例關係

3)每個基因位區分節點和葉子

以上限制中最根本的原因是第3點的基因位區分節點和葉子,從而導致一系列其他限制。

在中國傳統文化中有陰陽理論思維,即陰陽本爲一體,只是人類看問題的正反面、看問題的角度不同得到不同的結果。

圖1中GEP的基因編碼在實際計算機編程的內存中每個基因位是以一個數據單位存儲,例如以一個字節數據存儲一個基因位。存儲的數據本身並未區分節點或葉子,只是“單純的數據”沒有任何意義和概念,我們人爲的把這個“數據”看成“節點”,把那個“數據”看成“葉子”。

事實上無論節點還是葉子它們都是“數據”,只是我們從不同方面去看它去定義它而已。

既然我們能把一個基因位的“數據”看成是“節點”,那麼也可以把它看成“葉子”,本文的MIGEP編碼正是基於這一思維而建立。

MIGEP的單一基因染色體編碼示例如圖2上示,假設節點集爲+-×÷四種,葉子集合爲abcde五種。當把圖2上的數據1“看成節點”時,它只能爲4種函數符之一,使用一些“數學方法”可以設定該數據對4求餘數表示具體節點,“數據1”表示mod(127,4)=3代表節點×函數符。當把“數據1”“看成葉子”時,它爲5種葉子之一,同理mod(127,5)=2代表葉子b。其它數據同理可得出從不同方面看到的結果如圖2上示。

MIGEP編碼方法不再區分節點還是葉子,也就沒有基因頭部和尾部之分,也沒有頭尾長度的限制關係,基因不存在是否合法的問題,徹底解放了基因編碼數據,其染色體與GA的染色體一樣簡單,且幾乎無任何約束條件。

 

3、MIGEP的無限表現性

MIGEP編碼的多面性獲得無約束染色體,接下來需要將染色體轉化成樹結構進行解碼。

這裏先引入一個“爪子”的概念(類似於MEP編碼的“基因序號”[1])。節點集(函數符集)的每個函數符都需要操作數,例如+函數符需要2個操作數才能相加、sin(x)函數符需要1個操作數、if(a1>a2) a3 else a4函數符則需要4個操作數等等,函數符就像伸出固定數量的爪子抓住操作數才能成爲完整的結構,因此定義“爪子”就是函數符指向所需操作數的指針。

根據MIGEP的多面性原理,我們也可以將“數據”看成是“爪子”,如圖2上所示,例如每個函數符的操作數都爲2個即爪子數爲2個,而每個爪子只能在7個數據(基因長度)中獲取,兩個爪子的重複排列可能性是7*7=49種,使用一些“數學方法”,當把“數據1”看成“爪子”時,它爲49種排列之一,同理mod(127,49)=29,29=4*7+1代表4和1兩個爪子分別指向“數據4”和“數據1”。其它數據同理可得出對應的爪子指針指向特定數據,結果如圖2上示。

有了“節點”、“葉子”和“爪子”就可以解碼構建樹結構,解碼構建樹結構的方法有很多,例如解碼方法可以是對染色體每個數據都看成“節點”,從左到右依次解碼成子樹結構,每個子樹結構都對應一個問題解。如圖2下所示,“數據1”是“節點”×,它也是“爪子”4,1,可構建成子樹“數據4”ד數據1”(數據看作“葉子”)即是c×b;接着繼續解碼“數據2”是“節點”÷,它也是“爪子”1,2,可構建成子樹“數據1”÷“數據2”即是b÷a;同理按順序解碼全部數據,完成1次循環解碼,結果如圖2下所示。

爲了得到更高層次的樹結構,可以進行第2次循環解碼,同樣依次從左到右再次解碼成子樹結構,但此次解碼時“爪子”指向的數據不再看成是“葉子”,而是對上次循環時已經構建子樹結構的引用,以此構成更復雜的子樹結構,如圖2下所示。同理可進行第3次及更多次循環解碼。

以上只是提出MIGEP解碼樹結構的一種方式,由於染色體基因數據不區分類別(節點、葉子、爪子),可以看成任何類別,解碼方式是不受約束的,事實上可以進行無限多種可能方式的基因表現型解碼構建完全不同的子樹結構,因此MIGEP具有無限表現型的特性。

4、實驗結果的優越性

使用MIGEP和GEP在同樣計算條件下對相同問題進行實驗對比。

算法運行環境:Intel(R) Core(TM) i5-4200U CPU @ 1.60GHz

解決問題:函數發現

算法參數:表0

參數

類型

GEP

MIGEP

算法運行次數

100

100

最大進化輩數

1000

1000

種羣大小

50

50

訓練集數

20

20

函數集合

+-*/

+-*/

基因數量

1

1

基因長度

頭部長度16,基因總長度33

基因長度15,基因循環2次解碼總長度30

 

 

 

實驗1:解決問題:測試函數f(X, Y)=X3−X2*Y+Y。[2]根據測試函數隨機產生20個樣本,自變量取值範圍均爲[−10,10]。其他參數如表0。實驗結果如表1所示。

表1:

算法

總運行時間(秒)

發現成功率

平均成功輩數

平均成功時間

最小進化輩數

最大進化輩數

GEP

114.626

99%

133.96

0.019

3

863

MIGEP

115.776

100%

40.13

0.019

1

115

實驗2:解決問題:測試函數f(X, Y)=X5+3*X*Y。[3]根據測試函數隨機產生20個樣本,自變量取值範圍均爲[−3,3]。其他參數如表0。實驗結果如表2所示。

表2:

算法

總運行時間(秒)

發現成功率

平均成功輩數

平均成功時間

最小進化輩數

最大進化輩數

GEP

71.959

7%

461.286

0.023

193

967

MIGEP

290.449

97%

418.072

0.048

75

938

4.1多樣性及全局最優發現能力

在同樣的計算條件和表0的統一算法參數情況下,通過實驗1和實驗2,分別得出表1和表2的實驗結果對比。

可見MIGEP在基因長度爲15是GEP基因長度33的一半的情況下,MIGEP算法的表達空間[2]是GEP算法的30倍,具有30倍的多樣性。算法的函數“發現成功率”比GEP更高, “平均成功輩數”、“最小進化輩數”、“最大進化輩數”更低,特別是高次冪函數發現能力更穩定,全局最優發現能力更強。

4.2運算效率

MIGEP算法的表達空間(子樹的數量)的提高必然消耗更多的算法計算時間,但實驗結果與GEP相比MIGEP的“總運行時間”及“平均成功時間”並沒有大幅度等比例提高,可見MIGEP遺傳算法的運算效率相對更高。

5、結束語

本文提出的全新的多面無限基因表達式編程編碼方法(MIGEP),其解碼方式不受限制,可以進行無限多種可能方式的基因表現型解碼構建完全不同的樹結構,下一步的研究可探索不同解碼方式下的算法性能。

本文是受中國傳統文化陰陽理論思維的啓發,是中國傳統文化在科學研究實踐中的應用,對其他科研領域的研究同樣能起到極大的創新性突破性的幫助。

宇宙中的萬事萬物本身並沒有定義和概念,只是我們人類自己主觀賦予它們定義和概念,這些定義和概念同時也在束縛着我們的思想!

 

參考文獻:

[1] 張建偉、張穎江等. 多表達式編程[J].武漢理工大學學報信息與管理工程版,2007,29(2):57-61.

[2] 向 勇、唐常傑等. 內嵌基因表達式編程及其在函數發現中的應用[J].電子科技大學學報,2011,40(1):116-121.

[3] 彭京、唐常傑等.基於重疊表達的多基因進化算法計[J].計算機學報,2007,30(5):775-785.

 

特別聲明:

1、本人業餘愛好,閒暇時間進行研究,本算法於2014年構思,斷斷續續至2016年完成,2019年3月5日公開,2019年3月14日在全網絡正式公佈;

2、本人不發表論文,不爲名利,但反對學術腐敗,凡是引用、參考或啓發於本算法的發表論文必須註明或說明出處,這是科研工作者的最基本道德!否則保留追訴權利。

3、中國傳統文化博大精深,是指引科研工作的明燈,是科研人員的靈魂,本文是中國傳統文化指導科研實踐的實例,歡迎將本文廣爲傳播,爲中國乃至世界科研貢獻一份微薄之力。

4、本人堅決反對任何形式的學術壟斷、剝削、迫害,我們不僅要文化自信更應科研自信!

本文網頁地址https://blog.csdn.net/weixin_43213914/article/details/88530521

歡迎加入遺傳算法人工智能QQ羣:133511424,相互學習探討研究。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章