Discuz! Board

 找回密碼
 立即註冊
搜索
熱搜: 活動 交友 discuz
查看: 259|回復: 0
打印 上一主題 下一主題

博弈遊戲的AI設計(一):极大极小树

[複製鏈接]

2679

主題

2681

帖子

8139

積分

管理員

Rank: 9Rank: 9Rank: 9

積分
8139
跳轉到指定樓層
樓主
發表於 2023-8-23 16:09:30 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
博弈树作為傳统AI范畴的一個傳统又經典的算法,有着遍及的利用,特别是棋類AI。記得曾刚學C说话的時辰,用节制台写了一個五子棋的步伐。厥後突發奇想,给它增长可以人機對战的AI,設計了一個简略的按照當前場合排場果断最優落子的AI。可是只能按摩枕,想到两手棋。為了提高AI的智商,進修了博弈树這個数据布局,如今给大師分享一下。

本文拿棋類遊戲的AI設計作為布景,具體先容AI的設計進程,引入一種叫做博弈树的数据布局,和α-β剪枝在博弈树它上面的利用。

博弈树重要利用在触及两边相互博弈、匹敌的遊戲中。既然在遊戲AI內里利用遍及,接下来咱們连系详细遊戲,来先容。

起首先容一個根基的数据布局,叫做极大极小树(Min-Max Tree)

在設計匹敌AI的遊戲進程中,凡是假如两边都是智商顶级的妙手。是以,默许敌我两边都可以或许按照當前的場合排場,做出對本身一方最有益的决议计劃。

但是,博弈凡是是两边匹敌,乃至是零和的博弈。也就是说,對對方最有益的决议计劃,反過来就是對我方最晦氣的場合排場。在轮到咱們做出决议计劃的時辰,咱們凡是但愿最大化咱們的收益,叫做极大层,此時树的节點叫做极大层节點;在敌手做决议计劃的時辰,敌手但愿最小化咱們的收益,叫做极小层,此時树的节點叫做极小层节點。因為两边是瓜代做出决议计劃,是以极大层、极小层凡是是瓜代呈現,如许的数据布局就叫做极大极小树(Min-Max Tree)

假如咱們已有一個评價每種决议计劃的收益的估值函数。對付极大层节點,若是咱們晓得了它的每步决议计劃的收益值,那末它老是會選擇收益最大的阿谁决议计劃,作為它的节點的收益值;反過来,對付极小层节點,它老是會選擇收益最小的(對我方收益最小,就是對方收益最大)阿谁决议计劃。

举個最简略的例子,分硬币遊戲。

遊戲法则是:一堆硬币,两边轮番将它分成巨细不克不及相称的两堆,然後下一小我筛選肆意一堆继续分下去,两边瓜代遊戲,直到此中一小我没法继续分下去,则對方得到成功。

假如咱們刚起頭有一堆7枚硬币,轮到我方先分。我必要找到我當前應當怎样样分這堆硬币。或说,必要找到當前可以或许得到最優收益的决议计劃,咱們經由過程機關出一棵极大极小树来做到。

起首,咱們穷举所有的可能的状况。用矩形代表轮到我方做决议计劃的极大层节點,用圆形代表轮到對方做决议计劃的极小层节點,罗列出所有的状况:

注重,到這里咱們尚未举行估值 ,是以這還不算是极大极小树。下面咱們来設計這個遊戲的估值函数,很简略,若是當前場合排場,咱們已赢了,那末收益為+1,若是咱們输掉了,那末收益為-1,這個遊戲没有平手,以是只可能有這两種收益值。

刚起頭估值的時辰,咱們還位於根节點,咱們對付整棵树是全無所聞的,就像下面如许:

咱們想要得到根节點的估值,必要對根节點的子节點举行遍历,起首對第一個子节點举行遍历,發明仍是不克不及果断它的值,继续遍历(深度優先)它的子节點,直到达到叶子节點:

到了叶子节點,咱們可以對它举行估值了,由於此時是极小层,必要敌手举行决议计劃,可是敌手已没法再继续分下去了。以是,它的收益值為+1:

如许得到了第一個叶子节點的估值,因為它的父节點只有独一一個子节點,是以父节點的收益值也只能是+1,然後可以一向回溯上去,台北外送茶,直到达到赤色的节點:

此時,咱們不克不及直接给赤色节點赋值了,由於它另有此外子节點,咱們继续遍历它的子节點:

遍历到又一個叶子节點,發明它的收益是-1(我方失败),再回溯归去:

如今咱們又回到了赤色节點,如今它的所有子节點的收益值都已得到了。注重,這個节點是一個极大层节點。咱們说過,极大层节點老是會選擇收益最大的子节點,它的子节點一個是+1一個是-1,是以,它的值應當是最大的阿谁+1。咱們继续依照深度優先的次序遍历:

到這里,當前赤色的节點是一個极小层节點,它老是選擇收益最小的决议计劃,是以它的收益值是-1。 接下来,咱們继续依照這個思绪举行遍历,中心的進程我就省略了,最後的成果以下所示:

到這里,咱們的极大极小树已構建完成為了。

咱們發明,當前的根节點的收益值竟然是-1,也就是说,只要對方够聪慧,咱們不管若何都没法取胜。

這就很失望了,可是细心想一想,咱們假如的條件是,對方是聪慧尽頭,不出错误的妙手。

咱們晓得不管若何城市失败,那可不成以赌對方會出错呢。

如许一想,實在3種必败的决议计劃仍是有必定的好坏性的。好比,最右侧阿谁子节點,它的所有子树跟子树的子树收益都是-1,也就是说,對方就算乱下,咱們都必输;而中心跟左侧阿谁子节點,若是對部下错了,另有一必定概率可以或许通往+1的叶子节點的。是以,左侧两個决议计劃要比最右侧的决议计劃要相對於好那末一點兒。是以,在發明瘦身方法推薦,咱們已必败的時辰,仍然可以或许在决议计劃中做一個弃取,選擇败得不较着的那種决议计劃。

接下来将先容一個加倍有用的算法:
回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

Archiver|手機版|小黑屋|台灣運動娛樂論壇  

娛樂城, 百家樂, 真人百家樂, 中醫推薦, 現金板, 彰化當舖, 彰化汽車借款, 彰化機車借款, 現金版, 刷卡換現金, 娛樂城, 運彩玩法, 7M足球即時比分, NBA即時比分, 發發發老虎機, 百家樂, 歐冠杯歐冠杯決賽歐冠盃歐冠盃決賽LEO娛樂財神娛樂財神娛樂城娛樂城註冊送娛樂城體驗金線上娛樂線上娛樂城賭博場所運彩場中運動彩券場中台灣運動彩券首頁運動彩券單場運彩單場運動彩場中投注場中投注表場中投注時間表場中投注時刻表台灣運彩足球賠率台灣運彩場中

GMT+8, 2024-12-22 10:31 , Processed in 0.039419 second(s), 4 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表