Det finns många onlinewebbplatser där spelare kan spela schack i realtid med varandra. De flesta av spelen är 5-10 minuter långa. Med tillgängligheten av schackprogramvara kan man dra fördel av att använda Fritz eller Rybka för att föreslå ett drag för honom.

Till exempel kan jag bara gå in i varje drag av min motståndare och se vilken programvara som kommer att föreslå för mig .

Jag tänkte på några funktioner som kan tyda på att spelaren fuskar:

  • antal gånger han byter skärm
  • spela (i enkla och riktigt hårda positioner)
  • spelets noggrannhet

Har någon andra idéer?

PS: Det gör det spelar ingen roll för mig, vilket perspektiv du tänker från (server eller klientsidan).

Kommentarer

  • Utmärkt fråga och relevant problem idag! Men menar du upptäcka online-blitz-fusk med en algoritm eller upptäcka precis som en mänsklig spelare när du spelar en motståndare?
  • Fuskupptäckningsstrategier fungerar bara när fuskaren är ” dumt ”. Att använda mer smarta fuskstrategier (se min kommentar till NoviceProgrammer ’ s svar) skulle göra fusk nästan omöjligt att ens gissa.
  • Jag tycker att det här är ganska mycket icke-problem. Jag spelar på chess.com. Jag antar att kanske 1 av 10 faktiskt fuskar. Och om jag misstänker att min motståndare fick lite hjälp blockerar jag dem helt enkelt.

Svar

Detta är faktiskt ett mycket komplex fråga, och inte en som har lösts på ett tillfredsställande sätt, såvitt jag vet. I huvudsak ber vi om en algoritm för att utföra ett slags omvänd Turing-test, för att skilja mellan mänskliga spelare och datorer.

Först kommer kontroller på klientsidan alltid att ha svagheter, såvida du inte är i fullständig kontroll av klientmiljön. Låt oss ta den första idén – det går bra att kolla om du byter mellan fönster. Tyvärr fungerade det trivialt genom att köra en schackmotor på en separat dator eller integrera min motor med klienten så att ingen ”fönsterbyte” sker, eller ändra klienten för att rapportera 0 ändringar i fönstret, eller … Det finns inget riktigt sätt att vara säker på att det är din kod som verkligen körs på klienten.

Det vi har kvar är fysiskt tätt kontrollerade klientmiljöer (som kommer inte att hända för alla onlinespel), eller kontroller på serversidan, dvs att titta på de faktiska drag som spelades (och kanske tiden mellan drag, som du säger), och försöka härleda datorn eller den mänskliga aspekten .

Serversidan kan också dela upp ett par sätt. Du kan förmodligen prova en ”uppifrån och ner” -metod, vilket skulle vara något i stil med ”från tidigare spel i historien, bara 2% av människor gjort det, medan 50% av datorerna gör det ”. Detta skulle faktiskt vara ett ganska bra sätt att göra det om vi hade tillräckligt med data för” vilken som helst position ”. schackhastigheten är dock så stor att till och med mycket stora datamängder inte kommer att ha ett betydande antal matchningar som matchar din position när du har kommit förbi det tidiga mitten av spelet.

Förutsatt att vi inte gör det har någon tillförlitlig statistik på den mänskliga sidan av ekvationen, kan du fortfarande presentera positionen för ett antal schackmotorer (med ett antal olika tidsinställningar vardera) och se hur nära spelarnas rörelser matchar den för en dator. I sig självt skulle detta också leda till många falskt positiva, men upprepade positiva för samma schackmotor och tidsinställningar skulle göra det mer och mer troligt att spelaren fuskade. För att ytterligare förbättra detta skulle jag förmodligen undersöka en ”bottom-up” -metod för att analysera schackpositioner; kort sagt, försöker lista ut varför människor och datorer spelar annorlunda. T.ex. människor känner igen vanliga mönster. I ett spel med ”udda” mönster eller osannolika situationer skulle en människa vara mindre benägna att kunna spela mycket exakt. Inget av dessa i sig är särskilt fördömande, men med tanke på ett stort antal spel skulle det markera trender för administratörer.

