Image Image Image




Post new topic Reply to topic  [ 91 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next
Author Message
 Post subject: Re: Open Meerkat Bot Simulation Testbed
PostPosted: Tue Jun 29, 2010 9:32 pm 
Offline
Senior member
User avatar

Posts: 172
Favourite Bot: don't know
pplatypus wrote:
Thanks for the replies, unfortunately it still doesn't work for me. Has it been working for other people?

I wouldn't have commited the stuff if it wasn't working for me.

read the following, maybe you did one of those mistakes
http://javahowto.blogspot.com/2006/06/6 ... -heap.html

-Xmx1000m should be working as a vm-argument in the launch-configuration


Top
 Profile E-mail  
 
 Post subject: Re: Open Meerkat Bot Simulation Testbed
PostPosted: Wed Jun 30, 2010 7:34 am 
Offline
Level1 member
User avatar

Posts: 47
Favourite Bot: Poki/Polaris
Sorry I was pretty busy and I will still be because of exams, but I am going provide some patches (and a new look up table :) ), within the next couple of weeks for LH HU.


Top
 Profile E-mail  
 
 Post subject: Re: Open Meerkat Bot Simulation Testbed
PostPosted: Fri Oct 15, 2010 2:38 pm 
Offline
Senior member
User avatar

Posts: 451
Favourite Bot: gimmick
HandFST class contains several portions of dead code, which are always guarded by the following condition:

Code:
if (OPT_WIDE_RANK_SIZE == WIDE_RANK_SIZE) ....


The two are constant differently initialized.
Is there a reason for that "error"?

It seems too obvious to actually be an error, maybe the code has been autogenerated from a tool or the above conditions has a purpose i do not know?


Top
 Profile E-mail  
 
 Post subject: Re: Open Meerkat Bot Simulation Testbed
PostPosted: Fri Oct 15, 2010 7:09 pm 
Offline
Junior member
User avatar

Posts: 28
Favourite Bot: My own ;)
First time seeing this project, good idea. :D

I just glanced at the code, and this is a small point I think, but there is an available optimization in Dealer.java. You have:

Code:
                // flop
                // if there are at least two players still in the game, we proceed
                // the players could be all in already, but this is handled in
                // playStage();
                if (gameInfo.getNumActivePlayers() > 1) {
                        ...
                }

                // turn
                if (gameInfo.getNumActivePlayers() > 1) {
                        ...
                }

                // river
                if (gameInfo.getNumActivePlayers() > 1) {
                        ...
                }
                gameInfo.payout();


Since getNumActivePlayers is monotonically decreasing, you could nest these if statements and avoid calling getNumActivePlayers multiple times when everyone has folded before the river:

Code:
                // flop
                // if there are at least two players still in the game, we proceed
                // the players could be all in already, but this is handled in
                // playStage();
                if (gameInfo.getNumActivePlayers() > 1) {
                        ...
                    // turn
                    if (gameInfo.getNumActivePlayers() > 1) {
                            ...
                        // river
                        if (gameInfo.getNumActivePlayers() > 1) {
                                ...
                        }
                    }
                }

                gameInfo.payout();


Every little bit of speed helps. :D


Top
 Profile E-mail  
 
 Post subject: Re: Open Meerkat Bot Simulation Testbed
PostPosted: Mon Oct 18, 2010 11:28 pm 
Offline
Senior member
User avatar

Posts: 172
Favourite Bot: don't know
Quote:
HandFST class contains several portions of dead code

The idea of the original HandFST code was, that you can change the constant.
Read the JavaDoc which explains the possible values (and implications).
If you change one of the values you need to delete the *.ser files from the root directory.

Sharpe wrote:
Every little bit of speed helps. :D

Not when the bots are the limiting factor (MCTS takes one to two seconds to 'think').

One should only optimize after profiling by the way.
Otherwise one trades code readability against 'speed', where no speed can be gained.


Top
 Profile E-mail  
 
 Post subject: Re: Open Meerkat Bot Simulation Testbed
PostPosted: Tue Oct 19, 2010 2:58 pm 
Offline
Regular member
User avatar

