GENETİK ALGORİTMALARA GİRİŞ (II) BİNARİ KODLANMIŞ GA Nedim TUTKUN Düzce Üniversitesi Elektrik Elektronik Mühendisliği Bölümü nedimtutkun@duzce.edu.tr Düzce Üniversitesi Elektrik&Elektronik Mühendisliği Bölümü Konuralp 81620 Düzce
Bölüm Konu Başlıkları Değişkenlerin seçilmesi ve amaç fonksiyonu Değişken kodlama ve kod çözme Çok Parametreleri Problemler Seçim mekanizması 2
Giriş GA nın temelde uygulanan iki temel kodlama biçimi vardır. İkili sayı sisteminde kodlama (1010101010111100 vb.) Reel sayı kümesinde tanımlanmış olmak kaydıyla onlu sayı sisteminde kodlama (2,36 vb.) Her iki algoritma genetik tekrarlı birleşme (recombination) ve doğal seçim modellemesine benzer prosedürleri takip eder. Binari ve reel sayılarda kodlanmış değişkenler ile amaç veya maliyet olarak adlandırılan fonksiyonu minimize etmek için kullanılır. 3
Binari GA String = x 1 x 2 x n 4
Değişkenlerin seçilmesi ve amaç fonksiyonu Amaç fonksiyonu giriş değişkenlerin setinden yani stringlerden çıkış üretir ve matematiksel bir fonksiyon veya bir deney olabilir. Burada amaç giriş değişkenleri için uygun değerler bularak istenilen bir şekilde çıkışı değiştirmektir. Bu nedenle uygun amaç fonksiyonu belirlemek ve hangi değişkenlerin kullanılacağına karar vermek oldukça önemlidir. GA literatüründe amaç fonksiyonu çıkışını belirlemek için uygunluk terimi yaygın biçimde kullanılır. Uygunluk maksimizasyon problemini ifade eder. GA p1, p2,.pn gibi verilen N adet değişkenle ifade edilen popülasyon ile başlar. Eğer kromozom N boyutlu optimizasyon problemi ise o zaman kromozom N elemanlı satır vektörü olarak yazılır. 5
Değişkenlerin seçilmesi ve amaç fonksiyonu Maksimizasyon: maliyet1 = f (kromozom) = f (p 1, p 2,..., p N ) Minimizasyon: maliyet2 = f (kromozom) = -f (p 1, p 2,..., p N ) 6
Değişkenlerin seçilmesi ve amaç fonksiyonu Bir otomobilin yakıt menzilini ifade eden amaç fonksiyonu ifade eden fonksiyon aşağıdaki gibi olsun. Kullanıcı problemde hangi değişkenin çok etkili olduğuna bilmelidir. Çok fazla değişken GA yı kötüye götürebilir. Yakıt menzilini optimize etmek için arabanın büyüklüğü, motorun büyüklüğü, malzemelerin ağırlığı gibi değişkenler önemlidir. Boya rengi, far tipleri gibi diğer değişkenlerin yakıt menzili üzerinde etkisi oldukça azdır veya hiç yoktur. Bazen değişkenlerin doğru sayısı ve seçimi tecrübe veya deneme optimizasyon çalıştırması ile belirlenebir. 7
Değişkenlerin seçilmesi ve amaç fonksiyonu 0 w, x, y, z 10 Bütün değişkenleri 1 ila 10 arasında yer alan yukarıda verilen amaç fonksiyonu optimizasyon algoritmasına yardımcı olmak için basitleştirilmiştir. w ve z terimleri ilgili bölgede son derece küçüktür ve bunlar çoğunlukla göz ardı edilebilir. Çoğu optimizasyon problemlerinde kısıtlar veya değişken sınırı bulunur. Araba ağırlığının sıfır olması veya araba genişliğinin 10 m olması pratik olmayan değişken değerleridir. Ancak kısıtsız değişkenler her değeri alabilir. 8
Değişkenlerin seçilmesi ve amaç fonksiyonu Kısıtlı değişkenler üç şekilde karşımıza çıkarlar. 1) >, < ve >= <= operatörleri ile değişken üzerine uygulanır. Bir değişken sınırı aştığında değişken sınır değerine getirilir. Eğer x=11 olursa o zaman x=10 değerine eşitlenir. 2) Değişkenler doğal kısıtları içeren yeni değişkenlere dönüşebilir. Eğer x 0 ila 10 arasında sınırlara sahip ise o zaman x=5sin(y)+5 kısıtlı x değişkeni ve kısıtsız y değişkeni arasında bir dönüşüm olup kısıtlı optimizasyon problemini kısıtsız optimizasyon problemine dönüştürür. 3) Belli sayıda değişken değerler seti mevcut olabilir. Bütün değerler verilen bölgenin içinde olabilir. 9
Değişkenlerin seçilmesi ve amaç fonksiyonu Bağımlı değişkenler optimizasyon algoritmaları için özel problemler ortaya çıkarırlar. Zira değişen bir değişen aynı zamanda diğer değişkenin değerini de değiştirir. Örneğin otomobilin büyüklüğü ve ağırlığı bağımlıdır. Otomobilin büyüklüğünü arttırmak ağırlığını artırmak ile aynı şeydir (malzeme türü gibi başka faktörler değişmedikçe ). Diğer taraftan Fourier serisi katsayıları gibi bağımlı değişkenler birbirleri ile etkilemezler. Eğer 10 tane katsayı bir fonksiyonu ifade etmek için yetersizse daha fazlası diğer 10 adet katsayıyı tekrar hesaplamadan eklenebilir. GA literatüründe değişken etkileşimi epistasis (genlerin karşılıklı etkileşimi) olarak adlandırılır. 10
Değişkenlerin seçilmesi ve amaç fonksiyonu Epistasis yok denecek kadar az olduğunda minimum arayan algoritma en iyi sonucu verir. Epistasis orta ve yüksek düzeyli olduğunda GA daha iyi performans sergiler. Rastsal arama algoritmaları epistasis çok yüksek olduğunda en iyi performanslarını gösterirler. 11
Değişken kodlama ve kod çözme Değişken değerler binari olarak gösterildiğinden sürekli değerleri binariye dönüştüren veya tersi durum için bir yöntemin olması gerekir. Kuantizasyon (niceleme) sürekli değerlerin aralığını örnekler ve örneklediği numuneleri çakışmayan alt aralıklara ayırır. Daha sonra her bir alt aralığa farklı bir ayrık değer atanır. Gerçek fonksiyon değeri ile kuantizasyon seviyesi arasındaki fark kuantizasyon hatası olarak bilinir. 12
13 Değişken kodlama ve kod çözme
Değişken kodlama ve kod çözme Bessel fonksiyonu ve 6- bitlik kuantize edilmiş versiyonunun değişimi 14
Değişken kodlama ve kod çözme Yukarıda anlatılanlardan daha basit olarak binari bir sayı belli bir aralıktaki reel sayıya lineer ölçekleme ile kolayca dönüşebilir. Buna göre gerekli dönüşümü yapmak için N bitlik binari önce sayı aşağıdaki gibi 10 tabanlı pozitif bir tamsayıya dönüştürülür. l l -1...... 2 1 k 1 0 - - - - - - 0 1 x(k) z = l k=1 x(k) 2 k 1 r = mz + c r min = mz min + c r mak = mz mak + c 15
Değişken kodlama ve kod çözme Burada r min, r mak, z min ve z mak maksimum ve minimum olası reel ve pozitif tamsayılardır. 0000..0000 formunda gösterilen en küçük l bitlik binari sayının10 tabanlı sayı sisteminde karşılığı 0 olup bu durumda z min =0 dır. Z mak ise r z mak = 2 l 1 r mak r min 16 z min z mak z
Değişken kodlama ve kod çözme r mak r min = m(z mak z min ) m = r mak r min 2 l 1 m = r mak r min z mak z min c = r min + m z min c = r min r = r mak r min 2 l 1 z + r min 17
Değişken kodlama ve kod çözme Örnek: Verilen bir problemde x bilinmeyen parametresini temsil eden 10101 binari stringi 2,2 ila 3,9 arasında eşleştiriniz. x = (10101) 2 l = 5 bit z = 5 x(k) 2 k 1 k=1 = 1 2 4 + 0 2 3 + 1 2 2 + 0 2 1 + 1 2 0 = 21 r mak = 3,9 r min = 2,2 r = r mak r min 2 l 1 z + r min = = 3,3516 3,9 2,2 2 5 1 21 + 2,2 18
Hassasiyet Problemi Yukarıdaki örnekte 10101 binari sayısı 2,2 ila 3,9 arasındaki reel bir sayı ile eşleştirildi. Yukarıda verilen binari sayıdan sonra gelen 10110 sayısıdır. Bu sayının desimal karşılığı 22 olup aynı aralıkta bu sayıya karşılık gelen sayı ise 3,4065 reel sayısıdır. Bu 3,3516 ila 3,4065 arasında herhangi bir reel sayının mümkün olamayacağı problemini tanımlar. Bu tip sayı gösteriminde bu temel bir sorun teşkil eder. Karmaşık sayılı bilinmeyenlere sahip problemler reel ve imajiner kısımlar ayrı bir çift reel parametre olarak ele alınarak üstesinden gelinebilir. Ancak bu şekilde bilinmeyen sayısı ikiye katlanır. 19
Hassasiyet Problemi Hassasiyeti artırmanın tek yolu ya arama uzayını küçültmek ya da bilinmeyenleri temsil eden stringin bit uzunluğunu arttırmaktır. Bu problemi ortadan kaldırmak için farklı gösterimler kullanmak mümkündür ancak birçok problem için bunun gereksiz olduğu görülmüştür. Arama uzayını gereğinden fazla büyük yapılmaması ve uygun string uzunluğu seçilmesiyle gerek duyulan hassasiyet genellikle sağlanabilir. Çok fazla sayıda bilinmeyenli problemler için her bir değişken için mümkün olan en küçük string uzunluğunu kullanmak önem arz eder. 20
Çok Parametreleri Problemler Gösterim şekli birden daha fazla bilinmeyen içeren problemlere doğru genişletilmesi kısmen basit olduğunu doğrular. M adet bilinmeyen her biri l j uzunluğunda olan alt stringlerden oluşmuş olsun. L = M j=1 l j Bu alt stringler daha sonra birleşerek L uzunluğundaki bir popülasyon bireyini oluştursun. Örneğin verilen a ve b gibi iki bilinmeyenli bir problemin eğer çözüm için ilk tahmin a =10110 b=11000 ise daha birleşme ile olur. a b = 1011011000 21
Çok Parametreleri Problemler Bu noktada iki şey net olarak açıklamalıdır: İlki a ve b yi ifade etmekte kullanılan alt stringlerin aynı uzunlukta olmasına gerek yoktur. Bu farklı parametrelere atanmış hassasiyet derecesinin değişmesine yol açar ve aramayı hızlandırabilir. İkincisi genel olarak çaprazlama kesim noktası parametreler arasında olmayacağı ancak parametre içinde olacağı anlaşılmalıdır. Bunun GA ile ilgisi parametre stringlerinin parçalara ayrılması ve tekrar birleştirilmesinin olmadık biçimde rastgele aramadan çok daha fazla bir şeye yol açtığı gözükmektedir. 22
Çok Parametreleri Problemler Örnek: max f ( x, y) 21.5 x sin(4 x) y sin(20 y) 3.0 x 12.1 4.1 y 5.8 23
Çok Parametreleri Problemler Rastrigin Fonksiyonu Max( f (x, y ) 20 x 2 10 cos(2 x ) y 2 10 cos(2 y )) 5.12 x 5.12 5.12 y 5.12 24
Çok Parametreleri Problemler l l x l y 18 15 33 33bit 000001010100101001101111011111110 18bit 15bit 25
Doğal seçim Yeni popülasyonu oluşturmak için mevcut topluluktan çaprazlama ve mutasyon işlemine tabi tutulacak bireylerin seçilmesi gerekir. Teoriye göre iyi olan bireyler yaşamını sürdürmeli ve bu bireylerden yeni bireyler oluşturulmalıdır. Bu nedenle tüm seçilim yöntemlerinde uygunluk değeri fazla olan bireylerin seçilme olasılığı daha yüksektir. En bilinen seçim yöntemleri 1) Rulet Çemberi 2) Turnuva 3) Sıralama 26
Doğal seçim Bu seçimde bireylerin uygunluk değerlerine göre olasılıkları belirlenir. p i = f i / f j Burada p i i inci bireyin olasılık değeri, f i i inci bireyin uygunluk değeri ve f j ise toplam uygunluk değeridir. 27
Doğal seçim Bu seçim biçimi rulet çemberi mekanizması ile aynıdır. Her bir bireyin uygunluğunun toplam uygunluk değerine oranı olacak şekilde çember parçalara ayrılır. Daha sonra tekerlek döndürülür ve durduğu dilim çaprazlama için ebeveyn olarak seçilir. 28
Doğal seçim Bu seçim stratejisinin bazı dezavantajları vardır. 1) Minimizasyon problemlerinde kullanılmaz. 2) Popülasyon yakınsarken seçim baskısı kaybolur. 3) Olasılık değeri yüksek olan bireyin seçilmesine yatkınlık vardır. 29