Approcci alternativi alla programmazione del motore di scacchi


14

Per quanto ho capito, in parole povere, i motori di scacchi funzionano con:

  1. calcolare tutte le possibili variazioni (albero del gioco) fino a una certa profondità
  2. valutazione della posizione finale in base ad alcuni criteri (materiale, attività pezzo ...)
  3. sulla base di questa valutazione decidere la mossa migliore

Capisco perfettamente che per avere un motore efficiente ci sono modi per potare determinate linee, limitando la profondità, ecc .; ma questa non è la mia domanda.

La domanda è: ci sono tentativi alternativi di programmare un motore di scacchi (non necessariamente forte, ma neanche casuale), che non segue questo schema?


Botvinnik ha provato a potare la mossa principale facendo cercare al computer solo la mossa candidata migliore. Non c'è stato un tentativo riuscito di questo, e gli scacchi sono meglio per questo.
Fred Knight,

Risposte:


13

Negli anni iniziali degli scacchi per computer, le persone hanno effettivamente cercato di insegnare agli scacchi per computer nello stesso modo in cui lo fanno con gli umani, spiegando concetti strategici come una struttura di pedine sane o l'iniziativa. Questi tentativi furono presto abbandonati perché il metodo che descrivi ebbe molto più successo.

Di recente, c'è stato un altro tentativo di lasciare che un motore si insegnasse a scacchi tramite Deep Learning (probabilmente incoraggiato dal successo di Go AI di Google ). Secondo l'articolo che ho collegato, hanno avuto abbastanza successo e sono riusciti a raggiungere la forza di messaggistica istantanea.


1
Secondo la mia comprensione, Alpha Go funziona esattamente come l'OP descritto e solo la funzione eval di (2.) è basata / creata tramite Deep Learning. L'altra risposta sembra essere un po 'd'accordo.
Hermann Döppes,

According to the article I linked to, they were quite successful and managed to reach IM strengthma se leggerai il documento originale, vedrai che l'articolo ha esagerato il successo.
Salvador Dali,

1
@ HermannDöppes No, AlphaGo si basa sulla ricerca dell'albero di Monte-Carlo.
HelloWorld

3

@Glorfindel non è sbagliato ma l'approccio di apprendimento profondo agli scacchi è davvero un termine elaborato per la regolazione dei parametri nella programmazione degli scacchi.

L'apprendimento profondo consente a un motore di scacchi di apprendere una funzione di valutazione, qualcosa di solito scritto a mano da un programmatore. Durante una partita, funziona come un normale motore di scacchi.

Altre possibilità:

  • Programmazione di scacchi GPU
  • Ricerca dell'albero di Monte-Carlo

La maggior parte della tua risposta dovrebbe essere un commento in [risposta di Glorfindel] ( chess.stackexchange.com/a/16293/2789 . La parte che in realtà affronta la domanda è composta da sole sette parole, che non è quasi sufficiente per una risposta. , La "programmazione di scacchi GPU" è solo un modo di parallelizzare qualsiasi algoritmo che potresti altrimenti utilizzare, quindi non penso che sia davvero un "approccio" nel senso che la domanda sta cercando, piuttosto è solo un metodo di implementazione.
David Richerby,

-2

Certamente! Se intendi davvero .... "in teoria, ci sono altri metodi per codificare un motore di scacchi?" ... Allora sì!

Per esempio .... uno potrebbe archiviare una copia di ogni possibile posizione negli scacchi (un numero enorme, lo so), e avere una valutazione per ognuno. Quindi, è la risposta a qualsiasi domanda (ad es. "Mossa migliore per il bianco in posizione X"), sarà immediatamente nota semplicemente guardando quella tavola. Lo stato attuale dell'hardware del computer è tale che avrebbe senso? Nah. Ma non l'hai chiesto.

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.