Yazan : Şadi Evren ŞEKER

Evrimsel Algoritmalar (Evolutionary Algorithms), bilgisayar bilimlerinde, yapay zeka çalışmalarının altında geçen bir konudur. Kabaca, doğadaki değişimin bilgisayar algoritmalarına uygulanması olarak düşünülebilir.

Evrim kavramı, insanın gözlem yeteneğine dayanarak doğayı ve doğadaki değişimi algılama sürecidir. Buna göre evrimin dayandığı pek çok temel, insan bakış açısında göre şekillenir. Örneğin doğada rast gelelik bulunup bulunmaması bakan kişiye göre değişmektedir. İnsan için bilinmeyen değerler rast gele olabilir ancak tam bilgi durumunda rast gelelik kalkar.

Evrimsel algoritmaların dayandığı önemli bir dayanak bu rast geleliktir. Örneğin çeşitli canlı toplulukları zaman içinde değişime uğramaktadır. Evrimsel yaklaşımla bu topluluklardan birey seçimi rast gele yapılmaktadır. Yeni nesiller, rast gele seçilen bireylerden türemektedir.

Bütün bu kabuller, aslında insanın bu seçimi matematiksel olarak modelleyememesinden kaynaklanmaktadır. Kısacası rast geleliğin olması için bilgi eksikliğinin bulunması gerekir.

Evrimsel algoritmalar da tam bu noktada devreye girer ve bilinmeyen, bilginin eksik olduğu problemlerde çözüm yolu bulmak için kullanılırlar. Evrimsel algoritmalarının tamamı bir rast gele süreç üzerine kurulur ve kısıtlı bilgi bulunan problemlere çözüm ararlar.

Aslında çözüm aramanın en doğru ve kesin yolu bütün ihtimalleri denemektir. Ancak ne yazık ki bazı problemler için bütün yolların denenmesi kabul edilemeyecek kadar uzun sürer.

Örneğin basit bir haftalık program yapmak istiyor olalım. Elimizdeki kriterlere göre dersleri haftanın saatlerine dağıtalım. Her gün için 8 saatlik ders programı ve toplamda 5 gün için 40 saatlik haftalık program olsun. Elimizde de tam 40 tane yerleştirilmesini istediğimiz ders bulunsun ve bu derslerin bazı kriterleri olsun. Örneğin aynı hoca, aynı anda birden fazla sınıfta ders veremez. Bir günde 4saatten fazla aynı ders olamaz (bütün gün matematik gibi) veya aynı gün birden fazla saatte olan derslerin arasına başka ders giremez (sabah 9da bir saat Türkçe öğlen 13te bir saat daha Türkçe ve akşam 16’da bir saat daha Türkçe gibi). Hatta bu probleme birden fazla şube, alttan ve üstten ders alanlar gibi daha farklı kriterler de eklenebilir. Neticede problemin çözümünün bulunabilmesi (veya çözümü yoksa bile bunun ispatlanabilmesi için) bütün ihtimallerin denenmesi gerekir.

Basit bir hesapla 40 saatin farklı dizilimleri 40! kadar ihtimal yapar ve bu kadar ihtimal, bir bilgisayarın hesaplaması için gerçekten çok büyük bir sayıdır.

Çözüm olarak çok daha az ihtimali deneyen bir algoritmaya ihtiyaç duyulur. Denemelerin ise başarılı sonuca daha hızlı varması gerekir.

Örneğin evrimsel bir algoritma olan genetik algoritmaları ele alalım. Genetik algoritmalar şayet iyi bir dizilim bulursa bunu saklayıp diğer ihtimalleri değiştirebilir. Örneğin çaprazlama işlemi için en uygun yer, çözülmüş bir ihtimali saklamak olabilir. Söz gelimi, ders programı problemi için çarşamba günü problemsiz bir şekilde çözüldüyse, bu bilgiyi saklayıp diğer günleri değiştirmeye çalışmak ve hatta perşembe gününü çözen bir ihtimal ile çaprazlamak sonuca daha hızlı götürecektir.

Bu anlamda evrimsel algoritmalar olarak kabul edilebilecek algoritmalardan bazıları aşağıdaki şekilde sıralanabilir:

Bazı meşhur problem ve algoritmalar ise aşağıda verilmiştir:

Yorumlar

  1. İsmail Kahraman

    Merhaba ben Elektronik Mühendisliği 4.Sınıf öğrencisiyim.Bitirme projesi olarak hocamız bizlere ” Evrimsel Algoritmalarla Diferansiyel Denklem Çözümü ” projesini verdi.Program MATLAB’ta yazılacaktır.
    Bu evrimsel algoritma çeşitlerinden istediğinizi seçebilirsiniz diye belirtti.Bu algoritma çeşitlerinden hangisi daha uygun olmaktadır.Bu sorunu nasıl çözebiliriz veya konuyla ilgili faydalı kaynak önerileri var mıdır?
    Faydalı olabilecek konuyla ilgili yardım ederseniz sevinirim.İyi Günler.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir