Può esserci un perfetto algoritmo di scacchi?


15

Gli attuali algoritmi di scacchi scendono di circa 1 o forse 2 livelli lungo un albero di possibili percorsi a seconda delle mosse del giocatore e delle mosse dell'avversario. Diciamo che abbiamo la potenza di calcolo per sviluppare un algoritmo che prevede tutti i possibili movimenti dell'avversario in una partita a scacchi. Un algoritmo che ha tutti i percorsi possibili che l'avversario può intraprendere in un dato momento a seconda delle mosse dei giocatori. Esisterà mai un algoritmo di scacchi perfetto che non perderà mai? O forse un algoritmo che vincerà sempre? Voglio dire, in teoria, qualcuno in grado di prevedere tutte le mosse possibili deve essere in grado di trovare un modo per sconfiggere ognuna di esse o semplicemente scegliere un percorso diverso se un certo lo condurrà efficacemente alla sconfitta .....

modifica-- Qual è la mia domanda. Diciamo che abbiamo la potenza di calcolo per un algoritmo perfetto che può giocare in modo ottimale. Cosa succede quando l'avversario gioca con lo stesso algoritmo ottimale? Ciò vale anche per tutte le partite a 2 giocatori con numero finito (molto grande o no) di mosse. Può mai esserci un algoritmo ottimale che vince sempre?

Definizione personale: un algoritmo ottimale è un algoritmo perfetto che vince sempre ... (non uno che non perde mai, ma uno che vince sempre



Questa domanda si basa su diverse idee sbagliate. In primo luogo, i computer per gli scacchi sembrano molto più avanti di uno o due strati in avanti: anche cinque anni fa su un normale laptop, i programmi di scacchi piuttosto ordinari stavano guardando 15-16 strati in avanti e 25+ su linee critiche. In secondo luogo, la definizione di "perfetto" come "vince sempre" non può essere raggiunta, come mostrato nelle risposte. Terzo, i motori degli scacchi non "prevedono" le mosse: calcolano e giocano mosse che sono buone contro ogni possibile risposta.
David Richerby,

Risposte:


13

La tua domanda è simile alla vecchia castagna: "Cosa succede quando una forza irresistibile incontra un oggetto immobile?" Il problema è nella domanda stessa: le due entità descritte non possono esistere nello stesso universo logicamente coerente. Il tuo algoritmo ottimale, un algoritmo che vince sempre, non può essere giocato da entrambe le parti in una partita in cui una parte deve vincere e l'altra deve, per definizione, perdere. Pertanto, l'algoritmo ottimale definito non può esistere.


3
Bene, ad esempio, può essere un algoritmo che consente al primo giocatore di vincere. Ciò significherebbe che giocare per primo ha un vantaggio. O forse l'algoritmo ottimale consente solo al secondo giocatore di vincere. Ciò darebbe un vantaggio al secondo giocatore. La terza possibilità è un algoritmo che consente a uno dei giocatori di forzare sempre un pareggio, anche se non garantisce una vittoria (perché, come l'OP vuole sapere, questo è ciò che accade, ad esempio, se entrambi i giocatori giocano la stessa strategia vincente , se non vi è alcun vantaggio nella riproduzione del primo o del secondo).
Realz Slaw,

3
@Realz Beh, sì, se cambi la definizione di "algoritmo ottimale", puoi provare quello che ti piace. Ho usato la definizione che l'interrogante ci ha chiesto di usare.
Kyle Jones,

Questa è la risposta che stavo cercando di uscire dalla gente. Non può esserci un algoritmo che vince sempre perché è un gioco di 2 giocatori, quindi non c'è modo in cui l'algoritmo possa funzionare perché entrambi i giocatori possono avere lo stesso algoritmo, quindi almeno uno dei due è costretto a non vincere (perdere o pareggiare) . Ho fatto la stessa domanda al mio insegnante e ci è voluto molto parlare per lui per arrivare a questa conclusione
John Demetriou,