För att lägga till några detaljer i din lista, skulle jag följa hur professorer upptäcka plagarism i tidningar – genom att upptäcka en plötslig förändring. I schack är detta extremt svårt att definiera, men en plötslig förändring i spelstil eller spelstyrka kan indikera fusk. Specifikt skulle jag leta efter okaraktäristiska aggressiva drag som tenderar att bara ”träna” och inte har någon nackdel för spelaren (för exakt). Tvingade kompisar i 4+ drag från en spelare som normalt sätter riddare på kanten av brädet , etc (det är möjligt … bara inte troligt). Hur exakt detta skulle fungera låter som om det kan ta upp en hel bok (eller mer).

EDIT: Det fanns en artikel om fusk och upptäckt i schack på toppnivå nyligen.

Kommentarer

  • människorna mot datorer kan ge falska positiva resultat i öppningen av spelet, det är väldigt enkelt att memorera bästa spel
  • @ ajax333221 Jag håller helt med. Till en viss grad kan något liknande gälla slutspelet, där en människa kan spela det ganska nära perfekt, bara baserat på förkunskaper. Med det sagt, om jag kan upptäcka eventuellt fusk i ett spel, är jag ’ säker på att med en ytterligare information och sofistikerad analys kan en dator göra detsamma. Tvingad kompis i 4+ drag var ett verkligt exempel från ett senaste onlinespel mot en 1050-klassad spelare – väldigt suggestivt, minst sagt …

Svar

I blitz kan du se hur mycket tid de använder. Personer som använder motorer använder en jämn tid för varje drag istället för att blitz genom öppningen och sakta ner till en krypning i mellanspelet som de flesta vanliga spelare. I synnerhet kan de inte spela öppningen snabbt, eftersom de måste uppdatera sin dator efter varje öppningsrörelse. Om de tar fem sekunder på steg två och fem sekunder på steg tjugo använder de förmodligen en motor.

Kommentarer

  • Jag är osäker på om detta var sant vid tidpunkten för utstationering men stockfish kan acceptera återstående tid som en input för att prioritera vad som rör sig att spendera tid i.

Svar

Antal skärmbrytare och spelhastighet är meningslösa. Om du använder dessa för att klaga till arrangörerna av en online-schackspelwebbplats kommer de att skratta åt dig.

Det finns två sätt att berätta om någon är otrogen. Det första är ”rökpistolen”. Tänk på det här spelsektionen –

