對人工智慧中「極大極小值」的博弈演算法的資料整理。

2021-07-10 21:57:05 字數 2027 閱讀 4446

對人工智慧中「極大極小值」的博弈演算法的資料整理。

1. 極大極小演算法被廣泛應用於計算機的棋類遊戲中。不被用於打牌。因為計算機無法看到對手的牌,就很難做出**。在棋類遊戲中,雙方的棋子都是明確的,所以計算機可以通過類似深度優先搜尋(遞迴)的方法來求解。也就是the minimax tree。

為了優化演算法,採用α-β剪枝演算法來降低複雜度。如:原先要計算400個節點,現在縮小到了平方根,也就是20個節點。

極大極小演算法的層級節點數是指數遞增的…所以一般我們會進行層數限制。

2. 偽**:

function minimax(node, depth) // 指定當前節點和搜尋深度

// 如果能得到確定的結果或者深度為零,使用評估函式返回局面得分

if node is a terminal node or depth = 0

return the heuristic value of node

// 如果輪到對手走棋,是極小節點,選擇乙個得分最小的走法

if the adversary is to play at node

let α := +∞

foreach child of node

α := min(α, minimax(child, depth-1))

// 如果輪到我們走棋,是極大節點,選擇乙個得分最大的走法

else

let α := -∞

foreach child of node

α := max(α, minimax(child, depth-1))

return α;

進一步的**:

int minmax(int depth)  else  

}  

int max(int depth)

generatelegalmoves();

while (movesleft())

}  return best;

}  

int min(int depth)

generatelegalmoves();

while (movesleft())

}  return best;

}

α-β剪枝優化演算法

function

alphabeta

(node, depth, α, β, player)

ifdepth = 0 or

nodeisa

terminal

node

return

theheuristic

value

ofnode

ifplayer = maxplayer // 極大節點

foreach

child

ofnode // 極小節點

α := max(α, alphabeta(child, depth-1, α, β, not(player) ))

if β ≤ α // 該極大節點的值》=α>=β,該極大節點後面的搜尋到的值肯定會大於β,因此不會被其上層的極小節點所選用了。對於根節點,β為正無窮

break

(* beta cut-off *)

return α

else

// 極小節點

foreach child of node // 極大節點

β := min(β, alphabeta(child, depth-1, α, β, not(player) )) // 極小節點

if β ≤ α // 該極大節點的值<=β<=α,該極小節點後面的搜尋到的值肯定會小於α,因此不會被其上層的極大節點所選用了。對於根節點,α為負無窮

break

(* alpha cut-off *)

return β

(* initial call *)

alphabeta(origin, depth, -infinity, +infinity, maxplayer)

memset各型別的極大極小值

include int main 較 的原則 加法不爆。極大值 0x7f 較大值 0x3f 較小值 0xc0 極小值 0x80 較 的原則 加法不爆。極大值 0x7f 較大值 0x3f 較小值 0xc0 極小值 0x80 較 的原則 保證一定位精度。7f以上一直到be都是 0 實際上是乙個很小的 1...

對人工智慧的認識

對人工智慧的認識 人工智慧是電腦科學的乙個研究分支,不過,這個分支下面又包含很多的研究方向,這個分支提出的時間很早,中間也熱鬧過幾次,自從2012年以來又熱鬧了,所以看了一點綜述文章對此進行簡單的記錄。2 人工智慧包括六個方面 一 計算機視覺 算上模式識別 影象處理等問題 二 自然語言理解與交流 包...

對人工智慧的了解

20世紀50年代以來,計算機科學家們致力於研發與人類智慧型類似的程式。當這些程式被開發到一定水平後,它們就可以在一些特定的應用場景中替代人類。它們被稱為人工智慧 ai 和認知計算。對於人工智慧,我的了解並不是很多,知識面很有限,盡量總結一些。1 涵蓋領域 涵蓋了電腦科學 心理學 哲學 神經科學 社會...