Esiste un motore che trova la migliore mossa "pratica"?


25

Un motore di scacchi standard troverà la mossa che considera migliore assumendo il miglior gioco da entrambe le parti. Ma questa mossa potrebbe portare a un vantaggio insignificante o una linea delicata che può facilmente provocare errori per un giocatore umano di un'abilità specifica. Esiste un programma che trova la migliore mossa "pratica", ad esempio per i giocatori intermedi? Ad esempio, potrebbe scegliere una mossa che porta a una posizione di attacco molto forte in cui l'avversario molto probabilmente commetterà un errore, anche se potrebbe essere difeso con un gioco perfetto.


5
Domanda molto interessante, ma penso che implementare qualcosa di simile potrebbe essere difficile perché "pratico", potrebbe essere molto diverso a seconda della situazione. Ad esempio, la stessa mossa sarebbe ugualmente pratica contro un avversario 200 punti sopra e 200 punti sotto? Che dire del gioco classico contro il gioco blitz?
Akavall,

Vuoi qualcosa di più vicino ad aspettartix di minimax?
Mehrdad,

Questo mi ricorda il poker. Penso che la maggior parte dei pokerbot faccia sempre mosse pratiche invece di assumere un equilibrio di Nash e provare a giocare le mosse migliori teoriche.
Paolo

Un modo di pensare a questo è che stai cercando di quantificare una diversa funzione oggettiva. Quando perdi, non vuoi minimizzare quanto perdi (chi se ne frega se perdi per un centopiedi o una regina). Invece, vuoi minimizzare quanto perdi, a condizione che ci sia ancora una linea per cui il tuo avversario potrebbe ragionevolmente cadere. Puoi quantificare "ragionevolmente cadere per" contando "solo" le mosse o le situazioni in cui solo la mossa superiore (o due) continua il proprio vantaggio, ma altre mosse portano al tuo vantaggio.
ddunn801

Come analogia, nel football americano calcia un calcio di punizione perché ti dà la (sottile) opportunità di segnare rapidamente anche se il risultato atteso ti farebbe peggiorare.
ddunn801

Risposte:


22

Stai descrivendo qualcosa che è molto simile al disprezzo . L'idea con disprezzo è che se mantieni più dinamismo nella posizione, è più probabile che un avversario più debole commetta errori che puoi sfruttare. Pertanto, date due mosse che producono valutazioni simili, un motore con un punteggio di disprezzo elevato sceglierà quello che mantiene più dinamismo nella posizione. Tutti i motori tradizionali più potenti hanno tutti implementato il disprezzo (esempio per Komodo ).

Il pericolo di disprezzo è che, contro un avversario forte, un alto disprezzo può farti uccidere - dopo tutto stai costringendo il motore a giocare una mossa più debole solo per mantenere viva la partita.


1
Grazie, è simile a quello che sto cercando, ma la mia domanda è anche per i giocatori della stessa abilità. Ad esempio, una mossa potrebbe portare a una vittoria 9/10 volte considerando le probabili mosse che l'avversario farà.
Ari,

3
@Ari è simile però. Fai due mosse, una delle quali porterà a un pareggio e l'altra potrebbe portare a una vincita del 90% delle volte e ad una perdita del restante 10% delle volte. Un motore con un livello di disprezzo molto alto potrebbe scegliere quest'ultimo (e perdere contro una difesa perfetta).
Allure

1
Senza disprezzo i motori probabilmente trarrebbero la maggior parte dei giochi contro avversari inferiori non escludendo ripetizioni forzate in qualsiasi momento.
Ignoranza inerziale

1
Può essere molto buono se l'altro giocatore sta esaurendo il tempo sul proprio orologio.
Ian Ringrose,

@Ari Se il tuo avversario è allo stesso livello di te, allora se puoi fare una meta analisi di una linea (cioè non solo decidere se sta vincendo, ma stimare con quale probabilità il tuo avversario vedrà che sta vincendo), allora loro probabilmente sarò in grado di analizzarlo.
Accumulo

6

Ho capito che questa domanda si applica principalmente ai motori di scacchi standard che usano le funzioni minimax per valutare le mosse. Tuttavia i motori di scacchi come Alphazero usano la ricerca dell'albero di Monte Carlo per simulare molti giochi diversi, quindi non stanno solo guardando le migliori mosse possibili. È possibile che possano già essere utilizzati per trovare la migliore mossa "pratica" o che possano essere adattati a tale scopo. Ad esempio, l'algoritmo di ricerca monte carlo potrebbe essere aggiornato per esaminare le mosse "ragionevoli" e simulare ciò che accade.



Ma poi devi programmare "ragionevole" nell'algoritmo.
Inertial Ignorance

1

Non proprio.

I database sono utili perché possono dirti spesso che viene giocata una mossa e quale sia il risultato, tuttavia non sono perfetti per una serie di motivi.

Fritz 12 (non sono sicuro delle versioni successive) ha un contatore "hotness" che ti dice quanto è complessa una variazione.

Linea di fondo. è una combinazione di cose. Stai cercando mosse in cui le mosse di principio risultano essere cattive. Nessun motore può dirtelo.

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.