Okunma: 786 kez
Darwin (1809-1882) HMS Beagle gemisiyle çıktığı uzun yolculukta, gizli kalmış bölgelerdeki değişik canlılar üzerinde yaptığı gözlemlere dayanarak ortaya attığı evrim kuramının bilişim dünyasında da çok önemli ufuklar açacağını herhalde tahmin bile edemezdi! Yaşamın milyonlarca yıldır basit kurallar ve temel maddelerle geliştirdiği oldukça karmaşık sistemler (yani bizler ve diğer canlılar), kendi yarattığımız teknolojilerilerimizle yaşamı ve varlığımızı sorguluyor ve her geçen gün daha da ilerliyoruz.
Bizleri insan yapan kromozomlarımızdaki yaklaşık 3 milyar baz çiftinin taranarak genetik veritabanlarına aktarıldığı insan genom projesinin tamamlandığı şu günlerde elimizde artık eskiye göre çok daha fazla veri var! Fakat, bütün bunlar da ne demek oluyor; yani yaşamın dili nasıl bir şey? Kromozomlarımız nesneye mi dayalı, yoksa ilintisel mi? Bunları henüz bilemiyoruz ama en azından sistemin moleküler düzeyde nasıl çalıştığını anlamaya başlıyoruz. Genetik bitlerimizi (adenin, Guanin, Sitozin ve Timin), birleşerek nasıl nesneleri (genleri) ve karşılıklı etkileşerek programlarımızı nasıl oluşturduğunu artık anlayabiliyoruz (Örneğin; Krebs çemberi). Bunlara ek olarak, eskiden sadece fiziksel özelliklerle (renk, boy, şekil, v.s.) gözlemleyebildiğimiz evrimi aslında çok daha kesin ve anlaşılabilir bir şekilde moleküler seviyede izleyebiliyoruz. Sadece izlemekle kalmıyor, öğrendiklerimizi kendi teknolojilerimizde de uygulamaya çalışıyoruz. Genetik Algoritmalar (GA) ya da daha geniş kapsamıyla Evrimsel Algoritmalar (EA), doğadaki evrimsel süreçleri model olarak kullanan bilgisayara dayalı problem çözme teknikleridir. Geleneksel programlama teknikleriyle çözülmesi güç olan, özellikle sınıflandırma ve çok boyutlu optimizasyon problemleri, bunların yardımıyla daha kolay ve hızlı olarak çözülebilmektedir.
Evrimin mekanizmasını ve temel kavramları şu şekilde özetleyebiliriz: Evrim, amacı belli olan ya da kontrollü bir süreç değildir; en azından bu şekilde olduğuna dair elimizde geçerli bir kanıt bulunmamaktadır. Kaynakların kısıtlı olduğu değişken bir ortamda, farklı genetik bilgilere sahip canlılar bunlar için yarışırlar ve kabaca güçlü (FITNESS) olanlar hayatta kalıp çoğalarak/üreyerek genetik bilgilerini bir sonraki kuşağa (GENERATION) geçirme şansını yakalarlar. Evrimin motoru üreme sonucu oluşan farklılıktır. Üreme iki şekilde olur: Basit canlılarda eşeysizdir - yani yeni oluşan canlı bir öncekinin aynısıdır ve farklılık üreme sırasında genlerdeki istemsiz hatalar (mutasyon - değişinim) sonucu olur. Yüksek canlılarda ise eşeylidir (seksüeldir) - yani değişik genetik malzemeye sahip iki canlı birleşerek tamamen farklı yeni bir canlı oluşturur; farklılık, çoğalma sırasında hem mutasyonlar hem de yeniden birleşimler (rekombinasyon) sonucu olur (Her iki canlının genetik olarak farklı ama işlevsel olarak eş kromozomları üst üste gelerek bilgi değiş tokuşu yaparlar “CROSS-OVER”). Her iki durumda da oluşan farklı canlılardan bir kısmı, bir önceki kuşağa göre değişen çevreye daha iyi uyum gösterip (adaptasyon) daha güçlü olabilir. Bunların yaşaması ve üreyerek soyunu devam ettirmesine DOĞAL seleksiyon denir.
Evrimsel Algoritmalarda (EA) evrimsel süreçlerden en çok yeniden birleşme ve güçlülük tabanlı seçme/üreme üzerinde durulur. Ek olarak, arka planda devamlı oluşan mutasyonlar evrimin gereksinimi olan farklılığı daha da artırır. Altını çizmek gerekirse, EA’lar belli bir problem için rastgele çözümler aramak değildir. Bunlar, stokastik (verileri bir miktar hata ve belirsizlik içeren problemlerin çözümünün optimizasyonu için kullanılan bir teknik) süreçler kullanarak rastgele sonuçlardan çok daha iyi çözümler üretirler.
Genetik Algoritmalar (GA), bahsedilen evrimsel süreçleri kullanan bir makina öğrenmesi (machine-learning) modelidir. Bu modelde, makina içerisinde belli kromozomlarla temsil edilen bireylerden oluşan bir topluluk yaratılır. Bu bireyler aslında canlılardaki base-4 biçimindeki DNA’dan oluşan kromozomlara eşdeğer karakter dizileridir. Bu bireyler simüle edilmiş (benzetim yapılmış) bir evrim sürecinden geçerler. GA’lar birçok değişik alanda uygulanabilirler; örneğin çok boyutlu bir optimizasyon (en iyileme) probleminde karakter dizileri optimize edilmek istenen sistemin değişik parametrelerin değerlerini temsil edebilirler. Pratikte, bu karakter dizilerini genetik modelimizdeki kromozomlar gibi kabul edebiliriz. Basit bit değişimleriyle kolayca mutasyon, yeniden-birleşme ya da başka işlemleri gerçekleştirebiliriz. Bu karakter dizileri belirli uzunlukta olmalıdır (canlılarda da kromozomlar belirli uzunluktadır). Uzunluğu belli olmayan karakter dizileriyle geliştirilen EA’lar genetik programlama (GP) olarak adlandırılır ve GA’lardan çok farklıdır.
Bir GA şu sırayı takip eder: i)Topluluktaki bireylerin güçlülüğünü değerlendir. ii) Yeniden birleşim, güçlülüğe dayalı üreme ve mutasyon işlemlerini kullanarak yeni bireylerlerden oluşan topluluk yarat. iii)Eski bireyleri ele ve yeni topluluğa aynı işlemi uygula. Bu döngünün her yinelemesi yeni bir kuşağı temsil eder. Kuşak(0) rastgele bir topluluktur, fakat ilerleyen kuşaklar (1....n) genetik süreçler sonucu gelişme gösterirler (Problemin daha iyi-optimal bir çözümüdürler).
Prensip olarak, EA’lar sayısal bilgisayarların yapabileceği tüm hesaplamaları yapabilirler. Fakat, özellikle etkin çözümü bilinen olan problemler için pek uygun sayılmazlar. Belirli bir alan bilgisine göre şekillendirilmiş algoritmaların performansı EA’lardan daha yüksektir. EA’lar daha çok diğer tüm yöntemlerin başarısız olduğu özellikle NP-complete problemlerde kullanılırlar; burada onların gerçek gücü ortaya çıkar. Bazı belli başlı uygulama alanları şöyle sıralanabilir:
- Biyo-Bilişim (Bio-computing):Özellikle dizi analizi yapılan genetik kodların analizi, DNA ve RNA kıvrılmaları analizi ve tahmini
- Hücresel programlama (Cellular-Programming): Doğadaki benzerleri gibi işleyen-adeta yaşayan makinalar. Canlıların temel özellikleri olan uyum ve öğrenme becerileri.
- Oyun Programcılığı: Son yıllarda bilgisayar oyunlarında karşılaşılan rakipler daha gerçekçi değil mi?
- Job-Shop Scheduling (JSSP), Open Shop Scheduling (OSSP) ve diğer Planlama problemleri gibi çözümü oldukça zor olan NP-complete problemler.
- Yönetim problemleri
- Non-lineer filtreleme problemleri
- Zamanlama problemleri: Özellikle üniversitelerdeki sınavların ve derslerin planlanmasında kullanılmaktadır.
Peki, problemler için akılcı ve “insani” çözümler aramak yerine neden doğayı taklit etmeye çalışıyoruz? Çünkü, bunu ilk defa yapmıyoruz. İnsanlık doğadaki olayları genelde bilinçsiz olarak kopyalayıp buluşlar yapma eğilimindedir. Tıpkı uçmak için kuşları incelemek gibi. Doğadaki sistemleri incelediğimizde bunlar sadece çevreye uyum sağlamakla kalmamış, aynı zamanda optimal seviyeye ulaşmışlardır. Bunun en önemli sebebi 3.5 milyar yıldır doğanın temel kurallarının sabit kalmasıdır. Örneğin, dolaşım sistemi olan canlılarda, kan damarlarındaki dallanmada damar çapları teorik olarak akışkanlar dinamiği yardımıyla hesaplanan 2^1/3 oranındadır. Fakat doğanın amacı uyumdur; en iyileme (optimizasyon) dolaylı bir sonuçtur.
En elverişli çözümler için doğayı bilinçli bir biçimde taklit etmek özellikle son 5 yıldır araştırıcıların dikkatini çekmiştir. Bunun nedeni, son yıllara kadar hala bir çoğumuzun evrimi bir rastlantılar dizisi olarak kabul etmesidir. Eğer, durum böyle olsaydı olasılık hesaplarına göre canlıların günümüzdeki farklılığa ulaşması gezegenimizin yaşına eşit olurdu. (İnsan genomu herbiri yaklaşık 300 baz çiftinden oluşan 50.000-80.000 arası genden oluşmaktadır)
Konu yaşam, genler ve bilgisayarlardan açılmış iken aslında temelinde EA/GA kullanmayan ama en az onlar kadar ilginç ve gelecek vaadeden başka uygulamalardan bahsetmek ilginç olacaktır: Yapay yaşam formları - Sayısal Yaratıklar! Aslında bir evrim-bilimci olan ve gençlik yıllarını Amazon’da yağmur ormanlarında evrimi izlemekle geçirip sonra bunun çok yavaş olduğuna ve ömrünün bu işe yetmeyeceğine karar vererek kendi yaratıklarını ve yapay evrim şartlarını bilgisayarında yaratan Tom Ray, 1991 yılında sonuçlarını açıkladığı “Tierra” çalışmasıyla bu alanda oldukça ün kazanmıştır. Tierra’daki mantık özetle şu şekildedir: CPU zamanının “enerji”, hafızanın “materyal” kaynağı olduğu bir dünyada sentetik/sayısal yaratıklar yaşamaktadır. Sistem belleği, CPU zamanını çoğalma/kopyalama amacıyla harcayan bilgi paketlerine (yürütülebilen makina kodu parçaları) bölünmüştür. Mutasyonlar (yaratıkların kodundaki bit değişiklikleri) yeni bireyler ortaya çıkarırken, sayısal evrim CPU zamanı ve sistem belleği için yarışan değişik bireyleri doğal seleksiyona uğratır. Gözlemler sonucu ortaya çıkan sonuç, doğal seleksiyonun hem en iyileme (optimizasyon) hem de yaratıcılığı ortaya çıkarmasıdır. Bu zaten EA/GA çalışmalarıyla da gösterilmiştir. Tek bir insan yapısı basit yaratıktan kısa bir süre içerisinde kendi kendine çoğalma yeteneği olmayan “parazitler” türemiş ve bunlar diğer yaratıkları kullanarak (tıpkı virüslerin ve bakterilerin bizlere yaptığı gibi) kendi çoğalmalarını sağlamışlardır. Hatta, bazı denemelerde yaratıklardan bazıları bu parazitlere karşı bağışıklık geliştirip, diğerlerine göre üstünlük sağlayarak soylarının devamını sağlamışlardır. Yine ilginçtir ki, bir süre sonra parazitler de bu bağışıklık geliştiren yaratıklara karşı direnç kazanmış ve döngü bir kez daha parazitler lehine dönmüştür (Yıllardır gereksiz antibiyotikleri kullanan insanoğlu için de durum böyledir; her geçen gün bunlara dirençli yeni mikroplar ortaya çıkmakta ve verem, sıtma gibi eski hastalıklar, özellikle batı toplumları için günümüzde yeniden önemli bir sağlık sorunu haline gelmiştir). Öykünün devamı da oldukça ilginç: Bazı yaratıklar direnç kazanan parazitlere karşı bağışıklığın da ötesinde bir savunma mekanizması geliştirirler – hiper-parazitizm. Burada, yaratık, parazitin enerji kaynaklarını kendi içinde bulunan hiper-parazit genomun çoğalmasına yönlendirir. Böylece, kısa bir süre sonra parazitler ortadan kaybolur (Günümüzde de var olan yaşam formları aslında yaşamın başlangıcından beri ortaya çıkan tüm canlıların sadece küçük bir bölümünü temsil ederler). Parazitler olmadığı için bu hiper-parazitlere sahip yaratıklar birden topluma hakim olur ve bu toplumun en büyük özelliği yakın akrabalık ilişkileridir. Bu sebeple, toplumda bir sosyallik oluşur ve bireyler ancak diğer yakınlarıyla beraber varlığını sürdürebilirler. Fakat bu sosyal parazitlerin işbirlikçi davranışları aslında onları yeni tür parazitlere karşı daha hassas bir hale getirmiştir. Bu yeni tür parazit - hiper-hiper parazit, bir anda diğerlerini yok ederek topluma hakim olur.
Bu sistemdeki benzetimci (simulatör) tarafından yapılan tek genetik değişim (mutasyon) rastgele bit değişimleridir. Fakat, daha sonra tamamen kendiliğinden ortaya çıkan parazitler çok daha geniş bit alanlarını değişime uğratırlar (yeniden birleşim). Bu kendiliğinden ortaya çıkan şey aslında evrimi çok daha hızlandıran seksüalitedir!
Dr. Koray Atalağ
Hacettepe Üniversitesi Tıp Fakültesi
Tıbbi Bilişim Koordinatörlüğü

Etiketler:
Bilimler
Biyoloji
Yaşam
Genler ve Bilgisayarlar
Sadece kayıtlı kullanıcılar yorum yazabilirler. Lütfen hesabınıza giriş yapınız veya kayıt olunuz. |