Ci sono molti siti web online, dove i giocatori possono giocare a scacchi in tempo reale tra loro. La maggior parte dei giochi dura 5-10 minuti. Con la disponibilità del software di scacchi si può trarre vantaggio dalluso di Fritz o Rybka per suggerirgli una mossa.

Ad esempio, posso semplicemente inserire ogni mossa del mio avversario e vedere cosa mi suggerirà il software .

Stavo pensando ad alcune caratteristiche che possono suggerire che il giocatore stia barando:

  • numero di volte in cui cambia schermo
  • velocità di gioca (in posizioni facili e in posizioni veramente difficili)
  • precisione del gioco

Qualcuno ha altre idee?

PS: Sì non importa per me, da quale prospettiva stai pensando (lato server o lato client).

Commenti

  • Ottima domanda e problema rilevante oggi! Ma intendi rilevare gli imbrogli online utilizzando un algoritmo o rilevare come un giocatore umano mentre si gioca un avversario?
  • Le strategie di rilevamento degli imbrogli funzionano solo quando il baro è ” stupido “. Adottare strategie di imbroglio più intelligenti (vedere il mio commento a NoviceProgrammer ‘ s answer) renderebbe quasi impossibile indovinare limbroglio.
  • Penso che questo sia praticamente un non problema. Gioco su chess.com. Immagino che forse 1 persona su 10 tradisce effettivamente. E se sospetto che il mio avversario abbia ricevuto aiuto, lo blocco semplicemente.

Risposta

Questo è effettivamente un domanda molto complessa, e non una che è stata risolta in modo soddisfacente, per quanto ne so. In sostanza, stiamo chiedendo che un algoritmo esegua una sorta di test di Turing inverso, per distinguere tra giocatori umani e computer.

In primo luogo, i controlli lato client avranno sempre punti deboli, a meno che tu non sia in controllo completo dellambiente client. Prendiamo la prima idea: controllare il passaggio da una finestra allaltra, suona bene. Sfortunatamente, funziona banalmente eseguendo un motore di scacchi su un computer separato, o integrando il mio motore con il client in modo che non avvenga alcun “cambio di finestra”, o cambiando il client per segnalare 0 cambiamenti nella finestra, o … Non esiste un vero modo per essere sicuri che sia il tuo codice in esecuzione sul client, davvero.

Ciò che ci resta sono ambienti client fisicamente strettamente controllati (che non accadrà per nessun gioco online), o per il controllo lato server, cioè guardando le mosse effettive che sono state giocate (e forse il tempo tra le mosse, come dici tu), e cercando di dedurre il computer o laspetto umano .

Il controllo lato server può anche dividere un paio di modi. Probabilmente potresti provare un approccio “dallalto verso il basso”, che sarebbe qualcosa sulla falsariga di “dai giochi passati nella storia, solo il 2% degli esseri umani ha fatto quella mossa, mentre il 50% dei computer lo fa “. Questo sarebbe effettivamente un buon modo per farlo, se avessimo dati sufficienti per” una determinata posizione “. La ricerca s Il ritmo degli scacchi è così grande, tuttavia, che anche set di dati molto grandi non avranno un numero significativo di partite corrispondenti alla tua posizione, una volta che avrai superato linizio della partita.

Supponendo che non lo facciamo avere statistiche affidabili sul lato umano dellequazione, potresti comunque presentare la posizione a una serie di motori scacchistici (con un numero di impostazioni di tempo diverse ciascuna) e vedere quanto le mosse dei giocatori corrispondono a quelle di un computer. Di per sé, questo porterebbe anche a molti falsi positivi, tuttavia, ripetuti positivi per lo stesso motore scacchistico e le stesse impostazioni del tempo renderebbero sempre più probabile che il giocatore stesse barando. Per migliorare ulteriormente questo aspetto, probabilmente esaminerei un approccio “dal basso verso lalto” per analizzare le posizioni degli scacchi; in breve, cercando di capire perché umani e computer giocano in modo diverso. Per esempio. gli esseri umani tendono a riconoscere modelli comuni. In un gioco con schemi “strani” o situazioni improbabili, è meno probabile che un essere umano sia in grado di giocare in modo molto accurato. Nessuno di questi, di per sé, è particolarmente dannoso, ma dato un gran numero di giochi, metterebbe in evidenza le tendenze per gli amministratori.

