Poker-AI.org Poker AI and Botting Discussion Forum 2020-11-10T07:08:30+00:00 http://poker-ai.org/phpbb/feed.php?f=25&t=2852 2020-11-10T07:08:30+00:00 2020-11-10T07:08:30+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=2852&p=8538#p8538 <![CDATA[Re: Heads-up limit hold’em poker is solved]]> _________________________________________________________
https://www.score88poker.bid/mobile.php
Life, like poker, has an element of risk. It shouldn’t be avoided. It should be faced. ” ~ Edward Norton

Statistics: Posted by horizonman — Tue Nov 10, 2020 7:08 am


]]>
2020-04-17T02:00:54+00:00 2020-04-17T02:00:54+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=2852&p=8436#p8436 <![CDATA[Re: Heads-up limit hold’em poker is solved]]>
flopnflush wrote:

Heads-up limit hold’em poker is solved
by: Michael Bowling, Neil Burch, Michael Johanson, Oskari Tammelin

Abstract
Poker is a family of games that exhibit imperfect information, where players do not have full knowledge of past events. Whereas many perfect-information games have been solved (e.g., Connect Four and checkers), no nontrivial imperfect-information game played competitively by humans has previously been solved. Here, we announce that heads-up limit Texas hold’em is now essentially weakly solved. Furthermore, this computation formally proves the common wisdom that the dealer in the game holds a substantial advantage. This result was enabled by a new algorithm, CFR+, which is capable of solving extensive-form games orders of magnitude larger than previously possible.

http://www.sciencemag.org/content/347/6218/145.abstract

Statistics: Posted by craig — Fri Apr 17, 2020 2:00 am


]]>
2020-04-07T18:23:24+00:00 2020-04-07T18:23:24+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=2852&p=8419#p8419 <![CDATA[Re: Heads-up limit hold’em poker is solved]]> Statistics: Posted by doberso — Tue Apr 07, 2020 6:23 pm


]]>
2015-03-06T17:11:14+00:00 2015-03-06T17:11:14+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=2852&p=6620#p6620 <![CDATA[Re: Heads-up limit hold’em poker is solved]]> nonpareil wrote:

somehomelessguy wrote:
PCS should work better than monte carlo, but there will still be actions that "prove useful" due to variance and not because they're actually useful. Using PCS and only using CFR+ on the river could work though (no variance there).

Maybe it's possible to use some negative treshold instead of 0 to provide some buffer against variance in sampling versions.

i.e.

Code:
cfr[player][a] = std::max(treshold, cfr[player][a] + cfu[a] - ev);



Thanks for the response. I tried Pure CFR with several different negative thresholds, but it didn't converge faster in my tests.

I also tried a form of PCS that only uses the current strategy when training. It also performed worse when using a 0 threshold on the river compared to not using one at all. When using a card abstraction (and imperfect recall) there can be several board rundowns that result in the same bucket, so there is still variance on the river I think.

Has anyone seen improvement when trying something like CFR+ but with sampling? I feel like there should be some compromise between Vanilla CFR with no abstraction and one with buckets and sampling cards and actions.

Of course, there could be bugs in my implementations, my tests were not run for very long, maybe it does better with larger card abstractions, etc. I did get CFR+ working in toy games just fine though, based off Oskari's demo code.


I couldn't get the thresholding to work either. I did found sort of an improvement though (which could possibly be enhanced).

Weighing the regrets has been discussed here before and gives a slight boost. This seems to be related to the cfr+ phenomena, because weighing only the negative regrets gives faster convergence than weighing all regrets.

The boost is nothing like cfr+ over vanilla cfr however.

Using weight=iterations+1 in CSCFR and weighing negative regrets and avg strategy, it reached <5mbb/g exploitability 20% faster than weighing all regrets and avg strategy, and 36% faster than not weighing anything (in the flop subgame I tested).

The weight will likely depend on what sampling is used, and linear isn't necessarily optimal.

Statistics: Posted by somehomelessguy — Fri Mar 06, 2015 5:11 pm


]]>
2015-02-11T11:44:42+00:00 2015-02-11T11:44:42+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=2852&p=6536#p6536 <![CDATA[Re: Heads-up limit hold’em poker is solved]]> I have a couple of questions regarding optimization

[1] In http://webdocs.cs.ualberta.ca/~bowling/papers/15science.pdf they state
Quote:

