Bu notlar D. Coley ve S. Haupt ın Kitaplarından Yararlanarak Hazırlanmıştır. GENETİK ALGORİTMALARA GİRİŞ (I) 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
Konu Başlıkları Giriş Algoritmanın Tanımı ve Gelişimi Yöntemin Esasları İleri Düzey Operatörler Genetik Algoritmanın Kodlanması Genetik Algoritmanın Uygulanması 2
Giriş Genetik algoritmalar (GA) hem doğal seçim mekanizmasından hem de doğal genetik biliminden etkilenmiş sayısal optimizasyon algoritmalarıdır. Bu yöntem çok genel olup bir çok probleme uygulanabilecek kapasiteye sahiptir. Bazı yaklaşımların aksine, bu yöntemin yapabilecekleri nadiren bahis konusu olur ve günlük yaşam pratiğinde karşılaştığımız problemlerin çözümünde kullanılabilmektedir. Algoritmanın anlaşılması basit ve gerekli bilgisayar kodunu yazmak kolaydır. GA nın büyümekte olan birçok disiplini olmasına rağmen bu yöntem örneğin yapay sinir ağları kadar dikkat çekmemiştir. Bunun neden böyle olduğu anlamak zordur. 3
Giriş Bu gerçekte kendine özgü sınır tanımayan özellikleri olması nedeniyle veya güçlü bir metafor eksikliği olduğu için kesinlikle doğru değildir. Zira diğer gerçek dünya problemlerin çözümüne yardımcı olan Darwin ve benzerlerinin genelleyen fikirlerinden daha ilham verici ne olabilir? Bugün çevremizde gördüğümüz biyo çeşitliliği kimyasal bir düzensizlikten daha çok başka bir şey olarak başlayan evrim denen kavram bugün daha tesirlidir, eğer değilse etkileyici paradigma kompleks problemleri çözen değerler bütünüdür. 4
Giriş Birçok yollarla doğal seçim ve doğal genetik kavramının diğer problemlere uygulanma düşüncesi öyle barizdir ki birileri neden bunn daha denenmediğini merak edebilir. Gerçekten de öyle olmuştur. En başından beri bilgisayar bilimiyle uğraşanlar hayatın bir veya daha fazla özelliğini taklit eden sistemlerin vizyonuna sahiptirler. Pratik mühendislik optimizasyon problemlerini çözen çözümlerin popülasyonunu kullanma fikri 1950 ve 1960 larda birçok kez düşünülmüştür. Oysa GA özü itibarıyla bir kişi tarafından yani John Holland tarafından 1960 da icat edilmiştir. Onun böyle algoritmaları geliştirmesinin nedenleri bu kitabın ilgilendiği GA ile problem çözme biçiminin ötesine geçmiştir. 5
Giriş Onun 1975 te yazdığı Adaptation in Natural and Artificial Systems kitabı (son zamanlarda ekleri ile birlikte yeniden çıkmaktadır) vizyoner yaklaşımı nedeniyle özellikle okunmaya değerdir. De Jong diğerlerinden daha fazla örneğin yazmış olduğu Genetic Algorithms are NOT Function Optimizers başlıklı bir makalede GA nın sadece fiziksel bir sistemin modelindeki bir dizi bilinmeyen parametre setini tahmin eden güçlü bir yöntemden potansiyel olarak daha farklı bir şey olduğunu bize hatırlatmaktadır. Oysa bu kitapta GA nın bir çok farklı optimizasyon probleminde güçlü olan bu yanı çoğunlukla ilgimizi çekmektedir. 6
7 Giriş
Giriş Öyleyse GA nedir? GA aşağıda verilen özellikleri içeren tipik bir algoritmadır. 1. Bir problemin çözüm tahminlerinin popülasyonu veya sayısıdır. 2. Popülasyon içindeki bireysel çözümlerin ne kadar iyi veya kötü olduğunu hesaplayan bir yöntemdir. 3. Daha iyi çözümlerin parçalarını ortalama olarak daha iyi çözümler bulmak karıştıran bir yöntemdir. 4. Çözümler içindeki farklılığın daimi kaybını önleyen mutasyon operatörüdür. 8
Giriş Tipik olarak az sayıdaki bileşenle spesifik bir problemi çözen GA yı üretmenin ne kadar kolay olduğu fikrini veren bir başlangıç yapılabilir. Bunun için karmaşık bir matematik, zahmetli ve anlaşılmaz algoritmalar mevcut değildir. Oysa bunun dezavantajı GA nın tam olarak ne olduğunu belirleyen az sayıda zor ve katı kuralların varlığıdır. Konuyu daha ileriye getirmeden ve GA yı oluşmanın muhtelif yollarını tartışmadan önce GA nın başarılı bir şekilde uygulandığı problemlerin çeşitliliğinin bir örneği verilecek ve arama ve optimizasyon ifadesi ile neyin kastedildiği gösterilecektir. 9
Bazı Uygulamalar Geleneksel yöntemlerden ziyade GA nın kullanımı neden tercih ediliyor? Bunun yanıtlarından biri diğer yöntemlerin çözmekte zorlandığı karmaşık bir çok problemleri kolaylıkla çözebilme becerisini göstermesidir. Bunun örneklerinden bazıları bir çok lokal optimumların olduğu karmaşık arama uzayında büyük ölçekli kombinatoryal optimizasyon problemleri (gaz boru hatlarının güzergahının belirlenmesi) ve gerçek değerli parametre tahminlerinin yapılması (resim kayıtları) olarak verilebilir. GA birçok lokal optimumlara sahip arama uzayından en iyi çözümü bulma kabiliyetine sahip olup birçok bilim insanı ve mühendisin böyle bir algoritmayı kullanmasının ana sebeplerinden biri budur. 10
Bazı Uygulamalar GA nın başarılı bir şekilde uygulandığı problemlerin ve alanlar aşağıdaki gibidir. Görüntü işleme, elektronik eleman yerleştirme, lazer teknoloji, tıp, uzay gemisi yörüngeleri, zaman serisi analizi, katı-hal fiziği, astronomi, likit kristaller, robot bilimi, su şebekeleri, mimari yapı tasarımı, bilgisayar yazılım otomatik evrimi, estetik, iş idaresi planlaması, yüz tanıma, yapay zeka sistemlerinin (yapay sinir ağları vb.) eğitimi ve tasarımı, kontrol, elektromanyetizma, elektrik makinaları, güç elektroniği, yenilenebilir enerji, üç boyutlu protein yapılarının tahmini vb. 11
Bir optimizasyon probleminde eldeki problemi en iyi şekilde tarif eden çözümü bulup çıkarmak için muhtemelen sonsuz uzunluktaki mümkün olan çözümlerin listesi araştırılır. Bir uçağın kanadı tarafından üretilen kaldırma kuvvetini matematiksel model üzerinden maksimum yapan ayarlanabilir parametre setinin değerlerinin bulunmaya çalışılması buna bir örnek teşkil edebilir. Eğer a ve b gibi iki ayarlanabilen parametre olsaydı çok sayıda kombinasyon denebilir, her bir tasarım ile üretilen kaldırma kuvveti hesaplanabilir, a, b ve kaldırma kuvvetini sırasıyla x, y, ve z eksenleri üzerinde gösteren bir yüzey çizimi yapılabilirdi (Şekil 1.0). 12
Böyle bir çizim problemin arama uzayını temsil eder. Daha kompleks problemler için, yani iki bilinmeyenden daha fazlası, durumu görmek daha da zorlaşır. Ancak arama uzayı kavramı çözümler arasında mesafe ölçümü tanımlandığı müddetçe hala geçerlidir ve her bir çözüm problem içindeki başarı ölçütü veya uygunluk olarak tayin edilir. Daha iyi performans gösteren veya daha uygun çözümler bir müddet sonra arama uzayında tepe noktaları daha kötü çözümlerse arama uzayında alt noktaları teşkil edecek veya uygunluk değerlerinden oluşan bir görüntü ortaya çıkaracaktır. 13
14 Şekil 1.0
Bu şekilde uzaylar veya görüntüler sürpriz bir şekilde karmaşık bir topoğrafya meydana getirir. Hatta basit problemler için bile yükseklikleri değişen birçok tepe noktaları oluşur ve tüm ölçek üzerinde birbirinden vadiler ile ayrılırlar. En yüksek tepe genellikle global maksimum veya optimum olarak adlandırılır, daha küçük tepe noktaları ise lokal maksimum veya optimum olarak refere edilir. Birçok arama problemi için amaç global optimumu doğru şekilde bulmaktır ancak bu o şekilde gerekmeyebilir. Bazı durumlarda, örneğin gerçek zamanlı kontrolde uygunluğun belli değerinin üstündeki herhangi bir noktanın bilinmesi mimari tasarımda bu durum geçerli değildir. kabul edilebilir. Ancak 15
Birçok geleneksel algoritmanın neden zorluklarla karşılaştığını görmek için bu şekildeki arama uzaylarında global optimumun aranması söz konusu arama uzayındaki özelliklerin nasıl oluştuğunu anlamayı gerektirir (Şekil 1.1). Şekilde verilen deneysel veriyi düşünelim. Burada x bağımsız değişkeninin muhtelif noktalarında y bağımlı değişkeninin ölçümleri bulunmaktadır. Bariz bir şekilde x ve y arasında bir bağıntının olabileceğine dair bir delil mevcuttur. Bu bağıntı olarak ifade edilsin. y j = mx j + c 16
17 Şekil 1.1
Ancak m ve c değerleri ne olmalıdır? Eğer x=0 iken y=0 olduğunu gösteren bir neden varsa o zaman c=0 ve m sadece ayarlanması gereken bir parametre veya bilinmeyendir. m değerini bulmanın bir yolu bir cetvel kullanarak noktalar arasından en iyi doğruyu göz ile tahmin etmektir. Böylece m nin değeri doğrunun eğimi ile verilir. Ancak bunun için daha doğru yaklaşımlar mevcuttur. m nin en iyi tahminini bulmanın bilinen nümerik yöntemi en küçük kareler tahmini ile olur. Bu teknikte tahmin edilen (y) ile ölçülen (y) arasındaki hata objektif fonksiyon ile karakterize edilir. 18
Ω = n j=1 y j y j 2 n j=1 y j mx j + c 2 c=0 olması durumunda, n j=1 y j mx j 2 19
Esasen bu yöntem basit bir şekilde y nin ölçülen değerleri ile (1.1) ile tahmin edilen (Şekil 1.2) değerler arasındaki dikey mesafelerin karelerinin toplamını hesaplar. Bu mesafelerin toplamı minimum olduğunda Ω minimum olacaktır. Bu minimum değeri veren m değeri m in en iyi tahmini değeridir. Bu Ω un en düşük değerini bulma probleminin hâlâ çözülmediğini gösterir. Bunu yapmanın bir yolu (az sayıda veriye sahip basit bir problem için oldukça makul bir yaklaşımdır) bilgisayar kullanarak m nin iyi ayarlanmış tablo değerleri üzerinden Ω yı hesaplamaktır. Daha sonra Ω un en küçük değerini veren m değerini kolayca seçin. 20
21 Şekil 1.2
Bu yaklaşım problemin arama uzayı görüntüsünü (Şekil 1.3) oluşturan Şekil 1.1 in veriler ile beraber kullanılmıştır. m e ait en iyi değer m = m* 1.1 olduğu açıktır. Burada yıldız işareti parametreye ait optimal değeri göstermektedir. Bilinmeyen parametre veya parametreleri tahmin ederek çok fazla sayıda bilinmeyen değerle kolayca problemi çözen bu yaklaşım sayısallaştırılmış arama olarak adlandırılır. Şayet görece olarak az sayıda bilinmeyen parametreler varsa bu yaklaşım gerçekten faydalı olacaktır ve Ω değeri hızlı bir şekilde tahmin edilebilir. Örnek olarak, böyle bir yaklaşım niçin belli büyüklükteki problemlere hızlıca uygulanabilir olduğu aşağıdaki örnek üzerinden düşünelim. 22
23 Şekil 1.3
On tane bilinmeyeni ve her biri yüzde birlik doğruluk gerektiren bir problemde sonuca ulaşmak için 1020 adet tahmin yapılması gerekir. Bilgisayar saniyede 1000 tahmin yapsa bile cevabı bulunabilmesi için 3x109 yıl geçmesi gerekecektir. Verilen çoğu problem için 10 çok fazla sayıda bilinmeyen değildir, yüzde birlik doğruluk seviyesi çok rağbet gören hassasiyet değildir ve saniyede 1000 işlem birçok problem için hatırı sayılır bir değerdir. Bütün bunlar daha iyi bir yaklaşımın bulunması ihtiyacını ortaya koymaktadır. Şekil 1.3 e dönersek, eğri şeklinin kısa bir değerlendirilmesi başka bir yaklaşımı önermektedir. Buna göre m in m 1 ve m 2 (Şekil 1.4 e bakın) olmak üzere 2 tahmini olsun. 24
25 Şekil 1.4
Eğer Ω (m 1 ) > Ω (m 2 ) ise m 3 = m 2 + olan başka bir tahmin yapın veya diğer tarafa yönelin. Burada m den çok küçük bir sayıdır. değerini ayarlamanın yolu uygun dinamik değerler vermektir. Böylece bu yöntem m* değerine doğru hızlı bir şekilde yoğunlaşacaktır. Böyle bir yaklaşım doğrudan arama olarak tanımlanmıştır (Zira bu yöntem türev veya başka bilgiler kullanmamaktadır). Verilen problem minimizasyon problemlerinden biridir. Eğer 1/Ω çizilseydi problem maksimizasyon problemlerinden birine dönüşecekti ve bulunmak istenen, tepenin en üst noktası olacaktı. Maalesef, bu gibi yöntemler genele tümüyle uygulanamaz. Ayarlanabilen tek bir a parametresi olan farklı bir problem verildiğinde Ω Şekil 1.5 de gösterilen değişimi yapabilir. 26
27 Şekil 1.5
İster yukarıda ana hatları verilen doğrudan arama algoritması, isterse basit hesap temelli bir yaklaşım kullanılsın, a nın nihai tahmin değeri algoritmanın başladığı arama uzayına bağlıdır. a = a 2 noktası için başlangıç tahmininin yapılması elbette aranan (global) minimum değerin (a*) bulunmasını sağlar. Ancak a= a 1 alınırsa o zaman sadece yerel minimum (a**) noktasına ulaşılır. Bu da önemli bir soruna işaret eder. Arama algoritması ile üretilen sonuçlar başlama noktasına bağlıysa, o zaman üretilen cevaplara duyulan güven azalır. Verilen örnekte, bu problemin başka bir çözüm yolu problemi çözmeye bir gurup noktadan başlamak olabilir. 28
Buna göre bilinen en küçük minimum değerin doğru global minimum değer olduğunu farz edelim. Bu çoğunlukla benimsenen bir stratejidir. Şekil 1.5 çok basit bir arama uzayını göstermektedir. Çok daha karmaşık bir uzayda (Şekil 1.6 gibi) çok sayıda lokal optimumlar olabilir ve bu yaklaşım o zaman daha gerçekçi olur. Öyleyse bu karmaşık uzayların üstesinden nasıl gelinebilinir? Bu konuda olası çok sayıda yaklaşım önerilmiş ve rastgele arama ve benzetim tavlaması gibi yöntemler faydalı bulunmuştur. Genetik Algoritmaların bileşenleri olan doğal seçim ve doğal genetiği içeren analojilerin yönlendirdiği rastsal aramaların başarılı ve güçlü yöntemler olduğunu kanıtlamıştır. 29
30 Şekil 1.6
31 Şekil 1.6b Matlab «peaks» fonksiyonu
32 Bazı Kaynak Kitaplar
33 Giriş
34 Giriş
35 Giriş
36 Giriş
37 Giriş
38 Giriş