• Sonuç bulunamadı

3. MATERYAL VE YÖNTEM

3.7. Çok-Noktalı Türevden Bağımsız Optimizasyon Yöntemleri

3.7.3. Genetik algoritmalar

Genetik algoritmalar, doğal evrim sürecini taklit eden, problemde gerçek değerleri değil de gerçek değerleri temsil eden ikili sayı sistemini kullanan ve “en iyi olan hayatta kalır, diğerleri yaşamlarını devam ettiremez” prensibine uygun olarak geliştirilmiş bir yöntemdir. Bu doğal seçim mekanizması 1967 yılında J.D. Bagley`in (1967) doktora tezinde gündeme getirilmiş ve 1970`li yıllarda, biyoloji bilimindeki bu prensibi yapay sistemlere uygulamayı ilk olarak John H. Holland düşünüp bilgisayar ortamında

- 𝜇 bireylerinden oluşan bir başlangıç popülasyonu seç ve algoritmayı başlat.

- İterasyon sayısını belirle ve bu sayıya ulaşıncaya kadar şu işlemleri yap:

o Çocuk vektörlerini oluştur (𝜆 > 𝜇):

𝜇 ebeveyn popülasyonu arasından rastgele bir ebeveyn seç (𝐏 ).

𝜇 ebeveyn popülasyonu arasından rastgele başka bir ebeveyn seç (𝐏 ).

Ebeveynleri üreme işlemine tabi tut ve yeni çocuk bireyi üret (𝐜 ).

Yeni çocuk bireyi mutasyona uğrat.

Çocuk bireyi yeni popülasyona kaydet (𝜆).

o (𝜆) veya (𝜇 𝜆) arasından en iyi bireyleri seç.

40

uygulamaya çalışmıştır. 1985 yılında ise bu düşünceyi gerçekleştirmeyi Holland`ın öğrencisi olan Goldberg başarmıştır. Goldberg, gaz boru hatlarının denetimi üzerine yaptığı çalışma ile o güne kadar genetik algoritmaların pratik uygulamalar için pek faydalı olmadığını savunanların aksine genetik algoritmaların pratik uygulamalarda klasik metotlara göre çok daha iyi sonuçlar vermekle kalmayıp çok kısa sürelerde sonuca ulaşabileceğini de kanıtlamıştır. Ayrıca bu çalışma Golberg`e 1985 yılında

“National Science Foundation” (Ulusal Bilim Kurumu) tarafından verilen Genç Araştırmacı ödülünü de kazandırmıştır. Genetik algoritmalar genetik bilimindeki genetik yapıları bilgisayar ortamına aktararak bu yapılarla yapay olarak çalışırlar.

Burada, 0 ve 1`lerle ifade edilen bireylerden oluşan bir popülasyon topluluğunda en iyi bireyi bulma amaçlanır. Popülasyondaki her birey amaç fonksiyonunu temsil eden bir uygunluk değerine sahiptir. Genetik algoritma, her zaman gerçek fonksiyondan bağımsız olan bu uygunluk değerleriyle çalışır. Algoritma süresince bireyler kendi aralarında ürer, çaprazlanır ve bazen de mutasyona uğrarlar (Goldberg 1989). Şekil 3.12 genetik algoritmaların temel işlem adımlarını özetlemektedir.

Şekil 3.12 Genetik algoritmaların işlem adımları

Üreme işlemi içindeki eşleşme sonucunda oluşacak yeni bireyler uygunluk değerlerine göre yeni popülasyona kopyalanırlar. Sonuçta uygunluk değeri yüksek olan bireyler daha fazla sayıda kopyalarını yeni nesle aktarmış olurlar. Ayrıca üreme operatörü, uygunluk değerleri düşük olan kötü bireylerin kopyalarını yeni nesle aktarmayarak bu bireylerin ölümüne neden olur ve bunun sonucunda kötü bireyler, 0 ve 1`lerle ifade edilen kromozomlarını yeni nesillere aktaramamış olurlar.

- Arama uzayında rastgele bir başlangıç popülasyonu oluştur.

- İterasyon sayısını veya iterasyonun devam edebileceği şartı belirle ve bu sayıya/şarta ulaşıncaya kadar şu işlemleri yap:

o Üreme: Popülasyondan rastgele 2 birey seç ve bunları eşleştirerek yeni bireyler oluştur.

o Çaprazlama: Yeni üretilen bireylerden rastgele 2 birey seç ve bunların genetik kodlarının bir kısmını yer değiştir.

o Mutasyon: Belli bir oranda yeni bireyler arasından mutasyona uğrayacak bireyleri seç ve bu bireylerin genetik kodunda bazı değerleri rastgele değiştir.

- Oluşan yeni bireylerden en iyi olanı seç.

41

Popülasyondaki bireylerin çeşitliliğini arttırmak ve daha iyi bireyler elde etmek amacıyla popülasyon içinde bulunan iki birey arasında gen değişimi işlemi yapılır. Bu işlem çaprazlama olarak anılmaktadır. Burada çaprazlanacak bireyler ve bu bireylerin genlerinin kesim noktaları rastgele olarak seçilir. Çaprazlama işlemi sonucunda iki yeni birey oluşturulmuş olur. Kesme işleminin yerine ve sayısına göre çeşitli çaprazlama işlemleri mevcuttur. Bunlar arasında tek-noktalı çaprazlama, iki-noktalı çaprazlama, çok-noktalı çaprazlama ve üniform çaprazlama işlemleri sayılabilir.

Mutasyon işlemi popülasyonun çeşitliliğini arttırmak için kullanılmaktadır. Bu operasyonda rastgele bir birey seçilir ve yine bu bireyin kromozomundan rastgele bir gen seçilerek değeri değiştirilir. Gen değeri 1 ise 0, 0 ise 1 yapılır (Karen 2005).

Seçim işlemi oluşturulan yeni bireylerden kötü uygunluk değerlerine sahip olanları öldürmek amacıyla gerçekleştirilir. Seçim işlemi genetik algoritmaların yakınsaması ile yakından ilişkilidir. Birçok seçim mekanizması geliştirilmekle birlikte en önemlileri arasında rulet tekerleği seçimi, sıralama seçimi, turnuva seçim mekanizması sayılabilir.

Her mekanizmanın kendine özgü özellikleri olmakla birlikte son zamanlarda turnuva seçim mekanizması hızlı sonuca ulaşma bakımından biraz daha sık kullanılmaktadır.

Genetik algoritmalar genellikle ikili sistemde kodlanmaktadırlar. Bu kodlama, algoritmayı özellikle gerçek optimizasyon problemlerinde hesapsal açıdan karmaşıklaştırmakta, ayrıca ek bir kontrol parametresi (kromozom uzunluğu) algoritmaya eklendiğinden algoritmanın kontrolünü zorlaştırmaktadır. Bu nedenle reel-kodlu genetik algoritmalar geliştirilmiştir.

Genetik algoritmalar en optimum sonuca ulaşmada aşama aşama bireyleri iyileştirerek değil de kötü bireyleri öldürerek ve dolayısıyla arama uzayındaki uygun olmayan bölgelerden uzaklaştırarak sonuca ulaşmaktadır. Bu durum bir dezavantaj oluşturabilmektedir; şöyle ki genetik algoritma ile arama gerçekleştirilirken süreç ilerledikçe bireyler birbirlerine benzemekte hatta arama sonuçlandığında hemen hemen tüm bireyler birbirinin aynısı olabilmektedir. Bu durumda eğer başka bir bölgede gerçek optimum nokta mevcutsa ve değeri bulunan optimum noktaya çok yakınsa bu gerçek optimum nokta bulunamayabilir. Çünkü gerçek optimum noktaya yakın oluşabilecek yeni bireyler çok büyük bir olasılıkla öldürülecektir. Ayrıca bu durumda gerçek

42

optimum noktaya ulaşmak için genetik algoritmanın hassasiyeti arttırılacak olursa bu sefer gerçek optimum noktaya ulaşma olasılığı biraz artarken sonuca ulaşma zamanı oldukça yükselecektir. Bu nedenle başlangıçta genetik algoritmaların yakınsama hızı yüksek iken ilerleyen aşamalarda ters orantılı olarak bu yakınsama hızı oldukça azalmaktadır.