Zeki Optimizasyon Teknikleri Genetik Algoritma (Genetic Algorithm) Doç.Dr. M. Ali Akcayol Genetik Algoritma 1970 li yıllarda John Holland tarafından geliştirilmiştir. 1989 yılında David E. Goldberg Genetik Algoritma Uygulamaları üzerine klasik eser olarak kabul edilen kitabını yayınladı. Popülasyon tabanlı algoritmadır. Her birey problemin çözümü olmaya adaydır. Stokastik algoritmadır. Çözümler genellikle bit dizileri olarak kodlanır. Bireyleri değerlendirme fonksiyonu probleme yönelik olarak çalışan en önemli kısımdır. 1
Terminoloji Popülasyon (Topluluk): Çözüm kümesini oluşturan bireylerin tümüdür. Kromozom: Çözüm için kullanılan bireyler. Gen: Kromozom içindeki anlamlı en küçük bilgidir. Locus: Kromozom içindeki gen in bulunduğu yerdir. Mutasyon: Bir kromozomda rastgele yapılan değişikliktir. iklikti Jenerasyon: Yeni bir topluluktur. Mating: Bireyler arasındaki eşlemedir. İşlemler Çözümün veya bireyin gösterimi ve başlangıç popülasyonunun oluşturulması Bireylerin değerlendirilmesi (Fitness function) Bireylerin i yeni topluluk l için i seçilmesi i Yeni bir jenerasyon oluşturma 2
Başlangıç popülasyonunu oluşturma Bilinen bir çözüm kümesi alınarak başlanabilir. Rastgele bireyler oluşturulur. Belirli kriterleri sağlayan bireyler oluşturulur. Popülasyondaki birey sayısı genellikle 100 ile 300 arasında seçilir. Bireylerin Değerlendirilmesi Kromozomların çözüme uygunluk değerleri belirlenir. Her problem için uygun bir değerlendirme fonksiyonu kullanılması gerekir. Probleme yönelik olarak çalışan kısımdır. Değerlendirme her yeni jenerasyonun tüm bireyleri için yapılır. 3
Yeni Popülasyon Oluşturma Birey seçme Elitizm Seçilen iki bireyi çaprazlama Bir bireyin herhangi bir gen inin mutasyon işlemiyle rastgele değiştirilmesi Yeni Popülasyon Oluşturma Birey seçme Deterministik Rulet tekerleği Rastgele Turnuva seçimi 4
Yeni Popülasyon Oluşturma Deterministik Birey seçme Belirli sayıdaki en iyi olan bireyler ile yeni popülasyon oluşturulur. Kötü bireyler yeni popülasyona aktarılmaz. Yeni Popülasyon Oluşturma Rulet Tekerleği ile Birey seçme Her bireyin çözüme uygunluk derecesi arttıkça yeni popülasyona p aktarılma şansı artar. Başlangıç Birey 1: f(x) = 45 Birey 2: f(x) = 21 Birey 3: f(x) = 9 Birey 4: f(x) = 75 Birey 1: 45 /(21+75+9+45) = 30% Birey 2: 21 /(21+75+9+45) = 14% Birey 3: 9 /(21+75+9+45) = 6% Birey 4: 75 /(21+75+9+45) = 50% B1=30% B2=14% B4=50% B3=6% Hareket 5
Yeni Popülasyon Oluşturma Rastgele Birey seçme Bireyin çözüme uygunluk derecesi seçilme şanslarını etkilemez. Birey 1: f(x) = 45 Birey 2: f(x) = 21 Birey 3: f(x) = 9 Birey 4: f(x) = 75 B2=25% B1=25% B3=25% B4=25% Başlangıç Hareket Yeni Popülasyon Oluşturma Turnuva seçimi Rastgele seçilen iki bireyden uygunluk derecesi yüksek olan bir sonraki popülasyona aktarılır. İşlem popülasyondaki kromozom sayısı kadar tekrarlanır. 6
Yeni Popülasyon Oluşturma Elitizm Belirli sayıdaki en iyi birey hiçbir işleme tabi tutulmadan doğrudan yeni jenerasyona aktarılır. Elit birey sayısı arttıkça çözümdeki çeşitlilik azalır. Elit birey alınmazsa yeni jenerasyonun en iyi bireyi bir önceki jenerasyonun en iyi bireyinden daha kötü olabilir. Yeni Popülasyon Oluşturma Seçilen iki bireyi çaprazlama Bir noktalı çaprazlama 01 111011 1 1 01 1101 1 1 0 1 1 1 0 1 1 0 1 1 1 1 0 1 Yeni iki birey Çok noktalı çaprazlama 0 1 1 1 1 0 1 0 1 1 1 0 1 1 0 1 1 1 0 0 1 0 1 1 1 1 1 1 Yeni iki birey 7
Yeni Popülasyon Oluşturma Seçilen iki bireyi çaprazlama (Devam) Çaprazlama noktaları rastgele seçilir. Yeni elde edilen iki bireyin ikiside yeni poülasyona aktarılabilir. Yeni elde edilen bireyden uygunluk seviyesi daha yüksek k olan alınabilir. Yeni Popülasyon Oluşturma Mutasyon Herhanbir bir kromozomdaki bir gen in sebep olmadan rastgele değiştirilmesidir. Mutasyon oranı genellikle 0.01 ile 0.0001 arasında seçilir. Yeni popülasyondaki bir bireyin her gen i için verilen oranda mutasyon olma olasılığı vardır. Mutasyon popülasyona çeşitlilik kazandırır. 0 1 1 1 1 0 1 0 1 1 1 0 0 1 8
Algoritmanın Çalışması 1. Başlangıç popülasyonunu oluştur 2. Popülasyondaki her kromozomu uygunluk fonksiyonuyla değerlendir 3. Yeni popülasyon için yeni kromozomlar oluştur (Seçme, Çaprazlama, Mutasyon, Elitizm) 4. Adım 2 ve 3 ü uygun bir çözüm bulununcaya kadar veya belirlenen iterasyona ulaşılıncaya kadar tekrarla 5. En iyi kromozomu çözüm olarak al Genetik Algoritma GA nın Performansını Etkileyen Faktörler Kromozom sayısı: Kromozom sayısını arttırmak çalışma süresini artırır. Azaltmak ise kromozom çeşitliliğini yok eder. Mutasyon Oranı: Kromozomlar birbirine benzemeye başladığında hala uygun çözüm bulunamadıysa mutasyon işlemi GA nın sıkıştığı yerden kurtulması için tek yoldur. Ancak yüksek bir değer vermek GA nın kararlı bir noktaya ulaşmasını engeller. Kaç Noktalı Çaprazlama Yapılacağı: Normal olarak çaprazlama tek noktada gerçekleştirilmekle beraber yapılan araştırmalar bazı problemlerde çok noktalı çaprazlamanın faydalı olduğunu göstermiştir. Çaprazlamanın sonucu elde edilen bireylerin nasıl değerlendirileceği: Elde edilen iki bireyin birden kullanılıp kullanılamayacağı bazen önemli olmaktadır. Uygunluk değerlendirmesinin yapılışı: Probleme tam uygun olarak oluşturulmamış bir değerlendirme fonksiyonu, çalışma süresini uzatmakta hatta çözüme hiçbir zaman ulaşılamamasına neden olabilmektedir. 9
Genetik Algoritma (Araştırma) Kaynaklar: 1. Goldberg, David E. Genetic Algorithms in Search, Optimization and Machine Learning, Addison-Wesley Pub. Co. 1989. ISBN: 0201157675 İnternet adresleri : http://garage.cse.msu.edu/ (GARAGe) http://www-illigal.ge.uiuc.edu/goldberg/d-goldberg.html(david Goldberg) http://www.genetic-programming.org/ http://www.sciencedirect.com http://www.scirus.com http://www.google.com.tr Genetik Algoritma Haftalık Ödev: Genetik Algoritma kullanılarak yapılmış bir makale bulup elde edilen sonuçları içeren bir rapor hazırlayınız. İncelenen makalede Genetik Algoritma kullanılmasının gerekçeleri, uygulamanın sonuçları değerlendirilecektir. - İncelenen makale son 5 yılda yayınlanmış olacaktır. - Makale Yurtdışında SCI te taranan bir dergide yayınlanmış olacaktır. - Hazırlanan rapora makalenin tam metnide eklenecektir. - Hazırlanan rapor ve makalenin tamamı diğer öğrencilerin hepsine e-postayla gönderilecektir. 10
Genetik Algoritma Gelecek Hafta Yapay Sinir Ağları (Artificial Neural Networks) 11