GENETİK ALGORİTMALARA GİRİŞ (IV) 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ı Test Fonksiyonları Performans Ölçümü Yakınsama Ölçeklendirme Genetik Sürüklenme Şema Teorisi ve İşlemi 2
Temel Bilgiler Evrimden esinlenen ve kökeni bilgisayar biliminin ilk yıllarına giden genetik algoritma ilk olarak 1960 yılında John Holland tarafından keşf edilmiştir. Onun daha iyi bir arama ve optimizasyon algoritması bulmak için başlattığı araştırma amaçlanan hedefin ötesine geçmiştir. Böyle bir yöntemin evrimi araştırmak için hem doğal hem de yapay açıdan faydalı bir araç olduğu düşünülmüştür. Holland ın 1975 yılında yazdığı ve bugün güncellenmiş olan Adaptation in Natural and Artificial Systems/Doğal ve Yapay Sistemlerde Adaptasyon isimli kitabı hâlâ bir esin kaynağıdır. Holland, GA ı 1970 li yıllarda lisansüstü öğrencilerinin yardımı ile bir çok yönden geliştirmiş ve bu yöntemin nasıl çalıştığının anlaşılabilmesi için teorik bir çerçeve oluşturmuştur. 3
Temel Bilgiler Öyle ki; Şema Teorisi konusu hakkında birçok teorik çalışmanın temelini oluşturmuştur. GA yöntemi ile ilgili olarak bazı tartışmalı konuların olduğubilinmektedir. Bu konular hakkında akla gelen soruların cevapları söz konusu bu konuların çok daha fazla araştırılması ile tam olarak bulunabilir. GA yöntemi belli temelleri esas alır ve bu temeller iki ayrı biçimde ortaya çıkar. Bunlardan ilki süreçlerin matematiksel analizini oluşturmak, diğeri ise GA nın uygulandığı bazı problemlerin (özellikle zorluk yaşanabilecek problemler) özelliklerine sahip fonksiyonlar için bilgisayar simülasyonları kullanmaktır. Burada teorisyenlerden ziyade uygulamacıların GA nın teorik temeline fayda sağlayan yaklaşımları söz konusudur. 4
Temel Bilgiler Özellikle, GA'ların iyi performans gösterebilecekleri (hatta çalışabilecekleri) problem tipleri hakkında bilgi son derece yararlıdır. Bu algoritmaların geleneksel yöntemlerden daha iyi performans gösterebilecek derecede faydalı olacağı görülmelidir. Bu alanda yapılan çoğu çalışmalar için Foundations of Genetic Algorithms/Genetik Algoritmanın Temelleri adlı kitap serisine bakılabilir. Ancak GA ya yeni başlayanlar açısından burada verilen bilgiler yeterince teşvik edici olmayabilir. Bununla birlikte, GA nın öğrenilmesi ve anlaşılması konusunda harcanacak çaba buna değerdir. İlerleyen kısımlarda teorik ve uygulamalı yaklaşımlar ele alınacaktır. Teorik yaklaşım Goldberg'in popüler hale getirdiği Holland'ın orijinal Şema Teorisine dayanmaktadır. 5
Temel Bilgiler Uygulanan çalışma çoğu kez bazı test fonksiyonlarını çözmek için kullanılan GA yöntemindeki popülasyon sayısı, çaprazlama oranı, mutasyon oranı gibi iç parametrelerin sistematik ayarını esas almaktadır. Burada her iki yaklaşıma gereksinim duyulur; zira GA üzerine yapılan çoğu teorik çalışma binari alfabeye (sadece 0 ve 1 içeren string diziler), uygunluk-orantılı seçime ve pseudo boolean fonksiyonları (0 ve 1'ler kullanılarak ifade edilen fonksiyonlar) üzerine yoğunlaşır. Diğer taraftan uygulama yapanlar ise binari kodlama, gri kodlama, reel kodlama gibi bir çok gösterim biçimine ve seçim yöntemlerine ağırlık vermektedirler. Bu nedenle, algoritmalar arasında karar verme ve hangi ayarların seçileceği konusunda daha fazla dikkatli olmak gerekir. 6
Test Fonksiyonları Şema Teorisine bakmadan önce farklı parametre değerlerine ayarlanmış GA'ların performansını incelemek için bazı test fonksiyonlarını tanımak faydalı olacaktır. Bu fonksiyonlar sadece tarihsel ilgi uyandırmak için öne çıkarılmıştır fonksiyonlar değildir. Aksine bunlar, daha karmaşık fonksiyonlar ile birlikte genellikle kullanıcı tarafından geliştirilen kodların test edilmesine uygun hale getirilmiş fonksiyonlardır. Bu test fonksiyonları diğer yöntemler ile kolay kıyaslama yapılmasına imkan sağlamalarına rağmen gerçek dünya problemleri ile ilgileri oldukça az olabilir. Çoğu zaman bu fonksiyonlar gerçek problemleri ifade etmek için çok basit, çok sıradan ve küçük boyutlu kalır. Bu nedenle, hangi algoritmanın ya da ayarların en iyisi olduğu konusunda hemen bir sonuca varmak yanıltıcı olabilir. 7
Test Fonksiyonları Bäck bir çok önemli özellik içeren muhtelif sayıda fonksiyon grubu kullanılmasını önermiştir. Önerilen fonksiyonlar: 1. Boyutlarına göre ölçeklenebilir, yâni problemdeki M bilinmeyen sayısı isteğe göre değiştirilebilir olmalıdır. 2. Yakınsama hızının karşılaştırılması için tek tepe noktalı ve sürekli olmalıdır. 3. Herhangi bir yerel gradyan bilgisinin bulunmaması durumunda algoritmanın davranışını test etmek için farklı yüksekliklerde birçok düzlüğe sahip basamak fonksiyon içermelidir. 4. Karmaşıklığı farklılaştıran çok tepe noktalı fonksiyonları içermelidir. 8
Test Fonksiyonları GA yı araştıran çok sayıda araştırmacı olmasına rağmen, De Jong'un 1975 yılında yayınlanan Analysis of the Behaviour of a Class of Genetic Adaptive Systems/Genetik Adaptif Sistemler Sınıfının Davranış Analizi isimli yayınının önemli bir kilometre taşı olduğu görülmüştür. Bunun bir nedeni, her bir GA setini veya operatörünü her seferde dikkatli bir şekilde ayarlayarak bilgisayar deneylerini gerçekleştirme yöntemidir. Diğeri ise, GA'yı test etmek için seçtiği fonksiyonların veya problemlerin aralığıdır. Günümüzde bu fonksiyonlar GA nın başlangıç performans tahminini yapmak için halen kullanılmaktadır. Eğer kendi GA nızı yazıyorsanız bu fonksiyonların bir kaçını kodlamanız iyi olacaktır. Böylece belli bir plana göre ilerlemenizi kontrol etmek mümkün olur. 9
Test Fonksiyonları Kendinizin yazmadığı bir GA kullanıyorsanız bu fonksiyonlar verilen talimatları yerine getirip getirmediğini anlamak için uygun bir alıştırma olabilir. Evrimsel algoritmaların mekaniğini ve performansını bulan test fonksiyonları kullanma fikri günümüze kadar devam etmiştir. Mükemmel bir örnek olarak Bäck'in son kitabına (Evolutionary algorithms in theory and practice: evolution strategies, evolutionary programming, genetic algorithms, 1996) bakmak faydalı olacaktır. De Jong'un kullandığı test fonksiyon takımları birkaç boyutlu basit ünimodal fonksiyonlardan çok boyutlu oldukça karmaşık fonksiyonlara kadar değişiklik göstermiştir. Çoğu araştırma problemlerinin aksine, hepsi çok hızlı bir şekilde bilgisayarda hesaplanmış ve bunun sonucu çok sayıda jenerasyon ve deney kısa sürede gerçekleştirilmiştir. Bu fonksiyonlardan üçünün uyarlanmış versiyonları çizelge halinde listelenmiştir. 10
Test Fonksiyonları f = F 1 = 79 x j 2 3 j=1 5.12 x j 5.12 f = F 2 = 4000 100 x 1 2 x 2 2 + 1 x 1 2 2.048 x j 2.048 f = F 3 = 26 5 j=1 INT x j 5.12 x j 5.12 30 f = F 5 = A INT x j + 0.5 2 40 x j 60 j=1 11
Test Fonksiyonları f = F 4 = 0.5 sin x 1 2 2 2 + x 2 0.5 100 x j 100 1 + 0.001 x 2 2 2 1 + x 2 30 f = F 5 = A INT x j + 0.5 2 j=1 40 x j 60 12 -INT(-) fonksiyonu en yakın değere eşit veya yakın değere dönen tamsayıdır. -A maksimizasyon problemini güvence altına almak için seçilen bir sayısal bir değer.
13 Test Fonksiyonları
Test Fonksiyonları 14 -INT(-) fonksiyonu en yakın değere eşit veya yakın değere dönen tamsayıdır. -A maksimizasyon problemini güvence altına almak için seçilen bir sayısal bir değer.
Test Fonksiyonları Çeşitli test fonksiyonlarının uyarlanmış versiyonları: De Jong a ait olanlar (F1-F3), Davis (F4) ve Bäck (F5-F6). INT(-) fonksiyonu (-) ye eşit ya da daha düşük en yakın tamsayı değere döner. A, maksimizasyon problemini sağlamak için seçilmiştir. Bäck aynı zamanda Weierstrass- Mandelbrot fonksiyonunu temel alan ilginç bir fraktal fonksiyon da sunmuştur. Fraktal: Matematikte çoğunlukla birbirine benzer özellik gösteren karmaşık geometrik şekillerin ortak adıdır. (a) dan (d) e kadar olan şekiller çizelge halinde verilen test fonksiyonlarının 2 boyutlu versiyonlarından seçilmiştir. F1 den F3 e; (F4) ün global en uygunluğuna ilişkin kısmı. 15
16 Fraktal Geometrik Şekiller
17 Fraktal Geometrik Şekiller
Test Fonksiyonları a 18
Test Fonksiyonları b 19
Test Fonksiyonları c 20
Test Fonksiyonları d 21
GA Performansının Ölçülmesi De Jong, algoritmanın ilerlemesinde iki ölçüt kullanmıştır. Bunlar çevrimdışı ya da off-line ve çevrimiçi veya on-line performans ölçütleridir. Off-line performans (f off ) popülasyon içindeki en iyi bireye ait uygunluk değerine (f max ) ardışık ortalamasıdır. On-line performans (f on ) ise bütün uygunluk değerlerinin (f i ) jenerasyon boyunca hesaplanmış ortalamasıdır. Bu performans değerleri aşağıdaki ifade edilirler. f off g = 1 g g j=1 f max ( j ) f on g = 1 g g j=1 1 N N i=1 f i ( j ) 22
Performansın Ölçülmesi De Jong GA deneyleri için gerçekte altı algoritma veya üreme planı kullanmıştır. Ancak bu notlarda yapılan testler mutasyon oranının basit GA'nın yakınsama oranı üzerindeki etkisinin test edilmesi ile sınırlandırılmıştır. Bir diğer faydalı performans ölçütü ise V ile ifade edilen yakınsama hızıdır. V = ln fmax (g = G) f max (g = 0). Eğer hassas sonuçlar elde edilecekse bu tür performans ölçümleri Я (Rusça Ya diye telaffuz edilir) üzerinden ortalamasının alınması önemlidir. 23
Performansın Ölçülmesi Karmaşık multimodal fonksiyonlarda çok sayıda çalıştırma yaparak aynı optimum sonuç değerini bulmak pek olası değildir. Performansı değerlendirmenin bir yolu ise yerel en uygun değerlere ilişkin bulunan benzer değerlerin bulunma sayısını gösteren bir histogram grafiği çizmektir. Bu grafik P m 'nin f on veya f off yerine f max (popülasyondaki en uygun değer) üzerindeki etkisini göstermektedir. Genelde çizilen grafikte x ekseninde jenerasyon yerine amaç fonksiyon değer sayısının belirtilmesi daha uygundur. Bunun nedeni her jenerasyonda tüm bireyler için N nin değiştiği ya da f nin hesaplanmadığı testlerde bilgisayarlı hesaplamaya ilişkin daha iyi bir gösterim sağlamasıdır. 24
Performansın Ölçülmesi Eğer gerçekte P c << 1 ve P m 0 ise, o zaman her jenerasyonda çok az sayıda yeni yapılar oluşturulur. Her jenerasyonda bütün i ler için f i yeniden hesapladığından GA kullanışsız bir algoritma haline gelir. Grafikler farklı GA ayarlarının başarısının fonksiyona bağlı olduğunu göstermektedir. F 1 için P m = 0.3 değeri P m = 0.003 değerinden daha iyidir, F 3 için bunun tersi doğrudur. Diğer çalışmalarda N ve P c değerleri için benzer sonuçlar elde edilmiştir. İlginç olarak her bir ayar için en iyi değerin bağımsız tahmini her zaman optimal çözüm kümesini vermez. Sonuç olarak, GA parametrelerinin en uygun ayarlanmış seti mevcut değildir. Bazı setler bir fonksiyon ile daha iyi sonuçlar üretirken başka fonksiyonlarda o kadar iyi sonuçlar üretmez. Aynısı algoritmanın kendisi için de geçerlidir. 25
Performansın Ölçülmesi 26 Test fonksiyonu F 1 için f max işlemi ve P m ye ait çeşitli ayarlar (N = 20, P c =0.65, L=10, έ=1, Я=20)
Performansın Ölçülmesi 27 Test fonksiyonu F 3 için f max işlemi ve P m ye ait çeşitli ayarlar (N=20, P c =0.65, L=10, έ=1, Я=20)
Yakınsama Problemi Yukarıdaki deneyler, basit GA'nın test fonksiyonlarının yaklaşık en uygun değerlerini hızlı şekilde bulmasına rağmen ilerlemesi doğrusal şekilde olmamıştır. Başlangıçtaki ilerleme hızlıdır yani f max değerinin çok hızlı bir şekilde arttığı ancak sürdürülebilir ilermele olmadığı görülmüştür. Bu davranışın sebebi popülasyondaki genetik çeşitlilik seviyesine karşı jenerasyon grafiği çizildiğinde anlaşılabilir. Diğeri ise rulet çemberi seçimi ile ilerlemenin bir sonraki jenerasyondaki ilerleme ile benzerliğinin olmasıdır. İlk çalışma esnasında eğer en uygun birey üretilirse uygunluk orantılı seçim bu bireyin çok sayıda kopyası sonraki jenerasyonlara geçmesine imkan tanır. Böylece erken bir yakınsama sağlanır ancak yakınsanan değerin hatalı olma olasılığı yüksektir veya sadece yerel optimumdur. 28
Ölçeklendirme Uygulaması Diğer taraftan simülasyonun sonraki aşamalarında, bireylerin çoğunun benzer olması durumunda uygunluk orantılı seçim popülasyonda mevcut olan uygunluk aralığından yaklaşık eşit sayıdaki bireyleri seçecektir. Böylece iyi ile çok iyi arasında ayrım yapabilme durumu hemen hemen ortadan kalkacaktır. Bu durumda özellikle iyi bireylerin erken safhada popülasyondan atılmalarının engellenmesi ve son aşamalarda kısmen seçim baskısının sağlanmasını mümkün kılacak bir yönteme ihtiyaç duyulur. Bu bazı mekanizmalar ile gerçekleştirilebilir. Bunlardan bir tanesi Doğrusal Uygunluk Ölçeklemesinin kullanılmasıdır. Doğrusal uygunluk ölçeklemesi popülasyon bireylerinin uygunluk değerlerini ortalama popülasyon uygunluğu etrafında toplama esasına göre çalışır. 29
Ölçeklendirme Uygulaması Bu ortalama bireylerle karşılaştırıldığında en iyi bireylerin kopyalarının yaklaşık olarak sabit bir oranda seçilmelerini sağlar. C m olarak tanımlanan bu sabitin değeri 1.0 ile 2.0 aralığındadır. C m ikiye eşit olduğunda ortalamaları alınacak bireylerden ziyade bir sonraki jenerasyona gidecek en iyi birey sayısı ikiye katlanacaktır. Bunu gerçekleştirmek için her popülasyon bireyine seçimden önce doğrusal bir ölçeklendirme uygulanması gerekir. Bu ölçeklendirmenin dinamik olması önemlidir. Başlangıç aşamasında uygunlukların birbirlerine yakın olurken sonraki jenerasyonlarda bunlar birbirinden uzaklaşırlar. Bu açıklamalar doğrultusunda gerekli ölçeklendirme doğrusal dönüşüm kullanılarak gerçekleştirilir. 30
Ölçeklendirme Uygulaması f i s g = a g f i g + b g Burada f i i inci bireyin gerçek uygunluğu olup f i s ölçeklenmiş uygunluktur. Daha önce ifade edildiği gibi popülasyonun ortalama uygunluğu f ave nin değişmediği varsayılmıştır. Buna göre ortalama uygunluk f s ave g = f ave g olarak ifade edilir. İlave bir gerek şart olarak, Burada f s max en iyi bireye karşılık gelen ölçeklendirilmiş uygunluk değeridir. s f max g = c m g f ave g 31
Ölçeklendirme Uygulaması Dinamik a g ve b g katsayıları aşağıdaki gibi ifade edilebilir. a g = c m 1 f ave (g) f max g f ave (g) b g = 1 a g f ave g Ancak böyle bir dönüşüm negatif uygunluk değerleri üretebilir. Bu negatif değerler muhtelif şekillerde ortadan kaldırılabilir. En basit yol bunları sıfıra eşitlemektir. Basit GA da C m yi sıfıra eşitlemek ölçeklemenin uygulanmaması anlamına gelir. Birçok diğer ölçeklendirme prosedürü literatürde mevcuttur. 32
Ölçeklendirme Uygulaması Alternatif bir yaklaşım ise farklı bir seçim mekanizması kullanmaktır. Aşağıdaki örnekte görüldüğü gibi ölçeklendirme basit problemlerde bile önemli olabilmektedir. Basit GA, F = 1000 + sin(x) fonksiyonunu, 0 x π aralığında maksimize eden x in değerini bulabilir. Ancak bütün bireylerin performansları birbirlerine yakın olduğu için üzerlerinde çok az seçim baskısı olacaktır. Bu da algoritmanın oldukça yavaş ilerleyeceğini anlamına gelir. Yukarıda belirtildiği üzere daha iyi bireylerin seçim olasılıklarını artırmak için, uygunluk ölçeklendirmesi kullanılabilir. Ancak daha basit bir yaklaşımda ise f=f-1000 duyarlı aralığı garanti altına alan dinamik olmayan doğrudan basit uygunluk fonksiyonu ile olabilir. 33
Ölçeklendirme Uygulaması 34 Basit dinamik olmayan doğrudan uygunluk uyarlaması ile topluluk üyeleri arasındaki fark artışı. F=Kesikli çizgi, F-1000=Düz çizgi.
Ölçeklendirme Uygulaması 1001 1000+sin(x) 1001 1001 1001 1000 1000 1000 1000 0.0000 3.1400 Basit dinamik olmayan doğrudan uygunluk uyarlaması ile topluluk üyeleri arasındaki fark artışı. F=Kesikli çizgi, F-1000=Düz çizgi. 35
Ölçeklendirme Uygulaması 1.20 sin(x) 1.00 0.80 0.60 0.40 0.20 0.00 0.00 3.14 Basit dinamik olmayan doğrudan uygunluk uyarlaması ile topluluk üyeleri arasındaki fark artışı. F=Kesikli çizgi, F-1000=Düz çizgi. 36
37 Ölçeklendirme Uygulaması f=1000+sin(x) f1 f2 f3 f4 f5 f6 f7 f8 1001.00 1000.90 1000.00 1000.70 1000.20 1000.60 1000.30 1000.50 1000.80 1000.90 1000.20 1000.90 1000.80 1000.00 1000.60 1000.50 1000.10 1000.80 1000.90 1000.50 1000.80 1000.90 1000.60 1000.90 1000.10 1001.00 1000.10 1000.70 1000.10 1000.80 1000.20 1000.80 1000.90 1000.90 1000.10 1000.40 1000.60 1000.80 1000.40 1000.50 1000.50 1000.90 1000.20 1000.90 1000.90 1000.30 1000.90 1000.60 1000.40 1000.80 1000.80 1000.80 1000.90 1000.20 1000.90 1000.60 1000.60 1000.40 1000.90 1000.90 1000.90 1000.80 1000.50 1000.10 1001.00 1000.20 1000.90 1000.50 1000.40 1000.20 1000.80 1000.10 1001.00 1000.90 1000.60 1000.20 1000.80 1000.70 1000.40 1000.90 1000.90 1000.20 1000.80 1000.90 1000.20 1000.90 1000.20 1000.30 1000.10 1000.30 1000.80 1000.40 1000.10 1000.20 1000.90 1000.80 1000.30 1000.00 1000.90 1000.90 1000.20 1000.90 1000.10 1000.90 1000.50 1000.80 1000.10 1000.10 1000.20 1000.60 1000.20 1000.60 1000.90 1000.50 1000.90 1000.80 1000.60 1000.90 1000.90 1000.60 1000.90 1000.60 1000.50 1000.90 1000.50 1000.50 1000.80 1000.60 1000.20 1000.20 1000.90 1000.80 1000.30 1000.90 1000.90 1000.50 1000.70 1000.40 1000.90 1000.90 1000.90 1000.80 1000.50 1000.40 1000.50 1001.00 1000.90 1000.20 1000.10 1000.50 1000.90 1000.60
Ölçeklendirme Uygulaması: f=sin(x) 38 f1 f2 f3 f4 f5 f6 f7 f8 0.9780 0.6036 0.9934 0.9915 0.9450 0.9289 0.9243 0.9930 0.9930 0.8937 0.8706 0.9573 0.9573 0.9388 0.9450 0.9934 0.7889 0.2699 0.8736 0.7476 0.7889 0.9528 0.9528 0.9937 0.0552 0.7374 0.9450 0.8992 0.9419 0.9450 0.8992 0.9934 0.6789 0.1378 0.7374 0.9419 0.9930 0.9573 0.9934 0.9528 0.8354 0.6789 0.8992 0.6721 0.9419 0.7908 0.9450 0.8992 0.6698 0.9289 0.9289 0.9934 0.7476 0.9528 0.9934 0.9934 0.8598 0.4880 0.9289 0.5040 0.9255 0.9934 0.9243 0.9243 0.9760 0.2964 0.6182 0.5040 0.5119 0.9528 0.9528 0.9528 0.4960 0.0675 0.6349 0.7736 0.6206 0.9460 0.9289 0.9934 0.6560 0.1378 0.9450 0.9599 0.9528 0.9289 0.9450 0.9934 0.9573 0.7415 0.0430 0.9323 0.1134 0.9450 0.8992 0.9934 0.8001 0.6036 0.4880 0.9930 0.7456 0.9907 0.9289 0.9518 0.4907 0.9450 0.6133 0.9934 0.9573 0.9934 0.9934 0.9356 0.3111 0.4880 0.7476 0.7415 0.9907 0.9450 0.9528 0.9930 0.3660 0.6560 0.9450 0.9345 0.8992 0.9419 0.9934 0.9934 0.1378 0.6206 0.9923 0.9518 0.9243 0.9243 0.9289 0.4363 0.7374 0.9950 0.9289 0.9289 0.9934 0.4555 0.9934 0.9934 0.4880 0.2073 0.6789 0.7476 0.9934 0.9573 0.9528 0.9934 0.9903 0.8721 0.9950 0.6060 0.4363 0.9430 0.9944 0.9528
Ölçeklendirme Uygulamış: f=1000+sin(x) f1 f2 f3 f4 f5 fs1 fs2 fs3 fs4 fs5 1000.80 1000.30 1000.70 1000.80 1001.00 1059.10 669.69 999.70 1045.70 1192.70 1001.00 1000.50 1000.90 1000.50 1000.90 1190.30 855.04 1130.60 787.61 1125.70 1000.90 1000.50 1000.80 1000.80 1000.30 1110.80 845.30 1071.00 1045.70 478.59 1001.00 1000.50 1001.00 1001.00 1000.70 1167.70 841.38 1175.90 1197.70 891.44 1000.70 1000.90 1000.90 1001.00 1000.80 977.23 1112.90 1087.10 1194.90 1052.20 1001.00 1001.00 1000.90 1000.50 1000.70 1195.90 1177.10 1112.90 819.17 875.86 1001.00 1000.60 1000.80 1000.70 1000.80 1194.70 879.91 1025.50 948.73 1006.10 1000.80 1000.20 1000.80 1001.00 1001.00 1056.30 582.52 1048.20 1195.50 1200.20 1000.50 1000.70 1000.50 1000.80 1000.90 822.01 988.51 817.35 1021.80 1053.80 1000.30 1001.00 1000.80 1000.80 1000.90 631.58 1177.10 1023.90 1037.00 1053.80 1000.50 1001.00 1000.90 1000.60 1000.90 775.50 1177.10 1145.70 887.42 1053.80 1001.00 1000.70 1001.00 1001.00 1000.80 1189.10 960.51 1181.80 1195.50 1006.10 1000.30 1000.90 1000.80 1000.80 1001.00 673.16 1088.90 1040.80 1068.10 1201.00 1000.90 1000.80 1000.60 1000.90 1000.70 1083.10 1052.60 914.05 1083.90 952.61 1000.90 1000.70 1000.70 1001.00 1000.90 1153.00 960.51 994.71 1200.90 1055.40 1000.60 1000.90 1001.00 1000.60 1000.60 912.94 1129.40 1200.60 914.07 766.18 1000.40 1001.00 1000.80 1000.10 1000.80 747.23 1194.60 1045.30 488.43 1013.30 1000.80 1001.00 1000.00 1000.90 1001.00 1013.20 1177.10 416.23 1141.30 1193.10 1000.90 1001.00 1000.20 1000.70 1000.90 1147.00 1200.90 604.10 998.10 1060.10 39
40 Ölçeklendirme Uygulamış: f=1000+sin(x) function fs=scaling(f) cm=1.2;fs=f; fa=mean(f); fm=max(f); a=(cm-1)*fa/(fm-fa); b=(1-a)*fa; fs=a*f+b; %Kontrol için %fa=mean(f) %fsa=mean(fs) %fsm=cm*fa %fsm=max(fs)
Çeşitlilik miktarı (Ƞ max ) farklı şekillerde ölçülebilir. Bu kolayca hesaplanabilir değer olup en uygun birey ile popülasyondaki tüm diğer bireyler arasındaki genotipik benzerliğin string ifadesidir. ƞ max ı hesaplamak için en uygun stringdeki her bit diğer stringlerdeki aynı bit ile karşılaştırılır. Her eşleşen bit ƞ max değerini 1 artırır. Bütün pozisyonlar karşılaştırıldığında elde edilen değer diğer stringlerdeki toplam bit sayısına ((N-1)L) bölünerek normalize edilir. Örneğin, beş bit uzunluğundaki dört kromozomdan oluşan popülasyonu göz önüne alalım: 41 Genetik Kayma C 1 10110 C 2 01111 C 3 10110 C 4 11110
Genetik Kayma C 1 en yüksek uygunluk değerine sahip olsun. Buna göre ƞ max aşağıdaki gibi bulunur. C 1 10110 C 2 01111 C 3 10110 C 4 11110 2 + 1 + 3 + 3 + 2 4 1 5 = 11 15 = 0,73 ƞ max = 0,73 42
Genetik Kayma Daha önce kullanılan fonksiyonlardan biri için ƞ max grafiğinin çizimi uygunluk ölçeklendirmesi kullanılmazsa popülasyonun çeşitliliğinin hızlıca kaybolabileceğini gösterir. Aşağıda verilen grafiğe bakıldığında doğrusal uygunluk ölçeklendirmesi ile çeşitliliğin ilk bir kaç jenerasyonda daha yavaş azaldığı bu durumun daha iyi keşif yapma anlamına geldiği söylenebilir. Dikkat edilirse, ilerleyen jenerasyonlarda ƞ max seçim baskısı nedeniyle hemen hemen doğrusal bir biçimde artmaya devam ettiği görülmektedir. Yani daha iyi uygunluk değerleri bulmada daha başarılı olduğu söylenebilir. 43
Genetik Kayma 44 ƞ max benzerlik ölçüm işlemi. Ölçekleme ƞ max da daha doğrusal bir artış gerçekleştirir (f= x 5, 0 x π, N = 20, P c = 0.65, P m = 0.001, I = 10, έ = 0, c m = 0 ve 1.2, Я = 20).
Şema Teorisi Bu teori Holland tarafından bulunmuş ve Goldberg tarafından popüler hale getirilmiş bir yaklaşımdır. Şema belirli pozisyon benzerliğine sahip stringlerin alt kümesini tanımlayan sabit bir şablondur. Bu nedenle aynı şemaya sahip stringler belli bir noktaya kadar benzer bilgiler ihtiva edebilir. Burada bahse konu olan şema teorisinde şablonlar {0,1, #} ile gösteren binari alfabe kümesi dikkate alınacaktır. Herhangi bir string içinde bir pozisyondaki meta (#) sembolünün varlığı o pozisyondaki 0 veya 1'in mevcut olabileceğini ima eder. Örneğin, 101001 ve 111001 stringlerinin ikisi de 1##001şemasının örnekleridir. 45
Şema Teorisi Tersi durumda 010111 stringi içinde kalan iki şema örneği 01#111 ve #101## olarak ifade edilebilir. Birçok avantajından ötürü şemalar faydalı kavramsal bir araçlar olarak kabul edilir. Bunlardan biri kolay notasyonel uygunluğunun olmasıdır. Basit bir değişkenli bir problem düşünelim: Max ( f x = x 2 ) ; 0 x 511 Açıkça görülmektedir ki; x in maksimum olduğu zaman yâni x = 511 olduğunda f (x) maksimumdur. 511 sayısı binari olarak 111111111 ile ifade edilebilir. Binari sayıların yaklaşık 511'e eşit örnek şablonları şöyledir: 46
Şema Teorisi f(x)=x 2 fonksiyonunun jenerasyon sayısı ile değişimi. 47
Şema Teorisi 110101011 427 111110100 500 110001110 398 111011101 477 000011101 29 000000000 0 000001010 10 000010010 18 48
Şema Teorisi Bu stringlere baktığımızda açıkça görülmektedir ki; x e en yakın değerleri 11####### şablonu ifade etmek mümkündür. Bu şekilde 11####### gösterimi probleme en yakın optimal çözümü temsil eden çok sayıda binari diziler için uygun bir gösterim sağlar ve her bir string içerisinde çok sayıda şema bulunabilir. Örneğin, rastgele üretilen dört bitlik string göz önüne alındığında 1011 için olası tüm şemaların listesi 101#, 10#1, 1#11, #011, 10##, 1#1#, 1##1, #01#, #0#1, ##11, 1###, #0##, ##1#, ###1, #### ve 1011 (kendisi). Sonuç olarak toplam 2 4 = 16 giriş mevcuttur. L uzunluğundaki herhangi bir string için 2 L adet muhtemel şema vardır. Rastgele bir string için her bit 1 veya 0 veya # değerini alabilir. 49
Şema Teorisi 50 f(x)=x 2 fonksiyonunda x = 384 = (110000000) 2 doğrusu 11####### şemasını içeren herhangi bir stringin sahip olabileceği en düşük değerini ve dolayısıyla şemanın sınırını belirtir. Bu şemaya ait diğer tüm örnekler bu çizginin sağında bulunur.
Şema Teorisi 4 bit uzunluğundaki her bir string için 3 olasılık olduğundan toplamda 3x3x3x3=3 4 adet durum mevcuttur. 200 bit uzunluğunda bir string (birçok gerçek GA uygulamasında kullanılan bir sayıdır) için bulunması gereken 3 200 ( 3x10 95 ) şema vardır (10 80, evrendeki kararlı parçacık sayısı). Genel olarak bir alfabenin eleman sayısı (farklı karakter sayısı) k ise, (k + 1) L adet şema mevcuttur. N adet gerçek stringden oluşan bir topluluk için Nk L sayıda muhtemel şema vardır. Bir popülasyon içindeki şema sayısı bu iki nedenden ötürü bundan daha azdır. Birincisi bazı şemalar aynı anda farklı stringler ile gösterilebilirler. Örneğin N = 2, L = 3 olan {101, 111} popülasyonuna ait muhtemel bir şema tablosu aşağıdaki gibi olabilir. 51
Şema Teorisi 2 string ve L = 3 olan belirli bir popülasyon için muhtemel şemalar. c 1 =101 c 2 =111 #01 #11 1#1 1#1 10# 11# ##1 ##1 #0# #1# 1## 1## ### ### 101 111 52
Şema Teorisi Bu tablo 16 şema içerir (her string için 8), ancak yalnızca 8 tanesi benzersizdir ve diğer popülasyonlarda bu sayı daha az olabilir. Eğer N= 2 ve L = 3 ve olası bir popülasyon {111,000} için ### olarak sembolize edilen tek ve 15 benzersiz şema olacaktır. İkincisi, algoritmada tüm jenerasyon üyelerinin hepsi olmasa bile bazıları özellikle jenerasyon boyunca döngüye giren ve yakınsama noktasına yakın yerlerde benzersiz olabilirler. Böylece popülasyon içindeki şema sayısı jenerasyonlar ilerledikçe değişecek ancak daima Nk L değerinden küçük kalacaktır ancak tüm şemalar eşit sayıda değildir. Arama uzayı alanı içinde şema ile gösterilen ve bu alanın yeri şema içindeki meta sembollerin sayısına ve yerine bağlıdır. 53
Şema Teorisi 1 #### ve 0 #### gibi şemalar arama uzayında 1011 # veya 0010 # 'den çok daha geniş bölgeleri içerirler. Şema tipik olarak tanımlarındaki uzunluk ve sıralama kavramlarına göre sınıflandırılırlar. Şemalar tipik olarak uzunluk ve sıralama tanımlamaları ile sınıflandırılırlar. Bir S şemasının o mertebesi şema içinde meta sembol ile tanımlanmayan pozisyonların sayısıdır. o(s) = L m Burada m L uzunluğundaki stringin mevcut meta sembol sayısıdır. Bu nedenle şemanın mertebesi şema içindeki sabit pozisyonların sayısına eşittir. d gibi uzunluk tanımlaması ile string içerisindeki ilk ve son metasembol karakterler arasındaki mesafe ifade edilebilir. 54
Şema Teorisi Şemanın mertebesi şema içindeki sabit pozisyonların sayısına eşittir. S=#1#0#; o(s) = 5-3=2 S= 1101#; o(s) = 5-1=4 S= 11001; o(s) = 5-0= 5 S =#####; o(s) = 5-5= 0 Uzunluk miktarı string içerisindeki ilk ve son meta sembol olmayan karakterler arasındaki mesafedir. S = #1#0#; d(s) = 4-2 = 2 S= 1101#; d(s) = 4-1=3 S= 11001; d(s) = 5-1 =4 S= #####; d(s) = 0-0 = 0 55
Şema Teorisi Şemaların kapsadığı farklı bölgelerin görselleştirilmesi için bu gereklidir. Tek boyutlu bir problemde birkaç şemayı içeren bölgeler aşağıda gösterilmiştir. BKGA kullanılarak çözülen birçok problemin bundan daha fazla boyutu vardır. Ancak böyle bir uzay problem uzayındaki fiziksel bölgelere şemaların nasıl dönüştürüleceğine önemli bir katkı sağlar. Özellikle düşük dereceli şemalar geniş bölgelerini kapsarken yüksek dereceli şemalar daha küçük bölgeleri kapsar. Bir şemanın uzunluk ve derecesinin tanımlanması bu işin tamamı değildir. Aynı o ve d değerlerine sahip iki şema alanın çok farklı uzay bölgelerini kapsayabilir. ##0#0 ve 1#1## her ikisi de o = 2 ve d = 2'ye eşittir ancak çakışmazlar. Buna rağmen bir şemanın derecesi ve uzunluğu GA içinde hayatta kalma şansı için önemli göstergelerdir. 56
Şema Teorisi Şekil. ###1# çizimi ve f = x; 0 x 31 basit fonksiyonu. 57
Şema Teorisi Şekil. ##0#0 çizimi ve f = x; 0 x 31 basit fonksiyonu. 58
Şema Teorisi Şekil. 1#1## çizimi ve f = x; 0 x 31 basit fonksiyonu. 59
Şemanın İşlemi GA içinde herhangi bir string yıpratıcı bir süreçten geçebilir. Yâni, çaprazlama ile parçalanabilir, mutasyona maruz kalabilir veya en basitinden seçim operatörü tarafından popülasyon dışına atılabilir. Tüm bu olumsuzluklara rağmen, belirli bir şemanın örnek sayısının GA da çalıştırılması sırasında nasıl değişebileceğini tahmin etmek nispeten zor değildir. Bunu tahmin etmek optimizasyon rutinlerini içeren GA'nın neden başarılı bir şekilde kullanıldığı ve bazı problemlerin çözümünde neden zorluk yaşadığına ışık tutabilir. Burada önemle vurgulamak gerekir ki; GA nın stokastik doğası nedeniyle bulduğu sonuç sadece bir tahminden ibarettir. 60
Şemanın İşlemi Hesaplama şu şekilde gerçekleşir: g jenerasyonundaki popülasyonun belirli bir S şemasında bulunan örneklerin sayısı Φ ise : Φ (S, g) > 0 Φ(S, g + 1) > Φ(S, g) Φ tahmini şema sayısıdır. Ortalama olarak eğer Φ ortalama uygunluk değerinin üzerindeki stringleri gösteriyorsa, o zaman bu durum makul görülebilir. 61
Şemanın İşlemi Tersi durumda şemalar ortalama olarak düşük performans gösteren stringleri temsil eder ve bunların sayıları azalır. Daha doğrusu eğer seçim uygunluk orantılı olarak yapılırsa (örneğin, rulet çemberi seçimi ile) herhangi bir birey için (veya string için) seçme olasılığı P i (tek bir seçim olayı esnasında) şu şekilde hesaplanır. P i g = f i(g) N f i (g) j=1 Böyle bir sistemde şemalar bu seçim baskısına her bir şemanın örnekleri olan bu stringler aracılığıyla maruz kalır. 62
Şemanın İşlemi Eğer u(s, g) tüm S örneklerinin ortalama uygunluğu ise o zaman Φ S, g + 1 = u S, g f ave g Φ S, g O zaman yukarıdaki denklem (çaprazlama ve mutasyon etkilerini göz ardı edilmek suretiyle) şema büyüme denklemi olarak ifade edilebilir. Bir sonraki jenerasyonda herhangi bir S şemasına ait örnek sayısı mevcut jenerasyondaki u değerine bağlıdır. Belirli bir şemanın βƒ ave oranında ortalamanın üzerinde sabit kaldığı varsayılırsa, Φ S, g + 1 = f ave g + βf ave g f ave g Φ S, g 63
Şemanın İşlemi Φ S, g + 1 = (1 + β)φ S, g Φ S, g = (1 + β) g Φ S, g = 0 Bu daha iyi (daha kötü) performans şemalarının bir sonraki jenerasyonda üstel olarak artan (azalan) deneme sayıları alacağı anlamına gelir. Jenerasyon başına yalnızca N tane seçim olup (tüm jenerasyonun her bir jenerasyonda değiştiği varsayılarak) algoritma herhangi bir güçlük yaşamadan eşzamanlı üstel olarak artan (azalan) deneme sayısını büyük miktarda şema şablon sayısına (>> N) ayırır. 64
Çaprazlama Etkisi Çaprazlamayla bireysel şemalarda meydana gelen bozulmanın derecesi bu şemalarla ilişkilidir. String C1 = 000011100 aşağıda ifade edilen iki şemayı içerir (bir çoğunun arasından) S1 = 0#######0 ve S2 = ####11###. Eğer C1 diğer string C2 ile eşleşmek için seçilirse ve kesme noktası dördüncü ve beşinci bitler arasında olursa, C1 = 0000/11100 o zaman C2'nin yapısı ne olursa olsun S2 en azından çocuklardan biri olarak hayatta kalma mücadelesi verecektir. Halbuki S1 sadece eğer C2 iki değişmez dış pozisyonda aynı bit değerlerine sahipse hayatta kalacaktır. 65
Çaprazlama Etkisi Çoğu olası kesme noktası için S2 hayatta kalacağı ve S1 in hayatta kalamayacağı açıktır. Çünkü d1>>d2 olarak ifade edilmektedir. Daha spesifik olarak bir şemanın çaprazlama yoluyla yok olma olasılığı d(s)/(l-1) değerinden daha azdır. Bu nedenle verilen P c 'nin çaprazlama olasılığı bir sonraki jenerasyon için hayatta kalma şansı 1-P c d(s)/(l-1) den daha büyük veya eşittir. Bu azalmayı şema büyüme denklemine uygularsak aşağıdaki denklemi elde ederiz. Φ S, g + 1 = u(s, g) f ave g Φ S, g 1 P c d(s) L 1 66
Mutasyon Etkisi Hayatta kalmak için mücadele eden tek bir bitin mutasyona uğrama ihtimali şu şekildedir. 1 P m Şema derecesi ne kadar yüksek olursa, bozulma olasılığı da o kadar artar. Tanımlanmış o(s) bitleri ile tüm şemanın hayatta kalma olasılığı 1 P m o(s) olarak ifade edilebilir. Bunu şema büyüme denklemine uygularsak ve küçük terimleri ihmal edersek Φ S, g + 1 = u(s, g) f ave g Φ S, g 1 P c d(s) L 1 o(s)p m olarak ifade edilebilir. 67
Böylece sonraki jenerasyonlarda küçük, düşük mertebeli ve ortalamanın üstündeki şemalara üstel olarak artan deneme sayıları verilir. Böyle şemalar yapı blokları olarak adlandırılır. Yapı taşları hipotezi bitişik hale getirilmiş yapı taşları ile eldeki probleme oldukça uygun çözümler bulmaya çalışan GA ları ifade eder. 2L ve N2L arasında yer alan şemalar GA tarafından her bir jenerasyonda işleme tabi tutulur. Birçok şema mutasyon ve çaprazlama tarafından bozulur ancak uygun miktarda işleme tabi tutulması durumunda (örneğin üstel olarak artan oranda) bir alt sınırı tahmin etmek mümkün hale gelir. Bu üstel artış oranı N 3 mertebesinde olabilir. GA her jenerasyonda N 3 adet şemayı işleyebilir. Sadece N adet yapıyı işleme yeteneği örtük paralellik olarak adlandırılır. 68 Mutasyon Etkisi
Yanılgı Olgusu Yukarıda ifade edilenler, algoritmanın GA'yı yanıltan bazı yapı bloklarının olası olduğu problemlerle karşılaşabileceği durumları ve bunun sonucu olarak algoritmanın iyi sonuçlardan ziyade kötü sonuçlara yönlendirebileceğini göstermektedir. Örneğin bu durum f* fonksiyonu için C* = 000000 kromozomunda oluşsun. Buna göre, S1 = 00#### S2 = ####00 ortalamanın üzerinde çözümleri temsil ediyorsa, o zaman yakınsamanın garanti edildiği düşünülebilir. Oysa S1 ve S2 kombinasyonu S3=00##00 şemasından çok kötüdür. O nedenle C* in yapısı algoritma için zorluklara neden olabilir. 69
Yanılgı Olgusu GA'daki yanılgı belirli bir genin varlığının diğer lokasyonlarda genleri etkilediği biyolojik sistemlerdeki epistasis ile benzerlik göstermektedir. Elimizdeki probleme ait yeterli bilgi sayesinde yanılgıdan uzak duracak şekilde çözümler bulmak mümkündür. Bununla birlikte, birçok gerçek dünya problemi için bu görev problemin kendisini çözmek gibi karmaşıklığa sahip olabilir. 70
Diğer Teorik Yaklaşımlar Şema analizi, GA'nın son derece etkin bir arama algoritmasının temelini oluşturabileceğini göstermesine rağmen birçok soruyu cevapsız bırakmıştır. GA'ların gerçek dünya problemleri ile çalışmasında nasıl bir yaklaşımın olacağı konusunda halen tartışmalar devam etmektedir. Bir kesim seçim mekanizmasından ziyade çaprazlama üzerinde yoğunlaşmıştır. Gerçek dünya problemlerinin çözümünde kullanılan kodlama ve seçimler incelendiğinde çok sayıda şema oluşturması nedeniyle az sayıda eleman sayısı içeren alfabe (örneğin ikili) kullanımı ve uygunluk orantılı seçimi kullanılması yerine daha üstün kodlama ve seçim mekanizmalarının bulunması ve kullanılması gereklidir. 71
Ödev Aşağıda verilen test fonksiyonlarının global/lokal maksimumlarını BKGA kullanarak bulup N, L, P c, P m ve έ parametrelerinin etkisini belirleyiniz. N L P c P m έ 10, 30, 50 8, 10, 12 0.6, 0.7, 0.8 0.003, 0.03, 0.3 0,1 Test Fonksiyonu f = 100 + sin(x) Arama Uzayı 0 x j f = 79 x 2 5.12 x j 5.12 f = 4000 100 x 1 2 x 2 2 + 1 x 1 2 2.048 x j 2.048 f = 0.5 sin x 1 2 + x 2 2 2 0.5 1 + 0.001 x 1 2 + x 2 2 2 100 x j 100 72
Alıştırmalar 1. Aşağıda verilen test fonksiyonlarının global/lokal maksimumlarını BKGA kullanarak bulup N, L, Pc, Pm ve έ nin parametrelerinin etkisini belirleyiniz. 73