Poker-AI.org
http://poker-ai.org/phpbb/

+1 Botter
http://poker-ai.org/phpbb/viewtopic.php?f=26&t=3099
Page 1 of 1

Author:  nefton [ Fri Dec 08, 2017 2:04 pm ]
Post subject:  +1 Botter

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 23692 times ]

Author:  spears [ Fri Dec 08, 2017 2:06 pm ]
Post subject:  Re: +1 Botter

Well done :D

Author:  nefton [ Fri Dec 08, 2017 2:09 pm ]
Post subject:  Re: +1 Botter

Ou yes. 10 years of development have not been wasted :)

Author:  spears [ Fri Dec 08, 2017 4:38 pm ]
Post subject:  Re: +1 Botter

What stakes? How many hands? How does it work?

Author:  nefton [ Fri Dec 08, 2017 5:03 pm ]
Post subject:  Re: +1 Botter

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 23684 times ]

Author:  nefton [ Fri Dec 08, 2017 5:11 pm ]
Post subject:  Re: +1 Botter

Here is graph of most and loneless reg of my limit

Attachments:
reg.png
reg.png [ 87.14 KiB | Viewed 23682 times ]

Author:  listerofsmeg [ Fri Dec 08, 2017 11:41 pm ]
Post subject:  Re: +1 Botter

How does it work inside?

And what's your native language? :)

Author:  nefton [ Sat Dec 09, 2017 11:37 am ]
Post subject:  Re: +1 Botter

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.

Author:  nefton [ Sat Dec 09, 2017 11:57 am ]
Post subject:  Re: +1 Botter

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.

Author:  nefton [ Sat Dec 09, 2017 12:04 pm ]
Post subject:  Re: +1 Botter

Here is my poker basic code. Enjoy :)

Attachments:
poker_code.zip [12.59 KiB]
Downloaded 604 times

Author:  HontoNiBaka [ Sat Dec 09, 2017 10:45 pm ]
Post subject:  Re: +1 Botter

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.

Author:  spears [ Sun Dec 10, 2017 5:53 pm ]
Post subject:  Re: +1 Botter

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.

Author:  nefton [ Mon Dec 11, 2017 8:59 am ]
Post subject:  Re: +1 Botter

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.

Author:  spears [ Mon Dec 11, 2017 10:58 am ]
Post subject:  Re: +1 Botter

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.

Author:  nefton [ Mon Dec 11, 2017 12:22 pm ]
Post subject:  Re: +1 Botter

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)

Author:  spears [ Mon Dec 11, 2017 1:05 pm ]
Post subject:  Re: +1 Botter

Does your bot model how its opponent's play changes in response to its play?

Author:  nefton [ Mon Dec 11, 2017 1:32 pm ]
Post subject:  Re: +1 Botter

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.

Author:  nefton [ Mon Dec 11, 2017 1:41 pm ]
Post subject:  Re: +1 Botter

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 :)

Author:  mlatinjo [ Thu Dec 14, 2017 6:42 pm ]
Post subject:  Re: +1 Botter

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.

Author:  mlatinjo [ Thu Dec 14, 2017 6:48 pm ]
Post subject:  Re: +1 Botter

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.

Page 1 of 1 All times are UTC
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/