Esiste un motore di scacchi in grado di mostrare se un lato ha un pareggio forzato?


11

Esiste un motore di scacchi che ha una modalità di analisi in grado di mostrare se una posizione è un pareggio forzato da entrambe le parti?

È comune per i motori fornire valutazioni di 0,0 quando rilevano un pareggio. Ma una valutazione di 0,0 può significare molte cose. Ad esempio, supponendo che sia bianco da spostare, una valutazione di 0,0 può significare:

  • Il gioco è sicuramente un pareggio indipendentemente da come uno dei due giocatori gioca (ad esempio materiale insufficiente).
  • Entrambi i giocatori possono forzare un pareggio. Nessuno dei due giocatori può sperare di vincere se il loro avversario gioca perfettamente.
  • Indipendentemente dalla mossa dei giochi bianchi, il computer è sicuro al 100% che il nero possa forzare un pareggio, se lo desidera. Il bianco non può sperare di vincere se il nero gioca perfettamente. Il pareggio è il risultato più probabile, ma una ricerca più approfondita potrebbe mostrare che il nero può forzare una vittoria.
  • Il computer è sicuro al 100% che il bianco possa forzare un pareggio se lo desidera. Il nero non può sperare di vincere se il bianco gioca perfettamente. Il pareggio è il risultato più probabile, ma una ricerca più approfondita potrebbe mostrare che il bianco può forzare una vittoria.
  • Il computer non ha trovato un pareggio forzato per entrambi i lati, ma la valutazione finora è esattamente a livello. Il pareggio è il risultato più probabile, ma una ricerca più approfondita può in seguito mostrare un vantaggio per una parte.

Solo per dare un esempio di quando questo potrebbe essere utile, se il bianco non ha bisogno di vincere e vuole solo essere il più sicuro possibile di ottenere un pareggio, potrebbe preferire giocare una mossa con valutazione +0.0 e un pareggio forzato noto anche se è disponibile un'altra mossa con una valutazione più elevata.

Un altro esempio è che se hai bisogno di una vittoria (cioè un pareggio è altrettanto negativo di una perdita) potresti voler giocare una mossa con una leggera valutazione negativa per evitare di dare al tuo avversario l'opportunità di forzare un pareggio. Anche se questo aumenta le possibilità di perdere, aumenta anche le possibilità di vincere.

Ovviamente ci sono posizioni in cui è difficile o impossibile essere sicuri che sia disponibile o meno un pareggio forzato. Ma se il motore annuncia un pareggio forzato, allora deve essere possibile forzare un pareggio. I falsi negativi sono accettabili ma non dovrebbero esserci falsi positivi.

Quindi, in sintesi, vorrei sapere per una posizione specifica se uno (o entrambi i giocatori) hanno a disposizione un pareggio forzato. Il calcolo della valutazione numerica della posizione non è necessario, ma se fornisce anche questo allo stesso tempo, è un vantaggio.


Conoscere questa parte del punto dei tavoli endgame a 6 pezzi?
Tony Ennis,

2
Le basi del tavolo aiutano, perché allora sai che un punteggio di 0,0 è per certo un pareggio forzato con un gioco ottimale. Ma vorrei che il motore mi dicesse se trova un pareggio forzato da qualsiasi posizione di partenza arbitraria, incluso (specialmente) quando ci sono più di 6 pezzi. Ad esempio, se il bianco entra in una posizione in cui può forzare il controllo perpetuo, mi piacerebbe che il motore me lo dicesse, anche se non è necessariamente la migliore mossa del bianco in base alla funzione di valutazione.
Mark Byers,

Sono curioso di sapere quando in pratica potresti trarre vantaggio da questo tipo di calcolo. Questa sarebbe una bella caratteristica. Nello stoccafisso utilizzo la funzione di "variazione multipla" dell'analisi UCI, che ordina le mosse in ordine di punteggio di valutazione. I sorteggi forzati compaiono nella lista abbastanza ovviamente quando si tratta di controlli perpetui o stallo, ma a volte è meno chiaro, e come dici tu, se vai più in profondità potrebbe non essere un pareggio.
Eve Freeman,

1
Ma quanto è forzato? Penso che in molti casi dei cosiddetti sorteggi forzati, l'avversario possa ancora deviare, ma a costo di una posizione chiaramente peggiore. Una posizione in cui il bianco può forzare un pareggio o un tiro completo non sarebbe un pareggio forzato, limitando l'utilità.
Remco Gerlich,

