本文轉載至知乎ID:Charles(白露未晞)知乎個人專欄
本文轉載至知乎ID:Charles(白露未晞)知乎個人專欄
下載W3Cschool手機App,0基礎隨時隨地學編程>>戳此了解
導語大家新年快樂呀~~~
T_T
大年三十終于偷得半日清閑想起來有些日子沒更公眾號了~~~
So,來更一波文章hhhhh~~~
之前貌似水了好幾篇以Python能干嘛為主要目的的文章,那么就再來水一篇吧~~~
這篇文章的技術含量依舊不高,算是AI入門級的內(nèi)容,idea源自于(T_T我也忘了)。。。
純Python實現(xiàn),不依賴于任何深度學習框架。。。
算了,直接進入正題吧!
相關文件
百度網(wǎng)盤鏈接: https://pan.baidu.com/s/1UIV51eSD3ixqAuVqRC7z8g
密碼: fmtv
參考文獻
(1)neuro-evolution
https://en.wikipedia.org/wiki/Neuroevolution
主要思路
游戲思路:
讓我方飛機自動躲避屏幕上方飛來的敵機。
實現(xiàn)方式:
(1)利用簡單的神經(jīng)網(wǎng)絡來決定飛機的行動方式;
(2)利用neuro-evolution算法來提高神經(jīng)網(wǎng)絡的性能,該算法核心類似于達爾文的進化論,隨機生成種群后選擇優(yōu)秀個體進行雜交變異獲得新的種群,如此反復循環(huán)。
具體思路和實現(xiàn)方式詳見源代碼。
開發(fā)工具
Python版本:3.5.4
相關模塊:
win_unicode_console模塊、pygame模塊以及一些Python自帶的模塊。
環(huán)境搭建
安裝Python并添加到環(huán)境變量,pip安裝需要的相關模塊即可。
使用演示
在cmd窗口運行main.py文件即可:
若效果不佳,請自行修改NeuroEvolution.py文件中相關參數(shù),如下圖所示:
當然你也可以修改main.py文件中敵機的生成位置:
飛機最后會在不生成敵機的位置區(qū)域運動:
更多
算法真的真的寫的很簡陋且丑。。。
So,
沒有任何實際使用價值。。。
有興趣的小伙伴可以進一步優(yōu)化和擴展這個AI游戲,當然也歡迎后臺留言交流。。。
可優(yōu)化的內(nèi)容舉例:
(1)優(yōu)化新基因的生成方式;
(2)相關參數(shù)隨著進化過程不斷改變等。