AlphaBeta剪枝算法初理解


個人認為:αβ剪枝就是為了減少子節點比較,目的就是為了走哪條路(或者說是出哪張牌)能最穩妥的,能贏得絕對到手的錢。(其實懂了你就可以知道,這是可以贏的概率)

第一步 “比較” ,理解它本身是一個樹結構,這棵樹是一層最大值,一層最小值,以此類推。最大值一層就是取子節點最大值。最小值一層就是取子節點最小值。

第二步 “剪枝” ,在第一步的基礎上理解,左節點已經確認取值范圍后,是否還需要繼續判斷右節點,如果不需要判斷右節點,那么就剪枝。

 

咱們開始了:

稱我方為MAX,對方為MIN,圖示如下:

https://jlice-top.oss-cn-beijing.aliyuncs.com/464e4b76002211e99eb2509a4c21c90b.png

比如以此樹先理解第一步,每個節點都需要比較大小:

 

 

 最后這一排數字是什么?它就意味着能得到的美元金額

第一步,圈圈(最小值一層),取最少可以贏多少錢,3美元和17美元,那么最少贏3美元

 

 

 

第二步,圈圈(最小值一層),取最少可以贏多少錢,2美元和12美元,那么最少贏2美元

 

 

 

 第三步,方塊(最大值一層),取最多可以贏多少錢,3美元和2美元,那么最多可以贏3美元

 

 

 

 

 

第四步,方塊(最大值一層),取最多贏多少錢,下限已經是3美元了,就不看2美元了,取3美元

 

 

 

 

依次類推,按這種每個節點都比較大小的算法,最終得到的結果就是:

 

剪枝:

首先必須牢記一下:β 是上限;α  是下限;

第一步:o代表最少贏3美元,p代表贏17美元,但是H是最小節點,那么就意味着不能貪心,需要取最小值,設置H的上限為3     

 

 

第二步:那么H是D的子節點,那么D是最大節點,意味着要貪心一點,需要取最大值,但是現在咱們只有3美元,只好先把D下限設置為3。

 

第三步:首先D的下限已經是3了,所以I的下限也必須為3,(因為I如果確定小於3,那么D節點必然會取3做為最大值)。然后,I的左側倒推值是2,設置I的上限是2。此時,I的α下限是3,β上限是2,那么R節點不管是多少都不用看了。

 

換句話說就是,你出I撲克將有幾率贏得2美元或者12美元。出H撲克你已經知道能贏3美元,穩妥起見為了規避只贏2美元,那么12美元就不冒險去賭這個概率了。所以,R節點不管是多少,都把他剪掉。

 

 

 

 

 

 ~~~~~如有不對,歡迎各位看官老爺蒞臨指正!推薦!!!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM