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