Sayı kartları (çözüm)

Soru

Anaximander’in kartlarından birinde 8 sayısı var.

Boethius’un kartlarında sadece asal sayılar varmış. Yani 2, 3, 5, 7, 11.

Confucius’un kartlarında da asal olmayan ve ortak bir asal çarpanı olan üç sayı varmış. Bunlar da 4, 6, 9, 10 ve 12 olabilir. 1’in asal çarpanı olmadığı için listede yok. 8 sayısı Anaximander’in kartlarında ve 2 sayısı da asal olduğundan Confucius’un kartlarında olamaz.

Bu bilgilere bakan Diogenes kimde hangi sayıların olduğunu bulabiliyor.

Şimdi bu bilgilere biraz daha bakalım. Boethius’un kartlarında üç tane asal olduğuna göre kalan iki asal Anaximander’de ve Diogenes’te olmalı, çünkü Confucius’ta hiç asal yok. Peki bu asalların dağılımı nasıl olmalı ki Diogenes kendi kartlarına baktığında kimde hangi sayıların olduğunu görebiliyor?

Dikkat edersek asallarla ilgili Boethius’tan başka bilgi veren yok. Yani eğer Anaximander’de asal sayı varsa, Diogenes hangi asal sayıların Boethius’ta hangi asal sayının veya asal sayıların Anaximander’de olduğunu bilemez. O zaman kalan iki asal sayı da Diogenes de olmalı. Bu şekilde Diogenes Boethius’un üç sayısını da bilebilir.

Şimdi kalan sayılara bakalım. 8 sayısı Anaximander’deydi. O zaman 1, 4, 6, 9, 10, 12 sayıları kaldı. 1 sayısı kimde olmalı?

1 sayısı eğer Diogenes’te olsa, o zaman Diogenes 4, 6, 9, 10 ve 12 sayılarının hangi üçünün Confucius’ta, hangi ikisinin de Anaximander’de olduğunu bulamaz. Olasılıklara bakalım:

Anaximander: 4, 10 Confucius: 6, 9, 12 (ortak asal çarpan 3)

Anaximander: 9, 12 Confucius: 4, 6, 10 (ortak asal çarpan 2)

ve daha başka dağılımlar da bulunabilir.

Demek ki 1 sayısı Diogenes’te olamaz. 1 sayısı Anaximander’de.

Artık dağıtmamız gereken beş sayı kaldı. 4, 6, 9, 10, 12. Bu sayıların biri Anaximander’de, üçü Confucius’ta, sonuncusu da Diogenes’te. Hangi dağılımda Diogenes herkesin sayılarını bilebilir?

Bunun için şöyle bir tablo yapayım:

