Matlab逆向归纳法,逆向归纳法

逆向归纳法(backward induction)是求解动态博弈均衡的方法

[编辑]

什么是逆向归纳法

逆向归纳法(backward induction)是求解动态博弈均衡的方法。所谓动态博弈是指博弈参与人的行动存在着先后次序,并且后行动的参与人能够观察到前面的行动。逆向归纳法在逻辑上是严密的,然而它存在着“困境”。所谓逆向归纳法是从动态博弈的最后一步往回推,以求解动态博弈的均衡结果。逆向归纳法又称逆推法。它是完全归纳推理,其推理是演绎的,即结论是必然的。

在完全且完美的动态博弈中,先行为的理性博弈人,在前面阶段选择策略时,必然会考虑后行博弈人在后面阶段中将会怎样选择策略。因而,只有在博弈的最后一个阶段,不再有后续阶段牵制的情况下,博弈人才能作出明智的选择。在后面阶段博弈人选择的策略确定后,前一阶段的博弈人在选择策略时也就相对容易。

逆向归纳法就是从动态博弈的最后一个阶段开始分析,逐步向前归纳出各阶段博弈人的选择策略。

逆向归纳法的逻辑基础:动态博弈中先行动的参与人,在前面阶段选择行为时必然会考虑后行动的参与人在后面阶段中的行为选择,只有在最后一阶段的参与人才能不受其他参与人的制约而直接做出选择。而当后面阶段的参与人的选择确定后,前一阶段的参与人的行为也就容易确定了。逆向归纳法排除了不可信的威胁或承诺。

[编辑]

逆向归纳法的运用

逆向归纳法:它的精髓就是“向前展望,向后推理”,即首先仔细思考自己的决策可能引起的所有后续反应,以及后续反应的后续反应,直至博弈结束;然后从最后一步开始,逐步倒推,以此找出自己在每一步的最优选择。

a4c26d1e5885305701be709a3d33442f.png

图1的求解过程如下:

(a)若2在右,2将选择进(0.3);∵(0.3)>(3.0)

(b)若2在左,2将选择退(3.0);∵(3.0)>(-1.-1)

(c)在2的选择中1的最大收益是选择进;∵(3.0)>(0.3)

∴纳什均衡为(进(进,退))均衡解为(进,退),均衡收益为(3.0)

(2)逆向归纳法仅适合有限步动态博弈,而且要求决策者犯的可能性很小。

a4c26d1e5885305701be709a3d33442f.png

如果使用逆向归纳法得到的结果是A选择右边的行动,双方各得3。

如果A在第一步选择下边的行动,B该做何想?只有当A在第二步犯错误的可能性小于1/11时,B才有胆量选择让游戏继续玩下去。于是A极有可能获得10这个最大回报。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
逆向归纳法(backward induction)是博弈论中求解两阶段博弈模型的一种方法。下面给出求解该模型的 MATLAB 代码示例。 假设有一个两阶段博弈模型,第一阶段有两个玩家选择策略 $A$ 或 $B$,第二阶段有一个玩家选择策略 $X$ 或 $Y$。该博弈模型的收益矩阵如下: | | X | Y | | ---- | ---- | ---- | | A | 5,5 | 1,6 | | B | 2,4 | 4,3 | 根据逆向归纳法,我们先考虑第二阶段的博弈,然后再根据第二阶段的结果来确定第一阶段的最优策略。 第二阶段的博弈是一个二人零和博弈,可以使用最小最大值算法(minimax algorithm)求解。即对于玩家 $X$,其最大收益为 $max\{5,1\}=5$;对于玩家 $Y$,其最大收益为 $max\{6,3\}=6$。因为这是一个二人零和博弈,所以玩家 $X$ 的最大收益等于玩家 $Y$ 的最小收益,即 $5=6$。 因此,第二阶段的结果是 $(X,Y)$,玩家 $X$ 和 $Y$ 均获得收益 $5$。 接下来,我们考虑第一阶段的博弈。根据第二阶段的结果,我们可以得到下面的收益矩阵: | | X=5 | Y=5 | | ---- | ---- | ---- | | A | 5,5 | 1,6 | | B | 2,4 | 4,3 | 我们再次使用最小最大值算法求解。对于玩家 $1$,其最大收益为 $max\{5,4\}=5$;对于玩家 $2$,其最大收益为 $max\{5,6\}=6$。因为这是一个二人零和博弈,所以玩家 $1$ 的最大收益等于玩家 $2$ 的最小收益,即 $5=5$。 因此,第一阶段的最优策略是 $(A,X)$,玩家 $1$ 和 $2$ 均获得收益 $5$。 下面是用 MATLAB 求解该模型的代码: ```matlab % 收益矩阵 payoff = [5 1; 2 4; 5 6; 4 3]; % 第二阶段博弈的最大收益 max_payoff_X = max(payoff(1:2,1)); max_payoff_Y = max(payoff(3:4,2)); % 第二阶段博弈的结果 result = [max_payoff_X max_payoff_Y]; % 第一阶段博弈的最大收益 max_payoff_1 = max(result(:,1)); max_payoff_2 = max(result(:,2)); % 第一阶段博弈的最优策略 if max_payoff_1 > max_payoff_2 optimal_strategy = [1 1]; else optimal_strategy = [2 1]; end % 显示结果 disp('第二阶段博弈的结果:'); disp(result); disp(['第一阶段博弈的最优策略是 (' num2str(optimal_strategy) '),最大收益为 ' num2str(max(max(result)))]); ``` 运行结果如下: ``` 第二阶段博弈的结果: 5 5 第一阶段博弈的最优策略是 (1 1),最大收益为 5 ``` 其中,`payoff` 变量表示收益矩阵,`max_payoff_X` 和 `max_payoff_Y` 变量表示第二阶段博弈的最大收益,`result` 变量表示第二阶段博弈的结果,`max_payoff_1` 和 `max_payoff_2` 变量表示第一阶段博弈的最大收益,`optimal_strategy` 变量表示第一阶段博弈的最优策略。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值