Per aggiungere alcune specifiche al tuo elenco, seguirò la falsariga di come i professori rilevare il plagio nei documenti rilevando un cambiamento improvviso. Negli scacchi, questo è estremamente difficile da definire, ma un improvviso cambiamento nello stile di gioco o nella forza del gioco può indicare un imbroglio. Nello specifico, cercherò mosse insolitamente aggressive che tendano a “funzionare” e non abbiano svantaggi per il giocatore (troppo preciso). Compagni forzati in 4+ mosse da un giocatore che normalmente mette i cavalieri sul bordo del tabellone , ecc (è possibile … ma non probabile). Tuttavia, come funzionerebbe esattamente potrebbe occupare un intero libro (o più).

EDIT: cera un articolo su barare e scoprire negli scacchi di primo livello di recente.

Commenti

  • gli esseri umani contro i computer possono dare falsi positivi all apertura del gioco, è molto facile memorizza le opere migliori
  • @ ajax333221 Sono completamente daccordo. In una certa misura, qualcosa di simile può applicarsi alla fine del gioco, in cui un essere umano potrebbe giocarci abbastanza vicino alla perfezione, solo sulla base di conoscenze precedenti. Detto questo, se riesco a rilevare possibili imbrogli in un gioco, ‘ sono sicuro che con informazioni aggiuntive e analisi sofisticate, un computer potrebbe fare lo stesso. Il compagno forzato in 4+ mosse era un esempio reale di una recente partita online contro un giocatore valutato 1050 – altamente suggestivo, per non dire altro …

Risposta

In blitz, puoi dire da quanto tempo “stanno usando. Le persone che usano i motori impiegano una quantità di tempo costante per ogni mossa, invece di frenare lapertura e rallentare a gattonare nel mediogioco come la maggior parte dei giocatori normali. In particolare, non possono giocare velocemente allinizio, perché devono aggiornare il loro computer dopo ogni mossa di apertura. Se impiegano cinque secondi alla seconda mossa e cinque secondi alla ventina, probabilmente stanno utilizzando un motore.

Commenti

  • Non sono sicuro se questo era vero al momento della pubblicazione, ma stockfish può accettare il tempo rimanente come input per dare la priorità alle mosse in cui trascorrere il tempo.

Risposta

Il numero di schermate e la velocità di gioco non hanno senso. Se li usi per lamentarti con gli organizzatori di un sito di scacchi online, rideranno di te.

Ci sono due modi per capire se qualcuno sta barando. Il primo è la “pistola fumante”. Considera questa sezione del gioco –

[White "Allwermann,Clemens (1900) "] [Black "Kalinitschev,Sergey (2505) Boeblingen (9), 30.12.1999"] [FEN "r6k/1p3Rpp/p2p1bq1/3N4/2P5/1P6/P1b2QPP/5RK1 w - - 0 1"] 1.Qa7 Rg8 2.Qxb7 Be4 3.Nf4 Qf5 4.Qd7 Qe5 5.Kh1 g5 6.Nh3 g4 7.Nf2 Bf5 8.Nxg4 Be4 9. R7xf6 Bxg2+ 10. Kxg2 Qe4+ 11. Kh3 

