Poker-AI.org

Poker AI and Botting Discussion Forum
It is currently Mon Nov 13, 2023 2:46 pm

All times are UTC




Post new topic Reply to topic  [ 20 posts ] 
Author Message
 Post subject: +1 Botter
PostPosted: Fri Dec 08, 2017 2:04 pm 
Offline
Senior Member
User avatar

Joined: Sun Mar 10, 2013 10:31 am
Posts: 139
Congards to me. Carla, my new bot. Tears the field into tatters(google translate) !!!!!!!!
Tournaments hyperturbo, 13% ROI!!!!!!!!!
Amazing! Most regs have 4% ROI only.


Attachments:
carla.png
carla.png [ 32.04 KiB | Viewed 23691 times ]
Top
 Profile  
 
 Post subject: Re: +1 Botter
PostPosted: Fri Dec 08, 2017 2:06 pm 
Offline
Site Admin
User avatar

Joined: Sun Feb 24, 2013 9:39 pm
Posts: 642
Well done :D


Top
 Profile  
 
 Post subject: Re: +1 Botter
PostPosted: Fri Dec 08, 2017 2:09 pm 
Offline
Senior Member
User avatar

Joined: Sun Mar 10, 2013 10:31 am
Posts: 139
Ou yes. 10 years of development have not been wasted :)


Top
 Profile  
 
 Post subject: Re: +1 Botter
PostPosted: Fri Dec 08, 2017 4:38 pm 
Offline
Site Admin
User avatar

Joined: Sun Feb 24, 2013 9:39 pm
Posts: 642
What stakes? How many hands? How does it work?


Top
 Profile  
 
 Post subject: Re: +1 Botter
PostPosted: Fri Dec 08, 2017 5:03 pm 
Offline
Senior Member
User avatar

Joined: Sun Mar 10, 2013 10:31 am
Posts: 139
Here is graph
blue line is equivalent of eq chips... but for my tournament
money carla win = real chips - rake.
buyins are different. it is just test :)
you can see it on rake graph.
buyin 1.5$ - 5$


Attachments:
all.png
all.png [ 99.9 KiB | Viewed 23683 times ]
Top
 Profile  
 
 Post subject: Re: +1 Botter
PostPosted: Fri Dec 08, 2017 5:11 pm 
Offline
Senior Member
User avatar

Joined: Sun Mar 10, 2013 10:31 am
Posts: 139
Here is graph of most and loneless reg of my limit


Attachments:
reg.png
reg.png [ 87.14 KiB | Viewed 23681 times ]
Top
 Profile  
 
 Post subject: Re: +1 Botter
PostPosted: Fri Dec 08, 2017 11:41 pm 
Offline
Junior Member

Joined: Mon Sep 11, 2017 8:01 pm
Posts: 19
How does it work inside?

And what's your native language? :)


Top
 Profile  
 
 Post subject: Re: +1 Botter
PostPosted: Sat Dec 09, 2017 11:37 am 
Offline
Senior Member
User avatar

Joined: Sun Mar 10, 2013 10:31 am
Posts: 139
So, how it works. The main theme of Carla and all other my bots is Try to think like an opponents.
Modeling them as precisely as I can. Unfortunately, I can not now disclose the details of how this is being done now. This is the core of the bot.
And after you know what your opponent will done - it is "simpe" to calculate best move.
I even write 2 Bots with different tehnikues.
1st - just simulate game before and I know probabilities of each of 1326 posible opponents cards. (who makes his move before)
and then just simulate future games.
2nd - Tree bot :) 1st part is like before, but then it builds tree of possible game variations. (preflop only)
Mots advantages of tree is easy human understand why bot makes his decisions.
It even write to me this tree in png format with all descriptions :)
But after catching all bugs (hate them!!!!!!! it was wery wery difficalt! later abot it) I disable Tree bot, so now Carla uses Simulation bot only.


Top
 Profile  
 
 Post subject: Re: +1 Botter
PostPosted: Sat Dec 09, 2017 11:57 am 
Offline
Senior Member
User avatar

Joined: Sun Mar 10, 2013 10:31 am
Posts: 139
About coding for beginner botters. Dont try to write just a bot. You need mutch more.
For example Carlas code is about 10% of all code I have to built her.
What you need to do bot:
1. cards, deck. Also you need translate 2 cards to chart number, and to "pockets number"(1326) post code later
2. hand evaluator (I write my own, but I think there is many mutch better)
3. FSM (finit state machine) of your game. It is impotant.
4. you need to parse hand histories. Not only parse, but save it in to your oun format. (parsing usual text format is WERY slow!)
5. you need own replayer. First I think that txt format in console is enougf. How I was wrong.
Then I write code to draw fsm to a small (640x480) black/white picture (to be able to print it for thinking).
And then rewrites it again to draw big color picture with all comments of my bots.
Without it it is unreal to build somthing.
While building bot you will make many decizions about what representing level of your data is enougf.
Has not regretted a single minute spent on the function of drawing graphics of different kinds, trees, tables.


