Wpisz w google
w google
Dzięki za rzeczową i wyczerpującą odpowiedź. Moje komentarze poniżej.
Powstaje pytanie na czym w istocie polega prawdziwe wyrafinowanie w pokerze, odrózniające skuteczne granie na niższych stawkach od skutecznego grania na wyższych stawkach? To trochę wygląda na paradoks, bo jesli poker to matma i statystyka (a tak jest, nieprawdaż?) to cała masa czynników uważanych za istotne - tak naprawdę wcale nimi nie jest i można je zignorować. Wspominałem już o tym - dla skuteczności strategii na przykład kompletnie nieistotne jest czy jednostką rozliczeniową są muszelki, dolary czy diamenty po tysiąc dolarów, natomiast powszechnie uważa się że na wyższych stawkach strategie jakoś się powinny zmieniać. Nie potrafię znaleźć racjonalnego wyjasnienia dla tego poglądu. Tak samo nieistotnymi czynnikami wydają się rzeczy takie jak cała psychologia czy pora dnia, dla bota będzie to zupełnie transparentne.
A dlaczego bot sam nie miałby być własnie nitem? To jest moje podstawowe założenie. Jeśli nity występują w dużych ilościach i są skuteczni - to chyba świadczy o tym że bycie nitem popłaca? Sedno problemu lezy w odpowiedzi na pytanie: czy w stylu gry należy iść w wyszukiwanie słabości przeciwnika i exploitowanie ich, czy też zafixować się na jednej strategii, której celem jest obrona przed exploitami ze strony innych graczy. Te dwie opcje wydają się wzajemnie wykluczające bo strategia polegająca na "dostosowywaniu się" z definicji przeczy strategii statycznej. Dla bota wydaje się łatwiejsze do zaimplementowania ten drugi sposób tj. strategia statyczna na tyle ciasna że chroniąca się przed najbardziej oczywistymi exploitami. W toku testów wyszłyby informacje na jakie exploity jest podatna i mozna by ją dostosowywać, do momentu w którym osiągnęłaby punkt równowagi. Wiem, łatwo się mówi2. Tworzenie bota który nie potrafi czytać statystyk to oczywiście ślepa uliczka, bo takowy samograj zostanie rozniesiony w pył przez wszędobylskie zgraje nitów. Pozostaje stworzyć algorytm współpracujący z trackerem., jak będzie w praktyce - zobaczymy.
Bot to jest nic innego jak pewna kolekcja parametrów które, przetworzone w danej sytuacji określają prawdopodobieństwo danego zagrania. Założenie które czyni bot jest nastąpujące: moja strategia jest OPTYMALNA i odporna na exploity. Dlatego bot będzie patrzeć na zagrania innych graczy zakładając że gra ze swoim lustrzanym odbiciem tzn. będzie cały czas zakładał że inni też realizują strategię w duzym stopniu odporną na exploity, zapewne coś w rodzaju nit-TAG'a. Będzie z tego punktu widzena oceniał zagrania przeciwników a podejmowane decyzje będą miały charakter probabilistyczny np na 90% graj RAISE, na 5% CALL, na 5% FOLD. To będzie czysta kombinatoryka. W toku testów zapewne okaże się że pierwotne założenie jest błędne i strategia ma luki - mozna będzie ją exploitowac okreslonymi technikami. Wtedy przyjrzymy się jak wygląda strategia która ją exploituje tj. jakie wartości u graczy krojących naszego bota z forsy mają te same parametry z których składa się nasz bot i poszukamy czy isnieje takie dostosowanie naszej strategii które exploity załata a jednocześnie nie wystawi się na lanie ze strony innych strategii w naszej bibliotece, zgromadzonych wcześniej.3. Kolejna kwestia - algorytm "świadomy" własnego stylu. Jest to koncept przydatny już od nl20. Czyli nie tylko to kim jest nasz przeciwnik, ale jak on nas postrzega. Prosty przykład - konkretne zagranie naszego przeciwnika oznacza zupełnie co innego jeśli jesteśmy powiedzmy postrzegani jako konserwatywny TAG ABC a inaczej jeśli mamy opinie loose maniaka albo CS'a.
Potrafisz zaimplementować swojemu programikowi zdolność tego typu analizy?
To powinno być ciekawe bo takie postępowanie przyniesie odpowiedź na arcywazne pytanie: czy poker to jest rodzaj gry w papier-nożyczki-kamień w którym dana strategia (zestaw parametrów) wygrywa z jedną ale przegrywa z innymi i nie ma żadnego optimum. Zauwazmy, że nawet jesli tak jest, to komputer wciąz może grać skutecznie - tyle że wtedy oczywiście on musi znać odpowiedź na pytanie jaką strategią w danym momencie gra przeciwnik, czyli bot musi sam zbierac informacje i uczyć się przeciwników. To będzie oczywiście o wiele trudniejsze ale zastanówmy się przez moment czy nie prowadzi to na manowce? Przecież skoro poker miałby być grą typu papier-nożyczki-kamień to wygląda na to że opłaca się po prostu losowo zmieniać strategię co rozdanie. Ale strategia która polega na losowych zmianach strategii... też jest przecież strategią!! To proste doświadczenie myślowe (które każdy przecież może sobie przeprowadzić) skłania mnie do przekonania że poker jednak NIE JEST grą papier-nożyczki-kamień i musi istnieć strategia ze statystycznym punktem równowagi - odporna na wszelkie exploity. Intuicja mówi mi że prawdopodobnie będzie to jakiś rodzaj dopracowanego i stuningowanego nit-taga. Nie wiem czy słusznie.
Nie wierzę w coś takiego. Tzn inaczej: wierzę że takie wrażenie powstaje w grze ludzi z ludźmi. Ale uważam że jest to tylko wrażenie. Dla bota każde rozdanie będzie niezależne, bot ze swojej natury będzie ślepy na coś takiego jak "presja" czy "dynamika" bo nawet nie będzie wiedział co to znaczy. Do takich pojęć zdolny jest tylko mózg ludzki, który grę opartą na czystej statystyce ubiera w luźne semantycznie symbole języka naturalnego np. "zastraszenie", "presja" itp.. Skłonność do "poszukiwania wzorców" jest właściwa wyłącznie człowiekowi. Dla bota te pojęcia nie będą istnieć. I to chyba raczej powinno być jego siłą, a nie slabością, prawda? Niejeden 'wywierający presję' natnie się na zupełnie nieoczekiwane zagranie, właśnie dlatego że po drugiej stronie jest bezduszny algorytm który żadnej presji nie jest zdolny odczuć...4. Dynamika. Tutaj sprawa oczywista. Musisz stworzyć bota, który znajdzie odpowiednie rozeznanie miedzy ogólnym charakterem przeciwnika a tym, ze akurat w danym momencie stara się wywrzeć na nas presję. Człowiek robi to intuicyjnie. Ma prostu wyczucie społeczne.
Wszystko to prawda. Ja zakładam że to co tu opisałeś tj np "spolaryzowany range" jest niczym innym jak strategią, czyli zestwem wartości pewnych parametrów które ma także bot. Na zasadach ogólnych będzie dało się okreslić która strategia dominuje. Wyjdzie z tego albo że dominacja spolaryzowanych range'ów w stosunku do strategii bota nie istnieje, albo istnieje. Trzeciego wyjścia nie ma - np że rano dominuje a wieczorem już nie. Interesuje nas goła statystyka nie przesądy. Jesli pojawią się strategię dominujące - będzie się je sprawdzać. Widzę to tak że podczas testów po stronie serwera będzie moduł analizujący który będzie znał karty wszystkich uczestników i liczył wartość oczekiwaną zagrań. Powstaną szybko statystyki które rozstrzygną czy dowolny profil jaki sobie wymyślisz - jest skuteczny czy nie. Interesuje mnie zbudowanie bazy takich profili (strategii) i czysto statystyczne rozstrzygnięcie tego problemu papier-nozyczki-kamien.5. Nietypowe zagrania. Taki algorytm powinien radzić sobie z jakimiś overbetami, mini 3betami i tego typu zagrywkami. Do tego często potrzebne jest "rozumienie" specyfiki stawek, roomu czy nawet pory dnia. Przykładowo dostajesz mini bet z UTG od unka z microlimitów. Takie coś zazwyczaj sugeruje spolaryzowany range (albo słabe ręce albo monstery). (...)
Bardzo słuszna uwaga. Może tamten bot nie widział różnicy między minimalnym re-raisem a dużym re-raisem. Traktował kazdy 3bet jako oznakę twojej ogromnej siły i się wycofywał. Tak jak pisałem wcześniej, punkt równowagi musi wynikać ze statystyki która operuje ciągłością, a nie naiwnymi warunkami typu "jak on reraisuje na preflopie a ja nie mam AA, albo KK to pasuję". Przy zastosowaniu dobrej matmy okaże się że te twoje mini 3-bety traktowane będą jako zwykły call czyli chęć grania dalej bez wyrazu dużej pewności siebie... I jesli bot będzie tight-aggresive z którym nie ma żartów to takie min 3-bety okażą się zagraniem z twojej strony mocno niepoprawnym. Mój argument jest taki że da się rozpracować i exploitowac bota jesli ten gra wg sztywno ustawionych naiwnych reguł (jeśli to i to, to zrób to), natomiast rozpracowanie bota który gra według 'ciągłych' i statystycznych reguł a decyzje podejmuje probabilistycznie - będzie znacznie trudniejsze dla człowieka.6. Punkt powiązany z powyższymi a dotyczący tego jak Twój bot "zachowa sie" jeśli zostanie zidentyfikowany. Do nl10 nic mu nie grozi pewnie, ale na nl20 gwarantuje Ci, ze zostanie zarzucony kosmiczna ilością spazzów. Ja na takiego jednego bota z Party Poker miałem prostą metodę - mini 3betowałem każde jego otwarcie. A ze to bot dowiedziałem sie z komentarzy na PTR. Od tego czasu robocik miał u mnie bardzo ciężko![]()
Temat rzeka7. Zostaje jeszcze wykorzystanie readów, handreading oraz całościowa analiza przebiegu rozdania kiedy na przykład decydujemy czy hero callowac na river.Nie chcę wchodzić w szczegóły ale wydaje mi się że zachowania szczególne bota powinny w naturalny sposób wyniknąć z zasad przyjętych ogólnie, tj. brak naiwnych IF->THEN... tylko ciągłość i probabilistyka. Wiem, łatwo się mówi. Mówiąc szczerze nie mam pojęcia co z tego wyjdzie, pewnie komplikacja rzeczywistości mnie szybko sprowadzi na ziemię i moje tezy okażą się po fakcie jakimiś głupimi banałami. Ale powalczyć z tematem nie zaszkodzi.
Ostatnio edytowane przez comrade ; 05-11-2012 o 14:12 Powód: literówka lol
Nie potraktuj mojego posta jako ataku, ale w jaki sposób chcesz prawidłowo "nauczyć" bota wygrywania w pokera, skoro w swoim wyobrażeniu o tej grze i myśleniu o niej masz potężne luki?
Jeśli znajdę z godzinę wolnego, to odpiszę na Twoje posty, gdyż takie stwierdzenia jak:
alboPowstaje pytanie na czym w istocie polega prawdziwe wyrafinowanie w pokerze, odrózniające skuteczne granie na niższych stawkach od skutecznego grania na wyższych stawkach? To trochę wygląda na paradoks, bo jesli poker to matma i statystyka (a tak jest, nieprawdaż?) to cała masa czynników uważanych za istotne - tak naprawdę wcale nimi nie jest i można je zignorować. Wspominałem już o tym - dla skuteczności strategii na przykład kompletnie nieistotne jest czy jednostką rozliczeniową są muszelki, dolary czy diamenty po tysiąc dolarów, natomiast powszechnie uważa się że na wyższych stawkach strategie jakoś się powinny zmieniać. Nie potrafię znaleźć racjonalnego wyjasnienia dla tego poglądu.
to aż się chce podyskutować, ale nie chcę tego robić na szybko i niechlujnie.Intuicja mówi mi że prawdopodobnie będzie to jakiś rodzaj dopracowanego i stuningowanego nit-taga.
Nie twierdzę że w moim rozumowaniu nie ma luk. Dlatego licze na porządną merytoryczną krytykę i z niecierpliwością czekam na odpowiedź.
Przede wszystkim mnie zadziwia, że takie mądrości wygłasza człowiek, który już na wstępie stwierdził, że gra słabo. Ale chce stworzyć algorytm, który gra dobrze. Interesujące.
Czy dobrze rozumiem comrade, że jesteś autorem tej gry pokerowej na Facebooku "SimPoker" ?
Tak, jestem projektantem i programistą tej gry, sam programowałem silnik pokerowy praktycznie w 100%, grafikę oczywiście robił spec od takich rzeczy. Moje ambicje stworzenia bota są całkiem na serio - mam wiedzę techniczną by to zrobić i wpiąć w ten swój silnik pokerowy, w gruncie rzeczy wpiąć bota można potem we wszystko o ile to jest legalne i o ile ma się dokumentację interfejsu
Teraz poszerzam wiedzę teoretyczną z zakresu samego pokera. BTW, jak wspominałem jestem raczej słabym pokerzystą (w sensie gry z innymi ludźmi) do czego się otwarcie przyznaję.
Programy szachowe które wygrają z mistrzem świata stworzyli ludzie którzy są całkiem przeciętnymi szachistami. Boty GS1, GS2, GS3 do pokera h2h które wygrywały starcia ze światową czołowką stworyli goście którzy sami przyznają że sa słabymi pokerzystami. Poker wymaga przecież dyscypliny, cierpliwości, opanowania emocji a czasem także błyskawicznych kalkulacji - człowiekowi tego może brakowac, ale dla maszyny to bez znaczenia. Dlatego słaby pokerzysta może stworzyć program do pokera który grał będzie znacznie skuteczniej niz on sam. Nie ma tu więc żadnego paradoksu, nie wiem czemu cię to tak dziwi![]()