Giải thích
Perft duyệt cây nước đi hợp lệ từ một thế cờ và đếm mọi chuỗi đạt đúng một độ sâu. Độ sâu một nghĩa là đếm các nước hợp lệ hiện có. Độ sâu hai bao gồm mọi lời đáp hợp lệ, rồi tiếp tục theo cùng quy luật. Mỗi chuỗi được đếm riêng ngay cả khi hai chuỗi khác nhau dẫn đến cùng trạng thái bàn cờ. Kết quả là một con số có thể tái tạo cho thế cờ và độ sâu đó.
Mục đích chính là kiểm tra bộ sinh nước của chương trình. Nếu tổng số khác một kết quả tham chiếu đáng tin cậy, một luật hoặc thao tác cập nhật thế cờ đang sai. Một dạng gọi là divide báo tổng phụ riêng cho từng nước đầu, giúp lập trình viên xác định nhánh nơi sai lệch bắt đầu.
Perft đặc biệt hữu ích để lộ các lỗi tinh vi liên quan đến chiếu, bắt tốt qua đường, phong cấp và , nước đặc biệt phối hợp vua với xe. Nó cũng có thể phát hiện chương trình khôi phục sai bên đến lượt, quyền nhập thành hoặc ô mục tiêu bắt tốt qua đường sau khi hoàn tác một nước.
Perft không thực hiện đánh giá thế cờ, chọn nước tốt nhất hay cắt tỉa nhánh. Vượt qua phép thử cho thấy chương trình khớp với số đếm nước hợp lệ đã kiểm chứng, nhưng không cho thấy một chơi mạnh. Dù tên bắt nguồn từ performance test, đếm chính xác là mục tiêu cốt lõi; đo tốc độ là chuẩn kiểm tra bổ sung phụ thuộc vào cách triển khai.
Những nhầm lẫn thường gặp
Perft và sức mạnh thi đấu
Perft xác nhận luật và việc sinh nước. Nó không đo hiểu biết thế trận, chất lượng đánh giá hay sức mạnh chiến thuật.
Perft và băm
Một cách triển khai có thể dùng để nhận dạng thế cờ, nhưng khóa đúng không thay thế việc đếm nước hợp lệ.
Xem thuật ngữNguồn
- 1.Perft, Chess Programming Wiki