Posts: 84
Favourite Bot: myself
The MCTS bot included is the same as http://code.google.com/p/cspoker/ and http://www.pokerai.org/pf3/viewtopic.php?f=64&t=2664 ?

I run a 6max test with 5 simplebot, and MTSCbot loose too much. As I read that pdf and examine the code, i expected much more from this bot.
Image


Top
 Profile E-mail  
 
 Post subject: Re: Open Meerkat Bot Simulation Testbed
PostPosted: Tue Oct 19, 2010 5:38 pm 
Offline
Senior member
User avatar

Posts: 172
Favourite Bot: don't know
Yes the bot is the (quite) the same. There was some last addition by Laurent on cspoker for his thesis.
Guy wants to continue in open testbed, once he's got a new student.

MCTSBot indeed loses in the current configuration. But it's got a huge amount of options and strategies to be played around with (one of them being thinking time, which should be at least 2seconds).
I cannot exclude the possibility of an error while porting, but so far when I checked the GameTree everything looks very reasonable. Unfortunately the bot (in my opinion) overvalues folding equity of its villain. On the other hand, SimpleBot is very keen on winning probabilities and thus
(a) very difficult to beat, as beating probabilities is hard.
(b) not to be fooled by bluffs etc.
Not very much like a real player out there though.

Take your time with MCTS - its a nice architecture and you can easily plug different strategies on how the GameTree should be built or evaluated (against SimpleBot one just needs to manipulate/reduce the folding probability)
Don't forget to activate Debug Mode to see a visualization of the GameTree.


Top
 Profile E-mail  
 
 Post subject: Re: Open Meerkat Bot Simulation Testbed
PostPosted: Tue Oct 19, 2010 11:00 pm 
Offline
Regular member
User avatar

Posts: 84
Favourite Bot: myself
bluegaspode wrote:
Yes the bot is the (quite) the same. There was some last addition by Laurent on cspoker for his thesis.
Guy wants to continue in open testbed, once he's got a new student.

MCTSBot indeed loses in the current configuration. But it's got a huge amount of options and strategies to be played around with (one of them being thinking time, which should be at least 2seconds).
I cannot exclude the possibility of an error while porting, but so far when I checked the GameTree everything looks very reasonable. Unfortunately the bot (in my opinion) overvalues folding equity of its villain. On the other hand, SimpleBot is very keen on winning probabilities and thus
(a) very difficult to beat, as beating probabilities is hard.
(b) not to be fooled by bluffs etc.
Not very much like a real player out there though.

Take your time with MCTS - its a nice architecture and you can easily plug different strategies on how the GameTree should be built or evaluated (against SimpleBot one just needs to manipulate/reduce the folding probability)
Don't forget to activate Debug Mode to see a visualization of the GameTree.


In this case i will spend more time to analyze this.
Unfortunately I'm not a java guy, and have lots of problems with java sources. For example now i debug with eclipse and if I set SHOW_GAMETREE_GUI=true then it's crashed because not found swt-win32-3346. If i use IDEA (which is easier for me) i cant build the resoources into target (the zipped models). But I hope it's easy for me to solve these problems :), because this work could be very interesting.
btw the current cspoker trunk is crash on build.


Top
 Profile E-mail  
 
 Post subject: Re: Open Meerkat Bot Simulation Testbed
PostPosted: Thu Oct 21, 2010 12:05 am 
Offline
Regular member
User avatar

Posts: 84
Favourite Bot: myself
I would like to see the visualization of the GameTree, but i got the following error when set SHOW_GAMETREE_GUI=true:
Code:
Exception in thread "Thread-3" java.lang.UnsatisfiedLinkError: no swt-win32-3346 or swt-win32 in swt.library.path, java.library.path or the jar file


Is there anybody who could help me to solve this problem, because I'm lost in java world (I'm C# developer).
I try to import http://www.eclipse.org/swt/ both in eclipse and idea, but no success. Then i found SWT Win32Extension at http://feeling.sourceforge.net/, but i have no idea how to use it. I use win7x64, but i already try it with ubuntu, but the same result.


Top
 Profile E-mail  
 
 Post subject: Re: Open Meerkat Bot Simulation Testbed
