Det er mange nettsteder der spillere kan spille sjakk i sanntid med hverandre. De fleste av spillene er 5-10 minutter lange. Med tilgjengeligheten av sjakkprogramvare kan man dra fordel av å bruke Fritz eller Rybka til å foreslå et trekk for ham.

For eksempel kan jeg bare gå inn i hvert trekk av motstanderen min og se hva programvaren vil foreslå for meg .

Jeg tenkte på noen få funksjoner som kan tyde på at spilleren jukser:

  • antall ganger han bytter skjerm
  • hastighet på spill (i enkle og veldig harde posisjoner)
  • nøyaktighet i spillet

Har noen andre ideer?

PS: Det gjør det ikke noe for meg, hvilket perspektiv du tenker fra (server eller klientsiden).

Kommentarer

  • Utmerket spørsmål og relevant problem i dag! Men mener du å oppdage blitzfusk på nettet ved hjelp av en algoritme eller oppdage akkurat som en menneskelig spiller mens du spiller en motstander?
  • Fuskoppdagelsesstrategier fungerer bare når juksemakeren er » dumme «. Å vedta flere smarte juksestategier (se kommentaren til NoviceProgrammer ‘ sitt svar) ville gjøre jukset nesten umulig å til og med gjette.
  • Jeg synes dette er ganske mye en ikke-problem. Jeg spiller på chess.com. Jeg vil gjette at kanskje 1 person av 10 faktisk jukser. Og hvis jeg mistenker at motstanderen min fikk litt hjelp, blokkerer jeg dem bare.

Svar

Dette er faktisk et veldig komplekst spørsmål, og ikke et som er løst på en tilfredsstillende måte, så vidt jeg vet. I det vesentlige ber vi om en algoritme for å utføre en slags omvendt Turing-test, for å skille mellom menneskelige spillere og datamaskiner.

Først vil sjekker på klientsiden alltid ha svakheter, med mindre du er i fullstendig kontroll av klientmiljøet. La oss ta den første ideen – å sjekke om det er byttet mellom vinduer, det høres bra ut. Dessverre fungerte det trivielt ved å kjøre en sjakkmotor på en egen datamaskin, eller integrere motoren min med klienten slik at ingen «vindusbytte» finner sted, eller endre klienten for å rapportere 0 endringer i vinduet, eller … Det er ingen reell måte å være sikker på at den din koden kjører på klienten, egentlig.

Det vi har igjen er fysisk tett kontrollerte klientmiljøer (som kommer ikke til å skje for alle online spill), eller server-side sjekking, dvs. se på de faktiske trekkene som ble spilt (og kanskje tiden mellom trekkene, som du sier), og prøver å utlede datamaskinen eller det menneskelige aspektet .

Serversiden kan også deles på noen måter. Du kan sannsynligvis prøve en «ovenfra og ned» -tilnærming, som vil være noe i retning av «fra tidligere spill i historien, bare 2% av mennesker gjorde det, mens 50% av datamaskinene klarer det «. Dette ville faktisk være en ganske god måte å gjøre det hvis vi hadde nok data til» en hvilken som helst gitt posisjon «. sjakk tempoet er imidlertid så stort at selv svært store datasett ikke vil ha et betydelig antall spill som samsvarer med din posisjon når du først er kommet forbi det tidlige midt spillet.

Forutsatt at vi ikke har pålitelig statistikk på den menneskelige siden av ligningen, kan du fremdeles presentere posisjonen til et antall sjakkmotorer (med en rekke forskjellige tidsinnstillinger hver), og se hvor nær spillerne beveger seg samsvarer med datamaskinens. I seg selv vil dette også føre til mange falske positive, men gjentatte positive for samme sjakkmotor og tidsinnstillinger vil gjøre det mer og mer sannsynlig at spilleren jukser. For ytterligere å forbedre dette, vil jeg sannsynligvis se på en «bottom-up» -tilnærming for å analysere sjakkposisjoner; kort sagt, prøver å finne ut hvorfor mennesker og datamaskiner spiller annerledes. F.eks. mennesker har en tendens til å gjenkjenne vanlige mønstre. I et spill med «merkelige» mønstre, eller usannsynlige situasjoner, vil et menneske være mindre sannsynlig å kunne spille veldig nøyaktig. Ingen av disse er i seg selv spesielt fordømmende, men gitt et stort antall spill, vil det fremheve trender for administratorer.

