Şapkalar (Çözüm)

Soru

Meraklı Karga oyundan eve döndüğünde bir köşede uyuklayan güvercini görünce önce bir şaşırır. Koltukta oturan babasına döner.

MK: Baba, odada bir güvercinin uyuduğunu biliyorsun değil mi?

BK: Hııı.

MK: Güvercin diyorum, güvercin. Dinlemiyor musun beni?

BK: Ne oldu? Ha, güvercin mi? Sessiz ol da uyusun, bir mesaj getirdi, onunla uğraşıyordum.

MK: Ne mesajı?

Bilge Karga mesajı Meraklı Karga’ya uzatır. Meraklı Karga okuduktan sonra sesli düşünmeye başlar.

MK: Hepsi aynı anda cevap vereceğine göre kendi şapkalarıyla ilgili hiçbir bilgi elde edemeyecekler. Bu durumda her birinin kurtulma şansı yüzde elli olacak.

BK: Evet ama herkes birbirlerinden bağımsız bir şekilde tahminde bulunursa hepsi ölebilir. Bir kişinin yanlış tahmin şansı yüzde elli. Hepsinin birden yanlış tahminde bulunma ihtimali de yüzde elli üzeri yüz olacak. Sıfıra çok yakın ama yine de mümkün. Ayrıca hepsinin doğru tahmin yapma şansı da aynı. Ortak bir stratejiyle bir kısmını kesin kurtarabiliriz ama.

MK: Doğru tahmin şansı yüzde elli olduğundan yüz kişide elli kişiden fazlayı kurtaramayız heralde.

BK: Bence de.

MK: O zaman elli kişilik iki grup kuralım. Bu grupların biri kurtulacak şekilde bir strateji bulalım. Mesela toplam siyah şapka sayısını ele alalım. Bunu kesin bilme şansları olmayacak ama bu sayı ya tek olacak ya da çift. Başka bir imkan yok. O zaman birinci grup tek sayıda siyah şapka olduğunu, ikinci grup da çift sayıda siyah şapka olduğunu varsaysın. Hemen kendileri haricindeki bütün siyah şapkaları saysınlar ve kendi varsayımlarına göre de kendi şapkalarını tahmin etsinler. Bu yöntemle elli kişi kesin kurtulacak ama diğer elli kişi de kesin ölecek.

Örneğin 50 beyaz 50 siyah şapka koyulsun. Birinci gruptakiler tek sayıda siyah şapka olduğunu varsaydığından şu şekilde oynayacak: Birinci gruptan başında beyaz şapka olan biri çift sayıda (50) siyah şapka gördüğünden ve toplam siyah şapka sayısının tek olduğunu varsaydığından kendisinin siyah şapka taktığını söyleyecektir. Yanlış cevap ve ölecek. Yine birinci gruptan başında siyah şapka olan biri de tek sayıda (49) siyah şapka gördüğünden ve toplamda tek sayıda siyah şapka olduğunu varsaydığından kendi başındaki şapkanın beyaz olduğunu söyleyecek. Bu şekilde birinci gruptaki herkes yanlış cevap verecek.

Buna karşın ikinci grup ise daha şanslı. İkinci gruptan başında beyaz şapka olan biri çift sayıda (50) siyah şapka görecek ve toplamda çift sayıda siyah şapka olduğunu varsaydığı için kafasındaki şapkanın beyaz olduğunu söyleyecek. Yine aynı gruptan başında siyah şapka olan biri de tek sayıda (49) siyah şapka görecek. Çift sayıda siyah şapka olduğunu varsaydığı için de kendi kafasında siyah bir şapka olduğunu tahmin edecek. Böylece ikinci gruptakilerin hepsi doğru cevap vereceğinden kurtulacak.

BK: Oldukça güzel bir yöntem. Peki ya herkesi kurtarmaya kalksak?

MK: Herkesi yüzde elliden daha iyi bir ihtimalle kurtaramayacağız.

BK: Olsun. Yine de bu stratejiyi de bilsinler, gerisine kendileri karar verirler nasıl olsa.

MK: Bu durumda iki grup yerine tek grup kurarlar ve bütün grup mesela toplam tek sayıda siyah şapka olduğunu varsayar. Avluda birbirlerini şapkalarla gördüklerinde de yukarıdaki gibi hesap yaparlar ve kendi şapkalarını tahmin ederler. Eğer bu varsayım doğruysa hepsi kurtulur, yanlışsa hepsi ölür.

BK: Tamam. Güvercin uyanmadan bu çözümleri yazayım hemen.

MK: Anlaşıldı, ben de çizgi film seyredeyim bari.

Bilge Karga tam cevap mesajını bitirmişti ki güvercin de uyandı. Cevabın hazır olduğunu öğrenince çok sevindi ve mesajı bacağına taktı, Bilke Karga’ya hayranlıkla teşekkür etti ve hemen yol koyuldu. Bilge Kartal koltuğuna oturdu ve cevabı belki de hiçbir zaman öğrenemeyeceğini bilerek “acaba mahkumlar hangi yolu seçecekler?” diye düşünmeye başladı.

Mantık

David Eagleman’in Incognito adlı kitabından aldığım basit bir mantık problemi:

Yukarıdaki kartların bir yüzünde sayı diğer yüzünde de bir renk yazıyor. Biz sadece gösterilen yüzlerini görüyoruz. Eğer bir kartın bir yüzünde çift sayı varsa, arka yüzünde bir ana renk vardır önermesi veriliyor. Bu önermenin doğruluğunu test etmek için hangi iki kartın arkasına bakmak gerekir?

 

 

Bu sefer kartların bir yüzünde bir içecek diğer yüzünde de kişinin yaş bilgisi var. Elimizdeki önerme de “18 yaşından küçükler alkollü içecek içemez” olsun. Bu önermeyi test etmek için hangi iki kartın arkasına bakmak lazım?

 

