笛卡爾遺傳規划Cartesian Genetic Programming (CGP)簡單理解(1)


初識遺傳算法Genetic Algorithm(GA)

  遺傳算法是計算數學中用於解決最優化的搜索算法,是進化算法的一種。進化算法借鑒了進化生物學中的一些現象而發展起來的,這些現象包括遺傳、突變、自然選擇以及雜交等,是一個通過計算機模擬解決最優化問題的過程,遺傳算法從代表問題可能存在的一個解集的一個種群(population)開始的,一個種群由一定數量的候選解也稱為個體(individual)組成,個體由基因(gene)編碼而成,基因的表現形式實際上是每個個體上帶有的染色體(chromosome) 染色體即為基因的集合,應用遺傳算法的一般步驟是:1.需要實現表現形到基因型的編碼工作,常用編碼方法有二進制編碼、格雷碼編碼、浮點編碼和符號編碼。2.進化從隨機個體(初代種群)的種群開始,之后一代一代進化。按照優勝劣汰的准則在每一代中,評價整個種群的適應度(fitness),從當前種群中選擇(selection)多個個體(基於它們的適應度)。3.借助於自然遺傳學的遺傳算子(genetic operators)進行組合交叉(crossover)變異(mutation) 產生新的種群,該種群在算法的下一次迭代中成為新的種群。4.在末代種群中的最優個體通過解碼(decoding)產生最優解

框圖

笛卡爾遺傳規划介紹

  笛卡爾遺傳規划源自 Miller 等人對進化數字電路的發展。1999 年出現了專門研究笛卡爾遺傳規划的團隊2000 年由 Miller 等人發表了Cartesian Genetic Programming,正式提出了笛卡爾遺傳規划的一般形式。笛卡爾遺傳規划由一個帶索引節點的有向圖表示,這是一個有n個輸入m個輸出的有向圖(directed graph),其中輸入節點的下標為 0 到 n-1,輸出由最后一列的m個節點得到。有向圖的每個節點都由 4 個正整數組成,其中包含 2 個輸入位、1 個參數位和 1 個用來索引使用函數的函數索引位。每個節點通過兩個輸入、一個參數並通過所選函數計算出節點的輸出。如圖所示該個體的染色體的基因型由這些節點組成,有向圖的大小為\(r\times c\),其中同一列的節點不可以互相連接,節點只能向前連接,不同列的節點的連接限制為Levels-back(例如Levels-back = 2 那么第i列的節點最多可以連接到i-2列)。不同個體之間可以交叉、變異等一系列遺傳變換產生新的個體。

框圖

通常選用具有一行任意列的縱深形式的CGP網絡,一般來說節點函數的元數一般與節點輸入個數相同

框圖

Reference:

[1] Miller, Julian F. "Cartesian genetic programming." Cartesian Genetic Programming. Springer, Berlin, Heidelberg, 2011. 17-34. Online Tutorials:PPSN 2014 Tutorial

未完待續。。。。。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM