#1
|
|||
|
|||
A line analyzer
Why is there no line-analyzer software?
What I mean is a more advanced version of poker stove. This is how it should work roughly: You chose ur hand and the board. You put your opp on a range and choose different strategies for different part of his range (for instance he CR/call/check/call etc. with this group of hands etc). Then you should be able to run villains strategy against different lines and see which one is most +EV. It would of course take a long time to program an excact villain strategy, but a rough estimate would usually be enough. If this would be too hard what about one street? Doesn't sound that impossible to me. And it would be a great aid in analyzing post-flop play. |
#2
|
|||
|
|||
Re: A line analyzer
this is ok if you know your villain well, and he doesn't evolve.
Think rock, scissors, paper. if the villain plays 30% rock, 40% scissors, 30% paper, clearly your best "line" is to play rock 100%, but if you do that, your villain is likely to switch to paper 100%. I think what you are describing aligns with what Turbo Texas Holdem may have intended to be. It doesn't find the best line, but it allows you to try different strategies against non-changing opponents. Personally I think they built in a few too many limitations for it to be "perfect". |
#3
|
|||
|
|||
Re: A line analyzer
This would be very interesting. I think I'll write this kind of software when I get time; maybe early in 2008.
Thanks for the idea. |
#4
|
|||
|
|||
Re: A line analyzer
I also agree that this would be very interesting. It's kinda funny because I was thinking about the EXACT same program this morning. mykey, even if your opponent plays a mixed strategy, wouldn't you be able to include these in the program's calculations? Also, I just started my Masters in CS at UofA and am attending the CPRG (Computer Poker Research Group) meetings so I'll try ask Morgan/Darse about the 3sb/g win over the "always raise bot".
|
#5
|
|||
|
|||
Re: A line analyzer
[ QUOTE ]
mykey, even if your opponent plays a mixed strategy, wouldn't you be able to include these in the program's calculations? [/ QUOTE ] Yes, u can weight his range with probability: AK raise 0.3, call flop raise turn 0.35 etc. |
#6
|
|||
|
|||
Re: A line analyzer
Yeah, what I envision this program being (at least initially) would be something to do the calculations similar to those done in the book "Killer Poker By The Numbers: The Mathematical Edge for Winning Play" by Tony Guerrera. He makes certain assumptions: Given your holecards, a specific flop, and a hand range or distribution for the opponent(s), he creates a tree with some plausible betting actions and betsizes and then determines the EV given these assumptions. The said program, at the basic level, should be able to do the same thing (obviously not perfect but would give a good feel for maximizing expectation value for heads-up postflop play).
What I think would be really cool about this sort of program is that you would be able to check, given the same betting sequence, how bet sizes affect your overall EV (for that exact situation) and maybe have some graphs plotted for EV vs. bet size (either absolute or relative fraction of pot size). For example, say you are playing against a loose-passive player who plays in such a way: when in the SB, he will limp in with ANY suited hand, fold marginal hands, and raise premium-ish hands (some range like 99+,AK or whatever). Also, he will always c/c with a FD (after limping) and if he hits it he will donk for 1/2 pot on that street (and 1/2 pot on river if he hits on the turn). We could make some other assumptions like he will fold anything worse than top pair and will donk top pair for 1/2 pot on turn or river as well (just so that we don't ALWAYS know that he has a flush when he donks for 1/2 pot). Anyway, given these assumptions (and some made up betting actions), we could use a variable for bet size and see how our EV changes for the hand depending on our bet size. I think a program like this would help people with HU LHE and NLHE a lot (studying common situations). It would also be cool to be able to import hand histories to model similar or the same situations but change certain variables (such as holecards, betting sequence, bet sizes, etc.). Another cool addition would be to say: given a certain betting sequence (with bet sizes predetermined) and hand range for my opponent, what hands range (for me) result in +EV. Then you could determine some approximation of an equilibrium (always for a static betting sequence). For example, given that my opponent knows I'll play the range of hands R0, and will change his range to R1 to gain EV against me, then I should play the range R2 to gain EV against him and so on until some sort of equilibrium (or close to it) is reached where no player really has an edge over the other. |
#7
|
|||
|
|||
Re: A line analyzer
You have some good ideas. Now all we have to do is to find a computerwiz that could write the program.
|
#8
|
|||
|
|||
Re: A line analyzer
Well, I'm no computerwiz (although I am doing my Masters in Computing Science at UofA and am interested in joining their Computer Poker Research Group) since my undergraduate degree was in physics (minors in math and CS). However, I love programming, problem solving, and poker. If I ever get around to it (free time), I would love to write some sort of program like this (at least very simple with few options at the beginning) and build on it. I've written a few small poker programs: a hand vs. hand preflop hand evaluator (eg. what equity do I have with AKhh vs. 8h8d or whatever), the other program is to give you the "best" decision for discards in a five card draw video poker game (given a specific payout). These programs, however, are not optimized and run slowly.
|
#9
|
|||
|
|||
Re: A line analyzer
I am majoring in math so I can't doing anything in practice [img]/images/graemlins/wink.gif[/img]. This type of analyzing tool sounds easy, but takes a lot of time to write I guess. Also since it will need to make a lot of calculations I think u would need to optimize pretty hard so it won't run too slow to be managable.
|
#10
|
|||
|
|||
Re: A line analyzer
This isn't difficult to implement but it can be made to be so by over-analyzing it. The math is the same you'd use to run any cold poker simulation. You're still going to either a) deal out a million hands and tabulate, or b) use combinatorics to brute-force your way through. Preflop you'd tend to use a) and on the flop and beyond you're increasingly able to use b). The only complicating factor is that the above logic now needs to be spliced out to handle not just one table situation, frozen in time, but a range of plausible futures for a given situation.
This is straightforward. All you're doing is allowing the user to create a decision tree similar to what's used in chess. The job is to navigate each branch of the tree, running your classic simulation at each "step", and to display the results in a declarative way. Your job is NOT to run every line- just the specific lines specified by the user. It completely sidesteps the (large and painful) issue of AI. The line analyzer should be as stupid - hence generic - as possible. The only thing it understands is how to deal out cards repeatedly, calculating who wins and loses and by how much. It has no idea what a check-raise "means" or what "aggressive" is. It just runs the numbers according to the different lines. If you did it right, you should be able to handle any kind of game -Holdem, Omaha, Stud, etc- generically. It would need almost no game-specific code, hopefully. Just because it's stupid, though, doesn't mean it's not smart. It's actually very smart. You have made it smart by defining the lines you want it to analyze. The line IS the AI. That's your intelligence right there, distilled down to a tree structure of "if i do this he, he does THIS, and i do THIS". You with your feel for the game can define the likely/common/reasonable lines far better than even a full-fledged bot is capable of doing at present. You can get to the heart of a situation with 4 or 5 "lines" whereas a bot might waste a lot of cycles examining things that weren't important (similar to chess). Once the basic structure is in place, you can start to add some probabilistic fuzziness to the model, and achieve some sophistication appropriate for you er...power-users. But that's icing on the cake. 90% of the tool's usefulness, for me anyway, would be the barebones ability to do what Poker Stove does, but across a few different lines. Just let me see what happens if I do X and he does Y. |
Thread Tools | |
Display Modes | |
|
|