Mark Gritter (markgritter) wrote,
Mark Gritter
markgritter

Bored While Waiting for Compile to Finish

I think know how to feasibly solve two streets of triple draw lowball now (using linear programming). Earlier in the week I discussed using both row and column generation to avoid the exponential blowup in number of strategies. But that still left a large number of rows or columns to consider adding, which might be infeasible.

But, we can determine what is the best new strategy or strategies to add using linear programming.

The button's strategy for each card is something horrific like:

  If Player A bets, call.
    If A stands pat, draw one.  
      Then, if I get a 2 do AAA, if I get a 3 do BBB, if I get a 4 do CCC etc.
    If A draws one, stand pat.
      If A bets the last round, do DDD.
      If A checks the last round, do EEE.
  If A checks, bet.
    If A raises, call.
       If A stands pat, draw one.
          Then, if I get a 2 do FFF, if I get a 3 do GGG, etc.
       If A draws one, stand pat.
          If A bets the last round do HHH.
          If A checks the last round do III.
    If A calls,
       If A stands pat, draw one.
          Then, if I get a 2 do JJJ, if I get a 3 do KKK, etc.
       If A draws one, stand pat. 
          If A bets the last round do LLL.
          If A checks the last round do MMM.
       If A draws two, stand pat.
          If A bets the last round do NNN.
          If A checks the last round to OOO.


Gross, huh? But, the key point is that each of the innermost last-round actions are a problem we already know how to solve. Given a hand range for A, we can calculate the best strategy in the last round for B (the appropriate AAA/BBB/CCC mix) as a linear program. For 1:1 drawing situations, this is just the problem I've already been solving (except for there being a range of dead cards instead of known ones.)

So, the algorithm should look something like this:

1. Start with a resticted set of pure strategies for A and B.
2. Solve the main linear program to arrive at the best mix of strategies for A and B.
3. For each possible fourth-round situation,
3a. Calculate the hand range for A on the fourth round given the action on the third round.
3b. Solve a subsidiary linear program giving the best strategy for B against A's hand range.
3c. If the fourth-round strategy for B includes strategies not found in the restricted set of pure strategies, add a new pure strategy for B to the restricted set.
4. Iterate steps 2-3, alternately adding strategies for A and B, until no new pure strategy can be found to add. Then the solution to the main linear program cannot be improved further.
Tags: code, linear programming, poker, theory, triple draw
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 1 comment