• Sonuç bulunamadı

Girdap Optimizasyon Algoritması (GOA)

4. YAPAY ZEKÂ TABANLI OPTİMİZASYON İÇİN GELİŞTİRİLEN

4.1. Girdap Optimizasyon Algoritması (GOA)

Girdap Optimizasyon Algoritması [GOA – Vortex Optimization Algorithm (VOA)], temel olarak doğadaki girdaplardan esinlenilerek geliştirilmiş bir YZ tabanlı optimizasyon algoritmasıdır. Düşünce anlamında ilk olarak 2013 yılı sonlarına doğru ortaya çıkmış, akabinde gerçekleştirilen çalışmalar neticesinde algoritmaya yönelik ilk yayın 2014 yılında yapılmıştır (Köse ve Arslan, 2014). ‘Hızlı bir düzeyde zorlaşan gerçek yaşam tabanlı problemlerin literatürdeki alternatif algoritmaların aksine, basit matematiksel yapılarla çözülmesi’ amacı ile çıkılan yolda; amaca uygun, basit bir matematiksel yapı ile sunulan ilk format ile çok çeşitli uygulamalar gerçekleştirilmiş, bu uygulamalara eş zamanlı olarak da, algoritma içerisinde çeşitli düzenlemeler yapılmıştır. Algoritmanın son hali, ‘sistem-içi optimizasyon’ yaklaşımıyla ve hatta ‘çok- amaçlı optimizasyon’ odaklı eklentileriyle (Köse ve Arslan, 2017b) birlikte girdap dinamiğini ve etkin çözüm sürecine yeter düzeyde kavuşmuştur.

GOA’nın çözüm adımları, doğada ortaya çıkan girdap adlı dinamiklerin, çevresindeki nesneleri kendilerine çekmesi ve bu çekim noktasının çözüm uzayında optimum noktaların temsil edebileceği düşüncesinin ortaya çıkması sonucunda tasarlanmıştır. İlk aşamada, gerçek anlamda girdap dinamiklerinin hareketlerini belirten hâlihazırdaki denklemler üzerinden bir algoritma yapısı inşa edilmeye çalışılsa da, uygulamalarda istendik sonuçlar elde edilememiş olması neticesinde, girdap dinamikleri fikrinden ayrılmadan, özgün ve basit denklemler ile tasarlanmış bir algoritmanın literatüre kazandırılması yoluna gidilmiştir. Burada amaç, çok basit denklemlerle zeki optimizasyonun yapılabileceği düşüncesine yoğunlaşmak olmuştur. Bu çalışmalar

sırasında GOA’nın daha stabil hale gelmesi için ‘sistem-içi optimizasyon’ adı verilen bir yaklaşım daha eklenmiş ve bu yaklaşımda girdap dinamiklerinden bir denklem de içerilerek hem algoritmanın doğa-esinli temelleri sağlama alınmış, hem de başarımı istendik düzeye taşınmıştır. GOA, SZ teknikleri ile ilgili alternatif durumlardan, ‘rol dağılımlı çözüm’, ve ‘evrimsel süreçli çözüm’ durumlarına (Bkz. ikinci bölüm, alt- başlık 2.4.2.) dayalı olmak suretiyle, bu tez çalışması sürecinde geliştirilmiş olan ilk algoritmadır. Algoritmanın çözüm adımlarının ortaya konulması aşamasında, mümkün olduğunca kısa, –tıpkı PSO’da olduğu gibi (Bkz. ikinci bölüm, alt-başlık 2.6.1.)– basit denklemlerden oluşan, pratik ama etkili bir yapının elde edilmesi amaçlanmıştır.

4.1.1. Girdap optimizasyon algoritması kapsamında çözüm adımları

GOA ile birlikte literatüre kazandırılmış olan YZ tabanlı optimizasyon çözüm adımlarını şöyle ifade edebiliriz (Köse ve Arslan, 2014; 2016b; 2017a; 2017b):

Adım 1 (Kurulum Fazı). N adet parçacığı oluştur ve her bir parçacık için

başlangıç Girdap (v: vorticity) değerini belirle. Ayrıca algoritma ile ilgili

Maksimum_Girdap ve Minimum_Girdap (max_v, min_v) değerlerini ve Eleme_Oranı

(e: elimination_rate) değerini belirle. Çözülecek probleme yönelik diğer düzenlemeleri de yap.

Adım 2. Parçacıkları çözüm uzayına rastgele dağıt ve her parçacığın konumuna

göre amaç fonksiyon değerini (fitness) hesapla. Optimum değeri hesaplayan, o anda en iyi konumdaki parçacığın Girdap değerini Denklem 4.1.’e göre güncelle. Bu parçacığı ‘girdap’ statüsüne yükselt ve konumunu en iyi konum olarak kabul et.

Adım 3. 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 parçacık için; her amaç fonksiyon boyutu için;)

Adım 3.1. Bütün parçacıkların hesapladığı amaç fonksiyon değerinin (fitness)

ortalamasına eşit veya ondan daha iyi (mininizasyon ise altında, maksimizasyon ise üstünde) olan parçacıkları ‘girdap’ statüsüne yükselt. Diğer parçacıkları ‘normal’ parçacık statüsünde kabul et.

Adım 3.2. Her parçacığın Girdap değerini Denklem 4.2.’ye göre güncelle. Adım 3.3. En iyi durumdaki parçacık dışında kalan ve ‘girdap’ statüsünde olan

parçacıkların Girdap değerini Denklem 4.3.’e göre güncelle.

Adım 3.4. En iyi durumdaki parçacık dışında kalan bütün parçacıkların

konumunu Denklem 4.4.’e göre güncelle.

Adım 3.5. Yeni konumlarıyla birlikte bütün parçacıklar için amaç fonksiyon

değerini (fitness) hesapla. Optimum değeri hesaplayan, o anda en iyi konumdaki parçacığın (eğer henüz değilse) ‘girdap’ statüsüne yükselt ve konumunu en iyi konum olarak kabul et.

Adım 3.6. Toplam ‘normal’ statüdeki parçacık sayısı Eleme_Oranı değerine eşit

veya bu değerin altında ise, bütün ‘normal’ statüdeki parçacıkları çözüm uzayından sil ve sayıları kadar yeni parçacığı (algoritmada kabul edilen başlangıç değerlerini vererek) çözüm uzayına rastgele dağıt.

Adım 3.7. Çözüme yakınsama istendik düzeyde değilse sistem-içi optimizasyon

uygula.

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

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

GOA’da algoritma başlangıcında en iyi durumdaki parçacığın Girdap değeri için yapılan güncelleme, tipik bir rastgele sayı (0 ile 1 arasında) ile çarpım ve elde edileni ekleme işlemine dayanmaktadır:

İ = İ + ( İ ∗ ) (4.1.)

Denklem 4.1.’de, y ve g simgeleri, en iyi durumdaki parçacığın geçerli (g) ve

yeni (y) durumdaki Girdap değerlerini belirtmek için kullanılmaktadır.

Süreç esnasında her bir parçacığın Girdap değerini güncellerken, her bir parçacığın geçerli Girdap değerleriyle en iyi durumdaki parçacığın Girdap değeri, rastgele sayılar ile birlikte hesaplama işlemi içerisine dâhil edilmektedir. Burada en iyi durumdaki parçacığın Girdap değerine yakınsama sağlanabilmesi noktasında en iyi

= + [ ∗ ( İ / )] (4.2.)

Denklem 4.2.’de, i parçacık numarasını temsil etmekte, z zaman için (iterasyon –

döngü anlamında) kullanılmaktadır.

Algoritmada, Adım 3.3.’deki güncelleme işlemi, algoritma başında gerçekleştirilmiş olan (Denklem 4.1.) güncellemeye benzerlik taşımakta, ancak bu sefer ‘girdap’ statüsündeki (en iyi durumdaki parçacık dışındaki) bütün parçacıkları etkilemekte ve Girdap değerinin üzerine ekleme yapılmadan yerine getirilmektedir:

= ∗ (4.3.)

Denklem 4.3.’de, diğer temsillere ek olarak, işlemin (en iyi olan dışında) ‘girdap’

statüsündeki parçacıkları içerdiğini belirtmek adına x simgesi yerine gx kullanılmıştır. Algoritmadaki (en iyi olan dışında) bütün parçacıklar için uygulanan konum güncellenmesi, parçacıkların, optimum değer(ler)in olduğu konum(lar)a yakınsanması üzerine kurulmuştur:

= + [ ∗ [ ∗ ( İ − )]] (4.4.)

GOA’daki genel yaklaşıma yönelik bir illüstrasyon Şekil 4.1.’de gösterilmiştir.

Şekil 4. 1. GOA – genel işleyiş yaklaşımına yönelik bir illüstrasyon.

Söz konusu çözüm adımları bağlamında GOA’ya yönelik özet akış şeması Şekil 4.2.’de verilmiştir.

Şekil 4. 2. GOA özet akış şeması.

GOA’daki sistem-içi optimizasyon yaklaşımını da kısaca şöyle açıklayabiliriz (Köse ve Arslan, 2017b):

 Sistem-içi optimizasyon genel olarak bir optimizasyon sürecinin, kaotik unsurlar içerse bile belli bir stabilite (burada girdap mantığında; bir akışkandaki duruluk veya girdap sebepli dalgalanma homojenliği stabiliteye karşılık olarak düşünülmüştür) içerisinde gerçekleşeceği düşünülmüştür. Bu nedenle ilgili işlem adımına gelindiği zaman elde edilen fonksiyon değerleri (fitness) ve parçacık konumlarının (değişkenler) o ana kadar ki stabilitesi

ölçülmekte, eğer stabilitasyon sağlanmıyorsa, girdap statüsündeki parçacıkların açısal hızları Denklem 4.5. (Siddique, 2015) ile bulunmaktadır.

ℎ = ∗ ∗

Çö ü (4.5.)

 Denklem 4.5. ile bulunan her açısal hız ile normal statüdeki ve stabilitasyon dışında kalan parçacıklar, girdap statüsündekilere rastgele sayılar yardımıyla, ‘rastgele loxodrome yürüyüş’ gerçekleştirilerek yaklaştırılmaktadır. Loxodrome yürüyüş, temelleri Denklem 4.6.’ya (Köller, 2017)dayanan bir matematiksel yaklaşımdır. Denklem 4.5. ve Denklem 4.6. öncesi gerçekleştirilen işlemler, sistem-içi optimizasyona gerek olmadığında, basit girdapların yer aldığı akışkanlardaki olaylara benzerken, sistem-içi optimizasyon girdap akışı ve ilgili denklemlere dayalı gerçek dinamikler üzerine kurulu olmaktadır.

= cos ( ℎ ) ∗ cos ( ∗ ) (4.6.) = sin ( ℎ ) ∗ cos 1 tan( ℎ ∗ ) = − 1 tan( ℎ ∗ )