国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python實現AI五子棋

Yangder / 744人閱讀

摘要:可以說,每個評估函數就是一個選手,對不同的棋型每個選手自然有不同的看法和應對措施,當然他們的棋力也就因此各不相同了。方搜索最大值,人類方搜索最小值。了解了上述原理之后,就可以自己寫代碼實現了。

公眾號:Charles的皮卡丘
作者:Charles

開發工具:
Python版本:3.6.4
相關模塊:
graphics模塊。

環境搭建:
安裝Python并添加到環境變量即可。

原理簡介:
對于五子棋這樣的博弈類AI,很自然的想法就是讓計算機把當前所有可能的情況都嘗試一遍,找到最優的落子點。這里有兩個問題:
(1)如何把所有可能的情況都嘗試一遍;
(2)如何定量判斷某落子點的優劣。
對于第一個問題,其實就是所謂的博弈樹搜索,對于第二個問題,其實就是所謂的選擇評估函數。評估函數的選取直接決定了AI算法的優劣,其形式也千變萬化。可以說,每個評估函數就是一個選手,對不同的棋型每個選手自然有不同的看法和應對措施,當然他們的棋力也就因此各不相同了。
但博弈樹搜索就比較固定了,其核心思想無非是讓計算機考慮當前局勢下之后N步所有可能的情況,其中奇數步(因為現在輪到AI下)要讓AI方的得分最大,偶數步要讓AI方的得分最小(因為對手也就是人類,也可以選擇最優策略)。
當然這樣的搜索其計算量是極大的,這時候就需要剪枝來減少計算量。例如下圖:

其中A代表AI方,P代表人類方。AI方搜索最大值,人類方搜索最小值。因此Layer3的A1向下搜索的最終結果為4,Layer3的A2向下搜索,先搜索Layer4的P3,獲得的分值為6,考慮到Layer2的P1向下搜索時取Layer3的A1和A2中的較小值,而Layer3的A2搜索完Layer4的P3時,其值就已經必大于Layer3的A1了,就沒有搜索下去的必要了,因此Layer3到Layer4的路徑3就可以剪掉了。
上述搜索策略其實質就是:
minimax算法+alpha-beta剪枝算法。
了解了上述原理之后,就可以自己寫代碼實現了。當然實際實現過程中,我做了一些簡化,但萬變不離其宗,其核心思想都是一樣的。

視頻演示:
https://mp.weixin.qq.com/s/Y9...

源代碼:
關注公眾號:Charles的皮卡丘,回復“AI五子棋”獲取。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41942.html

相關文章

  • BetaMeow----利用機器學習做子棋AI

    摘要:簡言之,機器學習是內功,而數據挖掘則是機器學習的一種用途。但本質上是我在學習機器學習方面的實戰項目,所以我想辦法利用機器學習的方面的算法實現。 BetaMeow的起源 前段時間AlphaGo和李世石廣受關注,作為人工智能的腦殘粉,看完比賽后激動不已,因為有一定的機器學習的基礎,便打算擼一個棋類的AI,但我還算有點自知之明,圍棋AI,甚至google打算做得通用AI是做不出的了,所以打算...

    bingchen 評論0 收藏0
  • python有趣的小項目匯總

    摘要:作者微信公眾號的皮卡丘歡迎大家搜索關注知乎圖像類畫畫實現手寫筆記的壓縮與增強實現簡單的車牌檢測算法類實現版貪吃蛇實現五子棋初版信息安全類簡單實現隱寫術使用破解滑塊驗證碼其他制作簡易瀏覽器實現浪漫表白實現地理信息可視化簡單分析高考數據制作簡易 作者:Charles微信公眾號:Charles的皮卡丘(歡迎大家搜索關注)知乎:https://zhuanlan.zhihu.com/p/... ...

    yiliang 評論0 收藏0
  • 練習項目備選清單

    摘要:練習項目備選清單文件下載器功能概要設計實現新建下載功能以為基礎給出下載鏈接可以啟動下載任務實現局域網內下載傳輸文件以單線程下載方式實現附加功能支持斷點續傳實現多線程下載實現下載參考技術套接字編程多線程編程音視頻播放器功能概要設計實現播放常見 練習項目備選清單 Utilities 1. 文件下載器 功能概要設計: 實現新建下載功能(以ftp為基礎) 給出下載鏈接可以啟動下載任務 實現局...

    guyan0319 評論0 收藏0
  • 練習項目備選清單

    摘要:練習項目備選清單文件下載器功能概要設計實現新建下載功能以為基礎給出下載鏈接可以啟動下載任務實現局域網內下載傳輸文件以單線程下載方式實現附加功能支持斷點續傳實現多線程下載實現下載參考技術套接字編程多線程編程音視頻播放器功能概要設計實現播放常見 練習項目備選清單 Utilities 1. 文件下載器 功能概要設計: 實現新建下載功能(以ftp為基礎) 給出下載鏈接可以啟動下載任務 實現局...

    peixn 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<