基因表達式編程(Gene Expression Programming,GEP)是由葡萄牙科學家Candida Ferreira 2001年提出來的一種新型遺傳算法,其特點是將基因型和表現型分離。GEP 繼承了GA的快速、易用和GP的易變、多能,比GA,GP提高速度100 - 1000000倍。而GEP與遺傳算法(GA)和遺傳編程(GP)的根本區別在於它們的個體性質不同,在GA中個體是固定長度的線性串(染色體),GP中個體是長度和形狀不同的非線性實體,而在GEP中個體編碼成固定長度的線性串(基因組或者染色體),然后被表達成不同長度和形狀的非線性實體(表達式樹)。相比之下,GEP具有染色體簡單,線性和緊湊、易於遺傳操作等特點。
GEP中有兩個主體:表達式樹和染色體,遺傳信息在染色體中,而表達式樹則是染色體的表達。因此,遺傳操作在固定長度的線性編碼的染色體上進行,而個體評價是在染色體解碼得到的表達式樹上進行,即操作和評價相分離。染色體由若干個基因組成,每個基因由頭部和尾部組成,頭部可以包含是函數符號和終結符號(包括編程中的輸入,常量,或者沒有參數的函數),尾部僅有終結符號。而且基因的起始點總是第一個符號,終止點並不一定是最后一個符號,終止點后的符號組成GEP基因的非編碼區。
GEP算法的過程是:先隨機產生初始化染色體,再將染色體換化成表達式樹,評價表達式樹,判斷是否已經進化成最終目標,是就輸出最終目標,否則利用輪盤賭進行選擇機確定下一代的個體,再利用遺傳操作,生成新一代染色體,回到第二步。
其中,對表達式評價就是要評測表達式計算得到的數據和訓練數據的符合程度。主要有兩個公式測評:基於絕對誤差的適應度函數和基於相對誤差的適應度函數,在GEP中,一般采用第二個公式。
進化遺傳操作包括復制和遺傳算子。復制算子只復制選擇算子所選擇的個體,不會產生基因的多樣性。GEP基因結構性和簡單線性編碼,使得GEP的遺傳算子比較豐富,主要有:變異、逆串、插串、根插串、基因插串、單點重組、雙點重組、基因重組等八大算子。所有的遺傳操作只要保證基因的合法結構,它就能解碼為合法的程序。
變異是在單個染色體上,對染色體的每一位進行隨機測試,如果滿足變異的概率,則重新產生該位的編碼。要注意的是,頭部變異時,可以選擇所有的符號;尾部變異時,只能選擇終結符。而GA的變異是不分頭和尾的。
插串是隨機在基因中選擇一段子串, 然后將該子串插入到頭部的隨機指定的一個位置(但不能是第0 個位置), 將頭部的其他符號向后順延, 超過頭部長度的編碼將被截去。
根插串算子從頭部的隨機選擇的一個位置開始向后掃描, 找到第一個函數, 然后以該位置為起始, 選擇一段子串,將該子串插入到第0 個位置, 頭部編碼依次后移, 超過頭部的部分被截去。如果掃描過程沒有找到函數, 則不做任何事情
基因插串是隨機選擇一個基因,把整個基因插到染色體的頭部。其余的基因依次順延,超出的基因被刪除。所有的遺傳操作中只有基因插串能夠移動一個完整的基因。
單點重組作用在兩個父代染色體上, 隨機選擇一個交叉位置, 互換交叉點后面的染色體部分, 得到兩個子代染色體。
雙點重組也是作用在兩個父代染色體上。在染色體上隨機選擇兩個交叉點, 然后互換交叉點之間的染色體部分。
基因重組只作用於多基因的染色體。隨機選擇一個基因, 然后交換兩個父代染色體的相對因的基因。
自從GEP首次引入以來,現在GEP有了更多的優化,很多問題也都采用GEP算法來解決。最新的研究有:韓嘯等人引入基因表達式編程算法,通過使用適當的遺傳算子,采用線性定長的編碼方式,構造新的智能組卷方法,以避免傳統組卷算法成功率低以及適應性差等問題,來解決多約束條件下試卷的分數分配、章節分配、難度等一系列問題。鄧磊等人提出了雙系統協同進化的基因表達式編程算法,該算法由自然進化系統和人工干預系統共同合作組成,人工干預系統包括個體干預和種群干預,也就是人工根據基因庫數據類型進行優勝劣汰的自然選擇,選擇目的為幫助人類更好地進化成長和淘汰掉不適應現階段發展需求的人類生存劣勢特征。 王傑等人利用基因表達式編程強大的函數挖掘能力,找出影響地鐵隧道土建造價的不確定因素與其延米造價之間的非線性關系,來構建預測模型估算車站區間隧道土建造價,進而估算整條地鐵線路隧道部分土建工程的造價。Iftikhar Azim等人利用用基因表達編程的顯着特征來建立RC梁柱子結構CAA能力的預測模型。
基因表達式編程的任務指派問題求解算法設計與實現 - 程序流程圖 - 博客園 https://www.cnblogs.com/java20130723/archive/2012/12/19/3211488.html
基因表達式編程——GEP_人工智能_GerHard 的博客-CSDN博客 https://blog.csdn.net/guohao_zhang/article/details/79543270?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
基因表達式編程算法及其應用研究pdf下載_愛問共享資料 https://ishare.iask.sina.com.cn/f/avllHMBTxFC.html
基因表達式編程GEP算法及其應用研究 - 圖文 - 百度文庫 https://wenku.baidu.com/view/c43e40758e9951e79b892755.html