• Sonuç bulunamadı

2.5. Başlıca Sürü Zekâsı Teknikleri – Algoritmaları

2.5.5. Genetik algoritma

Genetik Algoritma [GA – Genetic Algorithm (GA)], Charles Robert Darwin (1859; 2015 (Çev.)) tarafından bilim dünyasına kazandırılan Evrim Teorisi’nin temel unsurları ve olgularından esinlenerek geliştirilmiş olan ilk YZ tekniğidir. Holland (1992:1975) tarafından literatüre kazandırılan GA, yapısı itibariyle genetik kavramları temel alan ve Evrim Teorisi ile açıklanan, seçilim (seleksiyon – selection), mutasyon (mutation) ve çaprazlama (crossover) süreçlerini gerçek yaşam tabanlı problemlerin çözümü için kullanan bir EH tekniği olarak da bilinmektedir. Esasında GA’da çözüm sürecinde kullanılan parçacıkların temsilinde –şu ana kadar açıklanan tekniklerden farklı olarak– kodlama yoluna gidilmektedir (Holland, 2012; Kramer, 2017; Mitchell, 1998). Bu kodlama, Holland’ın da (1995; 2012) ifade ettiği gibi, Ronald Aylmer Fisher tarafından ortaya konulan ve genlerin bir popülasyon boyunca aktarımını matematiksel yapıda açıklayan yaklaşımlardan (Fisher, 1958:1930) esinlenmektedir.

Genel olarak tipik bir GA, başlangıçta çözüm için kullanılacak ve seçilen bir kodlamayla kromozom şeklinde temsil edilen parçacıkların (bu alt-başlık altında bu noktadan sonra birey olarak ifade edilecektir) ilgili amaç fonksiyonu (ya da fonksiyonları) çerçevesinde elde ettikleri değerlere (fitness) göre çeşitli genetik işlemlere tabi tutulmasına dayanmaktadır. Buna göre, başlangıçtaki popülasyon elde edilen sonuçlara göre çaprazlama, mutasyon gibi süreçler işe koşularak, nispeten daha iyi durumdaki bireyler üzerinden yeni bireylerin elde edilmesi ve geliştirilmesi yoluna gidilmekte, her yeni nesille yapılan değerlendirmeler, istendik sonuç elde edilinceye kadar ya da belli bir durma kriteri sağlanıncaya kadar sürdürülmektedir (Goldberg, 2006; Karaboğa, 2014; Kramer, 2017). Karaboğa’ya (2014) göre bir GA’nın etkinliğini, çözümlerin nasıl temsil edildiği, bireylerin ve dolayısıyla başlangıç popülasyonunun nasıl kodlandığı, amaç fonksiyonu (ya da fonksiyonları), uygulanan genetik işlemler ve algoritma parametreleri belirlemektedir.

GA’da çözüm sürecinde kullanılan bireylerin her biri ilk başta çeşitli kodlama şekilleri kullanılarak temsil edilmektedir. Bu noktada bireyleri temsil eden kromozomların içeriği gen adı verilen kodlarla doldurulmaktadır. Kodlama için genellikle ikilik sayı sistemi (binary – bitler – 0 ve 1) kullanılabildiği gibi, alfabenin harfleri, ayrık sayılar, alternatif sayı kodlama biçimleri ya da geliştirilen alternatif

temsiller tercih edilebilmektedir (Balland ve ark., 2000; Gen ve Cheng, 2000; Janikow ve Michalewicz, 1991; Karaboğa, 2014; Patrascu ve ark., 2014; Whitley, 1994). Burada önemli olan bir husus da bu kodların amaç fonksiyon değeri (fitness) hesaplaması aşamasına gelindiğinde ilgili fonksiyon(lar)a nasıl dâhil edileceğinin iyi belirlenmiş olmasıdır (Örneğin alfabenin harfleriyle temsil edilen bir kromozom problemin amaç fonksiyonuna dâhil edilmeden önce bir ön işlemden geçerek sayısal yapıya kavuşturulabilir ya da ikilik sayı sistemiyle temsil edilen kromozomlar onluk sayı sistemine (decimal) dönüştürülerek fonksiyonda kullanılabilir). Bu durum aslında Karaboğa’nın ifade ettiği, çözüm temsili, popülasyonun kodlaması ve amaç fonksiyonu unsurları arası ilişkinin önemini göstermektedir.

GA tekniği çözüm sürecinde, belirlenen popülasyonların genetik anlamda değiştirilip geliştirilmesi ve böylece çözüme ulaşma sürecinin pozitif yönde ilerlemesi için uygulanan mutasyon ve çaprazlama gibi genetik işlemlerin kodlanmış bireylere uygulanması şu şekilde olmaktadır (Holland, 2012; Kramer, 2017; Mitchell, 1998):

 Çaprazlama (Crossover): Bu işlemde, önceden belirlenmiş olan bireylerin bir bakıma üreyerek yeni bir birey oluşturması söz konusudur. Bunun için GA’nın ilgili parametreleri ve belirlenen çaprazlama şekline göre karşılıklı gen – kod alışverişi yaparak yeni bireyler elde edilmektedir. Bu bağlamda, örneğin simetrik anlamda birbirine ters düşen genlerin – kodların değiştirilmesi ya da belli aralıklarla değişim gerçekleştirilmesi gibi yaklaşımlar izlenebilmektedir.

 Mutasyon (Mutation): Algoritma dahilinde başarılı bireylerin bir şekilde daha başarılı çözümlere ulaşma potansiyelini artırmak için mutasyon işlemi de uygulanmaktadır. Mutasyon için seçilen bireylerde, yine GA’nın ilgili parametreleri eşliğinde kodların değiştirilmesi işlemi gerçekleştirilmektedir. Bu işleme dair en basit örnek 0 ve 1’lerle kodlanmış bir bireyde, bazı 0’ların 1, bazı 1’lerin de 0 yapılmasıdır.

GA’nın algoritmik sürecinde önemli olan diğer bir husus da çaprazlama ve mutasyon işlemlerinin hangi bireylere uygulanacağıdır. Bu durum, ilgili genetik işlemler uygulanmadan hemen önce seçilim sürecinin gerçekleştirilmesi ile çözülmeye çalışılmaktadır. Bu amaçla, geçerli popülasyondan, problemin amaç fonksiyon

yapısından başarılı sonuçlarla dönen bireyler arasından farklı yollarla seçilim yapılmaktadır. Liteatürü incelediğimizde, bayaslanmış rulet tekerleği (biased roulette wheel), orantılı yeniden üretim (proportionate reproduction), turnuva seçilimi (tournament selection), ve sıralama seçilimi (ranking selection) gibi alternatif yolların olduğunu görmek mümkündür (Baker, 1985; Goldberg ve Deb, 1991). Bunlar arasından çalışmalarda sık tercih edilen bayaslanmış rulet tekerleği ile birlikte bireylerin çözümlerinin, popülasyon ortalama çözümüne karşı kalitesine göre belli bir oranda temsili tekerlek üzerine konulmakta ve bu tekerleğin döndürülmesi suretiyle üremeye tabi tutulacak bireyler şans faktörüyle belirlenmektedir (Karaboğa, 2014).

Şekil 2. 10. GA’da kritik evrimsel süreçler (Cheng Yu, 2017).

GA’ın algoritmik çözüm adımlarını genel hatlarıyla şöyle ifade edebiliriz (Holland, 2012; Karaboğa, 2014; Kramer, 2017):

Adım 1 (Kurulum Fazı). N adet bireyden oluşan popülasyonu ilgili probleme

ve tercih edilen kodlama düzenine göre oluştur. Başlangıç algoritma parametre değerlerini (Örneğin; çaprazlama oranı, mutasyon oranı) ve seçilim, çaprazlama, mutasyon gibi işlemlerde izlenecek yöntemleri belirle.

Adım 2. Aşağıdaki adımları, iteratif süreç boyunca (Örneğin; belirli bir

iterasyon sayısına ulaşıncaya kadar ya da amaç fonksiyonda istendik bir değere ulaşıncaya kadar) tekrarla:

(Her birey için; her amaç fonksiyon boyutu için;)

Adım 2.1. İlgili yapı kapsamında amaç fonksiyon değeri (fitness) hesapla. Adım 2.2. Hesaplanmış olan amaç fonksiyon değeri (fitness) değerleri eşliğinde,

üreme sürecine sokulacak bireyleri tespit için tercih edilen yöntemler bağlamında seçilim işlemini uygula.

Adım 2.3. Tespit edilen bireylere ilgili algoritma parametreleri ve tercihler

kapsamında çaprazlama işlemini uygula.

Adım 2.4. Algoritma parametreleri ve tercihler kapsamında, ilgili bireylere

mutasyon işlemini uygula.

Adım 3. İterasyon – döngü sonunda küresel en iyi konuma göre elde edilen

değer(ler) optimum değer(ler) olarak kabul edilmektedir.

Tıpkı diğer YZ tabanlı optimizasyon tekniklerinde olduğu gibi, GA’nın da zaman içerisinde birçok farklı varyasyonu ilgili literatüre kazandırılmıştır [Bunlardan bazı güncel olanlar ve dikkat çekenler için: (Chiang, 2005; Dandy ve ark., 1996; Deb ve ark., 2002; Konar ve ark., 2017; Ling ve Leung, 2007; Mashwani ve ark., 2017; Ni ve ark., 2016; Palomo-Romero ve ark., 2017; Potts ve ark., 1994; Rajarathinam ve ark., 2017; Shi ve ark., 2003; Tan ve ark., 2016; Toğan ve Daloğlu, 2008)].