【学术小白成长之路】03三方演化博弈(基于复制动态方程)均衡点与稳定性分析

从本专栏开始,笔者正式研究演化博弈分析,其中涉及到双方演化博弈分析,三方演化博弈分析,复杂网络博弈分析等等。
先阅读了大量相关的博弈分析的文献,总结了现有的研究常用的研究流程,针对每个流程进行拆解。具体学习每个步骤中的步骤的实现方法和流程。基础性文章,希望对您有帮助,如果存在错误或不足之处,还请海涵。且看且珍惜!

在这里插入图片描述

1.均衡点计算

参与主体根据既得利益不断调整策略以追求自身利益的改善,最终达到动态平衡的策略称为演化稳定策略(ESS)。

在判定演化稳定策略之前首先要求出演化博弈的均衡点。令F(x))=0、F(y)=0和F(z)=0,即系统策略选择的变化率为零时,可以得到该动力系统的均衡点。

在计算出均衡点之前,我们可以先构建出来雅可比矩阵,先不进行计算,用于后面将均衡点带入雅可比矩阵之中进行计算。

可以看出,雅可比矩阵就对应函数在x,y,z概率上的偏导。
在这里插入图片描述
如某篇文章中所示,在计算出复制动态方程后,通过构建的复制动态方程,来构建雅克比矩阵。
在这里插入图片描述

这时候,我们令F(x)=0;F (y)=0;F (z)=0就可以计算出对应的xyz的组合,如(0,0,0)、(0,1,0)这样的组合均衡点。

一般会解出来很多这样的组合解,但是这样均衡点不一定具有稳定,还需要进一步计算。

2.稳定性分析

获取均衡点之后,就可以用到上文构建的雅可比矩阵

将求得的均衡点代入雅可比矩阵求此时矩阵对应的特征值

依据特征值,来判断均衡点的稳定性,一般文章中都是以特征值全负值的数为ESS点

如果特征值均小于0,则均衡点有渐进稳定性,为演化稳定策略;
若的特征值均大于0,则为不稳定点;
若特征值有1或2个大大0,则为鞍点:
在这里插入图片描述

在这里插入图片描述

接下来,就可以进行模拟仿真的分析,可以借助Python,Matlab之内的工具进行实现

3.MatLAB的代码实现

%求均衡点及其特征值%
%(1)构建雅可比矩阵:diff是指求偏导
disp(['雅可比矩阵']):
A=[diff(fx,x) diff(fx,y) diff(fx,z);
  diff(fy,x) diff(fy,y) diff(fy,z);
  diff(fz,x) diff(fz,y) diff(fz,z)]
  
%(2〉求均衡点:首先构建等式数组,然后使用solve函数来计算均衡点,输出对应的均衡点,最后构建均衡点数
equ=[fx==0,fy==0,fz==0];
answ=solve (equ,[x,y,z]);
%输出均衡点数组
disp(['均衡点:']):A1=[answ.x, answ.y, answ.z]
%均衡点个数
disp(['均衡点个数']):length(answ.x)

最后一点代码,不打了,有需要自己对应打把
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
很抱歉,我无法提供完整的代码示例,因为这是一个非常复杂的问题,需要根据具体的演化博弈模型进行调整和修改。但是,我可以给出一个基本的流程和代码框架,供您参考。 1. 设置参数:根据具体的演化博弈模型,确定参与者数量、策略数量、收益函数等参数。 2. 求解收益矩阵:根据收益函数,生成一个收益矩阵。 3. 生成复制动态方程组:根据演化博弈动态方程,生成一个复制动态方程组。 4. 求解演化博弈均衡点及其特征值:使用matlab的非线性求解函数,如fsolve或fmincon,求解演化博弈均衡点及其特征值。 5. 生成雅可比矩阵:根据均衡点,生成雅可比矩阵。 6. 数值仿真:使用matlab的ode45函数进行数值仿真,求解演化博弈的轨迹。 7. 生成相位图:使用matlab的plot函数生成演化博弈的相位图。 下面是一个示例代码框架: ``` % 设置参数 n = 3; % 参与者数量 m = 2; % 策略数量 r = 1; % 收益函数参数 s = 0.5; % 收益函数参数 % 求解收益矩阵 payoff = zeros(m^n,n); for i=1:m^n strategy = dec2base(i-1,m,n)-'0'+1; for j=1:n payoff(i,j) = r*sum(strategy==strategy(j))-s; end end % 生成复制动态方程组 syms x1 x2 x3 eq1 = x1*(payoff(1,1)*x1+payoff(2,1)*x2+payoff(3,1)*x3) == x1*(payoff(1,1)*x1+payoff(2,1)*x2+payoff(3,1)*x3); eq2 = x2*(payoff(1,2)*x1+payoff(2,2)*x2+payoff(3,2)*x3) == x2*(payoff(1,2)*x1+payoff(2,2)*x2+payoff(3,2)*x3); eq3 = x3*(payoff(1,3)*x1+payoff(2,3)*x2+payoff(3,3)*x3) == x3*(payoff(1,3)*x1+payoff(2,3)*x2+payoff(3,3)*x3); eq = [eq1, eq2, eq3]; % 求解演化博弈均衡点及其特征值 x0 = [1/3,1/3,1/3]; [x,fval,exitflag,output,jacobian] = fsolve(eq,x0); % 生成雅可比矩阵 J = double(subs(jacobian,{x1,x2,x3},{x(1),x(2),x(3)})); % 数值仿真 tspan = [0,10]; x0 = [1/3,1/3,1/3]; [t,x] = ode45(@(t,x) [x(1)*(payoff(1,1)*x(1)+payoff(2,1)*x(2)+payoff(3,1)*x(3));x(2)*(payoff(1,2)*x(1)+payoff(2,2)*x(2)+payoff(3,2)*x(3));x(3)*(payoff(1,3)*x(1)+payoff(2,3)*x(2)+payoff(3,3)*x(3))], tspan, x0); % 生成相位图 plot3(x(:,1),x(:,2),x(:,3)); ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

驭风少年君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值