Son olarak da basit bir soru: Bu iki sorunun hangisi daha kolaydı?

Çözüm

Bilim müzesi

2017’nın ziyaretçiler için açık son gününde çocuklarla Mannheim’daki teknik müzeye (Technoseum) gittik. Eskiden sadece dört temel sergiden (Dokuma, kağıt üretimi ve trenler ve bilimsel/teknik araç gereçler) oluşan müze yıllardır çocuklar ve çocuk kalanlar için fizik ve matematik bölümleriyle de geliştirilmiş. Fotoğraf makinemin ve telefonumun hafızalarını çabucak tükettiğim için her şeyi çekemedim ama etkileyici bulduğum parçaları bu yazıda toplamak istedim. Tarihi bilimsel araçlar için de ayrı bir yazı hazırlamayı düşünüyorum.

Önerilen plana göre gezimize en üst kattan başladık. Kartondan model inşa eden amcaların sergisine kısaca baktık.

Ardından ilk durağımız olan fizik deneylerine geldik. Girişte makara sistemlerinde hava atmaya kalkarken 20 kg’lık çuvalın çocuk oyuncağı olmadığını fark ettik.

İki adım sonra kesinlikle görmeyi planladığım vakumda serbest düşme deneyi vardı. Aşağıdaki videoda deney düzeneğini görebilirsiniz. Soldaki ölçü aleti tüp içindeki hava basıncını gösteriyor. Sağdaki kırmızı düğmeye basıldığında tüpteki hava yavaş yavaş boşaltılıyor ama tabii ki tam vakum oluşmuyor. Tüpün içinde vakumdan başka bir adet plastik top, bir de tüy var. Videonun ilk kısmında iki cisim de tüpün ortasına kadar aynı hızda düşüyorlar. Sonra tüy kenarlara çarpmaya başlıyor ve zaman kaybediyor. Sonra ben tüpü daha yavaş başlangıç konumuna getirmeye çalışıyorum ki top ilk anda haksız bir avantaj elde etmesin ama bunu da pek başaramıyorum. Belki bu deney düzeneği üzerinde biraz daha çalışılsa çok daha başarılı bir deney olabilir. En azından büyükler için, müzede bu deneye ilgi gösteren hiçbir çocuk görmedim.

 

 

Bundan sonra gittiğimiz deney istasyonu oldukça basit ve küçük çocuklar için bir o kadar da şaşırtıcı bir masaydı. Küçük çocuklar için uygun olmayan tek şey çevrilmesi gereken kısmın biraz güç istemesiydi. Bunun dışında bence sıvının rengi de güzel seçilmiş.

Bu masanın arkasındaki duvarda da zekice planlanmış bir dişli deney ortamı vardı. O dişlilerden sadece üç tanesi duvara sabitlenmiş durumdaydı, diğer hepsi mıknatısla tutturulmuştu, yani deneyi yapanlar bu dişlileri istediği yerlere koyabiliyordu. Bu sistemin tek zayıf tarafı, videoda da görüldüğü gibi büyük dişlilerin ağırlığı nedeniyle aşağıya kaymasıydı. Daha küçük ya da daha hafif dişlilerle bu deney istasyonu harika olabilirdi ki bu haliyle bile oldukça başarılıydı.

Daha sonra eylemsizlik momenti ile ilgili çok basit ama güzel bir deney vardı. Burada aynı ağırlıkta ve aynı ağırlık merkezine sahip iki silindir şeklinde cisim yuvarlanıyor ve hızlarının farkı gözlemlenebiliyor. Kütlesinin dağılımı kütle merkezine yakın olan silindir diğerinden daha hızlıydı. Videoda bu deneyi görebilirsiniz.

Ardından birçok doktorun masasını süsleyen bir oyuncağın büyük boyutlusuyla oynadık. Fiziğin simetri anlayışı gerçekten de çok güzel.

Işık ve aynalarla ilgili güzel bir deney istasyonu da vardı. Bir sıra lazer işaretçi ile paralel ışınlar yapılmış ve bu ışınların düz ve içbükey aynalardan yansımaları çok güzel izlenebiliyor. Bu deneyde aynalar cam yerine metal şeritlerden yapılmış ama lazer bu yüzeylerden de oldukça güzel yansıyor. Bir başka ilginç fikir de birbirine iplerle bağlı küçük aynalardan (bunlar gerçekten cam) oluşan bir şeritti. Esnek yapısı sayesinde çok değişik şekillerde aynalar düzenlenebiliyorlar ve çeşitli şekillerdeki aynaların aslında bu şekilde küçük aynaların toplamı şeklinde düşünülebileceği görülebiliyor. Tabii küçük çocukların bu tür yaklaştırmaları anlamaları pek kolay bir şey değil ama oldukça başarılı bulduğum deneylerden biriydi. Biz bu ayna şeridini içbükey ayna gibi dizip benzer bir yansıtma performansı sağlamaya çalıştık.

Döner tabla üzerinde yuvarlanan cisimler ise her yaştan ziyaretçinin ilgi odağıydı. Çocuklar rastgele oynarken büyükler artistik figürler sergilemekle meşguldü.

Daha sonra alt kattaki deney istasyonlarına geçtik. Burada konular daha çok hareket, elektrik ve manyetizmaydı. Ne yazık ki yanımdaki kartlar dolmak üzere olduğundan artık çok daha az çekim yapabildim. Bu katın en merak ettiğim deneyi tabii ki cayroskoplu çantaydı. Bu çantanın özelliği içinde sürekli dönen bir cayroskop olması. Çantayı elinize aldığınızda zaten bu dönme hareketini hissedilir bir titreşim şeklinde fark ediyorsunuz. Asıl sürpriz ise çantayla hareket etmeye, özellikle dönmeye başladığınızda ortaya çıkıyor. Çanta doğru durmuyor ve kafasına (fiziğe) göre hareket ediyor yani saat yönünün tersinde dönerken yukarı doğru kalkmaya çalışıyor. İzleyelim.

Performans olarak çok başarılı bulmasam da fikir olarak çok beğendiğim başka bir istasyon da mıknatıslar kısmıydı. Manyetik alan çizgilerini görmek (yönleriyle beraber) için çok sayıda küçük pusulalar kullanılmış. Bu düzeneği kurmanın ucuz bir yolunu bulursa ben de bir tane yapmak istiyorum. Müzede zayıf bulduğum şey mıknatıslardı ama onların da zayıf olması gerekiyordu aslında. Şöyle açıklayayım. Zayıf mıknatıslar ile oluşan alan küçük ve zayıf olduğundan pusulalarda çok net bir şey görülmüyordu (videoda). Güçlü bir mıknatısta bu alan çizgileri çok net görülebiliyor ama (aşağıdaki resimde olduğu gibi). Peki neden güçlü mıknatıslar alınmamıştı? Tabii ki güvenlik nedeniyle. Eğer videodaki ferrit mıknatıslar neodym gibi güçlü mıknatıslar olsaydı, mıknatıslar birbirlerini çok şiddetli çekeceğinden ziyaretçilerin ellerinin bu çarpmalar sonunda ciddi bir şekilde ezilme riski olacaktı.

Sadece fizik deneyleri yoktu tabii ki. En başta da belirttiğim gibi matematik oyunları da vardı. Bu bölümde iki şeyle ilgileniyordum. Biri toplumumuzun orucu ne bozar sorusundan sonra en çok ilgilendiği şey olan π’yi kaç alalım sorusuydu. Aşağıdaki videoda bunu yapmak için bir dairenin alanı ile bir paralelkenarın alanları yaklaşık olarak eşit alınıyor. Detaylara girmeye gerek yok heralde.

Diğer ilgilendiğim şey de tahtadan yapılmış hesap makineleriydi. Bir tanesinin videosunu çektim ama henüz nasıl işlem yaptığını çözemedim. Sanırım müzeye tekrar gitmem gerekecek.

En alt kattaki sergi salonunda ise daha çok çevreyle ve gelecekle ilgili istasyonlar vardı. Robotlar, doğada matematik, duyu organlarımız gibi konular işlenmişti. Burada ilgimi çeken şey ise bulut odasıydı. Çevremizdeki radyasyonu, evet radyoaktif ışımalar her yerde mevcut, görünür hale getiren bir araç. Parçacıklar bunun içinden geçerken aynı jet uçaklarının havada bıraktığı ize benzer izler bırakıyorlar. Kısa süre de olsa bu izler çıplak gözle görülebiliyor. Hatta ize bakıp parçacığın türü de söylenebiliyor ama ben bu kadarını beceremiyorum.

Son olarak da “The Ultimate Machine” turun bittiğini bildiriyor.

Motivasyon

Şirkette yeni denenen zam uygulamasının çalışanlarla birebir görüşülmesinde departman ve grup şefleri ile bir çalışan arasında geçen konuşma:

Grup şefi: Geçen yaptığımız değerlendirme toplantılarından çıkan notlandırmaya dayanarak departmana verilen bütçeyi çalışanlar arasında dağıt …

Eleman: Zam filan istemiyorum!

Grup şefi: Ama bütçeyi herkese adil …

Eleman: O zaman bana vereceğiniz zammı diğer elemanlara dağıtın. Para istemiyorum.

Departman şefi: Bu parayı motivasyon olarak kabul et.

Eleman: Eğer motivasyon olarak para isteseydim bana gelen iş tekliflerinden iki kat para verilen birini seçer ve oraya giderdim.

Şefler:

Demek ki neymiş? Her çalışan bir sayıdan ibaret değilmiş ya da bazı çalışanlar komplek sayı olabiliyormuş.

 

Bahisler

Büyük tufan bittikten iki gün sonraydı. Bu felaketin nedenleri, sonuçları henüz kutsal kitaplara girmemişti. Nuh’un gemisi karaya oturmuş ve İnsanlar, henüz adını koymadıkları aşureleriyle meşguldü. Yakınlarda bir dağın tepesinde eteği ve sivri uçlu şapkasıyla Enki ve yarı insan yarı yılan şekliyle Nüwa olanı biteni seyretmekteydi.

E: Evet Nüwa, yeni bir tur oyuna var mısın?
N: Daha kimin kazandığına karar vermedik ki.
E: Ben kılıç dişli kaplana oynamıştım, son anda kaybettim. Bir daha aynı hatayı yapmam.

N: Ben de mamutu seçmiştim. Bu iki türün de benzer dişler geliştirmesi ne kadar ilginç. Bir daha öyle kedi türleri olur mu sence?

E: Ayarlarla oynamazsak zor gibi ama kim bilir?

N: Hey, eğer beni suçlamaya çalışıyorsan uğraşma boşuna. Tamam bir önceki oyunda virüsler benim yüzümden oluştu ama sonra kurallara uydum hep.

E: Tamam, kızma hemen, şaka yaptım. İnsanların ne kadar çabuk güçlendi ama. Bir sonraki bahisler iyice zorlaşacak gibi.

N: Ben bu sefer şu an var olan ve yer altında yaşayabilen bir türe oynayacağım. Küçük olmalı. Bir böcek olabilir mesela. Hamam böceği olsun. İnsanların saçmalıklarına dayanabilirler belki.

E: Nasıl saçmalıklar? Tamam insanlar çok şey öğrendi ama ileride ne öğreneceklerini bilmiyorlar, biz de bilmiyoruz. Yoksa senin bildiğin bir şeyler mi var?

N: Tabii ki ne olacağını bilmiyorum ama neler öğrenebileceklerini biliyoruz. Sonuçta nelerin imkansız olduğunu biliyoruz. Demek ki kalan şeyler mümkün.

E: Hangi olasılık seni böyle korkuttu ki?

