添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

2. 零和博弈的定义

零和博弈(Zero-Sum Game)是一种博弈论的基本概念,指的是在博弈过程中,博弈参与者之间的收益和损失之和总是一个常数,特别是总和为零。即博弈一方的收益必然等于另一方的损失,不存在共赢或多赢的情况。换句话说,在零和博弈中,博弈双方的利益是对立的,博弈的结果是一方得利必定伴随着另一方的损失,整个博弈的总体价值是恒定不变的。

3. 纯策略纳什均衡

假设零和博弈 G={ S1,S2;A}G=\{S_1,S_2;A\} G = { S 1 ​ , S 2 ​ ; A } ,其中 S1={ A1,A2.A3}S_1=\{A_1,A_2.A_3\} S 1 ​ = { A 1 ​ , A 2 ​ . A 3 ​ } , S2={ B1,B2.B3}S_2=\{B_1,B_2.B_3\} S 2 ​ = { B 1 ​ , B 2 ​ . B 3 ​ } ,
A=[6−10312−30−1] A=\begin{bmatrix} 6 & -1 & 0 \\ 3 & 1 & 2 \\ -3 & 0 & -1 \end{bmatrix} A = ​ 6 3 − 3 ​ − 1 1 0 ​ 0 2 − 1 ​ ​
各局中人应如何选择自己的策略,保证自己在博弈中取得有利的地位。

4.博弈论中的最小最大定理

对于任意一个两个玩家A和B之间的完全信息、零和、有限策略集的博弈,存在一个数V和玩家A的一个策略σ*,使得无论对手B采取何种策略,通过执行σ*,A所能获得的最小收益至少是V。同时,存在玩家B的一个策略τ*,使得当B执行τ*时,即使面对A的最优策略,其给A带来的最大损失也不超过V。

换句话说,A的最小期望得益(即最大损失)等于B的最大期望损失(即最小得益),这个相同的数值就是游戏的值V。A的最优策略是在所有可能的策略中找到那个能够抵御对手任何反击的策略,以确保最坏情况下的最好结果;而B则反过来尝试最大化A的最坏结果,即最小化自己的最大损失。

博弈在纯策略意义下的纳什均衡可以不唯一,博弈的值是唯一的。

5. 混合策略纳什均衡

假设零和博弈 G={ S1,S2;A}G=\{S_1,S_2;A\} G = { S 1 ​ , S 2 ​ ; A } ,
其中 S1={ A1,A2,...Am}S_1=\{A_1,A_2,...A_m\} S 1 ​ = { A 1 ​ , A 2 ​ , ... A m ​ } ,选择每个策略的概率为 X={ x1,x2,...,xm}X=\{x_1,x_2,...,x_m\} X = { x 1 ​ , x 2 ​ , ... , x m ​ } ;
S2={ B1,B2,...,Bn}S_2=\{B_1,B_2,...,B_n\} S 2 ​ = { B 1 ​ , B 2 ​ , ... , B n ​ } ,选择每个策略的概率为 Y={ y1,y2,...,yn}Y=\{y_1,y_2,...,y_n\} Y = { y 1 ​ , y 2 ​ , ... , y n ​ }
A=(aij)m×nA=(a_{ij})_{m\times n} A = ( a ij ​ ) m × n ​
对于给定的博弈G,
局中人1的所有混合策略构成的集合 S1∗={ X}S_1^*=\{X\} S 1 ∗ ​ = { X }
局中人2的所有混合策略构成的集合 S2∗={ Y}S_2^*=\{Y\} S 2 ∗ ​ = { Y }
期望为 G∗={ S1∗,S2∗;E}G^*=\{S_1^*,S_2^*;E\} G ∗ = { S 1 ∗ ​ , S 2 ∗ ​ ; E } ,为博弈G的混合扩充。

任何一个给定的二人零和博弈G一定存在混合策略意义下的纳什均衡

6.一个例子

7.非零和博弈的定义

  • 各方的收益或损失的总和不是零值。
  • 局中人之间不再是完全对立
  • 一个局中人的所得并不一定意味着其他局中人要同样数量的损失
  • 博弈参与方之间可能存在某种共同利益,可以“双赢”或“多赢”

7.1 求解二人非零和博弈混合策略纳什均衡的一般方法

7.2 反复剔除严格劣策略

