Bu mekanizmada toplumda karşılaşmaların çoğunluğunun akrabalar arasında olduğu varsayılıyor.
Okuduğum makalede akrabalık şu şekilde programlanmış. Karşılıklı oyun oynayan kişilerin ortalama akrabalığına \(r \) denmiş. Bu sayı da 0 ile 1 arasında bir değere sahip. Bizim karşılaşmadaki kazancımız, rakibin oyundaki kazancı ile kendi kazancımızın \(r \) ile çarpımının toplamı oluyor. Toplam kazançlar da sabir kalsın diye toplamlar \(1 + r \) sayısına bölünüyor. Bu şartlar altında kazanç matrisi aşağıdaki hale geliyor:
\(M = \begin{bmatrix} R&&\frac{T + r \cdot S}{1 + r}\\\frac{S+ r \cdot T}{1+r}&&P \end{bmatrix} \)
Bunun neden böyle olduğunu çıkarmaya çalışayım şimdi. Orijinal oyunda kazanç matrisi şu şekilde:
\(M = \begin{bmatrix} R&&S\\T&&P \end{bmatrix} \)
Bu matrise göre iki işbirlikçi karşılaşırsa ikisi de R kazanır. Yukarıdaki kurala göre ise ikisi de \(R + r \cdot R \) kazanacak ama. Bu sayıyı da \(1 + r \) sayısına bölersek ikisi için kazanç $late R $ olur.
İşbirlikçi ihanetçiye karşı oynarsa, işbirlikçi S, ihanetçi de T kazanacak. Şimdi buna kuralı uygularsak, işbirlikçi \(T + r \cdot S \) kazanacak ama bunu da \(1 + r \) ile böleceğiz. Benzer şekilde ihanetçi de \(S + r \cdot T \) kazanacak ve bunu da \(1 + r \) ile böleceğiz. Böylece iki kazancın da toplamı \(\frac{S + r\cdot T}{1 + r} + \frac{T + r \cdot S}{1 + r} = \frac{S + r\cdot T + T + r \cdot S }{1+r} = \frac {(1 + r) S + (1 + r) T}{1 + r} = \frac{(1 + r)(S+T)}{1 + r} = S + T \) olur.
İki ihanetçinin karşılaşması da iki işbirlikçi karşılaşması gibi analiz edilebilir ve orada da ikisi de P kazanır.
Makale bu matris için kararlı stratejilerin şu şekilde hesaplandığını belirtiyor.
İşbirlikçi stratejinin kararlı olabilmesi için
\(r > r_c = \frac {T – R}{R – S} \)
ve ihanetçi stratejinin kararlı olması için de
\(r < r_d = \frac{P – S}{T-P} \) olması gerekiyor.
Bu sistemi de aynı şekilde programladım ve denemeler yaptım ama nedense makaledeki gibi sonuçlar elde edemedim. Sanırım ya programım yanlış, makaleyi yanlış anladım ya da bilmediğim başka bir şeyler var. Öncelikle benim beklentim şu şekildeydi: Akrabalığı artırdıkça işbirlikçilerin kararlı bir duruma gelmesini bekliyordum ama bazı matris türlerinde hiç olmadı.
Önce kullandığım programı buraya koyayım. Sonra birkaç çıktıya da bakarız.
import numpy as np
import matplotlib.pyplot as plt
strategies = np.array([[1, 0], [0, 1]])
R = 2
S = 5
T = 4
P = 2
r = 0.2
payoff = np.array([[R, (T + r*S)/(1 + r)], [(S + r*T)/(1 + r), P]])
number_of_iterations = 100
increment = 0.01
steady_states = np.array([[0, 0]])
for s1 in np.arange(0, 1.0, increment):
s2 = 1 - s1
species = np.array([s1, s2])
for i in range(0, number_of_iterations):
difference = (payoff.dot(species) - species.dot(payoff).dot(species))*species
species = species + difference
species = np.clip(species, 0, 1)
steady_states = np.append(steady_states, np.array([[s1, species[0]]]), axis = 0)
plt.plot(steady_states[:, 0], steady_states[:, 1])
plt.ylabel("işbirlikçi türün sondaki oranı")
plt.xlabel("işbirlikçi türün başlangıçtaki oranı")
plt.show()
Bu denemelerde beklediğim şekilde bir değişiklik göremediğim için biraz hayal kırıklığına uğradığımı söylemem lazım ama bu akrabalık seçilimi için tek model değil tabii ki. Belki diğer modeller beklediğim sonuçları verir ya da belki ben bir hata yapmışımdır da o hatayı bu sırada bulurum.