Finally, unlike with CFR, we have empirically observed that the exploitability of the players’ current strategies during the computation regularly approaches zero. Therefore, we can skip the step of computing and storing the average strategy, instead using the players’ current strategies as the CFR+ solution.


So I modified the pseudocode provided in http://arxiv.org/pdf/1407.5042.pdf as I understand it. (Attached to this post - See bottom). Do you agree with that?

[2] In http://webdocs.cs.ualberta.ca/~bowling/papers/15science.pdf they explain
Quote:

To address the memory challenge we store the average strategy and accumulated regrets using compression. We use fixed-point arithmetic by first multiplying all values by a scaling factor and truncating them to integers. The resulting integers are then ordered to maximize compression efficiency, with compression ratios around 13-to-1 on the regrets and 28-to-1 on the strategy. Overall, we require less than 11 TB of storage to store the regrets and 6 TB to store the average strategy during the computation, which is distributed across a cluster of computation nodes.

What might that scaling factor be? 1,000? 10,000? 100,000?

[3] The pseudocode uses a non-declared/ non-preinitialized vector m. What might that be? A temporary variable?

[4] The entire strategy is ~524 TB in size:
- Since the average strategy is not used -> 524 / 2 = 262 TB required
- Since we are using 4 Byte Int32 instead of 8 Byte Doubles -> 262 / 2 = 131 TB required
- Since storage allows a compression of factor 13 -> 131 / 13 = ~10 TB required

Correct? Thanks ahead

Statistics: Posted by Nose — Wed Feb 11, 2015 11:44 am


]]>
2015-01-20T15:26:43+00:00 2015-01-20T15:26:43+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=2852&p=6499#p6499 <![CDATA[Re: Heads-up limit hold’em poker is solved]]>
You can play against Cepheus the solved Heads-up limit hold’em PokerBot here

http://poker.srv.ualberta.ca/

Statistics: Posted by Tom — Tue Jan 20, 2015 3:26 pm


]]>
2015-01-14T23:58:18+00:00 2015-01-14T23:58:18+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=2852&p=6496#p6496 <![CDATA[Re: Heads-up limit hold’em poker is solved]]> somehomelessguy wrote:

PCS should work better than monte carlo, but there will still be actions that "prove useful" due to variance and not because they're actually useful. Using PCS and only using CFR+ on the river could work though (no variance there).

Maybe it's possible to use some negative treshold instead of 0 to provide some buffer against variance in sampling versions.

i.e.

Code:
cfr[player][a] = std::max(treshold, cfr[player][a] + cfu[a] - ev);



Thanks for the response. I tried Pure CFR with several different negative thresholds, but it didn't converge faster in my tests.

I also tried a form of PCS that only uses the current strategy when training. It also performed worse when using a 0 threshold on the river compared to not using one at all. When using a card abstraction (and imperfect recall) there can be several board rundowns that result in the same bucket, so there is still variance on the river I think.

Has anyone seen improvement when trying something like CFR+ but with sampling? I feel like there should be some compromise between Vanilla CFR with no abstraction and one with buckets and sampling cards and actions.

Of course, there could be bugs in my implementations, my tests were not run for very long, maybe it does better with larger card abstractions, etc. I did get CFR+ working in toy games just fine though, based off Oskari's demo code.

Statistics: Posted by nonpareil — Wed Jan 14, 2015 11:58 pm


]]>
2015-01-10T11:56:09+00:00 2015-01-10T11:56:09+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=2852&p=6470#p6470 <![CDATA[Re: Heads-up limit hold’em poker is solved]]>
nonpareil wrote:

Here's a brief paper by Oskari on CFR+ with pseudocode: http://arxiv.org/pdf/1407.5042v1

He says that CFR+ is meant for "vector-form" updates, and cites http://poker.cs.ualberta.ca/publication ... 12-pcs.pdf with more info about that. The pseudocode from both papers are very similar...

My current interpretation is that CFR+ works with public chance sampling (go through all hands for each player, but just one board). My concern is if it means you have to do Vanilla CFR iterations and go through all boards as well.

I'm curious to hear of any attempts to implement this. It'll take time to get some old PCS code working again :?


PCS should work better than monte carlo, but there will still be actions that "prove useful" due to variance and not because they're actually useful. Using PCS and only using CFR+ on the river could work though (no variance there).

Maybe it's possible to use some negative treshold instead of 0 to provide some buffer against variance in sampling versions.

i.e.