Top
 Profile  
 
 Post subject: Re: +1 Botter
PostPosted: Sat Dec 09, 2017 12:04 pm 
Offline
Senior Member
User avatar

Joined: Sun Mar 10, 2013 10:31 am
Posts: 139
Here is my poker basic code. Enjoy :)


Attachments:
poker_code.zip [12.59 KiB]
Downloaded 604 times
Top
 Profile  
 
 Post subject: Re: +1 Botter
PostPosted: Sat Dec 09, 2017 10:45 pm 
Offline
Veteran Member

Joined: Wed Mar 20, 2013 1:43 am
Posts: 267
Nice. You mean HU SNGs or 6max?
I have a HU bot, but only 2-4% roi depending on the site.
I find it cool that your bot has an actual name and even a picture :D mine is just a console.


Top
 Profile  
 
 Post subject: Re: +1 Botter
PostPosted: Sun Dec 10, 2017 5:53 pm 
Offline
Site Admin
User avatar

Joined: Sun Feb 24, 2013 9:39 pm
Posts: 642
Quote:
it is "simpe" to calculate best move.


Do you calculate best response? Is your bot's play deterministic or stochastic?

When I used best response that I got an insanely aggressive deterministic bot that beat the model opponent no problem, but was actually quite predictable and easy to beat itself. I concluded I needed to play a modified equilibrium.


Top
 Profile  
 
 Post subject: Re: +1 Botter
PostPosted: Mon Dec 11, 2017 8:59 am 
Offline
Senior Member
User avatar

Joined: Sun Mar 10, 2013 10:31 am
Posts: 139
Perhaps I forgot to describe the most important thing.
That is only push/call/fold bot. For preflop only. (flop plays manualy, but it is 5% only in hyperturbo)
It is mutch simple than you can think.
So I'm still a long way from the "real" bot, that will win all the games :)
But it has allowed me to test main poker concepts like an equilibrium, opponents modeling and all others in real life.
In my opinion equilibrium is not for poker. It may be good for bot competitions, but not for real poker to win money from humans.
What is equilibrium? It is just function to choose move in any situation with smallest loss/biggest win versus ANY opponent.
ANY - means versus itself too! (stop a little ant think about it)
So, if you let your equilibrium choose sitout button in real life with rake - he choose it!
(if you will calculate not 1 hand equilibrium when you on btn, but all ring games (6 or 9 or ets hands))
(or choose your position random)
Simple example in real life.
All fold, you SB. your choose FOLD/call/push. For simpest think that after preflop will be shootdown.
It is simple equilibribrium that shgwizard calculates. (I dont check it myself) and gives you push range.
(And most regs do it).
But analizing opponents give me the info that they call mutch pure range than equilibrium shows.
So pushing more range - mutch more profitable in real $.
So who plays poker better? Regs will beat me with my wide push range by their equilibrium, but in real life my profit 3x! bigger.
Quote:
When I used best response that I got an insanely aggressive deterministic bot that beat the model opponent no problem, but was actually quite predictable and easy to beat itself. I concluded I needed to play a modified equilibrium.

In my opinion you should modeling player (players!) more precisely.
For example Calra beats modeling players even lower then in real life players :)
But it is after many... many.. and last grande! upgrade of model players.


Top
 Profile  
 
 Post subject: Re: +1 Botter
PostPosted: Mon Dec 11, 2017 10:58 am 
Offline
Site Admin
User avatar

Joined: Sun Feb 24, 2013 9:39 pm
Posts: 642
Quote:
That is only push/call/fold bot.
I was beginning to suspect that

Quote:
In my opinion equilibrium is not for poker
Libratus, Deepstack, etc are actually fairly good players.

Quote:
In my opinion you should modeling player (players!) more precisely.
Well since the opponent was also a bot of my own I was modelling him perfectly. But better modelling does not solve the problem (unless you model how players change their strategy in response to others, and that is very hard). Suppose I had a perfect model of how someone had played rock, paper, scissors up to some point in time, say, 0.3, 0.3, 0.4.
- I play best response 1.0, 0.0, 0.0 and make 0.1 per hand. He notices and plays 0.0, 1.0, 0.0 making 1.0 per hand. I lose
- I play equilibrium and make 0.0
- I play close to equilibrium, say, 0.4, 0.3, 0.3 and make 0.1 per hand, but he can't see the difference from equilibrium so doesn't respond.


Top
 Profile  
 
 Post subject: Re: +1 Botter
