Există o mulțime de site-uri online, unde jucătorii pot juca șah în timp real între ei. Majoritatea jocurilor durează 5-10 minute. Odată cu disponibilitatea software-ului de șah, se poate profita folosind Fritz sau Rybka pentru a-i sugera o mișcare.
De exemplu, pot doar să introduc fiecare mișcare a adversarului meu și să văd ce software îmi va sugera. .
Mă gândeam la câteva funcții care pot sugera că jucătorul înșală:
- de câte ori comută ecranul
- viteza de joacă (în poziții ușoare și foarte dificile)
- acuratețea jocului
Mai are cineva alte idei?
PS: Are nu contează pentru mine, din ce perspectivă te gândești (server sau partea clientului).
Comentarii
- Întrebare excelentă și problemă relevantă astăzi! Dar vrei să spui să detectezi înșelăciunea blitz online folosind un algoritm sau să detectezi la fel ca un jucător uman în timp ce joci un adversar?
- Strategiile de detectare a înșelăciunii funcționează numai atunci când înșelătorul este ” prost „. Adoptarea unor strategii de înșelăciune mai inteligente (vezi comentariul meu către răspunsul NoviceProgrammer ‘) ar face ca înșelăciunea să fie aproape imposibil de ghicit.
- Cred că este aproape fără probleme. Juc pe chess.com. Aș presupune că poate 1 persoană din 10 trișează. Și dacă bănuiesc că oponentul meu a primit ajutor, pur și simplu îi blochez.
Răspuns
Acesta este de fapt un o întrebare foarte complexă și nu una care a fost rezolvată într-un mod satisfăcător, din câte știu. În esență, solicităm un algoritm pentru a efectua un fel de test Turing invers, pentru a face diferența între jucătorii umani și computere.
În primul rând, verificările din partea clientului vor avea întotdeauna puncte slabe, cu excepția cazului în care vă aflați în complet controlul mediului clientului. Să luăm prima idee – verificând dacă comutați între ferestre, sună bine. Din păcate, funcționează în mod trivial rularea unui motor de șah pe un computer separat sau integrarea motorului meu cu clientul astfel încât să nu aibă loc „comutarea ferestrei” sau schimbarea clientului pentru a raporta 0 modificări în fereastră sau … Nu există nicio modalitate reală de a vă asigura că codul dvs. rulează pe client, într-adevăr.
Ceea ce ne-a rămas este mediile clientului controlate fizic (care nu se va întâmpla pentru niciun joc online), sau verificarea de pe server, adică examinarea mișcărilor reale care au fost jucate (și poate timpul dintre mișcări, după cum spui), și încercarea de a deduce aspectul computerului sau uman .
Verificarea din partea serverului se poate împărți și în două moduri. Probabil ați putea încerca o abordare „de sus în jos”, care ar fi ceva de-a lungul liniei „din jocurile anterioare din istorie, doar 2% de oameni au făcut această mișcare, în timp ce 50% din computere o fac. „Aceasta ar fi de fapt o modalitate destul de bună de a o face, dacă am avea suficiente date pentru” orice poziție dată „. Căutarea s Cu toate acestea, ritmul șahului este atât de mare, încât chiar și seturile de date foarte mari nu vor avea un număr semnificativ de jocuri care să corespundă poziției dvs., după ce veți trece de la începutul jocului de mijloc.
Presupunând că noi nu dacă aveți statistici fiabile în ceea ce privește partea umană a ecuației, ați putea prezenta poziția la mai multe motoare de șah (cu mai multe setări de timp diferite fiecare) și ați vedea cât de strâns se mișcă jucătorii cu cea a unui computer. În sine, acest lucru ar duce, de asemenea, la multe fals-pozitive, cu toate acestea, pozitive repetate pentru același motor de șah și setările de timp ar face din ce în ce mai probabil ca jucătorul să înșele. Pentru a îmbunătăți în continuare acest lucru, aș căuta probabil o abordare „de jos în sus” a analizei pozițiilor șahului; pe scurt, încercând să ne dăm seama de ce oamenii și computerele joacă diferit. De exemplu. oamenii tind să recunoască tiparele comune. Într-un joc cu tipare „ciudate” sau situații improbabile, un om ar fi mai puțin probabil să poată juca foarte precis. Niciunul dintre acestea, în sine, nu este deosebit de blestemat, dar având în vedere un număr mare de jocuri, acesta ar evidenția tendințele administratorilor.
Pentru a adăuga câteva detalii la lista dvs., aș merge pe linia modului în care profesorii detectează plagarismul în hârtii – prin detectarea unei schimbări bruște. În șah, acest lucru este extrem de dificil de definit, dar o schimbare bruscă a stilului de joc sau a puterii de joc poate indica înșelăciune. Mai exact, aș căuta mișcări neobișnuite de agresive, care tind să „rezolve” și nu au dezavantaje pentru jucător (prea precise). Colegii forțați în 4 sau mai multe mișcări de la un jucător care pune în mod normal cavalerii pe marginea bordului , etc (este posibil … pur și simplu nu este probabil). Cu toate acestea, exact cum ar funcționa acest lucru pare că ar putea ocupa o carte întreagă (sau mai multe).
EDIT: A existat un articol despre înșelăciune și detectare în șahul de nivel superior recent.
Comentarii
- oamenii împotriva computerelor pot da fals pozitive în deschiderea jocului, este foarte ușor să memorează cele mai bune piese
- @ ajax333221 Sunt complet de acord. Într-o anumită măsură, ceva similar se poate aplica jocului final, în care un om ar putea să-l joace aproape perfect, doar pe baza cunoștințelor anterioare. Acestea fiind spuse, dacă pot detecta posibile înșelăciuni într-un joc, sunt ‘ sigur că, cu informații suplimentare și analize sofisticate, un computer ar putea face același lucru. Perechea forțată în 4+ mutări a fost un exemplu real dintr-un joc online recent față de un jucător evaluat cu 1050 – foarte sugestiv, pentru a spune cel puțin …
Răspuns
În blitz, vă puteți da seama de cât timp folosesc. Oamenii care folosesc motoare folosesc o cantitate constantă de timp pentru fiecare mișcare, în loc să blitzeze prin deschidere și să încetinească la un crawl în mijlocul jocului ca majoritatea jucătorilor normali. În special, ei nu pot juca rapid deschiderea, deoarece trebuie să-și actualizeze placa de computer după fiecare mișcare de deschidere. Dacă durează cinci secunde la mișcare două și cinci secunde la mișcare douăzeci, probabil că vor folosi un motor.
Comentarii
- Nu sunt sigur dacă acest lucru a fost adevărat în momentul postării, dar stockfish poate accepta timpul rămas ca element de intrare pentru a stabili prioritatea în ce mișcare să petreceți timpul.
Răspuns
Numărul de comutatoare de ecran și viteza de joc sunt lipsite de sens. Dacă le folosiți pentru a vă plânge organizatorilor unui site de joc online de șah, ei vor râde de dvs.
Există două moduri pentru a spune dacă cineva înșală. Primul este „arma de fumat”. Luați în considerare această secțiune de joc –
[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
Întrebarea este ce ați juca în acea poziția? Situația este că o victorie în această, ultima rundă a competiției, vă va câștiga turneul în fața unui șir de mari maeștri. Nu este rău pentru doar 1900. Bănuiesc că majoritatea dintre noi ar juca ceva rezonabil de solid care să mențină câștigă. Mișcări precum Rxb7 sau Rd7 sau (pentru lașii ca mine 😉 Rxf6. Qa7 este un opritor al mișcării, un pistol fumător. Fritz consideră cea mai bună mișcare în poziție, cu 0,1 înaintea următoarei cele mai bune mișcări, Rd7.
Jocul cu pistolul de fumat # 2 la sfârșitul jocului, când negrul a demisionat, lăsând jucătorul clasat în 1900 drept câștigător direct al turneului. Ce i-ai spune lui Kalinitschev în acea poziție?
Așa a mers conversația:
Allwermann: „Este partener în 8”
Kalinitschev: „Nu cred”
Allwermann: „„ Verifică, vei găsi că „am dreptate”
Allwermann avea dreptate, desigur. Puteți găsi partenerul în 8 în poziția finală? Fără asistență de siliciu?
Deci, aveți arma de fumat și o duceți la organizatori. Ce vor face?
Ei bine, atunci vine al doilea mod de a detecta și a demonstra dincolo de orice îndoială rezonabilă că înșelăciunea are loc.
Va trebui să colecteze cel puțin 20 de jocuri fiecare cu cel puțin 20 de mutări care nu fac parte din baze de date și le alimentează într-un motor pentru verificare. Practic, ceea ce caută este procentul de timp în care suspectul alege o mutare care nu se bazează pe baza de date, care se potrivește cu prima alegere a motorului, una dintre primele 2 alegeri, una dintre primele 3 alegeri. Pragurile de „dovadă” sunt –
Top 1 65%
Top 2 80%
Top 3 90%
Un exemplu recent este furor asupra performanței lui Borislav Ivanov .
Iată statisticile sale –
Zadar 19th: Houdini 1.5a x64 Hash: 256 Time: 30s Max Adâncime: 20pl {Borislav Ivanov (Jocuri: 9)}
{Top 1 Meci: 210/314 (66,9%) Adversari: 150/313 (47,9%)
{Top 2 Meci: 270/314 (86,0%) Adversari: 207/313 (66,1%)
{Top 3 Meci: 285/314 (90,8%) Adversari: 238/313 (76,0%)
{Top 4 meci: 293/314 (93,3%) Adversari: 267/313 (85,3%)
În runda a 8-a fluxul live a scăzut (se suspectează că acest lucru i-a permis ajutorul din exterior obține mișcările) și a pierdut în fața GM Predojevic. Dacă acest rezultat este eliminat, atunci noile statistici sunt:
Zad al 19-lea: Houdini 1,5a x64 Hash: 256 Timp: 30s Adâncimea maximă: 20pl {Borislav Ivanov (Jocuri:)}
{Top 1 Meci: 197/287 (68,6%) Adversari: 135/286 ( 47,2%)
{Top 2 meci: 252/287 (87,8%) Adversari: 188/286 (65,7%)
{Top 3 meci: 265/287 (92,3%) Adversari: 218/286 (76,2%)
{Top 4 meci: 272/287 (94,8%) Adversari: 242/286 (84,6%)
După cum vedeți, ambele seturi de statistici l-ar face să fie aruncat de un server de șah. Pentru comparație, iată analiza pentru jocul 8 când feed-ul a fost defect:
{Alb: Borislav Ivanov}
{Top 1 Meci: 13/27 (48,1%)
{Top 2 meci: 18/27 (66,7%)
{Top 3 meci: 20/27 (74,1%)
{Top 4 meci: 22/27 (81,5%)
{Negru: Borki Predojevic}
{Top 1 meci: 15/27 (55,6%)
{Top 2 meci: 19 / 27 (70,4%)
{Top 3 meci: 20/27 (74,1%)
{Top 4 meci: 25/27 (92.6%)
Rețineți că FIDE a înființat o comisie pentru a investiga modalități de detectare și combatere a înșelăciunilor computerizate. Regulile lor sunt aici . Rețineți această secțiune:
E. Instrumentul de examinare a jocurilor bazat pe internet FIDE
FIDE va furniza un instrument de screening pentru jocuri bazat pe internet, care va fi accesibil tuturor oficialilor autorizați ai FIDE (membri IO, IA, ACC) și federațiilor naționale. Acesta va fi găzduit pe o pagină web dedicată FIDE și va permite părților autorizate să încarce jocuri în format PGN pentru un „test rapid” care va identifica potențialele valori anterioare ale unui turneu. Prin „screening” se înțelege că acesta oferă doar un test preliminar fără valoare de judecată, cu excepția faptului că poate fi citat în timp ce respinge afirmațiile și refuză să treacă la un test complet manual.
Comentarii
- Excelentă analiză! Rezultatele T3 / T4 sunt convingătoare, mai ales atunci când probabilitatea rezultatelor sale este raportată. BTW: Îmi dau seama că postarea ta a fost făcută cu ceva timp în urmă, dar se întâmplă să ai în continuare citația pentru conversația dintre Kalinitschev și Allwermann? În mod clar, niciun 1900 nu va găsi un partener în 8 în mod fiabil, mai ales atunci când un 2500 nu-l vede ‘. Nu ‘ nu sună deosebit de inteligent pentru el că a ridicat acest punct când ar putea de la sine provoca suspiciunea că el ‘ înșelăciunea.
- BTW: Nu sunt de acord cu Qa7! este un dop de inimă. ‘ exploatează pur și simplu cele două fapte care: 1) rangul negru ‘ este slab și 2) el este vulnerabil la un partener de pe el. Deci, orice deviere a rook-ului de pe rangul din spate va permite tactici potențial câștigătoare. În acest caz, White folosește mișcarea pentru a ataca pionul b și pentru a-și coordona regina și turnul pe al șaptelea, astfel încât turnul să fie apărat. Albul câștigă cel puțin un pion după 1 … Qxf7 2.Qxa8 + Qg8 3.Qxb7. Cred că orice GM ar fi trebuit să vadă mișcarea Qa7 și ‘ sunt foarte surprins că Kalinitschev a ratat-o. ‘ este cea mai forțată mișcare de pe tablă, după Rxf6 ?!
- @jaxter Informațiile provin de la en.chessbase.com/post/a-history-of-cheating-in-che-3- . Notă ” Nu sunt de acord că Qa7! este un inimă ” – dacă citiți articolul veți vedea că Vishy Anand nu este de acord cu dvs. :-). Din articol – ‘ Deci, ce joacă eroul nostru? 31.Qa7? !! „Fritzy!” a țipat pe Anand și a intrat în crize de râs incontrolabile când a văzut asta și următoarele mișcări (i-am filmat veselia și am inclus-o în reportajul meu multimedia din ChessBase Magazine 69). ‘
- Vă mulțumim pentru referință. Îți iau ideea. Cu siguranță aș fi fost dispus să dau o mișcare, dar ‘ este parțial pentru că aș fi judecat că albul ar putea supraviețui negru ‘ s atacă fără a calcula toate liniile . Dacă aș încerca să fac asta a) aș fi ‘ sigur că aș comite o greșeală fatală și b) aș primi ‘ heebie-jeebies și alege o mișcare diferită. ‘ este tocmai pentru că folosesc intuiția că de multe ori joc mișcări ciudate ca … Qa7 !. ‘ este, fără îndoială, un factor care contribuie la motivul pentru care evaluarea mea este sub 2000 …
- Există diferența dintre mișcarea de sus fiind o mișcare de sunet pe care ‘ te-ai aștepta să o găsească o mulțime de jucători și o tactică strălucitoare pe care nu ți-ai ‘ t așteptați să vadă majoritatea jucătorilor. Jocul alb ‘ de mai sus are mai multe dintre acestea din urmă.
Răspuns
Pentru a răspunde la modul în care aș aborda acest lucru, aș folosi o idee simplă:
- Test de ipoteză nulă
Ideea este că există un număr limitat de motoare de șah disponibile publicului, să spunem N
dintre ei. Această presupunere, desigur, exclude posibilitatea ca trișatorul să-și fi scris propriul motor de șah (sau să folosească un motor de șah indisponibil public), dar pentru a prinde înșelători ocazionali ar trebui să fie o presupunere suficient de puternică.
Aplicarea Test de ipoteză nulă ar fi foarte simplă: pentru fiecare motor de șah X
și pentru fiecare subsecvență de mișcări ale jocului curent calculați probabilitatea p
de a observa subsecvența jucată asumând ipoteză nulă că jucătorul este nu folosind motorul de șah X
pentru a face mișcările pentru ei. S-ar putea face o presupunere naivă că jucătorul se mișcă la întâmplare (sau alege aleatoriu dintr-un număr selectat de mișcări de top d_i
), apoi probabilitatea pentru o subsecvență dată de lungime k
potrivirea mută un motor de șah X
ar face ar fi calculată ca (d_1)/(n_1) * (d_2)/(n_2) * (d_3)/(n_3) *...* (d_k)/(n_k)
unde d_i
este numărul de mișcări posibile (de sus) de făcut la virajul ith
, după cum este evaluat de motor X
și n_i
este numărul de mișcări totale disponibile jucătorului la rândul său i
(sau un subset rezonabil.)
Apoi, pur și simplu calculați
p* = minimum p over all chess engine X, all subsequences y.
Dacă p*
este mai mic decât un anumit prag etichetați jucătorul ca un înșelător, deoarece există o subsecvență y
și motor de șah X
care aduce probabilitatea ca jucătorul să fie nu trișează sub o probabilitate dorită.
Răspuns
Cred că analiza post-joc vă oferă cele mai mari șanse de a identifica dacă un jucător a înșelat. Acest lucru se poate face folosind ceea ce se numește analiza T3 / T4.
Aceasta măsoară practic frecvența cu care un jucător alege una dintre primele 3 sau primele 4 mișcări sugerate de un motor. Acest lucru elimină în mare măsură necesitatea de a identifica motorul țintă utilizat (deoarece aceștia vor conveni, în general, asupra primelor 4/5 mișcări, chiar dacă ordinea preferințelor este diferită).
Există programe disponibile care vor rula un set de jocuri ale utilizatorului împotriva primelor n mișcări ale motorului. Editați:
Sunt conștient de ChessAnalyse care poate fi folosit pentru a face o astfel de analiză. Puteți încerca versiunea de încercare de 30 de zile.
Comentarii
- Acest lucru poate fi contracarat de un înșelător inteligent care are câteva cunoștințe de șah după cum urmează: joacă mișcări care pur și simplu nu vă înrăutățesc poziția și așteptați greșeala adversarului ‘, ceea ce i-ar compromite poziția. Dacă jucați 5 până la 15 minute blitz împotriva unei persoane care nu are forță genetică, acest lucru se va întâmpla cu siguranță, mai devreme sau mai târziu. În plus, dacă arunci o mișcare proastă ocazională și / sau nu insiști să câștigi fiecare joc, sunt ‘ sigur că înșelăciunea ta va rămâne nedetectată.
- @AndreaMori: sunt de acord că puteți evita câteva situații, dar pe măsură ce evaluarea sa se îmbunătățește, va fi obligat să caute din ce în ce mai mult și în cele din urmă va fi detectat.
- Mulțumesc, ați menționat că există software disponibil. Puteți da un exemplu?
Răspuns
Dacă site-ul dvs. oferă utilizatorilor un singur clic pentru a obține poziții FEN sau PGN în timp ce jocul rulează , ar trebui să luați în considerare urmărirea acestora.
Unii înșelători trișează de la început, dar alții preferă să înceapă să înșele doar atunci când au probleme și vor face acest lucru. Evident, utilizați funcția de copiere FEN / PGN, deoarece este nevoie de timp pentru a configura poziția manual.
Ar trebui cumva să stocați acest lucru împreună cu mutarea în momentul în care a copiat-o, astfel puteți compara de la indică următoarele mișcări și vedeți dacă puterea lui a crescut foarte mult cu ajutorul motoarelor de șah.
Dar este foarte important să o folosiți doar pentru a vă ajuta să decideți dacă a înșelat, ar fi nedrept pentru a utiliza un script care nu folosește nicio intervenție umană, pot exista multe fals-pozitive, de exemplu, îmi place adesea să copiez poziții în timp ce joc pentru a le analiza ulterior fără a fi nevoie să îmi caut jocul sau să găsesc E mutarea exactă de la PGN. Și nu-l las întotdeauna în clipboard, deoarece frica de a-l suprascrie, așa că îl mut pe notepad (ceea ce înseamnă că schimb fereastra imediat după ce îl copiez).
Comentarii
- Acest lucru pare să abordeze ” modul de gestionare a unui server ” punct de vedere, mai degrabă decât ” înșelă oponentul meu? ” (nu că OP a spus nimic despre cazul care a contat pentru el). Ar putea fi demn de menționat pentru că mi-a luat puțin timp să înțeleg ce vrei să spui, gândindu-mă la asta din POV-ul jucătorului ‘.(Răspuns bun … odată ce acest lucru este înțeles ^ _ ^ ‘)
- mulțumesc @ajax. Nu m-am gândit să salvez mișcarea la care a fost copiată poziția și să analizez diferența dintre puterea înainte și după.
- și, bineînțeles, înșelătorii vor afla și vor dezactiva urmărirea. sau face propriile funcții de copiere, ‘ nu este atât de greu: codegolf.stackexchange.com/questions/89647/chess-conversion
Răspuns
FWIW, nimeni nu l-a menționat pe Dr. Ken Regan pe nume, deși indicatorul către blogul lui Lipton descrie un alt articol din Viața de șah care discută despre munca sa.
Acest articol este foarte informativ despre activitatea lui Regan, despre starea tehnicilor de detectare care erau în vigoare în 2014 și despre activitatea FIDE în înființarea unui comitet pentru definirea și promulgarea standardelor, instrumentelor și tehnicilor care să asiste TD ” în eliminarea înșelăciunilor.