alpha-beta pruning

博弈搜索中,例如下五子棋,既要使我方的靜態評估函數越大,又要使對方的靜態評估函數越小,所謂靜態評估函數,是一個計算雙方"勢"的函數,例如五子棋中計算雙方可能構成五連星的條數,你也可以自己構造這樣的函數,事實上,這個函數構建的好壞決定了博弈的水平。假設這個函數定義爲h(),定義我方爲max,對方爲min.則我們要最大化h(max)-h(min)。

博弈搜索中,max選擇下一步集合A中的一個元素ai,對於每個ai,min可能下的所有位置記爲集合B,min下棋是要極小化h(max)-h(min),所以對於每個ai,B下一步bi是極小化h(max)-h(min)的一步,對於A中所有的元素ai,我們要選擇所有ai中h(max)-h(min)最大的一步。

現在開始說alpha-beta剪枝,事實上,假如對於a0,對所有的b的最小化h(max)-h(min)是2,這時考慮a1,只要任何bi的h(max)-h(min)小於2,那麼整個a1這一支都不用考慮,因爲如果a選a1, b選擇的極小化h(max)-h(min)的bi使得其小於2,那麼a1的h(max)-h(min)一定小於2.所以剪枝,這個稱爲alpha剪枝。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章