zoukankan      html  css  js  c++  java
  • 斯塔克尔伯格竞争模型(主从博弈模型)

    斯塔克尔伯格竞争模型(主从博弈模型)

    基本概念

    古诺模型实际上是假定两个寡头厂商同时作出各自的产量决策的。

    现在假设厂商1先决定它的产量,然后厂商2知道厂商1的产量后再做出它的产量决策。因此,在确定自己产量时,厂商1必须考虑厂商2将如何作出反应。其他假设与古诺模型相同,这一模型称为斯塔克伯格(Stackelberg)模型。

    斯塔克尔伯格竞争模型是一个价格领导模型,厂商之间存在着行动次序的区别。产量的决定依据以下次序:领导性厂商决定一个产量,然后跟随者厂商可以观察到这个产量,然后根据领导性厂商的产量来决定他自己的产量。

    要注意的是,领导性厂商在决定自己的产量的时候,充分了解跟随厂商会如何行动——这意味着领导性厂商可以知道跟随厂商的反应函数。

    因此,领导性厂商自然会预期到自己决定的产量对跟随厂商的影响。正是考虑到这种影响的情况下,领导性厂商所决定的产量将是一个以跟随厂商的反应函数为约束的利润最大化产量。在斯塔克尔伯格模型中,领导性厂商的决策不再需要自己的反应函数。

    设市场需求函数为:

    D=D(p1+p2)=ab(p1+p2)

    其中p1p2分别是两个企业的产量。假设两企业的成本函数相同,都为C=c0p,首先考虑在给定企业1的计划产量下,企业2寻求使自己利润最大化的最优产量p2,即:
    maxp2[ab(p1+p2)]cp2

    上面优化模型中的最优解的p2显然是p1的函数p2=g(p1)

    在知道企业2 对任意给定产量的反应后,企业1的最优产量模型为:

    maxp1[ab(p1+p2)]cp1,s.t.p2=g(p1)

    因此斯塔克尔伯格(Stackelberg)模型是先求解如下的优化模型:
    maxp2[ab(p1+p2)]cp2

    得到p2=g(p1)

    然后再求解如下的优化模型:

    maxp1[ab(p1+p2)]cp1,s.t.p2=g(p1)

    得到p1,代入p2=g(p1)得到p2,如此得到斯塔克尔伯格均衡时的(p1,p2)

    斯塔克尔伯格应用实例

    设市场需求函数为D=61.210(p1+p2),两企业的成本函数都为C=1.2p,求斯塔克尔伯格均衡时两个企业的产量。(企业1为领导者,企业2为跟随者)

    :首先求解如下的优化模型:

    maxp2[61.210(p1+p2)]1.2p2

    得到p2=6010p120,然后求解下列优化模型:
    maxp1[ab(p1+p2)]cp1,s.t.p2=6010p120

    得到结果为p1=3,p2=1.5

    MATLAB实现

    clear
    clc
    syms x z;
    y2=-x*(61.2-10*(x+z))+1.2*x;
    eq=diff(y2,x);
    p2=solve(eq,x);
    
    y1=-z*(61.2-10*(z+p2))+1.2*z;
    vdpf = matlabFunction([y1],'Vars',{z}); %将符号表达式转化为函数句柄!!!
    [p1,fval1]=fminsearch(vdpf,0);
    p2=subs(p2,'z',p1);
    [p1,p2]
  • 相关阅读:
    synchronized底层实现学习
    [Alink漫谈之三] AllReduce通信模型
    Alink漫谈(二) : 从源码看机器学习平台Alink设计和架构
    Alink漫谈(一) : 从KMeans算法实现不同看Alink设计思想
    [源码分析]从"UDF不应有状态" 切入来剖析Flink SQL代码生成 (修订版)
    从"UDF不应有状态" 切入来剖析Flink SQL代码生成
    [源码分析] 带你梳理 Flink SQL / Table API内部执行流程
    [白话解析] 通俗解析集成学习之bagging,boosting & 随机森林
    [源码分析] 从FlatMap用法到Flink的内部实现
    Ceph 14.2.5-K8S 使用Ceph存储实战 -- <6>
  • 原文地址:https://www.cnblogs.com/born2run/p/9581335.html
Copyright © 2011-2022 走看看