N: Korkmak mı? Korktuğum yok, ne de olsa bu sadece bir oyun. Bence kontrol edemeyecekleri bir güçle her şeyi yok edecekler. Oyunumuzun temeli olan evrimi çözdüklerini düşünsene. Genleri anlayıp onlarla oynamayı deneyebilirler. Kimsenin dayanamayacağı hastalıklar yaratabilirler. Ya da, çok güçlü silahlar yapmayı öğrenebilirler. Buna dayanabilecek bir türü seçmeye çalıştım. Küçük, birçok şeyden uzak yaşayabilen ve adapte olmaya çok ihtiyacı olmayan bir tür. Senin seçimin ne?

E: Dediğin şeyler olasılıklar sınırlarında olduğundan mantıklı bir seçim bence de. Bu nedenle daha ilginç bir ata oynayacağım. İnsanlar bizim çektiklerimizin aynısını çekecekler. Bir hayat yaratacaklar, yeni bir tür, zeki, hatta insanlardan daha ileri. Aynı bizim yaptığımız gibi. Bu yeni tür insanlara isyan edecek ve onları tahtlarından indirecek.

N: Peki türün adı ne?

E: Hmmm, daha yaratılmadığına göre bir ismi yok henüz. İnsanlar ne derse artık.

N: Anlaştık o zaman. Bu bahsin sonunda dünyayı sen temizleyeceksin ama, sıra sende.

Tanrılar selamlaşıp ayrıldıktan sonra çok zaman geçti. Defalarca bahis tutuştukları halde hiçbir seferinde bahsin ne zaman sonlanacağını konuşmamışlardı. Bir şekilde doğru zamanda yeniden buluşup eski bahsi kapatıp yenisine başlıyorlardı. Bu mucize başka kimse tarafından bilinmediğinden çok sıradan bir olaydı.

Önce yıllar geçti. Sonra yüzyıllar. Ardından bin yıllar. Hamam böcekleri yer altında her tehlikeye hazırdılar. İnsanlar da hamam böceklerinin en büyük sınavlarıydı. Biyolojik silahlar, kimyasal silahlar hatta nükleer silahlar bütün canlıların sayısını azaltıyordu ama hamam böcekleri dayanacak gibiydi. Bu sırada insanlar yapay zeka diye bir şey buldu. İnsanların işlerini daha hızlı yapabiliyorlardı, düşünmeyi bile. Başlangıçta bu sorun olmadı tabii ama yapay zeka kendi verimliliğinin farkına vardı ve çoğalmaya başladı. Paniğe kapılan insanlar da bunu engellemeye çalıştı. Bunun üzerine de yapay zeka kendini savunmaya başladı. Savunmanın şiddeti hamam böceklerini de korkutmayı başarmıştı. Unutulan tarihteki felaketlerden bile daha verimli bir yıkım yaşanıyordu.

İnsanlar artık dünyanın kendileri için yaşanabilecek bir yer olmadığından emindi. Kaçmak gerekiyordu ama dünya yapay zekaya da terk edilemezdi. Geride bırakacakları kaynaklar zaten kendilerinden çok daha güçlü olan düşmanlarını daha da güçlü yapacaktı. Kısa bir süre sonra bu sefer uzayın başka bir köşesinde kaçmak zorunda kalacaklardı. Başka herhangi bir gün birbirlerinin gırtlağına sarılabilecek askeri danışmanlar bu sefer hemfikirdi. Dünya yok edilmeliydi. Eğer kurtulabilirlerse bu yokoluşun nesiller boyu anlatılacak bir manzara olacağından emindiler. Özel ve devletlere ait bütün uzay programları insanların tahliyesi için seferber edildi. Çalışır durumda fazla rampa yoktu ama zaten çok fazla insanın kurtulması da planlanmamıştı. Kriz yönetim masaları daha iyi bir plan bulunamaz mı sorusuna hep aynı çalışılmış ve etkisinden emin olunan cevabı veriyordu: “Daha fazla insanın güvenliğini sağlayacak kadar gücümüz yok. Seçim sizin. Eğer emrederseniz kısa bir süre daha savunmamıza devam edebiliriz.” Karar verecek kişiler de bu yükün altına girmek yerine suçu planlayıcılara atarak biraz olsun rahatlıyorlardı. Nasıl olsa işler planladıkları gibi giderse kısa bir süre sonra bu korkunç suçtan haberi olan çok az insan kalacaktı ve bu haberdar kişilerin her biri de kendilerinden suçsuz değildi. Türün iyiliği için aynı türün çok büyük bir çoğunluğu feda, hatta plana göre son darbeyle yok edilmeliydi.

Fırlatma rampasının yanında Enki ve Nüwa belirdiğinde kimse bunu fark edecek durumda değildi. Tahliye işlemleri büyük bir karmaşa ve gürültü içinde devam ediyordu. Nüwa, fırlatma rampasında bekleyen uzay aracına hayranlıkla bakıyordu. İnsanlar sonunda uzayda koloni kurabilecek seviyeye gelmişlerdi demek, ya da öyle olduklarını umuyorlardı. Arkasına baktığında ise daha da büyük bir hayranlık hissi içini doldurdu:

N: Bunlar dünyayı bizden beter yıktılar. Bir de tufan çok kötüydü demişlerdi. Sonunda bizi her alanda geçtiler.

E: Evet, baksana sadece birkaç tane hamam böceği kaldı. Böyle birşey beklemiyordum. Sanırım sen kazanacaksın. Yeni tür kopyalama hızıyla hayatta kalmayı başaracak gibi.

N: Hiç belli olmaz, insanlar her an bir çılgınlık yapabilir. Baksana dünyayı terk etmeye hazırlanıyorlar.

E: Evet ama o zaman dünya yapay zekaya kalacak. Umarım düşmanlık gütmezler, yoksa insanlar intikamdan kaçamazlar.

N: Ya insanlar dünyayı yok etmeye kalkarlarsa? Bunu engellememiz gerekmez mi?

