Recentemente ho discusso con una persona non programmatrice sulle possibilità dei computer di scacchi. Non sono esperto in teoria, ma penso di saperne abbastanza.
Ho sostenuto che non poteva esistere una macchina di Turing deterministica che vincesse sempre o andasse in stallo agli scacchi. Penso che, anche se cerchi l'intero spazio di tutte le combinazioni di mosse del giocatore1 / 2, la singola mossa che il computer decide su ogni passo si basa su un'euristica. Essendo basato su un'euristica, non batte necessariamente TUTTE le mosse che l'avversario potrebbe fare.
Il mio amico pensava, al contrario, che un computer avrebbe sempre vinto o pareggiato se non avesse mai fatto una mossa "sbagliata" (comunque lo definisci?). Tuttavia, essendo un programmatore che ha preso CS, so che anche le tue buone scelte - dato un saggio avversario - possono costringerti a fare mosse "sbagliate" alla fine. Anche se sai tutto, la tua prossima mossa è avida di abbinare un'euristica.
La maggior parte dei computer di scacchi cerca di abbinare un possibile finale di partita al gioco in corso, che è essenzialmente un traceback di programmazione dinamico. Anche in questo caso, l'endgame in questione è comunque evitabile.
Modifica: Hmm ... sembra che ho arruffato alcune piume qui. Quello è buono.
Ripensandoci, sembra che non ci siano problemi teorici nel risolvere un gioco finito come gli scacchi. Direi che gli scacchi sono un po 'più complicati della dama in quanto una vittoria non è necessariamente per esaurimento numerico dei pezzi, ma per un compagno. La mia affermazione originale probabilmente è sbagliata, ma penso di aver sottolineato qualcosa che non è ancora stato dimostrato in modo soddisfacente (formalmente).
Immagino che il mio esperimento mentale fosse che ogni volta che viene preso un ramo dell'albero, l'algoritmo (o percorsi memorizzati) deve trovare un percorso per un compagno (senza essere accoppiato) per ogni possibile ramo sull'avversario si muove. Dopo la discussione, comprerò che data più memoria di quanto possiamo sognare, tutti questi percorsi potrebbero essere trovati.