Database di ogni possibile mossa negli scacchi


14

Immagina che esista un database di scacchi per ogni possibile mossa e posizione. Questo database contiene tutte le mosse possibili dall'apertura alla fine del gioco.

Se ho giocato usando la mia intuizione contro un motore di scacchi, può prevedere quale mossa mi farà perdere e vincere.

Quindi questo significa che non è necessario un "motore di scacchi" perché tutte le mosse possibili sono già registrate.

Se esiste un database di questo tipo, avrebbe i seguenti vantaggi:

  • Nei giochi di blitz veloci, il motore di scacchi perderà sicuramente il database di spostamento delle possibilità di scacchi.
  • Possiamo esattamente sapere quale apertura avrà più opportunità di vincere contro gli altri.

O se un tale database non esistesse già, potremmo avere un calcolo matematico di tutte le mosse possibili dall'apertura fino alla fine del gioco.

Sarebbe possibile l'esistenza di un tale database?


5
No, non è possibile con alcuna tecnologia immaginabile.
Tony Ennis,

Sto vagando da un po '.. E ancora non lo ha creato. Hai ragione. Ahaha.
Ahmad Azwar Anas

2
Buona fortuna a costruire un database con più byte che atomi nell'Universo
David,

Ciao, sono nuovo in questa community e vengo da MathStack. Solo per condividere che ci sono meno atomi nell'Universo rispetto al numero di partite di scacchi possibili in una partita di scacchi. Prova il numero Shannon ( youtube.com/watch?v=Km024eldY1A ).
Sujit Bhattacharyya,

Risposte:


33

Credo che la tua domanda si riduce essenzialmente all'argomento se è possibile "risolvere" completamente gli scacchi. Wikipedia ha un eccellente articolo sull'argomento che dovrebbe darti una buona panoramica.

Per riassumere, il numero di possibili variazioni di gioco negli scacchi è stimato a 10 ^ 120. Questo è un numero incredibilmente enorme, per fare un confronto, considera che il numero di atomi nell'universo osservabile è stimato intorno a 10 ^ 80 . In altre parole, se si utilizza l'intero universo osservabile come disco rigido, è comunque necessario memorizzare 10 ^ 40 combinazioni di partite di scacchi su ciascun atomo , al fine di archiviare semplicemente tutto. Inutile dire che questo è molto al di là delle nostre tecnologie attuali e prevedibili che la maggior parte delle persone lo considera completamente impossibile.

