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