Zobrist哈希


Zobrist哈希(Zobrist hashing)是一種專門針對棋類游戲而提出來的編碼方式,以其發明者 Albert L.Zobrist 的名字命名。

Zobrist 哈希通過一種特殊的置換表,也就是對棋盤上每一位置的各個可能狀態賦予一個編碼索引值,來實現在極低沖突率的前提下在一個整型數據上對棋盤進行編碼。

其編碼步驟描述如下:

  1. 將棋盤分為最小單位(如果將9X9圍棋盤分為81個交叉點),求出每個單位上不同狀態數(如圍棋盤上的1個交叉點有3個狀態)。

  2. 為每個單位上的每種狀態生成一個一定范圍內(如64位整數)隨機數。

  3. 對於特定的棋局,將每個單位上的狀態對應的隨機數作異或運算,所得即為哈希值。

用Zobrist哈希為棋局狀態編碼至少具備兩個優點:

  1. 當隨機數的范圍足夠大時,不同的棋局產生哈希沖突的概率非常小,在實際應用中通常可以忽略。

  2. 在棋局進行過程中,不必每次重新開始計算棋局的哈希值,只需計算棋局狀態發生改變的部分。

參考:


免責聲明!

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



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