PostPosted: Mon Dec 11, 2017 12:22 pm 
Offline
Senior Member
User avatar

Joined: Sun Mar 10, 2013 10:31 am
Posts: 139
Yes, but what you say it is model of opponent. Thoughts about respond ability, and level of start responding - is a model too.
Another question is how it related with real life.
Yes I agree 100% with that modeling responsible players are hard. But my opinion is that this is only way to win humans with best ever bb/100h.
(not bots on competitions)


Top
 Profile  
 
 Post subject: Re: +1 Botter
PostPosted: Mon Dec 11, 2017 1:05 pm 
Offline
Site Admin
User avatar

Joined: Sun Feb 24, 2013 9:39 pm
Posts: 642
Does your bot model how its opponent's play changes in response to its play?


Top
 Profile  
 
 Post subject: Re: +1 Botter
PostPosted: Mon Dec 11, 2017 1:32 pm 
Offline
Senior Member
User avatar

Joined: Sun Mar 10, 2013 10:31 am
Posts: 139
No, every game is too shot. My model have several (for now just two(reg & fish)) models.
And determine them (now manualy, but later in automatic mode) on this two categories.
Yes, I know it is simple, but Carla was grow not the way from the simple - to huge.
From the huge to simle - it is her way )
Every model player has "genome". - set of gens.
each gen - determine how player will move in corresponding pool of situations.
So it is not determine %of push or somthing like it.
Gen determine predefined type of player thinks and moves as "reg" or "fish"
So for now it is just binary value.
And not all situations have 2 gens.
Quote:
My model have several (for now just two(reg & fish)) models.

So fish genome = [0][0][0][0][0][0][0]....
Reg genome = [1][1][1][1][1]...
But as you see I can build genome for each player. (Real people are dont just regs or fish... they are unique)
But few reasons stop me from that.
1. It works already.
2. I have too small data for 95% of players
3. Have now another mutch impotant things to work.


Top
 Profile  
 
 Post subject: Re: +1 Botter
PostPosted: Mon Dec 11, 2017 1:41 pm 
Offline
Senior Member
User avatar

Joined: Sun Mar 10, 2013 10:31 am
Posts: 139
Another cool thing, now it looks normal, but before I was very surprised.
When I change the code of the core of the bot - it automatically overwrites its source files on the first start, generates some new ones, and makes some changes in another.
And only then it can be compiled again and launched :)


Top
 Profile  
 
 Post subject: Re: +1 Botter
PostPosted: Thu Dec 14, 2017 6:42 pm 
Offline
Senior Member

Joined: Fri Nov 25, 2016 10:42 pm
Posts: 122
spears wrote:
Quote:
it is "simpe" to calculate best move.


Do you calculate best response? Is your bot's play deterministic or stochastic?

When I used best response that I got an insanely aggressive deterministic bot that beat the model opponent no problem, but was actually quite predictable and easy to beat itself. I concluded I needed to play a modified equilibrium.


Such strategy that exploits maximally population is solid vs weak population, which is the case on pokerstars where you have mostly humans, or on some very low traffic sites where there are not many other bots. Other sites like party, ipoker, 888, microgaming are full of bots that take similar approach as your bot (and mine), so you exploit
population and maybe player stats, but you are open that way for being exploited yourself. My bot was winning micro stake purely by exploiting population leaks and player stats for a long time with winrate around 5bb/100 pre rakeback, but in recent month the same strategy is BE pre rake back, so i am investing a lot of time in playing unexploitable vs agressive players. I play poker myself mostly on stars, and i can tell that NL100 zoom is easier to beat than NL5 on e.g. party poker fast tables.


Top
 Profile  
 
 Post subject: Re: +1 Botter
PostPosted: Thu Dec 14, 2017 6:48 pm 
Offline
Senior Member

Joined: Fri Nov 25, 2016 10:42 pm
Posts: 122
Quote:
- I play best response 1.0, 0.0, 0.0 and make 0.1 per hand. He notices and plays 0.0, 1.0, 0.0 making 1.0 per hand. I lose
- I play equilibrium and make 0.0
- I play close to equilibrium, say, 0.4, 0.3, 0.3 and make 0.1 per hand, but he can't see the difference from equilibrium so doesn't respond.


THe last approach is how solid poker players are playing. E.g. if villain folds 70% vs 3bet, you can profitable 3bet any hand. But if you 3bet really every hand he is very likely to notice that. Some players are so bad that they still keep folding, but most of them will adjust by open raising less hands, defending more. So it is better to slightly increase bluffs, lets say 2 times more bluffs, to keep the chances high that villain doesn't notice that you bluff him too much. This way you are also less open for being exploited yourself.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 20 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Powered by phpBB® Forum Software © phpBB Group