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

基本概念

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

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

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

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

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

设市场需求函数为:

D=D(p1+p2)=ab(p1+p2)D=D(p1+p2)=a−b(p1+p2)
<script type="math/tex; mode=display" id="MathJax-Element-1"> D=D(p_1+p_2)=a-b(p_1+p_2) </script>
其中p1p1<script type="math/tex" id="MathJax-Element-2">p_1</script>和p2p2<script type="math/tex" id="MathJax-Element-3">p_2</script>分别是两个企业的产量。假设两企业的成本函数相同,都为C=c0pC=c0p<script type="math/tex" id="MathJax-Element-4">C=c_0p</script>,首先考虑在给定企业1的计划产量下,企业2寻求使自己利润最大化的最优产量p2p2<script type="math/tex" id="MathJax-Element-5">p_2</script>,即:
maxp2[ab(p1+p2)]cp2maxp2[a−b(p1+p2)]−cp2
<script type="math/tex; mode=display" id="MathJax-Element-6"> \max p_2[a-b(p_1+p_2)]-cp_2 </script>
上面优化模型中的最优解的p2p2<script type="math/tex" id="MathJax-Element-7">p_2</script>显然是p1p1<script type="math/tex" id="MathJax-Element-8">p_1</script>的函数p2=g(p1)p2=g(p1)<script type="math/tex" id="MathJax-Element-9">p_2=g(p_1)</script>;

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

maxp1[ab(p1+p2)]cp1,s.t.p2=g(p1)maxp1[a−b(p1+p2)]−cp1,s.t.p2=g(p1)
<script type="math/tex; mode=display" id="MathJax-Element-10"> \max p_1[a-b(p_1+p_2)]-cp_1,\qquad s.t.\quad p2=g(p_1) </script>
因此斯塔克尔伯格(Stackelberg)模型是先求解如下的优化模型:
maxp2[ab(p1+p2)]cp2maxp2[a−b(p1+p2)]−cp2
<script type="math/tex; mode=display" id="MathJax-Element-11"> \max p_2[a-b(p_1+p_2)]-cp_2 </script>
得到p2=g(p1)p2=g(p1)<script type="math/tex" id="MathJax-Element-12">p_2=g(p_1)</script>

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

maxp1[ab(p1+p2)]cp1,s.t.p2=g(p1)maxp1[a−b(p1+p2)]−cp1,s.t.p2=g(p1)
<script type="math/tex; mode=display" id="MathJax-Element-13"> \max p_1[a-b(p_1+p_2)]-cp_1,\qquad s.t.\quad p2=g(p_1) </script>
得到p1p1<script type="math/tex" id="MathJax-Element-14">p_1</script>,代入p2=g(p1)p2=g(p1)<script type="math/tex" id="MathJax-Element-15">p_2=g(p_1)</script>得到p2p2<script type="math/tex" id="MathJax-Element-16">p_2</script>,如此得到斯塔克尔伯格均衡时的(p1,p2)(p1,p2)<script type="math/tex" id="MathJax-Element-17">(p_1,p_2)</script>。

斯塔克尔伯格应用实例

设市场需求函数为D=61.210(p1+p2)D=61.2−10∗(p1+p2)<script type="math/tex" id="MathJax-Element-18">D=61.2-10*(p_1+p_2)</script>,两企业的成本函数都为C=1.2pC=1.2p<script type="math/tex" id="MathJax-Element-19">C=1.2p</script>,求斯塔克尔伯格均衡时两个企业的产量。(企业1为领导者,企业2为跟随者)

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

maxp2[61.210(p1+p2)]1.2p2maxp2[61.2−10∗(p1+p2)]−1.2p2
<script type="math/tex; mode=display" id="MathJax-Element-20"> \max p_2[61.2-10*(p_1+p_2)]-1.2p_2 </script>
得到p2=6010p120p2=60−10p120<script type="math/tex" id="MathJax-Element-21">p_2=\frac{60-10p_1}{20}</script>,然后求解下列优化模型:
maxp1[ab(p1+p2)]cp1,s.t.p2=6010p120maxp1[a−b(p1+p2)]−cp1,s.t.p2=60−10p120
<script type="math/tex; mode=display" id="MathJax-Element-22"> \max p_1[a-b(p_1+p_2)]-cp_1,\qquad s.t.\quad p2=\frac{60-10p_1}{20} </script>
得到结果为p1=3,p2=1.5p1=3,p2=1.5<script type="math/tex" id="MathJax-Element-23">p_1=3,p2=1.5</script>。

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]
Logo

一站式虚拟内容创作平台,激发创意,赋能创作,进入R空间,遇见同道,让优质作品闪耀发光。​

更多推荐