Băm Zobrist

Còn được gọi là: Đánh khóa Zobrist

Phương pháp tạo dấu vân tay số có thể cập nhật nhanh cho trạng thái đầy đủ của một thế cờ.

Giải thích

Băm Zobrist gán các số giả ngẫu nhiên cho những đặc trưng có thể tạo thành một thế cờ. Thường có một số cho mỗi tổ hợp loại quân, màu quân và ô, cùng các số cho bên đến lượt, quyền , ghi liệu vua và xe còn có thể thực hiện nước đặc biệt đó hay không, và trạng thái bắt tốt qua đường liên quan. Giả ngẫu nhiên nghĩa là các giá trị trông ngẫu nhiên nhưng được tạo lại một cách xác định.

Khóa thế cờ được tạo bằng cách kết hợp các giá trị đang hoạt động với XOR, viết tắt của exclusive OR, một phép toán nhị phân hoạt động như công tắc: áp dụng cùng giá trị hai lần sẽ đảo ngược tác dụng. Khi một quân di chuyển, chương trình có thể bỏ giá trị ô cũ và thêm giá trị ô mới mà không xây lại khóa từ đầu. Bắt quân, phong cấp và đổi lượt cũng được cập nhật theo cách đó.

Dấu vân tay này cho phép một , tức chương trình phân tích thế cờ, nhanh chóng nhận ra thế cờ từng xuất hiện. Nó có thể tái sử dụng phân tích đã lưu khi các chuỗi nước khác nhau dẫn đến cùng trạng thái, phát hiện lặp và tổ chức bộ nhớ đệm, tức nơi lưu nhanh kết quả trước. So sánh đúng cần nhiều hơn vị trí quân, vì bên đến lượt và các quyền đặc biệt có thể thay đổi những khả năng hợp lệ.

Khóa Zobrist không được bảo đảm duy nhất. Hai thế cờ khác nhau có thể tạo cùng một số, hiện tượng gọi là va chạm. Khóa lớn khiến điều này khó xảy ra, nhưng việc lưu trữ và xác minh vẫn phải tính đến khả năng đó. Trong các phép thử như , khóa cập nhật gia tăng cũng có thể làm lộ lỗi nếu không trở về giá trị ban đầu sau khi thực hiện rồi hoàn tác một nước.

Những nhầm lẫn thường gặp

Cùng quân và cùng thế cờ

Hai bàn cờ nhìn giống hệt nhau có thể là trạng thái khác nếu bên đến lượt, quyền nhập thành hoặc khả năng bắt tốt qua đường hợp lệ khác nhau.

Băm và mã hóa

Mục đích ở đây là nhận dạng thế cờ nhanh, không phải che giấu thông tin hay bảo vệ dữ liệu bí mật.

Nguồn

  1. 1.Zobrist Hashing, Chess Programming Wiki

Thuật ngữ liên quan

© 2026 MindZug