Istnieje wiele stron internetowych, na których gracze mogą grać w szachy w czasie rzeczywistym. Większość gier trwa 5–10 minut. Dzięki dostępności oprogramowania szachowego można skorzystać z Fritza lub Rybki, aby zaproponować mu ruch.
Na przykład, mogę po prostu wprowadzić każdy ruch mojego przeciwnika i zobaczyć, jakie oprogramowanie zasugeruje mi.
Myślałem o kilku funkcjach, które mogą sugerować, że gracz oszukuje:
- ile razy zmienia ekran
- szybkość gry (w łatwych i naprawdę trudnych pozycjach)
- dokładność gry
Czy ktoś ma jakieś inne pomysły?
PS: Nie ma dla mnie znaczenia, z jakiej perspektywy myślisz (po stronie serwera lub klienta).
analysis
online-chess
Salvador Dali
źródło
źródło
Odpowiedzi:
Według mojej wiedzy jest to bardzo złożone pytanie, które nie zostało rozwiązane w zadowalający sposób. Zasadniczo prosimy o algorytm, który przeprowadzi rodzaj odwrotnego testu Turinga, aby odróżnić ludzi od komputerów.
Po pierwsze, kontrole po stronie klienta zawsze będą miały słabości, chyba że masz pełną kontrolę nad środowiskiem klienta. Weźmy pierwszy pomysł - sprawdzanie przełączania między oknami, brzmi dobrze. Niestety, jest to trywialnie obejście, uruchamiając silnik szachowy na osobnym komputerze lub integrując mój silnik z klientem, aby nie miało miejsca „przełączanie okien”, lub zmieniając klienta, aby zgłaszał 0 zmian w oknie, lub ... Nie ma prawdziwy sposób na upewnienie się, że to twój kod działa na kliencie, naprawdę.
Pozostaje nam fizycznie ściśle kontrolowane środowisko klienckie (co nie nastąpi w przypadku gier online) lub sprawdzanie po stronie serwera, tj. Sprawdzanie rzeczywistych ruchów, które zostały zagrane (i być może czas między ruchami, jak mówisz), i próbować wydedukować aspekt komputerowy lub ludzki.
Sprawdzanie po stronie serwera można również podzielić na kilka sposobów. Prawdopodobnie możesz spróbować „odgórnego” podejścia, które byłoby podobne do „z poprzednich gier w historii, tylko 2% ludzi wykonało ten ruch, podczas gdy 50% komputerów to zrobiło”. Byłby to całkiem dobry sposób na zrobienie tego, gdybyśmy mieli wystarczającą ilość danych do „dowolnej pozycji”. Szachy są jednak tak duże, że nawet bardzo duże zestawy danych nie będą miały znaczącej liczby gier pasujących do twojej pozycji, gdy przejdziesz przez wczesną fazę gry.
Zakładając, że nie mamy żadnych wiarygodnych statystyk po ludzkiej stronie równania, nadal możesz przedstawić pozycję wielu silnikom szachowym (z różnymi ustawieniami czasu dla każdego) i zobaczyć, jak ściśle pasują ruchy graczy z komputera. Samo w sobie doprowadziłoby to również do wielu fałszywych alarmów, jednak powtarzanie pozytywów dla tego samego silnika szachowego i ustawień czasu sprawiałoby, że gracz coraz bardziej prawdopodobne, że oszukuje. Aby jeszcze bardziej to ulepszyć, prawdopodobnie przyjrzałbym się podejściu oddolnemu analizując pozycje szachowe; w skrócie, próbując dowiedzieć się, dlaczego ludzie i komputery grają inaczej. Np. Ludzie zwykle rozpoznają wspólne wzorce. W grze o „dziwnych” wzorach lub w mało prawdopodobnych sytuacjach człowiek byłby w stanie grać bardzo dokładnie. Żaden z tych,
Aby dodać kilka szczegółów do twojej listy, chciałbym pójść wzdłuż linii tego, w jaki sposób profesorowie wykrywają plagaryzm w papierach - wykrywając nagłą zmianę. W szachach jest to niezwykle trudne do zdefiniowania, ale nagła zmiana stylu gry lub siły gry może wskazywać na oszukiwanie. W szczególności szukałbym nietypowych, agresywnych ruchów, które po prostu „ćwiczą” i nie mają wad dla gracza (zbyt dokładne). Zmuszeni koledzy w 4+ ruchach od gracza, który normalnie stawia rycerzy na krawędzi planszy itp. (Jest to możliwe ... po prostu mało prawdopodobne). Jednak dokładnie, jak by to działało, mogłoby zabrać całą książkę (lub więcej).
EDYCJA: Niedawno był artykuł o oszustwach i wykrywaniu w szachach najwyższego poziomu .
źródło
W trybie błyskawicznym możesz określić, ile czasu używają. Ludzie używający silników zużywają stałą ilość czasu na każdy ruch, zamiast błyskawicznie przeskakiwać przez otwarcie i spowalniać do czołgania się w środkowej fazie gry, jak większość zwykłych graczy. W szczególności nie mogą szybko zagrać w otwieranie, ponieważ muszą aktualizować płytę komputera po każdym ruchu otwierającym. Jeśli zabiorą pięć sekund w ruchu dwie i pięć sekund w ruchu dwudziestu, prawdopodobnie używają silnika.
źródło
Liczba przełączników ekranu i szybkość gry są bez znaczenia. Jeśli skorzystasz z nich, aby złożyć skargę do organizatorów internetowej witryny szachowej, będą się z ciebie śmiać.
Istnieją dwa sposoby, aby stwierdzić, czy ktoś oszukuje. Pierwszym z nich jest „pistolet do palenia”. Rozważ tę sekcję gry -
Pytanie brzmi: co byś zagrał na tej pozycji? Sytuacja jest taka, że zwycięstwo w tej, ostatniej rundzie konkursu, wygra turniej przed szeregiem arcymistrzów. Nieźle jak na 1900 rok. Podejrzewam, że większość z nas zagrałaby w dość solidną grę, która utrzyma zwycięstwo. Porusza się jak Rxb7 lub Rd7 lub (dla tchórzy takich jak ja ;-) Rxf6. Qa7 powstrzymuje ruch, palący pistolet. Fritz ocenia jako najlepszy ruch w tej pozycji, aż o 0,1 przed następnym najlepszym ruchem, Rd7.
Palenie pistoletu nr 2 pod koniec gry, kiedy czarny zrezygnował, pozostawiając gracza z oceną 1900 jako zwycięzcy turnieju. Co powiesz Kaliniczewowi na tym stanowisku?
Tak przebiegała rozmowa:
Allwermann: „Jest kolega z 8”
Kalinitschev: „Nie wydaje mi się”
Allwermann: „„ Sprawdź, przekonasz się, że mam rację ”
Allwermann miał oczywiście rację. Czy potrafisz znaleźć partnera na pozycji 8 w końcowej pozycji? Bez pomocy krzemu?
Masz więc swój pistolet do palenia i przekazujesz go organizatorom. Co oni zrobią
No cóż, wtedy pojawia się drugi sposób wykrycia i udowodnienia ponad wszelką wątpliwość, że oszustwo ma miejsce.
Będą musieli zebrać co najmniej 20 gier z co najmniej 20 ruchami spoza bazy danych i wprowadzić je do silnika w celu sprawdzenia. Zasadniczo to, czego szukają, to procent czasu, w którym podejrzany wybiera ruch niebędący bazą danych, który pasuje do pierwszego wyboru silnika, jednego z pierwszych 2 typów, jednego z 3 pierwszych typów. Progi „dowodowe” wynoszą -
Top 1 65%
Top 2 80%
Top 3 90%
Najnowszym przykładem jest furia związana z występem Borysława Iwanowa .
Oto jego statystyki -
Zadar 19.: Houdini 1.5a x64 Hash: 256 Czas: 30s Maksymalna głębokość: 20ply {Borislav Ivanov (Gry: 9)}
{Najlepszy mecz 1: 210/314 (66,9%) Przeciwnicy: 150/313 (47,9%)
{Mecz w pierwszej 2: 270/314 (86,0%) Przeciwnicy: 207/313 (66,1%)
{Najlepszy mecz 3: 285/314 (90,8%) Przeciwnicy: 238/313 (76,0%)
{Najlepszy mecz 4: 293/314 (93,3%) Przeciwnicy: 267/313 (85,3%)
W 8 rundzie transmisja na żywo spadła (podejrzewa się, że pozwoliło to jego pomocy z zewnątrz uzyskać ruchy) i przegrał z GM Predojeviciem. Jeśli ten wynik zostanie usunięty, nowe statystyki to:
Zadar 19.: Houdini 1.5a x64 Hash: 256 Czas: 30s Maksymalna głębokość: 20ply {Borislav Ivanov (Gry:)}
{Najlepszy mecz 1: 197/287 (68,6%) Przeciwnicy: 135/286 (47,2%)
{Najlepszy mecz 2: 252/287 (87,8%) Przeciwnicy: 188/286 (65,7%)
{Najlepszy mecz 3: 265/287 (92,3%) Przeciwnicy: 218/286 (76,2%)
{Najlepszy mecz 4: 272/287 (94,8%) Przeciwnicy: 242/286 (84,6%)
Jak widać, oba zestawy statystyk sprawiłyby, że wyrzuciłby go z serwera szachowego. Dla porównania tutaj jest analiza gry 8, gdy kanał był wyłączony:
{White: Borislav Ivanov}
{Najlepszy mecz 1: 13/27 (48,1%)
{Najlepszy mecz 2: 18/27 (66,7%)
{Najlepszy mecz 3: 20/27 (74,1%)
{Top 4 dopasowanie: 22/27 (81,5%)
{Czarny: Borki Predojevic}
{Najlepszy mecz 1: 15/27 (55,6%)
{Top 2 dopasowanie: 19/27 (70,4%)
{Najlepszy mecz 3: 20/27 (74,1%)
{Top 4 dopasowanie: 25/27 (92,6%)
Pamiętaj, że FIDE powołało komisję, która ma zbadać sposoby wykrywania i zwalczania oszustw komputerowych. Ich wytyczne są tutaj . Zwróć uwagę na tę sekcję:
źródło
Aby udzielić odpowiedzi, jak do tego podejdę, skorzystam z prostego pomysłu:
Chodzi o to, że istnieje ograniczona liczba publicznie dostępnych silników szachowych, powiedzmy
N
o nich. To założenie oczywiście wyklucza możliwość, że oszust napisał własny silnik szachowy (lub używa jakiegoś publicznie niedostępnego silnika szachowego), ale dla złapania przypadkowych oszustów powinno to być wystarczające założenie.Zastosowanie Hipoteza test Null byłaby bardzo prosta: dla każdego silnika szachowego
X
i dla każdego podciągu ruchów bieżącej grze obliczyć prawdopodobieństwop
obserwowania odgrywaną podciąg zakładając się hipotezę zerową , że gracz nie używając szachy silnikX
, aby ruchy dla nich. Naiwny założenie może być wykonana, że przenosi graczy w przypadkowych (lub wybiera losowo od wybranej liczby najlepszych ruchówd_i
), to prawdopodobieństwo dla danej podciąg długośćk
dopasowania ruchów silnik szachowyX
stałaby będzie obliczana jako(d_1)/(n_1) * (d_2)/(n_2) * (d_3)/(n_3) *...* (d_k)/(n_k)
gdzied_i
jest liczbą możliwe (górne) ruchy do wykonania naith
turn, zgodnie z oceną silnikaX
in_i
jest liczbą całkowitych ruchów dostępnych dla gracza w turzei
(lub innym rozsądnym podzbiorze).Następnie po prostu oblicz
Jeśli
p*
jest mniejszy niż określony próg, gracz jest oszustem, ponieważ istnieje podsekwencjay
i silnik szachowy,X
który daje prawdopodobieństwo, że gracz nie zdradza poniżej pożądanego prawdopodobieństwa.źródło
Myślę, że analiza po grze daje najlepszą szansę na ustalenie, czy gracz oszukuje. Można to zrobić za pomocą tak zwanej analizy T3 / T4.
Zasadniczo mierzy to częstotliwość, z jaką gracz wybiera jeden z 3 najlepszych lub 4 ruchów sugerowanych przez silnik. To w dużej mierze eliminuje potrzebę identyfikacji używanego silnika docelowego (ponieważ będą one ogólnie zgadzać się na najlepsze ruchy 4/5, nawet jeśli kolejność preferencji jest inna).
Dostępne jest oprogramowanie, które będzie uruchamiać zestaw gier użytkownika przeciwko najwyższym n ruchom silnika. Edytować:
Znam ChessAnalyse, którego można użyć do przeprowadzenia takiej analizy. Możesz wypróbować 30-dniową wersję próbną.
źródło
Jeśli Twoja witryna daje użytkownikom jedno kliknięcie, aby uzyskać pozycje FEN lub PGN podczas gry , należy rozważyć ich śledzenie.
Niektórzy oszuści oszukują od samego początku, ale inni wolą zacząć oszukiwać tylko wtedy, gdy mają kłopoty, i oczywiście używają funkcji kopiowania FEN / PGN, ponieważ ręczne ustawienie pozycji jest czasochłonne.
Powinieneś jakoś zapamiętać to wraz z ruchem w momencie, w którym go skopiował, w ten sposób możesz porównać od tego momentu do następujących ruchów i zobaczyć, czy jego siła znacznie wzrosła za pomocą silników szachowych.
Ale bardzo ważne jest, abyś używał go tylko, aby pomóc Ci zdecydować, czy on oszukuje, byłoby niesprawiedliwe, aby używać skryptu, który nie wymaga interwencji człowieka, może być wiele fałszywych trafień, na przykład często lubię kopiować pozycje podczas gdy gram, aby później je przeanalizować bez potrzeby szukania mojej gry lub znalezienia dokładnego ruchu z PGN. I nie zawsze zostawiam go w schowku, ponieważ boję się go zastąpić, więc przenoszę go do notatnika (co oznacza, że przełączam okna zaraz po skopiowaniu).
źródło
FWIW, nikt nie wspominał dr Kena Regana z imienia, chociaż wskaźnik do bloga Liptona opisuje inny artykuł w Chess Life, który omawia jego prace.
Ten artykuł jest bardzo pouczający o pracy Regana, stanie technik wykrywania, które obowiązywały w 2014 r., A także pracach FIDE nad ustanowieniem komitetu w celu zdefiniowania i promowania standardów, narzędzi i technik pomagających TD w eliminowaniu oszustw.
źródło