Poker-AI.org

Poker AI and Botting Discussion Forum
It is currently Mon Nov 13, 2023 3:42 pm

All times are UTC




Post new topic Reply to topic  [ 9 posts ] 
Author Message
PostPosted: Fri Apr 05, 2013 11:15 am 
Offline
New Member

Joined: Sat Mar 09, 2013 12:01 pm
Posts: 4
Hi All!

I modified the Malmuth-Weizman formula a little bit. Every player has a probability of next elimination by inversely proportion to his stack. If a player eliminated instead of reallocates his chips evenly amongst the remaining players, reallocates his chips proportionaly amongst the remaining players.

With this little change we've got a better approch and results than the original MW and the classic ICM.

The only problem with this method is that is very slow, beacuse we need to calculate every players elemination from 10 to 0 players (in a full SNG for example).

Here is my code:
Code:
template<typename T>
void SetEquitiesByICM2(T equities[NCHAIRS], double stacks_new[NCHAIRS], double prs[NCHAIRS], double pr_total, unsigned int place) {
  for (unsigned int playerchair = 0; playerchair < NCHAIRS; ++playerchair)
    if (stacks_new[playerchair] > 0) {
      double d = stacks_new[playerchair];
      stacks_new[playerchair] = 0;
      double equities_new[NCHAIRS] = {0};
      SetEquitiesByICM2(equities_new, stacks_new, prs, pr_total - prs[playerchair], place - 1);
      stacks_new[playerchair] = d;
      double pr = prs[playerchair] / pr_total;
      equities[playerchair] += (T)(prizes[place] * pr);
      for (unsigned int i = 0; i < NCHAIRS; ++i)
        if ((i != playerchair) && (stacks_new[i] > 0))
          equities[i] += (T)(equities_new[i] * pr);
    }
}

template<typename T>
void SetEquitiesByICM2(T equities[NCHAIRS], double stacks_new[NCHAIRS]) {
  unsigned int place = 0;
  double pr_total = 0;
  double prs[NCHAIRS] = {0};
  for (unsigned int playerchair = 0; playerchair < NCHAIRS; ++playerchair)
    if (stacks_new[playerchair] > 0) {
      prs[playerchair] = 1.0 / stacks_new[playerchair];
      pr_total += prs[playerchair];
      ++place;
    }
  memset(equities, 0, sizeof(T) * NCHAIRS);
  SetEquitiesByICM2(equities, stacks_new, prs, pr_total, place - 1);
}


Please help me to speed up this algorithm.

Thank you.

Bye,
morcos


Top
 Profile  
 
PostPosted: Sun Apr 07, 2013 5:40 am 
Offline
Site Admin
User avatar

Joined: Thu Feb 28, 2013 5:24 pm
Posts: 230
Speaking of improving ICM and Tysen aka trojanrabbit just showing up again on here, didn't you have a sick improvement that scaled really well? I can't remember exactly what it was now...

_________________
Cheers.


Top
 Profile  
 
PostPosted: Sun Apr 07, 2013 9:51 am 
Offline
New Member

Joined: Sat Mar 09, 2013 12:01 pm
Posts: 4
Coffee4tw wrote:
Speaking of improving ICM and Tysen aka trojanrabbit just showing up again on here, didn't you have a sick improvement that scaled really well? I can't remember exactly what it was now...

Ben Roberts did an improvement: http://www.poker-ai.org/archive/www.pokerai.org/pf3/viewtopic39f7.html?f=64&t=4415

But the problem with that method is, it is very computing expensive.

My method is somewhere in the middle of MH and Ben Roberts' method. It is the same speed of classic ICM for a place, but because of the need to calculate every places this is slower than ICM.


Top
 Profile  
 
PostPosted: Sun Apr 07, 2013 6:11 pm 
Offline
Junior Member
User avatar

Joined: Tue Mar 05, 2013 9:46 am
Posts: 16
morcos wrote:
With this little change we've got a better approch and results than the original MW and the classic ICM.