3
@JohnDemetriou Il problema è che questa conclusione è sbagliata . Gli scacchi non sono un gioco simmetrico a causa del vantaggio della prima mossa: è del tutto possibile che esista un algoritmo ottimale che consenta al Bianco di giocare e vincere, ma il Nero non può usare quell'algoritmo per il semplice motivo che non è Bianca!
Steven Stadnicki,

È anche possibile, devo notare, che il primo non è in realtà un vantaggio e che in realtà esiste un algoritmo che consente sempre al Nero di vincere contro il miglior gioco del Bianco, ma dovrebbe essere immediatamente ovvio che non esiste un algoritmo che possa sempre consentire a uno di vincere se nero o bianco. Questo è il motivo per cui le persone parlano del "miglior risultato possibile", perché "vincere da entrambe le parti" è banalmente impossibile.
Steven Stadnicki,

23

Prima di tutto, credo che gli algoritmi di scacchi guardino più di 2 strati, sebbene non considerino tutte le diverse possibilità; potare l'albero di ricerca è molto importante per evitare l'esplosione combinatoria del numero di mosse possibili.

Per una partita come gli scacchi, ci sono tre possibilità per quanto riguarda l'identità del vincitore: o il giocatore 1 ha una strategia vincente, oppure il giocatore 2 ha una strategia vincente o entrambi i giocatori pescano in condizioni di gioco ottimali. Non è noto quale sia il caso del gioco degli scacchi. Tuttavia, poiché gli scacchi sono un gioco finito, esiste un algoritmo informatico, costituito da un tavolo molto grande, che gioca a scacchi in modo ottimale.

Naturalmente, un tale algoritmo non sarebbe pratico. Ma per alcuni giochi più semplici, è stato determinato il "valore" del gioco (quale giocatore vince, se presente) ed è stato ideato un algoritmo ottimale. Tale gioco è noto come un gioco risolto .

L'argomento matematico che tratta i giochi combinatori (quelli che sono noti come) è la teoria dei giochi combinatori . I matematici hanno sviluppato un metodo ricorsivo per determinare il valore di un gioco in base al grafico del gioco, che include tutte le posizioni e le mosse consentite. Dovresti essere in grado di trovare una descrizione di questo algoritmo nella voce di Wikipedia o in eventuali note di lezione sull'argomento.


sì, certo, ma stavo cercando di rispondere a qualsiasi risposta con un'altra domanda, cosa succede quando entrambi i giocatori giocano con un algoritmo ottimale ???? cosa succede se un giocatore trova un modo per sconfiggere l'algoritmo ottimale?
John Demetriou,

11
@JohnDemetriou Quando entrambi i giocatori giocano in modo ottimale, otterrai dei risultati. Quel risultato è chiamato il valore del gioco. Se gli scacchi vincono in bianco, ciò significa che nulla di nero potrebbe fare un giocatore bianco che gioca in modo ottimale. Il bianco ha effettivamente un enorme libro (o è in grado di produrre la mossa da tale libro in modo computazionale) che contiene un contatore perfetto per qualsiasi mossa che il nero possa fare in ogni possibile situazione che si sviluppa dall'inizio del gioco. A proposito, chillax sui punti interrogativi. Uno per frase è sufficiente.
rrenaud,

Mi scuso per i punti interrogativi. È solo il modo in cui scrivo in generale. Che cosa succede se gli scacchi sono la vittoria più ottimale. Se bianco e nero hanno lo stesso libro e hanno gli stessi contatori? Cosa succederà allora?
John Demetriou,

1
@JohnDemetriou "Optimal" significa "il migliore possibile". Se le conseguenze matematiche delle regole degli scacchi sono che il miglior nero che può eventualmente fare contro un bianco ottimale è il pareggio (o addirittura può solo ritardare la vittoria del bianco il più a lungo possibile), allora l'algoritmo ottimale per il nero è quello che lo raggiunge, ed è in grado di vincere contro la maggior parte degli avversari non ottimali.
Ben