[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 

Frågan är vad skulle du spela i det Situationen är att en seger i denna, den sista tävlingsomgången, kommer att vinna dig turneringen före en rad stormästare. Inte illa för bara 1900. Jag misstänker att de flesta av oss skulle spela något ganska stabilt som håller vinna. Rör sig som Rxb7 eller Rd7 eller (för feglar som jag 😉 Rxf6. Qa7 är en hjärtpropp av ett drag, en rökpistol. Fritz betraktar som det bästa steget i positionen, en jättestor 0,1 före nästa bästa drag, Rd7.

Rökande pistol # 2-spelet i slutet av spelet när svart avgick och lämnade 1900-spelaren som turnering direkt vinnare. Vad skulle du säga till Kalinitschev i den positionen?

Så här gick konversationen:

Allwermann: ”Det är par i 8”

Kalinitschev: ”Jag tror inte det”

Allwermann: ”” Kolla in det, du kommer att finna att jag har rätt ”

Allwermann hade naturligtvis rätt. Kan du hitta kompisen i 8 i slutpositionen? Utan hjälp av kisel?

Så, du har din rökpistol och du tar den till arrangörerna. Vad kommer de att göra?

Nåväl, då kommer det andra sättet att upptäcka och bevisa över rimligt tvivel att fusk pågår.

De kommer att behöva samla minst 20 spel vardera med åtminstone 20 icke-databas flyttar och matar in dem i en motor för kontroll I grund och botten vad de letar efter är procentandelen av den tid den misstänkta väljer ett icke-databasrörelse som matchar motorns första val, en av de första två valen, en av de första tre valen. De ”bevisa” trösklarna är –

Topp 1 65%

Topp 2 80%

Topp 3 90%

Ett nytt exempel är furore över Borislav Ivanovs prestanda .

Här är hans statistik –

Zadar 19th: Houdini 1.5a x64 Hash: 256 Time: 30s Max Djup: 20-taligt {Borislav Ivanov (Spel: 9)}

{Topp 1-match: 210/314 (66,9%) Motståndare: 150/313 (47,9%)

{Topp 2 Match: 270/314 (86,0%) Motståndare: 207/313 (66,1%)

{Topp 3 Match: 285/314 (90,8%) Motståndare: 238/313 (76,0%)

{Topp 4-match: 293/314 (93,3%) Motståndare: 267/313 (85,3%)

I den åttonde omgången gick liveflödet ner (man misstänker att detta gjorde det möjligt för hans hjälp utifrån få rörelserna) och han förlorade mot GM Predojevic. Om detta resultat tas bort är den nya statistiken:

Zad ar 19: Houdini 1.5a x64 Hash: 256 Tid: 30-talet Max Djup: 20-taligt {Borislav Ivanov (Spel:)}

{Topp 1-match: 197/287 (68,6%) Motståndare: 135/286 ( 47,2%)

{Topp 2-match: 252/287 (87,8%) Motståndare: 188/286 (65,7%)

{Topp 3-match: 265/287 (92,3%) Motståndare: 218/286 (76,2%)

{Topp 4 Match: 272/287 (94,8%) Motståndare: 242/286 (84,6%)

Som du ser, båda uppsättningarna statistik skulle få honom att kastas av en schackserver. För jämförelse här är analysen för spel 8 när flödet var nere:

{Vit: Borislav Ivanov}

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

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

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

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

{Svart: Borki Predojevic}

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

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

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

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

Observera att FIDE har inrättat en kommission för att undersöka sätt att upptäcka och bekämpa datorfusk. Deras riktlinjer finns här . Observera detta avsnitt:

E. FIDE: s internetbaserade skärmscreeningsverktyg

FIDE tillhandahåller ett internetbaserat spelscreeningsverktyg som är tillgängligt för alla auktoriserade FIDE-tjänstemän (IO, IA, ACC-medlemmar) och nationella federationer. Den ska vara värd på en FIDE-dedikerad webbsida och gör det möjligt för auktoriserade parter att ladda upp spel i PGN-format för ett ”snabbtest” som identifierar potentiella outliers i en turnering. Genom ”screening” är det underförstått att detta endast ger ett preliminärt test utan bedömningsvärde, förutom att det kan citeras medan man avvisar anklagelser och avvisar att gå vidare till ett manuellt fullständigt test.

Kommentarer

  • Bra analys! T3 / T4-resultaten är övertygande, särskilt när sannolikheten för hans resultat rapporteras. BTW: Jag inser att ditt inlägg gjordes för en tid sedan, men råkar du fortfarande ha citatet för konversationen mellan Kalinitschev och Allwermann? Det är uppenbart att ingen 1900 kommer att hitta en kompis i 8 på ett tillförlitligt sätt, särskilt när en 2500 inte ser det ’. ’ låter inte särskilt smart för honom att ha tagit upp denna punkt när det av sig själv kan orsaka misstanken att han ’ fusk.
  • BTW: Jag håller inte med om att Qa7! är en hjärtpropp. Det ’ utnyttjar helt enkelt de två fakta som: 1) Svart ’ s bakre rang är svag och 2) han ’ är sårbar för en kompis på den. Så, varje avledning av tårar från bakre rank kommer att tillåta potentiellt vinnande taktik. I det här fallet använder White förflyttningen för att attackera b-bonden och för att samordna sin drottning och tår på den sjunde så att tåran försvaras. Vit vinner minst en bonde efter 1 … Qxf7 2.Qxa8 + Qg8 3.Qxb7. Jag tror att någon GM borde ha sett flytten Qa7 och jag ’ är mycket förvånad över att Kalinitschev missade det. Det ’ är det mest tvingande steget på tavlan efter Rxf6 ?!
  • @jaxter Informationen kommer från sv.chessbase.com/post/a-history-of-cheating-in-che-3- . Observera ” Jag håller inte med om att Qa7! är en hjärtpropp ” – om du läser artikeln ser du att Vishy Anand inte håller med dig :-). Från artikeln – ’ Så vad spelar vår hjälte? 31.Qa7? !! “Fritzy!” skrek Anand och gick i okontrollerbara skrattanfall när han såg detta och följande drag (jag filmade hans glädje och inkluderade den i min multimediarapport i ChessBase Magazine 69). ’
  • Tack för referensen. Jag tar din poäng. Jag skulle säkert ha varit villig att ge flytten ett skott, men att ’ delvis för att jag skulle ha bedömt att vit kunde överleva svart ’ s motattack utan att beräkna alla rader . Om jag försökte göra det a) skulle jag ’ vara säker på att jag skulle göra ett allvarligt misstag och b) jag ’ skulle få heebie-jeebies och välj ett annat drag. Det ’ är just för att jag använder intuition att jag ofta spelar freaky rörelser som … Qa7 !. Det ’ är också utan tvekan en bidragande faktor till varför mitt betyg är under 2000 …
  • Det ’ sa skillnad mellan att topprörelsen är ett ljudrörelse som du ’ förväntar dig att många spelare hittar och en lysande taktik som du inte skulle ’ t förvänta dig att de flesta spelare ser. Vit ’ s lek ovan har flera av de senare.

Svar

För att ge mitt svar på hur jag skulle närma mig detta skulle jag använda en enkel idé:

  • Null hypotes Test

Tanken är att det finns ett begränsat antal offentligt tillgängliga schackmotorer, kan vi säga N av dem. Detta antagande utesluter naturligtvis möjligheten att fuskaren har skrivit sin egen schackmotor (eller använder någon offentligt otillgänglig schackmotor) men för att fånga avslappnade fuskare borde detta vara ett tillräckligt starkt antagande.

Tillämpningen av Null hypotesprov skulle vara väldigt enkelt: för varje schackmotor X och för varje följd av drag i det aktuella spelet beräknar du sannolikheten p för att observera den spelade följden antar att nullhypotes att spelaren är inte med schackmotor X för att göra rörelser åt dem. Ett naivt antagande skulle kunna göras att spelaren rör sig slumpmässigt (eller slumpmässigt väljer från ett valt antal topprörelser d_i), sedan sannolikheten för en given följd av längd k matchning flyttar en schackmotor X skulle göra skulle beräknas som (d_1)/(n_1) * (d_2)/(n_2) * (d_3)/(n_3) *...* (d_k)/(n_k) där d_i är antalet möjliga (övre) rörelser att göra vid ith sväng, som betygsatt av motorn X och n_i är antalet totala drag tillgängliga för spelaren i sin tur i (eller någon rimlig delmängd.)

Beräkna sedan helt enkelt

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

Om p* är mindre än en viss tröskel märker spelaren som en fuskare eftersom det finns en följd y och schackmotor X som ger sannolikheten att spelaren är inte fusk under en önskad sannolikhet.

Svar

Jag tror att analys efter spel ger dig bästa chansen att identifiera om en spelare fuskade. Detta kan göras med hjälp av det som kallas T3 / T4-analysen.

Detta mäter i princip frekvensen med vilken en spelare väljer en av de tre bästa eller fyra bästa rörelserna som föreslås av en motor. Detta eliminerar i stor utsträckning behovet av att identifiera målmotorn som används (eftersom de i allmänhet kommer överens om de bästa 4/5-rörelserna även om preferensordningen är annorlunda).

Det finns programvara som kommer att köra uppsättning spel för användaren mot motorns övre rörelser. Redigera:

Jag är medveten om ChessAnalyse som kan användas för att göra en sådan analys. Du kan prova den 30-dagars testversionen.

Kommentarer

  • Detta kan motverkas av en intelligent fuskare som har viss schackkunskap enligt följande: lekrörelser som helt enkelt inte gör din position sämre och vänta på din motståndares ’ s misstag som skulle äventyra hans / hennes position. Om du spelar 5 till 15 minuter blitz mot någon som inte har GM-styrka kommer detta definitivt att hända, förr eller senare. Om du dessutom slänger in enstaka dåliga drag och / eller om du inte insisterar på att vinna varje enskilt spel, är jag ’ säker på att ditt fusk skulle försvinna.
  • @AndreaMori: Jag håller med om att du kan undvika några situationer, men när hans / hennes betyg förbättras kommer han att tvingas leta upp mer och mer och så småningom kommer att upptäckas.
  • Tack, du har nämnt att det finns programvara tillgänglig. Kan du ge ett exempel?

Svar

Om din webbplats ger användarna ett klick får FEN-positioner eller PGN medan spelet körs bör du överväga att spåra dessa.

Vissa fuskare fuskar från början, men andra föredrar att bara börja fuska när de är i trubbel, och de kommer använd självklart kopiera FEN / PGN-funktionen eftersom det är tidskrävande att ställa in positionen manuellt.

Du bör på något sätt lagra det tillsammans med flytten när han kopierade den, på detta sätt kan du jämföra från som pekar på följande drag och se om hans styrka ökade kraftigt med hjälp av schackmotorer.

Men det är mycket viktigt att du bara använder den för att hjälpa dig att avgöra om han fuskar, det skulle vara orättvist. för att använda ett skript som inte använder någon mänsklig intervention kan det finnas många falskt positiva, till exempel, jag gillar ofta att kopiera positioner medan jag spelar för att senare analysera dem utan att behöva söka efter mitt spel eller hitta en exakt flyttning från PGN. Och jag lämnar det inte alltid på mitt klippkort eftersom jag är rädd för att skriva över det, så jag flyttar det till anteckningsblocket (vilket innebär att jag byter fönster strax efter att jag har kopierat det).

Kommentarer

  • Detta verkar vara att ta itu med ” hur man hanterar en server ” synvinkel snarare än ” är min motståndare fusk? ” en (inte att OP sa något om vilket ärende som betydde för honom). Kan det vara värt att nämna det, eftersom det tog lite tid att förstå vad du menade och tänkte på det från spelaren ’ s POV.(Bra svar … när detta förstår ^ _ ^ ’)
  • tack @ajax. Jag har inte tänkt på att spara det drag där positionen kopierades och analysera skillnaden mellan styrkan före och efter.
  • och naturligtvis kommer fuskare att ta reda på och inaktivera spårningen. eller gör sin egen kopieringsfunktion, det ’ är inte så svårt: codegolf.stackexchange.com/questions/89647/chess-conversion

Svar

FWIW, ingen har nämnt Dr. Ken Regan vid namn, även om pekare till Liptons blogg beskriver en annan artikel i Chess Life som diskuterar hans arbete.

Den artikeln är mycket informativ om Regans arbete, läget för detekteringstekniker som var i kraft 2014 och FIDE: s arbete med att inrätta en kommitté för att definiera och offentliggöra standarder, verktyg och tekniker för att hjälpa TD ” s för att utrota fusk.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *