Skip to forum
Midlife Crisis? Wha...
 
Notifications
Clear all

Midlife Crisis? What Midlife Crisis?

8,659 Posts
251 Users
37 Reactions
792.4 K Views
jbpatzer Topic starter
jbpatzer
Joined: 23.11.2009
Oldschool Grinder

Originally posted by Borisian
the hand eval round-up

you want the 2+2 eval, it's just a huge array that you feed 7 cards into and it spits out category & rank

I expect so, but I've made my life difficult by using Matlab. I'll get it sorted in the end.


Reply
Quote
Waiboy
Joined: 18.09.2008
Oldschool Grinder

Originally posted by jbpatzer

A bit late to the party, but this reminds me of a comedy show sketch where they used the graphic showing the trajectory of all deliveries of the current spell from the members end to the current batsman, then all the deliveries to right handers in that inning, so on and so forth, until they got to all deliveries at the SCG since the second world war.

For some reason it's deeply satisfying to me that it may only be me, and potentially you, that understands any of the above paragraph.

Merry Christmas, happy new year, happy birthday and any other events I've failed to congratulate you on over the last year or two!


Reply
Quote
jbpatzer Topic starter
jbpatzer
Joined: 23.11.2009
Oldschool Grinder

Originally posted by Waiboy

A bit late to the party, but this reminds me of a comedy show sketch where they used the graphic showing the trajectory of all deliveries of the current spell from the members end to the current batsman, then all the deliveries to right handers in that inning, so on and so forth, until they got to all deliveries at the SCG since the second world war.

For some reason it's deeply satisfying to me that it may only be me, and potentially you, that understands any of the above paragraph.

Merry Christmas, happy new year, happy birthday and any other events I've failed to congratulate you on over the last year or two!

Of course I get it. I haven't changed that much in the 15 years since you last posted here.

Well, I'm back from my hols in France, which alternated between thunderstorms and extreme sweatiness, much like the rest of Europe over the last few days. Fortunately, we had a swimming pool.

I took lots of poker related academic papers with me, and feel like I'm up to speed with the state of the art now, although I still have a fair bit of work to do on my little computing project. Perhaps the most helpful thing I read was http://richardggibson.appspot.com/static/work/thesis-phd/thesis-phd-paper.pdf , which is a phd thesis that was only submitted this Spring. It focuses on multiplayer poker (confirmed, can of worms) but does a good job of summarising the literature.

I don't think the code that I set running before I left is correct, so hopefully I'll have time to fix it before we go off on our second week's holiday on Thursday....Cornwall this time.


Reply
Quote
jbpatzer Topic starter
jbpatzer
Joined: 23.11.2009
Oldschool Grinder

Surprise, surprise.....I've been working on my code for the last couple of evenings. I think it's working now, so before I head off on my second week of holiday, I'm going to set it working (again) on the problem of two players with QQ+ on a 2h 7c Jd flop with one potsized bet left. After the first few iterations it seems to be getting the bluff to value ratio right for the first player, which it wasn't before, and it always checks with KK, so I have high hopes that it's going to converge to the right answer now. Hopefully during my August evenings I can get the speed up by converting the important bits to C and getting the hand evaluator right, so I'm probably not going to be playing much poker next month either, unless I get down to DTD with Borisian.

I'm off to sacrifice one of the kids to the Sun God. Back next week.


Reply
Quote
jbpatzer Topic starter
jbpatzer
Joined: 23.11.2009
Oldschool Grinder

Originally posted by jbpatzer
Surprise, surprise.....I've been working on my code for the last couple of evenings. I think it's working now, so before I head off on my second week of holiday, I'm going to set it working (again) on the problem of two players with QQ+ on a 2h 7c Jd flop with one potsized bet left. After the first few iterations it seems to be getting the bluff to value ratio right for the first player, which it wasn't before, and it always checks with KK, so I have high hopes that it's going to converge to the right answer now. Hopefully during my August evenings I can get the speed up by converting the important bits to C and getting the hand evaluator right, so I'm probably not going to be playing much poker next month either, unless I get down to DTD with Borisian.

I'm off to sacrifice one of the kids to the Sun God. Back next week.

Well, the sacrifice worked, although I'll miss my daughter. She was one of the nicer ones.

I checked my computer and, surprise, surprise, it crashed after a couple of million iterations. More debugging to do. The plan for the month is still to carry on with this. I've thought of a few improvements to make while I've been away (my wetsuit had definitely shrunk a lot since last year...must be rubbermoths). I also realized that, if I ever get a converged solution, I'm going to need some sort of tool to pick apart the results. For narrow ranges it's easy enough to see what's going on on the flop, but by the river there's a different set of action probabilities for each hand, turn card and river card combination (give or take a bit of bucketting), so I just see a wall of numbers. I'll try to write something to do that too.


Reply
Quote
mineriva
Joined: 30.04.2008
PokerStrategist

