Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
GENETİK ALGORİTMALARA GİRİŞ
(I)
Nedim TUTKUN
Düzce Üniversitesi
Elektrik Elektronik Mühendisliği Bölümü
Düzce Üniversitesi
Elektrik&Elektronik Mühendisliği Bölümü
Konuralp 81620 Düzce
Bu notlar D. Coley ve S. Haupt’ın Kitaplarından Yararlanarak Hazırlanmıştır.
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
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
Giriş
7
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
Giriş
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
Bazı Uygulamalar
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
Arama Uzayı
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
Arama Uzayı
14
Arama Uzayı
Ş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 kabul edilebilir. Ancak
mimari tasarımda bu durum geçerli değildir.
15
Arama Uzayı
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.
16
Arama Uzayı
17
Arama Uzayı
Ş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 (𝒚) ile ölçülen (𝒚 ) arasındaki hata
objektif fonksiyon ile karakterize edilir.
18
Arama Uzayı
c=0 olması durumunda,
19
Arama Uzayı
𝛀 = 𝒚𝒋 − 𝒚𝒋𝟐
𝒏
𝒋=𝟏
𝒚𝒋 −𝒎𝒙𝒋 + 𝒄 𝟐
𝒏
𝒋=𝟏
𝒚𝒋 −𝒎𝒙𝒋 𝟐
𝒏
𝒋=𝟏
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
Arama Uzayı
21
Arama Uzayı
Ş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
Arama Uzayı
23
Arama Uzayı
Ş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 m1
ve m2 (Şekil 1.4’e bakın) olmak üzere 2 tahmini olsun.
24
Arama Uzayı
25
Arama Uzayı
Şekil 1.4
Eğer Ω (m1) > Ω (m2) ise m3= m2 + 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
Arama Uzayı
27
Arama Uzayı
Ş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 = a2 noktası için
başlangıç tahmininin yapılması elbette aranan (global) minimum değerin
(a*) bulunmasını sağlar. Ancak a= a1 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
Arama Uzayı
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
Arama Uzayı
30
Arama Uzayı
Şekil 1.6
31
Arama Uzayı
Şekil 1.6b –Matlab «peaks» fonksiyonu
32
Bazı Kaynak Kitaplar
33
Giriş
34
Giriş
35
Giriş
36
Giriş
37
Giriş
38
Giriş