1
@JohnDemetriou È possibile che esista un algoritmo che vince sempre come Bianco ; ovviamente quell'algoritmo non potrebbe sempre vincere come Nero per i motivi che sono già stati delineati (perché giocherebbe contro se stesso). È anche possibile che si scopre che il nero "vince" gli scacchi ha giocato perfettamente e che esiste un algoritmo che garantisce una vittoria per il nero contro qualsiasi opposizione. Se intendi "un algoritmo che vince sempre da entrambe le parti", allora suggerisco di usare quella terminologia; "ottimale" ha già un significato ben definito.
Steven Stadnicki,

8

Prima di tutto, i buoni algoritmi di scacchi guardano oltre 1 o 2 livelli. Invece di utilizzare la ricerca dell'albero ingenuo, eseguono la potatura alfa-beta per restringere il numero di opzioni da considerare. Nota che per le aperture e i giochi finali, viene utilizzato un ampio database di mosse in quanto ha prestazioni migliori rispetto alla ricerca dell'albero, che viene utilizzata nel mezzo del gioco.

Alla domanda: quello che stai chiedendo credo sia "Gli scacchi sono risolvibili ?". Ipoteticamente lo è, anche se le opinioni variano sul fatto che questo risultato possa essere raggiunto presto. Checkers è stato risolto nel 2007, ad esempio, ma ha molte meno posizioni (attorno alla radice quadrata del numero negli scacchi). Vedi l' articolo di Wikipedia per maggiori informazioni.

Per inciso, le migliori AI di scacchi attuali quasi sempre sconfiggono o pareggiano con i campioni del mondo; quindi, sebbene al momento non sia perfetto, almeno gli algoritmi sono abbastanza buoni!


6

In linea di principio, gli scacchi sono risolvibili come qualsiasi altro gioco. Come hanno indicato le altre risposte, tuttavia, ciò non dovrebbe accadere presto.

Modifica: è stato sottolineato nei commenti che [1] è una bufala, quindi salta il resto di questa risposta.

Detto questo, ci sono stati alcuni recenti sviluppi in questa direzione. [1] afferma di aver dimostrato che l'apertura di scacchi chiamata King's Gambit è risolta : c'è solo una mossa che pareggia per il Bianco, mentre tutte le altre mosse di apertura portano a una vittoria per il Nero. Nota che [1] non ha esplorato l'albero di gioco in modo approfondito, ma afferma solo che questi risultati sono validi.

[1] http://chessbase.com/newsdetail.asp?newsid=8047


1
Articolo davvero interessante!
Paresh,

Quindi questo non è un algoritmo ottimale. Sto chiedendo se possa mai esistere un algoritmo ottimale (se abbiamo la potenza di calcolo)
John Demetriou,

1
Bene, e considerando la tua definizione di "algoritmo ottimale" come un algoritmo che vince sempre, un tale algoritmo non può esistere per entrambi giocatori, Black e White. A parte l'albero di gioco più grande (ma finito), non c'è nulla di speciale sugli scacchi in questo senso rispetto ad altri giochi come ad esempio Hex, per il quale la soluzione è già nota: se il primo giocatore usa la strategia ottimale (conosciuta) per giocare a Hex , quindi vince sempre il primo giocatore, indipendentemente dall'algoritmo utilizzato dal secondo giocatore.
Peter,

L'articolo di King's Gambit in fase di risoluzione si è rivelato essere una bufala. Si noti che l'articolo inizia "Il 31 marzo l'autore del programma Rybka, Vasik Rajlich, e la sua famiglia si sono trasferiti da Varsavia, in Polonia, in un nuovo appartamento a Budapest, in Ungheria. Il giorno successivo, nonostante il trambusto di spostare scatole e ambientazione su telefono e connessioni Internet Vas, ha gentilmente accettato la seguente intervista "- in altre parole, era il 1 ° aprile ...
Joe K,

-1

