Pojawił się nowy pokerowy bot Open Source o nazwie PokerPirate . Interesują mnie wszelkie kreatywne sposoby, w jakie aplikacja internetowa mogłaby wykryć / udaremnić / pokonać pokerowego bota. (To dyskusja czysto akademicka, w tym samym duchu, w jakim napisano PokerPirate).
107
Odpowiedzi:
Pokonanie bota z perspektywy serwera
Wiele witryn z pokerem online korzysta z wyskakujących okienek Captcha, które są wywoływane przez podejrzaną aktywność.
Niektóre poker monitorować razy i wzorców (czyli najgorszy scenariusz jest gracz, który gra 24x7 i 16 stołów w sposób ciągły, istnieje malutka szansa ta jest prawdziwym człowiekiem. (Jednak niektórzy gracze grając mają zdolność do odegrania bardzo dużą dłoń tomy, które niedoświadczonemu oku wydawałyby się botem)
Wyrzuć to usterki. Jeśli podejrzewasz, że gracz jest botem, zmień wszystkie pozycje jego kart do gry o kilka pikseli na ekranie, nadaj im różne kolory / wzory / wzory dla 1/100 rąk i zobacz, czy je wyrzuca. Jeśli nie może pobrać ekranu, przekroczy limit czasu na wszystkie swoje decyzje i to jest dość przekonujący dowód bota.
Czas mówi, że jeśli gracz komputerowy reaguje na opcje w milisekundach na raz, bez zastanowienia się nad dużymi decyzjami, może to być podejrzane
Samokontrola. Witryna pokerowa pokertableratings.com zawiera dane z wielu dużych witryn. Spotkało się z mieszanym przyjęciem, niektórzy uwielbiają przejrzystość, inni nienawidzą . Zaletą jest jednak to, że zdarzały się przypadki, w których podejrzane statystyki graczy (procenty VPIP, procenty PFR to kilka z dużej liczby wymiernych statystyk, które można zarejestrować) prowadziły do wniosków dotyczących oszukiwania
Sztucznie inteligentne sieci klasyfikacyjne mogą monitorować wymierne statystyki, aby klasyfikować nieuczciwych oszustów lub robotów.
Kiedy poker online był całkiem nowym podmiotem, pojawiły się plotki i dyskusje z ograniczonymi dowodami, że niektóre programy klienckie pokera pokazują ekrany komputerów podejrzanych graczy, aby sprawdzić, czy uruchamiają programy, które im pomagają. Jednak (nawet gdyby to była prawda) uruchomienie dwóch komputerów w celu niezależnego wykonania tych dwóch zadań pozwoliłoby obejść ten problem.
Dzielenie się informacjami między recydywistami między wieloma witrynami byłoby korzystne dla branży, gdyby tylko byli honorowi i prowadzeni przez kompetentne i odpowiedzialne osoby
Niektóre boty prawdopodobnie byłyby dość proste z założenia, gdybyś mógł odkryć ich styl gry i zobaczyć, jak zachowują się w identycznych sytuacjach (zauważ, że jest to możliwe tylko w przypadku prostych botów grających bardzo podstawową strategię), możesz je dość szybko odkryć.
Niespójne korzystanie z funkcji programu skłaniałoby się ku autentyczności gracza. Weźmy na przykład wiele witryn pokerowych w grze, które mają przycisk „Spasuj, kiedy jest moja kolej”. Jeśli dostaniesz zły układ i czekasz, aż inny gracz zdecyduje, co zrobić, wielu graczy sprawdzi ten przycisk. Bot może używać tych przycisków. Różnica polega na tym, że bot byłby na skraju częstotliwości używania, prawdopodobnie albo używałby ich przez cały czas, albo wcale. Podczas gdy gracz zazwyczaj wciska „autofold”, ale czasami i tak klika spasowanie, nawet w najbardziej sprzyjających warunkach. Na przykład prawdziwy gracz zazwyczaj naciska na auto pas, ale tym razem tego nie robi. Spasowano do nich, gdy żaden inny gracz nie działał, teraz przedstawiono im jak najkorzystniejsze warunki. Teraz, gdyby nacisnęli spasowanie, byliby mocno skłonni do naciskania autofold od samego początku. Jest to zachowanie niespójne / niezoptymalizowane / przypadkowe, zgodne z byciem człowiekiem. Czas wskazuje, kiedy kliknięto te funkcje, są innymi wskaźnikami. Ważne jest, aby zdać sobie sprawę, że są to wszystkie wskaźniki, a nie ostateczny dowód. Wszystkie te wskaźniki behawioralne można łatwo zasymulować.
Pokonanie bota z perspektywy gracza
Spróbuj zalogować się i zebrać jak najwięcej danych za pomocą oprogramowania takiego jak PokerTracker
Spróbuj zidentyfikować wzorce w jego stylu gry
Spróbuj znaleźć relacje między wielkością zakładu w stosunku do liczby graczy w puli / # i sile rąk
Spróbuj obliczyć zasięg jego rąk . Bot z niskimi stawkami prawdopodobnie nie będzie blefował wystarczająco często, aby mieć jakiekolwiek istotne znaczenie strategiczne, więc skonstruowanie bardzo dokładnych zakresów rąk dla niego nie powinno być zbyt trudne.
Spróbuj znaleźć wycieki w swojej grze za pomocą analizy danych oraz prób i błędów. Po znalezieniu wycieków / wzorców, próbuj je wielokrotnie wykorzystywać i unikaj innych sytuacji.
Tam, gdzie człowiek jest zdolny do przystosowania się , boty prawdopodobnie są w mniejszym stopniu, a gdy ludzie są obciążeni łańcuchami pochylenia , myślenie zorientowane na wyniki i frustracje , boty nie są. Możesz to wykorzystać na swoją korzyść.
Zasadniczo więc nic nie można zrobić, aby to zatrzymać, jeśli robot jest wystarczająco sprytny, aby symulować rzeczywiste opóźnienia w czasie podczas podejmowania decyzji, a także tworzyć rozsądne i realistyczne wzorce gry. Dorzuć kilka losowych warunków i prosty back-chat (leksykon graczy w pokera jest zwykle dość ograniczony ) i masz gracza AI, którego trudno będzie wykryć.
Co mogą zrobić boty, aby uniknąć wykrycia
Kluczem do uniknięcia wykrycia byłoby rozważenie problemu z jak największej liczby punktów widzenia. Próbujesz zasymulować inteligentne ludzkie zachowanie w bardzo małym i ograniczonym świecie. Większość symulacji behawioralnych, które możesz przeprowadzić, jest dość oczywistych, ale im bardziej niekonsekwentny i nieprzewidywalny jest twój bot, tym mniejsze prawdopodobieństwo, że zostanie wykryty.
Twórz realistyczne harmonogramy gry (tj. 3–5 razy w tygodniu, 4 godziny na sesję z nieparzystym tygodniem tu i tam w ciągu roku).
Uruchamiaj programy, aby podejmować decyzje na oddzielnym komputerze, kontrolując komputer zombie w przypadku przechwytywania ekranu dowolnej witryny.
Losowe czasy akcji (nie działaj natychmiast, odczekaj 0,5–2 sekundy na akcję)
Ograniczenie czasu na ważne decyzje. Jeśli decyzja jest na granicy, oblicz ją, a następnie poczekaj chwilę, aby zasymulować myśl.
Losowe użycie funkcji oprogramowania klienta. Symuluj przerwy w toalecie, klikając przycisk „Wypłać mnie” przy wszystkich stołach i od czasu do czasu rób 5 minut przerwy.
Symulowany czat, czat pokerowy jest często bardzo prosty, nigdy nie jest dyskusją ani debatą. W odpowiednich, wykrywalnych momentach mów na przykład „pech” lub „stfu”. Lub nawet poproś programistę o monitorowanie swojego bota i angażowanie się w czat podczas wykonywania.
Upewnij się, że ruchy myszy są realistyczne. Jeśli stoły są wyłożone kafelkami , nie podejmuj decyzji przy stole w lewym górnym rogu, a następnie natychmiast podejmij decyzję w prawym dolnym stole. Większość oprogramowania witryn oferuje teraz skróty klawiaturowe, które mogą być lepsze niż ruchy myszą.
Rób rzeczy, których po prostu nie spodziewaliby się klasyfikatorzy AI. Na przykład raz w roku zadzwoń do nich z prostym, niezłożonym zapytaniem („Pomocy, nie mogę się dziś zalogować!” Lub „Internet nie działa!”). Jest mało prawdopodobne, aby miało to duże znaczenie, ale jeśli osoba pracująca dla firma pokerowa jest na tyle sprytna, że mogła uznać ją za niezawodny wskaźnik.
Sporadyczne przegrane sesje. Tilt można symulować, a bot może grać źle i od czasu do czasu tracić pieniądze. W pewnym momencie wszyscy się przechylają.
Niepokojące jest również to, że strony pokerowe nie przejmują się szczególnie tym, że w ich sieciach działają boty, każdy gracz jest wart dużej sumy prowizji i teoretycznie z czysto cynicznego biznesowego punktu widzenia jedynym minusem byłaby zła prasa, gdyby została odkryta. .
Nawet po wykryciu rażących exploitów (szukaj w Google skandali w sieci Cereus lub Skandalu Absolute Poker , jest to dość szokujące), biznes wydaje się przetrwać i pozostać zdrowy, tracąc tylko dobrze wykształconych i wygrywających graczy (których nie ma wielu). Zwiększa to odsetek mniej wykwalifikowanych graczy w sieci, co z kolei przyciąga z powrotem dobrych graczy. To stary dobry chwyt 22. Doskonały argument za odpowiednią regulacją rynku.
Należy zauważyć, że w każdej grze istnieje równowaga Nasha . Poker online ma swoją linię czasu, tak jak działa teraz, będzie musiał przejść do czegoś bardziej społecznościowego (kamera internetowa / voip), aby każdy mógł mu zaufać w przyszłości (jeśli ludzie mu ufają), ponieważ boty ostatecznie przejmą kontrolę. lepszy i odporny psychicznie. Pokerowa społeczność AI jest bardzo aktywna , napędzana przez środowisko akademickie i / lub kapitał.
Prostsze wersje pokera, takie jak poker z limitem, zostały prawie rozwiązane w małych przestrzeniach wyszukiwania. To tylko kwestia czasu, zanim bardziej złożone wersje gry (odmiany No Limit / Pot Limit Omaha itp.) Staną się możliwe do pokonania dla sztucznych graczy.
Wniosek
Wyrafinowane boty po prostu nie mogą zostać wykryte, dopóki branża nie przejdzie na bardziej społecznościowe środowisko gier online. Nie rozwiąże to problemu, ale z pewnością utrudni robotom wygrywanie na niższych poziomach. Widzieliśmy już niewielką zmianę wraz z wydaniem PKR , 3D i bardziej interaktywnej wersji innych witryn z mniejszą liczbą rozdań na godzinę, w których gra wieloosobowa jest dość trudna do wykonania dla gracza.
Problem dotyczy również natury branży, co jest kolejnym powodem, dla którego warto trzymać się większych, bardziej renomowanych witryn internetowych, w których reputacja jest coraz bardziej zintegrowana z ich modelem biznesowym. Brak przejrzystości i udawana przejrzystość nie pomagają sprawie.
Obecnie prawdziwym wyzwaniem dla twórców botów jest napisanie zwycięskiego algorytmu, nie jest to tak trywialne, jak się wydaje. Każdy, kto gra w pokera, uważa się za dobrego gracza, który wygrywa lub osiąga próg rentowności, co jest po prostu nieprawdą. Dlatego ludzie nadal grają, nawet jeśli tracą pieniądze, mając złudzenie, że po prostu mają pecha lub ich styl gry jest źle rozumiany. Ta arogancja i słabość ludzkiej psychiki kosztowała przegranych graczy dużo pieniędzy i jest podstawowym powodem, dla którego poker może nadal przynosić zyski.
Poker to bardzo skomplikowana gra, w której opanowanie zajmuje lata (stare powiedzenie pozostaje prawdziwe: „Dziesięć minut na naukę, całe życie na opanowanie”). Element szczęścia jest na dłuższą metę niezwykle ograniczony.
Jak każdy inny zawód, aby stać się dobrym, musisz uczyć się setki godzin i grać wiele tysięcy. Zrozumiesz rzeczy, których mniej doświadczeni gracze nie zrozumieją, dostrzeżesz rzeczy mniej doświadczeni. Nauka trwa bardzo długo, być może dłużej niż kiedykolwiek jesteśmy w stanie żyć. To skomplikowana gra.
Jak często widziałeś w telewizji grę cashową z wysokimi stawkami i słyszałeś, jak ktoś krzyczy na nią „To łatwe połączenie!” w ten sposób udowadniając, że amatorzy naprawdę nie rozumieją ani nie rozpoznają wyrafinowania w grze i naprawdę wierzą, że gra na tym poziomie jest ostatecznie prosta. Tak nie jest. Ci gracze z wysokich stawek (przez większość czasu) są w telewizji, ponieważ są naprawdę, naprawdędobry. Prawdopodobnie jest też rozgrywana skomplikowana meta gra, której nasz amauer nie może rozpoznać. Amator nie stanąłby nad szachowym mistrzem i nie krzyczałby na niego, aby poruszył skoczka, ale z powodu dynamiki pokera będącej niedoskonałą informacją, ich psychologia sprawia, że naprawdę wierzą w to, co mówią. Podobnie jak w szachach, decyzje mogą być skomplikowane, delikatne i niezwykle ważne dla całej gry. W miarę jak gra staje się coraz bardziej złożona, trywialne decyzje nie są już takie trywialne, ponieważ twój przeciwnik ich oczekuje.
Po przeniesieniu bota lub gry na wyższy poziom, nieuchronnie natkniesz się na większą populację bardziej utalentowanych graczy. Następnie złożoność Twojej strategii będzie musiała przejść na wyższy poziom, biorąc pod uwagę obrazy przy stole , balansowanie zakresów , wyrafinowany i inteligentny blef (tj. Nie tylko blefowanie ze słabości, blefowanie na zasięg i blefowanie na obrazku itp.), z bardziej szczegółową analizą zasięgu ręki. To naprawdę jest inna gra, gdy idziesz w górę.
Po napisaniu zwycięskiego bota programista bez wątpienia będzie miał wystarczające umiejętności, wiedzę i zdrowy rozsądek, aby zastosować bota w sposób niewykrywalny. To jest dla nich trywialne.
Więc naprawdę nic nie możesz zrobić. Jeśli chcesz grać online, zrozum ryzyko. Nigdy nie ryzykuj więcej pieniędzy, niż możesz sobie na to pozwolić, i staraj się prowadzić dokładne rejestry wydatków, aby uniknąć błędnego, nierealistycznego i ostatecznie szkodliwego oszacowania własnych możliwości. Zatrzymaj straty i odejdź od stołu, jeśli nie masz przewagi lub jeśli nie jesteś pewien, czy masz przewagę! Oczywiście, gdyby wszyscy to zrobili, nikt by nie wygrał, to jest drapieżny i wyzyskujący charakter gry, stąd bierze się konkurencja i to sprawia, że jest fajna.
źródło
Należy wziąć pod uwagę trzy oddzielne obszary. Bot musi ustalić stan stołu, podjąć decyzję i wysłać ją z powrotem do hosta.
Ustalenie stanu tabeli jest znacznie łatwiejsze, jeśli zostanie przesłana przez przewód w jakiejś rozpoznawalnej formie lub wyświetlona użytkownikowi jako standardowy tekst. Najpierw uczyń rozpoznawanie obrazu jedyną opcją, a następnie utrudnij to tak mocno, jak to możliwe. Wyświetlaj karty w 3D i powoli zmieniaj orientację i położenie kart. Animuj małe migotanie lub fajerwerki przed kartami, aby każdy zrzut ekranu mógł być nieczytelny, ale nawet ustalenie tego zajmuje trochę czasu.
Nie ma nic do zrobienia z podjęciem decyzji. Próba ustalenia, czy decyzja została podjęta przez człowieka, jest jak test Turinga, prawie bez żadnych informacji.
Odesłanie decyzji może być trudne, jeśli ponownie użyjesz 3D. Utrudnij wysyłanie pakietów bezpośrednio lub w inny sposób przedkładanie decyzji w inny sposób niż kliknięcie przycisku myszą. Poruszaj lekko przyciskami przy każdej czynności lub pozwól im unosić się powoli po obszarze gry, czekając na decyzję. Wyłącz wszystkie funkcje typu ułatwień dostępu, które umożliwiają znajdowanie przycisków lub manipulowanie nimi.
źródło
PokerPirate, jak prawie każdy pokerowy bot, jaki kiedykolwiek napisał, działa na zasadzie skrobania ekranu i symulacji kliknięć myszą w aplikacji pokerowej systemu Windows. Dlatego też zawleczką systemu jest jego zdolność do rozpoznawania obiektów w grze i wykonywania działań w oknie. Choć może być inteligentny w pokerze, prawdopodobnie nadal ma problemy z tymi podstawowymi operacjami.
Dlatego oczywiste sposoby na udaremnienie tego bota obejmują:
źródło
Idealnie jedynym słusznym rozwiązaniem jest stworzenie logiki honeypot, która zwabi zaangażowanego bota, zapewniając pokusę korzystniejszego warunku logicznego, który faworyzuje najbardziej idealne reakcje behawioralne bota. Gdy bot jest zaangażowany w honeypot, musisz stale podawać warunki bota, które preferuje, zakładając, że bot nie ma ustawionego limitu czasu. Następnie bota można zmierzyć, zarejestrować i zbadać. Oprócz bota miałbyś również izolować dane sieciowe i sesyjne do badań, pod warunkiem, że bot nie łączy się przez TOR.
W tej sytuacji deterministyczne rozważania odpowiednie do odróżnienia bota od człowieka są mniej surowe, jednak deterministyczne rozważania po zidentyfikowaniu zachowania bota stają się poważniejsze. Niestety, właściciel bota może wprowadzić zmiany w bocie, aby zapobiec takiej identyfikacji, jeśli ten właściciel jest świadomy stanu miodu lub logicznego rozważenia tego stanu.
źródło
Pokonywanie botów pokerowych może przybierać dwie formy: możesz spróbować ich zidentyfikować i zablokować w systemie lub po prostu pokonać ich w pokerze. Pokonanie ich w pokera to bardziej interesująca kwestia akademicka. :-)
Zobacz tutaj, aby zobaczyć kilka artykułów na temat pokonywania botów pokerowych: http://www.cs.cmu.edu/~sganzfri/
źródło
Spójrz na ten post
Ten post zawiera również kilka dobrych wskazówek, jak im przeszkodzić.
źródło
Kolejna myśl dotycząca majstrowania przy ekranie w celu utrudnienia skanowania:
Wykonaj kartę z całej masy różnych kolorów - zbliżonych do ludzkich oczu, ale nie takich samych. Utrudniłoby to wybranie rzeczy do przeczytania. Z drugiej strony umieść fałszywe napisy na karcie w kolorach, których ludzkie oko nie oddzieli od tła.
źródło
Czy problem z botami polega na tym, że grają lepiej niż przyzwoici ludzcy gracze, czy też mogą czekać około 24 godziny na dobę, 7 dni w tygodniu na pojawienie się złych graczy, a następnie próbować ich wydoić?
Poza tym, czy byłoby to „legalne” lub „oszustwo”, gdyby ktoś siedział obok niego, gdy grał w pokera i konsultował się z innym komputerem w celu uzyskania porady?
Nie jestem pewien, jak można domagać się rozwiązania problemu pokera z limitem, kiedy to, co wiadomo o przeciwnikach, będzie miało wpływ na optymalną strategię gracza. Jak każda próba analizy graczy może twierdzić, że jest tak doskonała, że nie można jej ulepszyć?
źródło
Jeśli masz dostęp do wielu dopasowań, możesz skorzystać z metody eksploracji danych. Siła gry SI powinna być dość spójna, chociaż prawdopodobnie istnieją proste wzorce dla ludzi - słabsza w pierwszych kilku rundach rozgrzewki, a siła spada po dłuższej grze. Ponadto czas podejmowania decyzji przez ludzi prawdopodobnie wydłuża się, gdy w grę wchodzi więcej pieniędzy.
Jeśli masz dostęp do ruchów myszy (lub przynajmniej lokalizacji kliknięć, co jest prawdą nawet w przypadku aplikacji internetowych), rozpoznanie botów powinno być dość łatwe, z wyjątkiem najbardziej wyrafinowanych. Ludzie nie poruszają myszą w dokładnej linii prostej, mają okresy przyspieszenia i spowolnienia, statystycznie opisalne rozkłady lokalizacji kliknięć itp.
źródło
Spójrz na Ajax Control Toolkit NoBot :
źródło
Stuprocentowe rozwiązanie jest niemożliwe, moim celem jest rozwiązanie, które pozwoli zaoszczędzić pieniądze, wykorzystując sztuczną inteligencję przeciwko sobie. Uruchom instancję AI PokerPirate po stronie serwera i graj jako niewidzialny gracz w każdej grze. Jeśli któryś z graczy wykona zbyt wiele identycznych czynności, prawdopodobnie uruchomi instancję PokerPirate. Jest to rodzaj miodu lub pułapki, w którą może wpaść napastnik. Atakujący może bronić się przed tym honeypotem, zmniejszając skuteczność swojego bota. W ten sposób tworzy się gra „Kot i mysz”, w której napastnik zawsze może ukraść trochę pieniędzy, a obrońca zawsze może trochę zaoszczędzić.
źródło
"We've been working on categorizing and understanding styles of play, [...] it gets more difficult in games against top players because they mix up their play deliberately to confuse you." Being unpredictable is a good strategy, he adds. "If our computer is going to beat the world champion, it's got to do something similar."
Jest dużo łatwiejszych sposobów. tak. wiele sugestii jest słusznych i potrzebnych. ale około 90% oszustw jest wykrywanych w zbyt prosty sposób.
jeśli ktoś pozwoli botowi pracować dla niego, po pewnym czasie będzie chciał, aby drugi bot dla niego pracował. (inna maszyna lub cokolwiek), ale: użyje tego samego hasła, ponieważ trudno je zapamiętać 2 (<--- sarkastyczne)
co zostało: sprawdź konta z tym samym zachowaniem w grze i tym samym hashem.
źródło