Poker-AI.org Poker AI and Botting Discussion Forum 2013-08-30T19:50:11+00:00 http://poker-ai.org/phpbb/feed.php?f=24&t=2567 2013-08-30T19:50:11+00:00 2013-08-30T19:50:11+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=2567&p=4762#p4762 <![CDATA[Re: Algorithm to count outs ?]]>
Counting the correct outs will be a HUGE improvement to my bot :-)

Statistics: Posted by shadehs — Fri Aug 30, 2013 7:50 pm


]]>
2013-08-30T12:34:13+00:00 2013-08-30T12:34:13+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=2567&p=4754#p4754 <![CDATA[Re: Algorithm to count outs ?]]> AiWins wrote:

I just did , most of the time you are going to have the same amount of outs against every significant hand.
And some random hands, you will have some random outs:
Imagine a hand where you have 40 outs to beat 50% of his range and 2 outs to beat the other 50% of his range. Is there any situation where returning the average odds (21) useful?
I reiterate, perhaps OP can tell us why.


Here is an app I have which does what you are looking for minus the "range" part. Instead this one is vs all possible remaining hands.

Image

In this case I take all remaining turn cards possible and then all remaining hands minus the turn so

foreach(var card in cards)
foreach(var hand in hands)



If the average for each card is >=50 of the 1035 possible opponents then I grant that card an out. In my case its against only one opponent that has the full range but the logic could be used against multiple opponents each with their own range.

You can see the outs as well and the implied odds really are the "reverse" implied odds since its how much more you need to get if you do make then called when you do not have the proper odds.

So I don't think the logic is really naïve in this case. I think this is what you are looking for.

Statistics: Posted by Sharkfacepoker — Fri Aug 30, 2013 12:34 pm


]]>
2013-08-30T07:45:24+00:00 2013-08-30T07:45:24+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=2567&p=4751#p4751 <![CDATA[Re: Algorithm to count outs ?]]> I know that i'm winning from a MonteCarlo simulation of my hand against the range of villains.
If i'm losing, i need the number of outs for this formula if i have the odds to call his bet:

Code:
            var outOdds = OutOdds();
            var potOdds = PotOdds();

            if (BetRound == Rounds.Flop)
                return (outOdds * 2.0) > potOdds;

            if (BetRound  == Rounds.Turn)
                return (outOdds * 1.2) > potOdds;
         
       


But actually i can't get a formula to count the outs that it's working good.

Statistics: Posted by shadehs — Fri Aug 30, 2013 7:45 am


]]>
2013-08-30T04:59:06+00:00 2013-08-30T04:59:06+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=2567&p=4749#p4749 <![CDATA[Re: Algorithm to count outs ?]]> And some random hands, you will have some random outs:
Imagine a hand where you have 40 outs to beat 50% of his range and 2 outs to beat the other 50% of his range. Is there any situation where returning the average odds (21) useful?
I reiterate, perhaps OP can tell us why.

Statistics: Posted by AiWins — Fri Aug 30, 2013 4:59 am


]]>
2013-08-30T04:52:49+00:00 2013-08-30T04:52:49+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=2567&p=4748#p4748 <![CDATA[Re: Algorithm to count outs ?]]> AiWins wrote:

Sharkfacepoker wrote:
shadehs wrote:
How can i count the outs on a given board, knowing my cards and my opponents' range ?



I have done this with single hands but the same would apply to a range except you might want "average" outs since each individual
hand in the range gives different outs.

An array of all the opponenthands including yours.

int totalouts = 0;

foreach(hand in opponenthand)
foreach(car in remainingcard)
evaluate your and vs opponenthand
if your win+ties > than opponents win+ties
outs++



//averaging the total outs
totalOuts = totalouts / opponenthands

I use your hand vs opponent range assuming you have only one opponent. But, it can be applied more generically by n opponents
with n ranges.

I use who has the highest win + tie because if you had say 5 people in the hand the highest win+tie could be under 50%
but that person is still better off than the remaining players.

That's too naive. for 23s on a QKA board with a flush draw, you really don't need to do all that, there's thousands of similar cases where you just have the same amount of outs for a lot of hands in his range.
Perhaps if you told us why you want to know the amount of outs.



How it that too naïve ? It's enumeration not Monte Carlo so if he wanted to know an "average" over the possible specific hands that would give it an exact amount.

Now weather he uses win/tie or equity depends on what he is evaluating.

Statistics: Posted by Sharkfacepoker — Fri Aug 30, 2013 4:52 am


]]>
2013-08-30T04:37:45+00:00 2013-08-30T04:37:45+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=2567&p=4746#p4746 <![CDATA[Re: Algorithm to count outs ?]]> Sharkfacepoker wrote:

shadehs wrote:
How can i count the outs on a given board, knowing my cards and my opponents' range ?



I have done this with single hands but the same would apply to a range except you might want "average" outs since each individual
hand in the range gives different outs.

An array of all the opponenthands including yours.

int totalouts = 0;

foreach(hand in opponenthand)
foreach(car in remainingcard)
evaluate your and vs opponenthand
if your win+ties > than opponents win+ties
outs++



//averaging the total outs
totalOuts = totalouts / opponenthands

I use your hand vs opponent range assuming you have only one opponent. But, it can be applied more generically by n opponents
with n ranges.

I use who has the highest win + tie because if you had say 5 people in the hand the highest win+tie could be under 50%
but that person is still better off than the remaining players.

That's too naive. for 23s on a QKA board with a flush draw, you really don't need to do all that, there's thousands of similar cases where you just have the same amount of outs for a lot of hands in his range.
Perhaps if you told us why you want to know the amount of outs.

Statistics: Posted by AiWins — Fri Aug 30, 2013 4:37 am


]]>
2013-08-30T00:24:24+00:00 2013-08-30T00:24:24+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=2567&p=4745#p4745 <![CDATA[Re: Algorithm to count outs ?]]> shadehs wrote:

How can i count the outs on a given board, knowing my cards and my opponents' range ?



I have done this with single hands but the same would apply to a range except you might want "average" outs since each individual
hand in the range gives different outs.

An array of all the opponenthands including yours.

int totalouts = 0;

foreach(hand in opponenthand)
foreach(car in remainingcard)
evaluate your and vs opponenthand
if your win+ties > than opponents win+ties
outs++



//averaging the total outs
totalOuts = totalouts / opponenthands

I use your hand vs opponent range assuming you have only one opponent. But, it can be applied more generically by n opponents
with n ranges.

I use who has the highest win + tie because if you had say 5 people in the hand the highest win+tie could be under 50%
but that person is still better off than the remaining players.

Statistics: Posted by Sharkfacepoker — Fri Aug 30, 2013 12:24 am


]]>
2013-08-29T22:36:29+00:00 2013-08-29T22:36:29+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=2567&p=4743#p4743 <![CDATA[Re: Algorithm to count outs ?]]> If you want to calculate outs agaisnst a range of hands, you would then have an array of outs, one for each of opponent's hand.
Also, outs to what? To beat him? In that case A2o vs 74o on a KQJ5r board, has 44 outs.
All in all, outs are a naive system, and if you still want to use them, then you do not need opponent's range, for such complex calculations you can achieve much better results by calculating equity directly.
Doesn't the following code seem silly?
Code:
float Flop_Draw(Outs)
{
switch (outs)
{
case 0:
return 0;
case 1:
return 4,4;
etc...
}

float ProbabilityDraw(Board,Hand)
{
Outs=HowManyOuts(Board,Hand);
return Flop_Draw_Odds(Outs);
}

Why even include Outs?

Statistics: Posted by AiWins — Thu Aug 29, 2013 10:36 pm


]]>
2013-08-29T07:10:54+00:00 2013-08-29T07:10:54+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=2567&p=4739#p4739 <![CDATA[Algorithm to count outs ?]]> Statistics: Posted by shadehs — Thu Aug 29, 2013 7:10 am


]]>