Se è possibile vincere sempre una partita a scacchi o meno dipende dalle regole del gioco. Tuttavia, esiste un tecnico / algoritmo chiamato Minimax (per i dettagli, consultare https://en.wikipedia.org/wiki/Minimax ). L'algoritmo consiste nel cercare di prevedere quale giocatore ha il sopravvento in diversi scenari con una funzione ricorsiva. Ecco una chiara spiegazione di come funziona con un gioco più semplice: Tic-tac-toe https://www.neverstopbuilding.com/blog/2013/12/13/tic-tac-toe-understanding-the-minimax-algorithm13 .


Sebbene altre risposte non si riferiscano esplicitamente a minimax, alcune si riferiscono a collegamenti che alla fine portano a loro o alla potatura alfa-beta, un algoritmo per implementare minimax in modo più efficiente. Cosa aggiunge questa risposta che non è ancora stata detta?
Lucertola discreta

-3

aggiungerà un'altra risposta che enfatizza l'enorme spazio statale, non concettualizzato nella domanda o sottolineato in altre risposte. deve essere in disaccordo con la tua premessa:

Diciamo che abbiamo la potenza di calcolo per sviluppare un algoritmo che prevede tutti i possibili movimenti dell'avversario in una partita a scacchi.

vedi informazioni sull'articolo di Shannon del 1950, "Programmazione di un computer per giocare a scacchi" che introduceva il campo della riproduzione / algoritmi di scacchi basati su computer e che la sua analisi è sostanzialmente invariata e ancora valida (anche dalla successiva rivoluzione informatica e dalla legge di Moores ). stima il numero di mosse. è assolutamente astronomico. nella gamma di "hardware mai concepibile nemmeno con rivoluzionari progressi imprevisti".

è un fatto psicologico documentato [3], probabilmente uno dei tanti pregiudizi psicologici [2], secondo cui gli umani hanno difficoltà a comprendere numeri di questa portata. Guarda anche pensiero controfattuale . [4] mentre i supercomputer calcolano enormi problemi, il suo non è controverso nel raggio di qualsiasi supercomputer attualmente costruito o potrebbe mai essere costruito. (e molti appassionati di scacchi sosterrebbero che questa "esplosione combinatoria" nelle possibilità di mossa / posizione è un aspetto intrinseco del "sapore" dei giochi che sembra intenzionalmente progettato nel gioco millenario).

pertanto gli scacchi sono fondamentalmente diversi rispetto ad alcuni giochi che hanno spazi di stato "risolvibili" più piccoli [di cui esiste uno studio in informatica e teoria dei giochi, ecc.] e in alcuni modi chiave non possono essere valutati in tale ambito.

101234×10791081

ora, detto ciò, è concepibile (ma improbabile) che possano esserci intuizioni teoriche nel gioco che potrebbero essere utilizzate per potare sostanzialmente lo spazio di ricerca. questo è accaduto dal 1950, ma in realtà non in alcun modo sostanzialmente rivoluzionario.

Guarda anche

[1] qual è la complessità computazionale della risoluzione degli scacchi, tcs.se

[2] pregiudizi umani nel giudizio e nel processo decisionale

[3] Gli studenti di psicologia pubblicano ricerche sulla concettualizzazione dei numeri

[4] pensiero controfattuale


bene in teoria la mia domanda è iniziata, diciamo che abbiamo la potenza di calcolo, uniamo metà dei computer del mondo per lavorare come un cluster per il bianco e l'altra metà per il nero ....
John Demetriou

1
amico, regge anche se agganciare ogni supercomputer che ora esiste o esiste. la tua domanda equivale quindi a "in teoria, se la teoria fosse falsa ..." la teoria (compresa la fisica) in pratica dice che ovviamente non puoi calcolare (molto) più percorsi di quanti ci siano atomi nell'universo, ora o mai in futuro .. .
VZN

3
vero, ma la domanda inizia con DIAMO CHE ABBIAMO IL POTERE INFORMATICO, è possibile farlo? questa è la vera domanda, se abbiamo il potere, può esserci un algoritmo?
John Demetriou,

+1 per affermare che è fisicamente impossibile raggiungere il potere computazionale necessario per risolvere esattamente gli scacchi. Inoltre, non so perché tutti i -1 con questa risposta, ritengo sia giusto e aggiungano una buona visione delle altre risposte.
Alejandro Piad,
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.