定義長度
在遺傳演算法和遺傳編程裡面,定義長度(defining length)[1] L(H) 是指在一個架構"H"裡面,兩個定義符號(defining symbol)最遠的距離 (這裡的定義符號是指有一個固定值的符號, 對應有一些符號—— 一般以#或*表示 ——可以代表任意值) 。在樹GP(tree GP,GP代表遺傳演算法)架構裡面, L(H)則是在架構H裡面,包含所有不是"="的符號,最小樹片段的連接數。[2]
範例
編輯架構 "00##0","1###1","01###",和 "##0##" 的定義長度分別為4,4,1和0。換句話說,將最後一個出現的定義符號減去第一個出現的定義符號的位置所算出來的值。
在遺傳演算法內,當預期的解答其定義長度增加時,依靠突變或交配[3](英文: 交叉 (遺傳算法))能獲得解答的機會也會隨之下降。
參考資料
編輯- ^ web.nchu.edu.tw/~sychou/DataMining/Genetics.ppt
- ^ Foundations of Genetic Programming. UCL UK. [13 July 2010]. (原始內容存檔於2010-10-17).
- ^ http://homepage.fudan.edu.cn/~pandeng/index/pub/Genetic%20Algorithm%20with%20Multiple%20Individuals%20Crossover.pdf[永久失效連結]