La domanda è: cosa giocheresti in quella La situazione è che una vittoria in questo, lultimo round della competizione, ti farà vincere il torneo davanti a una serie di grandi maestri. Non male per un semplice 1900. Sospetto che la maggior parte di noi giocherebbe qualcosa di ragionevolmente solido che mantiene il win. Mosse come Rxb7 o Rd7 oppure (per i codardi come me 😉 Rxf6. Qa7 è una mossa che ferma il cuore, una pistola fumante. Fritz considera la mossa migliore nella posizione, un enorme 0,1 in più rispetto alla mossa migliore successiva, Rd7.

La partita fumante n. 2 alla fine della partita quando il nero si è dimesso lasciando il giocatore classificato 1900 come il vincitore assoluto del torneo. Cosa diresti a Kalinitschev in quella posizione?

Ecco come è andata la conversazione:

Allwermann: “È amico in 8”

Kalinitschev: “Non credo”

Allwermann: “” Dai unocchiata, scoprirai che “ho ragione”

Allwermann aveva ragione, ovviamente. Riesci a trovare il compagno in 8 nella posizione finale? Senza lassistenza al silicone?

Allora, hai la tua pistola fumante e la porti agli organizzatori. Cosa faranno?

Bene, allora arriva il secondo modo per rilevare e dimostrare oltre ogni ragionevole dubbio che si sta imbrogliando.

Dovranno collezionare almeno 20 partite ciascuna con almeno 20 spostamenti non di database e inserirli in un motore per il controllo. Fondamentalmente quello che stanno cercando è la percentuale di volte in cui il sospettato sceglie una mossa non nel database che corrisponde alla prima scelta del motore, una delle prime 2 scelte, una delle prime 3 scelte. Le soglie di “prova” sono –

Primi 1 65%

Primi 2 80%

Primi 3 90%

Un esempio recente è il furore per la prestazione di Borislav Ivanov .

Ecco le sue statistiche –

Zara 19 °: Houdini 1.5a x64 Hash: 256 Tempo: 30s Max Profondità: 20 strati {Borislav Ivanov (Giochi: 9)}

{Partita prima 1: 210/314 (66,9%) Avversari: 150/313 (47,9%)

{2 primi Partita: 270/314 (86,0%) Avversari: 207/313 (66,1%)

{Primi 3 incontri: 285/314 (90,8%) Avversari: 238/313 (76,0%)

{Partita Top 4: 293/314 (93,3%) Avversari: 267/313 (85,3%)

Allottavo round il feed dal vivo è andato giù (si sospetta che questo abbia permesso il suo aiuto esterno ottenere le mosse) e ha perso contro il GM Predojevic. Se questo risultato viene rimosso, le nuove statistiche sono:

Zad 19esimo: Houdini 1.5a x64 Hash: 256 Tempo: 30s Profondità massima: 20ply {Borislav Ivanov (Giochi:)}

{Partita prima 1: 197/287 (68,6%) Avversari: 135/286 ( 47,2%)

{Primi 2 incontri: 252/287 (87,8%) Avversari: 188/286 (65,7%)

{Primi 3 incontri: 265/287 (92,3%) Avversari: 218/286 (76,2%)

{Top 4 match: 272/287 (94,8%) Avversari: 242/286 (84,6%)

Come vedi, entrambi i set di statistiche lo farebbero scappare da un server di scacchi. Per confronto ecco lanalisi per la partita 8 quando il feed era inattivo:

{White: Borislav Ivanov}

{Partita Top 1: 13/27 (48,1%)

{Partita primi 2: 18/27 (66,7%)

{Partita primi 3: 20/27 (74,1%)

{Partita primi 4: 22/27 (81,5%)

{Nero: Borki Predojevic}

{Primo incontro: 15/27 (55,6%)

{Primo incontro: 19 / 27 (70,4%)

{Incontri primi 3: 20/27 (74,1%)

{Incontro primi 4: 25/27 (92.6%)

Si noti che la FIDE ha istituito una commissione per indagare sui modi per rilevare e combattere i trucchi del computer. Le loro linee guida sono qui . Nota questa sezione:

E. Lo strumento di screening del gioco basato su Internet della FIDE

La FIDE fornirà uno strumento di screening del gioco basato su Internet, che sarà accessibile a tutti i funzionari FIDE autorizzati (membri IO, IA, ACC) e alle Federazioni Nazionali. Sarà ospitato su una pagina web dedicata alla FIDE e consentirà alle parti autorizzate di caricare i giochi in formato PGN per un “test veloce” che identificherà potenziali valori anomali in un torneo. Con “screening” si intende che questo fornisce solo un test preliminare senza valore di giudizio, tranne per il fatto che può essere citato rifiutando le accuse e rifiutando di procedere a un test completo manuale.

Commenti

  • Ottima analisi! I risultati T3 / T4 sono convincenti, soprattutto quando viene riportata la probabilità dei suoi risultati. BTW: Mi rendo conto che il tuo post è stato scritto tempo fa, ma ti capita di avere ancora la citazione per la conversazione tra Kalinitschev e Allwermann? Chiaramente, nessun 1900 troverà un accoppiamento in 8 in modo affidabile, specialmente quando un 2500 ‘ non lo vede. Non ‘ non suona particolarmente intelligente da parte sua aver sollevato questo punto quando potrebbe da solo causare il sospetto che ‘ sta tradendo.
  • BTW: Non sono daccordo sul fatto che Qa7! è un tappo di cuore. ‘ sta semplicemente sfruttando i due fatti che: 1) Il ‘ nero è debole e 2) ‘ è vulnerabile a un compagno su di esso. Quindi, qualsiasi deviazione della torre dalla fila posteriore consentirà tattiche potenzialmente vincenti. In questo caso, il Bianco usa la mossa per attaccare il pedone b e per coordinare la sua regina e la sua torre sul settimo in modo che la torre sia difesa. Il bianco vince almeno un pedone dopo 1 … Qxf7 2.Qxa8 + Qg8 3.Qxb7. Penso che qualsiasi GM avrebbe dovuto vedere la mossa Qa7 e io ‘ sono molto sorpreso che Kalinitschev labbia persa. ‘ è la mossa più forzata sulla scacchiera, dopo Rxf6 ?!
  • @jaxter Le informazioni provengono da it.chessbase.com/post/a-history-of-cheating-in-che-3- . Nota ” Non sono daccordo sul fatto che Qa7! è un toccasana ” – se leggi larticolo vedrai che Vishy Anand non è daccordo con te :-). Dallarticolo – ‘ Allora cosa interpreta il nostro eroe? 31.Qa7? !! “Fritzy!” strillò Anand e scoppiò in una risata incontrollabile quando vide questa e le seguenti mosse (ho filmato la sua allegria e lho inclusa nel mio rapporto multimediale su ChessBase Magazine 69). ‘
  • Grazie per il riferimento. Capisco cosa vuoi dire. Sarei stato sicuramente disposto a provare la mossa, ma ‘ è in parte perché avrei ritenuto che il bianco potesse sopravvivere al nero ‘ s contrattacco senza calcolare tutte le linee . Se tentassi di farlo a) ‘ sarei sicuro di commettere un errore fatale e b) ‘ d ottenere il heebie-jeebies e scegli una mossa diversa. ‘ è proprio perché uso lintuizione di giocare spesso mosse strane come … Qa7 !. ‘ è senza dubbio anche un fattore che contribuisce al motivo per cui la mia valutazione è inferiore a 2000 …
  • Cè ‘ sa differenza tra la mossa migliore che è una mossa solida che ‘ ti aspetteresti di trovare da molti giocatori e una tattica brillante che non ‘ aspettarsi che la maggior parte dei giocatori veda. Il gioco bianco ‘ sopra ha molti di questi ultimi.

Risposta

Per dare la mia risposta su come mi avvicinerei a questo, utilizzerei unidea semplice:

  • Test di ipotesi nulla

Lidea è che esiste un numero limitato di motori scacchistici pubblicamente disponibili, diciamo N di loro. Questa ipotesi ovviamente preclude la possibilità che limbroglione abbia scritto il proprio motore scacchistico (o stia usando qualche motore scacchistico non disponibile pubblicamente) ma per catturare imbroglioni casuali questo dovrebbe essere un presupposto abbastanza forte.

Lapplicazione del Test di ipotesi nulla sarebbe molto semplice: per ogni motore scacchistico X e per ogni sottosequenza di mosse del gioco corrente calcola la probabilità p di osservare la sottosequenza giocata assumendo il ipotesi nulla che il giocatore non utilizzando il motore di scacchi X per fare le mosse per loro. Si potrebbe supporre ingenuo che il giocatore si muova a caso (o sceglie casualmente da un numero selezionato di mosse migliori d_i), quindi la probabilità per una data sottosequenza di lunghezza k mosse corrispondenti a un motore scacchistico X verrebbe calcolato come (d_1)/(n_1) * (d_2)/(n_2) * (d_3)/(n_3) *...* (d_k)/(n_k) dove d_i è il numero di mosse possibili (in alto) da eseguire nella ith svolta, come valutato dal motore X e n_i è il numero di mosse totali a disposizione del giocatore al turno i (o qualche ragionevole sottoinsieme)

Quindi calcola semplicemente

p* = minimum p over all chess engine X, all subsequences y. 

Se p* è inferiore a una certa soglia, etichetta il giocatore come imbroglione poiché esiste una sottosequenza y e un motore scacchistico X che porta la probabilità che il giocatore sia non barare al di sotto di una probabilità desiderata.

Risposta

Penso che lanalisi post-partita ti offra le migliori possibilità di identificare se un giocatore stava barando. Questo può essere fatto usando quella che viene chiamata analisi T3 / T4.

Questo fondamentalmente misura la frequenza con cui un giocatore sceglie una delle prime 3 o prime 4 mosse suggerite da un motore. Ciò elimina in gran parte la necessità di identificare il motore di destinazione in uso (poiché generalmente concordano sulle prime 4/5 mosse anche se lordine di preferenza è diverso).

Sono disponibili software che eseguiranno un insieme di giochi dellutente contro le prime n mosse del motore. Modifica:

sono a conoscenza di ChessAnalyse che può essere utilizzato per eseguire tale analisi. Puoi provare la versione di prova di 30 giorni.

Commenti

  • Questo può essere contrastato da un imbroglione intelligente che ha una certa conoscenza degli scacchi come segue: gioca mosse questo semplicemente non peggiora la tua posizione e attendi lerrore del tuo avversario ‘ che comprometterebbe la sua posizione. Se stai giocando un blitz da 5 a 15 minuti contro qualcuno che non è di forza GM, questo accadrà sicuramente, prima o poi. Se inoltre lanci occasionalmente una mossa sbagliata e / o non insisti a vincere ogni singola partita, ‘ sono sicuro che il tuo imbroglio non verrà rilevato.
  • @AndreaMori: sono daccordo sul fatto che puoi evitare alcune situazioni, ma man mano che la sua valutazione migliora sarà costretto a cercare sempre di più e alla fine verrà rilevato.
  • Grazie, hai menzionato che sia disponibile del software. Puoi fare un esempio?

Risposta

Se il tuo sito offre agli utenti un clic ottieni posizioni FEN o PGN mentre il gioco è in esecuzione , dovresti considerare di tenerne traccia.

Alcuni imbroglioni imbrogliano dallinizio, ma altri preferiscono iniziare a barare solo quando sono nei guai, e lo faranno ovviamente usa la funzione di copia FEN / PGN poiché è dispendioso in termini di tempo impostare la posizione manualmente.

Dovresti in qualche modo memorizzarla insieme alla mossa nel momento in cui lha copiata, in questo modo puoi confrontare da quel punto alle seguenti mosse e vedere se la sua forza è aumentata notevolmente con laiuto dei motori scacchistici.

Ma è molto importante che tu lo usi solo per aiutarti a decidere se stava barando, sarebbe ingiusto per usare uno script che non utilizza lintervento umano, possono esserci molti falsi positivi, ad esempio, spesso mi piace copiare le posizioni mentre sto giocando per analizzarle in seguito senza la necessità di cercare il mio gioco o trovare il La mossa esatta dal PGN. E non lo lascio sempre negli appunti per paura di sovrascriverlo, quindi lo sposto nel blocco note (il che significa che cambio finestra subito dopo averlo copiato).

Commenti

  • Questo sembra riguardare il ” come gestire un ” punto di vista del server, piuttosto che il ” sta barando il mio avversario? ” (non che lOP abbia detto qualcosa su quale caso fosse importante per lui). Potrebbe valere la pena menzionarlo perché mi ci è voluto un po di tempo per capire cosa intendevi, pensandoci dal punto di vista del giocatore ‘.(Buona risposta … una volta capito ^ _ ^ ‘)
  • grazie @ajax. Non ho pensato a salvare la mossa in cui è stata copiata la posizione e ad analizzare la differenza tra la forza prima e dopo.
  • e ovviamente i truffatori scopriranno e disabiliteranno quel tracciamento. o eseguire la propria funzionalità di copia, ‘ non è così difficile: codegolf.stackexchange.com/questions/89647/chess-conversion

Risposta

FWIW, nessuno ha menzionato il Dr. Ken Regan per nome, sebbene il il puntatore al blog di Lipton descrive un altro articolo in Chess Life che discute il suo lavoro.

Questo articolo è molto informativo sul lavoro di Regan, sullo stato delle tecniche di rilevamento che erano in vigore nel 2014 e sul lavoro della FIDE nella creazione di un comitato per definire e diffondere standard, strumenti e tecniche per assistere il TD ” sta eliminando gli inganni.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *