這篇文章主要介紹了PHP寫遺傳演算法 ,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
本文嘗試用PHP語言編寫遺傳演算法
遺傳演算法的具體介紹,請自行搜尋,本文也沒有完全按照網路上的寫法做,作者水平有限,使用的中間演算法也都不怎麼高明,請各位帶著批評看文章。
本文採用的遺傳演算法步驟
- ①初始種群
- ②淘汰
- ③交叉
- ④變異
- ⑤重建種群并迭代②-④步
- ⑥畫圖等額外操作
第一節 故事前情與演算法梗概
一、故事前情
本文引入某大神關於扇貝的故事,PHP代碼大致也是這麼寫的。
某海灘上有一群扇貝無憂慮的生活著,上帝閑來無事派bob過來用遺傳演算法整這群扇貝,bob來了之後,給扇貝提了要求:
①你們只能有16個扇貝,每一代我要殺死2個,哪2個貝殼上的圖案最不像Google瀏覽器表徵圖我就殺誰;
②剩餘的14個中有4個扇貝兩兩結合生2個孩子,再湊夠16個,如此迴圈;
這些扇貝很是苦惱啊,可是又有什麼辦法呢,一些扇貝離開了,之後正好留下來16個,就是這些扇貝,創造了後來的chrome扇貝。
二、演算法梗概
遺傳演算法類比達爾文孟德斯鳩這類神人的遺傳學規律,對種群進行篩選,繁殖,變異,如此經過多代,即可培育出那些符合規則的目標。
遺傳演算法的
第一步是要建立初始種群,初始種群可以是隨機建立的,比如故事中最開始的16個扇貝。
第二步是建立淘汰機制,也就是篩選程式,為此我們為扇貝增加一個適應度屬性,也就是扇貝背上的圖案,與我們的chrome表徵圖有多像,這裡的適應度計算標準為,像素點4通道差值(絕對值)之和,4通道包含透明通道。
本文嘗試用PHP語言編寫遺傳演算法
遺傳演算法的具體介紹,請自行搜尋,本文也沒有完全按照網路上的寫法做,作者水平有限,使用的中間演算法也都不怎麼高明,請各位帶著批評看文章。
本文採用的遺傳演算法步驟
- ①初始種群
- ②淘汰
- ③交叉
- ④變異
- ⑤重建種群并迭代②-④步
- ⑥畫圖等額外操作
第一節 故事前情與演算法梗概
一、故事前情
本文引入某大神關於扇貝的故事,PHP代碼大致也是這麼寫的。
某海灘上有一群扇貝無憂慮的生活著,上帝閑來無事派bob過來用遺傳演算法整這群扇貝,bob來了之後,給扇貝提了要求:
①你們只能有16個扇貝,每一代我要殺死2個,哪2個貝殼上的圖案最不像Google瀏覽器表徵圖我就殺誰;
②剩餘的14個中有4個扇貝兩兩結合生2個孩子,再湊夠16個,如此迴圈;
這些扇貝很是苦惱啊,可是又有什麼辦法呢,一些扇貝離開了,之後正好留下來16個,就是這些扇貝,創造了後來的chrome扇貝。
二、演算法梗概
遺傳演算法類比達爾文孟德斯鳩這類神人的遺傳學規律,對種群進行篩選,繁殖,變異,如此經過多代,即可培育出那些符合規則的目標。
遺傳演算法的
第一步是要建立初始種群,初始種群可以是隨機建立的,比如故事中最開始的16個扇貝。
第二步是建立淘汰機制,也就是篩選程式,為此我們為扇貝增加一個適應度屬性,也就是扇貝背上的圖案,與我們的chrome表徵圖有多像,這裡的適應度計算標準為,像素點4通道差值(絕對值)之和,4通道包含透明通道。