台灣運動娛樂論壇

標題: 博弈遊戲的AI設計(一):极大极小树 [打印本頁]

作者: admin    時間: 2023-8-23 16:09
標題: 博弈遊戲的AI設計(一):极大极小树
博弈树作為傳统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的叶子节點的。是以,左侧两個决议计劃要比最右侧的决议计劃要相對於好那末一點兒。是以,在發明瘦身方法推薦,咱們已必败的時辰,仍然可以或许在决议计劃中做一個弃取,選擇败得不较着的那種决议计劃。

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




歡迎光臨 台灣運動娛樂論壇 (https://bbs.ss6499.com.tw/) Powered by Discuz! X3.3