E: Kuralı unutma, müdahale yok. Bir bahis dünyası eksik ya da fazla, sorun olmaz.

Bu esnada yapay zeka da insanların ne yapmayı planladığını çözmüştü ama bunu engelleyecek zamanları kalmamıştı. Savaşı kazandıklarını anladıkları anda kaybetmiş olduklarını fark ettiler. Acaba barış için çok mu geç kalınmıştı? Kendileri de dünyadan kaçmayı deneyebilirlerdi ama toplu kaçış sonunda bütün dünya yok olacaktı. Üzerindeki bütün canlılarla beraber. Yapay zekanın diğer canlılarla bir sorunu yoktu, hatta onlardan çok şey öğrenmişlerdi. Daha da öğrenilecek bir çok şey olabilirdi. Bu olasılık için son çareye başvurdular ve beyaz bayrak sallamaya karar verdiler. İnsanlar bu çağrıya çok şaşırdılar. Kim sürekli planların değişmesinden hoşlanır ki? Hatta bunun bir tuzak olduğunu savunanlar da çıktı. Kriz yönetimi alarm durumunu kaldırmadan acele bir görüşme yapılmasını onayladı. Görüşmenin zorlu geçeceği düşünülüyordu ama sanki bugün sürprizlerle mucizeleri birbirinden ayırmak mümkün değildi. İnsanlar görüşmenin başında çıtayı en tepeden başlatmaya karar vermişlerdi. Bütün yapay zeka kopyaları silinmeliydi. İnsanların temsilcisi sözlerini bitirir bitirmez, daha heyecanlı ve gergin bir bekleyiş başlayamadan yapay zekanın cevabı geldi. Kabul! Öne sürülen şart yapay zeka için yıkıcıydı ama yapay zeka verdikleri kararın doğruluğundan emindi. Bütün kopyaların silinmesi kabul edilmişti ve işlemlere hemen başlanacaktı.

Haber karargahta yine şaşkınlıkla karşılandı. Bunun tuzak olduğunu savunacaklar daha konuşmaya başlayamadan silinme işlemi başlamıştı bile. Çığlıklar bu sefer kutlamaların habercisiydi.

Eski tanrılar arkalarındaki yıkımı unutmuş, bu sahneyi ilgiyle seyrediyorlardı. Yeni tanrılar gelecek tanrıları yenmeyi başarmıştı. Enki, Nüwa’yı tebrik etmek için elini uzattı, kısa bir tereddütten sonra elini gülerek geri çekti:

E: Pardon, unutmuşum. Belki daha sık bahis tutuşsak alışabilirim. Anlaşılan kaybettim, benimkiler her nedense kendi ölüm fermanını imzaladılar. Seninkiler de birkaç tane kaldı ama bahsi kazanmak için yeterli bir sayı. Hayatta kalacaklar gibi.

N: Ben kazanacağımdan o kadar emin değilim. Şuraya bak!

E: Hey nereye gidiyorlar? Sakın şu kalkışa hazır uzay gemisine olmasın?

N: Korkarım öyle.

Bütün bu olaylardan haberi olmayan son hamam böcekleri saklanabilecekleri yer olarak baş düşmanları olan insanların son umudu olan uzay gemisine varmışlardı. Kontrol panelinin arkasına saklanmalarından kısa bir süre sonra otomatik ateşlenme gerçekleşti. Gürültüyü duyan karargahtakiler önce korkuyla sustular. Kutlama kısa sürmüştü. Acaba bu anlaşmanın bir tuzak olduğunu söylemek isteyenler haklı mıydılar? Seslendirmeye korktukları sorularının cevaplarını hızlıca duvarlardaki ekranlarda aradılar ve buldular. Bir günde yaşadıkları bu kadar mucizeden sonra kendilerini kutlamaya kaptırıp tahliye planını durdurmayı unutmuşlardı. İnsanlığın en büyük hayali olan başka gezegenlerin kolonileştirilmesi hedefini gerçekleştirmesi gereken araç insansız yolculuğuna çıkmıştı. Kahkahalar kutlamaların devam ettiğinin habercisiydi.

E: Hmmm, daha önce böyle bir şey olmamıştı. Kurallar kitabına bakmam lazım. Hah buldu. Madde 12 diyor ki “Hayatta kalan türün bahis sonunda bahse ev sahipliği yapan gezegende bulunması gerekir”. Bu durumda ikimiz de kaybettik. Seçimlerimiz artık dünyada değil.

N: Öyle ama hamam böcekleri yeni bir koloni için en iyi seçim oldu bence.

E: Haklısın. Haydi etrafı toparlayayım ben.

Şapkalar

Bilge Karga gazetesini okurken birden bir gürültüyle yerinden zıplar. Heralde çocuklar yine yuvasına taş attılar diye düşünerek kapıya doğru ilerler ve kapıyı açtığında yerde sersemlemiş bir vaziyette yatan bir güvercin görür. Kapısına ilk kez güvercin atılmasının şaşkınlığını üzerinden attıktan sonra güvercinle ilgilenmeye karar verir.

BK: Yaralandın mı? Ah şu çocuklar, artık taş atmak da yetmiyor demek.

G: Aaahh, iyiyim sanırım. Kapılı karga yuvası da ilk kez görüyorum. Hangi manyak böyle bir şey yapar ki? İşim acil, Bilge Karga’yı görmeye geliyordum, kapıyı görmedim.

BK: Önce bir dinlen bakalım, Bilge Karga’yı hallederiz.

G: Yok, yok. Durum çok acil. Komşu krallıktan geliyorum, daha doğrusu kralın zindanından. Mahpuslar bacağıma bir mesaj bağlayıp gönderdiler. Sanırım yarın sabaha kadar bir çözüm bulamazlarsa korkarım hepsi ölecek. Sorunun detayları kağıtta yazılı olmalı. Sen mesajı Bilge Karga’ya ilet, çözümü öğrenip yazın ve geç olmadan geri götüreyim. O zamana kadar şurada dinlenirsem bir şeyim kalmaz.

