ゲーム理論1

第8章 ゲーム理論

両者ともに支配戦略がある場合(p.107)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
library(knitr)
n<-2
m<-2
C1<-c(20,10) ## row 1 for P1
D1<-c(40,30) ## row 2 for P1
C2<-c(20,10) ## col 1 for P2
D2<-c(40,30) ## col 2 for P2
P1<-t(matrix(cbind(C1,D1),n,m))
colnames(P1)<-c("品質向上","料金値下げ")
rownames(P1)<-c("A品質向上","A料金値下げ")
P2<-matrix(cbind(C2,D2),n,m)
colnames(P2)<-c("B品質向上","B料金値下げ")
rownames(P2)<-c("品質向上","料金値下げ")
kable(P1);kable(P2)
for (i in 1:n){
if(P1[1,i]>P1[2,i]){print(paste("P1は[ 1 ,",i,"]が優位"))}
else if(P1[1,i]<P1[2,i]){print(paste("P1は[ 2 ,",i,"]が優位"))}}
for (j in 1:m){
if(P2[j,1]>P2[j,2]){print(paste("P2は[",j,", 1 ]が優位"))}
else if(P2[j,1]<P2[j,2]){print(paste("P2は[",j,", 2 ]が優位"))}}
品質向上 料金値下げ
A品質向上 20 10
A料金値下げ 40 30
B品質向上 B料金値下げ
品質向上 20 40
料金値下げ 10 30

[1] “P1は[ 2 , 1 ]が優位”
[1] “P1は[ 2 , 2 ]が優位”

  • B社の戦略が(1)品質向上でも(2)料金値下げでもA社は(2)料金値下げを選ぶべき

[1] “P2は[ 1 , 2 ]が優位”
[1] “P2は[ 2 , 2 ]が優位”

  • A社の戦略が(1)品質向上でも(2)料金値下げでもB社は(2)料金値下げを選ぶべき

  • A社B社とも(2)料金値下げが支配戦略

どちらか一方にだけ支配戦略がある場合(p.117 演習問題8.2)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
n<-2
m<-2
C1<-c(7,5) ## row 1 for P1
D1<-c(9,0) ## row 2 for P1
C2<-c(3,-1) ## col 1 for P2
D2<-c(4,0) ## col 2 for P2
P1<-t(matrix(cbind(C1,D1),n,m))
colnames(P1)<-c("押す","待つ")
rownames(P1)<-c("A押す","A待つ")
P2<-matrix(cbind(C2,D2),n,m)
colnames(P2)<-c("B押す","B待つ")
rownames(P2)<-c("押す","待つ")
kable(P1);kable(P2)
for (i in 1:n){
if(P1[1,i]>P1[2,i]){print(paste("大きなブタは[ 1 ,",i,"]が優位"))}
else if(P1[1,i]<P1[2,i]){print(paste("大きなブタは[ 2 ,",i,"]が優位"))}}
for (j in 1:m){
if(P2[j,1]>P2[j,2]){print(paste("小さなブタは[",j,", 1 ]が優位"))}
else if(P2[j,1]<P2[j,2]){print(paste("小さなブタは[",j,", 2 ]が優位"))}}
if(P1[1,1]>P1[2,1]){print("小さなブタが「押す」を選んだときの大きなブタの最良の選択は「押す」を選ぶこと")}else {print("小さなブタが「押す」を選んだときの大きなブタの最良の選択は「待つ」を選ぶこと")}
if(P1[1,2]>P1[2,2]){print("小さなブタが「待つ」を選んだときの大きなブタの最良の選択は「押す」を選ぶこと")}else {print("小さなブタが「待つ」を選んだときの大きなブタの最良の選択は「待つ」を選ぶこと")}
if(P2[1,1]>P2[1,2]){print("大きなブタが「押す」を選んだときの小さなブタの最良の選択は「押す」を選ぶこと")}else {print("大きなブタが「押す」を選んだときの小さなブタの最良の選択は「待つ」を選ぶこと")}
if(P2[2,1]>P2[2,2]){print("大きなブタが「待つ」を選んだときの小さなブタの最良の選択は「押す」を選ぶこと")}else {print("大きなブタが「待つ」を選んだときの小さなブタの最良の選択は「待つ」を選ぶこと")}
押す 待つ
A押す 7 5
A待つ 9 0
B押す B待つ
押す 3 4
待つ -1 0

[1] “大きなブタは[ 2 , 1 ]が優位”
[1] “大きなブタは[ 1 , 2 ]が優位”

[1] “小さなブタは[ 1 , 2 ]が優位”
[1] “小さなブタは[ 2 , 2 ]が優位”

[1] “小さなブタが「押す」を選んだときの大きなブタの最良の選択は「待つ」を選ぶこと”
[1] “小さなブタが「待つ」を選んだときの大きなブタの最良の選択は「押す」を選ぶこと”

[1] “大きなブタが「押す」を選んだときの小さなブタの最良の選択は「待つ」を選ぶこと”
[1] “大きなブタが「待つ」を選んだときの小さなブタの最良の選択は「待つ」を選ぶこと”

  • 小さなブタに支配戦略「待つ」がある
  • 大きなブタは自らボタンを押さない限り餌が食べれないので「押す」を選ぶしかない。

ナッシュ均衡解が存在する場合(p.108)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
n<-2
m<-2
C1<-c(40,30) ## row 1 for P1
D1<-c(50,20) ## row 2 for P1
C2<-c(45,35) ## col 1 for P2
D2<-c(50,25) ## col 2 for P2
P1<-t(matrix(cbind(C1,D1),n,m))
colnames(P1)<-c("品質向上","料金値下げ")
rownames(P1)<-c("A品質向上","A料金値下げ")
P2<-matrix(cbind(C2,D2),n,m)
colnames(P2)<-c("B品質向上","B料金値下げ")
rownames(P2)<-c("品質向上","料金値下げ")
kable(P1);kable(P2)
for (i in 1:n){
if(P1[1,i]>P1[2,i]){print(paste("P1は[ 1 ,",i,"]が優位"))}
else if(P1[1,i]<P1[2,i]){print(paste("P1は[ 2 ,",i,"]が優位"))}}
for (j in 1:m){
if(P2[j,1]>P2[j,2]){print(paste("P2は[",j,", 1 ]が優位"))}
else if(P2[j,1]<P2[j,2]){print(paste("P2は[",j,", 2 ]が優位"))}}
品質向上 料金値下げ
A品質向上 40 30
A料金値下げ 50 20
B品質向上 B料金値下げ
品質向上 45 50
料金値下げ 35 25

[1] “P1は[ 2 , 1 ]が優位”
[1] “P1は[ 1 , 2 ]が優位”

[1] “P2は[ 1 , 2 ]が優位”
[1] “P2は[ 2 , 1 ]が優位”

  • A社(1)品質向上、B社(2)料金値下げがナッシュ均衡解
  • A社(2)料金値下げ、B社(1)品質向上がナッシュ均衡解

支配戦略もナッシュ均衡解も存在しない場合(p.109)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
n<-2
m<-2
C1<-c(25,40) ## row 1 for P1
D1<-c(30,20) ## row 2 for P1
C2<-c(35,20) ## col 1 for P2
D2<-c(20,40) ## col 2 for P2
P1<-t(matrix(cbind(C1,D1),n,m))
colnames(P1)<-c("品質向上","料金値下げ")
rownames(P1)<-c("A品質向上","A料金値下げ")
P2<-matrix(cbind(C2,D2),n,m)
colnames(P2)<-c("B品質向上","B料金値下げ")
rownames(P2)<-c("品質向上","料金値下げ")
kable(P1);kable(P2)
for (i in 1:n){
if(P1[1,i]>P1[2,i]){print(paste("P1は[ 1 ,",i,"]が優位"))}
else if(P1[1,i]<P1[2,i]){print(paste("P1は[ 2 ,",i,"]が優位"))}}
for (j in 1:m){
if(P2[j,1]>P2[j,2]){print(paste("P2は[",j,", 1 ]が優位"))}
else if(P2[j,1]<P2[j,2]){print(paste("P2は[",j,", 2 ]が優位"))}}
品質向上 料金値下げ
A品質向上 25 40
A料金値下げ 30 20
B品質向上 B料金値下げ
品質向上 35 20
料金値下げ 20 40

[1] “P1は[ 2 , 1 ]が優位”
[1] “P1は[ 1 , 2 ]が優位”

[1] “P2は[ 1 , 1 ]が優位”
[1] “P2は[ 2 , 2 ]が優位”

  • 戦略の選択に確率的な要素を取り入れて考える。
  • A社確率pで品質向上、B社確率qで品質向上を選択するとする
品質向上 料金値下げ
品質向上 pq p(1-q)
料金値下げ q(1-p) (1-p)(1-q)