PostPosted: Thu Oct 21, 2010 12:28 am 
Offline
Senior member
User avatar

Posts: 251
Favourite Bot: The Crushinator
SWT is a native (platform-specific) UI library. Because it's not written in Java, it comes as a DLL/.so/etc. UnsatisfiedLinkError indicates that the Java code tried to load the native library but was not able to find it, or it didn't contain the symbols it was supposed to. The text detail message indicates it wasn't found at all, so you'll need to download the SWT libraries if you haven't already got them. Then, define the swt.library.path property by using the -D option to the java VM, that is, "java -Dswt.library.path=/path/to/library ..."

It's possible you already have the libraries, but the path property is just not set correctly. Since this is a path variable, you set it to the directory the library is in, not the path to the file itself.


Top
 Profile E-mail  
 
 Post subject: Re: Open Meerkat Bot Simulation Testbed
PostPosted: Sat Oct 23, 2010 9:20 am 
Offline
Regular member
User avatar

Posts: 84
Favourite Bot: myself
psilon wrote:
SWT is a native (platform-specific) UI library. Because it's not written in Java, it comes as a DLL/.so/etc. UnsatisfiedLinkError indicates that the Java code tried to load the native library but was not able to find it, or it didn't contain the symbols it was supposed to. The text detail message indicates it wasn't found at all, so you'll need to download the SWT libraries if you haven't already got them. Then, define the swt.library.path property by using the -D option to the java VM, that is, "java -Dswt.library.path=/path/to/library ..."

It's possible you already have the libraries, but the path property is just not set correctly. Since this is a path variable, you set it to the directory the library is in, not the path to the file itself.


I solved: the problem was that the referenced swt version was lower than what i downloaded, and I just didn't noticed that before (i'm a beginner in this area :) ).


Top
 Profile E-mail  
 
 Post subject: Re: Open Meerkat Bot Simulation Testbed
PostPosted: Sun Nov 07, 2010 10:29 am 
Offline
Junior member
User avatar

Posts: 25
Location: Germany
Favourite Bot: my own
Awhile back I created a GUI to play any bots I create on my own simulation testbed. It is based on the open meerkat simulation testbed and would not be hard to modify the project to work with this project. If anyone is interested let me know and I will upload a jar.


Attachments:
Screenshot-PokerSim GUI.png
Screenshot-PokerSim GUI.png [ 89.58 KB | Viewed 1959 times ]
Top
 Profile E-mail  
 
 Post subject: Re: Open Meerkat Bot Simulation Testbed
PostPosted: Sun Nov 07, 2010 4:53 pm 
Offline
Regular member
User avatar

Posts: 64
Favourite Bot: MCTSBot
I'm very interested in that code.

I'm currently building a poker AI demo for highschool students where they can 'program' their own rulebased poker bots in some kind of visual prgramming environment. I'm using opentestbed to run the simulations and visualize the bankrolls. It would be great if the kids could play against their own bots using your GUI. The deadline for our project is already in a couple of weeks though.


Top
 Profile E-mail  
 
 Post subject: Re: Open Meerkat Bot Simulation Testbed
PostPosted: Thu Nov 11, 2010 2:07 am 
Offline
New member
User avatar

Posts: 4
Favourite Bot: Short Circuit ;)
For the heap space problem, the run configuration suggestion worked for me, thanks. Under VM arguments just paste -Xmx1000m

Awesome job with the testbed, I'll post more when I play around with it.


Top
 Profile E-mail  
 
 Post subject: Re: Open Meerkat Bot Simulation Testbed
PostPosted: Fri Mar 18, 2011 2:15 am 
Offline
Level1 member
User avatar

Posts: 47
Favourite Bot: Poki/Polaris
Did somebody try to get Fell Omen 2 to work with the testbed?
I managed to include the source code, but there seem to be some mistakes regarding the PublicGameInfo class. The game information does not provide Fell Omen with the correct environment information.

For instance, in get_action_node, if it is the preflop round, Fell Omen reduces the number of raises made so far by 1. But since the testbed environment starts with 0 raises and not with 1, the resulting number is -1 for Fell Omen, for which no LUTs exist.

