Özellikle evrim karşıtı bir görüş olarak sıkça yürütülen bir
argüman vardır: “Bir uçak yüzbinlerce
parçadan oluşuyor. Bu parçaları büyük bir kutuya koyalım ve sallamaya
başlayalım. Bir uçak oluşur mu? Çok daha karmaşık canlı organizmaların,
balıkların, kuşların, insanların da rastgele oluştuğunu söyleyemeyiz”.
Kuşkusuz doğru bir sonuç. Ama yanlış bir varsayımla yola çıkıyor. Çünkü hiç
kimse günümüzde yaşayan canlı türlerinin “birdenbire” oluştuğunu düşünmüyor. Ayrıca
evrim sürecinin tümüyle rastgele (random)
olduğunu da öne sürmüyor. Milyarlarca yıla uzanan bu sürecin tarihsel gelişimi
bu yazının kapsamı içinde değil. Burada yalnızca rastgelelik (randomness) yönünü ele almak istiyorum.
Kısaca söylemek gerekirse evrim sürecinde kalıtımla oluşan
bireylerin farklılaşması için belirli oranda bir rastgele değişim ile
çeşitlilik oluşuyor; bu çeşitlilik içinde çevre koşullarına en uygun olanların
seçilmesi ile de evrim gerçekleşiyor.
- Eğer bu rastgele değişim olmasaydı, türün her bireyi yalnızca ana babasının özelliklerini taşırdı. Çeşitlilik, dolayısıyla seçim ile doğaya uyum sağlayan yeni “başarılı” bireylerin oluşması sağlanamazdı.
- Aksine bu rastgele değişim çok fazla olsaydı, ana-babadan yeni oluşan bireye geçen özellikler çok az olurdu. Ana-baba çevre ile çok iyi uyum sağlayıp “başarılı” olsa bile bu başarı gelecek kuşaklara aktarılamazdı.
İşte bu yazıda matematiksel bir model kullanılarak yukarıda
özetlenen rastgelelik konusunu tartışmak istiyorum.
Önce bir örnekle seçenek (possibility),
olasılık (probability) ve rastgele (random) kavramlarını biraz
tartışalım.
Bir maymunun yalnızca iki harfli (A, B) bir klavye
kullanarak tuşlara rastgele bastığını (iki seçenek) düşünelim. Klavye 2 harfli
olduğuna bir vuruşta “A” yazmasının olasılığı (½ = 0,5) dir. Maymunun 2, 3 4…
harfli kelimeler yazdığını düşünelim. “AB” yazmasının olasılığı (1/2)*(1/2) =
0,25; “ABA” yazmasının olasılığı (1/2)*(1/2)*(1/2) = 0,125; “ABAB” yazmasının
olasılığı (1/2)*(1/2)*(1/2)*(1/2) = 0,0625 olacaktır...
Olayı genelleştirip bir formülle ifade eder ve olasılık için
p, harf sayısı için h ve kelime uzunluğu için k kullanırsak:
Bu olasılığın ne denli küçük olduğunu göz önüne getirmek
için maymunun her gün, 24 saat, hiç durmadan saniyede 3 tuşa basabileceğini
varsayarsak bu cümleyi % 98 olasılıkla 1,85*1045 yılda yazabileceğini
söyleyebiliriz. Bu arada dünyanın yalnızca yaklaşık 4,5 milyar (4,5*109)
yaşında olduğunu belirtmeliyiz.
Belki de benzer bir uygulamayı insan DNA’sı konusunda hayal
etmek ilginç olacak. İnsan genomunda 1,5 G Byte’lık bilgi olduğu söylenebilir[ii].
Yukarıdaki cümledeki bilgi “miktarı” ise yalnızca 22 Byte[iii].
Yukarıda özetlenen yöntem, bütün seçeneklerin denenmesi veya
denenebileceği temeline dayanıyor ve bu alamda “kaba kuvvet” (brute force) diyebileceğimiz bir
yaklaşımı özetliyor. Bu örnekleri vermemin nedeni bu kaba kuvvet yönteminin
bizi olumlu bir sonuca götüremeyeceğini göstermekti. Eğer doğa tüm olasılıkları
deneyen, tümüyle rastgele biçimde değişseydi evrim gözlenemezdi. Oysa türler
olasılığın belirli sınırlar içinde olduğu çok ilginç bir modelle değişiyor. Bu
model o kadar ilginç ki bu modeli temel alan ve Genetik Algoritma olarak
adlandırılan algoritmalar geliştirildi, bilgisayar programları yazıldı ve
birçok alanda bir eniyileme (optimization)
yöntemi olarak kullanılmaya başlandı. Şimdi biraz buna bakalım.
GENETİK ALGORİTMA
Aslında doğada gözlenen evrime dayalı bir algoritma
geliştirilmesi ve bunun bilgisayarlara uygulanması pek de yeni bir fikir
değildir. Bilgisayar öncülerinden, Alan Turing 1950’de evrim ilkelerine paralel
çalışacak bir “öğrenen makine” önermişti[iv].
Bu fikirden yola çıkılarak çeşitli çalışmalar yapıldı ve John Holland 1975’de
bugün kullandığımız anlamda Genetik Algoritmanın temellerini oluşturdu[v].
Bu çalışmalarda bir yandan biyolojik evrimin bilgisayar benzeşimi (simulation) üzerinde çalışılıp evrimi
daha iyi anlamak amaçlanırken; diğer yandan bu algoritmalar bir eniyileme yöntemi
olarak kullanılmaya başlandı. Günümüzde genetik algoritmalar ve bu algoritmalara
dayanan programlar yapay zekâdan (artificial
intelligence) kansere karşı dayanıklı dokular geliştirilmesine kadar uzanan
geniş bir yelpazede kullanılıyor[vi].
Darwin’in evrimin kuramının üç temel sisteme dayandığını
düşünebiliriz:
- Seçim: Çevreye uyum sağlayanın yaşamını sürdürerek üremesini sağlayan bir sistem.
- Kalıtım: Ana-babadan çocuklara özellikler aktarılması için bir sistem.
- Farklılaşma: Yeni bireylerin farklılaşması için bir sistem.
Bu sistemlerin bir algoritmada nasıl uygulanacağını çok
basitleştirilmiş biçimde aşağıdaki gibi açıklayabiliriz (Şekil - 1).
Seçim
Şekil - 1’in en solunda görülen 4 ikili (binary) dizi (A, B, C ve D) türün bir
kuşağının bütün nüfusunun (total
population) kromozomlarını göstersin[vii].
Bu türün doğaya uyum sağlaması için gereken hedef dizinin ise 01100011 (fitness function) olduğunu var sayalım.
Her bir bireyi bu hedefle karşılaştırdığımızda, nüfus içindeki hiçbir bireyin
bu hedefi sağlayamadığını ama (yukarıdan aşağıya sıra ile) bireylerde 4, 3, 2
ve 5 adet bitin hedefte karşı gelen bitlerle uyuştuğunu görüyoruz. En iyi uyum
sağlayan A ve D bireylerini seçip bunları çiftleştirelim.
Kalıtım
Üreme sonucunda oluşan yeni bireyde bazı genlerin erkekten
bazılarının ise dişiden geldiğini biliyoruz. Bunu da modelimizde basitçe ilk 3 biti
A’dan, ardında gelen 5 biti D’den alarak (çaprazlama - crossing) gerçekleştirelim.
Farklılaşma
Son olarak da evrimdeki mutasyona
benzer biçimde belirlenen olasılıkla bu yeni bireyin geninde bir biti
değiştirelim. Örneğimizde 6ncı bit 1’den 0’a dönüşüyor. Bir sonraki kuşağın
yeni bireyi böylece oluştuktan sonra bu işlem başa dönüyor ve yenilenen nüfusla
(sonraki kuşak) algoritma seçim – kalıtım – farklılaşma döngüsü ile devam
ediyor.
Şekil - 1
Ne yapacağımıza karar verdiğimize göre basit bir genetik
algoritma yazarak rastgeleliğin etkisini gözleyebiliriz. Şekil - 2’deki akış
diyagramı bu basit program için hazırlanmıştır.
Şekil - 2
Burada belirli basitleştirici varsayımlar yapılmıştır.
Öncelikle programın sonsuza kadar çalışmaması için (yukarıdaki “OLMAK YA DA
OLMAMAK…” örneğindeki gibi) bir “hedef kromozom” ve Maksimum Kuşak Sayısı
doğadaki evrime göre önemli basitleştirmelerdir. Matematiksel olarak tasarlanan
genetik algoritmanın bir eniyileme yöntemi olduğu belirtilmişti. Oysa doğadaki
evrimde bir “hedef” yoktur. Farklı yöntemlerle bireylerin değişimi ve doğal
seçimin sürekliliği söz konusudur. Benzer biçimde kuşak sayısının da bir sınırı
yoktur. Uyum sağlayamayan türler -dinozorlar
gibi- yok olur; uyum sağlayanlar ise -günümüzde yaşayan türler gibi- yaşamlarını
ve üremelerini sürdürür. (Bundan sonra ne kadar varlıklarını sürdüreceklerini
de bilmiyoruz!)
Günümüzde kullanımı giderek yaygınlaşan genetik algoritma
uygulamalarından bir örnek olarak MATLAB programını anabiliriz. Verilen bir işlevin
(function) en küçük değerini bulan bu
programda rastgeleliğin etkisini görmek için belirgin biçimde bir en küçük
değeri olan basit bir işlevi ele alalım:
Bu işlevi çizersek eğrinin en küçük değerinin y=20 olduğunu
kolayca görebiliriz (Şekil - 3).
Şekil ‑ 3
Genetik algoritma kullanarak MATLAB programının farklı
rastgelelik değerleri ile bu en küçük değeri kaç kuşakta bulabildiğini
inceleyelim. Bu amaçla çizeceğimiz şekillerde yatay eksende kuşağı (KUŞAK), düşey
eksende ise programın bulduğu değeri (HEDEF) gösterelim.
Şekil - 4’de uygun
bir rastgelelik belirlendiğimizde program çıktısının aranan en küçük değere
yakınsadığını (converge) ve 51’nici
kuşakta sonuca ulaştığını görüyoruz.
Şekil - 4
Aksine Şekil - 5’de uygun bir rastgelelik belirlenmediğinde herhangi
bir değere yakınsamadığını ve 100 kuşakta bile aranan en küçük değere
ulaşılamadığı görülmektedir.
Şekil - 5
SONUÇ
Rastgelelik, yazı – tura atmaktan kuantum fiziğine uzanan
birçok doğa olayında karşılaştığımız ve matematiksel yönü üzerinde çok çalışılmış
bir kavram. Bu kavram evrim karşıtları tarafından evrim kuramındaki konumu incelenmeden
sorumsuzca “keyfilik” olarak değerlendiriliyor. Oysa gördüğümüz gibi günümüzde
evrim kuramı ve ondaki rastgelelik, doğadaki evrimi açıklamanın çok ötesine
geçip genetik algoritmalarla matematiksel uygulamalara çok yeni boyutlar
kazandırmıştır.
NOT: Bu yazı 24 Mayıs 2017 tarihli Cumhuriyet gazetesinin Akademi ekinde yayınlanmıştır.
[i] Bu
problemin kaynağı “Maymunun Shakespeare
Teoremi” olarak bilinir ve yeterli (!) zaman verilirse bir daktilonun
tuşlarına rastgele basan bir maymunun Shakespeare’in bütün yapıtlarını
yazabileceğini öne sürer. (Émile Borel, 1913). Burada problem çok daha
basitleştirilip özetlenmiştir.
[ii] Haploid
(her kromozomun bir kopyası olan) insan genomunda 23 kromozom içinde gruplanmış
yaklaşık 3 Milyar DNA taban çifti (base
pair) var. Bebeğe (anneden ve babadan 23’er olmak üzere) kalıtımla toplam
46 kromozom aktarılır ve diploid genom oluşur. Bu durumda insan genomu 6 Milyar
taban çiftine ulaşır. 4 taban çiftini iki tabanında ifade edersek 2 bit’le
yazabiliriz (00, 01, 10, 11). Bilgisayarlarda kullanılan Byte (8 bit) birimini
kullanırsak 1 Byte 4 taban çiftinin bilgisini içerir. Bu durumda tüm diploid
insan genomu 6*109/4=1,5*109 (1,5 G) Byte bilgi içerir.
[iii] Cümledeki
bilgi 3035 = 5*1051 = 2172 = 172 bit = 22 Byte.
[iv] Alan
Turing, "Computing Machinery and Intelligence", MIND, A Quarterly Review of
Psychology and Philosophy, Cilt LIX, Sayı 236, s. 433 –
460, Ekim 1950.
[v] J.H.
Holland, Adaptation in Natural and
Artificial Systems, The University of Michigan Pres: Michigan (1975).
[vi] Örnek
olarak genetik algoritma ile bir hedefe yönelik en kısa bilgisayar kodunun
yazılmasını ele alan Daniel Schiffman’ın “The
Natue of Code” adlı kitabı anılabilir (Magic Book Project: ABD - 2012).
[vii] Daha
çok istatistik terimi olarak “nüfus” (population)
yanında bir olasılık terimi olarak “örnek uzay” (sample space) terimini de kullanabiliriz.