OPTİMİZASYON TEKNİKLERİ Self Organising Migrating Algorithm Kendini Organize Eden Göç/Geçiş Algoritması MELİH HİLMİ ULUDAĞ Fırat Üniversitesi Teknoloji Fakültesi Yazılım Mühendisliği Bölümü İletişim: www.melihhilmiuludag.com Proje Danışmanı Doç. Dr. BİLAL ALATAŞ 1. S a y f a
İçindekiler 1. Optimizasyon Algoritmaları... 3 2. Kendini Organize Eden Göç Algoritmasına Giriş... 3 3. Kendini Organize Eden Göç Algoritmasının İncelenmesi... 3 3.1. Popülasyon yaratılışı... 4 3.2. Göç Döngüsü... 4 3.3. Değerlendirme... 9 4. Kaynakça... 10 2. S a y f a
1. Optimizasyon Algoritmaları Analitik çözümler nadiren kullanılır çünkü hemen hemen tüm gerçek dünya optimizasyon problemleri, yinelemeli çözümler arar ve matematiksel bir algoritma kullanmak gereklidir. Bu nedenle, evrim algoritması, genetik algoritması, karınca algoritması ve parçacık sürüsü algoritması gibi algoritma metodolojileri geliştirilmiştir ve literatürde büyük ilgi görmüştür. Bu algoritmalar çeşitli optimizasyon alanlarında uygulanmıştır. Ancak, bu algoritmaların dezavantajlarından biri optimizasyon problemlerinin çözümünde problem boyutunun büyüdükçe çözümün oldukça düşük olmasıdır. 2. Kendini Organize Eden Göç Algoritmasına Giriş SOMA Ivan Zelinka tarafından geliştirilen Öz-Örgütlenme Geçiş Algoritması, bir stokastik optimizasyon algoritmasıdır. Genellikle evrimsel bir algoritma olarak bilinen SOMA, birçok optimizasyon problemini çözmek için kullanılabilir. Bu algoritma vahşi yabani hayvan gruplarının davranışlarından esinlenerek geliştirilmiştir. Bu bireyler sabit bir grup yerine, birbirini takip eden nesillerin geliştirilmesi yolu kullanarak göç etme fikrini amaçlıyor. Aynı zamanda genetik algoritmaya benzer bir yapıda olan SOMA, sınırlı parametreler alarak maliyet minimizasyonu sorununa cevap ararken yerel minumum u sağlayabiliyor. Dijkstra's, Floyd Warshall, Bellman Ford algoritmaları veya the A-star algoritması bilindiği üzere en kısa yol problemini bulmak için kullanılan algoritmalardır. Böyle problemlere de cevap verebilen SOMA, (Self Organising Migrating Algorithm) asenkron olarak paralel dağılımlı bir şekilde problemi ele alıyor. Kendini yöneten, organize eden göç algoritmasında yeni nesil, bireylerin göç etmesi ile oluşturulur. Bireyler kendi aralarında öz örgütlenmeli şekilde göç ederler. Dolayısıyla bireylerin sadece pozisyonları arama uzayında göç döngüsü olarak adlandırılan bir oluşum içerisine girer. 3. Kendini Organize Eden Göç Algoritmasının İncelenmesi İncelemeye başlamadan önce SOMA dan birkaç şey bahsedecek olursak : Bu algoritmanın farklı versiyonları mevcuttur. Öncelikle alacağı parametreleri belirtelim. Adım, yol uzunluğu PopSize, PRT ve Maliyet Fonksiyonu gibi parametrelerin tanımlanmış olması gerekir. Maliyet fonksiyonu skaler dönen bir değerdir. Ve uygunluk ölçüsü olarak kullanılır. Soma () fonksiyonu SOMA algoritması için bir arabirim sağlar. Bu, her parametre için minimum ve maksimum sınırlardan oluşan bir seçenekler listesidir ve isteğe bağlı bu listeyi en 3. S a y f a
aza indirmek için bir işlev çağrılır. Maliyet fonksiyonu ilk argüman olarak sayısal bir vektör alır ve ilgili maliyet değeri temsil eden bir sayısal skaler dönmelidir. 3.1. Popülasyon yaratılışı Bireylerin nüfusları rasgele oluşturulur. Her bir birey için her parametre verilen aralıktan rastgele <Düşük, Yüksek> seçilmelidir. 3.2. Göç Döngüsü Nufustaki her birey için maliyet fonksiyonu ve lider değer tanımlanır. Mevcut olan göç etme işlemi döngü için seçilir. Her birey döngü iterasyonunda maliyet fonksiyonu ve lider tarafından değerlendirilir. (parametre tanımındaki adıma göre) Bunun sonucunda bir atlama yapılır. Ve bu atlama değerlendirilip yol uzunluğu tarafından tanımlanan yeni bir konuma ulaşılıncaya kadar devam ettirilir. Ulaşılınca pathlength(yol uzunluğu) xi,j olur.yeni pozisyon xi, her atlamadan sonra j (1) hesaplanır. Sonuç olarak bireyler en iyi konumunu bulana kadar yörünge içerisinde dönerler. (Şekil1) ŞEKİL 1. PRTVEKTÖR ÜN BİREYLER ÜZERİNDEKİ HAREKETİ x mlyeni i, j = x ml i, j[ilk] + (x ml i, j x ml i, j[ilk]) t PRTVektör Gerekli şartlar t < 0 olacak ve yol uzunluğu (pathlegth) > Göç Döngüsü 4. S a y f a
Bir birey Liderlik için bir atlama başlatmadan önce Rasgele bir sayı oluşturulur. Ve oluşturulan sayı PRTVektör den daha büyük ise Bireysel bileşeni PRTVektör aracılığı ile 0 olarak ayarlanır. Dolayısıyla bireysel hareket N-k boyutlu alt uzayda alana sürekli dik olarak iner. SOMA globallikten ziyade yerel optimumu bulma eğilimindedir. Eğer göç döngülerinin sayısına ulaşıldıysa algoritma durur ve en iyi çözümü belirtir. Eğer rndj<prt ise PRTVektörj=1 Değilse PRTVektörj=0 Random olan sayı (rndj) <0,1> ve j=1,2,3,..n e kadardır. Örnek: PRTVektör e 4 parametre için PRT=0,3 olarak verilsin j rndj PRTVektör 1 0,234 1 2 0,545 0 3 0,865 0 4 0,012 1 J=1için rasgele üretilen rnd1 sayısı (0,234<0,3)? PRTVektör=1 J=2 için rasgele üretilen rnd2 sayısı (0,545<0,3)? PRTVektör=0 J=3 için rasgele üretilen rnd3 sayısı (0,865<0,3)? PRTVektör=0 J=4 için rasgele üretilen rnd4 sayısı (0,012<0,3)? PRTVektör=1 5. S a y f a
BAŞLAT RASGELE BİR POPÜLASYON OLUŞTUR ML=0 AKTİF LİDERİ SEÇ VE TÜM BİREYLERİN AMAÇ FONKSİYONLARINI DEĞERLENDİR KRİTER UYGUN MU? HAYIR ML=ML+1 AKTİF BİREYİN KONUMU İLE SEÇEBİLECEK EN İYİ KONUMU SEÇEREK YENİ POZİSYON ELDE ET EVET AKTİF LİDERİ SEÇ VE TÜM BİREYLERİN AMAÇ FONKSİYONLARINI DEĞERLENDİR HAYIR YENİ NOKTA AKTİF OLANDAN DAHA İYİ Mİ EVET AKTİF LİDERİ SEÇ VE TÜM BİREYLERİN AMAÇ FONKSİYONLARINI DEĞERLENDİR EN İYİ SONUCU RAPORLA BİTİR ŞEKİL 2. SELF ORGANİSİNG MİGRATİNG ALGORİTHM FLOW CHART 6. S a y f a
Örnek: # Rastrigin fonksiyonu yerel minumum içeren bir fonksiyon olsun. rastrigin <- function (a) 20 + a[1]^2 + a[2]^2-10*(cos(2*pi*a[1])+cos(2*pi*a[2])) # -5 ile 5 parametreleri aralığında global minumumu bulmaya çalışalım. x <- soma(rastrigin, list(min=c(-5,-5),max=c(5,5))) # Asgari olarak c(0,0) a çok yakın olmalıdır. Liderin konumunu bulacak olursak: print(x$population[,x$leader]) # Son olarak Liderlerin maliyet geçmişlerini çizelim plot(x) Şimdi her aşamayı teker teker izleyelim: rastrigin <- function(a) 20 + a[1]^2 + a[2]^2-10*(cos(2*pi*a[1])+cos(2*pi*a[2])) ŞEKİL 3. FONKSİYON YÜZEYİ [FUNCTİON] Sırada: minumum u araştıralım. x <- soma(rastrigin, list(min=c(-5.12,-5.12),max=c(5.12,5.12))) Burada SOMA optimizasyonunun başlangıcını belirttim. Eğer göç sınırı 20 ye ulaşırsa durdurulması gerekli olsun. Lider maliyet 1.67e-05 değerinde olacak. 7. S a y f a
Yani sıfır (asgari) değerine yakın 1.67e-05 a fonksiyon en iyi çalışma noktasının olduğunu fonksiyonun çıkışından gözlemleyeceğiz. Arama uzayının konumunu verelim: print(x$population[,x$leader]) -1.005039e-05 2.896569e-04 Bu konum (0,0) a çok yakın. Her tekrarda en iyi maliyet fonksiyonu değerini gösteren bir optimizasyon ilerleme düzeneği çizebiliriz. Şöyle ki: ŞEKİL 4. FONKSİYONUN OPTİMUM İLERLEME ÇİZENEĞİ Burada algoritmanın üzerinde çalıştığı fonksiyonu hızlıca aşağı düşürdüğünü ve sıfıra doğru en küçük değeri izleyerek yeni bireylere göç ettiğini gözlemliyoruz. Bu örneği resimlerle izleyelim: 8. S a y f a
1.Göç 2.Göç 3.Göç 4.Göç 5.Göç 6.Göç ŞEKİL 5. GÖÇ DÖNGÜSÜ 3.3. Değerlendirme SOMA özellikle 2011-2012 yılları arasında çeşitli alanlarda kullanılmıştır. Örnek verecek olursam: Kaotik Sistemlerin Kontrolünde Sinir Ağı Sentezinde Elektrik ile bağlantılı olan optimizasyonlarda Vb. alanlarda kendine yer bulmuştur. Bu algoritma ile ilgili son güncelleme 03.08.2005 yılında yapılmıştır. 9. S a y f a
4. Kaynakça o https://github.com/jonclayden/soma o General-Purpose Optimisation With the Self-Organising Migrating Algorithm, Jon Clayden; based on the work of Ivan Zelinka o Self-Organizing Migrating Strategies Applied to Reliability-Redundancy Optimization of Systems Leandro dos Santos Coelho o SOMA Ivan Zelinka o International Journal of Soft Computing and Engineering (IJSCE) ISSN: 2231-2307, Volume-3, Issue-6, January 2014 o Comparison of an self-organizing migration algorithm with simulated annealing and differential evolution for automated waveform tuning. Advances in Engineering Software, 36(10), pp. 645-653. NOLLE, L., ZELINKA, I., HOPGOOD, A.A. and GOODYEAR, A., 2005. o 2011. An investigation on evolutionary identification of continuous chaotic systems, AIP Conference Proceedings 2011, pp. 280-284. ZELINKA, I., DAVENDRA, D., SENKERIK, R. and JASEK, R., 10. S a y f a