Poker-AI.org http://poker-ai.org/phpbb/ |
|
Modified Malmuth-Weizman algorithm http://poker-ai.org/phpbb/viewtopic.php?f=24&t=2444 |
Page 1 of 1 |
Author: | morcos [ Fri Apr 05, 2013 11:15 am ] |
Post subject: | Modified Malmuth-Weizman algorithm |
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 |
Author: | Coffee4tw [ Sun Apr 07, 2013 5:40 am ] |
Post subject: | Re: Modified Malmuth-Weizman algorithm |
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... |
Author: | morcos [ Sun Apr 07, 2013 9:51 am ] |
Post subject: | Re: Modified Malmuth-Weizman algorithm |
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. |
Author: | concretemixer [ Sun Apr 07, 2013 6:11 pm ] |
Post subject: | Re: Modified Malmuth-Weizman algorithm |
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? |
Author: | morcos [ Sun Apr 07, 2013 8:30 pm ] |
Post subject: | Re: Modified Malmuth-Weizman algorithm |
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 ($) |
Author: | trojanrabbit [ Mon Apr 08, 2013 1:42 am ] |
Post subject: | Re: Modified Malmuth-Weizman algorithm |
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 |
Author: | concretemixer [ Mon Apr 08, 2013 5:53 am ] |
Post subject: | Re: Modified Malmuth-Weizman algorithm |
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? |
Author: | morcos [ Mon Apr 08, 2013 8:02 am ] |
Post subject: | Re: Modified Malmuth-Weizman algorithm |
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... |
Author: | Coffee4tw [ Wed Apr 10, 2013 6:47 am ] |
Post subject: | Re: Modified Malmuth-Weizman algorithm |
trojanrabbit wrote: YES! Thanks for that link. |
Page 1 of 1 | All times are UTC |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |