Quanti modi diversi ci sono per dare scacco matto all'inizio del gioco?


15

Sappiamo tutti che il checkmate più breve possibile è 4 strati:

  1. f3 e5

  2. g4 Qh5 #

Questo non è l'unico ordine di spostamento possibile. In effetti, ce ne sono 8, a seconda che il bianco muova prima la pedina f o g, se sposta la pedina f su f3 o f4 e se il nero gioca e6 o e5. Ovviamente, questo costituisce solo una piccola parte delle possibili sequenze di mosse a 4 strati, ma queste sono le uniche a finire il gioco.

Quello che sto cercando è, per un piccolo numero di strati, quante sequenze di mosse finiscono in scacco matto e non in scacco matto. Idealmente quello che mi piacerebbe è qualcosa del genere

  • 4 strati: X sequenze senza scacco matto, 8 compagni di controllo a 4 strati
  • 5 strati: Y sequenze non scacco matto, 8 compagni di controllo a 4 strati, N compagni di controllo a 5 strati
  • 6 strati: Z sequenze non scacco matto, 8 checkmate a 4 strati, N checkmate a 5 strati, M checkmate a 6 strati

e così via per quanto sia ragionevole fare questo.

Questo si ispira a una domanda di Math.SE sulla probabilità che due giocatori facciano mosse casuali che portano alla stessa partita a scacchi. Sospetto che i giochi corti dominino fortemente questa probabilità, il che dovrebbe rendere la probabilità facile da approssimare, ma sarebbe bello avere i numeri reali con cui lavorare.


1
Domanda correlata (ma non identica) che potresti trovare di interesse: chess.stackexchange.com/questions/24359/…
itub

2
In base al contesto della tua domanda, potresti anche essere interessato a sapere che un gioco può finire in parità a causa della ripetizione a circa 8 strati.
DM

1
Non penso che i dati che stai chiedendo qui siano sufficienti per fornire limiti precisi per le probabilità nella domanda Math.SE. Sono necessarie ulteriori informazioni sulla struttura dell'albero di gioco. (Per un controesempio illustrativo, considera un gioco in cui ci sono due possibili scelte per la prima mossa: A e B. Se la prima mossa è A, ci sono 1 milione di possibili scelte distinte per la seconda mossa, mentre se è B, l'unica la seconda mossa possibile è C. Ora il gioco ha 1.000.001 possibili due sequenze di mosse, ma la probabilità che un giocatore casuale finisca per giocare la sequenza B, C è del 50%.)
Ilmari Karonen,

@IlmariKaronen È vero e ci ho pensato da quando ho pubblicato la domanda. Tuttavia, non penso che la diffusione sul rapporto di ramificazione dell'albero del gioco aumenti così rapidamente, ad eccezione delle linee che contengono un segno di spunta. Se il contributo totale alla probabilità diminuisce rapidamente con lo strato, l'approssimazione dovrebbe comunque funzionare ragionevolmente bene.
eyeballfrog,

Risposte:


26

Non ci sono compagni di controllo da 0 a 3 strati.

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

"checkmates" è il numero di mosse di checkmating effettuate sullo strato finale. Quindi per 5 strati, ci sono 347 sequenze di accoppiamento di lunghezza esattamente 5.

Questi valori provengono da: https://www.chessprogramming.org/Perft_Results

Attualmente non ci sono dati di scacco matto per 10 strati e oltre, presumibilmente a causa delle risorse computazionali necessarie.

Per ottenere dati più specifici (ad es. Le righe stesse), è necessario scrivere il proprio programma perft che salva le righe che terminano in scacco matto.


13

Questa sequenza di numeri interi è nota come A079485 nell'Enciclopedia in linea di sequenze di numeri interi (OEIS) e sono noti numeri fino a 13 strati inclusi con vari riferimenti disponibili.


REFERENCES Homer Simpson, Chess Review, Jan-Feb 1982. Ok, ne ho fatto una parte, ma sarebbe divertente ...
Michael,

OEIS ha davvero tutto, vero?
eyeballfrog,

8

Ecco un semplice programma Python che risponde alla domanda ma è lento, impiegando 40 minuti per eseguire fino a 5 strati sul mio laptop (e aumentando di almeno 30 volte per strato aggiuntivo). Una cosa bella è che stampa i giochi, se ne hai bisogno. Potrei pubblicare qui l'output ma non volevo fare una risposta lunga 347 righe ... :-)

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

Per riferimento futuro puoi lanciare cose del genere su pastebin.com; la scelta non scade mai.
Jason C,

I commenti sopra suggeriscono che l'esplorazione dell'albero di gioco reale potrebbe essere necessaria per questo calcolo, quindi questo programma potrebbe rivelarsi molto utile. Grazie.
eyeballfrog,

7

La persona migliore che conosco per questo tipo di analisi è François Labelle, che ha calcolato molti numeri associati agli scacchi (inclusa una stima del tasso di crescita massimo del numero di partite di scacchi in funzione della piega) e in particolare ha calcolato il numero di compagni di controllo fino allo strato 13. Per i valori fino allo strato 12, vedere la figura in http://wismuth.com/chess/chess.html .

Quindi su http://wismuth.com/chess/statistics-games.html , fornisce cifre specifiche fino allo strato 13, che a quanto pare ha 346.742.245.764.219 partite a scacco matto.

Per il numero totale di giochi, cita i risultati di altri che sono saliti a 15 (!) Ma penso che non abbiano tracciato i compagni di controllo.

Dagli strati 5-13 c'è circa 1 possibilità su 10.000 che una mossa offra compagno. Ma sembra essere molto più facile accoppiarsi come bianco rispetto al nero:

grafico della piega contro la possibilità del compagno

Il tasso di crescita del numero di giochi è anche maggiore per le mosse bianche rispetto alle mosse nere, ma è solo circa l'1%, molto più debole del modello identificato qui.

Mi piacciono le partite casuali di scacchi. A volte sarebbe bello collegarlo a un generatore di numeri casuali quantistici online, per avere un programma che sta giocando a tutti i giochi di scacchi, se l'ipotesi di più mondi è valida.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.