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

Showdown Utilities
http://poker-ai.org/phpbb/viewtopic.php?f=24&t=2664
Page 1 of 1

Author:  fraction [ Wed Dec 11, 2013 2:53 pm ]
Post subject:  Showdown Utilities

I think I may be working out my showdown utilities wrong.

At the moment I've got it set up so the utility for reaching showdown is
* for the winner: the total invested by the loser
* for the loser: - the total invested by the loser

I also think I may be doing my CSC-FRM utilities wrong when calculating regret. Should I be returning the values above as the utilities, or should I be multiplying it by the opponents reach percentage for that node first?

I ask because some implementations appear to be doing the first (including mine), and others do the other .For example, amex appears to do this, but maybe I'm reading his code wrong. (This is before the decision(s) that lead to it multiple by it's own strategy percentage). I've tried out the new way and it appears to produce weird behaviour, but it's not over many iterations.
-ignore this, I think it's due to the way our code is organised, I'm doing the same thing but in the parent node.

Any help with this greatly appreciated.

Author:  fraction [ Wed Dec 11, 2013 3:48 pm ]
Post subject:  Re: Showdown Utilities

This sort of answers is, but not quite. The last post confuses me: http://www.poker-ai.org/phpbb/viewtopic.php?f=24&t=2521

I calculate fold utility the same as above. The folder loses the amount they invested, the non-folder gains it.

To me this makes the most intuitive sense, but I'm suddenly not so sure which is correct.

Using invested:(what I'm doing now)
0 in the middle, player a bets 50, player B:
* calls with the best hand: a -50, b +50
* calls with the worst hand: a+50 b-50
* folds a0:b:0

100 in the middle (50 invested each), player a bets 50, player B:
* calls with the best hand: a -100, b +100
* calls with the worst hand: a+100 b-100
* folds a+50:b:-50

Using total pot: (as suggested in the post above)
0 in the middle, player a bets 50, player B:
* calls with the best hand: a -100, b +100
* calls with the worst hand: a+100 b-100
* folds a+50:b:-50

100 in the middle (50 invested each), player a bets 50, player B:
* calls with the best hand: a -200, b +200
* calls with the worst hand: a+200 b-200
* folds a+150:b:-150

They clearly produce different utilities (mainly around folding as suggested in the post above) . I get the feeling I'm missing something really simple here.

In a normal equity calculation we'd call and win (ev = +pot, not including our call amount) or call and lose (ev = -call amount) and folds are 0ev. But I think this is just the ev of a given action relative to folding rather than in the context of an entire hand.

Regualr poker ev calc for a single descision:
0 in the middle, player a bets 50, player B:
* calls with the best hand: a -50, b +50
* calls with the worst hand: a+50 b-50
* folds a0:b:0

100 in the middle (50 invested each), player a bets 50, player B:
* calls with the best hand: a -150, b +150
* calls with the worst hand: a+50 b-50
* folds a0:b:0

Which is different again. Arhrggrggh.

Author:  fraction [ Wed Dec 11, 2013 4:34 pm ]
Post subject:  Re: Showdown Utilities

Ah, seems like I'm not the only one:

http://www.poker-ai.org/archive/pokerai ... ml?p=33138

From reading this it looks like it's implementation dependant. In my implementation the ev for reaching a node is calculated from contribution to the pot (which is passed forward). In others, it pushes forward all action evs from non-terminal nodes (if you bet, it's -BETSIZE ev for that path, these are summed at the terminal - essentially it'll calc the cost of getting there, which is the same number as mine, the amount invested). This means folding after betting is -ev in both models, and in fact they're equivalent. I think. Which means I'm doing it right. I think.

Anyway, more iterations for me on my current implementation and I can see if it's sane.

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