For å legge til noen detaljer i listen din, vil jeg gå i tråd med hvordan professorer oppdage plagarisme i papirer – ved å oppdage en plutselig endring. I sjakk er dette ekstremt vanskelig å definere, men en plutselig endring i spillestil eller spillstyrke kan indikere juks. Spesielt vil jeg se etter ukarakteristiske aggressive trekk som pleier å bare «trene», og ikke har noen ulempe for spilleren (for nøyaktig). Tvangs kamerater i 4+ trekk fra en spiller som normalt setter riddere på kanten av brettet. osv. (det er mulig … bare ikke sannsynlig). Hvordan akkurat dette ville fungere høres ut som om det kunne ta opp en hel bok (eller mer).

EDIT: Det var en artikkel om juks og deteksjon i sjakk på toppnivå nylig.

Kommentarer

  • mennesker vs datamaskiner kan gi falske positive i åpningen av spillet, det er veldig enkelt å huske beste skuespill
  • @ ajax333221 Jeg er helt enig. Til en viss grad kan noe lignende gjelde for endgame, der et menneske kan spille det ganske nær perfekt, bare basert på forkunnskaper. Når det er sagt, hvis jeg oppdager mulig juks i et spill, er jeg ‘ sikker på at med ytterligere informasjon og sofistikert analyse, kan en datamaskin gjøre det samme. Tvungen kompis i 4+ trekk var et faktisk eksempel fra et nylig online spill mot en 1050-rangert spiller – mildest talt suggestivt …

Svar

I blitz kan du se hvor lang tid de bruker. Folk som bruker motorer bruker jevnlig tid for hvert trekk, i stedet for å blitse gjennom åpningen og bremse til en gjennomgang i mellomspillet som de fleste vanlige spillere. Spesielt kan de ikke spille åpningen raskt, fordi de må oppdatere datakortet etter hver åpning. Hvis de tar fem sekunder på bevegelse to og fem sekunder på bevegelse tjue, bruker de sannsynligvis en motor.

Kommentarer

  • Jeg er usikker på om dette var sant på utgivelsestidspunktet, men tørrfisk kan akseptere gjenværende tid som innspill for å prioritere hva som beveger seg for å bruke tid i.

Svar

Antall skjermbrytere og hastighet på spillet er meningsløst. Hvis du bruker disse til å klage til arrangørene av et nettsted for sjakkspill, vil de le av deg.

Det er to måter for å fortelle om noen jukser. Det første er «røykepistolen». Tenk på denne spillavsnittet –