Can you tell how exactly did you measure and compare the results?

_________________
Бетономешалка! Мешает бетон!


Top
 Profile  
 
PostPosted: Sun Apr 07, 2013 8:30 pm 
Offline
New Member

Joined: Sat Mar 09, 2013 12:01 pm
Posts: 4
concretemixer wrote:
morcos wrote:
With this little change we've got a better approch and results than the original MW and the classic ICM.

Can you tell how exactly did you measure and compare the results?


These are examples from the paper of Ben Roberts plus the modified Malmuth-Weitzman (MMW) method:
Code:
Stacks   MH      Diff.   MMW      Diff.   BR      Diff.   "True equity"
2000      11,56      0,75   10,48      0,33   10,84      0,03   10,81
3000      16,47      0,48   16,23      0,24   16,09      0,10   15,99
4000      20,69      0,01   20,88      0,20   20,78      0,10   20,68
5000      24,18      0,45   24,64      0,01   24,60      0,03   24,63
6000      27,10      0,80   27,77      0,13   27,70      0,20   27,90
Total      100,00   2,49   100,00   0,91   100,01   0,46   100,01
(%)
                     
Stacks   MH      Diff.   MMW      Diff.   BR      Diff.   "True equity"
1000      83,3      1,2   83,2      1,1   82,1      0,0   82,1
1000      83,3      1,2   83,2      1,1   82,1      0,0   82,1
2000      133,3      2,5   133,6      2,2   135,7      0,1   135,8
Total      299,9      4,9   300,0      4,4   299,9      0,1   300,0
($)
                     
Stacks   MH      Diff.   MMW      Diff.   BR      Diff.   "True equity"
1000      19,1      2,5   19,0      2,4   15,5      1,1   16,6
9000      137,4      1,2   137,4      1,2   139,2      0,6   138,6
10000   143,5      1,3   143,7      1,1   145,3      0,5   144,8
Total      300,0      5,0   300,1      4,7   300,0      2,2   300,0
($)


Top
 Profile  
 
PostPosted: Mon Apr 08, 2013 1:42 am 
Offline
Junior Member
User avatar

Joined: Fri Apr 05, 2013 2:21 am
Posts: 11
Coffee4tw wrote:
Speaking of improving ICM and Tysen aka trojanrabbit just showing up again on here, didn't you have a sick improvement that scaled really well? I can't remember exactly what it was now...

Are you thinking of this?

Tysen


Top
 Profile  
 
PostPosted: Mon Apr 08, 2013 5:53 am 
Offline
Junior Member
User avatar

Joined: Tue Mar 05, 2013 9:46 am
Posts: 16
morcos wrote:
concretemixer wrote:
morcos wrote:
With this little change we've got a better approch and results than the original MW and the classic ICM.

Can you tell how exactly did you measure and compare the results?


These are examples from the paper of Ben Roberts plus the modified Malmuth-Weitzman (MMW) method:

Okay, and any results in terms of ROI and profit?

_________________
Бетономешалка! Мешает бетон!


Top
 Profile  
 
PostPosted: Mon Apr 08, 2013 8:02 am 
Offline
New Member

Joined: Sat Mar 09, 2013 12:01 pm
Posts: 4
concretemixer wrote:
Okay, and any results in terms of ROI and profit?

Sorry, but I haven't any results with ROI or profit. I just saw that the small stacks have smaller equity than in MH or MW, and I believe the biggest problem with the ICM is the overvalue of the small stacks (and undervalue the big stacks, but this algorithm give just a little more equity for big stacks).

Someone can test it? I don't have the knowledge to simulate or calculate and compare equity models... :(


Top
 Profile  
 
PostPosted: Wed Apr 10, 2013 6:47 am 
Offline
Site Admin
User avatar

Joined: Thu Feb 28, 2013 5:24 pm
Posts: 230
trojanrabbit wrote:
Are you thinking of this?

Tysen

YES! Thanks for that link.

_________________
Cheers.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 9 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
cron
Powered by phpBB® Forum Software © phpBB Group