Just noticed ur post count is 6666 u evil man.
Guess that is why u stop posting here but just remember that should you reply ur post count will chance.

Awaiting ur stock cba


Reply
Quote
jbpatzer Topic starter
jbpatzer
Joined: 23.11.2009
Oldschool Grinder

Originally posted by mineriva
Just noticed ur post count is 6666 u evil man.
Guess that is why u stop posting here but just remember that should you reply ur post count will chance.

Awaiting ur stock cba

cba........but I will write an update on my project soon. I finally got a 7 card evaluator working, although I had to resort to Java because I couldn't work out how to compile stuff in C. I know no Java, but managed to blag my way through to compiling a suitable .jar file after lots of cutting, guessing, pasting and clicking buttons.


Reply
Quote
mineriva
Joined: 30.04.2008
PokerStrategist

Originally posted by jbpatzer

Originally posted by mineriva
Just noticed ur post count is 6666 u evil man.
Guess that is why u stop posting here but just remember that should you reply ur post count will chance.

Awaiting ur stock cba

cba........but I will write an update on my project soon. I finally got a 7 card evaluator working, although I had to resort to Java because I couldn't work out how to compile stuff in C. I know no Java, but managed to blag my way through to compiling a suitable .jar file after lots of cutting, guessing, pasting and clicking buttons.

Hats off to you sir. Finally one of us is doing real coding. I did try java but it reminded me to much of school with the classes and all. After a while I discovered a better method but we can discuss that over a cup of coffee.

Oh ok that was a bit forced but I have been a lot in court lately and I am getting tired of only applying the law. Sometimes it lacks objectivity.


Reply
Quote
Super Moderator
VorpalF2F
Joined: 02.09.2010
Oldschool Grinder

Originally posted by mineriva
Oh ok that was a bit forced but I have been a lot in court lately and I am getting tired of only applying the law. Sometimes it lacks objectivity.

I've always thought that the problem with the law was the it lacked subjectivity. The circumstances and the people mattered so much less than what had been written by others long ago.

As for programming languages, I SO miss Pascal. I tried delving into Delphi, but ended up doing most things in C++

I'm trying to wrap my self around Python, but I'm afraid the reverse is happening...

Matlab sound fascinating, but I have nothing to apply it to, which make (for me) learning quite difficult.

--VS


Reply
Quote
jules97
Joined: 10.06.2012
Oldschool Grinder

get someone else to do the programming is the best way imo :f_biggrin:

Should be even easier for those with access to a slave labour pool... although perhaps the quality may be lacking...


Reply
Quote
chenny8888
Joined: 03.10.2007
Elite Grinder

Apparently there's specifically a website (would have to inquire further about this to be sure), where you can contract out jobs to third world programmers. They underbid each other until you end up paying them first-world minimum wages for really high quality work.


Reply
Quote
jbpatzer Topic starter
jbpatzer
Joined: 23.11.2009
Oldschool Grinder

Originally posted by jules97
get someone else to do the programming is the best way imo :f_biggrin:

Should be even easier for those with access to a slave labour pool... although perhaps the quality may be lacking...

Originally posted by chenny8888
Apparently there's specifically a website (would have to inquire further about this to be sure), where you can contract out jobs to third world programmers. They underbid each other until you end up paying them first-world minimum wages for really high quality work.

But I like coding! :f_cool:

Anyway, the problem is that the job isn't 'here's the algorithm, go code it' - it's 'here's some ideas for algorithms, try them out, see if they work, have lots of good ideas for making it more efficient, try other ideas, have unexpected inspiration, start again, etc'. In other words, as far as I'm concerned it's research, not development, although I expect those clever chaps at the University of Alberta could do this with their eyes shut. Unfortunately, or fortunately, depending on how you look at it, I don't think this is an interesting problem for them as it's so specific.


Reply
Quote
jbpatzer Topic starter
jbpatzer
Joined: 23.11.2009
Oldschool Grinder

As promised, an update.....

