Spørsmål:
Hvordan vil du fastslå at spilleren jukser i sjakk på nettet?
Salvador Dali
2012-11-18 07:44:03 UTC
view on stackexchange narkive permalink

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. .

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

  • antall ganger han bytter skjerm
  • hastighet på spille (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).

Utmerket spørsmål og relevant problem i dag! Men mener du å oppdage online blitz-juks med en algoritme eller oppdage akkurat som en menneskelig spiller mens du spiller en motstander?
Strategier for juksoppdagelse fungerer bare når juksemannen er "dum". Å vedta mer smarte juksestategier (se min kommentar til NoviceProgrammers svar) vil gjøre jukset nesten umulig å til og med gjette.
Jeg tror dette er ganske mye et 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.
Syv svar:
Daniel B
2012-11-19 20:09:00 UTC
view on stackexchange narkive permalink

Dette er faktisk et veldig komplekst spørsmål, og ikke et som har blitt løst på en tilfredsstillende måte, så vidt jeg vet. I hovedsak 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 - det høres bra ut å sjekke om det er byttet mellom vinduer. Dessverre er det trivielt jobbet ved å kjøre en sjakkmotor på en egen datamaskin, eller integrere motoren min med klienten slik at ingen "vindusbytte" finner sted, eller endre klienten til å rapportere 0 endringer i vinduet, eller ... Det er ingen virkelig måte å være sikker på at det er koden din som kjører på klienten.

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

Serversiden kan også dele på noen måter. Du kan sannsynligvis prøve en "top-down" -tilnærming, som vil være noe i retning av "fra tidligere spill i historien, bare 2% av menneskene fikk det til å bevege seg, mens 50% av datamaskiner klarer det". Dette ville faktisk være en ganske god måte å gjøre det hvis vi hadde nok data for "en hvilken som helst gitt posisjon". Sjakkrommet for sjakk 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 har kommet forbi det tidlige midtpartiet.

Forutsatt at vi ikke har noen 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 tett spillerne 'trekk 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). Tvungne 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 kan ta opp en hel bok (eller mer).

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

mennesker vs datamaskiner kan gi falske positive i _åpningen_ av spillet, det er veldig enkelt å huske de beste spillene
@ajax333221 Jeg er helt enig. I en viss grad kan noe lignende gjelde endspillet, der et menneske kan spille det ganske nær perfekt, bare basert på forkunnskaper. Når det er sagt, hvis jeg kan oppdage mulig juks i et spill, er jeg sikker på at en datamaskin kan gjøre det samme med tilleggsinformasjon og sofistikert analyse. Tvungen kompis i 4+ trekk var et faktisk eksempel fra et nylig online spill mot en 1050 rangert spiller - mildest talt suggestiv ...
Andrew Latham
2012-12-06 00:11:40 UTC
view on stackexchange narkive permalink

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

Jeg er usikker på om dette var sant på tidspunktet for utleggingen, men tørrfisk kan godta gjenværende tid som et innspill for å prioritere hva som beveger seg å tilbringe tid i.
Brian Towers
2015-01-11 23:43:35 UTC
view on stackexchange narkive permalink

Antall skjermbrytere og spillets hastighet 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 å fortelle om noen jukser. Den første er "røykepistolen". Vurder denne spillseksjonen -

  [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 den posisjonen? 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 seieren. 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. turneringens direkte vinner. Hva vil du si til Kalinitschev i den stillingen?

Slik gikk samtalen:

Allwermann: "It's mate in 8"

Kalinitschev: "I ikke tro det "

Allwermann:" "Sjekk det ut, du finner 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 foregår.

De må samle minst 20 spill hver med minst 20 ikke-databasebevegelser og mate dem inn i en motor for kontroll. I utgangspunktet er det de leter etter er prosentandelen av tiden mistenkte velger et trekk utenfor databasen som samsvarer med motorens første valg, en av de første to valgene, en av de første tre valgene. De "beviste" terskelverdiene 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 (man mistenker at dette tillot hans hjelp utenfor få grep) og han tapte for GM Predojevic. Hvis dette resultatet fjernes, er den nye statistikken:

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

{Topp 1 kamp: 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, vil begge statistikkene få ham til å bli kastet av en sjakkserver. Til sammenligning er analysen for spill 8 når feeden 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 opprettet en kommisjon for å undersøke måter å oppdage og bekjempe datafusk. Retningslinjene deres er her. Legg merke til denne delen:

E. FIDE Internet-Based Game Screening Tool

FIDE vil levere et Internett-basert Game Screening Tool, som vil være tilgjengelig for alle autoriserte FIDE-tjenestemenn (IO, IA, ACC-medlemmer) og National Federation. Den skal være vert på en FIDE-dedikert nettside 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 det 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.

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 tatt opp dette punktet når det kunne _ av seg selv_ forårsake mistanken om at han jukser.
BTW: Jeg er uenig i at Qa7! er en hjertestopper. Det er ganske enkelt å utnytte de to fakta som: 1) Black's back rank 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 https://en.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 hans glede 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 det er delvis fordi jeg ville ha bedømt at White kunne overleve Black's motangrep _ uten å beregne alle linjene_. Hvis jeg prøvde å gjøre det a) ville jeg være sikker på at jeg ville gjøre en fatal feil, og b) jeg ville hente heebie-jeebies og velge 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 er en forskjell mellom at topptaket er et lydtak du forventer at mange spillere finner, og en strålende taktikk du ikke forventer at de fleste spillerne ser. Whites spill ovenfor har flere av de sistnevnte.
* FIDE vil levere et Internett-basert spillskjermingsverktøy * Er det noen som vet om et slikt verktøy har blitt levert siden kommisjonen publiserte rapporten?
ldog
2012-11-30 14:26:14 UTC
view on stackexchange narkive permalink

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

  • Null Hypothesis Test

Tanken er at det er et begrenset antall offentlig tilgjengelige sjakkmotorer, la oss 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.

Null hypotesetest ville være veldig enkelt: for hver sjakkmotor X og for hver påfølgende bevegelse av det aktuelle spillet beregner du sannsynligheten p for å observere den avspilte følgen forutsatt nullhypotesen at spilleren ikke bruker sjakkmotor X for å gjøre grep for dem . En naiv antagelse kan legges til at spilleren beveger seg tilfeldig (eller tilfeldig velger fra et valgt antall toppbevegelser d_i ), så sannsynligheten for en gitt konsekvens av lengden k matchende trekk ville en sjakkmotor X gjøre, beregnes som (d_1) / (n_1) * (d_2) / (n_2) * (d_3) / (n_3) * ... * (d_k) / (n_k) der d_i er antall mulige (øverste) trekk å gjøre ved med sving, som vurdert av motor X og n_i er antall totalt trekk tilgjengelig for spilleren ved sving i (eller noen rimelig delmengde.)

Så bare beregne

  p * = minimum p over alle sjakkmotorer X, alle påfølgende y.  

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

NoviceProgrammer
2014-01-21 18:53:06 UTC
view on stackexchange narkive permalink

Jeg tror at analyse etter spillet gir deg den beste sjansen til å identifisere om en spiller jukser. 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 bevegelsene som er foreslått av en motor. Dette eliminerer i stor grad behovet for å identifisere målmotoren som er i bruk (da de generelt vil være enige om de øverste 4/5 trekkene selv om rekkefølgen på preferansen er forskjellig).

Det er programvare tilgjengelig som kjører sett med spill av brukeren mot de øverste n trekkene i motoren.Rediger:

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

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 vent på motstanderens blunder som vil kompromittere hans / hennes posisjon. 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?
ajax333221
2012-11-18 09:46:50 UTC
view on stackexchange narkive permalink

Hvis nettstedet ditt gir brukerne ett klikk for å få 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 åpenbart bruke kopien 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 da han kopierte den, på denne måten kan du sammenligne fra det punktet til følgende trekk og se om styrken hans økte kraftig ved hjelp av sjakkmotorer.

Men det er veldig viktig at du bruk det bare for å hjelpe deg med å bestemme om han jukset, det ville være urettferdig å bruke et skript som ikke bruker menneskelig inngripen, det kan være mange falske positive, for eksempel, jeg liker ofte å kopiere posisjoner mens jeg spiller for å senere analysere dem uten behov for å søke etter spillet mitt eller finne det nøyaktige trekket fra PGN. Og jeg lar det ikke alltid være 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).

Dette ser ut til å adressere synspunktet "hvordan man administrerer en server", i stedet for "jukser motstanderen min?" en (ikke at OP sa noe om hvilken sak som gjaldt for ham). Det kan være verdt å nevne det, da det tok litt tid å forstå hva du mente, og tenkte på det fra spillerens POV. (Godt svar ... når dette er forstått ^ _ ^ ')
takk @ajax. Jeg har ikke tenkt på å lagre trekket der posisjonen ble kopiert og analysere forskjellen mellom styrken før og etter.
og selvfølgelig vil juksere finne ut og deaktivere sporing. eller gjør sin egen kopifunksjonalitet, det er ikke så vanskelig: https://codegolf.stackexchange.com/questions/89647/chess-conversion
jaxter
2016-10-09 05:37:36 UTC
view on stackexchange narkive permalink

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.

Denne 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 kunngjøre standarder, verktøy og teknikker for å hjelpe TD-er med å stemple ut juks.



Denne spørsmålet ble automatisk oversatt fra engelsk.Det opprinnelige innholdet er tilgjengelig på stackexchange, som vi takker for cc by-sa 3.0-lisensen den distribueres under.
Loading...