AnaximanderConfuciusDiogenes
10 ya da 9(6, 9, 12) ya da (6, 10, 12)4
94, 10, 126
12, 6, 4 ya da 10(4, 6, 10) ya da (4, 10, 12)
ya da (6, 10, 12)
ya da (4, 6, 12)
9
4 ya da 9(6, 9, 12) ya da ((4, 6, 12)10
9(4, 6, 10)12

Bu tabloyu Diogenes sütunundan okumaya başlayalım. Eğer Diogenes’te 4, 9 ya da 10 sayılarından biri varsa kalan sayıların dağılımı birden fazla şekilde yapılabiliyor. Bu durumda Diogenes diğerlerinin sayılarını bilemez. Buna karşın Diogenes’in sayıları 6 ya da 12 ise kalan sayıların dağılımı tek şekilde yapılabiliyor. Bu dağılımların ikisinde de Anaximander 9 sayısına sahip oluyor.

Sonuçta Diogenes herkesin sayılarını biliyor ama biz problemi çözünce Diogenes’in hiçbir sayısını bilemiyoruz. Elindeki sayıları bilebileceğimiz tek kişi de Anaximander ve soruda da onun sayıları sorulmuş. 1, 8, 9.

Anaximander de diğerlerinin sayılarını bilemez, ne asal sayıların ne de asal olmayan sayıların dağılımı hakkında bir bilgiye sahip değil.

Boethius kalan iki asal sayının Diogenes’te olduğunu bulabilir ama Diogenes’in son sayısını bulamaz.

Aynı şekilde Confucius da Diogenes’in asal olmayan sayısını bilir ama asalların nasıl dağıldığını bulamaz.

Klasik bir şapka bilmecesi

Büyük ihtimalle şu bilmeceyi biliyorsunuzdur:

Padişah vezir seçmek için üç çok zeki ve mantıklı aday bulur. Adaylara yapacağı testin kurallarını anlatır:

Elimde üçü kırmızı ikisi mavi beş tane şapka var. Üçünüz de birbirinizi görecek şekilde şu üç sandalyeye oturacaksınız ve gözleriniz kapatılacak. Sonra her birinizin başına bu şapkalardan biri konulacak. Ardından aynı anda gözleriniz açılacak. Birbirinizle iletişim yasak. Başındaki şapkanın rengini tahmin etmek isteyen ayağa kalkacak ve bu rengi söyleyecek. Bir tahmin hakkınız var. Şapkasının rengini bilen ilk kişi vezir olacak.

Sonra adayların gözleri kapatılır ve padişah hepsinin başına da kırmızı şapka koydurur. Bir süre sonra adaylardan biri benim başımdaki şapka kırmızı der ve vezir olur.

Vezir nasıl bir mantık yürüttü de şapkasının rengini bildi?

Bu bilmecenin çözümü şöyledir:

Adaylara A, B ve C diyelim. Diyelim ki A adayı şapkasının rengini bildi. O zaman A adayının yürüttüğü mantık aşağıdaki gibidir.

Eğer benim başımdaki şapka mavi olsaydı, o zaman B adayı bu mavi şapkayı görecekti ve kendi başındaki şapka da mavi olsaydı C adayının hemen ayağa kalkıp kendi şapkasının kırmızı olduğunu söyleyeceğini düşünecekti. C adayı hala ayağa kalkmadığına göre hem benim (A) hem de B adaylarının şapkası mavi olamaz. Bu durumda benim başımdaki şapka mavi olsa bu sefer B adayı kendi şapkasının renginin kırmızı olduğunu şimdiye kadar anlayacaktı ve ayağa kalkıp kırmızı diyecekti ama bunu da yapmadığına göre benim başımdaki şapka kırmızı olmalı.

Benim oldukça hoşuma giden bir mantık yürütme yöntemi. Kendisini diğerlerinin yerine koyarak problemi adım adım çözüyor. Bu cevapta aklıma dikkatimi çeken şey yürütülen mantığın bütün adaylardan bağımsız olmasıdır. Bu nedenle üç adayın da aynı anda kalkıp kendi şapkasının kırmızı olduğunu bilmesini beklerdim.

Çözümde dikkate değer başka noktalar da var yalnız. A adayı yorum yaparken kendisini başkalarının yerine koyuyor ve eğer diğer türlü olsaydı şimdiye kadar şöyle tepkiler verirlerdi diye mantık yürütüyor. Yani mantıkta belli olmayan bir zaman bilgisi ile diğer kişilerin de sahip olduğuna inandığı bilgileri kullanıyor. A adayı aslında B ve C adaylarının aynı bilgilere sahip olup olmadığını bilmiyor ama bunu, her adayın çok zeki ve mantıklı olduğu varsayımına dayanarak doğru kabul ediyor. Zaman da önemli bence. A adayı herkesin aynı bilgiye sahip olduğunu ne zaman kabul edebilir? Bir saniye sonra mı? Yüz milisaniye sonra mı?

Şimdi zamanın bu çözümlerde nasıl başa bela olabileceğine bakalım. Adaylar çok zeki ve hepsi de vezir olmak istiyor. O zaman yalan söyleyerek diğerlerini şaşırtmayı da deneyebilirler. İletişim yokken nasıl yalan söyleyecekler sorusunun cevabı da zamanda gizli.

Örneğin başlarındaki şapkalar mavi (A), kırmızı (B) ve kırmızı (C) olsun (mavi mavi kırmızıda başında kırmızı olan şapka olan adayın daha başka bir mantık yürütmesine gerek yok, dolayısıyla yalanlara karşı da güvenli durumdadır). B ve C adayları bir tane mavi ve bir tane kırmızı şapka gördüklerinden birbirlerine karşı eşit durumdadırlar. Çözmeleri gereken tek sorun ne kadar zaman sonra diğer adayın ikinci mavi şapkayı görmediğinden emin olabilirler? Bu soruya cevap vermek yukarıda da dediğim gibi kolay değil ama burada başka bir imkan daha var. Bir mavi ve bir kırmızı şapka göre adaylar gerçekten de diğerinin ne düşündüğünü hesaba katmak zorunda mı? Kendi kafasında kırmızı şapka olan bir aday kendi kafasında mavi şapka olma şansını doğrudan atlayabilir, çünkü öyle bir durumda diğer adayla zamana karşı bir yarışta olacak (kendi başındakinin mavi olduğunu bilebilmesi için önce diğer adayın kendi şapkasının kırmızı olduğunu bilmesi gerekiyor). Böyle bir şapka dağılımında bence B ve C adayları (bir kırmızı ve bir mavi şapka görenler) diğerinin düşünmesini beklemeden hemen kırmızı diye tahminde bulunabilirler. Bu stratejinin kaybettiği durum padişahın gerçekten de iki mavi ve bir kırmızı şapka koyduğu durum ama bu durumda kafasında kırmızı şapka olan zaten kazanacağından ilk bakışta kafasında mavi şapka olan adayların kaybettiği bir şey yok gibi görünüyor. Bu stratejinin varlığı diğer adayı da baskı altında tutacaktır, yani ona mantık yürütmek için pek zaman bırakmayabilir.

Peki üç kırmızı şapka durumunda zaman faktörü nasıl işleyebilir? Her aday iki kırmızı şapka gördüğünden herkes birbirine göre eşit durumda. Rakipleri kandırmanın tek yolu ugerektiğinden daha uzun süre düşünmek olduğundan burada da “yalan söylemek” pek işe yaramıyor gibi. Bir adayın düşünme süresi arttıkça diğerlerinin başında mavi şapka olma olasılığı azalıyor. Burada da mavi şapkayı doğru bilmek diğerlerinin bizden daha önce doğru cevabı vermesiyle olabileceğinden belki de işi yine şansa bırakmak daha iyi bir strateji olabilir. Yani iki kırmızı gören hemen kendi başındaki şapkanın da kırmızı olduğunu söyleyebilir.

Bu problemi düşünmeye başladığımda zamanla oynayarak rakipleri yanlış yönlendirmek mümkün olabilir diye düşünüyordum ama öyle bir yol bulamadım. Zaman faktörü yine de önemli, çünkü mantığı doğru yürütmek için herkesin belli bir anda ne kadar bilgiye sahip olduğunu bilmek lazım ve bunu bağladığımız tek faktör de zaman. Belli bir süre geçtiğinde bir aday hala şu tepkiyi vermemişse o zaman o aday diğer kişilerinn şapkaları hakkında şu bilgilere sahiptir ve ben de kendi bilgilerimi artık güncelleyebilirim ama o belli bir süre ne kadar olmalı? Ayrıca bu mantık yürütme de kısaca hala kaybetmediysem başımdaki şapkanın rengi şu olmalıdır şeklinde, yani bu mantık yürütme kuralları öğrendikten hemen sonra yapılabilir ve oyunu kazanmak için de ilk bilen olmak gerektiğinden kaybedilecek olasılıklar elenir ve doğrudan en iyimser tahmin yapılabilir.

Gerçek hayatta bu oyun değişik kombinasyonlarla ve zeki insanlarla oynansa acaba nasıl sonuçlar çıkardı? Daha da kötüsü zeki birisi daha yavaş düşünen birisine karşı kaybedebilir bile ama soruda herkesin süper olduğu verilmişti. Yine de ilginç bir deneme olurdu.

Sayı kartları

Tanya Khovanovna’nın sayfasında gördüğüm bir bilmece.

Üzerinde birden onikiye kadar sayıları yazılı olduğu oniki tane kartımız var. Bu kartla Anaximander, Boethius, Confucius ve Diogenes arasında eşit olarak paylaştırılıyor, yani her biri üç tane kart alıyor. Sonra sırayla aralarında şöyle bir konuşma geçiyor.

Anaximander: Benim kartların birinde 8 var.

Beothius: Kartlarımın hepsinde asal sayılar var.

Confucius: Benim sayılarımın hiçbiri asal değil. Ayrıca üçünün de ortak bir asal çarpanı var.

Diogenes: O zaman her birinizin hangi kartlara sahip olduğunu biliyorum.

Herkes doğruyu söylemişse Anaximander’in kartlarında hangi sayılar vardır?

Çözüm

Akraba seçilimi (Karşılıklılık 3)

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()
r = 0.2 için simülasyon çıktısı
r = 1.0 için simülasyon çıktısı

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.