在“局中人是理性的”假设前提下,如果一个人的策略集合中存在 严格劣策略 ,理性的他永远不会选择 严格劣策略 。反复剔除严格劣策略适用于零和博弈与非零和博弈。

  1. 对于局中人1的b策略严格劣与策略d,所以策略b可以删除。
    在这里插入图片描述
  2. 最后可以得到

    8.奇数定理及其应用

    奇数定理 :几乎所有的有限策略的博弈都有奇数个纳什均衡,包括 纯策略纳什均衡 和 混合策略纳什均衡

    简单来说,根据奇数定理,如果一个博弈有两个纯策略纳什均衡,则必定存在至少一个额外的纳什均衡,这导致了纳什均衡的总数是奇数。纳什均衡是指在一个博弈中,没有一个参与者可以通过单独改变自己的策略来改善其结果的稳定策略组合。

    需要注意的是,“几乎所有的”这一描述表明并非所有博弈都严格遵循这个规律,但大部分有限博弈确实表现出这样的特性。这个定理对于理解和分析博弈论中的复杂交互行为有着重要意义。

    冯.诺依曼1944年发表了奠基性的重要论文《 博弈论 与经济行为》-是 博弈论 的开始 零 和 博弈 (英语:Zero-Sum Game),又称 零 和 游戏或 零 和 赛局,与非 零 和 博弈 相对,是 博弈论 的一个概念,属非合作 博弈 。指参与 博弈 的各方,在严格竞争下,一方的收益必然意味着另一方的损失, 博弈 各方的收益 和 损失相加总 和 永远为“ 零 ”,双方不存在合作的可能。 在一个有限 零 和 游戏之中,不同的 博弈 理论如 纳什 均衡 和 极小
    纳什 均衡 如果对于所有参与人iii有ui(σi∗,σ−i∗)≥ui(si,σ−i∗)(si∈Si)u_i(\sigma_i^*,\sigma_{-i}^*)\ge u_i(s_i,\sigma_{-i}^*)\quad(s_i\in S_i)ui​(σi∗​,σ−i∗​)≥ui​(si​,σ−i∗​)(si​∈Si​)那么混合策略组合σ∗\sigma^*σ∗是一种 纳什 均衡 严格 纳什 均衡 如果...
    几乎所有有关 纳什 均衡 的知识都会以一部叫做《美丽心灵》的电影作为开头,因为此电影讲述的就是伟大的数学家 纳什 的一生。我没有看过这部电影,当看到 纳什 均衡 这几个字,我脑海里闪现的是一幅平衡的跷跷板的场景,玩跷跷板的过程不就像是两个人的 博弈 嘛。 讲到 博弈 ,从 博弈 方的数量与 博弈 方式来讲是分为许多类型的,这里从诺依曼解决的 二人 零 和 问题说起,这是一种两方非合作(纯竞争)类型的 博弈 ,就像两个人打乒乓球,必有一方赢另
    纳什 均衡 概念:player(玩家),strategy(策略),payoff(收益) 纳什 均衡 :每个玩家在当前策略下的收益都达到了最优,任一玩家改变自己的策略不会使自己的收益升高 纯策略:完全信息(知道对手的策略 和 对应的收益) 博弈 中,只能选择1种策略(选择概率为1),这个策略叫纯策略(p=1),不能 3 0%概率选策略1, 3 0%概率选策略2,40%概率选策略 3 混合策略:以一定概率选择的某些策略,这些策略构成纯策略。 3 0%概率选策略1, 3 0%概率选策略2,40%概率选策略 3 , 3 0%策略1+ 3 0%
    在Python中,双方 博弈 数值仿真实现通常涉及游戏理论中的 零 和 博弈 ,比如囚徒困境、猜数字游戏等。首先,你需要定义 博弈 规则,例如策略选择、收益函数以及可能的结果。然后,你可以通过循环模拟多次 博弈 ,并记录每次 博弈 后的结果。 以下是一个简单的例子,假设我们要模拟两个玩家轮流从一堆物品中选择,看谁能得到更多的分数: ```python import matplotlib.pyplot as plt # 定义游戏参数 items = 100 player1_choices = [0.5, 0.5] # 玩家1选择随机数的概率分布 player2_choices = [0.6, 0.4] # 玩家2的选择 def simulate_battle(player1_choice, player2_choice): scores = [] for _ in range(items): if random.random() < player1_choice: player1_score += 1 else: player2_score += 1 return player1_score, player2_score player1_score, player2_score = [], [] for i in range(1000): # 模拟次数 p1_score, p2_score = simulate_battle(player1_choices[0], player2_choices[0]) player1_score.append(p1_score) player2_score.append(p2_score) plt.hist([player1_score, player2_score], bins=range(items+1), label=[&# 3 9;Player 1&# 3 9;, &# 3 9;Player 2&# 3 9;]) plt.xlabel(&# 3 9;Score&# 3 9;) plt.ylabel(&# 3 9;Frequency&# 3 9;) plt.legend() plt.show()