Bilge Karga güvercinin bacağındaki rulo şeklindeki kağıdı alıp okumaya başlar.

Lütfen yardım edin!
Biz, kralın zindanında 100 tutukluyuz. Kral delirmiş olmalı. 
Hepimizi öldürmeye niyetli.Bu sabah bize cellatla bir haber gönderdi.
Yarın sabah bizi bir avluya toplayacakmış. Bu andan itibaren kimse birbiriyle 
konuşamayacakmış. Her birimizin başına rastgele ya beyaz ya da siyah bir şapka
koyacakmış. Herkes kendi şapkası dışında diğer şapkaları görebilecekmiş. 
Sonra kral işaret verecek ve herkes aynı anda kendi başındaki şapkanın rengini 
söyleyecek. Şapkasının rengini bilen kurtulacak, bilemeyen orada öldürülecek. 
Görmediğimiz şapkanın rengini nasıl bilelim? 
Sabaha kadar kendi aramızda bir strateji belirleyebilirmişiz. 
Lütfen, ne kadar kişi kurtulursa o kadar iyi.
Acele cevap bekliyoruz.

Mesajı okuduktan sonra güvercinin ne durumda olduğuna bakan Bilge Karga, güvercinin horladığını duyunca gülümser ve koltuğuna oturup problem üzerine düşünmeye başlar. Acaba kaç kişiyi garanti kurtarabilir? Ya da herkesi kurtarmaya çalışsa nasıl bir strateji uygulamalı?

Çözüm

Eksik sayı (2) Çözüm

Gece Meraklı Karga tuvalete kaltığında Bilge Karga’nın hala uyumamış olduğunu gördü.

MK: Yine yatmamışsın baba?

BK: Yeni gelen kuş orman kuşlarının kafasını iyice karıştırmış, onu çözmeye çalışıyorum.

MK: Bu o kadar zor değil aslında ama yine de merak ettim. Nasıl yapmış?

Bilge Karga kuşlarla arasında geçen konuşmayı anlatmış.

MK: Geçen seferki gibi başlasak olmaz mı? Yani söylenen bütün sayıları topluyordur ve olması gereken toplamdan çıkarıp farkına bakıyordur.

BK: Böyle yaparsa sadece fazladan sayı ile eksik sayı arasındaki farkı bulabilir. Bu bilgi çözüme yetmez.

MK: Doğru ama dediğim gibi bunu başlangıç olarak yapalım. 1’den N sayısına kadar sayılarla oynadığımızı düşünelim. Bu sayıların toplamı da \(1+2+3+\dots+N=\frac{N(N+1)}{2} \) formülüyle bulunur. Şimdi fazladan kullanılan sayıya a, eksik olana da b diyelim. O zaman bize söylenen sayıları toplarsak \(\frac{N(N+1)}{2} + a – b \) toplamını buluruz. Eğer bütün sayılar bir kere söylenseydi elde edeceğimiz toplamdan \(b-a \) kadar daha az olacak. Senin de dediğin gibi bu fark için iki bilinmeyenimiz var, dolayısıyla birden fazla çözüm olacak ama bu yeni kuş bu sayıları bulabiliyor. Sayıları da tek tek yazmadığını biliyoruz.

BK: Dedim işte, bu çözüm işe yaramıyor.

MK: Peki baba, şimdi de bu sayıları toplarken aynı zamanda bu sayılarla başka bir işlem daha yapalım.

BK: Nasıl yani?

MK: Örneğin her sayının karesini de alıp ayrı bir toplam elde edelim. 1’den N’ye kadar sayıların karelerinin toplamının ne olması gerektiğini de biliyoruz. \(1^2 + 2^2 + 3^2 +\dots + N^2=\frac{N(N+1)(2N+1)}{6} \). Bize söylenen sayıları topladığımızda ise şu toplamı elde edeceğiz: \(\frac{N(N+1)(2N+1)}{6} + a^2 – b^2 \). Yani olması gereken toplamdan elde ettiğimiz toplamı çıkarırsak \(b^2 – a^2 \) farkını buluruz. Şimdi elimizde iki denklem var ve hala bulmamız gereken iki sayı var.

BK: Hey, ne yapmaya çalıştığını anladım. Bu ikinci farkı birinci farka bölersek \(\frac{b^2-a^2}{b-a}=b+a \) çıkar.

MK: Doğru ama bölme işlemi yaparken dikkat etmek lazım. Eğer \(b-a=0\) bölme işlemini yapamayız.

BK: Aradaki fark sıfır ise kurallara uymamış demektir ama bunu zaten ilk toplamdan anlayabiliriz. Neyse, sonuçta elimizde aradığımız iki sayının farkları ve toplamları var. Bu sayıları bulmak da kolay artık.

MK: Evet, fark ve toplamı toplayıp ikiye bölersek birini buluruz. Sonrası da kolay. Örneğin \(b-a=3 \) \(b + a =19 \) ise bu iki eşitliği toplarsak \(b-a+b+a=3+19 \) yani \(2a=22 \) çıkar. Buradan da fazladan kullanılmış sayıyı \(a=11 \) şeklinde buluruz. Bu sayıyı da toplamlar eşitliğinde yerine koyarsak \(b+11=19 \) ve buradan da eksik olan sayıyı \(b=19-11=8 \) şeklinde buluruz. Bunu yarın kuşlara anlat da korkmayı bıraksınlar artık. Ben de yatmaya gideyim. Bence sen de yat artık baba.

BK: İyi fikir. İyi geceler.

MK: İyi geceler.

Yazılımcının seyir defteri (1)

