Un motore di scacchi può dirti perché una mossa è buona o cattiva?


8

Qualche motore di scacchi può dirti perché una mossa è buona o cattiva? Ad esempio, supponiamo che un motore di scacchi dica che il punteggio contro il mio avversario è attualmente +2 a mio favore. Poi faccio una mossa e il mio punteggio scende a dire 1.4. Qualunque motore può dirmi che cosa ho fatto di sbagliato in modo che il mio punteggio sia sceso da 2 a 1.4 (supponendo che non ho appeso un pezzo, una pedina ecc.)

Mi sembra che avere programmatori di scacchi che rendono i loro programmi ancora più forti non abbia più senso e sarebbe molto più vantaggioso per il giocatore di scacchi medio se potessero avere i loro programmi che ci spiegano perché una mossa è cattiva (o buona), supponendo che attualmente non possano Fai questo.


5
Potrebbe essere più utile cercare di capire perché una mossa è buona o cattiva.
Tony Ennis,

Risposte:


7

Una specie di (ma non proprio) - e in realtà sta diventando più difficile per i motori farlo per te. Per capire perché, devi capire come va la valutazione. I motori in genere possono eseguire valutazioni snap su una determinata posizione, assegnandole un valore in punti non elaborati. Quindi, qualunque sia la posizione, giocano in avanti, cercando di trovare la linea in avanti che ottimizzi quel punteggio per entrambe le parti.

È importante capire che il punteggio "2.0" o "1.4" non è la valutazione / il punteggio per la posizione corrente. Invece, è la valutazione N che si sposta lungo la linea, con ciascuna parte che gioca la mossa migliore trovata dal motore. Questo è il motivo per cui il "punteggio di valutazione corrente" salta mentre il computer sta pensando. Non è che il 'punteggio' per una posizione è cambiato - è solo che ha trovato una linea diversa che si muoveva in avanti e che finiva in una posizione diversa (che aveva un punteggio diverso).

In passato i motori facevano schifo. Non solo a causa di algoritmi non ottimali, ma a causa di un hardware molto lento - se pensi che l'interesse composto sia potente, non è nulla rispetto alla Legge di Moore . Quindi i computer di allora stavano solo guardando qualche mossa verso il futuro. Il che ha reso relativamente facile per un essere umano seguire la logica: il tuo punteggio è diminuito perché stai perdendo il tuo cavaliere il turno successivo.

Ma ora? Se il tuo punteggio è passato da '2,0' a '-0,3', è possibile perché, a causa di alcune tattiche inevitabili nelle prossime 7 mosse, dovrai rinunciare allo scambio per evitare di perdere la tua regina o essere scontrato . Ma è difficile mostrare il salto da "Ecco la posizione ora" e "Bene, ho valutato 20 miliardi di posizioni in futuro, e fidati di me quando dico che sacrificare la torre per il loro vescovo è stato il massimo che si possa sperare".


4

@D_M parla di Chessmaster, ma riporta solo funzioni statiche molto semplici come:

  • La tua regina viene attaccata
  • Perdi una pedina nella linea del computer
  • Vinci uno scambio nella linea del computer

Sai perché Chessmaster l'ha fatto? Questo perché l'implementazione è stata semplice.

Qualunque motore può dirmi che cosa ho fatto di sbagliato in modo che il mio punteggio sia sceso da 2 a 1.4 (supponendo che non ho appeso un pezzo, una pedina ecc.)

NO . Chesmaster non può farlo. Nessun software può farlo. Non abbiamo la tecnologia per farlo. Le tecniche di programmazione del motore tradizionale non possono farlo.

Per fare ciò che descrivi, abbiamo bisogno di modelli avanzati di matematica / apprendimento automatico. Non sono a conoscenza di nulla del genere.


Ma ... la mia versione di Chessmaster DID va oltre il semplice materiale e parla all'utente di considerazioni di posizione. Forse avevi una versione precedente? E anche se non mi credi a Chessmaster per qualche motivo, chiaramente è possibile avere a che fare con la tecnologia attuale, dato che attualmente abbiamo algoritmi che segnano posizioni basate su cose come spazio e posizione di pedone. I motori sarebbero molto più deboli se l'unica cosa che guardassero fosse materiale.
DM

@D_M No. Sono uno sviluppatore esperto di motori, so di cosa sto parlando. È possibile, niente è impossibile. Abbiamo inviato sonde nello spazio, è ovviamente possibile costruire un motore di scacchi più intelligente. Ma non abbiamo ora.
SmallChess,

@D_M Quali considerazioni posizionali menzioni in Chessmaster? Post output?
SmallChess,