Has somebody an idea what I have to change in the testbed PublicGameInfo class to get it working with FO2? Cheers!


Top
 Profile E-mail  
 
 Post subject: Re: Open Meerkat Bot Simulation Testbed
PostPosted: Sat Mar 19, 2011 6:04 pm 
Offline
PokerAI fellow
User avatar

Posts: 1115
Favourite Bot: Johnny #5
Deleted...


Last edited by c2008 on Sat Mar 19, 2011 7:36 pm, edited 1 time in total.

Top
 Profile  
 
 Post subject: Re: Open Meerkat Bot Simulation Testbed
PostPosted: Sat Mar 19, 2011 6:09 pm 
Offline
PokerAI fellow
User avatar

Posts: 1115
Favourite Bot: Johnny #5
pokerjokus wrote:
For instance, in get_action_node, if it is the preflop round, Fell Omen reduces the number of raises made so far by 1. But since the testbed environment starts with 0 raises and not with 1, the resulting number is -1 for Fell Omen, for which no LUTs exist.

Has somebody an idea what I have to change in the testbed PublicGameInfo class to get it working with FO2? Cheers!

I haven't tested this, but at a glance...

In the update() function, try adding this line:
Code:
if (stage == Holdem.PREFLOP && limit == PublicGameInfo.FIXED_LIMIT) { numRaises = 1; }

Under this If statement:
Code:
if (act.isSmallBlind()) ...

Or...

Under the newHand() function, make these changes:
Code:
this.numRaises = 0;
if (this.limit == PublicGameInfo.FIXED_LIMIT) { numRaises = 1; }


Top
 Profile  
 
 Post subject: Re: Open Meerkat Bot Simulation Testbed
PostPosted: Sat Mar 19, 2011 9:04 pm 
Offline
Level1 member
User avatar

Posts: 47
Favourite Bot: Poki/Polaris
I fixed it and got it to work.
These changes need to be made:

1. Not the number of raises need to be increased to 1, but the number of raises in the stage (numRaisesInStage) for the preflop round. I fixed this in newHand(int, int, int) of the PublicGameInfo class: this.numRaisesInStage = 1.

2. The function getNumRaises() in PublicGameInfo needs to return the number of raises in a stage (numRaisesInStage) not the overall number of raises (numRaises).


Top
 Profile E-mail  
 
 Post subject: Re: Open Meerkat Bot Simulation Testbed
PostPosted: Sun Jun 12, 2011 11:07 pm 
Offline
New member
User avatar

Posts: 2
Favourite Bot: Sonia
pokerjokus wrote:
Did somebody try to get Fell Omen 2 to work with the testbed?
I managed to include the source code, but there seem to be some mistakes regarding the PublicGameInfo class. The game information does not provide Fell Omen with the correct environment information.


May I ask, how you made ​​FO2 work with testbed? it falls out with an error

Hand: [As-Kd]
is Button : false
player: p1
suits equal: false
preflop index: 167
action node : 10
preflop file: p1_strategy_10.txt
table : p1_strategy_10.txt
trying Strategy_FellOmen_2/1.zip
table found: 1/p1_strategy_10.txt
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextDouble(Unknown Source)
at com.ibot.FellOmen_2_Impl.getActionTable(Unknown Source)
at com.ibot.FellOmen_2_Impl.preFlopAction(Unknown Source)
at FellOmen_2.preFlopAction(Unknown Source)
at FellOmen_2.getAction(Unknown Source)
at game.Dealer.playStage(Dealer.java:102)
at game.Dealer.playHand(Dealer.java:46)
at game.CashGameRunner.runGames(CashGameRunner.java:82)
at game.CashGameRunner.runGame(CashGameRunner.java:46)
at CashGameConsoleStarter.main(CashGameConsoleStarter.java:55)


Top
 Profile E-mail  
 
 Post subject: Re: Open Meerkat Bot Simulation Testbed
PostPosted: Mon Jun 13, 2011 6:08 pm 
Offline
New member
User avatar

Posts: 2
Favourite Bot: Sonia
Solved!


Top
 Profile E-mail  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 91 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next


Who is online

Users browsing this forum: No registered users and 14 guests


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:
Jump to: