Có bao nhiêu cách khác nhau để checkmate trong trò chơi đầu?


15

Chúng ta đều biết người kiểm tra ngắn nhất có thể là 4 ply:

  1. f3 e5

  2. g4 Qh5 #

Đây không phải là lệnh di chuyển duy nhất có thể. Trong thực tế, có 8, tùy thuộc vào việc màu trắng di chuyển cầm đồ f hay g trước, liệu anh ta di chuyển cầm đồ f đến f3 hay f4, và liệu màu đen chơi e6 hay e5. Tất nhiên, điều này chỉ chiếm một phần rất nhỏ trong các chuỗi di chuyển 4 lớp có thể, nhưng đây là những thứ duy nhất kết thúc trò chơi.

Những gì tôi đang tìm kiếm là, với số lượng nhỏ ply, có bao nhiêu chuỗi di chuyển kết thúc trong checkmate so với không kết thúc trong checkmate. Lý tưởng nhất là những gì tôi muốn là một cái gì đó dọc theo dòng

  • 4 ply: X trình tự không kiểm tra, 8 trình tự 4 lớp
  • 5 ply: Y trình tự không kiểm tra, 8 người kiểm tra 4 lớp, N người kiểm tra 5 lớp
  • 6 ply: Z trình tự không checkmate, 8 checker 4 ply, N checker 5 ply, checker M 6 ply

và như vậy cho sâu như điều này là hợp lý để làm.

Điều này được lấy cảm hứng từ một câu hỏi Math.SE về xác suất hai người chơi thực hiện các bước di chuyển ngẫu nhiên dẫn đến cùng một ván cờ. Tôi nghi ngờ các trò chơi ngắn chi phối rất nhiều xác suất này, điều này sẽ khiến xác suất dễ gần đúng, nhưng thật tuyệt khi có những con số thực để làm việc.


1
Câu hỏi liên quan (nhưng không giống nhau) mà bạn có thể tìm thấy quan tâm: Chess.stackexchange.com/questions/24359/ mẹo
itub

2
Dựa trên bối cảnh câu hỏi của bạn, bạn cũng có thể quan tâm để biết rằng một trò chơi có thể kết thúc với tỷ số hòa do sự lặp lại ở khoảng 8 ply.
DM

1
Tôi không nghĩ rằng dữ liệu bạn yêu cầu ở đây là đủ để cung cấp giới hạn chính xác cho xác suất trong câu hỏi Math.SE. Bạn cần thêm thông tin về cấu trúc của cây trò chơi. (Đối với một ví dụ minh họa, hãy xem xét một trò chơi trong đó có hai lựa chọn khả dĩ cho nước đi đầu tiên: A và B. Nếu nước đi đầu tiên là A, có 1 triệu lựa chọn khác nhau có thể có cho nước đi thứ hai, trong khi nếu đó là B, thì chỉ di chuyển thứ hai có thể là C. Bây giờ trò chơi có 1.000.001 hai chuỗi di chuyển có thể, nhưng xác suất một người chơi ngẫu nhiên kết thúc chơi chuỗi B, C là 50%.)
Ilmari Karonen

@IlmariKaronen Điều đó đúng và tôi nghĩ về điều đó kể từ khi tôi đăng câu hỏi. Tuy nhiên, tôi không nghĩ rằng tỷ lệ lan truyền trên tỷ lệ phân nhánh của cây trò chơi tăng lên nhanh chóng, ngoại trừ các dòng có chứa séc. Nếu tổng đóng góp cho xác suất giảm xuống nhanh chóng với ply, thì phép tính gần đúng vẫn hoạt động tốt.
nhãn cầu

Câu trả lời:


26

Không có người kiểm tra từ 0-3 ply.

4 ply: 8 checkmates, 197,281 total nodes
5 ply: 347 checkmates, 4,865,609 total nodes
6 ply: 10,828 checkmates, 119,060,324 total nodes
7 ply: 435,767 checkmates, 3,195,901,860 total nodes
8 ply: 9,852,036 checkmates, 84,998,978,956 total nodes
9 ply: 400,191,963 checkmates, 2,439,530,234,167 total nodes