Se il bianco è in grado di forzare un pareggio invece di fare una torre, mi piacerebbe saperlo.
Mark Byers,

Risposte:


9

La risposta breve alla tua domanda è no , non esiste un motore di scacchi in grado di mostrare in modo affidabile se una parte ha un pareggio forzato. Ad esempio, questa posizione bloccata è abbastanza chiaramente un richiamo per l'occhio umano:

Posizione chiusa, pareggio senza speranza

Tuttavia, si noti che la valutazione è 0,17 , non 0,00 . Houdini dà anche 0,05 - sempre leggermente buono per il bianco. Questo è molto importante. Ciò suggerisce che la valutazione di 0.00 è riservata a questi programmi per un motivo specifico, e in effetti lo è. Fondamentalmente, anche in una posizione "uguale", il computer non dirà mai che il punteggio è 0.00 , invece darà un vantaggio di un minuto all'una o all'altra parte.

Quindi, con quello sfondo, per i dettagli! In primo luogo, se il gioco è solo un pareggio a causa della posizione (cioè stallo, materiale insufficiente, ecc.) La maggior parte delle GUI farà apparire un messaggio che dice "Game Drawn", o qualcosa in tal senso. Ciò lascia i casi più complicati che hai citato nella tua domanda. Per coprire la maggior parte di questi, introdurrò un'altra posizione. Questo è tratto da Morphy-NN 1-0, New Orleans Blindfold Simul:

Morphy - NN 1-0, New Orleans Blindfold Simul

Si noti che Morphy attualmente ha compagno in 6 a partire da 18.b4+!. Tuttavia, se Morphy in qualche modo mancava che si trattasse di un compagno, aveva ancora un pareggio forzato per ripetizione, che il computer vede rapidamente. Aumentando il numero di variazioni visualizzate dal computer, è possibile vedere che dopo che il bianco ha fatto una mossa simile 18.Qxc3+?, il bianco può ancora forzare un pareggio, nonostante sia in una torre e in un pezzo. La valutazione di 0.00 ci suggerisce ancora una volta che questa è una posizione speciale in quanto il computer può calcolare un controllo perpetuo. Se le mosse 18.Qxc3+? Kxd5vengono fatte sul tabellone, la valutazione sarà 0,00 , indicando che la migliore continuazione del bianco è forzare un pareggio. In caso contrario, si verificherà la perdita del gioco con il miglior gioco.


Quindi, per riassumere, nessun motore esistente può dire con assoluta certezza che una posizione è un pareggio. Tuttavia, la valutazione di 0,00 è speciale, e se ciò si presenta come il punteggio principale o il punteggio per una variazione, significa che probabilmente un pareggio viene forzato in quella linea specifica. Il modo più semplice per controllare è chiamato scherzosamente "analisi della barra spaziatrice" - quando l'utente colpisce ripetutamente la barra spaziatrice per forzare il computer a giocare la mossa consigliata. Alla fine arriverai a una posizione ovvia sia per un uomo che per la macchina.


E infine, per affrontare il tuo punto sul "disprezzo"

Un altro esempio è che se hai bisogno di una vittoria (cioè un pareggio è altrettanto negativo di una perdita) potresti voler fare una mossa con una leggera valutazione negativa per evitare di dare al tuo avversario l'opportunità di forzare un pareggio. Anche se questo aumenta le possibilità di perdere, aumenta anche le possibilità di vincere.

Questo è semplicemente indicato come disprezzo tra i programmatori di scacchi. La maggior parte dei motori ti permetterà di impostare il livello di disprezzo nelle impostazioni. Un'impostazione di disprezzo positiva (100 è di solito un livello ragionevole per l'analisi) dirà al motore di provare abbastanza (valore di un pedone) per evitare un pareggio. Un'impostazione negativa farà sì che il motore cerchi un pareggio forzato (cioè materiale insufficiente, stallo o perpetuo).


Questa è all'incirca la stessa idea del commento di Wes Freeman alla domanda, e proprio come quello che descrive richiede un input umano - "I disegni forzati vengono mostrati nella lista abbastanza ovviamente [a volte], ma a volte è meno chiara" - la tua risposta ha l '"analisi della barra spaziatrice" che contribuisce umana. Questo è il motivo per cui suggerisco di modificare la funzione di valutazione nella mia risposta; lo stiamo facendo in modo che il motore stesso cerchi effettivamente i tiri forzati e ci faccia sapere quando sono definitivamente presenti. Questa sembra essere l'unica differenza sostanziale tra gli approcci.
ETD,

