Renascence架構原理 遺傳規劃演算法

2021-09-23 20:04:34 字數 790 閱讀 8387

請先看一下遺傳演算法:

遺傳規劃/遺傳程式設計(genetic programming)是遺傳演算法的乙個分支,與遺傳演算法中每個個體是一段染色體編碼不同,它的個體是乙個電腦程式。

維基上說它在70年代就已經有人實踐,不過正式提出應該還是在john r. koza教授於2023年發表的博士**中。

遺傳規劃最早的應用是符號回歸,比如為了擬合 z=f(x,y),它生成乙個初始函式 g(x,y),然後以g(x,y)與z的相關係數為適應度,進行選擇交叉變異,最終得到最優的乙個函式g』,再做一次線性回歸即可。

如下是gp表示的乙個例子,自然,還有其他的表達方式:

線型:gep(gene expression programming),

圖型:cgp(cartesian genetic programming)。

以樹型為例:

這棵樹表示乙個函式,就是上面所述的g(x,y),至於怎麼用就見仁見智了,確定好用法之後設定乙個計算適應度的方案,就可以跑遺傳規劃了。

在遺傳規劃中,選擇運算元與遺傳演算法的相同,交叉變異需要根據表達方式來。

樹形的交叉實現是這樣:

變異實現是這樣:

Renascence架構原理 遺傳規劃演算法

請先看一下遺傳演算法 遺傳規劃 遺傳程式設計 genetic programming 是遺傳演算法的乙個分支,與遺傳演算法中每個個體是一段染色體編碼不同,它的個體是乙個電腦程式。維基上說它在70年代就已經有人實踐,不過正式提出應該還是在john r.koza教授於1990年發表的博士 中。遺傳規劃最...

Elasticsearch 架構原理

elasticsearch的一些架構設計,對我們做效能調優 故障處理,具有非常重要的影響。下面將從elasticsearch的準實時索引的實現 自動發現 rounting和replica的讀寫過程,shard的allocate控制 在傳統的資料庫中,乙個欄位存乙個值,但是這對於全文搜尋是不足的。想要...

Elasticsearch 架構原理

elasticsearch的一些架構設計,對我們做效能調優 故障處理,具有非常重要的影響。下面將從elasticsearch的準實時索引的實現 自動發現 rounting和replica的讀寫過程,shard的allocate控制 在傳統的資料庫中,乙個欄位存乙個值,但是這對於全文搜尋是不足的。想要...