"checkmate" là số lần di chuyển kiểm tra được thực hiện trên lớp cuối cùng. Vì vậy, đối với 5 lớp, có 347 chuỗi kiểm tra có độ dài chính xác 5.

Các giá trị này là từ: https://www.chessprogramming.org/Perft_Results

Hiện tại không có dữ liệu checkmate cho 10 ply trở lên, có lẽ là do các tài nguyên tính toán cần thiết.

Để có được dữ liệu cụ thể hơn (ví dụ: chính các dòng), bạn sẽ cần phải viết chương trình perft của riêng bạn để lưu các dòng kết thúc bằng checkmate.


13

Chuỗi số nguyên này được gọi là A079485 trong Từ điển bách khoa toàn thư về chuỗi số nguyên (OEIS) và các số lên đến và bao gồm 13 lớp được biết đến với các tham chiếu khác nhau có sẵn.


REFERENCES Homer Simpson, Chess Review, Jan-Feb 1982. Ok, tôi đã tạo ra một phần của nó, nhưng nó sẽ rất buồn cười ...
Michael

OEIS thực sự có tất cả mọi thứ, phải không?
nhãn cầu

8

Đây là một chương trình Python đơn giản trả lời câu hỏi nhưng chậm, mất 40 phút để chạy tới 5 plies trên máy tính xách tay của tôi (và tăng ít nhất 30 lần cho mỗi lớp bổ sung). Một điều tốt đẹp là nó in ra các trò chơi, nếu bạn cần điều đó. Tôi có thể đăng kết quả đầu ra ở đây nhưng không muốn đưa ra câu trả lời dài 105 dòng ... :-)

import chess
from chess import pgn

def dfs(board, depth):
    global n
    result = board.result(claim_draw=True)
    if result != '*':
        game = pgn.Game.from_board(board)
        print(game.mainline())
    elif depth > 0:
        moves = list(board.legal_moves)
        for move in moves:
            n += 1
            board.push(move)
            dfs(board, depth-1)
            board.pop()

n = 0
try:
    board = chess.Board()
    dfs(board, 4)
except KeyboardInterrupt:
    pass
print(n, 'positions checked')

Để tham khảo trong tương lai, bạn có thể ném những thứ như đầu ra đó trên pastebin.com; chọn không bao giờ hết hạn.
Jason C

Các ý kiến ​​trên cho thấy việc khám phá cây trò chơi thực tế có thể cần thiết cho tính toán này, vì vậy chương trình này có thể tỏ ra khá hữu ích. Cảm ơn.
nhãn cầu

7

Người đứng đầu mà tôi biết cho loại phân tích này là François Labelle, người đã tính toán nhiều con số liên quan đến cờ vua (bao gồm ước tính tốc độ tăng trưởng tối đa của số lượng trò chơi cờ vua như một chức năng của ply) và đặc biệt đã tính toán số lượng người kiểm tra lên tới ply 13. Để biết giá trị lên tới ply 12, hãy xem hình trong http://wismuth.com/chess/chess.html .

Sau đó, tại http://wismuth.com/chess/statistic-games.html , anh ta đưa ra con số cụ thể lên tới ply 13, trong đó có 346.742.245.764.219 trò chơi checkmate rõ ràng.

Đối với tổng số trò chơi, anh ta trích dẫn kết quả từ những người khác đã lên tới 15 (!) Nhưng tôi nghĩ họ không theo dõi người chơi.

Từ Plies 5-13, có khoảng 1 cơ hội trong 10.000 mà một nước đi mang lại cho bạn đời. Nhưng dường như dễ dàng hơn để giao phối như Trắng so với Đen:

biểu đồ cơ hội so với bạn đời

Tốc độ tăng trưởng số lượng trò chơi cũng lớn hơn đối với các bước di chuyển của Trắng so với các bước di chuyển của Đen, nhưng đó chỉ là khoảng 1%, yếu hơn nhiều so với mô hình được xác định ở đây.

Tôi thích các trò chơi cờ vua ngẫu nhiên. Đôi khi sẽ rất tốt nếu liên kết với một trình tạo số ngẫu nhiên lượng tử trực tuyến, để có một chương trình chơi tất cả các trò chơi cờ vua, nếu giả thuyết nhiều thế giới nắm giữ.

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.