Làm thế nào để động cơ cờ vua đánh giá một vị trí nếu vị trí ở giữa một trao đổi?


7

Trong thuật toán minimax, các công cụ cờ vua thực hiện tìm kiếm theo chiều sâu trước khi họ có thể tính toán trước, sau đó đánh giá tất cả các vị trí cuối cùng này. Sau đó, bằng cách sử dụng các đánh giá này, chúng làm việc ngược lại một lần di chuyển và gán giá trị cho các vị trí trước đó. Cuối cùng, họ đạt đến vị trí hiện tại, bắt đầu và cung cấp cho nó một giá trị đánh giá.

Tuy nhiên, làm thế nào các công cụ cờ vua minimax sẽ đánh giá một vị trí cuối cùng nếu nó ở giữa một số trao đổi? Ví dụ: lấy như sau:

  1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Bxc6

Giả sử công suất độ sâu của động cơ là 7 ply (di chuyển từ một trong hai người chơi) và nó đạt đến vị trí này như một trong những vị trí cuối cùng trong tính toán của nó từ đầu trò chơi. Nó sẽ không thể tính toán thêm (và thấy Đen có thể chơi 4 ... dxc6) và sẽ phải đánh giá vị trí này ngay bây giờ. Đối với tôi, có vẻ như nó sẽ phải gán cho vị trí cuối cùng này một lợi thế +3 cho White, nhưng tôi biết rằng các động cơ cờ vua có cách xoay quanh vấn đề này.

Câu hỏi của tôi là, làm thế nào để động cơ cờ vua có được xung quanh kịch bản này?

Câu trả lời:


12

Một cỗ máy cờ vua tốt sẽ không dừng lại sau một số lần di chuyển được xác định trước, nhưng sẽ tiếp tục tìm kiếm cho đến khi vị trí đó "không hoạt động", điều này có nghĩa là không có sự bắt giữ hay kiểm tra nào đang chờ xử lý. Xem Tìm kiếm Quieshood trong wikispaces lập trình cờ vua để được giải thích chi tiết hơn.


4

@itub là hoàn toàn đúng. Nói chung, động cơ cờ vua máy tính không dừng lại cho đến khi vị trí rõ ràng ít nhất là về mặt bắt giữ vật chất. Khi bạn yêu cầu một công cụ tìm kiếm độ sâu = 10, điều đó không thực sự có nghĩa là nó tìm kiếm các biến thể lên đến độ sâu = 10.

Quieshood Search rất quan trọng để giảm thiểu hiệu ứng đường chân trời.


Có thể đáng lưu ý rằng ở hầu hết các vị trí, số lần bắt giữ và kiểm tra có thể sẽ khá hạn chế và số lượng di chuyển có sẵn sẽ khá hạn chế trong hầu hết các trường hợp mà nhà vua đang kiểm tra. Một động cơ được cho là hoạt động đến độ sâu 6 có thể tìm kiếm trong khi bộ đếm độ sâu nhỏ hơn 96 và tăng bộ đếm đó lên 16 sau khi không kiểm tra, không bắt giữ, sau 1 lần chụp và bằng N nếu di chuyển liên quan đến một kiểm tra và đã có N di chuyển như vậy trong dòng hiện tại. Khá đơn giản, và tôi nghĩ đó là cách mà rất nhiều chương trình cờ vua thập niên 1980 hoạt động.
supercat
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.