@EdDean Sono d'accordo. I sorteggi più difficili da trovare sono quelli in cui un endgame non può essere vinto, ma una parte può premere per sempre per la vittoria. Separatamente, cambiare la funzione di valutazione dei motori sarebbe un approccio, ma molto probabilmente non è qualcosa che può essere fatto in tempi ragionevoli. Al momento è possibile giocare con le impostazioni di disprezzo, ma ciò non equivale a riprogrammare un motore come si suggerisce. Le impostazioni modificabili dall'uomo sono piuttosto limitate sui motori attuali.
Andrew

Quell'impostazione del disprezzo è ordinata, non l'avevo notato.
Eve Freeman,

2
A proposito, non credo che 0,00 sia sempre indicativo di un pareggio forzato, che sembra implicare. Lo vedo di tanto in tanto anche nelle prime aperture - suppongo che significhi solo che, data la posizione e il materiale attuali, è probabile che sia uniforme e la valutazione sembra essere 0,00.
Eve Freeman,

3
Interessante. Nello stoccafisso non lo è sicuramente. Basta analizzare la posizione di apertura per alcuni secondi restituirà un sacco di 0,00 punteggi.
Eve Freeman,

4

Proprio come i motori possono, in alcuni punti, vedere un compagno forzato un certo numero di mosse, perché ci sono abbastanza linee che il motore può vedere tutto perfettamente nella profondità rimanente fino al compagno, ci sono anche delle giunture nei giochi di scacchi che permetterebbero un motore per vedere un pareggio forzato per lo stesso motivo di essere in grado di rilevare completamente le limitate possibilità di gioco.

Inoltre, sarebbe facile modificare la funzione di valutazione di un motore per farlo cercare e preferire le mosse che portano a tali tiri forzati: proprio come il raggiungimento dell'accoppiamento in genere è dato un valore enorme che sminuisce tutti gli altri fattori numerici dell'algoritmo di valutazione del motore considera che per guidare il gioco del motore verso l'obiettivo finale, si potrebbe invece dare un valore numerico così enorme al raggiungimento di uno dei tipi di pareggi che ho in mente.

Ad esempio, valuta automaticamente qualsiasi posizione in cui l'avversario ha materiale insufficiente per accoppiarsi come +1000000. Quindi, se il motore si trova mai con l'opzione di forzare via quel materiale dell'avversario, te lo farà sapere. Inoltre, modifica l'algoritmo di valutazione per valutare una ripetizione tripla come +1000000 invece del solito 0. Quindi, se esiste una ripetizione forzata (come in uno scenario di controllo perpetuo), il motore lo adorerà e ti farà sapere . Allo stesso modo, dai +1000000 se uno può forzatamente raggiungere un sorteggio di tablebase.

Potresti anche assicurarti che il motore fornirà queste valutazioni solo quando c'è la completa certezza che i sorteggi sono davvero forzati (perché l'albero tra qui e lì ha potuto essere controllato completamente), proprio come con un motore che non annuncia il compagno a meno che non è sicuro. Pertanto, non otterrai falsi positivi, anche se ovviamente ci saranno molti falsi negativi, che permetti sensibilmente / necessariamente alla tua domanda.


Non credo che nessun motore funzionerà in questo modo "out of the box" a causa di fattori di disprezzo e del modo in cui potano. Fondamentalmente, se fosse trovato un pareggio, qualsiasi linea che ha vinto materiale sarebbe esclusa. Quindi, per esempio, controllare il re sarebbe preferibile per catturare una torre gratuita. Sto considerando di pubblicare una risposta più lunga perché ci sono modi per utilizzare i motori attuali per farlo, ma non voglio rivelare troppi segreti di preparazione. ;)
Andrew

Nessun motore funzionerà come ho descritto "out of the box", è vero, dato che sono progettati per cercare vittorie; per lo stesso motivo, dovresti fare alcune modifiche per far funzionare un motore normale, diciamo, un suicidio a scacchi. Ho già che stiamo modificando la funzione di valutazione; qualsiasi fattore di disprezzo può essere modificato / disabilitato insieme a ciò che ho suggerito se necessario, sì? Il mio punto principale è che penso che i motori esistenti possano essere riproposti (in un modo ragionevolmente semplice) per funzionare come Mark vuole. Quindi, almeno al momento, lo vedo ancora come un modo per "usare i motori attuali". Tuttavia, la mia mente può sempre essere cambiata. :)
ETD,
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.