게임 초반에 몇 가지 다른 방법으로 점검 할 수 있습니까?


15

우리는 모두 가장 짧은 검사원이 4 겹이라는 것을 알고 있습니다.

  1. f3 e5

  2. g4 Qh5 #

이것이 유일한 이동 순서는 아닙니다. 실제로, 흰색이 f 또는 g 폰을 먼저 이동하는지, 그가 폰을 f3 또는 f4로 이동하는지, 그리고 블랙이 e6 또는 e5를 연주하는지에 따라 8이 있습니다. 물론 이것은 가능한 4 겹 움직임 시퀀스의 작은 부분 만 구성하지만 이것 만이 게임을 끝내는 것입니다.

내가 찾고있는 것은 소수의 플라이의 경우, 체크 메이트에서 끝나지 않고 체크 메이트로 끝나는 움직임 시퀀스의 수입니다. 이상적으로 내가 원하는 것은

  • 4 플라이 : X 비 체크 메이트 시퀀스, 8 4 플라이 체크 메이트
  • 5 플라이 : Y 비 체크 메이트 시퀀스, 8 4 플라이 체크 메이트, N 5 플라이 체크 메이트
  • 6 플라이 : Z 비 체크 메이트 시퀀스, 8 4 플라이 체크 메이트, N 5 플라이 체크 메이트, M 6 플라이 체크 메이트

이것이 합리적 일 정도로 깊습니다.

이것은 두 명의 플레이어가 무작위로 움직일 때 같은 체스 게임을 할 확률에 대한 Math.SE 질문에서 영감을 얻었습니다 . 나는 짧은 게임이이 확률을 크게 지배한다고 생각하는데, 이는 확률을 대략적으로 쉽게 만들 수 있지만 실제 숫자를 다루는 것이 좋을 것입니다.


1
관심을 가질만한 관련 (동일하지는 않음) 질문 : chess.stackexchange.com/questions/24359/…
itub

2
질문의 맥락에 따라, 약 8 겹의 반복으로 인해 게임이 추첨으로 끝날 수 있음을 알고 자 할 수도 있습니다.
DM

1
여기에 요청하는 데이터가 Math.SE 질문의 확률에 대한 정확한 범위를 제공하기에 충분하지 않다고 생각합니다. 게임 트리의 구조에 대한 자세한 정보가 필요합니다. (예시적인 반례의 경우, 첫 번째 이동에 대해 두 가지 가능한 선택이있는 게임을 고려하십시오. 첫 번째 이동이 A 인 경우 첫 번째 이동이 A 인 경우 두 번째 이동에 대해 백만 개의 고유 한 선택이 가능하지만 B 인 경우 유일한 선택입니다 가능한 두 번째 이동은 C입니다. 이제이 게임에는 1,000,001 개의 두 이동 시퀀스가 ​​가능하지만 무작위 플레이어가 시퀀스 B, C를 재생할 확률은 50 %입니다.)
Ilmari Karonen

@IlmariKaronen 사실입니다. 질문을 게시 한 이래로 생각했습니다. 그러나 수표가 포함 된 줄을 제외하고 게임 트리의 분기 비율에 대한 스프레드가 빠르게 증가한다고 생각하지 않습니다. 플라이로 확률에 대한 총 기여도가 빠르게 떨어지더라도 근사값은 여전히 ​​합리적으로 잘 작동합니다.
eyeballfrog '

답변:


26

0-3 플라이의 검사원이 없습니다.

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

"체크 메이트"는 최종 플라이에서 수행 된 체킹 이동 수입니다. 따라서 5 플라이의 경우 정확히 5의 체크 시퀀스가 ​​347 개 있습니다.

이 값은 https://www.chessprogramming.org/Perft_Results 에서 가져옵니다.

현재 필요한 계산 리소스로 인해 10ply 이상의 검사 데이터가 없습니다.

보다 구체적인 데이터 (예 : 라인 자체)를 얻으려면 checkmate로 끝나는 라인을 저장하는 고유 한 perft 프로그램을 작성해야합니다.


13

이 정수 시퀀스는 OEIS (On-Line Encyclopedia of Integer Sequences)에서 A079485 로 알려져 있으며 13 개 이하의 숫자는 다양한 참조가 가능합니다.


REFERENCES Homer Simpson, Chess Review, Jan-Feb 1982. 좋아, 나는 그것의 일부를 만들었지 만, 재미있을 것입니다 ...
Michael

OEIS는 실제로 모든 것을 가지고 있지 않습니까?
eyeballfrog 4

8

다음은 질문에 대답하지만 속도가 느린 간단한 Python 프로그램입니다. 노트북에서 5 플라이를 실행하는 데 40 분이 걸리며 추가 플라이 당 30 배 이상 증가합니다. 좋은 점은 필요한 경우 게임을 인쇄한다는 것입니다. 나는 여기에 출력을 게시 할 수는 있지만 347 줄 긴 대답을 만들고 싶지 않았습니다 ... :-)

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')

나중에 참조 할 수 있도록 pastebin.com에 해당 출력물을 넣을 수 있습니다. 선택이 만료되지 않습니다.
Jason C

위의 의견은 실제 게임 트리를 탐색하는 것이이 계산에 필요할 수 있으므로이 프로그램이 도움이 될 수 있음을 시사합니다. 감사.
eyeballfrog 오전

7

내가 이런 종류의 분석에 대해 알고있는 최고의 인물은 François Labelle입니다. François Labelle은 체스와 관련된 많은 숫자를 계산했으며 (플라이의 함수로서 체스 게임 수의 최대 성장률 추정값 포함) 특히 최대 플라이 13까지의 체크 메이트 수 최대 플라이 12까지의 값은 http://wismuth.com/chess/chess.html 의 그림을 참조하십시오 .

그런 다음 http://wismuth.com/chess/statistics-games.html 에서 그는 346,742,245,764,219의 수표 게임이있는 최대 13 명까지 특정 인물을 제공합니다.

총 게임 수에 대해, 그는 15 (!)까지 올라간 다른 사람들의 결과를 인용하지만 나는 그들이 수표를 추적하지 않았다고 생각합니다.

플라이 5-13에서 10,000 명이 이동하면 메이트가 나올 확률은 약 1입니다. 그러나 흰색을 검정에 비해 짝짓기가 훨씬 쉬운 것처럼 보입니다.

플라이 대 메이트 확률 그래프

게임 수의 증가 속도는 블랙 이동을 통한 화이트 이동의 경우에도 더 크지 만 여기에서 식별 된 패턴보다 훨씬 약한 1 %에 불과합니다.

나는 무작위 체스 게임을 즐긴다. 때로는 여러 세계 가설이 보유하고 있다면 온라인 양자 난수 생성기와 연결하여 체스 게임을 모두하는 프로그램을 만드는 것이 좋을 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.