Code:
cfr[player][a] = std::max(treshold, cfr[player][a] + cfu[a] - ev);

Statistics: Posted by somehomelessguy — Sat Jan 10, 2015 11:56 am


]]>
2015-01-10T00:45:02+00:00 2015-01-10T00:45:02+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=2852&p=6469#p6469 <![CDATA[Re: Heads-up limit hold’em poker is solved]]> http://arxiv.org/pdf/1407.5042v1

He says that CFR+ is meant for "vector-form" updates, and cites http://poker.cs.ualberta.ca/publication ... 12-pcs.pdf with more info about that. The pseudocode from both papers are very similar...

My current interpretation is that CFR+ works with public chance sampling (go through all hands for each player, but just one board). My concern is if it means you have to do Vanilla CFR iterations and go through all boards as well.

I'm curious to hear of any attempts to implement this. It'll take time to get some old PCS code working again :?

Statistics: Posted by nonpareil — Sat Jan 10, 2015 12:45 am


]]>
2015-01-09T22:57:35+00:00 2015-01-09T22:57:35+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=2852&p=6468#p6468 <![CDATA[Re: Heads-up limit hold’em poker is solved]]> algonoob wrote:

flopnflush wrote:
Quote:
- poor convergence rate in monte carlo variations

Where did you find this quote?

http://jeskola.net/cfr/demo/

Statistics: Posted by flopnflush — Fri Jan 09, 2015 10:57 pm


]]>
2015-01-09T22:50:31+00:00 2015-01-09T22:50:31+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=2852&p=6467#p6467 <![CDATA[Re: Heads-up limit hold’em poker is solved]]> flopnflush wrote:

Quote:
- poor convergence rate in monte carlo variations

Where did you find this quote?

Statistics: Posted by algonoob — Fri Jan 09, 2015 10:50 pm


]]>
2015-01-09T21:32:06+00:00 2015-01-09T21:32:06+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=2852&p=6464#p6464 <![CDATA[Re: Heads-up limit hold’em poker is solved]]> Quote:

- poor convergence rate in monte carlo variations

Statistics: Posted by flopnflush — Fri Jan 09, 2015 9:32 pm


]]>
2015-01-09T14:08:19+00:00 2015-01-09T14:08:19+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=2852&p=6463#p6463 <![CDATA[Re: Heads-up limit hold’em poker is solved]]>
Code:
cfr[player][a] = std::max(0.0, cfr[player][a] + cfu[a] - ev);


Brilliant. Hats off, gentlemen.

Statistics: Posted by cantina — Fri Jan 09, 2015 2:08 pm


]]>
2015-01-09T08:00:51+00:00 2015-01-09T08:00:51+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=2852&p=6462#p6462 <![CDATA[Re: Heads-up limit hold’em poker is solved]]> https://pdf.yt/d/qv-O9AwQuV1Kjb04

Statistics: Posted by spears — Fri Jan 09, 2015 8:00 am


]]>
2015-01-09T06:02:51+00:00 2015-01-09T06:02:51+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=2852&p=6460#p6460 <![CDATA[Re: Heads-up limit hold’em poker is solved]]> http://poker.cs.ualberta.ca/open_cfr_plus.html

Oskari Tammelin's web page also has some brief notes / pseudocode: http://jeskola.net/ (click CFR at top)

Statistics: Posted by nonpareil — Fri Jan 09, 2015 6:02 am


]]>
2015-01-08T22:11:13+00:00 2015-01-08T22:11:13+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=2852&p=6458#p6458 <![CDATA[Heads-up limit hold’em poker is solved]]> Heads-up limit hold’em poker is solved
by: Michael Bowling, Neil Burch, Michael Johanson, Oskari Tammelin

Abstract
Poker is a family of games that exhibit imperfect information, where players do not have full knowledge of past events. Whereas many perfect-information games have been solved (e.g., Connect Four and checkers), no nontrivial imperfect-information game played competitively by humans has previously been solved. Here, we announce that heads-up limit Texas hold’em is now essentially weakly solved. Furthermore, this computation formally proves the common wisdom that the dealer in the game holds a substantial advantage. This result was enabled by a new algorithm, CFR+, which is capable of solving extensive-form games orders of magnitude larger than previously possible.

http://www.sciencemag.org/content/347/6218/145.abstract

Statistics: Posted by flopnflush — Thu Jan 08, 2015 10:11 pm


]]>