The standard definition of the Prisoners Dilemma is:
Mr=(RSTP) with T>R>P>S and 2r>T+S. In this case we have:
R=3aT=2aS=P=2 This implies that for a>0 we have T<R thus this is not Prisoner’s Dilemma.
There are 5 potential Nash equilibria for
Mr=(3a2aa2)Mc=(3aa2a2) (r1,c1) is a Nash Equilibrium if and only if:
3a≥2a⇔a≥0 (r1,c2) is a Nash Equilibrium if and only if:
a≥2 and 2a≥3a⇒a≥0 This is not possible.
(r2,c1) is a Nash equilibrium if and only if:
2a≥3a and a≥2a Which is again, not possible.
(r2,c2) is a Nash equilibrium if and only if:
Let σ1=(x,1−x) and σ2=(y,1−y).
(σ1,σ2) with 0<x<1 and 0<y<1 is a Nash equilibrium if and
only if:
3ay+a(1−y)2ay+ay(2a−2a+2)y=2ay+2(1−y)=2ay+2−2y=2−a=22−a 0<y<1 holds if and only if:
The above answers the question. Here is some code to count and display the final
situation:
import nashpy as nash
import matplotlib.pyplot as plt
import numpy as np
a_values = np.linspace(-10, 10, 500)
number_of_equilibrium = []
for a in a_values:
M_r = np.array(
(
(3 * a, a),
(2 * a, 2),
)
)
M_c = M_r.T
game = nash.Game(M_r, M_c)
number_of_equilibrium.append(
len(
list(game.support_enumeration())
)
)
plt.figure()
plt.scatter(a_values, number_of_equilibrium)
plt.xlabel("$a$")
plt.title("number of equilibrium")
plt.axvline(2)
plt.axvline(0)
plt.text(-7.5, 2, r"$\{(r_2, c_2)\}$")
plt.text(5, 2, r"$\{(r_1, c_1)\}$")
plt.text(0.75, 1.5, r"$\{(r_1, c_1), (\sigma_1, \sigma_2),(r_2, c_2) \}$", rotation=90);
For N=2:
f1(a)f2(a)=1(i−1)3a+(2−i)a=12ai+2(1−i) This gives:
γi=2ai−2i(2a−2)+2=2ai−a2ai−2i+2 This gives:
ρ1=1+γ11=1+a2a1=1+21=3 Let us use some code to confirm these calculations:
import sympy as sym
i = sym.Symbol("i")
a = sym.Symbol("a")
f_1 = ((3 * a * (i - 1) + (2 - i) * a) / 2)
f_2 = ((2 * a * i + 2 * (1 - i)) / 2)
gamma = sym.simplify(f_2 / f_1)
gamma
rho_1_N_2 = 1 / (1 + gamma.subs({i: 1}))
rho_1_N_2
For N=3:
f1(a)f2(a)=2(i−1)3a+(3−i)a=22ai+2(2−i) γi=3ai−3a+3a−ai2ai+4−2i=2ai2ai+4−2i=aii(a−1)+2 This gives:
ρ1=1+γ1+γ1γ21=1+aa+1+aa+12a2a1=3a+2a=aa+2a+21 Let us use some code to confirm these calculations:
f_1 = ((3 * a * (i - 1) + (3 - i) * a) / 2)
f_2 = ((2 * a * i + 2 * (2 - i)) / 2)
gamma = sym.simplify(f_2 / f_1)
gamma
rho_1_N_3 = 1 / (1 + gamma.subs({i: 1})+ gamma.subs({i: 1}) * gamma.subs({i: 2}))
sym.simplify(rho_1_N_3)
For N=4:
f1(a)f2(a)=3(i−1)3a+(4−i)a=32ai+2(3−i) γi=2ai+ai(2a−2)+6=a(2i+1)2(ai−i+3) This gives:
ρ1=1+γ1+γ1γ2+γ1γ2γ31=1+3a2(a+2)+3a2(a+2)5a2(2a+1)+3a2(a+2)5a2(2a+1)7a6a1=3⋅5a23⋅5a2+3⋅5a22(a+2)⋅5a+3⋅5a277+6(2(a+2)2(2a+1))1=3⋅5⋅7a23⋅5⋅7a2+3⋅5⋅7a27⋅2(a+2)⋅5a+3⋅5⋅7a213(2(a+2)2(2a+1))1=3⋅5⋅7a2+7⋅2(a+2)⋅5a+13(2(a+2)2(2a+1))3⋅5⋅7a2=105a2+70a2+140a+104a2+260a+1043⋅5⋅7a2=279a2+400a+1043⋅5⋅7a2 Let us use some code to confirm these calculations:
f_1 = ((3 * a * (i - 1) + (4 - i) * a) / 3)
f_2 = ((2 * a * i + 2 * (3 - i)) / 3)
gamma = sym.simplify(f_2 / f_1)
gamma
rho_1_N_4 = 1 / (1 + gamma.subs({i: 1})+ gamma.subs({i: 1}) * gamma.subs({i: 2})+ gamma.subs({i: 1}) * gamma.subs({i: 2}) * gamma.subs({i: 3}))
sym.simplify(rho_1_N_4)
a. For all N=2 we have:
a→0limρ1=1/3 For N∈{3,4}
a→0limρ1=0 b. For N=2 we have:
a→∞limρ1=a→∞lim1/3=1/3 For N=3 we have:
a→∞limρ1=a→∞lim3a+2a=a→∞lim3+2/a1=1/3 For N=4 we have:
a→∞limρ1=a→∞lim279a2+400a+1043⋅5⋅7a2=a→∞lim279+400/a+104/a23⋅5⋅7=2793⋅5⋅7=32⋅313⋅5⋅7=9335 Let us write some code to confirm this:
sym.limit(rho_1_N_2, a, 0)
sym.limit(rho_1_N_2, a, sym.oo)
sym.limit(rho_1_N_3, a, 0)
sym.limit(rho_1_N_3, a, sym.oo)
sym.limit(rho_1_N_4, a, 0)
sym.limit(rho_1_N_4, a, sym.oo)
This shows that the amplification of the fitness (the increase of α) has
a greater effect for larger N.