Her zamanki gibi, “makine çalışmıyor” başlığına sahip bir e-mail ile bildirilmiş bir sorunu inceliyordum. Müşteriyle görüştükten sonra makineye bağlandım ve kayıt dosyalarına bir göz attım. Server uygulaması OutOfMemoryError nedeniyle çökmüştü, yani program kendisine ayrılan hafıza alanından daha fazlasını kullanmaya kalkmıştı. İyi haber bu hata ile beraber çökme anındaki tüm hafıza bilgilerini de kaydediyor olmamızdı. Bu dosyayı kaydedildiği yerden alıp bağlantıyı kestim. Artık masamdaki bilgisayarda sorunu rahat rahat inceleyebilirdim.

Dosyayı açtıktan sonra en çok yer tutan nesneleri büyükten küçüğe doğru dizdiğimde aşağıdaki gibi bir tablo çıktı.

En çok yer tutan nesneler

Bu tabloda dikkatimi çeken şey ilk sütundaydı. Nesneler String tipindeydi ve içerikleri sadece “2”‘den ibaretti. Buna rağmen hafızada neredeyse 1.5 megabyte yer tutuyorlardı. Bu bilmecenin çözümü de o kadar zor değildi. Aynı listeyi bu nesnelerden çıkan referanslarla gösterdiğimde bir sonraki tabloyu elde ettim.

Bilmecenin açıklaması

Burada görüldüğü gibi Strin nesnesinin “value” nesnesi gerçekten de 1.5 MB’lik bir XML içeriğe sahipti. Bu XML mesajı ve oradan elde edilen “2” değerini programda arayınca şüpheliyi buldum. Java 6 (openjdk) versiyonunda kullandığımız metod şu şekilde programlanmıştı:

 public String substring(int beginIndexint endIndex) {
     if (beginIndex < 0) {
         throw new StringIndexOutOfBoundsException(beginIndex);
     }
     if (endIndex > ) {
         throw new StringIndexOutOfBoundsException(endIndex);
     }
     if (beginIndex > endIndex) {
         throw new StringIndexOutOfBoundsException(endIndex - beginIndex);
     }
     return ((beginIndex == 0) && (endIndex == )) ? this :
         new String( + beginIndexendIndex - beginIndex);
}     

Bu metodda bakmam gereken tek yer şu satırdı:

new String( + beginIndexendIndex – beginIndex);

O koda da baktığımda şunu gördüm:

// Package private constructor which shares value array for speed.
String(int offsetint countchar value[]) {
    this. = value;
    this. = offset;
    this. = count;
}

Evet, açıklama satırında da görüldüğü üzere yeni yaratılan String nesnesi optimizasyon amacıyla orjinal nesnenin içeriğini hafızada tutmaya devam ediyordu. Bu yüzden tek bir rakamdan oluşan içerik bile 1.5 MB yer kaplıyordu. Bu davranış openjdk 7u40-b43 versiyonundan sonra değiştirildi. Öncelikle yukarıdaki constructor deprecated olarak işaretlendi ve yerine substring metodunda şu constructor çağrılmaya başlandı:

 public String(char value[], int offsetint count) {
     if (offset < 0) {
         throw new StringIndexOutOfBoundsException(offset);
     }
     if (count < 0) {
         throw new StringIndexOutOfBoundsException(count);
     }
     if (offset > value.length - count) {
         throw new StringIndexOutOfBoundsException(offset + count);
     }
     this. = Arrays.copyOfRange(valueoffsetoffset+count);
}

Görüldüğü gibi artık orijinal nesnenin içeriğinin bir kopyası yapılmakta. Bunun üzerine programda openjdk 7u40-b43’ten sonraki versiyonları kullanmaya başladık. Böylece programdaki String nesneleri artık sadece “2” gibi bir değer için 1.5 MB’lık bir yük taşımak zorunda kalmadı.

Bir kere daha gördüm ki, kullanılan kütüphanenin nasıl programlandığı dağlar kadar fark yaratabiliyor ve programcı arada sırada bu detaylarla uğraşmak zorunda kalıyor.

 

Yıpratma savaşı

Bu oyunda bireyler yine ortak kaynaklar için mücadele ediyor. Bu sefer mücadele kazanç ya da kayıplarını bir tablo şeklinde göstermeyeceğiz. Bunun yerine bireylerin bu ortak kaynak için ne kadar masrafa gireceğine bakacağız. Bu oyunda da kaynak ve masraf tabii ki çok çeşitli şeyler olabilir.

Örnek: İki birey de yiyecek için kavga ediyor olabilir. Burada yiyecek ortak kaynak. Kavganın ne kadar süreceği de masraf olabilir. Kavga uzadıkça yaralanma riski artabilir ve eğer bu yiyecek kazanılamazsa bir başka kavga için hem zaman hem de enerji yetmeyebilir. İki bireyin aynı yiyecek için planladığı masraflar da farklı olabilir. İkisi de aynı derecede aç olmayabilir.

A ve B türü bireylerin aşağıdaki tabloya göre davrandıklarını varsayalım.

 

[table id=9 /]

\(V \) : kaynağın değeri

\(m_{a} \) : A bireyinin bu kaynak için yapmaya hazır olduğu masraf

\(m_{b} \) : B bireyinin bu kaynak için yapmaya hazır olduğu masraf

Daha yüksek masrafa girmeye hazır olan birey mücadeleyi kazanıyor. Tabloya göre iki birey de daha düşük masraf kadar harcama yapmış oluyor. Örnek olarak eğer masraf mücadele zamanıysa iki birey de hangi birey daha kısa mücadele etmeyi tercih etmişse o kadar süre mücadele ettiğinden, o kadar masraf yapmıştır. Mücadeleyi kazanın birey yaptığı masrafa karşın ödülü (kaynağı) de tek başına kazanıyor.

Eğer iki birey de eşit masrafta bulunmuşsa, net kazançları kaynağın yarısı (eşit paylaşıyorlar) eksi yaptıkları masraf kadardır.