I giochi finali di scacchi sono considerevolmente meno complessi e siamo arrivati ​​a un punto in cui è possibile calcolare tutte le combinazioni possibili per giochi finali a cinque e sei pezzi . Si tratta in genere di grandi impegni compiuti da ricercatori che hanno accesso a supercomputer e che i database di fine gioco risultanti sono enormi (nell'ordine di centinaia di terabyte). Ogni volta che viene aggiunto un nuovo pezzo, le dimensioni e la complessità dei calcoli aumentano in modo esponenziale, il che significa che nel prossimo futuro, possiamo aspettarci che questi risultati si espandano solo di alcuni pezzi.


ora immagino che ci siano algoritmi che rappresentano End Game Table .. ^^
Ahmad Azwar Anas

3
@AhmadAzwarAnas Beh, penso che quelli semplici siano già utilizzati nei motori di scacchi e quelli più completi verranno aggiunti quando la tecnologia lo consente. In termini di algoritmo, immagino che potresti "comprimere" un tavolo da gioco finale analizzandolo per i modelli e generalizzandoli in un insieme di regole che chiaramente portano a un risultato. Con ogni probabilità, tuttavia, questo insieme di regole sarebbe comunque assolutamente massiccio, poiché variazioni minime (come avere un'opposizione o meno) possono cambiare il risultato del gioco.
Daniel B,

@AhmadAzwarAnas in realtà, perché non solo un algoritmo per gli scacchi? ci deve essere una mossa in ogni partita persa che è quella sbagliata, giusto? cioè la mossa prima della quale esisteva un percorso per non perdere indipendentemente dalla mossa dell'avversario, ma dopo ciò non è più vero. quindi "tutto" l'algoritmo deve fare è identificare queste mosse in modo da poterle evitare.
Michael,

1
@Michael è più difficile di così - come puoi sapere se esiste un percorso per vincere indipendentemente da ciò che si muove l'avversario? nella migliore delle ipotesi, ci sarebbe solo un 50% delle volte, perché se una persona vince, l'altra è costretta a perdere. In realtà lo fa tornare alle posizioni iniziali - perché esiste un percorso più avanti nel gioco, a quel punto dovrebbe esistere un "percorso vincente assoluto" - se lo capissimo, allora perché qualcuno dovrebbe giocare più il colore perdente sapendo che, indipendentemente da ciò che si muovono, perderanno? perché qualcuno dovrebbe più giocare a scacchi se potessimo farlo?
user2813274

2
+1 ma la tua analisi è sbagliata. Per memorizzare una base da tavolo, devi solo memorizzare ogni posizione, non ogni possibile gioco. Shannon stima che ci siano circa 10 ^ 43 posizioni , rispetto a circa 10 ^ 50 atomi nella terra . Quindi potresti risolvere gli scacchi trasformando l'intera terra in un computer .
David Richerby,

8

No, non sarebbe possibile l'esistenza di un tale database. Il calcolo richiederebbe un computer di dimensioni eccessivamente grandi e il calcolo richiederebbe così tanto tempo che il tuo computer non esisterebbe per il tempo necessario per completare l'attività.

Claude Shannon ha stimato che ci sono circa 10 43 possibili posizioni negli scacchi e che il vostro database dovrebbe archiviare il risultato di tutti questi (questo sarebbe, essenzialmente, un tavolo da 32 persone ). Tuttavia, si stima che la Terra contenga solo circa 10 50 atomi , quindi, anche se si potesse costruire una cella di memoria con soli 10.000.000 di atomi, sarebbe comunque necessario un computer delle dimensioni della Terra solo per memorizzare tutte le posizioni.

Ma un computer così grande porta grossi problemi. Il diametro della terra è di circa 12.800 chilometri e la luce impiega circa 43ms per attraversare quella distanza. Ciò significa che, se un ciclo di clock dura più di 43ms, non solo si ha un orribile disallineamento dell'orologio, ma parti diverse del computer non sono nemmeno nello stesso ciclo di clock. Evitare ciò limita la velocità di clock a circa 23,5Hz (non GHz o MHz; solo Hz). Anche se tu potessi valutare completamente una posizione in un singolo ciclo di clock, ciò significa che il tuo computer impiegherebbe circa 4,3x10 41 secondi per completare il suo compito. Sono circa 1,4x10 34 anni. Sono 14 milioni di miliardi di miliardi di anni.

Gli astrofisici credono che l'universo apparirà radicalmente diverso in 1,4x10 34 anni rispetto a adesso. Da allora, le stelle avranno smesso di esistere da molto tempo e persino elementi che non hanno senso radioattivo avranno subito grandi quantità di decadimento radioattivo. Anche i protoni che formano i nuclei atomici avranno subito un significativo decadimento radioattivo. Quindi il tuo computer di dimensioni terrestri semplicemente non esisterà più.


2
Quindi vuoi dire che c'è una possibilità?
bpromas,

6

Penso che la risposta di Daniel sia eccellente (+1) ma voglio aggiungere qualche pensiero comunque.

Un tavolo da 32 pezzi sostituirebbe davvero i motori di scacchi? La risposta è decisamente no!

Per giocare a scacchi, sono necessarie più informazioni rispetto al fatto che una mossa stia vincendo, pescando o perdendo. Naturalmente un tale database sarebbe imbattibile, ma difficilmente avrebbe battuto nessuno.

Per giocare a scacchi con forza non è sufficiente scegliere una mossa non perdente ad ogni turno. Delle molte mosse di disegno in ogni posizione, ce ne sono solo alcune che esercitano una pressione reale sull'avversario.

I motori di scacchi esistenti sono resi significativamente più forti accedendo ai tablebase. Ma man mano che i database crescono, il tempo di accesso diventerebbe un fattore proibitivo molto prima di usare ogni atomo nell'universo per la memoria ;-).

Quindi penso che la tua conclusione sia sbagliata: un tale database non perderebbe mai e non vincerebbe quasi mai. Non ci dirà nulla sulle aperture, tranne che quasi tutte sono pareggi. Probabilmente potremmo escogitare nuovi algoritmi per estrarre questo database e trarre conclusioni interessanti su tutti i tipi di posizioni, ma penso che ciò non cambierebbe il mondo degli scacchi in modo significativo.


Hai frainteso il contenuto del database. Ogni possibile mossa sarebbe contrassegnata come "Se gioco, il mio avversario può forzare una vittoria qualunque cosa faccia dopo", "Se gioco, posso forzare una vittoria qualunque cosa faccia il mio avversario" o "pareggio". Quindi non giocheresti "mosse non perdenti ad ogni turno": giocherai vittorie forzate ad ogni turno, purché esistesse una mossa del genere.
David Richerby,

1
Bene, in realtà ho capito esattamente cosa avrebbe contenuto il database ... Il punto che stavo cercando di fare è che nei giochi di scacchi di alto livello "Non ci sono vincite forzate!" in oltre il 90% delle posizioni. E hai bisogno di molte più informazioni di "questa mossa pareggia e questa mossa perde", per arrivare effettivamente a una posizione vincente contro un giocatore decente.
BlindKungFuMaster,

2
Per fare un esempio: nella posizione iniziale, con ogni probabilità, le uniche informazioni nel database sarebbero "Tutte le mosse disegnate". Quindi saresti completamente da solo. E se sei completamente solo, come ottieni una posizione vincente contro un giocatore forte? La risposta è: non lo fai. La tua posizione peggiorerà fino al punto in cui segui la sola e unica linea di disegno.
BlindKungFuMaster,

No, non è vero. È banale ottenere la tua mossa vincente. Calcola semplicemente tutte le mosse possibili dalla posizione corrente, controlla le posizioni risultanti sul DB e scegli quella che vince o pareggia. Per definizione, se la tua posizione attuale è "vinci", ce ne sarà almeno una nelle posizioni successive che è "vinci"; e se la tua posizione attuale è "pareggia", almeno una delle posizioni successive sarà "pareggia" (e possibilmente un po '"vinci" se il tuo avversario non gioca perfettamente).
Ignacio Calvo,

1
Il punto è che la posizione attuale di solito non è "tu vinci". Ad esempio, è molto probabile che non ci siano vincite forzate nella posizione di partenza.
BlindKungFuMaster,

3

Penso che un giorno gli scacchi saranno risolti. Perché? Perché, beh, non molto tempo fa, giocare a scacchi contro un computer era strano e impensabile! Come hai potuto addestrare un computer a giocare a scacchi? Bene, l'hanno fatto! (Inoltre, l'idea di un computer era strana ...) Il mio punto è che potrebbe sembrare strano perché non ne abbiamo mai visto o sentito parlare. Non è qualcosa che possiamo facilmente immaginare. Ma la tecnologia si sta espandendo a un ritmo esponenziale. Non sarei sorpreso se nel prossimo futuro (10+ anni) che fosse risolto, in una forma o nell'altra.


1
L'ostacolo alla risoluzione degli scacchi è la quantità letteralmente astronomica di dati che dovresti ordinare. Shannon ha stimato che ci sono all'incirca 10 ^ 43 posizioni negli scacchi e che dovresti salvare il risultato per ognuna di queste. Per metterlo in prospettiva, la terra contiene circa 10 ^ 50 atomi , quindi, anche se potessi costruire una cella di memoria da 10.000.000 di atomi, dovrai comunque convertire l'intera terra in un banco di memoria solo per memorizzare il risultato!
David Richerby,

1
@DavidRicherby Diciamo che gli scacchi sono un pareggio con il miglior gioco. Quindi per ogni mossa bianca, c'è una risposta adeguata per il nero. Alla prossima mossa bianca, anche il nero ha una risposta adeguata, e così via. È concepibile che la costruzione di un tale "albero di disegno" richieda molto meno di 10 ^ 43 posizioni.
Dag Oskar Madsen,

4
@DagOskarMadsen Sì, è possibile che l'archiviazione effettiva dell'albero richiederebbe molta meno memoria (anche se comunque una quantità astronomica). Tuttavia, l'attuale tecnica per costruire tali alberi è quella di fare analisi retrograda da tutte le posizioni finali, che richiede la costruzione del database completo di cosa fare in ogni posizione, almeno come una fase intermedia.
David Richerby,

1
Mi dispiace annunciarti che ti sbagli! @DagOskarMadsen Ma se non sai come confutare le risposte "inadeguate", puoi davvero affermare di aver risolto il gioco?
David,

2

All'inizio del college, all'inizio degli anni '80, leggevo in una partita giocando a testo che se un computer potesse pianificare, valutare ed eseguire una mossa, ogni singola mossa, dall'inizio del gioco a tutte le possibili conclusioni ogni 1/3 di un nanosecondo, cioè circa 3 miliardi di mosse / secondo, per fare questo per ogni risultato immaginabile occorrerebbero dai 10 ai 120 secoli per completare. E chi ha tanto tempo da aspettare?

Un'altra statistica sbalorditiva? Hai ovviamente sentito parlare di un googol? Non IL Google, ma il numero? È 10 alla 100a potenza. A 10 seguito da 100 zeri. Ora immagina il googolplex. Sono 10 per il potere del googol.

Ho letto che non c'è abbastanza di tutto nell'universo conosciuto, nemmeno gli atomi, per richiedere l'uso di googleplex. In effetti, anche il googol è troppo grande per descrivere qualsiasi cosa. Dovresti dare un'occhiata ad alcune sorprendenti curiosità su questi numeri.


0

Anche se potrebbe non essere possibile realizzare gli scacchi in un database in questo universo, si può dire che la struttura astratta del gioco esiste come un oggetto matematico finito. Si può ragionare al riguardo e concludere che ha un risultato definito, anche se potremmo non sapere di cosa si tratta. E poi se lo vedi come una matrice puoi porre domande come qual è il massimo autovalore degli scacchi approssimativamente. In effetti Platone pensava che i numeri esistessero davvero, quindi immagino che direbbe che la partita a scacchi esiste nello stesso modo sublime e inutile.

Ma più praticamente, potrei immaginare che un computer quantistico avanzato possa davvero rappresentare questo, e in effetti risolvere gli scacchi. La giuria è ancora fuori per quanto riguarda le capacità di questa tecnologia, ma in linea di principio non riesco a vedere che è impossibile


-1

Sì, penso che sarebbe possibile. Ma solo se il database era più simile a una rete neurale, prendeva le mosse che lo causavano e li cancellava. Tale calcolo si basa sull'esponenziamento (sopportare con me) tutte le possibili azioni in una partita di scacchi al primo movimento, per spostare 100 o qualcosa del genere. Nel frattempo se ci liberassimo delle ripetizioni, ((Ke3 Ke4 Ke3 Ke4) in loop) 10 ^ 120 potrebbe probabilmente diventare qualcosa come 10 ^ 70. Questo è ancora ridicolmente enorme, ma se in qualche modo fossimo in grado di codificarlo su un piano 4D (il che credo sia possibile) sarebbe un gioco da ragazzi.


2
Benvenuti a scacchi ! Per favore, fai il tour mentre ci sei. Il tuo post potrebbe essere sottovalutato perché è più un'opinione e meno una risposta come ci aspettiamo qui; consulta l'articolo del Centro assistenza Come rispondere .
Glorfindel

2
Non sono un ragazzo di scacchi e, per la cronaca, non sono nemmeno una delle persone che hanno votato per il verso di te, ma ho letto che ci sono 10 ^ 43 posizioni diverse. Solo perché hai un metodo che consente di filtrare alcuni dei dati, perché pensi automaticamente che ciò lo renda possibile? Penso che tu stia sottovalutando esattamente quanto dovrebbe essere grande questo database. Questo è molto al di là del campo di applicazione della moderna tecnologia informatica che non riesco a immaginare che siamo su una traiettoria perché ciò avvenga anche tra un secolo. Ma benvenuti a SE Chess. (E benvenuto anche a me, suppongo: P)
Joe Majewski,
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.