chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,147 @@
|
||||
{
|
||||
"<h1>Regret Minimization in Games with Incomplete Information (CFR)</h1>\n": "<h1>\u60c5\u5831\u304c\u4e0d\u5b8c\u5168\u306a\u30b2\u30fc\u30e0\u306b\u304a\u3051\u308b\u5f8c\u6094\u6700\u5c0f\u5316 (CFR)</h1>\n",
|
||||
"<h2>Calculate strategy</h2>\n<p>Calculate current strategy using <a href=\"#RegretMatching\">regret matching</a>.</p>\n<span translate=no>_^_0_^_</span><p>where <span translate=no>_^_1_^_</span></p>\n": "<h2>\u30b9\u30c8\u30e9\u30c6\u30b8\u30fc\u306e\u8a08\u7b97</h2>\n<p><a href=\"#RegretMatching\">\u30ea\u30b0\u30ec\u30c3\u30c8\u30de\u30c3\u30c1\u30f3\u30b0\u3092\u4f7f\u7528\u3057\u3066\u73fe\u5728\u306e\u6226\u7565\u3092\u8a08\u7b97\u3057\u307e\u3059</a>\u3002</p>\n<span translate=no>_^_0_^_</span><p>\u3069\u3053 <span translate=no>_^_1_^_</span></p>\n",
|
||||
"<h2>Counterfactual Regret Minimization (CFR) Algorithm</h2>\n<p>We do chance sampling (<strong>CS</strong>) where all the chance events (nodes) are sampled and all other events (nodes) are explored.</p>\n<p>We can ignore the term <span translate=no>_^_0_^_</span> since it's the same for all terminal histories since we are doing chance sampling and it cancels out when calculating strategy (common in numerator and denominator).</p>\n": "<h2>\u53cd\u4e8b\u5b9f\u306b\u57fa\u3065\u304f\u5f8c\u6094\u6700\u5c0f\u5316 (CFR) \u30a2\u30eb\u30b4\u30ea\u30ba\u30e0</h2>\n<p>\u3059\u3079\u3066\u306e\u30c1\u30e3\u30f3\u30b9\u30a4\u30d9\u30f3\u30c8\uff08\u30ce\u30fc\u30c9\uff09\u3092\u30b5\u30f3\u30d7\u30ea\u30f3\u30b0\u3057\u3001\u4ed6\u306e\u3059\u3079\u3066\u306e\u30a4\u30d9\u30f3\u30c8\uff08\u30ce\u30fc\u30c9\uff09\u3092\u8abf\u67fb\u3059\u308b\u30c1\u30e3\u30f3\u30b9\u30b5\u30f3\u30d7\u30ea\u30f3\u30b0\uff08<strong>CS</strong>\uff09\u3092\u884c\u3044\u307e\u3059\u3002</p>\n<p>\u3053\u306e\u7528\u8a9e\u306f\u7121\u8996\u3067\u304d\u307e\u3059\u3002<span translate=no>_^_0_^_</span>\u306a\u305c\u306a\u3089\u3001\u30c1\u30e3\u30f3\u30b9\u30b5\u30f3\u30d7\u30ea\u30f3\u30b0\u3092\u884c\u3063\u3066\u3044\u3066\u3001\uff08\u5206\u5b50\u3068\u5206\u6bcd\u3067\u5171\u901a\uff09\u6226\u7565\u3092\u8a08\u7b97\u3059\u308b\u3068\u304d\u306b\u76f8\u6bba\u3055\u308c\u3066\u3057\u307e\u3046\u306e\u3067\u3001\u3059\u3079\u3066\u306e\u7aef\u672b\u5c65\u6b74\u3067\u540c\u3058\u3060\u304b\u3089\u3067\u3059\u3002</p>\n",
|
||||
"<h2>Get average strategy</h2>\n<p><span translate=no>_^_0_^_</span></p>\n": "<h2>\u5e73\u5747\u7684\u306a\u6226\u7565\u3092\u53d6\u5f97</h2>\n<p><span translate=no>_^_0_^_</span></p>\n",
|
||||
"<h2>Introduction</h2>\n": "<h2>\u306f\u3058\u3081\u306b</h2>\n",
|
||||
"<h3><a href=\"#History\">History</a></h3>\n": "<h3><a href=\"#History\">\u6b74\u53f2</a></h3>\n",
|
||||
"<h3><a href=\"#InfoSet\">Information Set <span translate=no>_^_0_^_</span></a></h3>\n": "<h3><a href=\"#InfoSet\">\u60c5\u5831\u30bb\u30c3\u30c8 <span translate=no>_^_0_^_</span></a></h3>\n",
|
||||
"<h3>Action</h3>\n": "<h3>\u30a2\u30af\u30b7\u30e7\u30f3</h3>\n",
|
||||
"<h3>Configurable CFR module</h3>\n": "<h3>\u8a2d\u5b9a\u53ef\u80fd\u306a CFR \u30e2\u30b8\u30e5\u30fc\u30eb</h3>\n",
|
||||
"<h3>Counterfactual regret</h3>\n": "<h3>\u53cd\u4e8b\u5b9f\u306b\u57fa\u3065\u304f\u5f8c\u6094</h3>\n",
|
||||
"<h3>Information set tracker</h3>\n<p>This is a small helper class to track data from information sets</p>\n": "<h3>\u60c5\u5831\u30bb\u30c3\u30c8\u30c8\u30e9\u30c3\u30ab\u30fc</h3>\n<p>\u3053\u308c\u306f\u3001\u60c5\u5831\u30bb\u30c3\u30c8\u306e\u30c7\u30fc\u30bf\u3092\u8ffd\u8de1\u3059\u308b\u305f\u3081\u306e\u5c0f\u3055\u306a\u30d8\u30eb\u30d1\u30fc\u30af\u30e9\u30b9\u3067\u3059\u3002</p>\n",
|
||||
"<h3>Iteratively update <span translate=no>_^_0_^_</span></h3>\n<p>This updates the strategies for <span translate=no>_^_1_^_</span> iterations.</p>\n": "<h3>\u7e70\u308a\u8fd4\u3057\u66f4\u65b0 <span translate=no>_^_0_^_</span></h3>\n<p>\u3053\u308c\u306b\u3088\u308a\u3001<span translate=no>_^_1_^_</span>\u30a4\u30c6\u30ec\u30fc\u30b7\u30e7\u30f3\u306e\u30b9\u30c8\u30e9\u30c6\u30b8\u30fc\u304c\u66f4\u65b0\u3055\u308c\u307e\u3059\u3002</p>\n",
|
||||
"<h3>Monte Carlo CFR (MCCFR)</h3>\n": "<h3>\u30e2\u30f3\u30c6\u30ab\u30eb\u30edCFR (MCCFR)</h3>\n",
|
||||
"<h3>Nash Equilibrium</h3>\n": "<h3>\u30ca\u30c3\u30b7\u30e5\u30fb\u30a8\u30af\u30a4\u30ea\u30d6\u30ea\u30a2\u30e0</h3>\n",
|
||||
"<h3>Player</h3>\n": "<h3>\u30d7\u30ec\u30fc\u30e4\u30fc</h3>\n",
|
||||
"<h3>Probability of History</h3>\n": "<h3>\u6b74\u53f2\u306e\u78ba\u7387</h3>\n",
|
||||
"<h3>Regret Matching</h3>\n": "<h3>\u30ea\u30b0\u30ec\u30c3\u30c8\u30de\u30c3\u30c1\u30f3\u30b0</h3>\n",
|
||||
"<h3>Regret Minimization</h3>\n": "<h3>\u5f8c\u6094\u306e\u6700\u5c0f\u5316</h3>\n",
|
||||
"<h3>Strategy</h3>\n": "<h3>\u30b9\u30c8\u30e9\u30c6\u30b8\u30fc</h3>\n",
|
||||
"<h3>Utility (Pay off)</h3>\n": "<h3>\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3 (\u30da\u30a4\u30aa\u30d5)</h3>\n",
|
||||
"<h3>Walk Tree</h3>\n<p>This function walks the game tree.</p>\n<ul><li><span translate=no>_^_0_^_</span> is the current history <span translate=no>_^_1_^_</span> </li>\n<li><span translate=no>_^_2_^_</span> is the player <span translate=no>_^_3_^_</span> that we are computing regrets of </li>\n<li><a href=\"#HistoryProbability\"><span translate=no>_^_4_^_</span></a> is <span translate=no>_^_5_^_</span> </li>\n<li><a href=\"#HistoryProbability\"><span translate=no>_^_6_^_</span></a> is <span translate=no>_^_7_^_</span></li></ul>\n<p>It returns the expected utility, for the history <span translate=no>_^_8_^_</span> <span translate=no>_^_9_^_</span> where <span translate=no>_^_10_^_</span> is the set of terminal histories with prefix <span translate=no>_^_11_^_</span></p>\n<p>While walking the tee it updates the total regrets <span translate=no>_^_12_^_</span>.</p>\n": "<h3>\u30a6\u30a9\u30fc\u30af\u30c4\u30ea\u30fc</h3>\n<p>\u3053\u306e\u95a2\u6570\u306f\u30b2\u30fc\u30e0\u30c4\u30ea\u30fc\u3092\u6b69\u304d\u56de\u308a\u307e\u3059\u3002</p>\n<ul><li><span translate=no>_^_0_^_</span>\u73fe\u5728\u306e\u5c65\u6b74\u3067\u3059 <span translate=no>_^_1_^_</span></li>\n<li><span translate=no>_^_2_^_</span><span translate=no>_^_3_^_</span>\u5f8c\u6094\u306e\u6c17\u6301\u3061\u3092\u8fbc\u3081\u3066\u8a08\u7b97\u3057\u3066\u3044\u308b\u9078\u624b\u306f</li>\n<li><a href=\"#HistoryProbability\"><span translate=no>_^_4_^_</span></a>\u306f <span translate=no>_^_5_^_</span></li>\n</ul><li><a href=\"#HistoryProbability\"><span translate=no>_^_6_^_</span></a>\u306f <span translate=no>_^_7_^_</span></li>\n<p>\u3053\u306e\u95a2\u6570\u306f\u3001<span translate=no>_^_8_^_</span><span translate=no>_^_9_^_</span><span translate=no>_^_10_^_</span>\u30d7\u30ec\u30d5\u30a3\u30c3\u30af\u30b9\u4ed8\u304d\u306e\u7aef\u672b\u5c65\u6b74\u306e\u96c6\u5408\u3067\u3042\u308b\u5c65\u6b74\u306b\u5bfe\u3057\u3066\u3001\u671f\u5f85\u3069\u304a\u308a\u306e\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u3092\u8fd4\u3057\u307e\u3059\u3002<span translate=no>_^_11_^_</span></p>\n<p>\u30c6\u30a3\u30fc\u3092\u6b69\u3044\u3066\u3044\u308b\u3068\u3001<span translate=no>_^_12_^_</span>\u5f8c\u6094\u306e\u6c17\u6301\u3061\u304c\u5168\u90e8\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3055\u308c\u307e\u3059\u3002</p>\n",
|
||||
"<p> <a id=\"History\"></a></p>\n<h2>History</h2>\n<p>History <span translate=no>_^_0_^_</span> is a sequence of actions including chance events, and <span translate=no>_^_1_^_</span> is the set of all histories.</p>\n<p>This class should be extended with game specific logic.</p>\n": "<p><a id=\"History\"></a></p>\n<h2>\u6b74\u53f2</h2>\n<p><span translate=no>_^_0_^_</span><span translate=no>_^_1_^_</span>\u5c65\u6b74\u306f\u5076\u7136\u306e\u51fa\u6765\u4e8b\u3092\u542b\u3080\u4e00\u9023\u306e\u884c\u52d5\u3067\u3042\u308a\u3001\u3059\u3079\u3066\u306e\u5c65\u6b74\u306e\u96c6\u5408\u3067\u3059\u3002</p>\n<p>\u3053\u306e\u30af\u30e9\u30b9\u306f\u3001\u30b2\u30fc\u30e0\u56fa\u6709\u306e\u30ed\u30b8\u30c3\u30af\u3067\u62e1\u5f35\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002</p>\n",
|
||||
"<p> <a id=\"InfoSet\"></a></p>\n<h2>Information Set <span translate=no>_^_0_^_</span></h2>\n": "<p><a id=\"InfoSet\"></a></p>\n<h2>\u60c5\u5831\u30bb\u30c3\u30c8 <span translate=no>_^_0_^_</span></h2>\n",
|
||||
"<p> <a id=\"terminal_utility\"></a> Utility of player <span translate=no>_^_0_^_</span> for a terminal history. <span translate=no>_^_1_^_</span> where <span translate=no>_^_2_^_</span></p>\n": "<p><a id=\"terminal_utility\"><span translate=no>_^_0_^_</span></a>\u7aef\u672b\u5c65\u6b74\u7528\u306e\u30d7\u30ec\u30fc\u30e4\u30fc\u306e\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u3002<span translate=no>_^_1_^_</span>\u3069\u3053 <span translate=no>_^_2_^_</span></p>\n",
|
||||
"<p> Actions <span translate=no>_^_0_^_</span></p>\n": "<p>\u30a2\u30af\u30b7\u30e7\u30f3 <span translate=no>_^_0_^_</span></p>\n",
|
||||
"<p> Add an action to the history.</p>\n": "<p>\u5c65\u6b74\u306b\u30a2\u30af\u30b7\u30e7\u30f3\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002</p>\n",
|
||||
"<p> Create a new <a href=\"#InfoSet\">information set</a> for the current player</p>\n": "<p><a href=\"#InfoSet\">\u73fe\u5728\u306e\u30d7\u30ec\u30a4\u30e4\u30fc\u306e\u60c5\u5831\u30bb\u30c3\u30c8\u3092\u65b0\u898f\u4f5c\u6210</a></p>\n",
|
||||
"<p> Get <a href=\"#InfoSet\">information set</a> for the current player</p>\n": "<p><a href=\"#InfoSet\">\u73fe\u5728\u306e\u30d7\u30ec\u30a4\u30e4\u30fc\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b\u60c5\u5831\u3092\u53d6\u5f97</a></p>\n",
|
||||
"<p> Get current player, denoted by <span translate=no>_^_0_^_</span>, where <span translate=no>_^_1_^_</span> is known as <strong>Player function</strong>.</p>\n<p>If <span translate=no>_^_2_^_</span> it means that current event is a chance <span translate=no>_^_3_^_</span> event. Something like dealing cards, or opening common cards in poker.</p>\n": "<p>\u73fe\u5728\u306e\u30d7\u30ec\u30fc\u30e4\u30fc\u3092\u53d6\u5f97\u3059\u308b (<span translate=no>_^_1_^_</span>\u3068\u3044\u3046\u6587\u5b57\u3067\u8868\u3055\u308c\u308b<span translate=no>_^_0_^_</span>)\u3002<strong>\u3053\u308c\u3092\u30d7\u30ec\u30fc\u30e4\u30fc\u95a2\u6570\u3068\u547c\u3073\u307e\u3059</strong>\u3002</p>\n<p><span translate=no>_^_3_^_</span>\u73fe\u5728\u306e\u51fa\u6765\u4e8b\u304c\u5076\u7136\u306e\u51fa\u6765\u4e8b\u3067\u3042\u308b\u3053\u3068\u3092\u610f\u5473\u3059\u308b\u5834\u5408<span translate=no>_^_2_^_</span>\u3002\u30ab\u30fc\u30c9\u3092\u914d\u3063\u305f\u308a\u3001\u30dd\u30fc\u30ab\u30fc\u3067\u4e00\u822c\u7684\u306a\u30ab\u30fc\u30c9\u3092\u958b\u3044\u305f\u308a\u3059\u308b\u3088\u3046\u306a\u3082\u306e\u3067\u3059\u3002</p>\n",
|
||||
"<p> Human readable representation</p>\n": "<p>\u4eba\u9593\u304c\u8aad\u3081\u308b\u8868\u73fe</p>\n",
|
||||
"<p> Initialize <strong>CFR</strong> algorithm</p>\n": "<p><strong>CFR</strong> \u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3092\u521d\u671f\u5316</p>\n",
|
||||
"<p> Initialize</p>\n": "<p>[\u521d\u671f\u5316]</p>\n",
|
||||
"<p> Load data from a saved dictionary</p>\n": "<p>\u4fdd\u5b58\u3057\u305f\u30c7\u30a3\u30af\u30b7\u30e7\u30ca\u30ea\u304b\u3089\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u8fbc\u3080</p>\n",
|
||||
"<p> Load information set from a saved dictionary</p>\n": "<p>\u4fdd\u5b58\u3057\u305f\u30c7\u30a3\u30af\u30b7\u30e7\u30ca\u30ea\u304b\u3089\u60c5\u5831\u30bb\u30c3\u30c8\u3092\u8aad\u307f\u8fbc\u3080</p>\n",
|
||||
"<p> Returns the information set <span translate=no>_^_0_^_</span> of the current player for a given history <span translate=no>_^_1_^_</span></p>\n": "<p><span translate=no>_^_0_^_</span>\u7279\u5b9a\u306e\u5c65\u6b74\u306b\u304a\u3051\u308b\u73fe\u5728\u306e\u30d7\u30ec\u30fc\u30e4\u30fc\u306e\u60c5\u5831\u30bb\u30c3\u30c8\u3092\u8fd4\u3057\u307e\u3059 <span translate=no>_^_1_^_</span></p>\n",
|
||||
"<p> Sample a chance when <span translate=no>_^_0_^_</span>.</p>\n": "<p>\u6b21\u306e\u6a5f\u4f1a\u306b\u305c\u3072\u304a\u8a66\u3057\u304f\u3060\u3055\u3044<span translate=no>_^_0_^_</span>.</p>\n",
|
||||
"<p> Save the information set to a dictionary</p>\n": "<p>\u60c5\u5831\u30bb\u30c3\u30c8\u3092\u30c7\u30a3\u30af\u30b7\u30e7\u30ca\u30ea\u306b\u4fdd\u5b58\u3059\u308b</p>\n",
|
||||
"<p> Set tracking indicators</p>\n": "<p>\u30c8\u30e9\u30c3\u30ad\u30f3\u30b0\u30a4\u30f3\u30b8\u30b1\u30fc\u30bf\u30fc\u3092\u8a2d\u5b9a</p>\n",
|
||||
"<p> Track the data from all information sets</p>\n": "<p>\u3059\u3079\u3066\u306e\u60c5\u5831\u30bb\u30c3\u30c8\u306e\u30c7\u30fc\u30bf\u3092\u8ffd\u8de1</p>\n",
|
||||
"<p> Whether it's a terminal history; i.e. game over. <span translate=no>_^_0_^_</span></p>\n": "<p>\u7aef\u672b\u306e\u5c65\u6b74\u3001\u3064\u307e\u308a\u30b2\u30fc\u30e0\u30aa\u30fc\u30d0\u30fc\u304b\u3069\u3046\u304b\u3002<span translate=no>_^_0_^_</span></p>\n",
|
||||
"<p> Whether the next step is a chance step; something like dealing a new card. <span translate=no>_^_0_^_</span></p>\n": "<p>\u6b21\u306e\u30b9\u30c6\u30c3\u30d7\u304c\u30c1\u30e3\u30f3\u30b9\u30b9\u30c6\u30c3\u30d7\u3001\u3064\u307e\u308a\u65b0\u3057\u3044\u30ab\u30fc\u30c9\u3092\u914d\u308b\u3088\u3046\u306a\u3082\u306e\u304b\u3069\u3046\u304b\u3002<span translate=no>_^_0_^_</span></p>\n",
|
||||
"<p><a href=\"https://colab.research.google.com/github/labmlai/annotated_deep_learning_paper_implementations/blob/master/labml_nn/cfr/kuhn/experiment.ipynb\"><span translate=no>_^_0_^_</span></a></p>\n": "<p><a href=\"https://colab.research.google.com/github/labmlai/annotated_deep_learning_paper_implementations/blob/master/labml_nn/cfr/kuhn/experiment.ipynb\"><span translate=no>_^_0_^_</span></a></p>\n",
|
||||
"<p><a href=\"https://twitter.com/labmlai/status/1407186002255380484\"><span translate=no>_^_0_^_</span></a> Twitter thread</p>\n": "<p><a href=\"https://twitter.com/labmlai/status/1407186002255380484\"><span translate=no>_^_0_^_</span></a>\u30c4\u30a4\u30c3\u30bf\u30fc\u30b9\u30ec\u30c3\u30c9</p>\n",
|
||||
"<p><a id=\"CounterfactualRegret\"></a></p>\n": "<p><a id=\"CounterfactualRegret\"></a></p>\n",
|
||||
"<p><a id=\"HistoryProbability\"></a></p>\n": "<p><a id=\"HistoryProbability\"></a></p>\n",
|
||||
"<p><a id=\"MCCFR\"></a></p>\n": "<p><a id=\"MCCFR\"></a></p>\n",
|
||||
"<p><a id=\"NashEquilibrium\"></a></p>\n": "<p><a id=\"NashEquilibrium\"></a></p>\n",
|
||||
"<p><a id=\"RegretMatching\"></a></p>\n": "<p><a id=\"RegretMatching\"></a></p>\n",
|
||||
"<p><a id=\"Strategy\"></a></p>\n": "<p><a id=\"Strategy\"></a></p>\n",
|
||||
"<p><em>Let's dive into the code!</em></p>\n": "<p><em>\u3055\u3063\u305d\u304f\u30b3\u30fc\u30c9\u3092\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\uff01</em></p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> </p>\n": "<p><span translate=no>_^_0_^_</span></p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> is a set of subsets of <span translate=no>_^_1_^_</span> (<span translate=no>_^_2_^_</span>) where we look at only a single block <span translate=no>_^_3_^_</span> in an iteration. Union of all subsets spans <span translate=no>_^_4_^_</span> (<span translate=no>_^_5_^_</span>). <span translate=no>_^_6_^_</span> is the probability of picking block <span translate=no>_^_7_^_</span>.</p>\n": "<p><span translate=no>_^_0_^_</span>\u306f <span translate=no>_^_1_^_</span> (<span translate=no>_^_2_^_</span>) \u306e\u30b5\u30d6\u30bb\u30c3\u30c8\u306e\u96c6\u5408\u3067\u30011 \u56de\u306e\u53cd\u5fa9\u3067 1 <span translate=no>_^_3_^_</span> \u3064\u306e\u30d6\u30ed\u30c3\u30af\u3057\u304b\u898b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3002\u3059\u3079\u3066\u306e\u30b5\u30d6\u30bb\u30c3\u30c8\u306e\u30b9\u30d1\u30f3 <span translate=no>_^_4_^_</span> () <span translate=no>_^_5_^_</span> \u306e\u548c\u96c6\u5408\u3067\u3059\u3002<span translate=no>_^_6_^_</span><span translate=no>_^_7_^_</span>\u30d6\u30ed\u30c3\u30af\u3092\u9078\u3076\u78ba\u7387\u3067\u3059\u3002</p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> is known as the <strong>information partition</strong> of player <span translate=no>_^_1_^_</span>.</p>\n": "<p><span translate=no>_^_0_^_</span><strong>\u30d7\u30ec\u30a4\u30e4\u30fc\u306e\u60c5\u5831\u30d1\u30fc\u30c6\u30a3\u30b7\u30e7\u30f3\u3068\u3057\u3066\u77e5\u3089\u308c\u3066\u3044\u307e\u3059</strong><span translate=no>_^_1_^_</span>\u3002</p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> is strategies of all players except <span translate=no>_^_1_^_</span></p>\n": "<p><span translate=no>_^_0_^_</span>\u3092\u9664\u304f\u3059\u3079\u3066\u306e\u30d7\u30ec\u30a4\u30e4\u30fc\u306e\u6226\u7565\u3067\u3059 <span translate=no>_^_1_^_</span></p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> is the <strong>strategy profile</strong> which consists of strategies of all players <span translate=no>_^_1_^_</span></p>\n": "<p><span translate=no>_^_0_^_</span><strong>\u3059\u3079\u3066\u306e\u30d7\u30ec\u30a4\u30e4\u30fc\u306e\u6226\u7565\u3067\u69cb\u6210\u3055\u308c\u308b\u30b9\u30c8\u30e9\u30c6\u30b8\u30fc\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3067\u3059</strong> <span translate=no>_^_1_^_</span></p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> is the expected utility (payoff) for player <span translate=no>_^_1_^_</span> with strategy profile <span translate=no>_^_2_^_</span>.</p>\n": "<p><span translate=no>_^_0_^_</span><span translate=no>_^_1_^_</span>\u30b9\u30c8\u30e9\u30c6\u30b8\u30fc\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u6301\u3064\u30d7\u30ec\u30a4\u30e4\u30fc\u306b\u671f\u5f85\u3055\u308c\u308b\u52b9\u7528\uff08\u30da\u30a4\u30aa\u30d5\uff09\u3067\u3059\u3002<span translate=no>_^_2_^_</span></p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> is the probability of picking <span translate=no>_^_1_^_</span> in current iteration; i.e. <span translate=no>_^_2_^_</span> - the sum of <span translate=no>_^_3_^_</span> where <span translate=no>_^_4_^_</span>.</p>\n": "<p><span translate=no>_^_0_^_</span><span translate=no>_^_1_^_</span><span translate=no>_^_3_^_</span><span translate=no>_^_4_^_</span>\u306f\u73fe\u5728\u306e\u30a4\u30c6\u30ec\u30fc\u30b7\u30e7\u30f3\u3067\u30d4\u30c3\u30ad\u30f3\u30b0\u3059\u308b\u78ba\u7387\u3001\u3064\u307e\u308a <span translate=no>_^_2_^_</span>-\u306e\u5408\u8a08\u3067\u3059\u3002</p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> is the probability of reaching <span translate=no>_^_1_^_</span> with only player <span translate=no>_^_2_^_</span>'s contribution. That is, <span translate=no>_^_3_^_</span></p>\n": "<p><span translate=no>_^_0_^_</span><span translate=no>_^_1_^_</span><span translate=no>_^_2_^_</span>\u30d7\u30ec\u30a4\u30e4\u30fc\u306e\u8ca2\u732e\u5ea6\u3060\u3051\u3067\u30ea\u30fc\u30c1\u3059\u308b\u78ba\u7387\u3067\u3059\u3002\u3064\u307e\u308a\u3001<span translate=no>_^_3_^_</span></p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> is the probability of reaching the history <span translate=no>_^_1_^_</span> with strategy profile <span translate=no>_^_2_^_</span>. <span translate=no>_^_3_^_</span> is the probability of reaching <span translate=no>_^_4_^_</span> without player <span translate=no>_^_5_^_</span>'s contribution; i.e. player <span translate=no>_^_6_^_</span> took the actions to follow <span translate=no>_^_7_^_</span> with a probability of <span translate=no>_^_8_^_</span>.</p>\n": "<p><span translate=no>_^_0_^_</span><span translate=no>_^_1_^_</span><span translate=no>_^_2_^_</span>\u306f\u30b9\u30c8\u30e9\u30c6\u30b8\u30fc\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3067\u30d2\u30b9\u30c8\u30ea\u30fc\u306b\u5230\u9054\u3059\u308b\u78ba\u7387\u3067\u3059\u3002<span translate=no>_^_3_^_</span>\u306f\u3001<span translate=no>_^_4_^_</span><span translate=no>_^_5_^_</span>\u30d7\u30ec\u30a4\u30e4\u30fc\u306e\u8ca2\u732e\u306a\u3057\u306b\u30ea\u30fc\u30c1\u3059\u308b\u78ba\u7387\u3067\u3059\u3002\u3064\u307e\u308a\u3001<span translate=no>_^_6_^_</span><span translate=no>_^_7_^_</span><span translate=no>_^_8_^_</span>\u30d7\u30ec\u30a4\u30e4\u30fc\u304c\u6b21\u306e\u30a2\u30af\u30b7\u30e7\u30f3\u3092\u5b9f\u884c\u3057\u305f\u78ba\u7387\u3067\u3059\u3002</p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> is the set of all histories that belong to a given information set; i.e. all those histories look the same in the eye of the player.</p>\n": "<p><span translate=no>_^_0_^_</span>\u306f\u3001\u7279\u5b9a\u306e\u60c5\u5831\u30bb\u30c3\u30c8\u306b\u5c5e\u3059\u308b\u3059\u3079\u3066\u306e\u5c65\u6b74\u306e\u96c6\u5408\u3067\u3059\u3002\u3064\u307e\u308a\u3001\u3053\u308c\u3089\u306e\u5c65\u6b74\u306f\u3059\u3079\u3066\u30d7\u30ec\u30a4\u30e4\u30fc\u306e\u76ee\u306b\u306f\u540c\u3058\u3088\u3046\u306b\u898b\u3048\u307e\u3059\u3002</p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> is the set of terminal histories (game over).</p>\n": "<p><span translate=no>_^_0_^_</span>\u7aef\u672b\u5c65\u6b74 (\u30b2\u30fc\u30e0\u30aa\u30fc\u30d0\u30fc) \u306e\u30bb\u30c3\u30c8\u3067\u3059\u3002</p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> set of all information sets. </p>\n": "<p><span translate=no>_^_0_^_</span>\u3059\u3079\u3066\u306e\u60c5\u5831\u30bb\u30c3\u30c8\u306e\u30bb\u30c3\u30c8\u3002</p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> where <span translate=no>_^_1_^_</span></p>\n": "<p><span translate=no>_^_0_^_</span>\u3069\u3053 <span translate=no>_^_1_^_</span></p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span>, the <a href=\"#Strategy\">strategy</a> of player <span translate=no>_^_1_^_</span> </p>\n": "<p><span translate=no>_^_0_^_</span>\u3001<a href=\"#Strategy\">\u30d7\u30ec\u30a4\u30e4\u30fc\u306e\u6226\u7565</a> <span translate=no>_^_1_^_</span></p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span>-Nash equilibrium is,</p>\n": "<p><span translate=no>_^_0_^_</span>-\u30ca\u30c3\u30b7\u30e5\u5747\u8861\u306f\u3001</p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span></p>\n": "<p><span translate=no>_^_0_^_</span></p>\n",
|
||||
"<p><strong>Counterfactual value</strong> <span translate=no>_^_0_^_</span> is the expected utility for player <span translate=no>_^_1_^_</span> if if player <span translate=no>_^_2_^_</span> tried to reach <span translate=no>_^_3_^_</span> (took the actions leading to <span translate=no>_^_4_^_</span> with a probability of <span translate=no>_^_5_^_</span>).</p>\n": "<p><strong><span translate=no>_^_0_^_</span>\u30ab\u30a6\u30f3\u30bf\u30fc\u30d5\u30a1\u30af\u30c1\u30e5\u30a2\u30eb\u30d0\u30ea\u30e5\u30fc\u306f</strong>\u3001<span translate=no>_^_1_^_</span><span translate=no>_^_2_^_</span>\u30d7\u30ec\u30a4\u30e4\u30fc\u304c\u30ea\u30fc\u30c1\u3057\u3088\u3046\u3068\u3057\u305f\u5834\u5408<span translate=no>_^_3_^_</span>\uff08<span translate=no>_^_4_^_</span>\u78ba\u7387\u3067\u305d\u308c\u306b\u7e4b\u304c\u308b\u30a2\u30af\u30b7\u30e7\u30f3\u3092\u53d6\u3063\u305f\uff09\u30d7\u30ec\u30a4\u30e4\u30fc\u306b\u3068\u3063\u3066\u671f\u5f85\u3055\u308c\u308b\u52b9\u7528\u3067\u3059\u3002<span translate=no>_^_5_^_</span></p>\n",
|
||||
"<p><strong>Immediate counterfactual regret</strong> is,</p>\n": "<p><strong>\u5373\u6642\u306e\u53cd\u4e8b\u5b9f\u7684\u5f8c\u6094\u306f</strong>\u3001</p>\n",
|
||||
"<p><strong>Information set</strong> <span translate=no>_^_0_^_</span> for player <span translate=no>_^_1_^_</span> is similar to a history <span translate=no>_^_2_^_</span> but only contains the actions visible to player <span translate=no>_^_3_^_</span>. That is, the history <span translate=no>_^_4_^_</span> will contain actions/events such as cards dealt to the opposing player while <span translate=no>_^_5_^_</span> will not have them.</p>\n": "<p><strong><span translate=no>_^_0_^_</span><span translate=no>_^_1_^_</span><span translate=no>_^_2_^_</span>\u30d7\u30ec\u30fc\u30e4\u30fc\u306b\u8a2d\u5b9a\u3055\u308c\u308b\u60c5\u5831\u306f\u5c65\u6b74\u306b\u4f3c\u3066\u3044\u307e\u3059\u304c</strong>\u3001\u30d7\u30ec\u30fc\u30e4\u30fc\u306b\u8868\u793a\u3055\u308c\u308b\u30a2\u30af\u30b7\u30e7\u30f3\u306e\u307f\u304c\u542b\u307e\u308c\u307e\u3059<span translate=no>_^_3_^_</span>\u3002\u3064\u307e\u308a\u3001<span translate=no>_^_4_^_</span><span translate=no>_^_5_^_</span>\u5c65\u6b74\u306b\u306f\u76f8\u624b\u30d7\u30ec\u30a4\u30e4\u30fc\u306b\u914d\u3089\u308c\u305f\u30ab\u30fc\u30c9\u306a\u3069\u306e\u30a2\u30af\u30b7\u30e7\u30f3/\u30a4\u30d9\u30f3\u30c8\u304c\u542b\u307e\u308c\u307e\u3059\u304c\u3001</p>\u305d\u308c\u3089\u306f\u3042\u308a\u307e\u305b\u3093\u3002\n",
|
||||
"<p><strong>Strategy of player</strong> <span translate=no>_^_0_^_</span>, <span translate=no>_^_1_^_</span> is a distribution over actions <span translate=no>_^_2_^_</span>, where <span translate=no>_^_3_^_</span> is the set of all strategies for player <span translate=no>_^_4_^_</span>. Strategy on <span translate=no>_^_5_^_</span>-th iteration is denoted by <span translate=no>_^_6_^_</span>.</p>\n": "<p><strong><span translate=no>_^_1_^_</span>\u30d7\u30ec\u30a4\u30e4\u30fc\u306e\u30b9\u30c8\u30e9\u30c6\u30b8\u30fc\u3068\u306f</strong><span translate=no>_^_0_^_</span>\u3001\u30a2\u30af\u30b7\u30e7\u30f3\u3092\u5206\u6563\u3055\u305b\u305f\u3082\u306e\u3067\u3059\u3002\u3053\u3053\u3067<span translate=no>_^_2_^_</span>\u3001<span translate=no>_^_3_^_</span><span translate=no>_^_4_^_</span>\u306f\u30d7\u30ec\u30a4\u30e4\u30fc\u306e\u3059\u3079\u3066\u306e\u30b9\u30c8\u30e9\u30c6\u30b8\u30fc\u306e\u30bb\u30c3\u30c8\u3067\u3059\u3002<span translate=no>_^_5_^_</span>-\u56de\u76ee\u306e\u53cd\u5fa9\u306e\u30b9\u30c8\u30e9\u30c6\u30b8\u30fc\u306f\u3067\u8868\u3055\u308c\u307e\u3059</p>\u3002<span translate=no>_^_6_^_</span>\n",
|
||||
"<p>A dictionary for <span translate=no>_^_0_^_</span> set of all information sets </p>\n": "<p><span translate=no>_^_0_^_</span>\u3059\u3079\u3066\u306e\u60c5\u5831\u30bb\u30c3\u30c8\u306e\u30bb\u30c3\u30c8\u7528\u306e\u8f9e\u66f8</p>\n",
|
||||
"<p>A player <span translate=no>_^_0_^_</span> where <span translate=no>_^_1_^_</span> is the set of players </p>\n": "<p><span translate=no>_^_0_^_</span><span translate=no>_^_1_^_</span>\u30d7\u30ec\u30a4\u30e4\u30fc\u306e\u96c6\u5408\u304c\u3069\u3053\u306b\u3044\u308b\u304b</p>\n",
|
||||
"<p>A player is denoted by <span translate=no>_^_0_^_</span>, where <span translate=no>_^_1_^_</span> is the set of players.</p>\n": "<p>\u30d7\u30ec\u30fc\u30e4\u30fc\u306f\u3067\u8868\u3055\u308c\u307e\u3059\u3002\u3053\u3053\u3067<span translate=no>_^_0_^_</span>\u3001<span translate=no>_^_1_^_</span>\u306f\u30d7\u30ec\u30fc\u30e4\u30fc\u306e\u96c6\u5408\u3067\u3059\u3002</p>\n",
|
||||
"<p>Action <span translate=no>_^_0_^_</span>, <span translate=no>_^_1_^_</span> where <span translate=no>_^_2_^_</span> is a non-terminal <a href=\"#History\">history</a> </p>\n": "<p><span translate=no>_^_0_^_</span><a href=\"#History\">\u30a2\u30af\u30b7\u30e7\u30f3 <span translate=no>_^_1_^_</span> (<span translate=no>_^_2_^_</span>\u7aef\u672b\u4ee5\u5916\u306e\u5c65\u6b74\u306f\u8868\u793a)</a></p>\n",
|
||||
"<p>Action <span translate=no>_^_0_^_</span>, <span translate=no>_^_1_^_</span> where <span translate=no>_^_2_^_</span> is a non-terminal <a href=\"#History\">history</a>.</p>\n": "<p><span translate=no>_^_0_^_</span>\u30a2\u30af\u30b7\u30e7\u30f3\u3002<span translate=no>_^_1_^_</span><span translate=no>_^_2_^_</span><a href=\"#History\">\u306f\u7aef\u672b\u4ee5\u5916\u306e\u5c65\u6b74\u3067\u3059</a>\u3002</p>\n",
|
||||
"<p>And use that to update <span translate=no>_^_0_^_</span> and calculate the strategy <span translate=no>_^_1_^_</span> on each iteration. Finally, we calculate the overall average strategy <span translate=no>_^_2_^_</span>.</p>\n": "<p>\u305d\u3057\u3066\u3001<span translate=no>_^_0_^_</span>\u305d\u308c\u3092\u4f7f\u3063\u3066\u5404\u30a4\u30c6\u30ec\u30fc\u30b7\u30e7\u30f3\u306e\u30b9\u30c8\u30e9\u30c6\u30b8\u30fc\u3092\u66f4\u65b0\u3057<span translate=no>_^_1_^_</span>\u3001\u8a08\u7b97\u3057\u307e\u3059\u3002\u6700\u5f8c\u306b\u3001<span translate=no>_^_2_^_</span>\u5168\u4f53\u306e\u5e73\u5747\u6226\u7565\u3092\u8a08\u7b97\u3057\u307e\u3059\u3002</p>\n",
|
||||
"<p>Average overall regret for Player <span translate=no>_^_0_^_</span> is the average regret of not following the optimal strategy in all <span translate=no>_^_1_^_</span> rounds of iterations.</p>\n": "<p><span translate=no>_^_0_^_</span>\u30d7\u30ec\u30a4\u30e4\u30fc\u306e\u5168\u4f53\u7684\u306a\u5f8c\u6094\u306e\u5e73\u5747\u306f\u3001<span translate=no>_^_1_^_</span>\u3059\u3079\u3066\u306e\u30e9\u30a6\u30f3\u30c9\u3067\u6700\u9069\u306a\u6226\u7565\u306b\u5f93\u308f\u306a\u304b\u3063\u305f\u3053\u3068\u306b\u5bfe\u3059\u308b\u5e73\u5747\u7684\u306a\u5f8c\u6094\u3067\u3059\u3002</p>\n",
|
||||
"<p>Computing <span translate=no>_^_0_^_</span> requires expanding the full game tree on each iteration.</p>\n": "<p><span translate=no>_^_0_^_</span>\u30b3\u30f3\u30d4\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u3067\u306f\u3001\u30a4\u30c6\u30ec\u30fc\u30b7\u30e7\u30f3\u306e\u305f\u3073\u306b\u30b2\u30fc\u30e0\u30c4\u30ea\u30fc\u5168\u4f53\u3092\u62e1\u5f35\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002</p>\n",
|
||||
"<p>For two players, Nash equilibrium is a <a href=\"#Strategy\">strategy profile</a> where</p>\n": "<p><a href=\"#Strategy\">2\u4eba\u306e\u30d7\u30ec\u30a4\u30e4\u30fc\u306b\u3068\u3063\u3066\u3001\u30ca\u30c3\u30b7\u30e5\u5747\u8861\u306f\u6b21\u306e\u3088\u3046\u306a\u6226\u7565\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3067\u3059\u3002</a></p>\n",
|
||||
"<p>From the definition of <span translate=no>_^_0_^_</span>, <span translate=no>_^_1_^_</span></p>\n": "<p>\u306e\u5b9a\u7fa9\u304b\u3089<span translate=no>_^_0_^_</span>\u3001<span translate=no>_^_1_^_</span></p>\n",
|
||||
"<p>Get current player's information set for <span translate=no>_^_0_^_</span> </p>\n": "<p>\u73fe\u5728\u306e\u30d7\u30ec\u30a4\u30e4\u30fc\u306e\u60c5\u5831\u8a2d\u5b9a\u3092\u53d6\u5f97 <span translate=no>_^_0_^_</span></p>\n",
|
||||
"<p>Here is a <a href=\"kuhn/index.html\">Kuhn Poker</a> implementation to try CFR on Kuhn Poker.</p>\n": "<p>\u3053\u3053\u3067\u306f\u3001<a href=\"kuhn/index.html\">\u30af\u30fc\u30f3\u30dd\u30fc\u30ab\u30fc\u3067 CFR \u3092\u8a66\u3059\u305f\u3081\u306e\u30af\u30fc\u30f3\u30dd\u30fc\u30ab\u30fc\u306e\u5b9f\u88c5\u3092\u7d39\u4ecb\u3057\u307e\u3059</a>\u3002</p>\n",
|
||||
"<p>History <span translate=no>_^_0_^_</span> is a sequence of actions including chance events, and <span translate=no>_^_1_^_</span> is the set of all histories.</p>\n": "<p><span translate=no>_^_0_^_</span><span translate=no>_^_1_^_</span>\u5c65\u6b74\u306f\u5076\u7136\u306e\u51fa\u6765\u4e8b\u3092\u542b\u3080\u4e00\u9023\u306e\u884c\u52d5\u3067\u3042\u308a\u3001\u3059\u3079\u3066\u306e\u5c65\u6b74\u306e\u96c6\u5408\u3067\u3059\u3002</p>\n",
|
||||
"<p>If <span translate=no>_^_0_^_</span> for all players then <span translate=no>_^_1_^_</span> is a <span translate=no>_^_2_^_</span>-Nash equilibrium.</p>\n": "<p><span translate=no>_^_0_^_</span>\u3059\u3079\u3066\u306e\u30d7\u30ec\u30a4\u30e4\u30fc\u306b\u5f53\u3066\u306f\u307e\u308b\u306a\u3089\u3001<span translate=no>_^_1_^_</span> <span translate=no>_^_2_^_</span>-Nash\u5747\u8861\u3067\u3059\u3002</p>\n",
|
||||
"<p>If <span translate=no>_^_0_^_</span>, </p>\n": "<p>\u3082\u3057<span translate=no>_^_0_^_</span>\u3001</p>\n",
|
||||
"<p>If it's a chance event <span translate=no>_^_0_^_</span> sample a and go to next step. </p>\n": "<p>\u305d\u308c\u304c\u5076\u7136\u306e\u51fa\u6765\u4e8b\u306a\u3089\u3001<span translate=no>_^_0_^_</span> a\u3092\u30b5\u30f3\u30d7\u30eb\u3057\u3066\u6b21\u306e\u30b9\u30c6\u30c3\u30d7\u306b\u9032\u3093\u3067\u304f\u3060\u3055\u3044\u3002</p>\n",
|
||||
"<p>If it's a terminal history <span translate=no>_^_0_^_</span> return the terminal utility <span translate=no>_^_1_^_</span>. </p>\n": "<p>\u7aef\u672b\u5c65\u6b74\u306e\u5834\u5408\u306f\u3001<span translate=no>_^_0_^_</span>\u7aef\u672b\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u3092\u8fd4\u3057\u307e\u3059<span translate=no>_^_1_^_</span>\u3002</p>\n",
|
||||
"<p>If the current player is <span translate=no>_^_0_^_</span>, </p>\n": "<p><span translate=no>_^_0_^_</span>\u73fe\u5728\u306e\u30d7\u30ec\u30fc\u30e4\u30fc\u304c</p>\n",
|
||||
"<p>If the current player is <span translate=no>_^_0_^_</span>, update the cumulative strategies and total regrets </p>\n": "<p>\u73fe\u5728\u306e\u30d7\u30ec\u30a4\u30e4\u30fc\u304c\u305d\u3046\u306a\u3089<span translate=no>_^_0_^_</span>\u3001\u7d2f\u7a4d\u653b\u7565\u6cd5\u3068\u7dcf\u5f8c\u6094\u3092\u66f4\u65b0</p>\n",
|
||||
"<p>Iterate through all actions </p>\n": "<p>\u3059\u3079\u3066\u306e\u30a2\u30af\u30b7\u30e7\u30f3\u3092\u53cd\u5fa9\u51e6\u7406</p>\n",
|
||||
"<p>Loop for <span translate=no>_^_0_^_</span> times </p>\n": "<p><span translate=no>_^_0_^_</span>\u30eb\u30fc\u30d7\u30fb\u30d5\u30a9\u30fc\u30fb\u30bf\u30a4\u30e0\u30ba</p>\n",
|
||||
"<p>Nash equilibrium is a state where none of the players can increase their expected utility (or payoff) by changing their strategy alone.</p>\n": "<p>\u30ca\u30c3\u30b7\u30e5\u5747\u8861\u3068\u306f\u3001\u3069\u306e\u30d7\u30ec\u30a4\u30e4\u30fc\u3082\u6226\u7565\u3092\u5909\u3048\u308b\u3060\u3051\u3067\u671f\u5f85\u3055\u308c\u308b\u52b9\u7528\uff08\u307e\u305f\u306f\u898b\u8fd4\u308a\uff09\u3092\u4e0a\u3052\u308b\u3053\u3068\u304c\u3067\u304d\u306a\u3044\u72b6\u614b\u306e\u3053\u3068\u3067\u3059\u3002</p>\n",
|
||||
"<p>Otherwise, </p>\n": "<p>\u305d\u308c\u4ee5\u5916\u306e\u5834\u5408\u306f\u3001</p>\n",
|
||||
"<p>Print the information sets </p>\n": "<p>\u60c5\u5831\u30bb\u30c3\u30c8\u3092\u5370\u5237</p>\n",
|
||||
"<p>Probability of reaching a information set <span translate=no>_^_0_^_</span> is, <span translate=no>_^_1_^_</span></p>\n": "<p><span translate=no>_^_0_^_</span>\u60c5\u5831\u30bb\u30c3\u30c8\u306b\u5230\u9054\u3059\u308b\u78ba\u7387\u306f\u3001<span translate=no>_^_1_^_</span></p>\n",
|
||||
"<p>Regret is the utility (or pay off) that the player didn't get because she didn't follow the optimal strategy or took the best action.</p>\n": "<p>\u5f8c\u6094\u3068\u306f\u3001\u30d7\u30ec\u30a4\u30e4\u30fc\u304c\u6700\u9069\u306a\u6226\u7565\u306b\u5f93\u308f\u306a\u304b\u3063\u305f\u308a\u3001\u6700\u5584\u306e\u884c\u52d5\u3092\u3068\u3089\u306a\u304b\u3063\u305f\u305f\u3081\u306b\u5f97\u3089\u308c\u306a\u304b\u3063\u305f\u52b9\u7528\uff08\u307e\u305f\u306f\u5831\u916c\uff09\u3067\u3059\u3002</p>\n",
|
||||
"<p>Return the expected utility for player <span translate=no>_^_0_^_</span>, <span translate=no>_^_1_^_</span> </p>\n": "<p><span translate=no>_^_0_^_</span>\u30d7\u30ec\u30a4\u30e4\u30fc\u306b\u671f\u5f85\u901a\u308a\u306e\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u3092\u8fd4\u3057\u3001<span translate=no>_^_1_^_</span></p>\n",
|
||||
"<p>Save checkpoints every <span translate=no>_^_0_^_</span> iterations </p>\n": "<p><span translate=no>_^_0_^_</span>\u53cd\u5fa9\u3054\u3068\u306b\u30c1\u30a7\u30c3\u30af\u30dd\u30a4\u30f3\u30c8\u3092\u4fdd\u5b58</p>\n",
|
||||
"<p>Since <span translate=no>_^_0_^_</span> because it's a zero-sum game, we can add <span translate=no>_^_1_^_</span> and <span translate=no>_^_2_^_</span> and the second term will cancel out.</p>\n": "<p><span translate=no>_^_0_^_</span>\u30bc\u30ed\u30b5\u30e0\u30b2\u30fc\u30e0\u306a\u306e\u3067\u3001<span translate=no>_^_1_^_</span><span translate=no>_^_2_^_</span>\u3068\u3092\u52a0\u7b97\u3059\u308b\u3068\u30012 \u756a\u76ee\u306e\u30bf\u30fc\u30e0\u304c\u30ad\u30e3\u30f3\u30bb\u30eb\u3055\u308c\u307e\u3059\u3002</p>\n",
|
||||
"<p>So we need to minimize <span translate=no>_^_0_^_</span> to get close to a Nash equilibrium.</p>\n": "<p>\u305d\u306e\u305f\u3081\u3001<span translate=no>_^_0_^_</span>\u6700\u5c0f\u5316\u3057\u3066\u30ca\u30c3\u30b7\u30e5\u5747\u8861\u306b\u8fd1\u3065\u3051\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002</p>\n",
|
||||
"<p>Strategy is defined as a probability for taking an action <span translate=no>_^_0_^_</span> in for a given information set <span translate=no>_^_1_^_</span>,</p>\n": "<p>\u30b9\u30c8\u30e9\u30c6\u30b8\u30fc\u3068\u306f\u3001<span translate=no>_^_0_^_</span><span translate=no>_^_1_^_</span>\u4e0e\u3048\u3089\u308c\u305f\u60c5\u5831\u306b\u5bfe\u3057\u3066\u4f55\u3089\u304b\u306e\u30a2\u30af\u30b7\u30e7\u30f3\u3092\u8d77\u3053\u3059\u78ba\u7387\u3068\u3057\u3066\u5b9a\u7fa9\u3055\u308c\u307e\u3059\u3002</p>\n",
|
||||
"<p>That is the mean regret of not playing with the optimal strategy.</p>\n": "<p>\u305d\u308c\u3053\u305d\u304c\u3001\u6700\u9069\u306a\u6226\u7565\u3067\u30d7\u30ec\u30a4\u3057\u306a\u304b\u3063\u305f\u3053\u3068\u306b\u5bfe\u3059\u308b\u3042\u304b\u3089\u3055\u307e\u306a\u5f8c\u6094\u3067\u3059\u3002</p>\n",
|
||||
"<p>The <a href=\"#terminal_utility\">terminal utility</a> is the utility (or pay off) of a player <span translate=no>_^_0_^_</span> for a terminal history <span translate=no>_^_1_^_</span>.</p>\n": "<p><a href=\"#terminal_utility\">\u30bf\u30fc\u30df\u30ca\u30eb\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u306f</a>\u3001<span translate=no>_^_0_^_</span>\u30d7\u30ec\u30a4\u30e4\u30fc\u306e\u30bf\u30fc\u30df\u30ca\u30eb\u5c65\u6b74\u306b\u5bfe\u3059\u308b\u52b9\u7528\uff08\u307e\u305f\u306f\u5831\u916c\uff09<span translate=no>_^_1_^_</span>\u3067\u3059\u3002</p>\n",
|
||||
"<p>The <a href=\"http://martin.zinkevich.org/publications/regretpoker.pdf\">paper</a> proves that (Theorem 3),</p>\n": "<p><a href=\"http://martin.zinkevich.org/publications/regretpoker.pdf\">\u8ad6\u6587\u306f\u305d\u308c\u3092\u8a3c\u660e\u3057\u3066\u3044\u307e\u3059</a>\uff08\u5b9a\u74063\uff09\u3001</p>\n",
|
||||
"<p>The average of utilities over a set of strategies is equal to the utility of the average strategy.</p>\n": "<p>\u4e00\u9023\u306e\u6226\u7565\u306b\u304a\u3051\u308b\u52b9\u7528\u306e\u5e73\u5747\u306f\u3001\u5e73\u5747\u7684\u306a\u6226\u7565\u306e\u52b9\u7528\u3068\u7b49\u3057\u304f\u306a\u308a\u307e\u3059\u3002</p>\n",
|
||||
"<p>The average strategy is the average of strategies followed in each round, for all <span translate=no>_^_0_^_</span></p>\n": "<p>\u5e73\u5747\u6226\u7565\u3068\u306f\u3001\u3059\u3079\u3066\u306e\u30e9\u30a6\u30f3\u30c9\u3067\u5b9f\u65bd\u3057\u305f\u6226\u7565\u306e\u5e73\u5747\u3067\u3059 <span translate=no>_^_0_^_</span></p>\n",
|
||||
"<p>The paper <a href=\"http://martin.zinkevich.org/publications/regretpoker.pdf\">Regret Minimization in Games with Incomplete Information</a> introduces counterfactual regret and how minimizing counterfactual regret through self-play can be used to reach Nash equilibrium. The algorithm is called Counterfactual Regret Minimization (<strong>CFR</strong>).</p>\n": "<p>\u8ad6\u6587\u300c<a href=\"http://martin.zinkevich.org/publications/regretpoker.pdf\">\u60c5\u5831\u304c\u4e0d\u5b8c\u5168\u306a\u30b2\u30fc\u30e0\u306b\u304a\u3051\u308b\u5f8c\u6094\u306e\u6700\u5c0f\u5316\u300d\u3067\u306f\u3001\u53cd\u4e8b\u5b9f\u306b\u57fa\u3065\u304f\u5f8c\u6094\u3068\u3001\u30bb\u30eb\u30d5\u30d7\u30ec\u30a4\u3092\u901a\u3058\u3066\u53cd\u4e8b\u5b9f\u306b\u57fa\u3065\u304f\u5f8c\u6094\u3092\u6700\u5c0f\u9650\u306b\u6291\u3048\u308b\u3053\u3068\u3067\u30ca\u30c3\u30b7\u30e5\u5747\u8861\u3092\u5b9f\u73fe\u3059\u308b\u65b9\u6cd5\u3092\u7d39\u4ecb\u3057\u3066\u3044\u307e\u3059</a>\u3002</p><strong>\u3053\u306e\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306f\u3001\u53cd\u4e8b\u5b9f\u306b\u57fa\u3065\u304f\u5f8c\u6094\u6700\u5c0f\u5316 (CFR) \u3068\u547c\u3070\u308c\u3066\u3044\u307e\u3059\u3002</strong>\n",
|
||||
"<p>The paper <a href=\"http://mlanctot.info/files/papers/nips09mccfr.pdf\">Monte Carlo Sampling for Regret Minimization in Extensive Games</a> introduces Monte Carlo Counterfactual Regret Minimization (<strong>MCCFR</strong>), where we sample from the game tree and estimate the regrets.</p>\n": "<p>\u8ad6\u6587\u300c<a href=\"http://mlanctot.info/files/papers/nips09mccfr.pdf\">\u5927\u898f\u6a21\u30b2\u30fc\u30e0\u306b\u304a\u3051\u308b\u5f8c\u6094\u6700\u5c0f\u5316\u306e\u305f\u3081\u306e\u30e2\u30f3\u30c6\u30ab\u30eb\u30ed\u30b5\u30f3\u30d7\u30ea\u30f3\u30b0\u300d\u3067\u306f\u3001\u30b2\u30fc\u30e0\u30c4\u30ea\u30fc\u304b\u3089\u30b5\u30f3\u30d7\u30ea\u30f3\u30b0\u3057\u3066\u5f8c\u6094\u3092\u63a8\u5b9a\u3059\u308b\u30e2\u30f3\u30c6\u30ab\u30eb\u30ed\u53cd\u4e8b\u5b9f\u7684\u5f8c\u6094\u6700\u5c0f\u5316</a>\uff08<strong>MCCFR</strong>\uff09\u3092\u7d39\u4ecb\u3057\u3066\u3044\u307e\u3059\u3002</p>\n",
|
||||
"<p>The paper <a href=\"http://mlanctot.info/files/papers/nips09mccfr.pdf\">Monte Carlo Sampling for Regret Minimization in Extensive Games</a> shows we can sample from the game tree and estimate the regrets.</p>\n": "<p><a href=\"http://mlanctot.info/files/papers/nips09mccfr.pdf\">\u5927\u898f\u6a21\u30b2\u30fc\u30e0\u306b\u304a\u3051\u308b\u5f8c\u6094\u6700\u5c0f\u5316\u306e\u305f\u3081\u306e\u30e2\u30f3\u30c6\u30ab\u30eb\u30ed\u30b5\u30f3\u30d7\u30ea\u30f3\u30b0\u3068\u3044\u3046\u8ad6\u6587\u306f\u3001\u30b2\u30fc\u30e0\u30c4\u30ea\u30fc\u304b\u3089\u30b5\u30f3\u30d7\u30ea\u30f3\u30b0\u3057\u3066\u5f8c\u6094\u3092\u63a8\u5b9a\u3067\u304d\u308b\u3053\u3068\u3092\u793a\u3057\u3066\u3044\u307e\u3059</a>\u3002</p>\n",
|
||||
"<p>The paper The paper <a href=\"http://martin.zinkevich.org/publications/regretpoker.pdf\">Regret Minimization in Games with Incomplete Information</a> proves that if the strategy is selected according to above equation <span translate=no>_^_0_^_</span> gets smaller proportionate to <span translate=no>_^_1_^_</span>, and therefore reaches <span translate=no>_^_2_^_</span>-<a href=\"#NashEquilibrium\">Nash equilibrium</a>.</p>\n": "<p><a href=\"#NashEquilibrium\">\u8ad6\u6587\u300c<a href=\"http://martin.zinkevich.org/publications/regretpoker.pdf\">\u60c5\u5831\u304c\u4e0d\u5b8c\u5168\u306a\u30b2\u30fc\u30e0\u306b\u304a\u3051\u308b\u5f8c\u6094\u306e\u6700\u5c0f\u5316</a>\u300d\u3068\u3044\u3046\u8ad6\u6587\u306f\u3001\u4e0a\u8a18\u306e\u65b9\u7a0b\u5f0f\u306b\u5f93\u3063\u3066\u6226\u7565\u3092\u9078\u629e\u3057\u305f\u5834\u5408\u3001<span translate=no>_^_0_^_</span>\u30ca\u30c3\u30b7\u30e5\u5747\u8861\u306b\u6bd4\u4f8b\u3057\u3066\u5c0f\u3055\u304f\u306a\u308a\u3001<span translate=no>_^_1_^_</span>\u3057\u305f\u304c\u3063\u3066\u30ca\u30c3\u30b7\u30e5\u5747\u8861\u306b\u9054\u3059\u308b\u3053\u3068\u3092\u8a3c\u660e\u3057\u3066\u3044\u307e\u3059\u3002<span translate=no>_^_2_^_</span></a></p>\n",
|
||||
"<p>The paper shows that</p>\n": "<p>\u8ad6\u6587\u306f\u305d\u308c\u3092\u793a\u3057\u3066\u3044\u307e\u3059</p>\n",
|
||||
"<p>The regret for each information set and action pair <span translate=no>_^_0_^_</span> is maintained,</p>\n": "<p>\u305d\u308c\u305e\u308c\u306e\u60c5\u5831\u30bb\u30c3\u30c8\u3001<span translate=no>_^_0_^_</span>\u30a2\u30af\u30b7\u30e7\u30f3\u30da\u30a2\u306b\u5bfe\u3059\u308b\u5f8c\u6094\u306f\u4fdd\u305f\u308c\u3001</p>\n",
|
||||
"<p>The strategy is calculated using regret matching.</p>\n": "<p>\u30b9\u30c8\u30e9\u30c6\u30b8\u30fc\u306f\u30ea\u30b0\u30ec\u30c3\u30c8\u30de\u30c3\u30c1\u30f3\u30b0\u3092\u4f7f\u7528\u3057\u3066\u8a08\u7b97\u3055\u308c\u307e\u3059\u3002</p>\n",
|
||||
"<p>Then we get <strong>sampled counterfactual value</strong> fro block <span translate=no>_^_0_^_</span>,</p>\n": "<p>\u6b21\u306b\u3001<strong>\u30d6\u30ed\u30c3\u30af\u304b\u3089\u53cd\u4e8b\u5b9f\u5024\u3092\u30b5\u30f3\u30d7\u30ea\u30f3\u30b0\u3057</strong>\u3001<span translate=no>_^_0_^_</span></p>\n",
|
||||
"<p>Then,</p>\n": "<p>\u6b21\u306b\u3001</p>\n",
|
||||
"<p>Therefore we can sample a part of the game tree and calculate the regrets. We calculate an estimate of regrets</p>\n": "<p>\u305d\u306e\u305f\u3081\u3001\u30b2\u30fc\u30e0\u30c4\u30ea\u30fc\u306e\u4e00\u90e8\u3092\u30b5\u30f3\u30d7\u30ea\u30f3\u30b0\u3057\u3066\u5f8c\u6094\u3092\u8a08\u7b97\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u5f8c\u6094\u306e\u63a8\u5b9a\u5024\u3092\u8a08\u7b97\u3057\u307e\u3059</p>\n",
|
||||
"<p>Therefore,</p>\n": "<p>\u3057\u305f\u304c\u3063\u3066\u3001</p>\n",
|
||||
"<p>This is <span translate=no>_^_0_^_</span>-Nash equilibrium. You can similarly prove for games with more than 2 players.</p>\n": "<p>\u3053\u308c\u304c <span translate=no>_^_0_^_</span>-\u30ca\u30c3\u30b7\u30e5\u5747\u8861\u3067\u3059\u3002\u540c\u3058\u3088\u3046\u306b\u30012\u4eba\u4ee5\u4e0a\u3067\u30d7\u30ec\u30a4\u3059\u308b\u30b2\u30fc\u30e0\u3067\u3082\u8a3c\u660e\u3067\u304d\u307e\u3059\u3002</p>\n",
|
||||
"<p>To store <span translate=no>_^_0_^_</span> </p>\n": "<p>\u4fdd\u5b58\u3059\u308b <span translate=no>_^_0_^_</span></p>\n",
|
||||
"<p>To store <span translate=no>_^_0_^_</span> for each action <span translate=no>_^_1_^_</span> </p>\n": "<p><span translate=no>_^_0_^_</span>\u30a2\u30af\u30b7\u30e7\u30f3\u3054\u3068\u306b\u4fdd\u5b58\u3059\u308b\u306b\u306f <span translate=no>_^_1_^_</span></p>\n",
|
||||
"<p>Total regret of not taking each action <span translate=no>_^_0_^_</span>,</p>\n<span translate=no>_^_1_^_</span><p>We maintain <span translate=no>_^_2_^_</span> instead of <span translate=no>_^_3_^_</span> since <span translate=no>_^_4_^_</span> term cancels out anyway when computing strategy <span translate=no>_^_5_^_</span> </p>\n": "<p><span translate=no>_^_0_^_</span>\u305d\u308c\u305e\u308c\u306e\u884c\u52d5\u3092\u3068\u3089\u306a\u304b\u3063\u305f\u3053\u3068\u306b\u5bfe\u3059\u308b\u5b8c\u5168\u306a\u5f8c\u6094\u3001</p>\n<span translate=no>_^_1_^_</span><p><span translate=no>_^_3_^_</span><span translate=no>_^_4_^_</span>\u6226\u7565\u8a08\u7b97\u6642\u306b\u3069\u3046\u305b\u30bf\u30fc\u30e0\u304c\u76f8\u6bba\u3055\u308c\u3066\u3057\u307e\u3046\u306e\u3067\u3001<span translate=no>_^_2_^_</span>\u4ee3\u308f\u308a\u306b\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u3092\u884c\u3044\u307e\u3059\u3002<span translate=no>_^_5_^_</span></p>\n",
|
||||
"<p>Track data for analytics </p>\n": "<p>\u5206\u6790\u7528\u30c8\u30e9\u30c3\u30ad\u30f3\u30b0\u30c7\u30fc\u30bf</p>\n",
|
||||
"<p>Tracker for analytics </p>\n": "<p>\u5206\u6790\u7528\u30c8\u30e9\u30c3\u30ab\u30fc</p>\n",
|
||||
"<p>Unique key identifying the information set </p>\n": "<p>\u60c5\u5831\u30bb\u30c3\u30c8\u3092\u8b58\u5225\u3059\u308b\u30e6\u30cb\u30fc\u30af\u306a\u30ad\u30fc</p>\n",
|
||||
"<p>Update cumulative strategies <span translate=no>_^_0_^_</span> </p>\n": "<p>\u7d2f\u7a4d\u6226\u7565\u306e\u66f4\u65b0 <span translate=no>_^_0_^_</span></p>\n",
|
||||
"<p>Update the strategy <span translate=no>_^_0_^_</span> </p>\n": "<p>\u30b9\u30c8\u30e9\u30c6\u30b8\u30fc\u3092\u66f4\u65b0 <span translate=no>_^_0_^_</span></p>\n",
|
||||
"<p>Walk tree and update regrets for each player </p>\n": "<p>\u30c4\u30ea\u30fc\u3092\u6b69\u304d\u3001\u5404\u30d7\u30ec\u30a4\u30e4\u30fc\u306e\u6094\u3044\u6539\u3081\u3092\u66f4\u65b0</p>\n",
|
||||
"<p>We implement Monte Carlo Counterfactual Regret Minimization (MCCFR) with chance sampling (CS). It iteratively, explores part of the game tree by trying all player actions, but sampling chance events. Chance events are things like dealing cards; they are kept sampled once per iteration. Then it calculates, for each action, the <em>regret</em> of following the current strategy instead of taking that action. Then it updates the strategy based on these regrets for the next iteration, using regret matching. Finally, it computes the average of the strategies throughout the iterations, which is very close to the Nash equilibrium if we ran enough iterations.</p>\n": "<p>\u30e2\u30f3\u30c6\u30ab\u30eb\u30ed\u53cd\u4e8b\u5b9f\u5f8c\u6094\u6700\u5c0f\u5316\uff08MCCFR\uff09\u3068\u30c1\u30e3\u30f3\u30b9\u30b5\u30f3\u30d7\u30ea\u30f3\u30b0\uff08CS\uff09\u3092\u5b9f\u88c5\u3057\u3066\u3044\u307e\u3059\u3002\u30d7\u30ec\u30a4\u30e4\u30fc\u306e\u3059\u3079\u3066\u306e\u30a2\u30af\u30b7\u30e7\u30f3\u3092\u8a66\u3057\u306a\u304c\u3089\u3001\u5076\u7136\u306e\u51fa\u6765\u4e8b\u3092\u30b5\u30f3\u30d7\u30ea\u30f3\u30b0\u3059\u308b\u3053\u3068\u3067\u3001\u30b2\u30fc\u30e0\u30c4\u30ea\u30fc\u306e\u4e00\u90e8\u3092\u63a2\u7d22\u3059\u308b\u53cd\u5fa9\u51e6\u7406\u3092\u884c\u3044\u307e\u3059\u3002\u30c1\u30e3\u30f3\u30b9\u30a4\u30d9\u30f3\u30c8\u306f\u30c7\u30a3\u30fc\u30ea\u30f3\u30b0\u30ab\u30fc\u30c9\u306e\u3088\u3046\u306a\u3082\u306e\u3067\u3001\u30a4\u30c6\u30ec\u30fc\u30b7\u30e7\u30f3\u3054\u3068\u306b1\u56de\u30b5\u30f3\u30d7\u30ea\u30f3\u30b0\u3055\u308c\u307e\u3059\u3002\u6b21\u306b\u3001\u5404\u30a2\u30af\u30b7\u30e7\u30f3\u306b\u3064\u3044\u3066\u3001<em>\u305d\u306e\u30a2\u30af\u30b7\u30e7\u30f3\u3092\u5b9f\u884c\u3059\u308b\u4ee3\u308f\u308a\u306b\u73fe\u5728\u306e\u6226\u7565\u306b\u5f93\u3063\u305f\u5834\u5408\u306e\u5f8c\u6094\u3092\u8a08\u7b97\u3057\u307e\u3059</em>\u3002\u6b21\u306b\u3001\u5f8c\u6094\u30de\u30c3\u30c1\u30f3\u30b0\u3092\u4f7f\u7528\u3057\u3066\u3001\u3053\u308c\u3089\u306e\u5f8c\u6094\u306b\u57fa\u3065\u3044\u3066\u6226\u7565\u3092\u66f4\u65b0\u3057\u3001\u6b21\u306e\u30a4\u30c6\u30ec\u30fc\u30b7\u30e7\u30f3\u306b\u5099\u3048\u307e\u3059\u3002\u6700\u5f8c\u306b\u3001\u53cd\u5fa9\u5168\u4f53\u306e\u6226\u7565\u306e\u5e73\u5747\u3092\u8a08\u7b97\u3057\u307e\u3059\u3002\u3053\u308c\u306f\u3001\u5341\u5206\u306a\u53cd\u5fa9\u3092\u5b9f\u884c\u3057\u305f\u5834\u5408\u3001\u30ca\u30c3\u30b7\u30e5\u5747\u8861\u306b\u975e\u5e38\u306b\u8fd1\u3044\u5024\u306b\u306a\u308a\u307e\u3059</p>\u3002\n",
|
||||
"<p>We maintain the cumulative strategy <span translate=no>_^_0_^_</span> to compute overall average strategy</p>\n<p><span translate=no>_^_1_^_</span> </p>\n": "<p><span translate=no>_^_0_^_</span>\u7d2f\u7a4d\u6226\u7565\u3092\u7dad\u6301\u3057\u3066\u5168\u4f53\u306e\u5e73\u5747\u6226\u7565\u3092\u8a08\u7b97\u3057\u307e\u3059</p>\n<p><span translate=no>_^_1_^_</span></p>\n",
|
||||
"<p>We tried to keep our Python implementation easy-to-understand like a tutorial. We run it on <a href=\"kuhn/index.html\">a very simple imperfect information game called Kuhn poker</a>.</p>\n": "<p>Python\u306e\u5b9f\u88c5\u306f\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u306e\u3088\u3046\u306b\u308f\u304b\u308a\u3084\u3059\u3044\u3082\u306e\u306b\u3057\u3088\u3046\u3068\u3057\u307e\u3057\u305f\u3002<a href=\"kuhn/index.html\">\u79c1\u305f\u3061\u306f\u305d\u308c\u3092\u30af\u30fc\u30f3\u30dd\u30fc\u30ab\u30fc\u3068\u3044\u3046\u975e\u5e38\u306b\u5358\u7d14\u3067\u4e0d\u5b8c\u5168\u306a\u60c5\u5831\u30b2\u30fc\u30e0\u3067\u904b\u55b6\u3057\u3066\u3044\u307e\u3059</a></p>\u3002\n",
|
||||
"<p>We will first introduce the mathematical notation and theory.</p>\n": "<p>\u6700\u521d\u306b\u6570\u5b66\u7684\u8868\u8a18\u6cd5\u3068\u7406\u8ad6\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002</p>\n",
|
||||
"<p>and the strategy is calculated with regret matching,</p>\n": "<p>\u305d\u3057\u3066\u6226\u7565\u306f\u5f8c\u6094\u30de\u30c3\u30c1\u30f3\u30b0\u3067\u8a08\u7b97\u3055\u308c\u307e\u3059</p>\n",
|
||||
"<p>if <span translate=no>_^_0_^_</span>, </p>\n": "<p>\u3082\u3057<span translate=no>_^_0_^_</span>\u3001</p>\n",
|
||||
"<p>is the strategy profile <span translate=no>_^_0_^_</span> with player <span translate=no>_^_1_^_</span>'s strategy replaced with <span translate=no>_^_2_^_</span>.</p>\n": "<p><span translate=no>_^_0_^_</span><span translate=no>_^_1_^_</span><span translate=no>_^_2_^_</span>\u30d7\u30ec\u30a4\u30e4\u30fc\u306e\u30b9\u30c8\u30e9\u30c6\u30b8\u30fc\u304c\u306b\u7f6e\u304d\u63db\u3048\u3089\u308c\u305f\u30b9\u30c8\u30e9\u30c6\u30b8\u30fc\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3067\u3059\u3002</p>\n",
|
||||
"<p>where <span translate=no>_^_0_^_</span> is the set of terminal histories reachable from <span translate=no>_^_1_^_</span>, and <span translate=no>_^_2_^_</span> is the prefix of <span translate=no>_^_3_^_</span> up to <span translate=no>_^_4_^_</span>. <span translate=no>_^_5_^_</span> is the probability of reaching z from <span translate=no>_^_6_^_</span>.</p>\n": "<p>where <span translate=no>_^_0_^_</span> \u306f\u304b\u3089\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\u306a\u7aef\u672b\u5c65\u6b74\u306e\u30bb\u30c3\u30c8\u3067<span translate=no>_^_1_^_</span>\u3001\u306f up to <span translate=no>_^_2_^_</span> \u306e\u30d7\u30ec\u30d5\u30a3\u30c3\u30af\u30b9\u3067\u3059\u3002<span translate=no>_^_3_^_</span> <span translate=no>_^_4_^_</span><span translate=no>_^_5_^_</span>\u306f z <span translate=no>_^_6_^_</span> \u306b\u5230\u9054\u3059\u308b\u78ba\u7387\u3067\u3059\u3002</p>\n",
|
||||
"<p>where <span translate=no>_^_0_^_</span> is the strategy profile <span translate=no>_^_1_^_</span> with the modification of always taking action <span translate=no>_^_2_^_</span> at information set <span translate=no>_^_3_^_</span>.</p>\n": "<p><span translate=no>_^_0_^_</span><span translate=no>_^_1_^_</span><span translate=no>_^_2_^_</span><span translate=no>_^_3_^_</span>\u60c5\u5831\u30bb\u30c3\u30c8\u3067\u5e38\u306b\u30a2\u30af\u30b7\u30e7\u30f3\u3092\u53d6\u308b\u3088\u3046\u306b\u4fee\u6b63\u3057\u305f\u30b9\u30c8\u30e9\u30c6\u30b8\u30fc\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u304c\u3069\u3053\u306b\u3042\u308b\u304b</p>\n",
|
||||
"<p>where <span translate=no>_^_0_^_</span> is the strategy profile of all players in iteration <span translate=no>_^_1_^_</span>, and</p>\n": "<p><span translate=no>_^_1_^_</span>\u30a4\u30c6\u30ec\u30fc\u30b7\u30e7\u30f3\u4e2d\u306e\u5168\u30d7\u30ec\u30a4\u30e4\u30fc\u306e\u30b9\u30c8\u30e9\u30c6\u30b8\u30fc\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3068 <span translate=no>_^_0_^_</span></p>\n",
|
||||
"<p>where <span translate=no>_^_0_^_</span></p>\n": "<p>\u3069\u3053 <span translate=no>_^_0_^_</span></p>\n",
|
||||
"<p>where</p>\n": "<p>\u3069\u3053</p>\n",
|
||||
"<p>with a simple proof.</p>\n": "<p>\u7c21\u5358\u306a\u8a3c\u62e0\u3067\u3002</p>\n",
|
||||
"<span translate=no>_^_0_^_</span>": "<span translate=no>_^_0_^_</span>",
|
||||
"<span translate=no>_^_0_^_</span><p> </p>\n": "<span translate=no>_^_0_^_</span><p></p>\n",
|
||||
"<ul><li><span translate=no>_^_0_^_</span> creates a new empty history </li>\n<li><span translate=no>_^_1_^_</span> is the number of iterations to train on <span translate=no>_^_2_^_</span> </li>\n<li><span translate=no>_^_3_^_</span> is the number of players</li></ul>\n": "<ul><li><span translate=no>_^_0_^_</span>\u65b0\u3057\u3044\u7a7a\u306e\u5c65\u6b74\u3092\u4f5c\u6210\u3057\u307e\u3059</li>\n<li><span translate=no>_^_1_^_</span>\u306f\u30c8\u30ec\u30fc\u30cb\u30f3\u30b0\u3059\u308b\u53cd\u5fa9\u56de\u6570\u3067\u3059 <span translate=no>_^_2_^_</span></li>\n<li><span translate=no>_^_3_^_</span>\u306f\u30d7\u30ec\u30a4\u30e4\u30fc\u306e\u6570</li></ul>\n",
|
||||
"Regret Minimization in Games with Incomplete Information (CFR)": "\u60c5\u5831\u304c\u4e0d\u5b8c\u5168\u306a\u30b2\u30fc\u30e0\u306b\u304a\u3051\u308b\u5f8c\u6094\u6700\u5c0f\u5316 (CFR)",
|
||||
"This is an annotated implementation/tutorial of Regret Minimization in Games with Incomplete Information": "\u3053\u308c\u306f\u3001\u60c5\u5831\u304c\u4e0d\u5b8c\u5168\u306a\u30b2\u30fc\u30e0\u3067\u306e\u5f8c\u6094\u6700\u5c0f\u5316\u306e\u6ce8\u91c8\u4ed8\u304d\u5b9f\u88c5/\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3067\u3059"
|
||||
}
|
||||
@@ -0,0 +1,147 @@
|
||||
{
|
||||
"<h1>Regret Minimization in Games with Incomplete Information (CFR)</h1>\n": "<h1>\u0d85\u0dc3\u0db8\u0dca\u0db4\u0dd6\u0dbb\u0dca\u0dab\u0dad\u0ddc\u0dbb\u0dad\u0dd4\u0dbb\u0dd4 \u0dc3\u0dc4\u0dd2\u0dad \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0dcf \u0dc0\u0dbd \u0d85\u0dc0\u0db8 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4 \u0d9a\u0dbb\u0db1\u0dca\u0db1 (CFR)</h1>\n",
|
||||
"<h2>Calculate strategy</h2>\n<p>Calculate current strategy using <a href=\"#RegretMatching\">regret matching</a>.</p>\n<span translate=no>_^_0_^_</span><p>where <span translate=no>_^_1_^_</span></p>\n": "<h2>\u0d8b\u0db4\u0dcf\u0dba\u0d9c\u0dab\u0db1\u0dba</h2>\n<p><a href=\"#RegretMatching\">\u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4 \u0d9c\u0dd0\u0dbd\u0db4\u0dd3\u0db8</a>\u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf \u0d9a\u0dbb\u0db8\u0dd2\u0db1\u0dca \u0dc0\u0dad\u0dca\u0db8\u0db1\u0dca \u0d8b\u0db4\u0dcf\u0dba \u0d9c\u0dab\u0db1\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1. </p>\n<span translate=no>_^_0_^_</span><p>\u0d9a\u0ddc\u0dc4\u0dda\u0daf <span translate=no>_^_1_^_</span></p>\n",
|
||||
"<h2>Counterfactual Regret Minimization (CFR) Algorithm</h2>\n<p>We do chance sampling (<strong>CS</strong>) where all the chance events (nodes) are sampled and all other events (nodes) are explored.</p>\n<p>We can ignore the term <span translate=no>_^_0_^_</span> since it's the same for all terminal histories since we are doing chance sampling and it cancels out when calculating strategy (common in numerator and denominator).</p>\n": "<h2>\u0db4\u0dca\u0dbb\u0dad\u0dd2\u0dc0\u0dd2\u0dbb\u0dd4\u0daf\u0dca\u0db0\u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4\u0dc0 \u0d85\u0dc0\u0db8 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 (CFR) \u0d87\u0dbd\u0dca\u0d9c\u0ddc\u0dbb\u0dd2\u0dad\u0db8</h2>\n<p>\u0d85\u0db4\u0dd2\u0d85\u0dc4\u0db8\u0dca\u0db6\u0dd9\u0db1\u0dca \u0db1\u0dd2\u0dba\u0dd0\u0daf\u0dd3\u0db8\u0dca (<strong>\u0dc3\u0dd3\u0d91\u0dc3\u0dca</strong>) \u0d9a\u0dbb\u0db1\u0dca\u0db1\u0dd9\u0db8\u0dd4, \u0d91\u0dc4\u0dd2\u0daf\u0dd3 \u0dc3\u0dd2\u0dba\u0dbd\u0dd4 \u0d85\u0dc0\u0dc3\u0dca\u0dae\u0dcf \u0dc3\u0dd2\u0daf\u0dd4\u0dc0\u0dd3\u0db8\u0dca (\u0db1\u0ddd\u0da9\u0dca) \u0db1\u0dd2\u0dba\u0dd0\u0daf\u0dd2 \u0d9a\u0dbb \u0d87\u0dad\u0dd2 \u0d85\u0dad\u0dbb \u0d85\u0db1\u0dd9\u0d9a\u0dca \u0dc3\u0dd2\u0dba\u0dbd\u0dd4\u0db8 \u0dc3\u0dd2\u0daf\u0dd4\u0dc0\u0dd3\u0db8\u0dca (\u0db1\u0ddd\u0da9\u0dca) \u0d9c\u0dc0\u0dda\u0dc2\u0dab\u0dba \u0d9a\u0dbb\u0db1\u0dd4 \u0dbd\u0dd0\u0db6\u0dda. </p>\n<p>\u0d85\u0db4\u0dd2\u0d85\u0dc4\u0db8\u0dca\u0db6\u0dd9\u0db1\u0dca \u0db1\u0dd2\u0dba\u0dd0\u0daf\u0dd3\u0db8\u0dca \u0dc3\u0dd2\u0daf\u0dd4 \u0d9a\u0dbb\u0db1 <span translate=no>_^_0_^_</span> \u0db6\u0dd0\u0dc0\u0dd2\u0db1\u0dca \u0d91\u0dba \u0dc3\u0dd2\u0dba\u0dbd\u0dd4 \u0db4\u0dbb\u0dca\u0dba\u0db1\u0dca\u0dad \u0d89\u0dad\u0dd2\u0dc4\u0dcf\u0dc3\u0dba\u0db1\u0dca \u0dc3\u0db3\u0dc4\u0dcf \u0dc3\u0db8\u0dcf\u0db1 \u0db6\u0dd0\u0dc0\u0dd2\u0db1\u0dca \u0db8\u0dd9\u0db8 \u0db4\u0daf\u0dba \u0db1\u0ddc\u0dc3\u0dbd\u0d9a\u0dcf \u0dc4\u0dd0\u0dbb\u0dd2\u0dba \u0dc4\u0dd0\u0d9a\u0dd2 \u0d85\u0dad\u0dbb \u0d8b\u0db4\u0dcf\u0dba \u0d9c\u0dab\u0db1\u0dba \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dda\u0daf\u0dd3 \u0d91\u0dba \u0d85\u0dc0\u0dbd\u0d82\u0d9c\u0dd4 \u0dc0\u0dda (\u0dc3\u0d82\u0d9b\u0dca\u0dba\u0dcf\u0d82\u0d9a\u0dba \u0dc3\u0dc4 \u0db1\u0dd2\u0dc4\u0dcf\u0d9a\u0dba \u0dad\u0dd4\u0dc5 \u0db4\u0ddc\u0daf\u0dd4). </p>\n",
|
||||
"<h2>Get average strategy</h2>\n<p><span translate=no>_^_0_^_</span></p>\n": "<h2>\u0dc3\u0dcf\u0db8\u0dcf\u0db1\u0dca\u0dba\u0d8b\u0db4\u0dcf\u0dba \u0dbd\u0db6\u0dcf \u0d9c\u0db1\u0dca\u0db1</h2>\n<p><span translate=no>_^_0_^_</span></p>\n",
|
||||
"<h2>Introduction</h2>\n": "<h2>\u0dc4\u0dd0\u0db3\u0dd2\u0db1\u0dca\u0dc0\u0dd3\u0db8</h2>\n",
|
||||
"<h3><a href=\"#History\">History</a></h3>\n": "<h3><a href=\"#History\">\u0d89\u0dad\u0dd2\u0dc4\u0dcf\u0dc3\u0dba</a></h3>\n",
|
||||
"<h3><a href=\"#InfoSet\">Information Set <span translate=no>_^_0_^_</span></a></h3>\n": "<h3><a href=\"#InfoSet\">\u0dad\u0ddc\u0dbb\u0dad\u0dd4\u0dbb\u0dd4 \u0d9a\u0da7\u0dca\u0da7\u0dbd\u0dba <span translate=no>_^_0_^_</span></a></h3>\n",
|
||||
"<h3>Action</h3>\n": "<h3>\u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0dc0</h3>\n",
|
||||
"<h3>Configurable CFR module</h3>\n": "<h3>\u0dc0\u0dd2\u0db1\u0dca\u0dba\u0dcf\u0dc3\u0d9c\u0dad\u0d9a\u0dc5 \u0dc4\u0dd0\u0d9a\u0dd2 CFR \u0db8\u0ddc\u0da9\u0dd2\u0dba\u0dd4\u0dbd\u0dba</h3>\n",
|
||||
"<h3>Counterfactual regret</h3>\n": "<h3>\u0db4\u0dca\u0dbb\u0dad\u0dd2\u0dc0\u0dd2\u0dbb\u0dd4\u0daf\u0dca\u0db0\u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4\u0dc0</h3>\n",
|
||||
"<h3>Information set tracker</h3>\n<p>This is a small helper class to track data from information sets</p>\n": "<h3>\u0dad\u0ddc\u0dbb\u0dad\u0dd4\u0dbb\u0dd4\u0d9a\u0da7\u0dca\u0da7\u0dbd\u0dba\u0d9a\u0dca \u0da7\u0dca\u0dbb\u0dd0\u0d9a\u0dbb\u0dca</h3>\n<p>\u0dad\u0ddc\u0dbb\u0dad\u0dd4\u0dbb\u0dd4\u0d9a\u0da7\u0dca\u0da7\u0dbd \u0dc0\u0dbd\u0dd2\u0db1\u0dca \u0daf\u0dad\u0dca\u0dad \u0dc3\u0ddc\u0dba\u0dcf \u0d9c\u0dd0\u0db1\u0dd3\u0db8 \u0dc3\u0db3\u0dc4\u0dcf \u0db8\u0dd9\u0dba \u0d9a\u0dd4\u0da9\u0dcf \u0d8b\u0db4\u0d9a\u0dcf\u0dbb\u0d9a \u0db4\u0db1\u0dca\u0dad\u0dd2\u0dba\u0d9a\u0dd2</p>\n",
|
||||
"<h3>Iteratively update <span translate=no>_^_0_^_</span></h3>\n<p>This updates the strategies for <span translate=no>_^_1_^_</span> iterations.</p>\n": "<h3>\u0db1\u0dd0\u0dc0\u0dad\u0dba\u0dcf\u0dc0\u0dad\u0dca\u0d9a\u0dcf\u0dbd\u0dd3\u0db1 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 <span translate=no>_^_0_^_</span></h3>\n<p>\u0db8\u0dd9\u0dba <span translate=no>_^_1_^_</span> \u0db4\u0dd4\u0db1\u0dbb\u0dcf\u0dc0\u0dbb\u0dca\u0dad\u0db1 \u0dc3\u0db3\u0dc4\u0dcf \u0d8b\u0db4\u0dcf\u0dba \u0db8\u0dcf\u0dbb\u0dca\u0d9c \u0dba\u0dcf\u0dc0\u0dad\u0dca\u0d9a\u0dcf\u0dbd\u0dd3\u0db1 \u0d9a\u0dbb\u0dba\u0dd2. </p>\n",
|
||||
"<h3>Monte Carlo CFR (MCCFR)</h3>\n": "<h3>\u0db8\u0ddc\u0db1\u0dca\u0da7\u0dda\u0d9a\u0dcf\u0dbd\u0ddd CFR (MCCFR)</h3>\n",
|
||||
"<h3>Nash Equilibrium</h3>\n": "<h3>\u0db1\u0dd0\u0dc2\u0dca\u0dc3\u0db8\u0dad\u0dd4\u0dbd\u0dd2\u0dad\u0dad\u0dcf\u0dc0\u0dba</h3>\n",
|
||||
"<h3>Player</h3>\n": "<h3>\u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf</h3>\n",
|
||||
"<h3>Probability of History</h3>\n": "<h3>\u0d89\u0dad\u0dd2\u0dc4\u0dcf\u0dc3\u0dba\u0dda\u0dc3\u0db8\u0dca\u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf\u0dc0</h3>\n",
|
||||
"<h3>Regret Matching</h3>\n": "<h3>\u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4\u0d9c\u0dd0\u0dbd\u0db4\u0dd3\u0db8</h3>\n",
|
||||
"<h3>Regret Minimization</h3>\n": "<h3>\u0d85\u0dc0\u0db8\u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4</h3>\n",
|
||||
"<h3>Strategy</h3>\n": "<h3>\u0d8b\u0db4\u0dcf\u0dba\u0db8\u0dcf\u0dbb\u0dca\u0d9c\u0dba</h3>\n",
|
||||
"<h3>Utility (Pay off)</h3>\n": "<h3>\u0d8b\u0db4\u0dba\u0ddd\u0d9c\u0dd3\u0dad\u0dcf\u0dc0(\u0d9c\u0dd9\u0dc0\u0db1\u0dca\u0db1)</h3>\n",
|
||||
"<h3>Walk Tree</h3>\n<p>This function walks the game tree.</p>\n<ul><li><span translate=no>_^_0_^_</span> is the current history <span translate=no>_^_1_^_</span> </li>\n<li><span translate=no>_^_2_^_</span> is the player <span translate=no>_^_3_^_</span> that we are computing regrets of </li>\n<li><a href=\"#HistoryProbability\"><span translate=no>_^_4_^_</span></a> is <span translate=no>_^_5_^_</span> </li>\n<li><a href=\"#HistoryProbability\"><span translate=no>_^_6_^_</span></a> is <span translate=no>_^_7_^_</span></li></ul>\n<p>It returns the expected utility, for the history <span translate=no>_^_8_^_</span> <span translate=no>_^_9_^_</span> where <span translate=no>_^_10_^_</span> is the set of terminal histories with prefix <span translate=no>_^_11_^_</span></p>\n<p>While walking the tee it updates the total regrets <span translate=no>_^_12_^_</span>.</p>\n": "<h3>\u0dbb\u0dd4\u0d9a\u0dca\u0d87\u0dc0\u0dd2\u0daf\u0dd2\u0db1\u0dca\u0db1</h3>\n<p>\u0db8\u0dd9\u0db8\u0d9a\u0dcf\u0dbb\u0dca\u0dba\u0dba \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0dcf \u0d9c\u0dc3 \u0d87\u0dc0\u0dd2\u0daf\u0dd2\u0db1\u0dc0\u0dcf. </p>\n<ul><li><span translate=no>_^_0_^_</span> \u0dc0\u0dbb\u0dca\u0dad\u0db8\u0dcf\u0db1 \u0d89\u0dad\u0dd2\u0dc4\u0dcf\u0dc3\u0dba <span translate=no>_^_1_^_</span> </li>\n<li><span translate=no>_^_2_^_</span> \u0d85\u0db4\u0dd2 \u0db4\u0dbb\u0dd2\u0d9c\u0dab\u0d9a \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4 \u0dc0\u0db1 \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf <span translate=no>_^_3_^_</span> \u0dc0\u0dda </li>\n<li><a href=\"#HistoryProbability\"><span translate=no>_^_4_^_</span></a> \u0dc0\u0dda <span translate=no>_^_5_^_</span> </li>\n</ul><li><a href=\"#HistoryProbability\"><span translate=no>_^_6_^_</span></a> \u0dc0\u0dda <span translate=no>_^_7_^_</span></li>\n<p>\u0d91\u0dba\u0d85\u0db4\u0dda\u0d9a\u0dca\u0dc2\u0dd2\u0dad \u0d8b\u0db4\u0dba\u0ddd\u0d9c\u0dd3\u0dad\u0dcf\u0dc0 \u0db1\u0dd0\u0dc0\u0dad \u0dbd\u0db6\u0dcf \u0daf\u0dd9\u0dba\u0dd2, \u0d89\u0dad\u0dd2\u0dc4\u0dcf\u0dc3\u0dba \u0dc3\u0db3\u0dc4\u0dcf \u0d8b\u0db4\u0dc3\u0dbb\u0dca\u0d9c\u0dba \u0dc3\u0dc4\u0dd2\u0dad \u0db4\u0dbb\u0dca\u0dba\u0db1\u0dca\u0dad \u0d89\u0dad\u0dd2\u0dc4\u0dcf\u0dc3 \u0dc3\u0db8\u0dd6\u0dc4\u0dba\u0d9a\u0dca <span translate=no>_^_8_^_</span> <span translate=no>_^_9_^_</span> <span translate=no>_^_10_^_</span> \u0d9a\u0ddc\u0dc4\u0dda\u0daf? <span translate=no>_^_11_^_</span></p>\n<p>\u0da7\u0dd3\u0d87\u0dc0\u0dd2\u0daf\u0dd2\u0db1 \u0d85\u0dad\u0dbb\u0dad\u0dd4\u0dbb \u0d91\u0dba \u0dc3\u0db8\u0dca\u0db4\u0dd6\u0dbb\u0dca\u0dab \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4\u0dc0 \u0dba\u0dcf\u0dc0\u0dad\u0dca\u0d9a\u0dcf\u0dbd\u0dd3\u0db1 \u0d9a\u0dbb\u0dba\u0dd2 <span translate=no>_^_12_^_</span>. </p>\n",
|
||||
"<p> <a id=\"History\"></a></p>\n<h2>History</h2>\n<p>History <span translate=no>_^_0_^_</span> is a sequence of actions including chance events, and <span translate=no>_^_1_^_</span> is the set of all histories.</p>\n<p>This class should be extended with game specific logic.</p>\n": "<p> <a id=\"History\"></a></p>\n<h2>\u0d89\u0dad\u0dd2\u0dc4\u0dcf\u0dc3\u0dba</h2>\n<p>\u0d89\u0dad\u0dd2\u0dc4\u0dcf\u0dc3\u0dba <span translate=no>_^_0_^_</span> \u0dba\u0db1\u0dd4 \u0d87\u0dad\u0dd4\u0dc5\u0dd4 \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf \u0dc0\u0dbd \u0d85\u0db1\u0dd4\u0d9a\u0dca\u0dbb\u0db8\u0dba\u0d9a\u0dd2 \u0d85\u0dc0\u0dc3\u0dca\u0dae\u0dcf\u0dc0\u0d9a\u0dca \u0dc3\u0dd2\u0daf\u0dd4\u0dc0\u0dd3\u0db8\u0dca, <span translate=no>_^_1_^_</span> \u0d91\u0dba \u0dc3\u0dd2\u0dba\u0dbd\u0dd4 \u0d89\u0dad\u0dd2\u0dc4\u0dcf\u0dc3\u0dba\u0db1\u0dca\u0d9c\u0dda \u0dc3\u0db8\u0dd6\u0dc4\u0dba\u0dba\u0dd2. </p>\n<p>\u0db8\u0dd9\u0db8\u0db4\u0db1\u0dca\u0dad\u0dd2\u0dba \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0dcf \u0dc0\u0dd2\u0dc1\u0dda\u0dc2\u0dd2\u0dad \u0dad\u0dbb\u0dca\u0d9a\u0db1\u0dba \u0dc3\u0db8\u0d9f \u0daf\u0dd3\u0dbb\u0dca can \u0d9a\u0dc5 \u0dba\u0dd4\u0dad\u0dd4\u0dba. </p>\n",
|
||||
"<p> <a id=\"InfoSet\"></a></p>\n<h2>Information Set <span translate=no>_^_0_^_</span></h2>\n": "<p> <a id=\"InfoSet\"></a></p>\n<h2>\u0dad\u0ddc\u0dbb\u0dad\u0dd4\u0dbb\u0dd4\u0d9a\u0da7\u0dca\u0da7\u0dbd\u0dba <span translate=no>_^_0_^_</span></h2>\n",
|
||||
"<p> <a id=\"terminal_utility\"></a> Utility of player <span translate=no>_^_0_^_</span> for a terminal history. <span translate=no>_^_1_^_</span> where <span translate=no>_^_2_^_</span></p>\n": "<p> <a id=\"terminal_utility\"></a> \u0db4\u0dbb\u0dca\u0dba\u0db1\u0dca\u0dad \u0d89\u0dad\u0dd2\u0dc4\u0dcf\u0dc3\u0dba\u0d9a\u0dca <span translate=no>_^_0_^_</span> \u0dc3\u0db3\u0dc4\u0dcf \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf\u0d9c\u0dda \u0d8b\u0db4\u0dba\u0ddd\u0d9c\u0dd3\u0dad\u0dcf\u0dc0. <span translate=no>_^_1_^_</span> \u0d9a\u0ddc\u0dc4\u0dda\u0daf <span translate=no>_^_2_^_</span></p>\n",
|
||||
"<p> Actions <span translate=no>_^_0_^_</span></p>\n": "<p> \u0d9a\u0dca\u200d\u0dbb\u0dd2\u0dba\u0dcf <span translate=no>_^_0_^_</span></p>\n",
|
||||
"<p> Add an action to the history.</p>\n": "<p> \u0d89\u0dad\u0dd2\u0dc4\u0dcf\u0dc3\u0dba\u0da7\u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0dc0\u0d9a\u0dca \u0d91\u0d9a\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1. </p>\n",
|
||||
"<p> Create a new <a href=\"#InfoSet\">information set</a> for the current player</p>\n": "<p> \u0dc0\u0dad\u0dca\u0db8\u0db1\u0dca\u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf \u0dc3\u0db3\u0dc4\u0dcf \u0db1\u0dc0 <a href=\"#InfoSet\">\u0dad\u0ddc\u0dbb\u0dad\u0dd4\u0dbb\u0dd4 \u0d9a\u0da7\u0dca\u0da7\u0dbd\u0dba\u0d9a\u0dca</a> \u0dc3\u0dcf\u0daf\u0db1\u0dca\u0db1</p>\n",
|
||||
"<p> Get <a href=\"#InfoSet\">information set</a> for the current player</p>\n": "<p> \u0dc0\u0dad\u0dca\u0db8\u0db1\u0dca\u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf <a href=\"#InfoSet\">\u0dc3\u0db3\u0dc4\u0dcf \u0dad\u0ddc\u0dbb\u0dad\u0dd4\u0dbb\u0dd4</a> \u0dbd\u0db6\u0dcf \u0d9c\u0db1\u0dca\u0db1</p>\n",
|
||||
"<p> Get current player, denoted by <span translate=no>_^_0_^_</span>, where <span translate=no>_^_1_^_</span> is known as <strong>Player function</strong>.</p>\n<p>If <span translate=no>_^_2_^_</span> it means that current event is a chance <span translate=no>_^_3_^_</span> event. Something like dealing cards, or opening common cards in poker.</p>\n": "<p> \u0dc0\u0dad\u0dca\u0db8\u0db1\u0dca\u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf \u0dbd\u0db6\u0dcf \u0d9c\u0db1\u0dca\u0db1, \u0dc0\u0dd2\u0dc3\u0dd2\u0db1\u0dca \u0daf\u0dd0\u0d9a\u0dca\u0dc0\u0dda <span translate=no>_^_0_^_</span>, \u0d91\u0dc4\u0dd2\u0daf\u0dd3 <strong>\u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf \u0d8b\u0dad\u0dca\u0dc3\u0dc0\u0dba</strong>\u0dbd\u0dd9\u0dc3 <span translate=no>_^_1_^_</span> \u0dc4\u0dd0\u0db3\u0dd2\u0db1\u0dca\u0dc0\u0dda. </p>\n<p>\u0dc0\u0dbb\u0dca\u0dad\u0db8\u0dcf\u0db1 <span translate=no>_^_3_^_</span> \u0dc3\u0dd2\u0daf\u0dd4\u0dc0\u0dd3\u0db8 \u0d85\u0dc0\u0dc3\u0dca\u0dae\u0dcf\u0dc0\u0d9a\u0dca \u0d85\u0dc0\u0dc3\u0dca\u0dae\u0dcf\u0dc0\u0d9a\u0dca \u0db6\u0dc0 <span translate=no>_^_2_^_</span> \u0d91\u0dba\u0dd2\u0db1\u0dca \u0d85\u0daf\u0dc4\u0dc3\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1\u0dda \u0db1\u0db8\u0dca. \u0d9a\u0dcf\u0da9\u0dca\u0db4\u0dad\u0dca \u0d9c\u0db1\u0dd4\u0daf\u0dd9\u0db1\u0dd4 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0dc4\u0ddd \u0db4\u0ddd\u0d9a\u0dbb\u0dca \u0dc0\u0dbd \u0db4\u0ddc\u0daf\u0dd4 \u0d9a\u0dcf\u0da9\u0dca\u0db4\u0dad\u0dca \u0dc0\u0dd2\u0dc0\u0dd8\u0dad \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0dc0\u0dd0\u0db1\u0dd2 \u0daf\u0dd9\u0dba\u0d9a\u0dca. </p>\n",
|
||||
"<p> Human readable representation</p>\n": "<p> \u0db8\u0dcf\u0db1\u0dc0\u0d9a\u0dd2\u0dba\u0dc0\u0dd2\u0dba \u0dc4\u0dd0\u0d9a\u0dd2 \u0db1\u0dd2\u0dbb\u0dd6\u0db4\u0dab\u0dba</p>\n",
|
||||
"<p> Initialize <strong>CFR</strong> algorithm</p>\n": "<p> <strong>CFR</strong> \u0d87\u0dbd\u0dca\u0d9c\u0ddc\u0dbb\u0dd2\u0dad\u0db8 \u0d86\u0dbb\u0db8\u0dca\u0db7 \u0d9a\u0dbb\u0db1\u0dca\u0db1</p>\n",
|
||||
"<p> Initialize</p>\n": "<p> \u0d86\u0dbb\u0db8\u0dca\u0db7\u0d9a\u0dbb\u0db1\u0dca\u0db1</p>\n",
|
||||
"<p> Load data from a saved dictionary</p>\n": "<p> \u0dc3\u0dd4\u0dbb\u0d9a\u0dd2\u0db1\u0dbd\u0daf \u0dc1\u0db6\u0dca\u0daf\u0d9a\u0ddd\u0dc2\u0dba\u0d9a\u0dd2\u0db1\u0dca \u0daf\u0dad\u0dca\u0dad \u0db4\u0dd6\u0dbb\u0dab\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1</p>\n",
|
||||
"<p> Load information set from a saved dictionary</p>\n": "<p> \u0dc3\u0dd4\u0dbb\u0d9a\u0dd2\u0db1\u0dbd\u0daf \u0dc1\u0db6\u0dca\u0daf\u0d9a\u0ddd\u0dc2\u0dba\u0d9a\u0dd2\u0db1\u0dca \u0dad\u0ddc\u0dbb\u0dad\u0dd4\u0dbb\u0dd4 \u0d9a\u0da7\u0dca\u0da7\u0dbd\u0dba \u0db4\u0dd6\u0dbb\u0dab\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1</p>\n",
|
||||
"<p> Returns the information set <span translate=no>_^_0_^_</span> of the current player for a given history <span translate=no>_^_1_^_</span></p>\n": "<p> \u0daf\u0dd3\u0d87\u0dad\u0dd2 \u0d89\u0dad\u0dd2\u0dc4\u0dcf\u0dc3\u0dba\u0d9a\u0dca \u0dc3\u0db3\u0dc4\u0dcf \u0dc0\u0dbb\u0dca\u0dad\u0db8\u0dcf\u0db1 \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf\u0d9c\u0dda \u0dad\u0ddc\u0dbb\u0dad\u0dd4\u0dbb\u0dd4 \u0d9a\u0da7\u0dca\u0da7\u0dbd\u0dba <span translate=no>_^_0_^_</span> \u0db1\u0dd0\u0dc0\u0dad \u0dbd\u0db6\u0dcf \u0daf\u0dd9\u0dba\u0dd2 <span translate=no>_^_1_^_</span></p>\n",
|
||||
"<p> Sample a chance when <span translate=no>_^_0_^_</span>.</p>\n": "<p> \u0d9a\u0dc0\u0daf\u0dcf\u0daf\u0d85\u0dc0\u0dc3\u0dca\u0dae\u0dcf\u0dc0\u0d9a\u0dca \u0dc3\u0dcf\u0db8\u0dca\u0db4\u0dbd\u0dba <span translate=no>_^_0_^_</span>. </p>\n",
|
||||
"<p> Save the information set to a dictionary</p>\n": "<p> \u0dc1\u0db6\u0dca\u0daf\u0d9a\u0ddd\u0dc2\u0dba\u0d9a\u0da7 \u0dc3\u0d9a\u0dc3\u0dcf \u0d87\u0dad\u0dd2 \u0dad\u0ddc\u0dbb\u0dad\u0dd4\u0dbb\u0dd4 \u0dc3\u0dd4\u0dbb\u0d9a\u0dd2\u0db1\u0dca\u0db1</p>\n",
|
||||
"<p> Set tracking indicators</p>\n": "<p> \u0dc3\u0ddc\u0dba\u0dcf\u0d9c\u0dd0\u0db1\u0dd3\u0dd9\u0db8\u0dca \u0daf\u0dbb\u0dca\u0dc1\u0d9a</p>\n",
|
||||
"<p> Track the data from all information sets</p>\n": "<p> \u0dc3\u0dd2\u0dba\u0dbd\u0dd4\u0db8\u0dad\u0ddc\u0dbb\u0dad\u0dd4\u0dbb\u0dd4 \u0d9a\u0da7\u0dca\u0da7\u0dbd \u0dc0\u0dbd\u0dd2\u0db1\u0dca \u0daf\u0dad\u0dca\u0dad \u0db1\u0dd2\u0dbb\u0dd3\u0d9a\u0dca\u0dc2\u0dab\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1</p>\n",
|
||||
"<p> Whether it's a terminal history; i.e. game over. <span translate=no>_^_0_^_</span></p>\n": "<p> \u0d91\u0dba\u0db4\u0dbb\u0dca\u0dba\u0db1\u0dca\u0dad \u0d89\u0dad\u0dd2\u0dc4\u0dcf\u0dc3\u0dba\u0d9a\u0dca \u0dc0\u0dda\u0dc0\u0dcf; \u0d91\u0db1\u0db8\u0dca \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0dcf\u0dc0 \u0d85\u0dc0\u0dc3\u0db1\u0dca. <span translate=no>_^_0_^_</span></p>\n",
|
||||
"<p> Whether the next step is a chance step; something like dealing a new card. <span translate=no>_^_0_^_</span></p>\n": "<p> \u0d8a\u0dc5\u0d9f\u0db4\u0dd2\u0dba\u0dc0\u0dbb \u0d85\u0dc4\u0db8\u0dca\u0db6\u0dd9\u0db1\u0dca \u0db4\u0dd2\u0dba\u0dc0\u0dbb\u0d9a\u0dca \u0dc0\u0dda\u0dc0\u0dcf; \u0db1\u0dc0 \u0d9a\u0dcf\u0da9\u0dca\u0db4\u0dad\u0d9a\u0dca \u0d9c\u0db1\u0dd4\u0daf\u0dd9\u0db1\u0dd4 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0dc0\u0dd0\u0db1\u0dd2 \u0daf\u0dd9\u0dba\u0d9a\u0dca. <span translate=no>_^_0_^_</span></p>\n",
|
||||
"<p><a href=\"https://colab.research.google.com/github/labmlai/annotated_deep_learning_paper_implementations/blob/master/labml_nn/cfr/kuhn/experiment.ipynb\"><span translate=no>_^_0_^_</span></a></p>\n": "<p><a href=\"https://colab.research.google.com/github/labmlai/annotated_deep_learning_paper_implementations/blob/master/labml_nn/cfr/kuhn/experiment.ipynb\"><span translate=no>_^_0_^_</span></a></p>\n",
|
||||
"<p><a href=\"https://twitter.com/labmlai/status/1407186002255380484\"><span translate=no>_^_0_^_</span></a> Twitter thread</p>\n": "<p><a href=\"https://twitter.com/labmlai/status/1407186002255380484\"><span translate=no>_^_0_^_</span></a> \u0da7\u0dca\u0dc0\u0dd2\u0da7\u0dbb\u0dca \u0db1\u0dd6\u0dbd\u0dca</p>\n",
|
||||
"<p><a id=\"CounterfactualRegret\"></a></p>\n": "<p><a id=\"CounterfactualRegret\"></a></p>\n",
|
||||
"<p><a id=\"HistoryProbability\"></a></p>\n": "<p><a id=\"HistoryProbability\"></a></p>\n",
|
||||
"<p><a id=\"MCCFR\"></a></p>\n": "<p><a id=\"MCCFR\"></a></p>\n",
|
||||
"<p><a id=\"NashEquilibrium\"></a></p>\n": "<p><a id=\"NashEquilibrium\"></a></p>\n",
|
||||
"<p><a id=\"RegretMatching\"></a></p>\n": "<p><a id=\"RegretMatching\"></a></p>\n",
|
||||
"<p><a id=\"Strategy\"></a></p>\n": "<p><a id=\"Strategy\"></a></p>\n",
|
||||
"<p><em>Let's dive into the code!</em></p>\n": "\u0d85\u0db4\u0dd2<p><em>\u0d9a\u0dda\u0dad\u0dba\u0da7 \u0d9a\u0dd2\u0db8\u0dd2\u0daf\u0dd9\u0db8\u0dd4! </em></p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> </p>\n": "<p><span translate=no>_^_0_^_</span> </p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> is a set of subsets of <span translate=no>_^_1_^_</span> (<span translate=no>_^_2_^_</span>) where we look at only a single block <span translate=no>_^_3_^_</span> in an iteration. Union of all subsets spans <span translate=no>_^_4_^_</span> (<span translate=no>_^_5_^_</span>). <span translate=no>_^_6_^_</span> is the probability of picking block <span translate=no>_^_7_^_</span>.</p>\n": "<p><span translate=no>_^_0_^_</span> \u0dba\u0db1\u0dd4 \u0d8b\u0db4 \u0d9a\u0da7\u0dca\u0da7\u0dbd \u0dc3\u0db8\u0dd6\u0dc4\u0dba\u0d9a\u0dd2 <span translate=no>_^_1_^_</span> (<span translate=no>_^_2_^_</span>) \u0d91\u0dc4\u0dd2\u0daf\u0dd3 \u0d85\u0db4\u0dd2 \u0db4\u0dd4\u0db1\u0dbb\u0dcf\u0dc0\u0dbb\u0dca\u0dad\u0db1\u0dba\u0d9a \u0dad\u0db1\u0dd2 \u0db6\u0dca\u0dbd\u0ddc\u0d9a\u0dca <span translate=no>_^_3_^_</span> \u0d91\u0d9a\u0d9a\u0dca \u0db4\u0db8\u0dab\u0d9a\u0dca \u0daf\u0dd9\u0dc3 \u0db6\u0dbd\u0db8\u0dd4. \u0dc3\u0dd2\u0dba\u0dbd\u0dd4\u0db8 \u0d8b\u0db4 \u0d9a\u0dd4\u0dbd\u0dc0\u0dbd \u0dc3\u0d82\u0d9c\u0db8\u0dba \u0dc0\u0dd2\u0dc4\u0dd2\u0daf\u0dda <span translate=no>_^_4_^_</span> (<span translate=no>_^_5_^_</span>). <span translate=no>_^_6_^_</span> \u0db6\u0dca\u0dbd\u0ddc\u0d9a\u0dca \u0dad\u0ddd\u0dbb\u0dcf \u0d9c\u0dd0\u0db1\u0dd3\u0db8\u0dda \u0dc3\u0db8\u0dca\u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf\u0dc0 <span translate=no>_^_7_^_</span>. </p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> is known as the <strong>information partition</strong> of player <span translate=no>_^_1_^_</span>.</p>\n": "<p><span translate=no>_^_0_^_</span> \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf\u0d9c\u0dda <strong>\u0dad\u0ddc\u0dbb\u0dad\u0dd4\u0dbb\u0dd4 \u0d9a\u0ddc\u0da7\u0dc3</strong> \u0dbd\u0dd9\u0dc3 \u0dc4\u0dd0\u0db3\u0dd2\u0db1\u0dca\u0dc0\u0dda <span translate=no>_^_1_^_</span>. </p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> is strategies of all players except <span translate=no>_^_1_^_</span></p>\n": "<p><span translate=no>_^_0_^_</span> \u0dc4\u0dd0\u0dbb \u0dc3\u0dd2\u0dba\u0dbd\u0dd4\u0db8 \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0db1\u0dca\u0d9c\u0dda \u0d8b\u0db4\u0dcf\u0dba \u0db8\u0dcf\u0dbb\u0dca\u0d9c \u0dc0\u0dda <span translate=no>_^_1_^_</span></p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> is the <strong>strategy profile</strong> which consists of strategies of all players <span translate=no>_^_1_^_</span></p>\n": "<p><span translate=no>_^_0_^_</span> \u0dc3\u0dd2\u0dba\u0dbd\u0dd4\u0db8 \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0db1\u0dca\u0d9c\u0dda <strong>\u0d8b\u0db4\u0dcf\u0dba \u0db8\u0dcf\u0dbb\u0dca\u0d9c \u0dc0\u0dbd\u0dd2\u0db1\u0dca \u0dc3\u0db8\u0db1\u0dca\u0dc0\u0dd2\u0dad \u0d8b\u0db4\u0dcf\u0dba \u0db8\u0dcf\u0dbb\u0dca\u0d9c \u0db4\u0dd0\u0dad\u0dd2\u0d9a\u0da9\u0dba\u0dd2</strong> <span translate=no>_^_1_^_</span></p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> is the expected utility (payoff) for player <span translate=no>_^_1_^_</span> with strategy profile <span translate=no>_^_2_^_</span>.</p>\n": "<p><span translate=no>_^_0_^_</span> \u0d8b\u0db4\u0dcf\u0dba \u0db8\u0dcf\u0dbb\u0dca\u0d9c \u0db4\u0dd0\u0dad\u0dd2\u0d9a\u0da9 <span translate=no>_^_1_^_</span> \u0dc3\u0dc4\u0dd2\u0dad \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf \u0dc3\u0db3\u0dc4\u0dcf \u0d85\u0db4\u0dda\u0d9a\u0dca\u0dc2\u0dd2\u0dad \u0d8b\u0db4\u0dba\u0ddd\u0d9c\u0dd3\u0dad\u0dcf\u0dc0 (\u0d9c\u0dd9\u0dc0\u0dd3\u0db8\u0dca) <span translate=no>_^_2_^_</span>\u0dc0\u0dda. </p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> is the probability of picking <span translate=no>_^_1_^_</span> in current iteration; i.e. <span translate=no>_^_2_^_</span> - the sum of <span translate=no>_^_3_^_</span> where <span translate=no>_^_4_^_</span>.</p>\n": "<p><span translate=no>_^_0_^_</span> \u0dc0\u0dad\u0dca\u0db8\u0db1\u0dca \u0db4\u0dd4\u0db1\u0dbb\u0dcf\u0dc0\u0dbb\u0dca\u0dad\u0db1\u0dba\u0dda <span translate=no>_^_1_^_</span> \u0daf\u0dd3 \u0dad\u0ddd\u0dbb\u0dcf \u0d9c\u0dd0\u0db1\u0dd3\u0db8\u0dda \u0dc3\u0db8\u0dca\u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf\u0dc0; i.e. <span translate=no>_^_2_^_</span> - <span translate=no>_^_3_^_</span> \u0d9a\u0ddc\u0dad\u0dd0\u0db1\u0daf \u0d91\u0d9a\u0dad\u0dd4\u0dc0 <span translate=no>_^_4_^_</span>. </p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> is the probability of reaching <span translate=no>_^_1_^_</span> with only player <span translate=no>_^_2_^_</span>'s contribution. That is, <span translate=no>_^_3_^_</span></p>\n": "<p><span translate=no>_^_0_^_</span> \u0db4\u0db8\u0dab\u0d9a\u0dca \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf <span translate=no>_^_2_^_</span>\u0daf\u0dcf\u0dba\u0d9a\u0dad\u0dca\u0dc0\u0dba <span translate=no>_^_1_^_</span> \u0dc3\u0db8\u0d9c \u0dc5\u0d9f\u0dcf \u0dc0\u0dd3\u0db8\u0dda \u0dc3\u0db8\u0dca\u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf\u0dc0 \u0dc0\u0dda. \u0d91\u0db1\u0db8\u0dca, <span translate=no>_^_3_^_</span></p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> is the probability of reaching the history <span translate=no>_^_1_^_</span> with strategy profile <span translate=no>_^_2_^_</span>. <span translate=no>_^_3_^_</span> is the probability of reaching <span translate=no>_^_4_^_</span> without player <span translate=no>_^_5_^_</span>'s contribution; i.e. player <span translate=no>_^_6_^_</span> took the actions to follow <span translate=no>_^_7_^_</span> with a probability of <span translate=no>_^_8_^_</span>.</p>\n": "<p><span translate=no>_^_0_^_</span> \u0d8b\u0db4\u0dcf\u0dba \u0db8\u0dcf\u0dbb\u0dca\u0d9c \u0db4\u0dd0\u0dad\u0dd2\u0d9a\u0da9 <span translate=no>_^_1_^_</span> \u0dc3\u0db8\u0d9f \u0d89\u0dad\u0dd2\u0dc4\u0dcf\u0dc3\u0dba \u0d9a\u0dbb\u0dcf \u0dc5\u0d9f\u0dcf \u0dc0\u0dd3\u0db8\u0dda \u0dc3\u0db8\u0dca\u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf\u0dc0 <span translate=no>_^_2_^_</span>\u0dc0\u0dda. <span translate=no>_^_3_^_</span> <span translate=no>_^_5_^_</span>\u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf\u0d9c\u0dda \u0daf\u0dcf\u0dba\u0d9a\u0dad\u0dca\u0dc0\u0dba <span translate=no>_^_4_^_</span> \u0db1\u0ddc\u0db8\u0dd0\u0dad\u0dd2\u0dc0 \u0dc5\u0d9f\u0dcf \u0dc0\u0dd3\u0db8\u0dda \u0dc3\u0db8\u0dca\u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf\u0dc0; \u0d91\u0db1\u0db8\u0dca <span translate=no>_^_6_^_</span> \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf \u0d85\u0db1\u0dd4\u0d9c\u0db8\u0db1\u0dba \u0d9a\u0dc5 \u0dba\u0dd4\u0dad\u0dd4 \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0db8\u0dcf\u0dbb\u0dca\u0d9c <span translate=no>_^_7_^_</span> \u0dc3\u0db8\u0dca\u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf\u0dc0\u0d9a\u0dca \u0dc3\u0db8\u0d9f <span translate=no>_^_8_^_</span>. </p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> is the set of all histories that belong to a given information set; i.e. all those histories look the same in the eye of the player.</p>\n": "<p><span translate=no>_^_0_^_</span> \u0dba\u0db1\u0dd4 \u0dbd\u0db6\u0dcf \u0daf\u0dd3 \u0d87\u0dad\u0dd2 \u0dad\u0ddc\u0dbb\u0dad\u0dd4\u0dbb\u0dd4 \u0d9a\u0da7\u0dca\u0da7\u0dbd\u0dba\u0d9a\u0da7 \u0d85\u0dba\u0dad\u0dca \u0dc3\u0dd2\u0dba\u0dbd\u0dd4 \u0d89\u0dad\u0dd2\u0dc4\u0dcf\u0dc3 \u0dc3\u0db8\u0dd6\u0dc4\u0dba\u0dba\u0dd2; \u0d91\u0db1\u0db8\u0dca \u0d91\u0db8 \u0dc3\u0dd2\u0dba\u0dbd\u0dd4 \u0d89\u0dad\u0dd2\u0dc4\u0dcf\u0dc3\u0dba\u0db1\u0dca \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf\u0d9c\u0dda \u0d87\u0dc3\u0da7 \u0dc3\u0db8\u0dcf\u0db1 \u0dc0\u0dda. </p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> is the set of terminal histories (game over).</p>\n": "<p><span translate=no>_^_0_^_</span> \u0dba\u0db1\u0dd4 \u0db4\u0dbb\u0dca\u0dba\u0db1\u0dca\u0dad \u0d89\u0dad\u0dd2\u0dc4\u0dcf\u0dc3 \u0dc3\u0db8\u0dd6\u0dc4\u0dba\u0dba\u0dd2 (\u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0dcf\u0dc0 \u0d85\u0dc0\u0dc3\u0db1\u0dca). </p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> set of all information sets. </p>\n": "<p><span translate=no>_^_0_^_</span> \u0dc3\u0dd2\u0dba\u0dbd\u0dd4 \u0dad\u0ddc\u0dbb\u0dad\u0dd4\u0dbb\u0dd4 \u0d9a\u0da7\u0dca\u0da7\u0dbd \u0d9a\u0da7\u0dca\u0da7\u0dbd\u0dba\u0d9a\u0dca. </p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> where <span translate=no>_^_1_^_</span></p>\n": "<p><span translate=no>_^_0_^_</span> \u0d9a\u0ddc\u0dc4\u0dda\u0daf <span translate=no>_^_1_^_</span></p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span>, the <a href=\"#Strategy\">strategy</a> of player <span translate=no>_^_1_^_</span> </p>\n": "<p><span translate=no>_^_0_^_</span>, \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf\u0d9c\u0dda <a href=\"#Strategy\">\u0d8b\u0db4\u0dcf\u0dba</a> <span translate=no>_^_1_^_</span> </p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span>-Nash equilibrium is,</p>\n": "<p><span translate=no>_^_0_^_</span>-\u0db1\u0dd0\u0dc2\u0dca \u0dc3\u0db8\u0dad\u0dd4\u0dbd\u0dd2\u0dad\u0dad\u0dcf\u0dc0\u0dba,</p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span></p>\n": "<p><span translate=no>_^_0_^_</span></p>\n",
|
||||
"<p><strong>Counterfactual value</strong> <span translate=no>_^_0_^_</span> is the expected utility for player <span translate=no>_^_1_^_</span> if if player <span translate=no>_^_2_^_</span> tried to reach <span translate=no>_^_3_^_</span> (took the actions leading to <span translate=no>_^_4_^_</span> with a probability of <span translate=no>_^_5_^_</span>).</p>\n": "<p><strong>Counterfactual\u0d85\u0d9c\u0dba</strong> <span translate=no>_^_0_^_</span> \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf \u0dc5\u0d9f\u0dcf \u0dc0\u0dd3\u0db8\u0da7 <span translate=no>_^_2_^_</span> \u0d8b\u0dad\u0dca\u0dc3\u0dcf\u0dc4 <span translate=no>_^_1_^_</span> \u0db1\u0db8\u0dca \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf \u0dc3\u0db3\u0dc4\u0dcf \u0d85\u0db4\u0dda\u0d9a\u0dca\u0dc2\u0dd2\u0dad \u0d8b\u0db4\u0dba\u0ddd\u0d9c\u0dd3\u0dad\u0dcf\u0dc0 <span translate=no>_^_3_^_</span> (\u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf \u0d9c\u0dd9\u0db1 \u0d9a \u0dc3\u0db8\u0dca\u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf\u0dc0 <span translate=no>_^_4_^_</span> \u0dc3\u0db8\u0d9c \u0db4\u0dca\u0dbb\u0db8\u0dd4\u0d9b <span translate=no>_^_5_^_</span>). </p>\n",
|
||||
"<p><strong>Immediate counterfactual regret</strong> is,</p>\n": "<p><strong>\u0d9a\u0dca\u0dc2\u0dab\u0dd2\u0d9a\u0db4\u0dca\u0dbb\u0dad\u0dd2\u0dc0\u0dd2\u0dbb\u0dd4\u0daf\u0dca\u0db0 \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4\u0dc0</strong> \u0db1\u0db8\u0dca,</p>\n",
|
||||
"<p><strong>Information set</strong> <span translate=no>_^_0_^_</span> for player <span translate=no>_^_1_^_</span> is similar to a history <span translate=no>_^_2_^_</span> but only contains the actions visible to player <span translate=no>_^_3_^_</span>. That is, the history <span translate=no>_^_4_^_</span> will contain actions/events such as cards dealt to the opposing player while <span translate=no>_^_5_^_</span> will not have them.</p>\n": "<p>\u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf <span translate=no>_^_0_^_</span> \u0dc3\u0db3\u0dc4\u0dcf<strong>\u0dc3\u0d9a\u0dc3\u0dcf \u0d87\u0dad\u0dd2 \u0dad\u0ddc\u0dbb\u0dad\u0dd4\u0dbb\u0dd4</strong> \u0d89\u0dad\u0dd2\u0dc4\u0dcf\u0dc3\u0dba\u0d9a\u0da7 \u0dc3\u0db8\u0dcf\u0db1 <span translate=no>_^_1_^_</span> \u0dc0\u0db1 <span translate=no>_^_2_^_</span> \u0db1\u0db8\u0dd4\u0dad\u0dca \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf\u0da7 \u0db4\u0dd9\u0db1\u0dd9\u0db1 \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0dc0\u0db1\u0dca \u0db4\u0db8\u0dab\u0d9a\u0dca \u0d85\u0da9\u0d82\u0d9c\u0dd4 \u0dc0\u0dda <span translate=no>_^_3_^_</span>. \u0d91\u0db1\u0db8\u0dca, \u0d89\u0dad\u0dd2\u0dc4\u0dcf\u0dc3\u0dba\u0dda \u0db4\u0dca\u0dbb\u0dad\u0dd2\u0dc0\u0dd2\u0dbb\u0dd4\u0daf\u0dca\u0db0 \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf\u0da7 \u0d9c\u0db1\u0dd4\u0daf\u0dd9\u0db1\u0dd4 <span translate=no>_^_4_^_</span> \u0d9a\u0dbb\u0db1 \u0d9a\u0dcf\u0da9\u0dca\u0db4\u0dad\u0dca \u0dc0\u0dd0\u0db1\u0dd2 \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0dc0\u0db1\u0dca/\u0dc3\u0dd2\u0daf\u0dd4\u0dc0\u0dd3\u0db8\u0dca \u0d85\u0da9\u0d82\u0d9c\u0dd4 \u0dc0\u0db1 \u0d85\u0dad\u0dbb \u0d92\u0dc0\u0dcf <span translate=no>_^_5_^_</span> \u0db1\u0ddc\u0dbd\u0dd0\u0db6\u0dd9\u0db1\u0dd4 \u0d87\u0dad. </p>\n",
|
||||
"<p><strong>Strategy of player</strong> <span translate=no>_^_0_^_</span>, <span translate=no>_^_1_^_</span> is a distribution over actions <span translate=no>_^_2_^_</span>, where <span translate=no>_^_3_^_</span> is the set of all strategies for player <span translate=no>_^_4_^_</span>. Strategy on <span translate=no>_^_5_^_</span>-th iteration is denoted by <span translate=no>_^_6_^_</span>.</p>\n": "<p><strong>\u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf\u0d9c\u0dda\u0d8b\u0db4\u0dcf\u0dba \u0db8\u0dcf\u0dbb\u0dca\u0d9c\u0dba</strong> <span translate=no>_^_0_^_</span>, \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0dc0\u0db1\u0dca\u0da7 \u0dc0\u0da9\u0dcf \u0db6\u0dd9\u0daf\u0dcf <span translate=no>_^_1_^_</span> \u0dc4\u0dd0\u0dbb\u0dd3\u0db8\u0d9a\u0dd2 <span translate=no>_^_2_^_</span>, \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf \u0dc3\u0db3\u0dc4\u0dcf \u0dc3\u0dd2\u0dba\u0dbd\u0dd4 \u0d8b\u0db4\u0dcf\u0dba \u0db8\u0dcf\u0dbb\u0dca\u0d9c \u0dc3\u0db8\u0dd6\u0dc4\u0dba\u0d9a\u0dca <span translate=no>_^_3_^_</span> \u0d9a\u0ddc\u0dc4\u0dda\u0daf <span translate=no>_^_4_^_</span>. <span translate=no>_^_5_^_</span>-th \u0db4\u0dd4\u0db1\u0dbb\u0dcf\u0dc0\u0dbb\u0dca\u0dad\u0db1\u0dba \u0db4\u0dd2\u0dc5\u0dd2\u0db6\u0db3 \u0d8b\u0db4\u0dcf\u0dba \u0db8\u0dcf\u0dbb\u0dca\u0d9c \u0db8\u0d9c\u0dd2\u0db1\u0dca <span translate=no>_^_6_^_</span>\u0daf\u0dd0\u0d9a\u0dca\u0dc0\u0dda. </p>\n",
|
||||
"<p>A dictionary for <span translate=no>_^_0_^_</span> set of all information sets </p>\n": "<p>\u0dc3\u0dd2\u0dba\u0dbd\u0dd4\u0dad\u0ddc\u0dbb\u0dad\u0dd4\u0dbb\u0dd4 \u0d9a\u0da7\u0dca\u0da7\u0dbd <span translate=no>_^_0_^_</span> \u0d9a\u0da7\u0dca\u0da7\u0dbd\u0dba\u0d9a\u0dca \u0dc3\u0db3\u0dc4\u0dcf \u0dc1\u0db6\u0dca\u0daf \u0d9a\u0ddd\u0dc2\u0dba\u0d9a\u0dca </p>\n",
|
||||
"<p>A player <span translate=no>_^_0_^_</span> where <span translate=no>_^_1_^_</span> is the set of players </p>\n": "<p>\u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0db1\u0dca\u0d9c\u0dda\u0d9a\u0da7\u0dca\u0da7\u0dbd\u0dba <span translate=no>_^_0_^_</span> <span translate=no>_^_1_^_</span> \u0d9a\u0ddc\u0dc4\u0dd9\u0daf \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dd9\u0d9a\u0dca </p>\n",
|
||||
"<p>A player is denoted by <span translate=no>_^_0_^_</span>, where <span translate=no>_^_1_^_</span> is the set of players.</p>\n": "<p>\u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dd9\u0d9a\u0dca\u0dc0\u0dd2\u0dc3\u0dd2\u0db1\u0dca \u0daf\u0dd0\u0d9a\u0dca\u0dc0\u0dda <span translate=no>_^_0_^_</span>, \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0db1\u0dca \u0dc3\u0db8\u0dd6\u0dc4\u0dba\u0d9a\u0dca <span translate=no>_^_1_^_</span> \u0d9a\u0ddc\u0dc4\u0dd9\u0daf. </p>\n",
|
||||
"<p>Action <span translate=no>_^_0_^_</span>, <span translate=no>_^_1_^_</span> where <span translate=no>_^_2_^_</span> is a non-terminal <a href=\"#History\">history</a> </p>\n": "<p>\u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0dc0 <span translate=no>_^_0_^_</span>, \u0db4\u0dbb\u0dca\u0dba\u0db1\u0dca\u0dad <span translate=no>_^_2_^_</span> \u0db1\u0ddc\u0dc0\u0db1 <a href=\"#History\">\u0d89\u0dad\u0dd2\u0dc4\u0dcf\u0dc3\u0dba\u0d9a\u0dca <span translate=no>_^_1_^_</span> </a> \u0d9a\u0ddc\u0dc4\u0dda\u0daf? </p>\n",
|
||||
"<p>Action <span translate=no>_^_0_^_</span>, <span translate=no>_^_1_^_</span> where <span translate=no>_^_2_^_</span> is a non-terminal <a href=\"#History\">history</a>.</p>\n": "<p>\u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0dc0 <span translate=no>_^_0_^_</span>, \u0db4\u0dbb\u0dca\u0dba\u0db1\u0dca\u0dad <span translate=no>_^_2_^_</span> \u0db1\u0ddc\u0dc0\u0db1 <a href=\"#History\">\u0d89\u0dad\u0dd2\u0dc4\u0dcf\u0dc3\u0dba\u0d9a\u0dca <span translate=no>_^_1_^_</span> </a>\u0d9a\u0ddc\u0dc4\u0dda\u0daf? </p>\n",
|
||||
"<p>And use that to update <span translate=no>_^_0_^_</span> and calculate the strategy <span translate=no>_^_1_^_</span> on each iteration. Finally, we calculate the overall average strategy <span translate=no>_^_2_^_</span>.</p>\n": "<p>\u0d91\u0d9a\u0dca\u0d91\u0d9a\u0dca \u0db4\u0dd4\u0db1\u0dbb\u0dcf\u0dc0\u0dbb\u0dca\u0dad\u0db1\u0dba\u0dda \u0d8b\u0db4\u0dcf\u0dba <span translate=no>_^_1_^_</span> \u0dba\u0dcf\u0dc0\u0dad\u0dca\u0d9a\u0dcf\u0dbd\u0dd3\u0db1 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0da7 <span translate=no>_^_0_^_</span> \u0dc3\u0dc4 \u0d9c\u0dab\u0db1\u0dba \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0da7 \u0d91\u0dba \u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf \u0d9a\u0dbb\u0db1\u0dca\u0db1. \u0d85\u0dc0\u0dc3\u0dcf\u0db1 \u0dc0\u0dc1\u0dba\u0dd9\u0db1\u0dca, \u0d85\u0db4\u0dd2 \u0dc3\u0db8\u0dc3\u0dca\u0dad \u0dc3\u0dcf\u0db8\u0dcf\u0db1\u0dca\u0dba \u0d8b\u0db4\u0dcf\u0dba \u0d9c\u0dab\u0db1\u0dba \u0d9a\u0dbb\u0db8\u0dd4 <span translate=no>_^_2_^_</span>. </p>\n",
|
||||
"<p>Average overall regret for Player <span translate=no>_^_0_^_</span> is the average regret of not following the optimal strategy in all <span translate=no>_^_1_^_</span> rounds of iterations.</p>\n": "<p>\u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf <span translate=no>_^_0_^_</span> \u0dc3\u0db3\u0dc4\u0dcf \u0dc3\u0dcf\u0db8\u0dcf\u0db1\u0dca\u0dba \u0dc3\u0db8\u0dc3\u0dca\u0dad \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4\u0dc0 \u0db4\u0dd4\u0db1\u0dbb\u0dcf\u0dc0\u0dbb\u0dca\u0dad\u0db1 \u0dc3\u0dd1\u0db8 <span translate=no>_^_1_^_</span> \u0dc0\u0da7\u0dba\u0d9a\u0db8 \u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad \u0d8b\u0db4\u0dcf\u0dba \u0d85\u0db1\u0dd4\u0d9c\u0db8\u0db1\u0dba \u0db1\u0ddc\u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0db4\u0dd2\u0dc5\u0dd2\u0db6\u0db3 \u0dc3\u0dcf\u0db8\u0dcf\u0db1\u0dca\u0dba \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4\u0dc0\u0dba\u0dd2. </p>\n",
|
||||
"<p>Computing <span translate=no>_^_0_^_</span> requires expanding the full game tree on each iteration.</p>\n": "<p>\u0db4\u0dbb\u0dd2\u0d9c\u0dab\u0d9a\u0d9a\u0dbb\u0dab\u0dba\u0da7\u0d91\u0d9a\u0dca \u0d91\u0d9a\u0dca \u0db4\u0dd4\u0db1\u0dbb\u0dcf\u0dc0\u0dbb\u0dca\u0dad\u0db1\u0dba\u0dda \u0dc3\u0db8\u0dca\u0db4\u0dd6\u0dbb\u0dca\u0dab \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0dcf \u0d9c\u0dc3 \u0db4\u0dd4\u0dc5\u0dd4\u0dbd\u0dca \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 <span translate=no>_^_0_^_</span> \u0d85\u0dc0\u0dc1\u0dca\u0dba \u0dc0\u0dda. </p>\n",
|
||||
"<p>For two players, Nash equilibrium is a <a href=\"#Strategy\">strategy profile</a> where</p>\n": "<p>\u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0db1\u0dca\u0daf\u0dd9\u0daf\u0dd9\u0db1\u0dd9\u0d9a\u0dd4 \u0dc3\u0db3\u0dc4\u0dcf, \u0db1\u0dd0\u0dc2\u0dca \u0dc3\u0db8\u0dad\u0dd4\u0dbd\u0dd2\u0dad\u0dad\u0dcf\u0dc0\u0dba \u0dba\u0db1\u0dd4 <a href=\"#Strategy\">\u0d8b\u0db4\u0dcf\u0dba \u0db8\u0dcf\u0dbb\u0dca\u0d9c\u0dd2\u0d9a \u0db4\u0dd0\u0dad\u0dd2\u0d9a\u0da9\u0d9a\u0dd2</a> </p>\n",
|
||||
"<p>From the definition of <span translate=no>_^_0_^_</span>, <span translate=no>_^_1_^_</span></p>\n": "<p>\u0d85\u0dbb\u0dca\u0dae\u0daf\u0dd0\u0d9a\u0dca\u0dc0\u0dd3\u0db8\u0dd9\u0db1\u0dca <span translate=no>_^_0_^_</span>, <span translate=no>_^_1_^_</span></p>\n",
|
||||
"<p>Get current player's information set for <span translate=no>_^_0_^_</span> </p>\n": "<p>\u0dc3\u0db3\u0dc4\u0dcf\u0dc0\u0dad\u0dca\u0db8\u0db1\u0dca \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf\u0d9c\u0dda \u0dad\u0ddc\u0dbb\u0dad\u0dd4\u0dbb\u0dd4 \u0dbd\u0db6\u0dcf \u0d9c\u0db1\u0dca\u0db1 <span translate=no>_^_0_^_</span> </p>\n",
|
||||
"<p>Here is a <a href=\"kuhn/index.html\">Kuhn Poker</a> implementation to try CFR on Kuhn Poker.</p>\n": "<p>\u0db8\u0dd9\u0db1\u0dca\u0db1 <a href=\"kuhn/index.html\">\u0d9a\u0dd4\u0dc4\u0dca\u0db1\u0dca \u0db4\u0ddd\u0d9a\u0dbb\u0dca</a> \u0db8\u0dad CFR \u0d8b\u0dad\u0dca\u0dc3\u0dcf\u0dc4 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0da7 Kuhn \u0db4\u0ddd\u0d9a\u0dbb\u0dca \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0dad\u0dca\u0db8\u0d9a \u0d9a\u0dd2\u0dbb\u0dd3\u0db8. </p>\n",
|
||||
"<p>History <span translate=no>_^_0_^_</span> is a sequence of actions including chance events, and <span translate=no>_^_1_^_</span> is the set of all histories.</p>\n": "<p>\u0d89\u0dad\u0dd2\u0dc4\u0dcf\u0dc3\u0dba <span translate=no>_^_0_^_</span> \u0dba\u0db1\u0dd4 \u0d87\u0dad\u0dd4\u0dc5\u0dd4 \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf \u0dc0\u0dbd \u0d85\u0db1\u0dd4\u0d9a\u0dca\u0dbb\u0db8\u0dba\u0d9a\u0dd2 \u0d85\u0dc0\u0dc3\u0dca\u0dae\u0dcf\u0dc0\u0d9a\u0dca \u0dc3\u0dd2\u0daf\u0dd4\u0dc0\u0dd3\u0db8\u0dca, <span translate=no>_^_1_^_</span> \u0d91\u0dba \u0dc3\u0dd2\u0dba\u0dbd\u0dd4 \u0d89\u0dad\u0dd2\u0dc4\u0dcf\u0dc3\u0dba\u0db1\u0dca\u0d9c\u0dda \u0dc3\u0db8\u0dd6\u0dc4\u0dba\u0dba\u0dd2. </p>\n",
|
||||
"<p>If <span translate=no>_^_0_^_</span> for all players then <span translate=no>_^_1_^_</span> is a <span translate=no>_^_2_^_</span>-Nash equilibrium.</p>\n": "<p>\u0dc3\u0dd2\u0dba\u0dbd\u0dd4\u0db8\u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dd2\u0db1\u0dca <span translate=no>_^_0_^_</span> \u0dc3\u0db3\u0dc4\u0dcf \u0db1\u0db8\u0dca <span translate=no>_^_2_^_</span>-\u0db1\u0dd0\u0dc2\u0dca \u0dc3\u0db8\u0dad\u0dd4\u0dbd\u0dd2\u0dad\u0dad\u0dcf\u0dc0\u0dba\u0d9a\u0dd2. <span translate=no>_^_1_^_</span> </p>\n",
|
||||
"<p>If <span translate=no>_^_0_^_</span>, </p>\n": "<p>\u0db1\u0db8\u0dca <span translate=no>_^_0_^_</span>, </p>\n",
|
||||
"<p>If it's a chance event <span translate=no>_^_0_^_</span> sample a and go to next step. </p>\n": "<p>\u0d91\u0dba\u0d85\u0dc4\u0db8\u0dca\u0db6\u0dd9\u0db1\u0dca \u0dc3\u0dd2\u0daf\u0dd4\u0dc0\u0dd3\u0db8\u0dca <span translate=no>_^_0_^_</span> \u0db1\u0dd2\u0dba\u0dd0\u0daf\u0dd2\u0dba\u0d9a\u0dca \u0db1\u0db8\u0dca \u0dc3\u0dc4 \u0d8a\u0dc5\u0d9f \u0db4\u0dd2\u0dba\u0dc0\u0dbb\u0da7 \u0dba\u0db1\u0dca\u0db1. </p>\n",
|
||||
"<p>If it's a terminal history <span translate=no>_^_0_^_</span> return the terminal utility <span translate=no>_^_1_^_</span>. </p>\n": "<p>\u0d91\u0dba\u0db4\u0dbb\u0dca\u0dba\u0db1\u0dca\u0dad \u0d89\u0dad\u0dd2\u0dc4\u0dcf\u0dc3\u0dba\u0d9a\u0dca \u0db1\u0db8\u0dca \u0db4\u0dbb\u0dca\u0dba\u0db1\u0dca\u0dad \u0d8b\u0db4\u0dba\u0ddd\u0d9c\u0dd3\u0dad\u0dcf\u0dc0 <span translate=no>_^_0_^_</span> \u0db1\u0dd0\u0dc0\u0dad \u0dbd\u0db6\u0dcf \u0daf\u0dd9\u0db1\u0dca\u0db1 <span translate=no>_^_1_^_</span>. </p>\n",
|
||||
"<p>If the current player is <span translate=no>_^_0_^_</span>, </p>\n": "<p>\u0dc0\u0dad\u0dca\u0db8\u0db1\u0dca\u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf \u0db1\u0db8\u0dca <span translate=no>_^_0_^_</span>, </p>\n",
|
||||
"<p>If the current player is <span translate=no>_^_0_^_</span>, update the cumulative strategies and total regrets </p>\n": "<p>\u0dc0\u0dbb\u0dca\u0dad\u0db8\u0dcf\u0db1\u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf \u0db1\u0db8\u0dca <span translate=no>_^_0_^_</span>, \u0dc3\u0db8\u0dd4\u0da0\u0dca\u0da0\u0dd2\u0dad \u0d8b\u0db4\u0dcf\u0dba \u0db8\u0dcf\u0dbb\u0dca\u0d9c \u0dc3\u0dc4 \u0dc3\u0db8\u0dca\u0db4\u0dd6\u0dbb\u0dca\u0dab \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4 \u0dba\u0dcf\u0dc0\u0dad\u0dca\u0d9a\u0dcf\u0dbd\u0dd3\u0db1 \u0d9a\u0dbb\u0db1\u0dca\u0db1 </p>\n",
|
||||
"<p>Iterate through all actions </p>\n": "<p>\u0dc3\u0dd2\u0dba\u0dbd\u0dd4\u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0dc0\u0db1\u0dca \u0dc4\u0dbb\u0dc4\u0dcf \u0db1\u0dd0\u0dc0\u0dad \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf \u0d9a\u0dbb\u0db1\u0dca\u0db1 </p>\n",
|
||||
"<p>Loop for <span translate=no>_^_0_^_</span> times </p>\n": "<p><span translate=no>_^_0_^_</span> \u0dc0\u0dda\u0dbd\u0dcf\u0dc0\u0db1\u0dca \u0dc3\u0db3\u0dc4\u0dcf \u0dbd\u0dd6\u0db4\u0dca </p>\n",
|
||||
"<p>Nash equilibrium is a state where none of the players can increase their expected utility (or payoff) by changing their strategy alone.</p>\n": "<p>\u0db1\u0dd0\u0dc2\u0dca\u0dc3\u0db8\u0dad\u0dd4\u0dbd\u0dd2\u0dad\u0dad\u0dcf\u0dc0\u0dba \u0dba\u0db1\u0dd4 \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dd2\u0db1\u0dca\u0d9c\u0dd9\u0db1\u0dca \u0d9a\u0dd2\u0dc3\u0dd2\u0dc0\u0dd9\u0d9a\u0dd4\u0da7 \u0d94\u0dc0\u0dd4\u0db1\u0dca\u0d9c\u0dda \u0d8b\u0db4\u0dcf\u0dba \u0db8\u0dcf\u0dbb\u0dca\u0d9c\u0dba \u0dc0\u0dd9\u0db1\u0dc3\u0dca \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dd9\u0db1\u0dca \u0d94\u0dc0\u0dd4\u0db1\u0dca\u0d9c\u0dda \u0d85\u0db4\u0dda\u0d9a\u0dca\u0dc2\u0dd2\u0dad \u0d8b\u0db4\u0dba\u0ddd\u0d9c\u0dd3\u0dad\u0dcf\u0dc0 (\u0dc4\u0ddd \u0d9c\u0dd9\u0dc0\u0dd3\u0db8\u0dca) \u0dc0\u0dd0\u0da9\u0dd2 \u0d9a\u0dc5 \u0db1\u0ddc\u0dc4\u0dd0\u0d9a\u0dd2 \u0dbb\u0dcf\u0da2\u0dca\u0dba\u0dba\u0d9a\u0dd2. </p>\n",
|
||||
"<p>Otherwise, </p>\n": "<p>\u0d91\u0dc3\u0dda\u0db1\u0ddc\u0db8\u0dd0\u0dad\u0dd2 \u0db1\u0db8\u0dca </p>\n",
|
||||
"<p>Print the information sets </p>\n": "<p>\u0dad\u0ddc\u0dbb\u0dad\u0dd4\u0dbb\u0dd4\u0d9a\u0da7\u0dca\u0da7\u0dbd \u0db8\u0dd4\u0daf\u0dca\u0dbb\u0dab\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1 </p>\n",
|
||||
"<p>Probability of reaching a information set <span translate=no>_^_0_^_</span> is, <span translate=no>_^_1_^_</span></p>\n": "<p>\u0dad\u0ddc\u0dbb\u0dad\u0dd4\u0dbb\u0dd4\u0d9a\u0da7\u0dca\u0da7\u0dbd\u0dba\u0d9a\u0dca \u0dc0\u0dd9\u0dad \u0dc5\u0d9f\u0dcf \u0dc0\u0dd3\u0db8\u0dda <span translate=no>_^_0_^_</span> \u0dc3\u0db8\u0dca\u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf\u0dc0, <span translate=no>_^_1_^_</span></p>\n",
|
||||
"<p>Regret is the utility (or pay off) that the player didn't get because she didn't follow the optimal strategy or took the best action.</p>\n": "<p>\u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4\u0dc0\u0dc0\u0db1\u0dca\u0db1\u0dda \u0d8b\u0db4\u0dba\u0ddd\u0d9c\u0dd3\u0dad\u0dcf\u0dc0 (\u0dc4\u0ddd \u0d9c\u0dd9\u0dc0\u0dd3\u0db8) \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf\u0da7 \u0db1\u0ddc\u0dbd\u0dd0\u0db6\u0dd4\u0db1\u0dda \u0d87\u0dba \u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad \u0d8b\u0db4\u0dcf\u0dba \u0db8\u0dcf\u0dbb\u0dca\u0d9c\u0dba\u0d9a\u0dca \u0d85\u0db1\u0dd4\u0d9c\u0db8\u0db1\u0dba \u0db1\u0ddc\u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0dc4\u0ddd \u0dc4\u0ddc\u0db3\u0db8 \u0db4\u0dd2\u0dba\u0dc0\u0dbb \u0d9c\u0dd0\u0db1\u0dd3\u0db8 \u0db1\u0dd2\u0dc3\u0dcf\u0dba. </p>\n",
|
||||
"<p>Return the expected utility for player <span translate=no>_^_0_^_</span>, <span translate=no>_^_1_^_</span> </p>\n": "<p>\u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf\u0dc3\u0db3\u0dc4\u0dcf \u0d85\u0db4\u0dda\u0d9a\u0dca\u0dc2\u0dd2\u0dad \u0d8b\u0db4\u0dba\u0ddd\u0d9c\u0dd3\u0dad\u0dcf\u0dc0 \u0d86\u0db4\u0dc3\u0dd4 \u0dbd\u0db6\u0dcf \u0daf\u0dd9\u0db1\u0dca\u0db1 <span translate=no>_^_0_^_</span>, <span translate=no>_^_1_^_</span> </p>\n",
|
||||
"<p>Save checkpoints every <span translate=no>_^_0_^_</span> iterations </p>\n": "<p>\u0dc3\u0dd1\u0db8 <span translate=no>_^_0_^_</span> \u0db4\u0dd4\u0db1\u0dbb\u0dcf\u0dc0\u0dbb\u0dca\u0dad\u0db1\u0dba\u0d9a\u0dca\u0db8 \u0db8\u0dd4\u0dbb\u0db4\u0ddc\u0dbd\u0dc0\u0dbd\u0dca \u0dc3\u0dd4\u0dbb\u0d9a\u0dd2\u0db1\u0dca\u0db1 </p>\n",
|
||||
"<p>Since <span translate=no>_^_0_^_</span> because it's a zero-sum game, we can add <span translate=no>_^_1_^_</span> and <span translate=no>_^_2_^_</span> and the second term will cancel out.</p>\n": "<p>\u0d91\u0dba\u0dc1\u0dd4\u0db1\u0dca\u0dba \u0db8\u0dd4\u0daf\u0dbd\u0d9a\u0dca \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0dcf\u0dc0\u0d9a\u0dca <span translate=no>_^_0_^_</span> \u0db6\u0dd0\u0dc0\u0dd2\u0db1\u0dca, \u0d85\u0db4\u0da7 \u0d91\u0d9a\u0dad\u0dd4 \u0d9a\u0dc5 \u0dc4\u0dd0\u0d9a\u0dd2 <span translate=no>_^_1_^_</span> <span translate=no>_^_2_^_</span> \u0d85\u0dad\u0dbb \u0daf\u0dd9\u0dc0\u0db1 \u0dc0\u0dcf\u0dbb\u0dba \u0d85\u0dc0\u0dbd\u0d82\u0d9c\u0dd4 \u0dc0\u0dda. </p>\n",
|
||||
"<p>So we need to minimize <span translate=no>_^_0_^_</span> to get close to a Nash equilibrium.</p>\n": "<p>\u0d91\u0db6\u0dd0\u0dc0\u0dd2\u0db1\u0dca\u0db1\u0dd0\u0dc2\u0dca \u0dc3\u0db8\u0dad\u0dd4\u0dbd\u0dd2\u0dad\u0dad\u0dcf\u0dc0\u0dba\u0d9a\u0da7 \u0dc3\u0db8\u0dd3\u0db4 <span translate=no>_^_0_^_</span> \u0dc0\u0dd3\u0db8\u0da7 \u0d85\u0db4 \u0d85\u0dc0\u0db8 \u0d9a\u0dc5 \u0dba\u0dd4\u0dad\u0dd4\u0dba. </p>\n",
|
||||
"<p>Strategy is defined as a probability for taking an action <span translate=no>_^_0_^_</span> in for a given information set <span translate=no>_^_1_^_</span>,</p>\n": "<p>\u0db8\u0dd6\u0dbd\u0ddd\u0db4\u0dcf\u0dba\u0d85\u0dbb\u0dca\u0dae \u0daf\u0d9a\u0dca\u0dc0\u0dcf \u0d87\u0dad\u0dca\u0dad\u0dda <span translate=no>_^_0_^_</span> \u0daf\u0dd3 \u0d87\u0dad\u0dd2 \u0dad\u0ddc\u0dbb\u0dad\u0dd4\u0dbb\u0dd4 \u0d9a\u0da7\u0dca\u0da7\u0dbd\u0dba\u0d9a\u0dca \u0dc3\u0db3\u0dc4\u0dcf \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0db8\u0dcf\u0dbb\u0dca\u0d9c\u0dba\u0d9a\u0dca \u0d9c\u0dd0\u0db1\u0dd3\u0db8\u0dda \u0dc3\u0db8\u0dca\u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf\u0dc0\u0d9a\u0dca \u0dbd\u0dd9\u0dc3 \u0dba <span translate=no>_^_1_^_</span>,</p>\n",
|
||||
"<p>That is the mean regret of not playing with the optimal strategy.</p>\n": "<p>\u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad\u0d8b\u0db4\u0dcf\u0dba\u0db8\u0dcf\u0dbb\u0dca\u0d9c\u0dba \u0dc3\u0db8\u0d9f \u0dc3\u0dd9\u0dbd\u0dca\u0dbd\u0db8\u0dca \u0db1\u0ddc\u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dda \u0db8\u0db0\u0dca\u0dba\u0db1\u0dca\u0dba \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4\u0dc0 \u0d91\u0dba\u0dba\u0dd2. </p>\n",
|
||||
"<p>The <a href=\"#terminal_utility\">terminal utility</a> is the utility (or pay off) of a player <span translate=no>_^_0_^_</span> for a terminal history <span translate=no>_^_1_^_</span>.</p>\n": "<p><a href=\"#terminal_utility\">\u0db4\u0dbb\u0dca\u0dba\u0db1\u0dca\u0dad \u0d8b\u0db4\u0dba\u0ddd\u0d9c\u0dd3\u0dad\u0dcf\u0dc0</a> \u0dba\u0db1\u0dd4 \u0db4\u0dbb\u0dca\u0dba\u0db1\u0dca\u0dad \u0d89\u0dad\u0dd2\u0dc4\u0dcf\u0dc3\u0dba\u0d9a\u0dca <span translate=no>_^_0_^_</span> \u0dc3\u0db3\u0dc4\u0dcf \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dd9\u0d9a\u0dd4\u0d9c\u0dda \u0d8b\u0db4\u0dba\u0ddd\u0d9c\u0dd3\u0dad\u0dcf\u0dc0 (\u0dc4\u0ddd \u0d9c\u0dd9\u0dc0\u0dd3\u0db8) <span translate=no>_^_1_^_</span>\u0dba. </p>\n",
|
||||
"<p>The <a href=\"http://martin.zinkevich.org/publications/regretpoker.pdf\">paper</a> proves that (Theorem 3),</p>\n": "<p><a href=\"http://martin.zinkevich.org/publications/regretpoker.pdf\">\u0db4\u0dad\u0dca\u0dbb\u0dd2\u0d9a\u0dcf\u0dc0</a> \u0d91\u0dba \u0dc3\u0db1\u0dcf\u0dae \u0d9a\u0dbb\u0dba\u0dd2 (\u0db4\u0dca\u0dbb\u0db8\u0dda\u0dba\u0dba 3),</p>\n",
|
||||
"<p>The average of utilities over a set of strategies is equal to the utility of the average strategy.</p>\n": "\u0d8b\u0db4\u0dcf\u0dba \u0db8\u0dcf\u0dbb\u0dca\u0d9c<p>\u0dc3\u0db8\u0dd6\u0dc4\u0dba\u0d9a\u0dca \u0db4\u0dd4\u0dbb\u0dcf \u0d8b\u0db4\u0dba\u0ddd\u0d9c\u0dd2\u0dad\u0dcf \u0dc0\u0dbd \u0dc3\u0dcf\u0db8\u0dcf\u0db1\u0dca\u0dba\u0dba \u0dc3\u0dcf\u0db8\u0dcf\u0db1\u0dca\u0dba \u0d8b\u0db4\u0dcf\u0dba \u0db8\u0dcf\u0dbb\u0dca\u0d9c\u0dba\u0dda \u0d8b\u0db4\u0dba\u0ddd\u0d9c\u0dd3\u0dad\u0dcf\u0dc0\u0dba\u0da7 \u0dc3\u0db8\u0dcf\u0db1 \u0dc0\u0dda. </p>\n",
|
||||
"<p>The average strategy is the average of strategies followed in each round, for all <span translate=no>_^_0_^_</span></p>\n": "<p>\u0dc3\u0dcf\u0db8\u0dcf\u0db1\u0dca\u0dba\u0d8b\u0db4\u0dcf\u0dba\u0db8\u0dcf\u0dbb\u0dca\u0d9c\u0dba \u0dc0\u0db1\u0dca\u0db1\u0dda \u0dc3\u0dd1\u0db8 \u0dc0\u0da7\u0dba\u0d9a\u0daf\u0dd3\u0db8 \u0d85\u0db1\u0dd4\u0d9c\u0db8\u0db1\u0dba \u0d9a\u0dbb\u0db1 \u0d8b\u0db4\u0dcf\u0dba \u0db8\u0dcf\u0dbb\u0dca\u0d9c\u0dc0\u0dbd \u0dc3\u0dcf\u0db8\u0dcf\u0db1\u0dca\u0dba\u0dba\u0dba\u0dd2 <span translate=no>_^_0_^_</span></p>\n",
|
||||
"<p>The paper <a href=\"http://martin.zinkevich.org/publications/regretpoker.pdf\">Regret Minimization in Games with Incomplete Information</a> introduces counterfactual regret and how minimizing counterfactual regret through self-play can be used to reach Nash equilibrium. The algorithm is called Counterfactual Regret Minimization (<strong>CFR</strong>).</p>\n": "<p>\u0d9a\u0da9\u0daf\u0dcf\u0dc3\u0dd2 <a href=\"http://martin.zinkevich.org/publications/regretpoker.pdf\">\u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4\u0dc0 \u0d85\u0dc3\u0db8\u0dca\u0db4\u0dd6\u0dbb\u0dca\u0dab \u0dad\u0ddc\u0dbb\u0dad\u0dd4\u0dbb\u0dd4 \u0dc3\u0dc4\u0dd2\u0dad \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0dcf \u0dc0\u0dbd \u0d85\u0dc0\u0db8 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8</a> \u0db4\u0dca\u0dbb\u0dad\u0dd2\u0dc0\u0dd2\u0dbb\u0dd4\u0daf\u0dca\u0db0 \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4\u0dc0 \u0dc4\u0db3\u0dd4\u0db1\u0dca\u0dc0\u0dcf \u0daf\u0dd9\u0db1 \u0d85\u0dad\u0dbb \u0dc3\u0dca\u0dc0\u0dba\u0d82 \u0db1\u0dcf\u0da7\u0dca\u0dba\u0dba \u0dad\u0dd4\u0dc5\u0dd2\u0db1\u0dca \u0db4\u0dca\u0dbb\u0dad\u0dd2\u0dc0\u0dd2\u0dbb\u0dd4\u0daf\u0dca\u0db0 \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4\u0dc0 \u0d85\u0dc0\u0db8 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0db1\u0dd0\u0dc2\u0dca \u0dc3\u0db8\u0dad\u0dd4\u0dbd\u0dd2\u0dad\u0dad\u0dcf\u0dc0\u0dba\u0da7 \u0dc5\u0d9f\u0dcf \u0dc0\u0dd3\u0db8\u0da7 \u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf \u0d9a\u0dc5 \u0dc4\u0dd0\u0d9a\u0dd2 \u0d86\u0d9a\u0dcf\u0dbb\u0dba. \u0d87\u0dbd\u0dca\u0d9c\u0ddc\u0dbb\u0dd2\u0dad\u0db8 \u0dc4\u0dd0\u0db3\u0dd2\u0db1\u0dca\u0dc0\u0dd9\u0db1\u0dca\u0db1\u0dda \u0db4\u0dca\u0dbb\u0dad\u0dd2\u0dc0\u0dd2\u0dbb\u0dd4\u0daf\u0dca\u0db0 \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4\u0dc0 \u0d85\u0dc0\u0db8 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 (<strong>CFR</strong>) \u0dbd\u0dd9\u0dc3\u0dd2\u0db1\u0dd2. </p>\n",
|
||||
"<p>The paper <a href=\"http://mlanctot.info/files/papers/nips09mccfr.pdf\">Monte Carlo Sampling for Regret Minimization in Extensive Games</a> introduces Monte Carlo Counterfactual Regret Minimization (<strong>MCCFR</strong>), where we sample from the game tree and estimate the regrets.</p>\n": "<p><a href=\"http://mlanctot.info/files/papers/nips09mccfr.pdf\">\u0db4\u0dd4\u0dc5\u0dd4\u0dbd\u0dca \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0dcf \u0dc0\u0dbd \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4\u0dc0 \u0d85\u0dc0\u0db8 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0dc3\u0db3\u0dc4\u0dcf \u0db8\u0ddc\u0db1\u0dca\u0da7\u0dda \u0d9a\u0dcf\u0dbd\u0ddd \u0db1\u0dd2\u0dba\u0dd0\u0daf\u0dd3\u0db8</a> \u0d9a\u0da9\u0daf\u0dcf\u0dc3\u0dd2 \u0db8\u0ddc\u0db1\u0dca\u0da7\u0dda \u0d9a\u0dcf\u0dbd\u0ddd \u0db4\u0dca\u0dbb\u0dad\u0dd2\u0dc0\u0dd2\u0dbb\u0dd4\u0daf\u0dca\u0db0 \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4\u0dc0 \u0d85\u0dc0\u0db8 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 (<strong>MCCFR</strong>) \u0dc4\u0db3\u0dd4\u0db1\u0dca\u0dc0\u0dcf \u0daf\u0dd9\u0dba\u0dd2, \u0d91\u0dc4\u0dd2\u0daf\u0dd3 \u0d85\u0db4\u0dd2 \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0dcf \u0d9c\u0dc3\u0dd9\u0db1\u0dca \u0dc3\u0dcf\u0db8\u0dca\u0db4\u0dbd \u0dbd\u0db6\u0dcf\u0d9c\u0dd9\u0db1 \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4\u0dc0 \u0dad\u0d9a\u0dca\u0dc3\u0dda\u0dbb\u0dd4 \u0d9a\u0dbb\u0db8\u0dd4. </p>\n",
|
||||
"<p>The paper <a href=\"http://mlanctot.info/files/papers/nips09mccfr.pdf\">Monte Carlo Sampling for Regret Minimization in Extensive Games</a> shows we can sample from the game tree and estimate the regrets.</p>\n": "<p><a href=\"http://mlanctot.info/files/papers/nips09mccfr.pdf\">\u0db4\u0dd4\u0dc5\u0dd4\u0dbd\u0dca \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0dcf \u0dc0\u0dbd \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4\u0dc0 \u0d85\u0dc0\u0db8 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0dc3\u0db3\u0dc4\u0dcf \u0d9a\u0da9\u0daf\u0dcf\u0dc3\u0dd2 \u0db8\u0ddc\u0db1\u0dca\u0da7\u0dda \u0d9a\u0dcf\u0dbd\u0ddd \u0db1\u0dd2\u0dba\u0dd0\u0daf\u0dd3\u0db8 \u0d85\u0db4\u0da7 \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0dcf</a> \u0d9c\u0dc3\u0dd9\u0db1\u0dca \u0dc3\u0dcf\u0db8\u0dca\u0db4\u0dbd \u0dbd\u0db6\u0dcf \u0d9c\u0dad \u0dc4\u0dd0\u0d9a\u0dd2 \u0d85\u0dad\u0dbb \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4\u0dc0 \u0dad\u0d9a\u0dca\u0dc3\u0dda\u0dbb\u0dd4 \u0d9a\u0dc5 \u0dc4\u0dd0\u0d9a\u0dd2\u0dba. </p>\n",
|
||||
"<p>The paper The paper <a href=\"http://martin.zinkevich.org/publications/regretpoker.pdf\">Regret Minimization in Games with Incomplete Information</a> proves that if the strategy is selected according to above equation <span translate=no>_^_0_^_</span> gets smaller proportionate to <span translate=no>_^_1_^_</span>, and therefore reaches <span translate=no>_^_2_^_</span>-<a href=\"#NashEquilibrium\">Nash equilibrium</a>.</p>\n": "<p>\u0d9a\u0da9\u0daf\u0dcf\u0dc3\u0dd2 <a href=\"http://martin.zinkevich.org/publications/regretpoker.pdf\">\u0d85\u0dc3\u0db8\u0dca\u0db4\u0dd6\u0dbb\u0dca\u0dab \u0dad\u0ddc\u0dbb\u0dad\u0dd4\u0dbb\u0dd4 \u0dc3\u0dc4\u0dd2\u0dad \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0dcf \u0dc0\u0dbd \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4\u0dc0 \u0d85\u0dc0\u0db8 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0d89\u0dc4\u0dad \u0dc3\u0db8\u0dd3\u0d9a\u0dbb\u0dab\u0dba\u0da7</a> \u0d85\u0db1\u0dd4\u0dc0 \u0d8b\u0db4\u0dcf\u0dba \u0db8\u0dcf\u0dbb\u0dca\u0d9c\u0dba \u0dad\u0ddd\u0dbb\u0dcf <span translate=no>_^_0_^_</span> \u0d9c\u0db1\u0dca\u0db1\u0dda \u0db1\u0db8\u0dca \u0d8a\u0da7 \u0dc3\u0db8\u0dcf\u0db1\u0dd4\u0db4\u0dcf\u0dad\u0dd2\u0d9a\u0dc0 \u0d9a\u0dd4\u0da9\u0dcf \u0dc0\u0db1 \u0db6\u0dc0 \u0d94\u0db4\u0dca\u0db4\u0dd4 \u0d9a\u0dbb\u0dba\u0dd2 <span translate=no>_^_1_^_</span>, \u0d91\u0db6\u0dd0\u0dc0\u0dd2\u0db1\u0dca \u0dc5\u0d9f\u0dcf \u0dc0\u0dda <span translate=no>_^_2_^_</span>-<a href=\"#NashEquilibrium\">\u0db1\u0dc2\u0dca \u0dc3\u0db8\u0dad\u0dd4\u0dbd\u0dd2\u0dad\u0dad\u0dcf\u0dc0\u0dba</a>. </p>\n",
|
||||
"<p>The paper shows that</p>\n": "<p>\u0d9a\u0da9\u0daf\u0dcf\u0dc3\u0dd2\u0db6\u0dc0 \u0db4\u0dd9\u0db1\u0dca\u0db1\u0dd4\u0db8\u0dca</p>\n",
|
||||
"<p>The regret for each information set and action pair <span translate=no>_^_0_^_</span> is maintained,</p>\n": "<p>\u0d91\u0d9a\u0dca\u0d91\u0d9a\u0dca \u0dad\u0ddc\u0dbb\u0dad\u0dd4\u0dbb\u0dd4 \u0d9a\u0da7\u0dca\u0da7\u0dbd\u0dba \u0dc3\u0dc4 \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0d9a\u0dcf\u0dbb\u0dd3 \u0dba\u0dd4\u0d9c\u0dbd\u0dba \u0dc3\u0db3\u0dc4\u0dcf \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4\u0dc0 \u0db4\u0dc0\u0dad\u0dca\u0dc0\u0dcf \u0d9c\u0dd9\u0db1 <span translate=no>_^_0_^_</span> \u0dba\u0db1\u0dd4 \u0dbd\u0dd0\u0db6\u0dda,</p>\n",
|
||||
"<p>The strategy is calculated using regret matching.</p>\n": "<p>\u0d8b\u0db4\u0dcf\u0dba\u0db8\u0dcf\u0dbb\u0dca\u0d9c\u0dba\u0d9c\u0dab\u0db1\u0dba \u0d9a\u0dbb\u0db1\u0dd4 \u0dbd\u0db6\u0db1\u0dca\u0db1\u0dda \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4 \u0d9c\u0dd0\u0dbd\u0db4\u0dd3\u0db8 \u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf \u0d9a\u0dbb\u0db8\u0dd2\u0db1\u0dd2. </p>\n",
|
||||
"<p>Then we get <strong>sampled counterfactual value</strong> fro block <span translate=no>_^_0_^_</span>,</p>\n": "<p>\u0d91\u0dc0\u0dd2\u0da7\u0d85\u0db4\u0dd2 \u0dc0\u0dcf\u0dbb\u0dab \u0dc3\u0dd2\u0da7 <strong>sampled counterfactual \u0d85\u0d9c\u0dba</strong> \u0dbd\u0db6\u0dcf <span translate=no>_^_0_^_</span>,</p>\n",
|
||||
"<p>Then,</p>\n": "<p>\u0d91\u0dc0\u0dd2\u0da7,</p>\n",
|
||||
"<p>Therefore we can sample a part of the game tree and calculate the regrets. We calculate an estimate of regrets</p>\n": "<p>\u0d91\u0db6\u0dd0\u0dc0\u0dd2\u0db1\u0dca\u0d85\u0db4\u0da7 \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0dcf \u0d9c\u0dc3\u0dda \u0d9a\u0ddc\u0da7\u0dc3\u0d9a\u0dca \u0dc3\u0dcf\u0db8\u0dca\u0db4\u0dbd \u0d9c\u0dad \u0d9a\u0dbb \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4 \u0d9c\u0dab\u0db1\u0dba \u0d9a\u0dc5 \u0dc4\u0dd0\u0d9a\u0dd2\u0dba. \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4\u0dc0 \u0db4\u0dd2\u0dc5\u0dd2\u0db6\u0db3 \u0d87\u0dc3\u0dca\u0dad\u0db8\u0dda\u0db1\u0dca\u0dad\u0dd4\u0dc0\u0d9a\u0dca \u0d85\u0db4\u0dd2 \u0d9c\u0dab\u0db1\u0dba \u0d9a\u0dbb\u0db8\u0dd4</p>\n",
|
||||
"<p>Therefore,</p>\n": "<p>\u0d91\u0db6\u0dd0\u0dc0\u0dd2\u0db1\u0dca,</p>\n",
|
||||
"<p>This is <span translate=no>_^_0_^_</span>-Nash equilibrium. You can similarly prove for games with more than 2 players.</p>\n": "<p>\u0db8\u0dd9\u0dba <span translate=no>_^_0_^_</span>-\u0db1\u0dd0\u0dc2\u0dca \u0dc3\u0db8\u0dad\u0dd4\u0dbd\u0dd2\u0dad\u0dad\u0dcf\u0dc0\u0dba\u0dba\u0dd2. \u0d94\u0db6\u0da7 \u0d92 \u0dc4\u0dcf \u0dc3\u0db8\u0dcf\u0db1\u0dc0 \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dd2\u0db1\u0dca 2 \u0d9a\u0da7 \u0dc0\u0da9\u0dcf \u0d87\u0dad\u0dd2 \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0dcf \u0dc3\u0db3\u0dc4\u0dcf \u0d94\u0db4\u0dca\u0db4\u0dd4 \u0d9a\u0dc5 \u0dc4\u0dd0\u0d9a\u0dd2\u0dba. </p>\n",
|
||||
"<p>To store <span translate=no>_^_0_^_</span> </p>\n": "<p>\u0d9c\u0db6\u0da9\u0dcf\u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0da7 <span translate=no>_^_0_^_</span> </p>\n",
|
||||
"<p>To store <span translate=no>_^_0_^_</span> for each action <span translate=no>_^_1_^_</span> </p>\n": "<p>\u0d91\u0d9a\u0dca\u0d91\u0d9a\u0dca \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0dc0 <span translate=no>_^_0_^_</span> \u0dc3\u0db3\u0dc4\u0dcf \u0d9c\u0db6\u0da9\u0dcf \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 <span translate=no>_^_1_^_</span> </p>\n",
|
||||
"<p>Total regret of not taking each action <span translate=no>_^_0_^_</span>,</p>\n<span translate=no>_^_1_^_</span><p>We maintain <span translate=no>_^_2_^_</span> instead of <span translate=no>_^_3_^_</span> since <span translate=no>_^_4_^_</span> term cancels out anyway when computing strategy <span translate=no>_^_5_^_</span> </p>\n": "<p>\u0d91\u0d9a\u0dca\u0d91\u0d9a\u0dca \u0db4\u0dd2\u0dba\u0dc0\u0dbb \u0db1\u0ddc\u0d9c\u0dd0\u0db1\u0dd3\u0db8 \u0db4\u0dd2\u0dc5\u0dd2\u0db6\u0db3 \u0dc3\u0db8\u0dca\u0db4\u0dd6\u0dbb\u0dca\u0dab \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4\u0dc0 <span translate=no>_^_0_^_</span>,</p>\n<span translate=no>_^_1_^_</span><p>\u0db4\u0dbb\u0dd2\u0d9c\u0dab\u0d9a\u0d8b\u0db4\u0dcf\u0dba \u0dc0\u0dd2\u0da7 <span translate=no>_^_4_^_</span> \u0d9a\u0dcf\u0dbd\u0dd3\u0db1 \u0d9a\u0dd9\u0dc3\u0dda \u0dc4\u0ddd \u0dc3\u0dd2\u0daf\u0dd4 \u0d85\u0dc0\u0dbd\u0d82\u0d9c\u0dd4 <span translate=no>_^_3_^_</span> \u0dc3\u0dd2\u0da7 \u0d85\u0db4\u0dd2 <span translate=no>_^_2_^_</span> \u0d92 \u0dc0\u0dd9\u0db1\u0dd4\u0dc0\u0da7 \u0db4\u0dc0\u0dad\u0dca\u0dc0\u0dcf\u0d9c\u0dd9\u0db1 <span translate=no>_^_5_^_</span> </p>\n",
|
||||
"<p>Track data for analytics </p>\n": "<p>\u0dc0\u0dd2\u0dc1\u0dca\u0dbd\u0dda\u0dc2\u0dab\u0dc3\u0db3\u0dc4\u0dcf \u0daf\u0dad\u0dca\u0dad \u0dbd\u0dd4\u0dc4\u0dd4\u0db6\u0db3\u0dd2\u0db1\u0dca\u0db1 </p>\n",
|
||||
"<p>Tracker for analytics </p>\n": "<p>\u0dc0\u0dd2\u0dc1\u0dca\u0dbd\u0dda\u0dc2\u0dab\u0dc3\u0db3\u0dc4\u0dcf \u0da7\u0dca\u0dbb\u0dd0\u0d9a\u0dbb\u0dca </p>\n",
|
||||
"<p>Unique key identifying the information set </p>\n": "<p>\u0d85\u0daf\u0dca\u0dc0\u0dd2\u0dad\u0dd3\u0dba\u0dba\u0dad\u0dd4\u0dbb \u0dad\u0ddc\u0dbb\u0dad\u0dd4\u0dbb\u0dd4 \u0d9a\u0da7\u0dca\u0da7\u0dbd\u0dba \u0dc4\u0db3\u0dd4\u0db1\u0dcf \u0d9c\u0dd0\u0db1\u0dd3\u0db8 </p>\n",
|
||||
"<p>Update cumulative strategies <span translate=no>_^_0_^_</span> </p>\n": "<p>\u0dc3\u0db8\u0dd4\u0da0\u0dca\u0da0\u0dd2\u0dad\u0d8b\u0db4\u0dcf\u0dba \u0db8\u0dcf\u0dbb\u0dca\u0d9c \u0dba\u0dcf\u0dc0\u0dad\u0dca\u0d9a\u0dcf\u0dbd\u0dd3\u0db1 \u0d9a\u0dbb\u0db1\u0dca\u0db1 <span translate=no>_^_0_^_</span> </p>\n",
|
||||
"<p>Update the strategy <span translate=no>_^_0_^_</span> </p>\n": "<p>\u0d8b\u0db4\u0dcf\u0dba\u0db8\u0dcf\u0dbb\u0dca\u0d9c\u0dba\u0dba\u0dcf\u0dc0\u0dad\u0dca\u0d9a\u0dcf\u0dbd\u0dd3\u0db1 \u0d9a\u0dbb\u0db1\u0dca\u0db1 <span translate=no>_^_0_^_</span> </p>\n",
|
||||
"<p>Walk tree and update regrets for each player </p>\n": "<p>\u0d9c\u0dc3\u0d87\u0dc0\u0dd2\u0daf\u0dd2\u0db1\u0dca\u0db1 \u0dc3\u0dc4 \u0d91\u0d9a\u0dca \u0d91\u0d9a\u0dca \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf \u0dc3\u0db3\u0dc4\u0dcf \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4 \u0dba\u0dcf\u0dc0\u0dad\u0dca\u0d9a\u0dcf\u0dbd\u0dd3\u0db1 \u0d9a\u0dbb\u0db1\u0dca\u0db1 </p>\n",
|
||||
"<p>We implement Monte Carlo Counterfactual Regret Minimization (MCCFR) with chance sampling (CS). It iteratively, explores part of the game tree by trying all player actions, but sampling chance events. Chance events are things like dealing cards; they are kept sampled once per iteration. Then it calculates, for each action, the <em>regret</em> of following the current strategy instead of taking that action. Then it updates the strategy based on these regrets for the next iteration, using regret matching. Finally, it computes the average of the strategies throughout the iterations, which is very close to the Nash equilibrium if we ran enough iterations.</p>\n": "<p>\u0d85\u0db4\u0dd2\u0d85\u0dc4\u0db8\u0dca\u0db6\u0dd9\u0db1\u0dca \u0db1\u0dd2\u0dba\u0dd0\u0daf\u0dd3\u0db8\u0dca (CS) \u0dc3\u0db8\u0d9f \u0db8\u0ddc\u0db1\u0dca\u0da7\u0dda \u0d9a\u0dcf\u0dbd\u0ddd \u0db4\u0dca\u0dbb\u0dad\u0dd2\u0dc0\u0dd2\u0dbb\u0dd4\u0daf\u0dca\u0db0 \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4\u0dc0 \u0d85\u0dc0\u0db8 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 (MCCFR) \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0dad\u0dca\u0db8\u0d9a \u0d9a\u0dbb\u0db8\u0dd4. \u0d91\u0dba iteratively, \u0dc3\u0dd2\u0dba\u0dbd\u0dd4 \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf \u0d8b\u0dad\u0dca\u0dc3\u0dcf\u0dc4 \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0dcf\u0dc0 \u0d9c\u0dc3 \u0d9a\u0ddc\u0da7\u0dc3\u0d9a\u0dca \u0d9c\u0dc0\u0dda\u0dc2\u0dab\u0dba, \u0db1\u0db8\u0dd4\u0dad\u0dca \u0d85\u0dc0\u0dc3\u0dca\u0dae\u0dcf\u0dc0\u0d9a\u0dca \u0dc3\u0dd2\u0daf\u0dd4\u0dc0\u0dd3\u0db8\u0dca \u0db1\u0dd2\u0dba\u0dd0\u0daf\u0dd3\u0db8\u0dca. \u0d85\u0dc0\u0dc3\u0dca\u0dae\u0dcf\u0dc0\u0d9a\u0dca \u0dc3\u0dd2\u0daf\u0dd4\u0dc0\u0dd3\u0db8\u0dca \u0d9a\u0dcf\u0da9\u0dca\u0db4\u0dad\u0dca \u0d9c\u0db1\u0dd4\u0daf\u0dd9\u0db1\u0dd4 \u0dc0\u0dd0\u0db1\u0dd2 \u0daf\u0dda\u0dc0\u0dbd\u0dca \u0dba; \u0d94\u0dc0\u0dd4\u0db1\u0dca \u0db1\u0dd0\u0dc0\u0dad \u0d91\u0d9a\u0dca \u0dc0\u0dbb\u0d9a\u0dca sampled \u0dad\u0db6\u0dcf \u0d87\u0dad. \u0d91\u0dc0\u0dd2\u0da7 \u0d91\u0dba \u0d9c\u0dab\u0db1\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1\u0dda, \u0d91\u0d9a\u0dca \u0d91\u0d9a\u0dca \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0dc0 \u0dc3\u0db3\u0dc4\u0dcf, \u0d91\u0db8 \u0db4\u0dd2\u0dba\u0dc0\u0dbb \u0d9c\u0dd0\u0db1\u0dd3\u0db8 \u0dc0\u0dd9\u0db1\u0dd4\u0dc0\u0da7 \u0dc0\u0dbb\u0dca\u0dad\u0db8\u0dcf\u0db1 \u0d8b\u0db4\u0dcf\u0dba\u0db8\u0dcf\u0dbb\u0dca\u0d9c\u0dba \u0d85\u0db1\u0dd4\u0d9c\u0db8\u0db1\u0dba \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dda <em>\u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4\u0dc0</em> . \u0d89\u0db1\u0dca\u0db4\u0dc3\u0dd4 \u0d91\u0dba \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4\u0dc0 \u0d9c\u0dd0\u0dbd\u0db4\u0dd3\u0db8 \u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf \u0d9a\u0dbb\u0db8\u0dd2\u0db1\u0dca \u0d8a\u0dc5\u0d9f \u0db4\u0dd4\u0db1\u0dbb\u0dcf\u0dc0\u0dbb\u0dca\u0dad\u0db1\u0dba \u0dc3\u0db3\u0dc4\u0dcf \u0db8\u0dd9\u0db8 \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4 \u0db8\u0dad \u0db4\u0daf\u0db1\u0db8\u0dca \u0dc0\u0dd6 \u0d8b\u0db4\u0dcf\u0dba \u0dba\u0dcf\u0dc0\u0dad\u0dca\u0d9a\u0dcf\u0dbd\u0dd3\u0db1 \u0d9a\u0dbb\u0dba\u0dd2. \u0d85\u0dc0\u0dc3\u0dcf\u0db1 \u0dc0\u0dc1\u0dba\u0dd9\u0db1\u0dca, \u0d91\u0dba \u0db4\u0dd4\u0db1\u0dbb\u0dcf\u0dc0\u0dbb\u0dca\u0dad\u0db1 \u0db4\u0dd4\u0dbb\u0dcf \u0d8b\u0db4\u0dcf\u0dba \u0db8\u0dcf\u0dbb\u0dca\u0d9c\u0dc0\u0dbd \u0dc3\u0dcf\u0db8\u0dcf\u0db1\u0dca\u0dba\u0dba \u0d9c\u0dab\u0db1\u0dba \u0d9a\u0dbb\u0dba\u0dd2, \u0d91\u0dba \u0d85\u0db4 \u0db4\u0dca\u0dbb\u0db8\u0dcf\u0dab\u0dc0\u0dad\u0dca \u0db4\u0dd4\u0db1\u0dbb\u0dcf\u0dc0\u0dbb\u0dca\u0dad\u0db1 \u0daf\u0dd2\u0dc0 \u0d9c\u0dd2\u0dba\u0dc4\u0ddc\u0dad\u0dca \u0db1\u0dd0\u0dc2\u0dca \u0dc3\u0db8\u0dad\u0dd4\u0dbd\u0dd2\u0dad\u0dad\u0dcf\u0dc0\u0dba\u0da7 \u0d89\u0dad\u0dcf \u0dc3\u0db8\u0dd3\u0db4 \u0dc0\u0dda. </p>\n",
|
||||
"<p>We maintain the cumulative strategy <span translate=no>_^_0_^_</span> to compute overall average strategy</p>\n<p><span translate=no>_^_1_^_</span> </p>\n": "<p>\u0dc3\u0db8\u0dc3\u0dca\u0dad\u0dc3\u0dcf\u0db8\u0dcf\u0db1\u0dca\u0dba \u0d8b\u0db4\u0dcf\u0dba\u0db8\u0dcf\u0dbb\u0dca\u0d9c\u0dba \u0d9c\u0dab\u0db1\u0dba <span translate=no>_^_0_^_</span> \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0dc3\u0db3\u0dc4\u0dcf \u0d85\u0db4\u0dd2 \u0dc3\u0db8\u0dd4\u0da0\u0dca\u0da0\u0dd2\u0dad \u0d8b\u0db4\u0dcf\u0dba \u0db8\u0dcf\u0dbb\u0dca\u0d9c\u0dba \u0db4\u0dc0\u0dad\u0dca\u0dc0\u0dcf \u0d9c\u0db1\u0dd2\u0db8\u0dd4</p>\n<p><span translate=no>_^_1_^_</span> </p>\n",
|
||||
"<p>We tried to keep our Python implementation easy-to-understand like a tutorial. We run it on <a href=\"kuhn/index.html\">a very simple imperfect information game called Kuhn poker</a>.</p>\n": "<p>\u0d85\u0db4\u0d9c\u0dda\u0db4\u0dba\u0dd2\u0dad\u0db1\u0dca \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0dad\u0dca\u0db8\u0d9a \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0db1\u0dd2\u0db6\u0db1\u0dca\u0db0\u0db1\u0dba\u0d9a\u0dca \u0db8\u0dd9\u0db1\u0dca \u0db4\u0dc4\u0dc3\u0dd4\u0dc0\u0dd9\u0db1\u0dca \u0dad\u0dda\u0dbb\u0dd4\u0db8\u0dca \u0d9c\u0dd0\u0db1\u0dd3\u0db8\u0da7 \u0d85\u0db4\u0dd2 \u0d8b\u0dad\u0dca\u0dc3\u0dcf\u0dc4 \u0d9a\u0dc5\u0dd9\u0db8\u0dd4. \u0d85\u0db4\u0dd2 \u0d91\u0dba <a href=\"kuhn/index.html\">\u0d89\u0dad\u0dcf \u0dc3\u0dbb\u0dbd \u0d85\u0dc3\u0db8\u0dca\u0db4\u0dd6\u0dbb\u0dca\u0dab \u0dad\u0ddc\u0dbb\u0dad\u0dd4\u0dbb\u0dd4 \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0dcf\u0dc0\u0d9a\u0dca \u0db8\u0dad \u0db0\u0dcf\u0dc0\u0db1\u0dba \u0d9a\u0dbb\u0db8\u0dd4 Kuhn \u0db4\u0ddd\u0d9a\u0dbb\u0dca \u0d9c\u0dc4\u0db1\u0dca\u0db1 \u0daf\u0db1\u0dca\u0db1\u0dc0\u0dcf\u0db1\u0db8\u0dca</a>. </p>\n",
|
||||
"<p>We will first introduce the mathematical notation and theory.</p>\n": "<p>\u0d85\u0db4\u0dd2\u0db8\u0dd4\u0dbd\u0dd2\u0db1\u0dca\u0db8 \u0d9c\u0dab\u0dd2\u0dad\u0db8\u0dba \u0d85\u0d82\u0d9a\u0db1\u0dba \u0dc3\u0dc4 \u0db1\u0dca\u0dba\u0dcf\u0dba \u0dc4\u0db3\u0dd4\u0db1\u0dca\u0dc0\u0dcf \u0daf\u0dd9\u0db1\u0dca\u0db1\u0dd9\u0db8\u0dd4. </p>\n",
|
||||
"<p>and the strategy is calculated with regret matching,</p>\n": "<p>\u0d8b\u0db4\u0dcf\u0dba\u0db8\u0dcf\u0dbb\u0dca\u0d9c\u0dba\u0d9c\u0dab\u0db1\u0dba \u0d9a\u0dbb\u0db1\u0dd4 \u0dbd\u0db6\u0db1\u0dca\u0db1\u0dda \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4 \u0d9c\u0dd0\u0dbd\u0db4\u0dd3\u0db8\u0dd9\u0db1\u0dca,</p>\n",
|
||||
"<p>if <span translate=no>_^_0_^_</span>, </p>\n": "<p>\u0db1\u0db8\u0dca <span translate=no>_^_0_^_</span>, </p>\n",
|
||||
"<p>is the strategy profile <span translate=no>_^_0_^_</span> with player <span translate=no>_^_1_^_</span>'s strategy replaced with <span translate=no>_^_2_^_</span>.</p>\n": "<p>\u0dba\u0db1\u0dd4 <span translate=no>_^_1_^_</span>\u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dcf\u0d9c\u0dda \u0d8b\u0db4\u0dcf\u0dba <span translate=no>_^_0_^_</span> \u0dc3\u0db8\u0d9f \u0db4\u0dca\u0dbb\u0dad\u0dd2\u0dc3\u0dca\u0dae\u0dcf\u0db4\u0db1\u0dba \u0d9a\u0dbb\u0db1 \u0dbd\u0daf \u0d8b\u0db4\u0dcf\u0dba <span translate=no>_^_2_^_</span>\u0db8\u0dcf\u0dbb\u0dca\u0d9c\u0dba\u0dba\u0dd2. </p>\n",
|
||||
"<p>where <span translate=no>_^_0_^_</span> is the set of terminal histories reachable from <span translate=no>_^_1_^_</span>, and <span translate=no>_^_2_^_</span> is the prefix of <span translate=no>_^_3_^_</span> up to <span translate=no>_^_4_^_</span>. <span translate=no>_^_5_^_</span> is the probability of reaching z from <span translate=no>_^_6_^_</span>.</p>\n": "<p>\u0db4\u0dbb\u0dca\u0dba\u0db1\u0dca\u0dad\u0d89\u0dad\u0dd2\u0dc4\u0dcf\u0dc3 \u0d9a\u0da7\u0dca\u0da7\u0dbd\u0dba \u0dc0\u0dd9\u0dad \u0dc5\u0d9f\u0dcf \u0dc0\u0dd2\u0dba \u0dc4\u0dd0\u0d9a\u0dd2 <span translate=no>_^_1_^_</span>\u0d85\u0dad\u0dbb <span translate=no>_^_2_^_</span> \u0d91\u0dba <span translate=no>_^_3_^_</span> \u0daf\u0d9a\u0dca\u0dc0\u0dcf \u0d8b\u0db4\u0dc3\u0dbb\u0dca\u0d9c\u0dba \u0dc0\u0dda <span translate=no>_^_0_^_</span> <span translate=no>_^_4_^_</span>. <span translate=no>_^_5_^_</span> \u0dc3\u0dd2\u0da7 z \u0dc0\u0dd9\u0dad \u0dc5\u0d9f\u0dcf \u0dc0\u0dd3\u0db8\u0dda \u0dc3\u0db8\u0dca\u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf\u0dc0 <span translate=no>_^_6_^_</span>\u0dc0\u0dda. </p>\n",
|
||||
"<p>where <span translate=no>_^_0_^_</span> is the strategy profile <span translate=no>_^_1_^_</span> with the modification of always taking action <span translate=no>_^_2_^_</span> at information set <span translate=no>_^_3_^_</span>.</p>\n": "<p>\u0dad\u0ddc\u0dbb\u0dad\u0dd4\u0dbb\u0dd4\u0d9a\u0da7\u0dca\u0da7\u0dbd\u0dba\u0dda <span translate=no>_^_0_^_</span> \u0dc3\u0dd1\u0db8 \u0dc0\u0dd2\u0da7\u0db8 \u0db4\u0dd2\u0dba\u0dc0\u0dbb <span translate=no>_^_2_^_</span> \u0d9c\u0dd0\u0db1\u0dd3\u0db8 \u0dc0\u0dd9\u0db1\u0dc3\u0dca \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 <span translate=no>_^_1_^_</span> \u0dc3\u0db8\u0d9f \u0d8b\u0db4\u0dcf\u0dba \u0db4\u0dd0\u0dad\u0dd2\u0d9a\u0da9 <span translate=no>_^_3_^_</span>\u0d9a\u0ddc\u0dc4\u0dda\u0daf? </p>\n",
|
||||
"<p>where <span translate=no>_^_0_^_</span> is the strategy profile of all players in iteration <span translate=no>_^_1_^_</span>, and</p>\n": "<p>\u0db4\u0dd4\u0db1\u0dbb\u0dcf\u0dc0\u0dbb\u0dca\u0dad\u0db1\u0dba\u0dda\u0dc3\u0dd2\u0dba\u0dbd\u0dd4\u0db8 \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0dd2\u0db1\u0dca\u0d9c\u0dda \u0d8b\u0db4\u0dcf\u0dba \u0db8\u0dcf\u0dbb\u0dca\u0d9c \u0db4\u0dd0\u0dad\u0dd2\u0d9a\u0da9 <span translate=no>_^_0_^_</span> \u0d9a\u0ddc\u0dc4\u0dda\u0daf <span translate=no>_^_1_^_</span>, \u0dc3\u0dc4</p>\n",
|
||||
"<p>where <span translate=no>_^_0_^_</span></p>\n": "<p>\u0d9a\u0ddc\u0dc4\u0dda\u0daf <span translate=no>_^_0_^_</span></p>\n",
|
||||
"<p>where</p>\n": "<p>\u0d9a\u0ddc\u0dc4\u0dda\u0daf</p>\n",
|
||||
"<p>with a simple proof.</p>\n": "<p>\u0dc3\u0dbb\u0dbd\u0dc3\u0dcf\u0d9a\u0dca\u0dc2\u0dd2\u0dba\u0d9a\u0dca \u0dc3\u0db8\u0d9f. </p>\n",
|
||||
"<span translate=no>_^_0_^_</span>": "<span translate=no>_^_0_^_</span>",
|
||||
"<span translate=no>_^_0_^_</span><p> </p>\n": "<span translate=no>_^_0_^_</span><p> </p>\n",
|
||||
"<ul><li><span translate=no>_^_0_^_</span> creates a new empty history </li>\n<li><span translate=no>_^_1_^_</span> is the number of iterations to train on <span translate=no>_^_2_^_</span> </li>\n<li><span translate=no>_^_3_^_</span> is the number of players</li></ul>\n": "<ul><li><span translate=no>_^_0_^_</span> \u0db1\u0dc0 \u0dc4\u0dd2\u0dc3\u0dca \u0d89\u0dad\u0dd2\u0dc4\u0dcf\u0dc3\u0dba\u0d9a\u0dca \u0db1\u0dd2\u0dbb\u0dca\u0db8\u0dcf\u0dab\u0dba \u0d9a\u0dbb\u0dba\u0dd2 </li>\n<li><span translate=no>_^_1_^_</span> \u0db8\u0dad \u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0da7 \u0db4\u0dd4\u0db1\u0dbb\u0dcf\u0dc0\u0dbb\u0dca\u0dad\u0db1 \u0dc3\u0d82\u0d9b\u0dca\u0dba\u0dcf\u0dc0 <span translate=no>_^_2_^_</span> </li>\n<li><span translate=no>_^_3_^_</span> \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0d9a\u0dba\u0db1\u0dca \u0dc3\u0d82\u0d9b\u0dca\u0dba\u0dcf\u0dc0</li></ul>\n",
|
||||
"Regret Minimization in Games with Incomplete Information (CFR)": "\u0d85\u0dc3\u0db8\u0dca\u0db4\u0dd6\u0dbb\u0dca\u0dab \u0dad\u0ddc\u0dbb\u0dad\u0dd4\u0dbb\u0dd4 \u0dc3\u0dc4\u0dd2\u0dad \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0dcf \u0dc0\u0dbd \u0d85\u0dc0\u0db8 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4 \u0d9a\u0dbb\u0db1\u0dca\u0db1 (CFR)",
|
||||
"This is an annotated implementation/tutorial of Regret Minimization in Games with Incomplete Information": "\u0db8\u0dd9\u0dba \u0d85\u0dc3\u0db8\u0dca\u0db4\u0dd6\u0dbb\u0dca\u0dab \u0dad\u0ddc\u0dbb\u0dad\u0dd4\u0dbb\u0dd4 \u0dc3\u0dc4\u0dd2\u0dad \u0d9a\u0dca\u0dbb\u0dd3\u0da9\u0dcf \u0dc0\u0dbd \u0d9a\u0db1\u0d9c\u0dcf\u0da7\u0dd4\u0dc0 \u0d85\u0dc0\u0db8 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0db4\u0dd2\u0dc5\u0dd2\u0db6\u0db3 \u0dc0\u0dd2\u0d9a\u0da7 \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0dad\u0dca\u0db8\u0d9a \u0d9a\u0dd2\u0dbb\u0dd3\u0db8/\u0db1\u0dd2\u0db6\u0db1\u0dca\u0db0\u0db1\u0dba\u0d9a\u0dd2"
|
||||
}
|
||||
@@ -0,0 +1,147 @@
|
||||
{
|
||||
"<h1>Regret Minimization in Games with Incomplete Information (CFR)</h1>\n": "<h1>\u4fe1\u606f\u4e0d\u5b8c\u6574\uff08CFR\uff09\u6e38\u620f\u4e2d\u7684\u9057\u61be\u6700\u5c0f\u5316</h1>\n",
|
||||
"<h2>Calculate strategy</h2>\n<p>Calculate current strategy using <a href=\"#RegretMatching\">regret matching</a>.</p>\n<span translate=no>_^_0_^_</span><p>where <span translate=no>_^_1_^_</span></p>\n": "<h2>\u8ba1\u7b97\u7b56\u7565</h2>\n<p>\u4f7f\u7528<a href=\"#RegretMatching\">\u540e\u6094\u5339\u914d</a>\u8ba1\u7b97\u5f53\u524d\u7b56\u7565\u3002</p>\n<span translate=no>_^_0_^_</span><p>\u5728\u54ea\u91cc<span translate=no>_^_1_^_</span></p>\n",
|
||||
"<h2>Counterfactual Regret Minimization (CFR) Algorithm</h2>\n<p>We do chance sampling (<strong>CS</strong>) where all the chance events (nodes) are sampled and all other events (nodes) are explored.</p>\n<p>We can ignore the term <span translate=no>_^_0_^_</span> since it's the same for all terminal histories since we are doing chance sampling and it cancels out when calculating strategy (common in numerator and denominator).</p>\n": "<h2>\u53cd\u4e8b\u5b9e\u9057\u61be\u6700\u5c0f\u5316 (CFR) \u7b97\u6cd5</h2>\n<p>\u6211\u4eec\u8fdb\u884c\u673a\u4f1a\u91c7\u6837\uff08<strong>CS</strong>\uff09\uff0c\u5176\u4e2d\u5bf9\u6240\u6709\u673a\u4f1a\u4e8b\u4ef6\uff08\u8282\u70b9\uff09\u8fdb\u884c\u91c7\u6837\uff0c\u5e76\u63a2\u7d22\u6240\u6709\u5176\u4ed6\u4e8b\u4ef6\uff08\u8282\u70b9\uff09\u3002</p>\n<p>\u6211\u4eec\u53ef\u4ee5\u5ffd\u7565\u8be5\u672f\u8bed\uff0c<span translate=no>_^_0_^_</span>\u56e0\u4e3a\u5b83\u5bf9\u6240\u6709\u7ec8\u7aef\u5386\u53f2\u90fd\u662f\u76f8\u540c\u7684\uff0c\u56e0\u4e3a\u6211\u4eec\u6b63\u5728\u8fdb\u884c\u673a\u4f1a\u62bd\u6837\uff0c\u5e76\u4e14\u5728\u8ba1\u7b97\u7b56\u7565\u65f6\u5b83\u4f1a\u88ab\u62b5\u6d88\uff08\u5728\u5206\u5b50\u548c\u5206\u6bcd\u4e2d\u5f88\u5e38\u89c1\uff09\u3002</p>\n",
|
||||
"<h2>Get average strategy</h2>\n<p><span translate=no>_^_0_^_</span></p>\n": "<h2>\u83b7\u53d6\u5e73\u5747\u7b56\u7565</h2>\n<p><span translate=no>_^_0_^_</span></p>\n",
|
||||
"<h2>Introduction</h2>\n": "<h2>\u7b80\u4ecb</h2>\n",
|
||||
"<h3><a href=\"#History\">History</a></h3>\n": "<h3><a href=\"#History\">\u5386\u53f2</a></h3>\n",
|
||||
"<h3><a href=\"#InfoSet\">Information Set <span translate=no>_^_0_^_</span></a></h3>\n": "<h3><a href=\"#InfoSet\">\u4fe1\u606f\u96c6<span translate=no>_^_0_^_</span></a></h3>\n",
|
||||
"<h3>Action</h3>\n": "<h3>\u884c\u52a8</h3>\n",
|
||||
"<h3>Configurable CFR module</h3>\n": "<h3>\u53ef\u914d\u7f6e CFR \u6a21\u5757</h3>\n",
|
||||
"<h3>Counterfactual regret</h3>\n": "<h3>\u53cd\u4e8b\u5b9e\u7684\u9057\u61be</h3>\n",
|
||||
"<h3>Information set tracker</h3>\n<p>This is a small helper class to track data from information sets</p>\n": "<h3>\u4fe1\u606f\u96c6\u8ffd\u8e2a\u5668</h3>\n<p>\u8fd9\u662f\u4e00\u4e2a\u5c0f\u5e2e\u52a9\u7c7b\uff0c\u7528\u4e8e\u8ddf\u8e2a\u4fe1\u606f\u96c6\u4e2d\u7684\u6570\u636e</p>\n",
|
||||
"<h3>Iteratively update <span translate=no>_^_0_^_</span></h3>\n<p>This updates the strategies for <span translate=no>_^_1_^_</span> iterations.</p>\n": "<h3>\u8fed\u4ee3\u66f4\u65b0<span translate=no>_^_0_^_</span></h3>\n<p>\u8fd9\u66f4\u65b0\u4e86<span translate=no>_^_1_^_</span>\u8fed\u4ee3\u7b56\u7565\u3002</p>\n",
|
||||
"<h3>Monte Carlo CFR (MCCFR)</h3>\n": "<h3>\u8499\u7279\u5361\u6d1b CFR (MCCFR)</h3>\n",
|
||||
"<h3>Nash Equilibrium</h3>\n": "<h3>\u7eb3\u4ec0\u5747\u8861</h3>\n",
|
||||
"<h3>Player</h3>\n": "<h3>\u73a9\u5bb6</h3>\n",
|
||||
"<h3>Probability of History</h3>\n": "<h3>\u5386\u53f2\u6982\u7387</h3>\n",
|
||||
"<h3>Regret Matching</h3>\n": "<h3>\u9057\u61be\u7684\u914d\u5bf9</h3>\n",
|
||||
"<h3>Regret Minimization</h3>\n": "<h3>\u9057\u61be\u6700\u5c0f\u5316</h3>\n",
|
||||
"<h3>Strategy</h3>\n": "<h3>\u7b56\u7565</h3>\n",
|
||||
"<h3>Utility (Pay off)</h3>\n": "<h3>\u516c\u7528\u4e8b\u4e1a\uff08\u8fd8\u6e05\uff09</h3>\n",
|
||||
"<h3>Walk Tree</h3>\n<p>This function walks the game tree.</p>\n<ul><li><span translate=no>_^_0_^_</span> is the current history <span translate=no>_^_1_^_</span> </li>\n<li><span translate=no>_^_2_^_</span> is the player <span translate=no>_^_3_^_</span> that we are computing regrets of </li>\n<li><a href=\"#HistoryProbability\"><span translate=no>_^_4_^_</span></a> is <span translate=no>_^_5_^_</span> </li>\n<li><a href=\"#HistoryProbability\"><span translate=no>_^_6_^_</span></a> is <span translate=no>_^_7_^_</span></li></ul>\n<p>It returns the expected utility, for the history <span translate=no>_^_8_^_</span> <span translate=no>_^_9_^_</span> where <span translate=no>_^_10_^_</span> is the set of terminal histories with prefix <span translate=no>_^_11_^_</span></p>\n<p>While walking the tee it updates the total regrets <span translate=no>_^_12_^_</span>.</p>\n": "<h3>\u8d70\u6811</h3>\n<p>\u6b64\u51fd\u6570\u904d\u5386\u6e38\u620f\u6811\u3002</p>\n<ul><li><span translate=no>_^_0_^_</span>\u662f\u5f53\u524d\u7684\u5386\u53f2<span translate=no>_^_1_^_</span></li>\n<li><span translate=no>_^_2_^_</span>\u662f\u6211\u4eec\u6b63\u5728\u8ba1\u7b97\u540e\u6094<span translate=no>_^_3_^_</span>\u7684\u90a3\u4e2a\u73a9\u5bb6</li>\n<li><a href=\"#HistoryProbability\"><span translate=no>_^_4_^_</span></a>\u662f<span translate=no>_^_5_^_</span></li>\n</ul><li><a href=\"#HistoryProbability\"><span translate=no>_^_6_^_</span></a>\u662f<span translate=no>_^_7_^_</span></li>\n<p>\u5b83\u8fd4\u56de\u9884\u671f\u7684\u5b9e\u7528\u7a0b\u5e8f\uff0c\u5bf9\u4e8e\u5386\u53f2\u8bb0\u5f55\uff0c<span translate=no>_^_8_^_</span><span translate=no>_^_9_^_</span>\u5176\u4e2d<span translate=no>_^_10_^_</span>\u662f\u4e00\u7ec4\u5e26\u6709\u524d\u7f00\u7684\u7ec8\u7aef\u5386\u53f2\u8bb0\u5f55<span translate=no>_^_11_^_</span></p>\n<p>\u5728\u884c\u8d70\u53d1\u7403\u53f0\u65f6\uff0c\u5b83\u4f1a\u66f4\u65b0\u603b\u7684\u9057\u61be<span translate=no>_^_12_^_</span>\u3002</p>\n",
|
||||
"<p> <a id=\"History\"></a></p>\n<h2>History</h2>\n<p>History <span translate=no>_^_0_^_</span> is a sequence of actions including chance events, and <span translate=no>_^_1_^_</span> is the set of all histories.</p>\n<p>This class should be extended with game specific logic.</p>\n": "<p><a id=\"History\"></a></p>\n<h2>\u5386\u53f2</h2>\n<p>\u5386\u53f2<span translate=no>_^_0_^_</span>\u662f\u5305\u62ec\u5076\u7136\u4e8b\u4ef6\u5728\u5185\u7684\u4e00\u7cfb\u5217\u52a8\u4f5c\uff0c<span translate=no>_^_1_^_</span>\u662f\u6240\u6709\u5386\u53f2\u7684\u96c6\u5408\u3002</p>\n<p>\u8fd9\u4e2a\u7c7b\u5e94\u8be5\u4f7f\u7528\u6e38\u620f\u7279\u5b9a\u7684\u903b\u8f91\u8fdb\u884c\u6269\u5c55\u3002</p>\n",
|
||||
"<p> <a id=\"InfoSet\"></a></p>\n<h2>Information Set <span translate=no>_^_0_^_</span></h2>\n": "<p><a id=\"InfoSet\"></a></p>\n<h2>\u4fe1\u606f\u96c6<span translate=no>_^_0_^_</span></h2>\n",
|
||||
"<p> <a id=\"terminal_utility\"></a> Utility of player <span translate=no>_^_0_^_</span> for a terminal history. <span translate=no>_^_1_^_</span> where <span translate=no>_^_2_^_</span></p>\n": "<p><a id=\"terminal_utility\"></a>\u7ec8\u7aef\u5386\u53f2\u8bb0\u5f55<span translate=no>_^_0_^_</span>\u7684\u64ad\u653e\u5668\u5b9e\u7528\u7a0b\u5e8f\u3002<span translate=no>_^_1_^_</span>\u5728\u54ea\u91cc<span translate=no>_^_2_^_</span></p>\n",
|
||||
"<p> Actions <span translate=no>_^_0_^_</span></p>\n": "<p>\u884c\u52a8<span translate=no>_^_0_^_</span></p>\n",
|
||||
"<p> Add an action to the history.</p>\n": "<p>\u5728\u5386\u53f2\u8bb0\u5f55\u4e2d\u6dfb\u52a0\u64cd\u4f5c\u3002</p>\n",
|
||||
"<p> Create a new <a href=\"#InfoSet\">information set</a> for the current player</p>\n": "<p>\u4e3a\u5f53\u524d\u73a9\u5bb6\u521b\u5efa\u65b0\u7684<a href=\"#InfoSet\">\u4fe1\u606f\u96c6</a></p>\n",
|
||||
"<p> Get <a href=\"#InfoSet\">information set</a> for the current player</p>\n": "<p><a href=\"#InfoSet\">\u83b7\u53d6\u5f53\u524d\u73a9\u5bb6\u7684\u4fe1\u606f\u96c6</a></p>\n",
|
||||
"<p> Get current player, denoted by <span translate=no>_^_0_^_</span>, where <span translate=no>_^_1_^_</span> is known as <strong>Player function</strong>.</p>\n<p>If <span translate=no>_^_2_^_</span> it means that current event is a chance <span translate=no>_^_3_^_</span> event. Something like dealing cards, or opening common cards in poker.</p>\n": "<p>\u83b7\u53d6\u5f53\u524d\u73a9\u5bb6\uff0c\u7528\u8868\u793a<span translate=no>_^_0_^_</span>\uff0c\u5176\u4e2d<span translate=no>_^_1_^_</span>\u79f0\u4e3a<strong>\u73a9\u5bb6\u51fd\u6570</strong>\u3002</p>\n<p>\u5982\u679c<span translate=no>_^_2_^_</span>\u8fd9\u610f\u5473\u7740\u5f53\u524d\u4e8b\u4ef6\u662f\u5076\u7136<span translate=no>_^_3_^_</span>\u4e8b\u4ef6\u3002\u6bd4\u5982\u53d1\u724c\uff0c\u6216\u5728\u6251\u514b\u4e2d\u6253\u5f00\u666e\u901a\u724c\u3002</p>\n",
|
||||
"<p> Human readable representation</p>\n": "<p>\u4eba\u7c7b\u53ef\u8bfb\u7684\u8868\u793a</p>\n",
|
||||
"<p> Initialize <strong>CFR</strong> algorithm</p>\n": "<p>\u521d\u59cb\u5316 <strong>CFR</strong> \u7b97\u6cd5</p>\n",
|
||||
"<p> Initialize</p>\n": "<p>\u521d\u59cb\u5316</p>\n",
|
||||
"<p> Load data from a saved dictionary</p>\n": "<p>\u4ece\u4fdd\u5b58\u7684\u5b57\u5178\u4e2d\u52a0\u8f7d\u6570\u636e</p>\n",
|
||||
"<p> Load information set from a saved dictionary</p>\n": "<p>\u4ece\u4fdd\u5b58\u7684\u5b57\u5178\u4e2d\u52a0\u8f7d\u4fe1\u606f\u96c6</p>\n",
|
||||
"<p> Returns the information set <span translate=no>_^_0_^_</span> of the current player for a given history <span translate=no>_^_1_^_</span></p>\n": "<p>\u8fd4\u56de\u7ed9<span translate=no>_^_0_^_</span>\u5b9a\u5386\u53f2\u8bb0\u5f55\u4e2d\u5f53\u524d\u73a9\u5bb6\u7684\u4fe1\u606f\u96c6<span translate=no>_^_1_^_</span></p>\n",
|
||||
"<p> Sample a chance when <span translate=no>_^_0_^_</span>.</p>\n": "<p>\u5728\u4ec0\u4e48\u65f6\u5019\u62bd\u6837\u673a\u4f1a<span translate=no>_^_0_^_</span>.</p>\n",
|
||||
"<p> Save the information set to a dictionary</p>\n": "<p>\u5c06\u4fe1\u606f\u96c6\u4fdd\u5b58\u5230\u5b57\u5178\u4e2d</p>\n",
|
||||
"<p> Set tracking indicators</p>\n": "<p>\u8bbe\u7f6e\u8ffd\u8e2a\u6307\u793a\u5668</p>\n",
|
||||
"<p> Track the data from all information sets</p>\n": "<p>\u8ddf\u8e2a\u6240\u6709\u4fe1\u606f\u96c6\u4e2d\u7684\u6570\u636e</p>\n",
|
||||
"<p> Whether it's a terminal history; i.e. game over. <span translate=no>_^_0_^_</span></p>\n": "<p>\u65e0\u8bba\u662f\u7ec8\u7aef\u5386\u53f2\uff1b\u5373\u6e38\u620f\u7ed3\u675f\u3002<span translate=no>_^_0_^_</span></p>\n",
|
||||
"<p> Whether the next step is a chance step; something like dealing a new card. <span translate=no>_^_0_^_</span></p>\n": "<p>\u4e0b\u4e00\u6b65\u662f\u5426\u662f\u673a\u4f1a\u6b65\u9aa4\uff1b\u6bd4\u5982\u53d1\u4e00\u5f20\u65b0\u724c\u3002<span translate=no>_^_0_^_</span></p>\n",
|
||||
"<p><a href=\"https://colab.research.google.com/github/labmlai/annotated_deep_learning_paper_implementations/blob/master/labml_nn/cfr/kuhn/experiment.ipynb\"><span translate=no>_^_0_^_</span></a></p>\n": "<p><a href=\"https://colab.research.google.com/github/labmlai/annotated_deep_learning_paper_implementations/blob/master/labml_nn/cfr/kuhn/experiment.ipynb\"><span translate=no>_^_0_^_</span></a></p>\n",
|
||||
"<p><a href=\"https://twitter.com/labmlai/status/1407186002255380484\"><span translate=no>_^_0_^_</span></a> Twitter thread</p>\n": "<p><a href=\"https://twitter.com/labmlai/status/1407186002255380484\"><span translate=no>_^_0_^_</span></a>\u63a8\u7279\u8bdd\u9898</p>\n",
|
||||
"<p><a id=\"CounterfactualRegret\"></a></p>\n": "<p><a id=\"CounterfactualRegret\"></a></p>\n",
|
||||
"<p><a id=\"HistoryProbability\"></a></p>\n": "<p><a id=\"HistoryProbability\"></a></p>\n",
|
||||
"<p><a id=\"MCCFR\"></a></p>\n": "<p><a id=\"MCCFR\"></a></p>\n",
|
||||
"<p><a id=\"NashEquilibrium\"></a></p>\n": "<p><a id=\"NashEquilibrium\"></a></p>\n",
|
||||
"<p><a id=\"RegretMatching\"></a></p>\n": "<p><a id=\"RegretMatching\"></a></p>\n",
|
||||
"<p><a id=\"Strategy\"></a></p>\n": "<p><a id=\"Strategy\"></a></p>\n",
|
||||
"<p><em>Let's dive into the code!</em></p>\n": "<p><em>\u8ba9\u6211\u4eec\u6df1\u5165\u7814\u7a76\u4e00\u4e0b\u4ee3\u7801\uff01</em></p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> </p>\n": "<p><span translate=no>_^_0_^_</span></p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> is a set of subsets of <span translate=no>_^_1_^_</span> (<span translate=no>_^_2_^_</span>) where we look at only a single block <span translate=no>_^_3_^_</span> in an iteration. Union of all subsets spans <span translate=no>_^_4_^_</span> (<span translate=no>_^_5_^_</span>). <span translate=no>_^_6_^_</span> is the probability of picking block <span translate=no>_^_7_^_</span>.</p>\n": "<p><span translate=no>_^_0_^_</span>\u662f<span translate=no>_^_1_^_</span> (<span translate=no>_^_2_^_</span>) \u7684\u4e00\u7ec4\u5b50\u96c6\uff0c\u6211\u4eec\u5728\u8fed\u4ee3<span translate=no>_^_3_^_</span>\u4e2d\u53ea\u67e5\u770b\u5355\u4e2a\u5757\u3002\u6240\u6709\u5b50\u96c6\u7684\u8054\u5408 spans<span translate=no>_^_4_^_</span> (<span translate=no>_^_5_^_</span>)\u3002<span translate=no>_^_6_^_</span>\u662f\u9009\u53d6\u533a\u5757\u7684\u6982\u7387<span translate=no>_^_7_^_</span>\u3002</p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> is known as the <strong>information partition</strong> of player <span translate=no>_^_1_^_</span>.</p>\n": "<p><span translate=no>_^_0_^_</span>\u88ab\u79f0\u4e3a\u73a9\u5bb6<strong>\u7684\u4fe1\u606f\u5206\u533a</strong><span translate=no>_^_1_^_</span>\u3002</p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> is strategies of all players except <span translate=no>_^_1_^_</span></p>\n": "<p><span translate=no>_^_0_^_</span>\u662f\u6240\u6709\u73a9\u5bb6\u7684\u7b56\u7565<span translate=no>_^_1_^_</span></p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> is the <strong>strategy profile</strong> which consists of strategies of all players <span translate=no>_^_1_^_</span></p>\n": "<p><span translate=no>_^_0_^_</span>\u662f<strong>\u7b56\u7565\u914d\u7f6e\u6587\u4ef6</strong>\uff0c\u7531\u6240\u6709\u73a9\u5bb6\u7684\u7b56\u7565\u7ec4\u6210<span translate=no>_^_1_^_</span></p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> is the expected utility (payoff) for player <span translate=no>_^_1_^_</span> with strategy profile <span translate=no>_^_2_^_</span>.</p>\n": "<p><span translate=no>_^_0_^_</span>\u662f\u5177\u6709\u7b56\u7565\u914d\u7f6e\u6587\u4ef6\u7684\u73a9\u5bb6<span translate=no>_^_1_^_</span>\u7684\u9884\u671f\u6548\u7528\uff08\u56de\u62a5\uff09<span translate=no>_^_2_^_</span>\u3002</p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> is the probability of picking <span translate=no>_^_1_^_</span> in current iteration; i.e. <span translate=no>_^_2_^_</span> - the sum of <span translate=no>_^_3_^_</span> where <span translate=no>_^_4_^_</span>.</p>\n": "<p><span translate=no>_^_0_^_</span>\u662f\u5f53\u524d\u8fed\u4ee3<span translate=no>_^_1_^_</span>\u4e2d\u9009\u53d6\u7684\u6982\u7387\uff1b\u5373<span translate=no>_^_2_^_</span>-where<span translate=no>_^_3_^_</span> \u7684\u603b\u548c<span translate=no>_^_4_^_</span>\u3002</p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> is the probability of reaching <span translate=no>_^_1_^_</span> with only player <span translate=no>_^_2_^_</span>'s contribution. That is, <span translate=no>_^_3_^_</span></p>\n": "<p><span translate=no>_^_0_^_</span>\u662f\u4ec5\u901a\u8fc7\u73a9\u5bb6\u7684\u8d21\u732e\u8fbe\u5230\u76ee\u6807<span translate=no>_^_1_^_</span><span translate=no>_^_2_^_</span>\u7684\u6982\u7387\u3002\u4e5f\u5c31\u662f\u8bf4\uff0c<span translate=no>_^_3_^_</span></p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> is the probability of reaching the history <span translate=no>_^_1_^_</span> with strategy profile <span translate=no>_^_2_^_</span>. <span translate=no>_^_3_^_</span> is the probability of reaching <span translate=no>_^_4_^_</span> without player <span translate=no>_^_5_^_</span>'s contribution; i.e. player <span translate=no>_^_6_^_</span> took the actions to follow <span translate=no>_^_7_^_</span> with a probability of <span translate=no>_^_8_^_</span>.</p>\n": "<p><span translate=no>_^_0_^_</span>\u662f<span translate=no>_^_1_^_</span>\u4f7f\u7528\u7b56\u7565\u914d\u7f6e\u6587\u4ef6\u8fdb\u5165\u5386\u53f2\u8bb0\u5f55\u7684\u6982\u7387<span translate=no>_^_2_^_</span>\u3002<span translate=no>_^_3_^_</span>\u662f\u5728\u6ca1\u6709\u73a9\u5bb6\u8d21\u732e<span translate=no>_^_4_^_</span>\u7684\u60c5\u51b5\u4e0b\u5230\u8fbe<span translate=no>_^_5_^_</span>\u7684\u6982\u7387\uff1b\u5373\u73a9\u5bb6\u91c7\u53d6<span translate=no>_^_6_^_</span>\u4e86\u8981\u9075\u5faa\u7684\u52a8\u4f5c<span translate=no>_^_7_^_</span>\u6982\u7387\u4e3a<span translate=no>_^_8_^_</span>\u3002</p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> is the set of all histories that belong to a given information set; i.e. all those histories look the same in the eye of the player.</p>\n": "<p><span translate=no>_^_0_^_</span>\u662f\u5c5e\u4e8e\u7ed9\u5b9a\u4fe1\u606f\u96c6\u7684\u6240\u6709\u5386\u53f2\u8bb0\u5f55\u7684\u96c6\u5408\uff1b\u4e5f\u5c31\u662f\u8bf4\uff0c\u6240\u6709\u8fd9\u4e9b\u5386\u53f2\u5728\u73a9\u5bb6\u773c\u4e2d\u770b\u8d77\u6765\u90fd\u662f\u4e00\u6837\u7684\u3002</p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> is the set of terminal histories (game over).</p>\n": "<p><span translate=no>_^_0_^_</span>\u662f\u4e00\u7ec4\u7ec8\u7aef\u5386\u53f2\u8bb0\u5f55\uff08\u6e38\u620f\u7ed3\u675f\uff09\u3002</p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> set of all information sets. </p>\n": "<p><span translate=no>_^_0_^_</span>\u6240\u6709\u4fe1\u606f\u96c6\u7684\u96c6\u5408\u3002</p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span> where <span translate=no>_^_1_^_</span></p>\n": "<p><span translate=no>_^_0_^_</span>\u5728\u54ea\u91cc<span translate=no>_^_1_^_</span></p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span>, the <a href=\"#Strategy\">strategy</a> of player <span translate=no>_^_1_^_</span> </p>\n": "<p><span translate=no>_^_0_^_</span>\uff0c\u73a9\u5bb6\u7684<a href=\"#Strategy\">\u7b56\u7565</a><span translate=no>_^_1_^_</span></p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span>-Nash equilibrium is,</p>\n": "<p><span translate=no>_^_0_^_</span>-\u7eb3\u4ec0\u5747\u8861\u662f\uff0c</p>\n",
|
||||
"<p><span translate=no>_^_0_^_</span></p>\n": "<p><span translate=no>_^_0_^_</span></p>\n",
|
||||
"<p><strong>Counterfactual value</strong> <span translate=no>_^_0_^_</span> is the expected utility for player <span translate=no>_^_1_^_</span> if if player <span translate=no>_^_2_^_</span> tried to reach <span translate=no>_^_3_^_</span> (took the actions leading to <span translate=no>_^_4_^_</span> with a probability of <span translate=no>_^_5_^_</span>).</p>\n": "\u5982\u679c@@ <p>\u73a9\u5bb6<span translate=no>_^_2_^_</span>\u5c1d\u8bd5\u5230\u8fbe<span translate=no>_^_3_^_</span>\uff08\u91c7\u53d6\u4e86\u884c\u52a8\uff09\uff0c<span translate=no>_^_1_^_</span>\u5219<strong>\u53cd\u4e8b\u5b9e\u503c</strong><span translate=no>_^_0_^_</span>\u662f\u73a9\u5bb6\u7684\u9884\u671f\u6548\u7528\u5bfc\u81f4<span translate=no>_^_4_^_</span>\u7684\u6982\u7387\u4e3a<span translate=no>_^_5_^_</span>\uff09\u3002</p>\n",
|
||||
"<p><strong>Immediate counterfactual regret</strong> is,</p>\n": "<p><strong>\u76f4\u63a5\u7684\u53cd\u4e8b\u5b9e\u9057\u61be</strong>\u662f\uff0c</p>\n",
|
||||
"<p><strong>Information set</strong> <span translate=no>_^_0_^_</span> for player <span translate=no>_^_1_^_</span> is similar to a history <span translate=no>_^_2_^_</span> but only contains the actions visible to player <span translate=no>_^_3_^_</span>. That is, the history <span translate=no>_^_4_^_</span> will contain actions/events such as cards dealt to the opposing player while <span translate=no>_^_5_^_</span> will not have them.</p>\n": "<p><span translate=no>_^_0_^_</span>\u4e3a\u73a9\u5bb6<strong><span translate=no>_^_1_^_</span>\u8bbe\u7f6e\u7684\u4fe1\u606f</strong>\u4e0e\u5386\u53f2\u8bb0\u5f55\u7c7b\u4f3c\uff0c<span translate=no>_^_2_^_</span>\u4f46\u4ec5\u5305\u542b\u73a9\u5bb6\u53ef\u89c1\u7684\u52a8\u4f5c<span translate=no>_^_3_^_</span>\u3002\u4e5f\u5c31\u662f\u8bf4\uff0c\u5386\u53f2\u8bb0\u5f55<span translate=no>_^_4_^_</span>\u5c06\u5305\u542b\u52a8\u4f5c/\u4e8b\u4ef6\uff0c\u4f8b\u5982\u53d1\u7ed9\u5bf9\u65b9\u73a9\u5bb6\u7684\u724c\uff0c\u800c<span translate=no>_^_5_^_</span>\u4e0d\u4f1a\u6709\u3002</p>\n",
|
||||
"<p><strong>Strategy of player</strong> <span translate=no>_^_0_^_</span>, <span translate=no>_^_1_^_</span> is a distribution over actions <span translate=no>_^_2_^_</span>, where <span translate=no>_^_3_^_</span> is the set of all strategies for player <span translate=no>_^_4_^_</span>. Strategy on <span translate=no>_^_5_^_</span>-th iteration is denoted by <span translate=no>_^_6_^_</span>.</p>\n": "<p><strong>\u73a9\u5bb6\u7684\u7b56\u7565</strong><span translate=no>_^_0_^_</span>\uff0c<span translate=no>_^_1_^_</span>\u662f\u5bf9\u52a8\u4f5c\u7684\u5206\u5e03<span translate=no>_^_2_^_</span>\uff0c\u5176\u4e2d<span translate=no>_^_3_^_</span>\u662f\u73a9\u5bb6\u6240\u6709\u7b56\u7565\u7684\u96c6\u5408<span translate=no>_^_4_^_</span>\u3002<span translate=no>_^_5_^_</span>\u7b2c-th \u6b21\u8fed\u4ee3\u7684\u7b56\u7565\u7528\u8868\u793a<span translate=no>_^_6_^_</span>\u3002</p>\n",
|
||||
"<p>A dictionary for <span translate=no>_^_0_^_</span> set of all information sets </p>\n": "<p>\u5305\u542b\u6240\u6709\u4fe1\u606f<span translate=no>_^_0_^_</span>\u96c6\u5408\u7684\u5b57\u5178</p>\n",
|
||||
"<p>A player <span translate=no>_^_0_^_</span> where <span translate=no>_^_1_^_</span> is the set of players </p>\n": "<p>\u4e00\u4e2a\u73a9\u5bb6<span translate=no>_^_0_^_</span><span translate=no>_^_1_^_</span>\uff0c\u73a9\u5bb6\u96c6\u5408\u5728\u54ea\u91cc</p>\n",
|
||||
"<p>A player is denoted by <span translate=no>_^_0_^_</span>, where <span translate=no>_^_1_^_</span> is the set of players.</p>\n": "<p>\u73a9\u5bb6\u7528\u8868\u793a<span translate=no>_^_0_^_</span>\uff0c\u5176\u4e2d<span translate=no>_^_1_^_</span>\u662f\u73a9\u5bb6\u96c6\u5408\u3002</p>\n",
|
||||
"<p>Action <span translate=no>_^_0_^_</span>, <span translate=no>_^_1_^_</span> where <span translate=no>_^_2_^_</span> is a non-terminal <a href=\"#History\">history</a> </p>\n": "<p>\u64cd\u4f5c<span translate=no>_^_0_^_</span>\uff0c<span translate=no>_^_1_^_</span>\u5176\u4e2d<span translate=no>_^_2_^_</span>\u662f\u975e\u7ec8\u7aef<a href=\"#History\">\u5386\u53f2\u8bb0\u5f55</a></p>\n",
|
||||
"<p>Action <span translate=no>_^_0_^_</span>, <span translate=no>_^_1_^_</span> where <span translate=no>_^_2_^_</span> is a non-terminal <a href=\"#History\">history</a>.</p>\n": "<p>\u64cd\u4f5c<span translate=no>_^_0_^_</span>\uff0c<span translate=no>_^_1_^_</span>\u5176\u4e2d<span translate=no>_^_2_^_</span>\u662f\u975e\u7ec8\u7aef<a href=\"#History\">\u5386\u53f2\u8bb0\u5f55</a>\u3002</p>\n",
|
||||
"<p>And use that to update <span translate=no>_^_0_^_</span> and calculate the strategy <span translate=no>_^_1_^_</span> on each iteration. Finally, we calculate the overall average strategy <span translate=no>_^_2_^_</span>.</p>\n": "<p>\u7136\u540e\u7528\u5b83\u6765\u66f4\u65b0<span translate=no>_^_0_^_</span>\u548c\u8ba1\u7b97\u6bcf\u6b21\u8fed\u4ee3<span translate=no>_^_1_^_</span>\u7684\u7b56\u7565\u3002\u6700\u540e\uff0c\u6211\u4eec\u8ba1\u7b97\u6574\u4f53\u5e73\u5747\u7b56\u7565<span translate=no>_^_2_^_</span>\u3002</p>\n",
|
||||
"<p>Average overall regret for Player <span translate=no>_^_0_^_</span> is the average regret of not following the optimal strategy in all <span translate=no>_^_1_^_</span> rounds of iterations.</p>\n": "<p>\u73a9\u5bb6\u7684\u5e73\u5747\u603b\u4f53\u9057\u61be<span translate=no>_^_0_^_</span>\u662f\u5728\u6240\u6709<span translate=no>_^_1_^_</span>\u56de\u5408\u8fed\u4ee3\u4e2d\u90fd\u6ca1\u6709\u9075\u5faa\u6700\u4f73\u7b56\u7565\u7684\u5e73\u5747\u9057\u61be\u3002</p>\n",
|
||||
"<p>Computing <span translate=no>_^_0_^_</span> requires expanding the full game tree on each iteration.</p>\n": "<p>\u8ba1\u7b97<span translate=no>_^_0_^_</span>\u9700\u8981\u5728\u6bcf\u6b21\u8fed\u4ee3\u65f6\u6269\u5c55\u5b8c\u6574\u7684\u6e38\u620f\u6811\u3002</p>\n",
|
||||
"<p>For two players, Nash equilibrium is a <a href=\"#Strategy\">strategy profile</a> where</p>\n": "<p>\u5bf9\u4e8e\u4e24\u4e2a\u53c2\u4e0e\u8005\u6765\u8bf4\uff0c\u7eb3\u4ec0\u5747\u8861\u662f\u4e00\u79cd<a href=\"#Strategy\">\u7b56\u7565\u914d\u7f6e\u6587\u4ef6</a>\uff0c\u5176\u4e2d</p>\n",
|
||||
"<p>From the definition of <span translate=no>_^_0_^_</span>, <span translate=no>_^_1_^_</span></p>\n": "<p>\u4ece\u5b9a\u4e49\u6765\u770b<span translate=no>_^_0_^_</span>\uff0c<span translate=no>_^_1_^_</span></p>\n",
|
||||
"<p>Get current player's information set for <span translate=no>_^_0_^_</span> </p>\n": "<p>\u83b7\u53d6\u5f53\u524d\u73a9\u5bb6\u7684\u4fe1\u606f\u96c6<span translate=no>_^_0_^_</span></p>\n",
|
||||
"<p>Here is a <a href=\"kuhn/index.html\">Kuhn Poker</a> implementation to try CFR on Kuhn Poker.</p>\n": "<p>\u8fd9\u91cc\u6709\u4e00\u4e2a<a href=\"kuhn/index.html\">\u5e93\u6069\u6251\u514b</a>\u5b9e\u73b0\uff0c\u53ef\u4ee5\u5728\u5e93\u6069\u6251\u514b\u4e0a\u8bd5\u7528CFR\u3002</p>\n",
|
||||
"<p>History <span translate=no>_^_0_^_</span> is a sequence of actions including chance events, and <span translate=no>_^_1_^_</span> is the set of all histories.</p>\n": "<p>\u5386\u53f2<span translate=no>_^_0_^_</span>\u662f\u5305\u62ec\u5076\u7136\u4e8b\u4ef6\u5728\u5185\u7684\u4e00\u7cfb\u5217\u52a8\u4f5c\uff0c<span translate=no>_^_1_^_</span>\u662f\u6240\u6709\u5386\u53f2\u7684\u96c6\u5408\u3002</p>\n",
|
||||
"<p>If <span translate=no>_^_0_^_</span> for all players then <span translate=no>_^_1_^_</span> is a <span translate=no>_^_2_^_</span>-Nash equilibrium.</p>\n": "<p>\u5982\u679c<span translate=no>_^_0_^_</span>\u5bf9\u6240\u6709\u73a9\u5bb6\u6765\u8bf4\u90fd<span translate=no>_^_1_^_</span>\u662f<span translate=no>_^_2_^_</span>-Nash \u5747\u8861\u3002</p>\n",
|
||||
"<p>If <span translate=no>_^_0_^_</span>, </p>\n": "<p>\u5982\u679c<span translate=no>_^_0_^_</span>\uff0c</p>\n",
|
||||
"<p>If it's a chance event <span translate=no>_^_0_^_</span> sample a and go to next step. </p>\n": "<p>\u5982\u679c\u662f\u5076\u7136\u4e8b\u4ef6<span translate=no>_^_0_^_</span>\u793a\u4f8b a \u7136\u540e\u8f6c\u5230\u4e0b\u4e00\u6b65\u3002</p>\n",
|
||||
"<p>If it's a terminal history <span translate=no>_^_0_^_</span> return the terminal utility <span translate=no>_^_1_^_</span>. </p>\n": "<p>\u5982\u679c\u662f\u7ec8\u7aef\u5386\u53f2\u8bb0\u5f55\uff0c\u5219<span translate=no>_^_0_^_</span>\u8fd4\u56de\u7ec8\u7aef\u5b9e\u7528\u7a0b\u5e8f<span translate=no>_^_1_^_</span>\u3002</p>\n",
|
||||
"<p>If the current player is <span translate=no>_^_0_^_</span>, </p>\n": "<p>\u5982\u679c\u5f53\u524d\u73a9\u5bb6\u662f<span translate=no>_^_0_^_</span>\uff0c</p>\n",
|
||||
"<p>If the current player is <span translate=no>_^_0_^_</span>, update the cumulative strategies and total regrets </p>\n": "<p>\u5982\u679c\u5f53\u524d\u73a9\u5bb6\u662f<span translate=no>_^_0_^_</span>\uff0c\u66f4\u65b0\u7d2f\u79ef\u7b56\u7565\u548c\u603b\u9057\u61be</p>\n",
|
||||
"<p>Iterate through all actions </p>\n": "<p>\u904d\u5386\u6240\u6709\u64cd\u4f5c</p>\n",
|
||||
"<p>Loop for <span translate=no>_^_0_^_</span> times </p>\n": "<p>\u5faa\u73af\u51e0<span translate=no>_^_0_^_</span>\u6b21</p>\n",
|
||||
"<p>Nash equilibrium is a state where none of the players can increase their expected utility (or payoff) by changing their strategy alone.</p>\n": "<p>\u7eb3\u4ec0\u5747\u8861\u662f\u4e00\u79cd\u72b6\u6001\uff0c\u5728\u8fd9\u79cd\u72b6\u6001\u4e0b\uff0c\u4efb\u4f55\u53c2\u4e0e\u8005\u90fd\u65e0\u6cd5\u4ec5\u901a\u8fc7\u6539\u53d8\u7b56\u7565\u6765\u589e\u52a0\u9884\u671f\u7684\u6548\u7528\uff08\u6216\u56de\u62a5\uff09\u3002</p>\n",
|
||||
"<p>Otherwise, </p>\n": "<p>\u5426\u5219\uff0c</p>\n",
|
||||
"<p>Print the information sets </p>\n": "<p>\u6253\u5370\u4fe1\u606f\u96c6</p>\n",
|
||||
"<p>Probability of reaching a information set <span translate=no>_^_0_^_</span> is, <span translate=no>_^_1_^_</span></p>\n": "<p>\u8fbe\u5230\u4fe1\u606f\u96c6\u7684\u6982\u7387<span translate=no>_^_0_^_</span>\u662f<span translate=no>_^_1_^_</span></p>\n",
|
||||
"<p>Regret is the utility (or pay off) that the player didn't get because she didn't follow the optimal strategy or took the best action.</p>\n": "<p>\u9057\u61be\u7684\u662f\u73a9\u5bb6\u56e0\u4e3a\u6ca1\u6709\u9075\u5faa\u6700\u4f73\u7b56\u7565\u6216\u91c7\u53d6\u6700\u4f73\u884c\u52a8\u800c\u6ca1\u6709\u83b7\u5f97\u7684\u6548\u7528\uff08\u6216\u56de\u62a5\uff09\u3002</p>\n",
|
||||
"<p>Return the expected utility for player <span translate=no>_^_0_^_</span>, <span translate=no>_^_1_^_</span> </p>\n": "<p>\u8fd4\u56de\u73a9\u5bb6\u7684\u9884\u671f\u6548\u7528<span translate=no>_^_0_^_</span>\uff0c<span translate=no>_^_1_^_</span></p>\n",
|
||||
"<p>Save checkpoints every <span translate=no>_^_0_^_</span> iterations </p>\n": "<p>\u6bcf\u6b21<span translate=no>_^_0_^_</span>\u8fed\u4ee3\u90fd\u4fdd\u5b58\u68c0\u67e5\u70b9</p>\n",
|
||||
"<p>Since <span translate=no>_^_0_^_</span> because it's a zero-sum game, we can add <span translate=no>_^_1_^_</span> and <span translate=no>_^_2_^_</span> and the second term will cancel out.</p>\n": "<p><span translate=no>_^_0_^_</span>\u56e0\u4e3a\u8fd9\u662f\u4e00\u573a\u96f6\u548c\u535a\u5f08\uff0c\u6240\u4ee5\u6211\u4eec\u53ef\u4ee5\u52a0<span translate=no>_^_1_^_</span><span translate=no>_^_2_^_</span>\u548c\uff0c\u7b2c\u4e8c\u4e2a\u672f\u8bed\u5c06\u88ab\u53d6\u6d88\u3002</p>\n",
|
||||
"<p>So we need to minimize <span translate=no>_^_0_^_</span> to get close to a Nash equilibrium.</p>\n": "<p>\u56e0\u6b64\uff0c\u6211\u4eec\u9700\u8981\u6700\u5c0f\u5316<span translate=no>_^_0_^_</span>\u624d\u80fd\u63a5\u8fd1\u7eb3\u4ec0\u5747\u8861\u3002</p>\n",
|
||||
"<p>Strategy is defined as a probability for taking an action <span translate=no>_^_0_^_</span> in for a given information set <span translate=no>_^_1_^_</span>,</p>\n": "<p>\u7b56\u7565\u88ab\u5b9a\u4e49\u4e3a\u9488\u5bf9\u7ed9\u5b9a\u4fe1\u606f\u96c6\u91c7\u53d6\u884c\u52a8\u7684<span translate=no>_^_0_^_</span>\u6982\u7387<span translate=no>_^_1_^_</span>\uff0c</p>\n",
|
||||
"<p>That is the mean regret of not playing with the optimal strategy.</p>\n": "<p>\u8fd9\u662f\u6ca1\u6709\u4f7f\u7528\u6700\u4f73\u7b56\u7565\u7684\u5351\u9119\u9057\u61be\u3002</p>\n",
|
||||
"<p>The <a href=\"#terminal_utility\">terminal utility</a> is the utility (or pay off) of a player <span translate=no>_^_0_^_</span> for a terminal history <span translate=no>_^_1_^_</span>.</p>\n": "<p>\u7ec8<a href=\"#terminal_utility\">\u7aef\u5b9e\u7528\u7a0b\u5e8f</a>\u662f\u73a9\u5bb6<span translate=no>_^_0_^_</span>\u5bf9\u7ec8\u7aef\u5386\u53f2\u8bb0\u5f55\u7684\u5b9e\u7528\u7a0b\u5e8f\uff08\u6216\u56de\u62a5\uff09<span translate=no>_^_1_^_</span>\u3002</p>\n",
|
||||
"<p>The <a href=\"http://martin.zinkevich.org/publications/regretpoker.pdf\">paper</a> proves that (Theorem 3),</p>\n": "<p>\u672c<a href=\"http://martin.zinkevich.org/publications/regretpoker.pdf\">\u6587</a>\u8bc1\u660e\uff08\u5b9a\u74063\uff09\uff0c</p>\n",
|
||||
"<p>The average of utilities over a set of strategies is equal to the utility of the average strategy.</p>\n": "<p>\u4e00\u7ec4\u7b56\u7565\u7684\u516c\u7528\u4e8b\u4e1a\u5e73\u5747\u503c\u7b49\u4e8e\u5e73\u5747\u7b56\u7565\u7684\u6548\u7528\u3002</p>\n",
|
||||
"<p>The average strategy is the average of strategies followed in each round, for all <span translate=no>_^_0_^_</span></p>\n": "<p>\u5e73\u5747\u7b56\u7565\u662f\u6240\u6709\u56de\u5408\u4e2d\u9075\u5faa\u7684\u7b56\u7565\u7684\u5e73\u5747\u503c<span translate=no>_^_0_^_</span></p>\n",
|
||||
"<p>The paper <a href=\"http://martin.zinkevich.org/publications/regretpoker.pdf\">Regret Minimization in Games with Incomplete Information</a> introduces counterfactual regret and how minimizing counterfactual regret through self-play can be used to reach Nash equilibrium. The algorithm is called Counterfactual Regret Minimization (<strong>CFR</strong>).</p>\n": "<p>\u8bba\u6587\u300a<a href=\"http://martin.zinkevich.org/publications/regretpoker.pdf\">\u4fe1\u606f\u4e0d\u5b8c\u6574\u7684\u6e38\u620f\u4e2d\u7684\u9057\u61be\u6700\u5c0f\u5316</a>\u300b\u4ecb\u7ecd\u4e86\u53cd\u4e8b\u5b9e\u7684\u9057\u61be\uff0c\u4ee5\u53ca\u5982\u4f55\u5229\u7528\u901a\u8fc7\u81ea\u6211\u6e38\u620f\u6700\u5927\u9650\u5ea6\u5730\u51cf\u5c11\u53cd\u4e8b\u5b9e\u9057\u61be\u6765\u8fbe\u5230\u7eb3\u4ec0\u5e73\u8861\u3002\u8be5\u7b97\u6cd5\u79f0\u4e3a\u53cd\u4e8b\u5b9e\u9057\u61be\u6700\u5c0f\u5316\uff08<strong>CFR</strong>\uff09\u3002</p>\n",
|
||||
"<p>The paper <a href=\"http://mlanctot.info/files/papers/nips09mccfr.pdf\">Monte Carlo Sampling for Regret Minimization in Extensive Games</a> introduces Monte Carlo Counterfactual Regret Minimization (<strong>MCCFR</strong>), where we sample from the game tree and estimate the regrets.</p>\n": "<p>\u8bba\u6587\u300a<a href=\"http://mlanctot.info/files/papers/nips09mccfr.pdf\">\u5728\u5e7f\u6cdb\u6e38\u620f\u4e2d\u5c3d\u91cf\u51cf\u5c11\u9057\u61be\u7684\u8499\u7279\u5361\u6d1b\u62bd\u6837</a>\u300b\u4ecb\u7ecd\u4e86\u8499\u7279\u5361\u6d1b\u53cd\u4e8b\u5b9e\u9057\u61be\u6700\u5c0f\u5316\uff08<strong>MCCFR</strong>\uff09\uff0c\u6211\u4eec\u5728\u5176\u4e2d\u4ece\u6e38\u620f\u6811\u4e2d\u8fdb\u884c\u91c7\u6837\u5e76\u4f30\u8ba1\u9057\u61be\u3002</p>\n",
|
||||
"<p>The paper <a href=\"http://mlanctot.info/files/papers/nips09mccfr.pdf\">Monte Carlo Sampling for Regret Minimization in Extensive Games</a> shows we can sample from the game tree and estimate the regrets.</p>\n": "<p>\u8bba\u6587\u300a<a href=\"http://mlanctot.info/files/papers/nips09mccfr.pdf\">\u5728\u5e7f\u6cdb\u6e38\u620f\u4e2d\u5c3d\u91cf\u51cf\u5c11\u9057\u61be\u7684\u8499\u7279\u5361\u6d1b\u62bd\u6837</a>\u300b\u8868\u660e\uff0c\u6211\u4eec\u53ef\u4ee5\u4ece\u6e38\u620f\u6811\u4e2d\u8fdb\u884c\u91c7\u6837\u5e76\u4f30\u8ba1\u9057\u61be\u3002</p>\n",
|
||||
"<p>The paper The paper <a href=\"http://martin.zinkevich.org/publications/regretpoker.pdf\">Regret Minimization in Games with Incomplete Information</a> proves that if the strategy is selected according to above equation <span translate=no>_^_0_^_</span> gets smaller proportionate to <span translate=no>_^_1_^_</span>, and therefore reaches <span translate=no>_^_2_^_</span>-<a href=\"#NashEquilibrium\">Nash equilibrium</a>.</p>\n": "<p>\u8fd9\u7bc7\u8bba\u6587\u300a<a href=\"http://martin.zinkevich.org/publications/regretpoker.pdf\">\u4fe1\u606f\u4e0d\u5b8c\u6574\u7684\u6e38\u620f\u4e2d\u7684\u9057\u61be\u6700\u5c0f\u5316</a>\u300b\u8bba\u6587\u8bc1\u660e\uff0c\u5982\u679c\u6839\u636e\u4e0a\u8ff0\u65b9\u7a0b\u5f0f<span translate=no>_^_0_^_</span>\u9009\u62e9\u7b56\u7565\uff0c\u5219\u4e0e<span translate=no>_^_1_^_</span>\uff0c\u56e0\u6b64\u8fbe\u5230<span translate=no>_^_2_^_</span>-<a href=\"#NashEquilibrium\">\u7eb3\u4ec0\u5747\u8861</a>\u3002</p>\n",
|
||||
"<p>The paper shows that</p>\n": "<p>\u8fd9\u7bc7\u8bba\u6587\u8868\u660e</p>\n",
|
||||
"<p>The regret for each information set and action pair <span translate=no>_^_0_^_</span> is maintained,</p>\n": "<p>\u5bf9\u6bcf\u4e2a\u4fe1\u606f\u96c6\u548c\u884c\u52a8\u5bf9\u7684\u9057\u61be<span translate=no>_^_0_^_</span>\u4ecd\u7136\u5b58\u5728\uff0c</p>\n",
|
||||
"<p>The strategy is calculated using regret matching.</p>\n": "<p>\u8be5\u7b56\u7565\u662f\u4f7f\u7528\u540e\u6094\u5339\u914d\u8ba1\u7b97\u5f97\u51fa\u7684\u3002</p>\n",
|
||||
"<p>Then we get <strong>sampled counterfactual value</strong> fro block <span translate=no>_^_0_^_</span>,</p>\n": "<p>\u7136\u540e\u6211\u4eec\u5f97\u5230\u533a\u5757\u7684<strong>\u53cd\u4e8b\u5b9e\u503c\u91c7\u6837</strong><span translate=no>_^_0_^_</span>\uff0c</p>\n",
|
||||
"<p>Then,</p>\n": "<p>\u90a3\u4e48\uff0c</p>\n",
|
||||
"<p>Therefore we can sample a part of the game tree and calculate the regrets. We calculate an estimate of regrets</p>\n": "<p>\u56e0\u6b64\uff0c\u6211\u4eec\u53ef\u4ee5\u5bf9\u6e38\u620f\u6811\u7684\u4e00\u90e8\u5206\u8fdb\u884c\u91c7\u6837\u5e76\u8ba1\u7b97\u9057\u61be\u3002\u6211\u4eec\u8ba1\u7b97\u9057\u61be\u7684\u4f30\u8ba1\u503c</p>\n",
|
||||
"<p>Therefore,</p>\n": "<p>\u56e0\u6b64\uff0c</p>\n",
|
||||
"<p>This is <span translate=no>_^_0_^_</span>-Nash equilibrium. You can similarly prove for games with more than 2 players.</p>\n": "<p>\u8fd9\u662f<span translate=no>_^_0_^_</span>\u7eb3\u4ec0\u5747\u8861\u3002\u540c\u6837\uff0c\u4f60\u53ef\u4ee5\u4e3a\u8d85\u8fc7 2 \u540d\u73a9\u5bb6\u7684\u6e38\u620f\u8fdb\u884c\u8bc1\u660e\u3002</p>\n",
|
||||
"<p>To store <span translate=no>_^_0_^_</span> </p>\n": "<p>\u8981\u5b58\u50a8<span translate=no>_^_0_^_</span></p>\n",
|
||||
"<p>To store <span translate=no>_^_0_^_</span> for each action <span translate=no>_^_1_^_</span> </p>\n": "<p><span translate=no>_^_0_^_</span>\u4e3a\u6bcf\u4e2a\u52a8\u4f5c\u5b58\u50a8<span translate=no>_^_1_^_</span></p>\n",
|
||||
"<p>Total regret of not taking each action <span translate=no>_^_0_^_</span>,</p>\n<span translate=no>_^_1_^_</span><p>We maintain <span translate=no>_^_2_^_</span> instead of <span translate=no>_^_3_^_</span> since <span translate=no>_^_4_^_</span> term cancels out anyway when computing strategy <span translate=no>_^_5_^_</span> </p>\n": "<p>\u5bf9\u6ca1\u6709\u91c7\u53d6\u6bcf\u9879\u884c\u52a8\u611f\u5230\u975e\u5e38\u9057\u61be<span translate=no>_^_0_^_</span>\uff0c</p>\n<span translate=no>_^_1_^_</span><p>\u6211\u4eec\u575a\u6301<span translate=no>_^_2_^_</span>\u800c\u4e0d\u662f<span translate=no>_^_3_^_</span>\u56e0\u4e3a\u8ba1\u7b97\u7b56\u7565\u65f6<span translate=no>_^_4_^_</span>\u672f\u8bed\u65e0\u8bba\u5982\u4f55\u90fd\u4f1a\u88ab\u53d6\u6d88<span translate=no>_^_5_^_</span></p>\n",
|
||||
"<p>Track data for analytics </p>\n": "<p>\u8ddf\u8e2a\u6570\u636e\u4ee5\u8fdb\u884c\u5206\u6790</p>\n",
|
||||
"<p>Tracker for analytics </p>\n": "<p>\u5206\u6790\u8ffd\u8e2a\u5668</p>\n",
|
||||
"<p>Unique key identifying the information set </p>\n": "<p>\u6807\u8bc6\u4fe1\u606f\u96c6\u7684\u552f\u4e00\u5bc6\u94a5</p>\n",
|
||||
"<p>Update cumulative strategies <span translate=no>_^_0_^_</span> </p>\n": "<p>\u66f4\u65b0\u7d2f\u79ef\u7b56\u7565<span translate=no>_^_0_^_</span></p>\n",
|
||||
"<p>Update the strategy <span translate=no>_^_0_^_</span> </p>\n": "<p>\u66f4\u65b0\u7b56\u7565<span translate=no>_^_0_^_</span></p>\n",
|
||||
"<p>Walk tree and update regrets for each player </p>\n": "<p>Walk tree \u5e76\u66f4\u65b0\u6bcf\u4f4d\u73a9\u5bb6\u7684\u9057\u61be</p>\n",
|
||||
"<p>We implement Monte Carlo Counterfactual Regret Minimization (MCCFR) with chance sampling (CS). It iteratively, explores part of the game tree by trying all player actions, but sampling chance events. Chance events are things like dealing cards; they are kept sampled once per iteration. Then it calculates, for each action, the <em>regret</em> of following the current strategy instead of taking that action. Then it updates the strategy based on these regrets for the next iteration, using regret matching. Finally, it computes the average of the strategies throughout the iterations, which is very close to the Nash equilibrium if we ran enough iterations.</p>\n": "<p>\u6211\u4eec\u901a\u8fc7\u673a\u4f1a\u62bd\u6837\uff08CS\uff09\u5b9e\u65bd\u4e86\u8499\u7279\u5361\u6d1b\u53cd\u4e8b\u5b9e\u9057\u61be\u6700\u5c0f\u5316\uff08MCCFR\uff09\u3002\u5b83\u901a\u8fc7\u5c1d\u8bd5\u6240\u6709\u73a9\u5bb6\u52a8\u4f5c\u6765\u53cd\u590d\u63a2\u7d22\u6e38\u620f\u6811\u7684\u4e00\u90e8\u5206\uff0c\u4f46\u91c7\u6837\u673a\u4f1a\u4e8b\u4ef6\u3002\u673a\u4f1a\u4e8b\u4ef6\u5c31\u50cf\u53d1\u724c\u4e00\u6837\uff1b\u6bcf\u6b21\u8fed\u4ee3\u90fd\u4f1a\u5bf9\u5b83\u4eec\u8fdb\u884c\u4e00\u6b21\u91c7\u6837\u3002\u7136\u540e\uff0c\u5b83\u4f1a\u8ba1\u7b97\u6bcf\u4e2a\u52a8\u4f5c\u9075\u5faa\u5f53\u524d\u7b56\u7565\u800c\u4e0d\u662f\u91c7\u53d6\u8be5\u64cd\u4f5c\u7684<em>\u9057\u61be</em>\u3002\u7136\u540e\uff0c\u5b83\u4f1a\u6839\u636e\u8fd9\u4e9b\u9057\u61be\u66f4\u65b0\u7b56\u7565\uff0c\u4f7f\u7528\u9057\u61be\u5339\u914d\u8fdb\u884c\u4e0b\u4e00\u6b21\u8fed\u4ee3\u3002\u6700\u540e\uff0c\u5b83\u8ba1\u7b97\u6574\u4e2a\u8fed\u4ee3\u671f\u95f4\u7b56\u7565\u7684\u5e73\u5747\u503c\uff0c\u5982\u679c\u6211\u4eec\u8fdb\u884c\u4e86\u8db3\u591f\u7684\u8fed\u4ee3\uff0c\u5219\u8be5\u5e73\u5747\u503c\u4e0e\u7eb3\u4ec0\u5747\u8861\u975e\u5e38\u63a5\u8fd1\u3002</p>\n",
|
||||
"<p>We maintain the cumulative strategy <span translate=no>_^_0_^_</span> to compute overall average strategy</p>\n<p><span translate=no>_^_1_^_</span> </p>\n": "<p>\u6211\u4eec\u7ef4\u6301\u7d2f\u79ef\u7b56\u7565<span translate=no>_^_0_^_</span>\u6765\u8ba1\u7b97\u6574\u4f53\u5e73\u5747\u7b56\u7565</p>\n<p><span translate=no>_^_1_^_</span></p>\n",
|
||||
"<p>We tried to keep our Python implementation easy-to-understand like a tutorial. We run it on <a href=\"kuhn/index.html\">a very simple imperfect information game called Kuhn poker</a>.</p>\n": "<p>\u6211\u4eec\u8bd5\u56fe\u8ba9\u6211\u4eec\u7684Python\u5b9e\u73b0\u50cf\u6559\u7a0b\u4e00\u6837\u6613\u4e8e\u7406\u89e3\u3002\u6211\u4eec\u5728<a href=\"kuhn/index.html\">\u4e00\u4e2a\u540d\u4e3a Kuhn poker \u7684\u975e\u5e38\u7b80\u5355\u7684\u4e0d\u5b8c\u7f8e\u4fe1\u606f\u6e38\u620f</a>\u4e0a\u8fd0\u884c\u5b83\u3002</p>\n",
|
||||
"<p>We will first introduce the mathematical notation and theory.</p>\n": "<p>\u6211\u4eec\u5c06\u9996\u5148\u4ecb\u7ecd\u6570\u5b66\u7b26\u53f7\u548c\u7406\u8bba\u3002</p>\n",
|
||||
"<p>and the strategy is calculated with regret matching,</p>\n": "<p>\u7b56\u7565\u662f\u7528\u9057\u61be\u5339\u914d\u6765\u8ba1\u7b97\u7684\uff0c</p>\n",
|
||||
"<p>if <span translate=no>_^_0_^_</span>, </p>\n": "<p>\u5982\u679c<span translate=no>_^_0_^_</span>\uff0c</p>\n",
|
||||
"<p>is the strategy profile <span translate=no>_^_0_^_</span> with player <span translate=no>_^_1_^_</span>'s strategy replaced with <span translate=no>_^_2_^_</span>.</p>\n": "<p>\u662f\u5c06\u73a9\u5bb6\u7684\u7b56\u7565\u66ff\u6362\u4e3a<span translate=no>_^_1_^_</span>\u7684\u7b56\u7565\u914d\u7f6e\u6587\u4ef6<span translate=no>_^_0_^_</span><span translate=no>_^_2_^_</span>\u3002</p>\n",
|
||||
"<p>where <span translate=no>_^_0_^_</span> is the set of terminal histories reachable from <span translate=no>_^_1_^_</span>, and <span translate=no>_^_2_^_</span> is the prefix of <span translate=no>_^_3_^_</span> up to <span translate=no>_^_4_^_</span>. <span translate=no>_^_5_^_</span> is the probability of reaching z from <span translate=no>_^_6_^_</span>.</p>\n": "<p>wh<span translate=no>_^_0_^_</span> ere \u662f\u53ef\u4ece\u4e2d\u8bbf\u95ee\u7684\u7ec8\u7aef\u5386\u53f2\u8bb0\u5f55\u96c6<span translate=no>_^_1_^_</span>\uff0c\u5e76\u4e14<span translate=no>_^_2_^_</span>\u662f<span translate=no>_^_3_^_</span> up \u7684\u524d\u7f00<span translate=no>_^_4_^_</span>\u3002<span translate=no>_^_5_^_</span>\u662f\u4ece\u5230\u8fbe z \u7684\u6982\u7387<span translate=no>_^_6_^_</span>\u3002</p>\n",
|
||||
"<p>where <span translate=no>_^_0_^_</span> is the strategy profile <span translate=no>_^_1_^_</span> with the modification of always taking action <span translate=no>_^_2_^_</span> at information set <span translate=no>_^_3_^_</span>.</p>\n": "<p>\u5176\u4e2d<span translate=no>_^_0_^_</span>\u662f\u4fee\u6539\u4e3a\u59cb\u7ec8<span translate=no>_^_2_^_</span>\u5728\u4fe1\u606f\u96c6\u4e2d\u91c7\u53d6\u884c\u52a8\u7684\u7b56\u7565\u914d\u7f6e\u6587\u4ef6<span translate=no>_^_1_^_</span><span translate=no>_^_3_^_</span>\u3002</p>\n",
|
||||
"<p>where <span translate=no>_^_0_^_</span> is the strategy profile of all players in iteration <span translate=no>_^_1_^_</span>, and</p>\n": "<p>\u8fed\u4ee3\u4e2d\u6240\u6709\u73a9\u5bb6\u7684\u7b56\u7565\u914d\u7f6e\u6587\u4ef6\u5728\u54ea\u91cc<span translate=no>_^_0_^_</span><span translate=no>_^_1_^_</span>\uff0c\u4ee5\u53ca</p>\n",
|
||||
"<p>where <span translate=no>_^_0_^_</span></p>\n": "<p>\u5728\u54ea\u91cc<span translate=no>_^_0_^_</span></p>\n",
|
||||
"<p>where</p>\n": "<p>\u5728\u54ea\u91cc</p>\n",
|
||||
"<p>with a simple proof.</p>\n": "<p>\u7528\u4e00\u4e2a\u7b80\u5355\u7684\u8bc1\u636e\u3002</p>\n",
|
||||
"<span translate=no>_^_0_^_</span>": "<span translate=no>_^_0_^_</span>",
|
||||
"<span translate=no>_^_0_^_</span><p> </p>\n": "<span translate=no>_^_0_^_</span><p></p>\n",
|
||||
"<ul><li><span translate=no>_^_0_^_</span> creates a new empty history </li>\n<li><span translate=no>_^_1_^_</span> is the number of iterations to train on <span translate=no>_^_2_^_</span> </li>\n<li><span translate=no>_^_3_^_</span> is the number of players</li></ul>\n": "<ul><li><span translate=no>_^_0_^_</span>\u521b\u5efa\u65b0\u7684\u7a7a\u767d\u5386\u53f2\u8bb0\u5f55</li>\n<li><span translate=no>_^_1_^_</span>\u662f\u8981\u8bad\u7ec3\u7684\u8fed\u4ee3\u6b21\u6570<span translate=no>_^_2_^_</span></li>\n<li><span translate=no>_^_3_^_</span>\u662f\u73a9\u5bb6\u7684\u6570\u91cf</li></ul>\n",
|
||||
"Regret Minimization in Games with Incomplete Information (CFR)": "\u4fe1\u606f\u4e0d\u5b8c\u6574\uff08CFR\uff09\u6e38\u620f\u4e2d\u7684\u9057\u61be\u6700\u5c0f\u5316",
|
||||
"This is an annotated implementation/tutorial of Regret Minimization in Games with Incomplete Information": "\u8fd9\u662f\u4fe1\u606f\u4e0d\u5b8c\u6574\u7684\u6e38\u620f\u4e2d\u540e\u6094\u6700\u5c0f\u5316\u7684\u5e26\u6ce8\u91ca\u7684\u5b9e\u73b0/\u6559\u7a0b"
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"analytics.py": "analytics.py"
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"analytics.py": "analytics.py"
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"analytics.py": "analytics.py"
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"infoset_saver.py": "infoset_saver.py"
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"infoset_saver.py": "infoset_saver.py"
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"infoset_saver.py": "infoset_saver.py"
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user