基本思想:根據倒推值的計算方法,或中取大,與中取小,在擴展和計算過程中,能剪掉不必要的分枝,提高效率。
定義:
α值:有或后繼的節點,取當前子節點中的最大倒推值為其下界,稱為α值。節點倒推值>=α;
β值:有與后繼的節點,取當前子節點中的最小倒推值為其上界,稱為β值。節點倒推值<=β;
α-β 剪枝:
(1) β剪枝:節點x的α值不能降低其父節點的β值,x以下的分支可停止搜索,且x的倒推值為α;
(2) α 剪枝:節點x的β值不能升高其父節點的α值,x以下的分支可停止搜索,且x的倒推值為β ;
再上個例題圖,方便大家理解:
先做個說明:有畫弧線的是與,取較小值,沒有的是或,去最大值。
第一步:2、9、3做比較,取最小值2,I點確定為2
第二步:J點的1和I點2大小進行比較,如果1是J點的最小值,由於J的父節點是取較大值,1<2,無法升高D的值,所以J點的-1可以點可停止搜索,我們划掉該值。
第三步:I點2接着與K點的左值-1進行比較,如果-1是最小值,由於K的父節點取較大值,-1<2,無法升高D的取值,所以K點的右值可以停止搜索。
第四步:D的值可以確定為2
第五步:L點的作用值進行比較,取較小值6,D值與L值相比較,由於E去較大值,假設L就是最大值,E=6,二B點取得是D和E的較小值,2<6,E的結果值無法降低B的取值,所以E的右枝可以截掉。
第六步:B的值可以確定為2
第七步:N的左右值進行比較,取0,N點在和O點的左值-5進行比較,假設-5是最小值,0>-5,O點的取值無法升高父節點F的值,所以可以停止搜索O點的右枝。
第八步:F確定為0.
第九步:F點假設是C的最小值,它和B點的值比較,2>0,也就是說C點的取值無法升高A點的取值,所以G和H都停止搜索。
第十步:A點取2.
-----------------------------------------------------------------------------------------------【轉】