C'è stato un esempio di output su chess.com/forum/view/general/chessmaster9 se si scorre verso il basso vicino al fondo. "Come risultato di questa linea di gioco, il tuo potenziale di attacco è aumentato. Inoltre, lo sviluppo delle tue pedine è leggermente migliorato." È praticamente l'output che ricordo. Ti darei altri esempi da solo se Windows 10 fosse in grado di eseguire il mio vecchio CD di Chessmaster 9000 (o se l'unità CD non fosse rotta sul mio vecchio computer.)
DM

Ne ho trovato un altro qui: chess.com/forum/view/chess-equipment/… "Come risultato di questa linea di gioco, vinci un vescovo e una pedina. Inoltre, la mobilità dei tuoi pezzi è notevolmente migliorata e Black's la mobilità è ridotta. Inoltre, la formazione del pedone di Black è in qualche modo interrotta. Infine, la pressione sul Re di Black è in qualche modo aumentata e la pressione sul tuo Re è leggermente diminuita. "
DM

1

Oltre ad altre risposte, i motori non valutano posizioni come gli umani, quindi non possono fornire una buona spiegazione del motivo per cui pensano che la tua mossa sia inferiore (enfasi su pensano, non necessariamente).

Ma puoi seguire i margini usando i suggerimenti del motore e capire perché era inferiore. Almeno questo è quello che faccio.

Potrebbe esserci un motore in grado di farlo? Immagino di sì, ma dal punto di vista commerciale, probabilmente, è necessario uno sforzo incommensurabilmente enorme.


Se osservi la funzione di valutazione dei motori degli scacchi, direi che valutano le posizioni più o meno allo stesso modo degli umani. La differenza è che i computer sono in grado di valutare rapidamente molte posizioni in varie linee mentre un essere umano si affida maggiormente all'esperienza / ai principi generali.
user1583209

1

Penso che il motore degli scacchi possa "dirti", ma in modo indiretto.

Quello che vorrei fare è giocare diverse mosse diverse dalla stessa posizione. Il motore di scacchi (presumibilmente) ti darà un punteggio diverso per ognuno.

Questo ti permetterà di "classificare" le varie mosse. Forse emergerà un modello. Altrimenti, potresti voler ottenere un giocatore umano (più forte) per spiegarti le classifiche del motore di scacchi.


1

Sì, ho visto programmi che tentano di spiegare perché una mossa è buona o cattiva nella lingua. Chessmaster 9000 lo farebbe.

Molti motori ti mostreranno la linea migliore per ogni mossa. Quindi può dirti che se giochi a g6, si aspetta che il gioco diventi f5 gxf5 Nxf5, mentre se giochi a b6 si aspetta che il gioco diventi a5 bxa5 Bxa5. Spesso da lì puoi vedere perché la mossa è stata buona o cattiva. Ma a volte è ancora molto sottile.

C'è uno strumento qui in cui puoi inserire una posizione e ti dirà esattamente perché Stoccafisso valuta la posizione in questo modo. Funziona solo per una posizione statica (non guarda affatto avanti), ma è comunque interessante.


Come posso usare quello strumento? Sembra un documento htm. Come aprirlo e interagire con esso?
Santropedro,

Personalmente, l'ho scaricato e quindi trascinato e rilasciato il file in un browser.
DM

0

No. Anche se Chessmaster, come menzionato da tutti, può dirti alcune cose di base come se la seguente riga comporti un sacrificio di scambio o potresti perdere una pedina e così via.

Ma puoi anche analizzarlo tu stesso giocando le righe. Non ci sono motori di scacchi né ne vedo alcuni nel prossimo futuro che possano spiegare perché la mossa è buona / cattiva a meno che non vi costerà differenza materiale. Dato che un motore può aver giocato una mossa per migliorare la sua posizione in futuro, diciamo come dopo 50 mosse. Non è possibile spiegarti perché questa mossa si tradurrà in una posizione migliore dopo 50 mosse.

Anche i principali motori di scacchi sul mercato come lo Stoccafisso ecc. Non si preoccupano nemmeno di includere caratteristiche come il livello a cui giocano i motori di scacchi sono completamente diversi e molto difficili da analizzare anche se ci viene fornita una spiegazione di ogni mossa.


Chessmaster ha detto cose come "Come risultato di questa linea di gioco, il tuo potenziale di attacco è aumentato. Inoltre, lo sviluppo delle tue pedine è in qualche modo migliorato" o qualcosa del genere, e non si è limitato a dire se vinceresti o perdere materiale. Almeno la mia versione ha fatto.
DM

0

La valutazione del motore ("2" / "1.4") è in effetti molto simile a come un umano valuterà una posizione. È fondamentalmente una somma di vari fattori come materiale , sicurezza del re , attività del pezzo , ecc. Valutati non per la posizione corrente ma per la posizione circa 20 passi avanti o giù di lì; assumendo un gioco perfetto da entrambi i lati.

In linea di principio, si potrebbe provare a monitorare separatamente il cambiamento di tutti questi fattori (anziché solo la loro somma come fanno i motori). Ad esempio, se una mossa porta a un valore inferiore per "sicurezza del re" in un momento successivo rispetto alla mossa migliore, si potrebbe essere tentati di dire allo studente qualcosa come: La tua ultima mossa ha reso il tuo re più vulnerabile

Tuttavia dubito che questo funzionerebbe nei giochi reali, perché:

  • la mossa del discente potrebbe in effetti avere altri problemi: per esempio potrebbe trascurare lo sviluppo e solo per questo il giocatore potrebbe dover fare delle concessioni in seguito riguardo alla protezione del suo re (assumendo il miglior gioco).
  • molti fattori potrebbero cambiare allo stesso tempo, alcuni salendo alcuni scendendo ad esempio. Cercare di esprimerlo a parole potrebbe essere complicato, ad esempio: la tua ultima mossa ha trascurato la sicurezza del re, ma ha migliorato l'attività del tuo pezzo e hai perso una pedina ma hai occupato un file aperto Queste informazioni sarebbero utili per uno studente?

Per questo motivo, dubito che i computer saranno in grado di insegnarti un gioco di posizione o intuitivo (basato sui principi) almeno con la tecnologia attuale. Meglio usare metodi classici come altri umani, leggere / guardare / ascoltare giochi annotati, ecc

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.