全台最大網路博奕遊戲論壇

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

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

[複製鏈接]

1497

主題

1497

帖子

4508

積分

管理員

Rank: 9Rank: 9Rank: 9

積分
4508
跳轉到指定樓層
樓主
發表於 2023-10-16 16:30:42 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
博弈树作為傳统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|手機版|小黑屋|全台最大網路博奕遊戲論壇  

保全i88, 運彩場中, 九州娛樂app, 歐冠盃歐冠盃投注, 歐冠盃決賽, 電話行銷, 汽車運輸車, 汽車貸款, 道路救援, ptt棒球5278 av

GMT+8, 2024-4-29 02:23 , Processed in 0.117036 second(s), 4 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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