[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 

Spørsmålet er hva vil du spille i det Situasjonen er at en seier i denne, den siste runden i konkurransen, vil vinne deg turneringen foran en rekke stormestere. Ikke dårlig for bare 1900. Jeg mistenker at de fleste av oss ville spille noe rimelig solid som holder seier. Beveger seg som Rxb7 eller Rd7 eller (for feige som meg 😉 Rxf6. Qa7 er en hjertestopper av et trekk, en røykepistol. Fritz vurderer som det beste trekket i posisjonen, hele 0.1 foran det nest beste trekket, Rd7.

Røyker pistol nr. 2-spillet på slutten av spillet da svart trakk seg og etterlot den 1900-rangerte spilleren som turneringens direkte vinner. Hva vil du si til Kalinitschev i den stillingen?

Slik gikk samtalen:

Allwermann: «Det er kompis i 8»

Kalinitschev: «Jeg tror ikke det»

Allwermann: «» Sjekk det ut, du vil finne at jeg har rett «

Allwermann hadde selvfølgelig rett. Kan du finne kompisen i 8 i endelig posisjon? Uten silisiumassistanse?

Så du har røykepistolen din, og du tar den med til arrangørene. Hva vil de gjøre?

Vel, så kommer den andre måten å oppdage og bevise utover rimelig tvil om at juks pågår.

De må samle minst 20 spill hver med minst 20 ikke-database beveger seg og mater dem inn i en motor for kontroll. I utgangspunktet er det de leter etter er prosentandelen av tiden mistenkte velger et ikke-database trekk som samsvarer med motorens første valg, en av de første to valgene, en av de første tre valgene. De «beviste» terskler er –

Topp 1 65%

Topp 2 80%

Topp 3 90%

Et nylig eksempel er furore over ytelsen til Borislav Ivanov .

Her er statistikken hans –

Zadar 19.: Houdini 1.5a x64 Hash: 256 Tid: 30s Max Dybde: 20-talls {Borislav Ivanov (Spill: 9)}

{Topp 1-kamp: 210/314 (66,9%) Motstandere: 150/313 (47,9%)

{Topp 2 Kamp: 270/314 (86,0%) Motstandere: 207/313 (66,1%)

{Topp 3 kamp: 285/314 (90,8%) Motstandere: 238/313 (76,0%)

{Topp 4-kamp: 293/314 (93,3%) Motstandere: 267/313 (85,3%)

I 8. runde gikk live-feedet ned (det mistenkes at dette tillot hans hjelp utvendig få grep) og han tapte mot GM Predojevic. Hvis dette resultatet blir fjernet, er den nye statistikken:

Zad ar 19th: Houdini 1.5a x64 Hash: 256 Time: 30s Max Depth: 20ply {Borislav Ivanov (Games:)}

{Top 1 Match: 197/287 (68.6%) Motstandere: 135/286 ( 47,2%)

{Topp 2-kamp: 252/287 (87,8%) Motstandere: 188/286 (65,7%)

{Topp 3-kamp: 265/287 (92,3%) Motstandere: 218/286 (76,2%)

{Topp 4 kamp: 272/287 (94,8%) Motstandere: 242/286 (84,6%)

Som du ser, begge settene statistikk ville få ham kastet av en sjakkserver. Til sammenligning er analysen for spill 8 når strømmen var nede:

{Hvit: Borislav Ivanov}

{Topp 1-kamp: 13/27 (48,1%)

{Topp 2 kamp: 18/27 (66,7%)

{Topp 3 kamp: 20/27 (74,1%)

{Topp 4 kamp: 22/27 (81,5%)

{Svart: Borki Predojevic}

{Topp 1-kamp: 15/27 (55,6%)

{Topp 2-kamp: 19 / 27 (70,4%)

{Topp 3-kamp: 20/27 (74,1%)

{Topp 4-kamp: 25/27 (92.6%)

Merk at FIDE har nedsatt en kommisjon for å undersøke måter å oppdage og bekjempe datafusk. Retningslinjene deres er her . Legg merke til denne delen:

E. FIDE Internett-baserte spillvisningsverktøy

FIDE vil levere et Internett-basert spillscreeningsverktøy, som vil være tilgjengelig for alle autoriserte FIDE-tjenestemenn (IO, IA, ACC-medlemmer) og nasjonale føderasjoner. Det skal være vert på en FIDE-dedikert webside og vil gjøre det mulig for autoriserte parter å laste opp spill i PGN-format for en «rask test» som vil identifisere potensielle outliers i en turnering. Ved «screening» forstås at dette bare gir en foreløpig test uten domsverdi, bortsett fra at den kan siteres mens den avviser påstander og avviser å fortsette til en manuell full test.

Kommentarer

  • Flott analyse! T3 / T4-resultatene er overbevisende, spesielt når sannsynligheten for resultatene hans rapporteres. BTW: Jeg skjønner at innlegget ditt ble laget for en stund siden, men har du tilfeldigvis sitatet for samtalen mellom Kalinitschev og Allwermann? Det er klart at ingen 1900 kommer til å finne en kompis i 8 pålitelig, spesielt når en 2500 ikke ser ‘ det. Det høres ‘ ikke spesielt smart ut for ham å ha hevet dette punktet når det av seg selv kunne forårsake mistanken om at han ‘ juks.
  • BTW: Jeg er uenig i at Qa7! er en hjertestopper. Det ‘ utnytter ganske enkelt de to fakta som: 1) Svart ‘ s bakrang er svak, og 2) han ‘ er sårbar for en kompis på den. Så, enhver avledning av tårnet fra bakerste rang vil tillate potensielt vinnende taktikk. I dette tilfellet bruker White trekket til å angripe b-bonden og til å koordinere sin dronning og tårn på den syvende slik at tårnet blir forsvart. Hvit vinner minst en bonde etter 1 … Qxf7 2.Qxa8 + Qg8 3.Qxb7. Jeg tror enhver GM burde ha sett trekket Qa7, og jeg ‘ er veldig overrasket over at Kalinitschev savnet det. Det ‘ er det mest tvungne trekket på brettet, etter Rxf6 ?!
  • @jaxter Informasjonen kommer fra no.chessbase.com/post/a-history-of-cheating-in-che-3- . Merk » Jeg er uenig i at Qa7! er en hjertestopper » – hvis du leser artikkelen vil du se at Vishy Anand er uenig med deg :-). Fra artikkelen – ‘ Så hva spiller helten vår? 31.Qa7? !! “Fritzy!” skvatt Anand og gikk i ukontrollerbare latterkrampe da han så dette og følgende trekk (jeg filmet gleden hans og inkluderte den i multimediarapporten min i ChessBase Magazine 69). ‘
  • Takk for henvisningen. Jeg tar poenget ditt. Jeg ville absolutt vært villig til å gi trekket et skudd, men at ‘ er delvis fordi jeg ville ha bedømt at hvit kunne overleve svart ‘ s motangrep uten å beregne alle linjene . Hvis jeg prøvde å gjøre det a) Jeg ‘ ville være sikker på at jeg ville ta en fatalt feil, og b) jeg ‘ d fikk heebie-jeebies og velg et annet trekk. Det ‘ er nettopp fordi jeg bruker intuisjon at jeg ofte spiller freaky moves som … Qa7 !. Det ‘ er utvilsomt en medvirkende årsak til at vurderingen min er under 2000 …
  • Det ‘ sa forskjellen mellom det beste trekket er et lydbevegelse du ‘ forventer at mange spillere skal finne, og en strålende taktikk du ikke ville ‘ t forventer at de fleste spillerne skal se. Hvitt ‘ -spill ovenfor har flere av de sistnevnte.

Svar

For å gi svaret mitt på hvordan jeg ville nærme meg dette, brukte jeg en enkel idé:

  • Null Hypotesetest

Tanken er at det er et begrenset antall offentlig tilgjengelige sjakkmotorer, kan vi si N av dem. Denne antagelsen utelukker selvfølgelig muligheten for at juksemakeren har skrevet sin egen sjakkmotor (eller bruker en offentlig utilgjengelig sjakkmotor), men for å fange uformelle juksemaskiner bør dette være en sterk nok antagelse.

Anvendelsen av Null hypotesetest ville være veldig enkel: for hver sjakkmotor X og beregne sannsynligheten p for å observere den spilte sekvensen forutsatt at nullhypotese at spilleren er ikke ved hjelp av sjakkmotor X for å gjøre bevegelsene for dem. En naiv antagelse kan legges til at spilleren beveger seg tilfeldig (eller velger tilfeldig fra et valgt antall topp trekk d_i), så sannsynligheten for en gitt konsekvens av lengde k matching beveger en sjakkmotor X ville gjort, ville bli beregnet som (d_1)/(n_1) * (d_2)/(n_2) * (d_3)/(n_3) *...* (d_k)/(n_k) der d_i er antallet mulige (øverste) trekk å gjøre ved ith sving, vurdert av motoren X og n_i er antall totalt trekk tilgjengelig for spilleren i sving i (eller noen rimelig delmengde.)

Så er det bare å beregne

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

Hvis p* er mindre enn en viss terskel, merk spilleren som en juksemaker siden den eksisterer en påfølgende y og sjakkmotor X som gir sannsynligheten for at spilleren er ikke juks under ønsket sannsynlighet.

Svar

Jeg tror analyse etter spillet gir deg den beste sjansen til å identifisere om en spiller jukset. Dette kan gjøres ved å bruke det som kalles T3 / T4-analysen.

Dette måler i utgangspunktet frekvensen som en spiller velger en av topp 3 eller topp 4 bevegelser som er foreslått av en motor. Dette eliminerer i stor grad behovet for å identifisere målmotoren som er i bruk (ettersom de generelt er enige om de øverste 4/5 trekkene selv om rekkefølgen på preferansen er forskjellig).

Det er programvare tilgjengelig som vil kjøre en sett med spill for brukeren mot de øverste n trekkene til motoren. Rediger:

Jeg er klar over ChessAnalyse som kan brukes til å gjøre en slik analyse. Du kan prøve den 30 dagers prøveversjonen.

Kommentarer

  • Dette kan motvirkes av en intelligent juksemaker som har litt sjakkunnskap som følger: spill trekk som rett og slett ikke gjør posisjonen din verre og venter på motstanderen din ‘ s tabbe som vil kompromittere hans / hennes stilling. Hvis du spiller 5 til 15 minutter blitz mot noen som ikke har GM-styrke, vil dette definitivt skje, før eller senere. Hvis du dessuten kaster inn en og annen dårlig bevegelse og / eller ikke insisterer på å vinne hvert eneste spill, er jeg ‘ sikker på at jukset ditt ikke blir oppdaget.
  • @AndreaMori: Jeg er enig i at du kan unngå noen få situasjoner, men når hans / hennes vurdering forbedres, vil han bli tvunget til å slå opp mer og mer og til slutt bli oppdaget.
  • Takk, du har nevnt at det er programvare tilgjengelig. Kan du gi et eksempel?

Svar

Hvis nettstedet ditt gir brukerne ett klikk, får du FEN-posisjoner eller PGN mens spillet kjører , bør du vurdere å spore disse.

Noen juksere jukser fra begynnelsen, men andre foretrekker å bare begynne juks når de er i trøbbel, og de vil bruk åpenbart FEN / PGN-funksjonen siden det er tidkrevende å sette opp posisjonen manuelt.

Du bør på en eller annen måte lagre det sammen med flyttingen på det tidspunktet han kopierte den, på denne måten kan du sammenligne fra som peker på følgende trekk og se om styrken hans økte sterkt ved hjelp av sjakkmotorer.

Men det er veldig viktig at du bare bruker den til å hjelpe deg med å avgjøre om han jukset, det ville være urettferdig å bruke et skript som ikke bruker menneskelig inngripen, kan det være mange falske positive, for eksempel, jeg liker ofte å kopiere posisjoner mens jeg spiller for senere å analysere dem uten å måtte søke etter spillet mitt eller finne det eksakte trekket fra PGN. Og jeg lar den ikke alltid ligge på utklippstavlen min fordi jeg er redd for å overskrive det, så jeg flytter det til notisblokk (som betyr at jeg bytter vindu like etter at jeg har kopiert det). class = «comments»>

  • Dette ser ut til å adressere » hvordan man administrerer en server » synspunkt, i stedet for » er min motstander juks? » en (ikke at OP sa noe om hvilken sak som gjaldt for ham). Kan være verdt å nevne det, da det tok meg litt tid å forstå hva du mente, og tenkte på det fra spilleren ‘ s POV.(Godt svar … når dette er forstått ^ _ ^ ‘)
  • takk @ajax. Jeg har ikke tenkt på å lagre farten der stillingen ble kopiert og analysere forskjellen mellom styrken før og etter.
  • og selvfølgelig vil svindlere finne ut og deaktivere sporing. eller gjør sin egen kopifunksjonalitet, det ‘ er ikke så vanskelig: codegolf.stackexchange.com/questions/89647/chess-conversion
  • Svar

    FWIW, ingen har nevnt Dr. Ken Regan ved navn, selv om pekeren til Liptons blogg beskriver en annen artikkel i Chess Life som diskuterer arbeidet hans.

    Den artikkelen er veldig informativ om Regans arbeid, tilstanden til deteksjonsteknikker som var i kraft i 2014, og FIDEs arbeid med å opprette en komité for å definere og offentliggjøre standarder, verktøy og teknikker for å hjelpe TD » s ved å utelukke juks.

    Legg igjen en kommentar

    Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *