PokerRoad Forums PokerRoad

Go Back   PokerRoad Forums > Poker Discussion > Shadow Forum to Red Pro Discussions

Shadow Forum to Red Pro Discussions The same threads that are in the Red Pro Forum will be copied here for everyone to discuss. No new threads are allowed to be created here.

Closed Thread
 
LinkBack Thread Tools Display Modes
  #51 (permalink)  
Old 08-26-2009, 06:15 PM
Beginning Poster
 
Join Date: Aug 2009
Posts: 1
Default

Very nice post.

I decided to test this out for real. Using my PokerTracker 3 database, I ran the following experiment:

Since I don't have hole card information on most hands, I examine the first 2 flop cards and treat them as if they were dealt to the big blind.

So, if the flop comes AA2, I treat it as if the big blind was dealt AA.

I extracted the number of times the big blind is dealt a pocket pair (by simulating the flop first 2 cards) using 2 filters;
1. All hands with 6 players and a flop was dealt.
2. All hands with 6 players where everyone folded except for the blinds and a flop was dealt.

My database is rather small. I only had 132k hands for 91) and 13k hands for (2) but the result is interesting. Escpecially considering that this is for 6 handed, not full ring.



As horizontal axis is the pocket pair starting with 22 up to AA.
The vertical axis is the odds against. The blue line is Blind vs Blind while the red line is all hands.

It's pretty clear the red line has no trend while the blue line trends downwards. Indicating that in BvB situations, the flop is more likely to be AAx or KKx that 22x or 33x.

If anyone has a very large database (preferably with full ring hands) and would like to run this experiment on his DB, please PM me

Last edited by alon.albert; 08-26-2009 at 06:19 PM.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Share on FacebookReddit!
  #52 (permalink)  
Old 08-26-2009, 07:55 PM
Beginning Poster
 
Join Date: Aug 2009
Posts: 2
Default

Hey Barry

It’ll be easiest to go in reverse order.

4. I actually did mention how questionable this is, since like I said I would rather raise 89s from utg on almost any stack size in a tournament, especially at ante-levels, than Ato, and I did say that stove and combos had no way to account for this. The non-transitive nature of hand rankings (AT has strong equity against KQo in all in situations but bad equity against JJ while KQo flips with JJ) complicates things a lot.

3. I realized this after I posted but hadn’t gotten around to fixing it. It is pretty easy, but as the raise game is fairly moot not too interesting. Let’s say you fold A8 utg, well that removes an A from the deck and an 8 from 88 combos, even though the cards together didn’t form a hand in the raising set, the utg+1’s raising set has cards removed. Its basically just a Venn diagram to solve the combos, but again, close to moot.

2. This was in how I worded the question, which was actually imprecise I think, what I effectively calculated is the set from which if you select a hand in the exact middle of it, you should have 50% chance of having the best hand, which was a mistake to say it this way obviously. Again, raise game is still solvable, just that number of combos is wrong, and plays into point 1.

  • I had to think about this a bit longer. I just took the top 11.1r% (1/9) from stove to be honest to get those combos. But those are pokerstove’s definitions of the top 1/9 of hands, before we know any hands. So you are right because we have more info (our hand), and actually if we have AA, it is less likely (as we all know) that the remaining 1225 combos produce a strong ace hand or what have you.

Yeah it is obvious I have to admit I rushed the rigour a little bit – I can admit when I’m wrong – but those things you pointed out make the raise game still solvable. The broader point, along with point 4, is that, this is essentially what one would have to do to get an idea of what the bb’s real range is quantitatively, and it is impossible to solve in real game situations since people’s idea of their raise game sets will vary so much situation to situation.

So,

-card removal does matter (there are posts in thread before that argue otherwise, these are just mistaken)
-but solving the range the big blind is dealt in any given poker situation is very hard, we can do it in models if we ignore point 4, which would be a mistake
-since its quantitatively impossible to get a clear picture of the range the big blind is dealt given 7 folds, the sounder strategy is to rely on qualitative factors (ie, what Barry called making the best poker decision) simply bearing in mind there are card removal effects



Gareth
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Share on FacebookReddit!
  #53 (permalink)  
Old 08-27-2009, 08:33 AM
Beginning Poster
 
Join Date: Aug 2009
Posts: 3
Default

Quote:
Originally Posted by Barry Greenstein View Post
TommyPR,

I'm not set up with a programming environment on my current computer set up. Can you fix it and report the results?

Barry
I have quickly written some code to rewrite "dealacard", and later I will supply it in this thread, but right now I'd like to spend a few more days on it to make sure it is correct.

That being said, I will now share with you my preliminary findings.

Without my fix, I counted the number of "duplicate cards drawn" from the deck as happening 28,044 times for the 1,000,000 hands dealt.

Original output from http://barrygreenstein.com/out-aces.htm:
The number of hands dealt is 1000000.
The number of walks in the big blind is 17013.
There were 80230 pairs of Aces out of 10718190 combinations.
When getting a walk in the big blind, the odds against having Aces is 132.59 to 1.
This is 65.43 percent more than normal.
Tommy's results using original BG code:
The number of hands dealt is 1000000.
The number of walks in the big blind is 17152.
There were 80730 pairs of Aces out of 10805760 combinations.
When getting a walk in the big blind, the odds of having Aces is 132.85 to 1.
This is 65.11 percent more than normal.
Tommy's results after fixing BG code:
The number of hands dealt is 1000000.
The number of walks in the big blind is 16329.
There were 76390 pairs of Aces out of 10287270 combinations.
When getting a walk in the big blind, the odds of having Aces is 133.67 to 1.
This is 64.11 percent more than normal.

As I suspected earlier, fixing the software "bug" does not change the results very much.

Regards,
TommyPR
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Share on FacebookReddit!
  #54 (permalink)  
Old 08-28-2009, 02:46 PM
Beginning Poster
 
Join Date: Aug 2009
Posts: 3
Default

Hi Mr. Greenstein,

I have 2 separate fixes to your "dealacard" function. The first fix has
fewer changes and keeps with the main idea of your code, but is probably
impossible for most people to really understand.

Note, I needed to make one other change to your code not related to the
fix. Even though the comment on "#include <stdlib.h>" says "includes
definition of the random() function", I have only found documentation
that describes the "rand()" function in stdlib.h.

Fix 1:

Code:
 
int dealacard(int dealtcards[]){
   int i, j;
   int taken = 0;                       // used to count how many cards 
are out of deck
   for (taken = 0; dealtcards[taken] >= 0; taken++);
 
   int cardnum = rand() %(52 - taken); // randomly choose a card left 
in the deck
                                        // this is the relative location 
in the cards that have not been dealt
   for (i = 0; i < taken; i++){         // see which cards are lower 
than cardnum
      if (dealtcards[i] <= cardnum){
         cardnum++;                     // card value needs to be one 
more
    bool keepgoing = true;
    while (keepgoing) {
        keepgoing = false;
             for (j = 0; j < i; j++){ // backtrack and see if we 
passed a value
         // that should now be 
skipped
                 if (dealtcards[j] == cardnum){
               cardnum++;            // increase actual card 
value
             keepgoing = true;
                 }
              }
         }
      }
    }
   dealtcards[taken] = cardnum;    // this card is now taken
   dealtcards[taken + 1] = -1;     // indicate new end of list
   return cardnum;           // this is the next randomly dealt card
 }
The second fix (which I actually developed first) has more changes to
your code and introduces another array, but is orders of magnitude
easier to understand as it follows a more humanistic approach to the
problem: "I have a list of ordered numbers and some of them are crossed
out. Find me the n-th smallest one in the remaining list."

Fix 2:

Change parameters for dealacard:

Code:
 
int dealacard(int [], bool []); // this function will deal a random 
card from a depleted deck
Define an array in main():

Code:
 
bool deck[52]; 
Initialze deck[] at start of each hand:

Code:
 
   for (i=0; i<52; i++){   // start each deal with a fresh deck
     deck[i] = false;
   }; 
Change the callers to dealacard:

Code:
 
    firstcard = dealacard(cardstaken, deck);  // first card 
of next player's hand
    secondcard = dealacard(cardstaken, deck); // second card 
of next player's hand
Change dealacard:

Code:
 
int dealacard(int dealtcards[], bool deck[]){
   int i;
   int cardnum;
   int taken = 0; // used to count how many cards are out of deck
    for (taken = 0; dealtcards[taken] >= 0; taken++);
    i = rand() % (52 - taken);     // randomly choose a card left in 
the deck
                     // this is the 
relative location in the cards that have not been dealt
cardnum = 0;
while (deck[cardnum]){          // find first undealt card
  cardnum++;
}
 
while (i > 0){                  // move through deck until 'i' undealt cards have been skipped
  cardnum++;
  while (deck[cardnum]){       // skip over cards that have already been dealt
     cardnum++;
  }
  i--;
}
deck[cardnum] = true;
    dealtcards[taken] = cardnum;    // this card is now taken
    dealtcards[taken + 1] = -1;     // indicate new end of list
    return cardnum;                 // this is the next randomly dealt 
card
 }
For the curious, I will attempt to explain the problem with BG's
original code. (It ain't easy to explain.)

Function "dealacard" sometimes deals duplicate cards from the deck.
This happens in the following circumstances:

1. Two consecutive cards are dealt from the deck in reverse numerical
order. The deck is numerically ordered from 0 to 51.

2. At least one more card smaller than the first two is now dealt.

3. A random number is generated for the fourth card. This number is
relative to the remaining cards in the deck. It happens to be
numerically one less than the smaller one dealt in step 1. (The
problem can also occur when this number is 2 or more less than those
from step 1.)

The code detects that this number needs to be incremented because it is
greater than (or equal to) the card from step 2. After incrementing, it
checks to see if this card has already been dealt. The code finds that
this card was already dealt in step 1, so it needs to increment to the
next card.

But this is where the error is because if this new card was already
"passed over" while checking the cards that have been dealt, then it
doesn't get incremented again, but is returned as the card dealt.

Kind Regards,
TommyPR
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Share on FacebookReddit!
  #55 (permalink)  
Old 12-18-2009, 02:26 PM
PokerRoad Junkie
 
Join Date: Nov 2008
Location: milton, mass.
Posts: 519
Send a message via AIM to joey41 Send a message via Yahoo to joey41
Club math!

Quote:
Originally Posted by Barry Greenstein View Post
You must have missed points 5, 8, and 9 in my opening post.

On the other hand, not playing a profitable hand because you will only get called when you are beat is not a reason to fold if the resulting play gives you a decent positive expectation by picking up the pot in an overwhelming majority of the cases. And of course some of the time you are an underdog you will win.

Barry
While an A student, I flunked every H.S math course, when I was 7yrs
old, I would write a three backwards, and my father would slap me, thinking
I was being a wise guy, In 1947, we didn't know what Dyslexia was,
let alone understand the disabilities that some people have which are
not easily evident.

But I do have mathematical instincts, even when I played higher stakes,
I would routinely found strait possibilities with three or less players, sensing
that I was not getting correct pot odds to call. So while I admire
Barry's math genius, which it is, I will have to play with my instincts as
a guide

joey41
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Share on FacebookReddit!
  #56 (permalink)  
Old 02-05-2010, 02:49 PM
Beginning Poster
 
Join Date: Feb 2010
Posts: 5
Default

my head hurts
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Share on FacebookReddit!
  #57 (permalink)  
Old 07-20-2010, 05:44 AM
bRiMaTiOn's Avatar
PokerRoad Prodigy
 
Join Date: Jan 2009
Posts: 60
Send a message via AIM to bRiMaTiOn
Default

Over in the real thread. A guy says Barry uses an analysis that is impossible to prove anything. Barry explained why he did that. Barry also said at the beginning it was impossible to explain things with a straight analysis. The guys stopped talking because they thought they won.

They forgot that Barry said he would he try and explain anyways.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Share on FacebookReddit!
  #58 (permalink)  
Old 01-13-2011, 12:29 PM
a10fouru's Avatar
PokerRoad Degenerate
 
Join Date: Oct 2008
Location: Louisiana
Posts: 1,865
Default

Quote:
Originally Posted by Bootlenna View Post
Hello. Your resource has got to spam base. Please, remove this message that spam to you wouldn't come. Yours faithfully fighters with spamers
I can has a cheezburger with gooder english?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Share on FacebookReddit!
  #59 (permalink)  
Old 01-17-2011, 04:08 AM
listening's Avatar
PokerRoad Degenerate
 
Join Date: Oct 2008
Location: Rhode Island
Posts: 1,014
Default

Quote:
Originally Posted by a10fouru View Post
I can has a cheezburger with gooder english?
It's what comes out when you use Google translate or Babelfish.
__________________
Lis~ ... blog:Grandma Degen and book: Lis' Razzbook
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Share on FacebookReddit!
Closed Thread

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT -5. The time now is 02:35 PM.