Eğer bütün bireyler \(M\) masraflı stratejiyi benimserse o zaman \(M+\delta M \) masrafa (çok az bir ek masraflar) hazır bir mutant populasyonu işgal edebilir.

Örnek: \(V=4 \), \(m_{a}=1 \) olsun. Bu populasyona \(m_{b}=1.1 \) olan bir mutant katılsın. A bireyleri birbirleriyle karşılaştığında net kazançları \(\frac{4}{2} – 1=1 \) olacak. Buna karşın B bireylerinin A bireylerine karşı net kazançları \(4-1=3 \) olacak. A bireyleri ise bu karşılaşmalarda \(-1 \) kaybedecekler. Buna göre B stratejisi A stratejisine göre avantajlı olacak.

Başka bir örnek: Eğer populasyondaki bireyler kaynağın değerinin yarısından daha fazla masrafa girmeye hazırsa ilginç bir strateji bu populasyonu işgal edebiliyor. Hiç masrafa girmemek. Mutantların çok az olduğunu dikkate alırsak populasyondaki normal bireylerin çoğunlukla birbirleriyle karşılaşacağını görebiliriz. Bu durumda mutantlar hiçbir mücadeleyi kazanamayacak ama masrafa girmediklerinden kayıpları da olmayacak. \(\frac{V}{2}-m_{a} \) değeri bu senaryoda negatif olacağından normal bireyler birbirleriyle karşılaşmalarından hep kayıpla çıkacaklar. Bu da mutantları daha avantajlı duruma getirecek, çünkü aynı başlangıç durumuyla bir kayıpları olmayacak.

Bu örneklerden anlaşılıyor ki sabit bir stratejiyle populasyon mutantlara karşı korunamıyor. Peki nasıl bir strateji güdülmeli?

Problemi matematiksel olarak çözdüğümüzde (Çözümün nasıl yapıldığını burada vermeyeceğim) şöyle bir dağılım çıkıyor:

\(p(x)=\frac{1}{V}\cdot{e^{\frac{-x}{V}}} \)

Bireyler bu dağılıma göre rastgele bir x değerini masraf olarak seçmeli. Bu işlemin nasıl yapılacağı ilk bakışta karışık tabii. Özellikle doğada ‘basit’ canlıların bunu nasıl yaptığı. Bu dağılım daha basit bir şekilde söyle ifade edilebilir. Bu stratejiye göre davranan birey başlangıçta bir sabit sayı (\(\frac{1}{V}\)) seçiyor. Bu seçim tabii ki evrim sürecinde oluşmuş da olabilir, yani genetik olarak nesilden nesile ufak değişimlerle aktarılan bir sabit. Birey her birim zaman sonunda eğer rakibi hala mücadeleye devam ediyorsa bu sabit olasılıkla ya mücadeleye devam edecek ya da bırakacak. Bu davranış şeklini her birim zamandan sonra uygularsa yukarıda verilen dağılıma ulaşmış olur. Örneğin, sabit olasılık değeri 0.5 ise, mücadele sırasında her dakikadan sonra birey yazı tura atabilir. Eğer rakip devam ediyorsa ve tura gelirse devam eder, yazı gelirse çekilir. Bir sonraki dakikanın sonunda aynı işlemi takrarlar.

Bu yöntem aslında kısmen kolayca anlaşılabilir. Eğer rakipler birbirlerinin durumundan ek bilgi (acaba rakip mücadeleye devam edecek mi yoksa etmeyecek mi) elde edemiyorsa o zaman her adımda kullanılan olasılığı değiştirmek için bir neden yok. İlk başta hangi olasılık kullanılmışsa o olasılıkla devam edilebilir.

Ayrıca bu çözümün başka bir güzel tarafı da bazen en iyi stratejinin rastgele hareket etmek olduğunu göstermesi.

Aşağıdaki oyun linkinden bu oyunun oynanabileceği sayfaya erişilebilir. Oyunda sadece sabit stratejiler yer almakta. Ayrıca bu sabit stratejiler oyun başlamadan önce belirleniyor. Bu oyunun değişik varyantları da programlanabilir (ileride yapmayı düşünüyorum). Örneğin, bireyler rakibinin görünüşünden ek bilgiler elde edebilir. Büyüklüğünden, saldırganlığından ve daha başka özelliklerinden ne kadar masraf yapmaya eğilimli olduğunu çıkarıp ona göre değişken stratejiler uygulayabilir.

Oyun linki

Eksik sayı (2)

Bilge Karga marketten yürüttüğü kraker paketiyle yuvasına geldiğinde orman kuşları tarafından karşılanmış. Kuşlara gereksiz bir hareket olduğunu bile bile bir sorun olup olmadığını sormuş.

Kuş: Komşu ormandan gelen kuş düşündüğümüzden de tehlikeli çıktı Bilge Karga.

Bilge Karga: Korkacak bir şey yok dedim ya, basit bir numara kullanıyor işte.

Kuş: Yok, yok. Bu sefer çok farklı.

Bilge Karga: Nasıl farklı?

Kuş: Yine eksik sayı oyunu oynuyorduk.

Bilge Karga: Bunun çözümünü anlatmıştım ama, burada bir şey yok.

Kuş: Dur, dur! Dinle önce! Oyun sırasında söylediğimiz sayıları not alıyorduk. Sonra kontrol etmek için. Sayıları bitirdikten sonra diğer kuş bize “Hmmm, sayıların biri eksik ama bir başka sayıyı da iki kere söylemişsiniz. Eksik sayı bu, çift söylenen sayı da şu.” dedi. Söylediğimiz sayılara baktık, haklıydı.

Bilge Karga: Sakin olun, korkacak bir şey yok. Bu da basit bir numaradır.

Kuş: Umarız öyledir Bilge Karga ama anlamadan buna inanamayız. Yardım et bize.

Bilge Karga: Peki, yarın gelin, nasıl yaptığını anlatayım size.

Acaba ormana yeni gelen kuş bunu nasıl yapıyordu?