Monte Carlo反事实后悔最小化与Kuhn Poker

2021-06-22 20:05:45

纸质在游戏中遗憾地减少了不完整的信息,提出了反事实遗憾,以及通过自我playcan用于达到纳什均衡的反应性遗憾。算法称为反事实遗工最小化(CFR)。

纸张Monte Carlo在广泛的GamesIntroducess蒙特卡罗反事实遗憾最小化(MCCFR)中,我们从游戏树上抽出并估计遗憾。

我们试图让我们的Python实现易于理解,就像教程一样。我们在一个名为Kuhn Poker的一个非常简单的不完美信息游戏中运行它。

我们用机会采样(CS)实施Monte Carlo反事实遗工最小化(MCCFR)。迭代地,通过尝试所有播放器操作来探讨游戏树的一部分,但是采样机会事件。Chance事件是交易卡等的东西;它们每次迭代一次都会被采样。为每个动作来计算,对于每个动作,遵循当前策略的遗憾而不是采取该措施。然后,它根据对下一次迭代的遗憾来更新策略,使用后悔匹配。最后,它计算整个迭代策略的平均值,如果我们运行足够的迭代,这非常接近纳什均衡。

一个玩家用I \以$ i \在N $表示,其中$ n $是一组玩家。

历史$ h \以h $ in是一系列动作,包括机会事件,$ h $是所有历史的集合。

行动$ a $,$ a(h)= {a :( h,a)\在h} $ h $ why $ h \是一个非终端历史记录。

信息设置$ i_i \ in \ mathcal {i} _i $ for keter $ i $ i $类似于h $的历史记录$ h \,但仅包含玩家$ i $的动作.that是,历史$ h $ ware包含在$ i_i $将没有它们的动作/事件,例如播放到播放器的卡片。

$ h \ IN I $的是所有属于给定信息集的所有历史集合;即。所有这些历史都在玩家眼中看起来也一样。

玩家策略$ i $,$ \ sigma_i \在\ sigma_i $中是一个分布在动作$ a(i_i)$,其中$ \ sigma_i $是玩家$ i $ .strategy $ t $的所有策略集 - 迭代由$ \ sigma ^ t_i $表示为。

策略被定义为对给定信息设置$ i $的行动$ a $的概率,

$ \ sigma $是由所有玩家$ \ sigma_1,\ sigma_2,\ ldots $的策略组成的策略档案

$ \ pi ^ \ sigma(h)$是达到历史的概率$ h $ w $策略档案$ \ sigma $。$ \ pi ^ \ sigma(h)_ { - i} $达到$ h没有球员$ i $的贡献;即,播放器$ i $采取行动遵循$ 1 $的概率。

$ \ pi ^ \ sigma(h)_ {i} $达到$ h $的概率只有玩家$ i $的贡献。这是,

终端实用程序是终端历史记录$ H $的玩家$ i $的实用程序(或偿还)。 纳什均衡是一种国家,没有人可以通过单独改变他们的策略来增加他们的预期效用(或支付)。 遗憾是播放器没有得到的效用(或偿还),因为她没有遵循最佳策略或采取最佳行动。 球员的平均总体遗憾是,我$ I $的平均遗憾是在所有$$回合的所有迭代中遵循优先策略的平均遗憾。 平均策略是每轮中遵循的策略的平均值,对于所有$ i \ mathcal {i},a \ in a(i)$ 自$ u_1 = -u_2 $以来,我们可以添加$ r ^ t_1 $和$ r ^ t_i $,而第一个术语将取消。 一组战略上的公用事业的平均值等于平均战略的效用。

反事实值$ \ color {pink} {v_i(\ sigma,i)} $是玩家$ i $的预期效用如果球员$ i $试图达到$ i $(使达到$ i $的行动为止概率为1美元)。

在其中$ z_i $是从$ i $可达的终端历史集,$ z [i] $可达$ z $最多$ i $ i $ i $。$ \ pi ^ \ sigma(z [i],z) $是从$ z [i] $达到z的概率。

其中$ \ sigma | _ {i \ lightarrow a} $是策略档案$ \ sigma $与修改始终采取措施$ a $ a $ a $ a $ a $ iquary $ i $。

本文在与不完整的信息进一步的游戏中,纸张对游戏的最小化最小化,如果根据上述等式选择策略,则R ^ T_I $更小于$ \ FRAC {1} {\ SQRT T} $,返回$ \ epsilon $ - nash平衡。

纸张Monte Carlo在广泛的游戏鞋中进行后悔最小化,我们可以从游戏树上抽出并估计遗憾。

$ \ mathcal {q} = {q_1,\ ldots,q_r} $是$ z $($ q_j \ subseteq z $)的一组子集,其中我们只看一个rectration.union的单个块$ q_j $子集跨越$ z $($ q_1 \ cap \ ldots \ cap q_r = z $)。$ q_j $是挑选块$ q_j $的概率。

$ q(z)$是挑选当前迭代$ z $的概率;即,$ q(z)= \ sum_ {j:z \ in q_j} q_j $ - $ q_j $的总和$ z \ in q_j $。

因此,我们可以抽出游戏树的一部分并计算遗憾。我们计算遗憾的估计 并使用它来更新$ \ color {orange} {r ^ t_i(i,a)} $,并计算策略$ \ color {lightgreen} {\ sigma_i ^ {t + 1}(i)(a)} $ 每次迭代。最后,我们计算总体平均策略$ \ color {cyan} {\ bar {\ sigma} ^ t_i(i)(a)} $。 320从键入导入newtype,dict,list,可调用,cast 321 322从Labml Import Monit,跟踪器,记录器,实验323来自Labml.configs导入BaseConfigs,选项