I did lots of work on the game with each player having a range of QQ+ on a 2♥ 7♣ J♦ flop with a single bet available. It's a bit like the AKQ game, but over three streets, with QQ and KK having some equity against AA. The problem is that I kept getting a solution where the first player bets with some fraction of his KK. Now it's not impossible that this turns out to be the correct solution, since this folds out QQ's equity. I think I've written the CFR minimization subroutine properly, but it's such an unexpected result that I decided I need to check it very carefully. The difficulty is that it takes a long while to do enough iterations to see whether the solution has converged properly. In most problems that I've worked on in the past, it's very important to get everything working before fretting about efficiency, but in this case, I need to get a good turn of speed out of my code to be able to check it. Now that I have a cobbled together seven card hand evaluator, I decided to write some code to bucket hands, turn cards and river cards more efficiently. There's an algorithm called Gameshrink that does this, but I wanted to go my own way so that I understand what's going on. I decided it's just an exercise in linear algebra. Unfortunately, I discovered that linear algebra with lots of entries of -1 thrown randomly into the, otherwise positive, matrices (that's bloody card removal, the new bane of my life) is rather more difficult. Also, although the final hand rank partitions the players' river ranges, there's no function that partitions the river card ranges. In other words, you can construct examples where, using a sensible definition of '=', you can construct flops and ranges for which there are river cards x, y and z such that x=y and y=z, but x~=z. :rage: That cost me some sleep to work out, because I'm a discrete maths fish, but I think I've fixed it this evening. I can now get on and do CFR minimisation over buckets rather than hands. For the example above, there are only three flop hand buckets per player, and no more that four turn and river card buckets. Hopefully this will let me sort out what's going on, as well as get more speed going for realistic ranges. I also have some other ideas about how to speed up my code. It turns out that how you store and access the regret and strategy sum and average data (it's a big data structure) has a huge effect on efficiency, so I need to get that right.

In other news, I'm playing only on my iPad at the moment, so basically not at all seriously. I may have an MTT night again soon, but I'm really very focussed on seeing how far I can get with this code at the moment. Just working evenings and some lunchtimes makes it slow going, but I'm now more confident than I was that I can get this working.


Reply
Quote
mineriva
Joined: 30.04.2008
PokerStrategist

X= y
And y=z
But x!=z
Something not right.

Btw what are you trying to prove? Is the expected result to bet all AA, some QQ, and never KK?

Where do you store the regret and historical data? I guess you have an endless supply of bitter old woman.


Reply
Quote
jbpatzer Topic starter
jbpatzer
Joined: 23.11.2009
Oldschool Grinder

Originally posted by mineriva
X= y
And y=z
But x!=z
Something not right.

Btw what are you trying to prove? Is the expected result to bet all AA, some QQ, and never KK?

Where do you store the regret and historical data? I guess you have an endless supply of bitter old woman.

Writing that was helpful because I now realize that if you take the card removal into account you can make this x, y, z problem go away. Btw, there are plenty of things for which = isn't transitive, e.g. if = is 'is friends with', Tom = John and John = Manu, doesn't necessarily mean that Tom = Manu. Sets are like that.

Bet or check/call with AA, bluff some QQ and check all KK is what you get in the AKQ game, or Kuhn poker as it's called with Player 1 allowed to bet, but I don't get that and it's not completely clear to me that I should.

I store the regret in memory, along with the bitterness and pain, but only to single precision to try to accumulate it faster.


Reply
Quote
jbpatzer Topic starter
jbpatzer
Joined: 23.11.2009
Oldschool Grinder

Lunchtime.

Trying new code.

About a factor of 25 faster on a 3bet pot situation I tried before.

Still leading out with KK in QQ+ v QQ+.

?( ?( ?( ?( ?( ?( ?( ?( ?( ?( ?( ?(

I need to write a subroutine that calculates the value of the game to each player for a given strategy (fairly easy), recalculate the best strategies with betting KK not allowed for player one on K free boards (a simple hack), and then calculate the value of the game in each case. If being able to bet with KK doesn't make more $$, the code is giving the wrong solution.


Reply
Quote
mineriva
Joined: 30.04.2008
PokerStrategist

Just an idea:

Because there are so many mods reading this threat and because it is so clearly for a good cause .....

Why dont we ask the powers that be to supply some sort of API to equilab? now that you using proper code you could make use of the elevator from equilab. Or at the very least they could help with using the equity.dll. I did some snooping and found that the equity.dll that ships with equilab has an exported function that could be used for multiway equity calculations. All we need is to know what arguments are expected and what results are returned.


Reply
Quote
jbpatzer Topic starter
jbpatzer
Joined: 23.11.2009
Oldschool Grinder

Originally posted by mineriva
Just an idea:

Because there are so many mods reading this threat and because it is so clearly for a good cause .....

Why dont we ask the powers that be to supply some sort of API to equilab? now that you using proper code you could make use of the elevator from equilab. Or at the very least they could help with using the equity.dll. I did some snooping and found that the equity.dll that ships with equilab has an exported function that could be used for multiway equity calculations. All we need is to know what arguments are expected and what results are returned.

I'm precalculating all the showdown results. Takes 90 seconds. Then I do the bucketing. Then I run the CFR code. I don't need to call an evaluator on the fly.

_cool:


Reply
Quote
jules97
Joined: 10.06.2012
Oldschool Grinder

KK betting sometimes doesn't seem too outlandish to me.

Awaiting your hack test


Reply
Quote
Super Moderator
VorpalF2F
Joined: 02.09.2010
Oldschool Grinder

Originally posted by mineriva
Just an idea:

Because there are so many mods reading this threat and because it is so clearly for a good cause .....

Why dont we ask the powers that be to supply some sort of API to equilab?

I have not checked, but I'm guessing Equilab uses a standard Poker library.

It would be available to anyone, in that case...

Now, which one -- that is the big question...
--VS


Reply
Quote
Share: