01-12-06 Ümit Akıncı Fonksiyon Optimizasyonunda Genetik Algoritmalar 1 Fonksiyon Optimizasyonu Fonksiyon optimizasyonu fizikte karşımıza sık çıkan bir problemdir. Örneğin incelenen sistemin kararlı durumu için minimum enerjili durumlar aranır. N değişkenli f( ) fonksiyonunun sayısal yöntemlerle minimumunu bulmak oldukça zor bir problemdir 1. Fonksiyonun alabileceği değerler uzayı büyük olduğunda bu problem daha da zorlaşır. Bu tip problemler için daha önce simulated annealing yöntemi incelenmişti ve orada minimizasyon probleminin numerik çözümündeki güçlüklerden de bahsedilmişti. f( ) fonksiyonunun minimumunu bulmak ile f( ) fonksiyonunun maksimumunu bulmak aynı şey olduğu için genel olarak fonksiyonun optimumunu bulma probleminden bahsedilebilir. 2 Temel Kavramlar Genetik Algoritma 1975 de[1] ortaya atılmış ve 90 ların ortasından itibaren çeşitli problemlerde ve disiplinlerde yaygın olarak kullanılmaya başlanmıştır. Temelde doğadaki evrim ile birebir benzerdir, temelini canlıların evriminden almıştır. Problemin aranan çözümü -simulated annealing de olduğu gibi- olası çözümlerin arasından probleme bağlı geliştirilen algoritma ile aranır. Bu arama, olası çözümlerin bulunduğu uzayda rasgele elemanlardan başlayan ve aranan elemana (çözüme) doğru giden bir harekettir. Hareketi algoritma belirler. Genetik algoritmada bu uzayın elemanları (olası çözümler) ikilik (binary) ya da başka bir sistemde (Gray vb.) yazılmış kromozom benzeri dizilerle temsil edilir. Problem çözümlerinin temsili problem bağımlıdır. Bu olası çözümlerin oluşturduğu topluluk popülasyondur. Algoritma ile popülasyon evrim geçirir ve ve her evrim basamağında popülasyon elemanları olan çözümler aranan çözüme biraz daha yaklaşır. Algoritmada iki şey belirlenmiş olmalıdır 1. Problem çözümlerinin kodlanması 2. Problem çözümlerinin aranan çözüme yakınlığının ölçüsü olan uygunluk fonksiyonu (fitness function) 2.1 Kodlama İkilik sistemdeki kodlama kullanılan kodlama yöntemlerinden biridir. Onluk sistem günlük hayatta genelde kullanılan sistemdir abcd = a 3 + b 2 + c 2 + d 0 (1) 1 Gezgin satıcı problemi de böyle bir problemdir, problemde N tane noktayı birleştiren en kısa kapalı yol aranır ve nokta sayısı arttıkça problemin kesin çözümü imkansız hale gelir 1
Burada a, b, c, d, [0, 9] aralığında rakamlardır. Benzer olarak ikilik sistemde yazılmış bir dizinin onluk sistemdeki değeri yzt = 2 3 + y2 2 + z2 2 + t2 0 (2) dir ve burada,y,z,t, [0, 1] aralığında rakamlardır. Genelde kullanılan onluk sistemdeki sayılar ikilik sisteme çevrilerek elde edilen diziler genetik algoritma ile çözümde kullanılabilir. Örneğin, 13 = 1 2 3 + 1 2 2 + 0 2 1 + 1 2 0, 13 11. (3) 2.2 Uygunluk fonksiyonu Popülasyondaki bir elemanın (olası bir çözümün) aranan elemana (gerçek (aranan) çözüme) yakınlığının ölçüsünü verecek şekilde seçilmiş fonksiyondur. Optimizasyon problemlerinde bu fonksiyon, optimumu aranan fonksiyon olarak seçilebilir. f( ) fonksiyonunun maksimum değeri aranıyor olsun. Başlangıç popülasyonunda -çözüm aralığında rasgele seçilmiş- bulunan N tane eleman 1, 2,..., N { i },i = 1...N bulunsun. f i f( i ) olmak üzere, i. elemanın uygunluğu, olmak üzere f = N f i (4) ile verilir. Bu durumda f popülasyonun uygunluğunun bir ölçüsü olacaktır. f ī f i=1 (5) 3 Algoritma Algoritma, var olan bir popülasyonu (olası çözümleri) aşağıdaki adımlarla uygunluğu daha yüksek olan bir popülasyona (gerçeğe daha yakın olası çözümlere) evirir. Burada özel olarak genetik algoritmanın fonksiyon optimizasyonunda kullanımı verilecektir. f( ) fonksiyonunun [a,b] aralığında maksimumu aranıyor olsun. 1. Başlangıç popülasyonunun oluşturulması, ve uygunlukların hesaplanması { i },i = 1...N i [a,b] Tüm i ler seçilen kodlamaya göre kodlanır Tüm i ler için f i ve buradan da sistemin uygunluğu f (4) den hesaplanır, böylece popülasyondaki tüm elemanlar için uygunluklar (f i / f) hesaplanabilir 2. Popülasyonun evrimi Popülasyondaki uygunluğu yüksek elemanlar seçilerek ara popülasyon oluşturulur, bunun için bir yol şudur: (,y 0 9 arası rakamlar olmak üzere) uygunluğu.y olan elemandan 1.0 olasılığıyla tane eleman, 0.y olasılığıyla + 1 tane eleman ara popülasyona alınır. 2
Yani bu elemandan ara popülasyona tane alınır, bir tane daha alınma olasılığı 0.y dir. 2 Uygunluğu 0.y olan elemanda ara popülasyona 0.y olasılığıyla alınır Ara popülasyondan rasgele seçilen iki eleman p b olasılığıyla birleştirilerek iki yeni eleman oluşturulur (crossover) A,B iki eleman olmak üzere, her ikiside rasgele bir yerden bölünür. A dan, A 1,A 2 ve B den, B 1,B 2 olmak üzere iki parça oluşur. A 1 ile B 1, A 2 ile B 2 aynı uzunluktadır. Yeni iki eleman A 1 ile B 2 nin ve B 1 ile A 2 nin birleşiminden oluşacaktır. Örneğin 00111 ve 100 şeklindeki iki eleman 3. noktalarından birleştirilerek 000 ve 111 şeklinde iki yeni eleman oluşturur. Bu birleşmenin olup olmayacağı p b oalsılığıyla belirlenir, yani r, [0, 1] aralığında rasgele bir sayı olmak üzere r < p b ise birleşme olur, değilse olmaz. Son durumda iki eleman da aynen sonraki popülasyona alınacaktır. Oluşan elemanlar p m olasılığıyla mutasyona uğrar. Mutasyon sonucu bir elemandaki bir bit ters çevrilir. Örneğin 000111 şeklindeki bir eleman mutasyon sonucu 001111 şeklinde dönüşebilir. Burada 3. bit ters çevrilmiştir. 3. Ara popülasyondan yukarıdaki gibi oluşturulan N elemanlı sonraki popülasyon yine 2. deki işlemlerle evrilir. Seçilen durma kriteri gerçekleştiğinde elde edilen popülasyon elemanları aranan çözümü temsil eden elemanlar olacaktır. p b ve p m olasılıkları program boyunca sabittir ve tipik değerleri sırasıyla 0.7 0.8, 0.05 0.1 civarındadır. 4 Bir Boyutlu Probleme Uygulama f = + cos(2.2 + 0.1) + fonksiyonunun (0, 31) aralığında tamsayı maksimumunu arayalım. Gerçek çözüm = 31 dir. Programda p b = 0.7,p m = 0.1, N = elemanlı popülasyonlar ve 0 evrim basamağı kullanılmıştır. Çözüm uzayı 32 elemanlıdır ve 0 31 arası tamsayıları içerir. Kodlama ikilik tabanda yapılmıştır ve 5 bitlik diziler kullanılmıştır. Uygunluk fonksiyonu olarak maksimumu aranan f fonksiyonu kullanılmıştır. Programda üretilen başlangıç poopülasyonu ve uygunluk değerleri tablodadır. ilk adımda uygunluk değeri yüksek olan 29(4), 26(2), 19(3), 13(1), (1) elemanlarından parantez içinde belirtiklen sayılarda ara popülasyona seçilmiş ve bunlardan rasgele seçilen elemanların p b olasılığıyla birleşmesi ve oluşan elemanların p m olasılııyla mutasyon geçirmesi sonucu bir sonraki popülasyon elemanları 31(1), 29(1), 27(2), 25(3), 21(1) yine parantez içinde belirtilen sayılarda oluşturulmuştur. Ilk adım sonrasında popülasyonun uygunluk değeri 42.88 e yükselmiştir. İlk popülasyonda olmayan 31, 27, 25, 21, 18, 14 olası çözümlerinin ortaya çıkması birleşme ve mutasyon sonucudur, 1, 7 gibi ilk popülasyonda olan ve uygunluğu düşük olan çözümlerin de elenmiş olması yine algoritmadaki seçim ile olmuştur ve doğadaki doğal seleksiyon ile birebir benzerdir. 2 r [0, 1] arası üretilen rasgele sayı olmak üzere r < 0.y ise alınır 3
0 5 15 25 Şekil 1: f = + cos(2.2 + 0.1) + fonksiyonunun (0, 31) aralığındaki davranışı kodlama f i / f 7 00111 0.24 29 111 1.92 1 00001 0.25 19 011 0.96 0 0.33 19 011 0.96 13 011 0.48 29 111 1.92 26 1 1.98 19 011 1.96 Tablo 1: Örnek problem için başlangıç popülasyonu ve elemanların uygunluk değerleri, popülasyonun uygunluk değeri.55 Program boyunca popülasyonun uygunluk değerinin değişimi aşağıdaki grafikte görülebilir. Evrim sürecinde zaman ilerledikçe popülasyondaki elemanların temsil ettiği çözümler de gerçek (aranan) çözüme yaklaşmaktadır. Popülasyonun içerdiği elemanların gerçek (aranan) çözüme yakınlığının ölçüsü olan popülasyonun uygunluk değerinin zamanla değişiminden (Şekil 2) bu görülebilir. Şekil 3 den de ilerleyen evrim basamaklarında, popülasyon elemanı olan olası çözümlerin (şekildeki siyah noktalar), gerçek çözüme yaklaştığı görülebilir. References [1] Holland J., Adaptation in natural and artificial systems, 1975, University of Michigan Pres. 4
65 55 45 0 80 0 Şekil 2: 0 adımlık evrim boyunca popülasyonların uygunluk değerlerinin zamanla değişimi 5
0 5 15 25 (a) t = 0 0 5 15 25 (b) t = 5 0 5 15 25 (c) t = 0 5 15 25 (d) t = 0 5 15 25 (e) t = 75 0 5 15 25 (f) t = 0 Şekil 3: Evrim boyunca farklı zaman adımlarında popülasyondaki elemanların temsil ettiği çözümler 6