2. Özet
1) Genetik Algoritmalar (GA)
a) Tarihi bilgiler
b) GA Tanımı
c) Kullanım Alanları
d) GA bileşenleri
i. Popülasyon
ii. Çaprazlama
iii. Mutasyon
iv. Seçilim
e) Örnek uygulama
f) Kod örneği
2) Genetik Programlama
a) Kod örneği
b) Kullanım Alanları
3. GA Nedir?
Genetik algoritmalar, doğada gözlemlenen evrimsel sürece
benzer bir şekilde çalışan arama ve eniyileme yöntemidir.
Karmaşık çok boyutlu arama uzayında en iyinin hayatta
kalması ilkesine göre bütünsel en iyi çözümü arar.
Genetik algoritmalar problemlere tek bir çözüm üretmek
yerine farklı çözümlerden oluşan bir çözüm kümesi üretir.
Böylelikle, arama uzayında aynı anda birçok nokta
değerlendirilmekte ve sonuçta bütünsel çözüme ulaşma
olasılığı yükselmektedir.
4. Tarihi Bilgiler
1859: Charles Darwin tarafından doğal seçilim, kalıtım, evrim gibi terimler
tanımladı
1954: Bilgisayar simülasyonlarının evrimi 1954’lerin başlarında Nils Aall Barricelli,
çalışmaları ile başlamıştır. Princeton Üniversitesi (ABD)
1957: Alex Fraser ilk GA geliştirmiştir.
1966: Yapay zekanın bir parçası olarak, evrimsel hesaplama Lawrence J. Fogel
tarafından ortaya atılmıştır.
1970-75: GA, John Holland ve öğrencileri tarafından, Michigan Üniversitesi’nde
daha da geliştirilmiştir. ‘GA Babası’
1980 -90: GA ve Swarm Intelligence Method’un popülerliği arttı.
5. GA Kullanım Alanları
Bilim ve mühendislik yanında iş dünyasında geniş bir anlamda
kullanımı mevcut.
Bilim ve mühendislik
I. Optimizasyon ve arama problemlerinde
a) TSP
II. Planlama ve zaman çizelgeleme işlemlerinde
İş dünyası
I. eBay tarafından ürünleri öne çıkarmak için
II. GA dayalı müzik önerileri sunulması
6. Survival of the Fittest - Using Genetic Algorithm for Data Mining Optimization
Use Case Example
Apply GA to K-Means
Global Optimum
Standard K-Means
Local Optimum
+50% Accuracy
eBay GA Kullanımı
10. GA Sözde Kodu
produce an initial population of individuals
evaluate the fitness of all individuals
while termination condition not met do
select fitter individuals for reproduction
recombine between individuals
mutate individuals
evaluate the fitness of the modified individuals
generate a new population
End while
11. GA Örnek Uygulama
Max One : İkilik sayı sisteminden(1 ve 0) oluşan L
uzunluğunda ki string de bulunan 1 ifadesinin sayısının
maksimum yapılması problemini düşünelim
Tipik GA gerekli olanlar
I. Çözüm uzayının genetik temsili gösterimi
II. Çözüm uzayını değerlendirmek için uygunluk çözümü
12. GA : Genetik Temsili Gösterimi
Birey ikilik sayı sisteminin sayıları ile ifade edilir.
Örneğin;
L = 10 uzunluğu için bir bireyimizin temsili şu şekilde olabilir:
1 = 0000000001 (10 bit)
2 = 0000000010 (10 bit)
13. Algoritma: 1. Adım
produce an initial population of individuals
evaluate the fitness of all individuals
while termination condition not met do
select fitter individuals for reproduction
recombine between individuals
mutate individuals
evaluate the fitness of the modified individuals
generate a new population
End while
14. Başlangıç Popülasyonu
Popülasyon sayısını n ile ifade edecek olursak; bu örnek için n = 6
kişilik bir popülasyonumuz olacak.
Başlangıç popülasyonumuzu rastgele aşağıdaki gibi oluşturuyoruz.
s1 = 1111010101
s2 = 0111000101
s3 = 1110110101
s4 = 0100010011
s5 = 1110111101
s6 = 0100110000
15. Algoritma: 2. Adım
produce an initial population of individuals
evaluate the fitness of all individuals
while termination condition not met do
select fitter individuals for reproduction
recombine between individuals
mutate individuals
evaluate the fitness of the modified individuals
generate a new population
End while
16. Uygunluk Fonksiyonu: f()
Rastgele oluşturulan başlangıç popülasyonumuz:
s1 = 1111010101 f (s1) = 7
s2 = 0111000101 f (s2) = 5
s3 = 1110110101 f (s3) = 7
s4 = 0100010011 f (s4) = 4
s5 = 1110111101 f (s5) = 8
s6 = 0100110000 f (s6) = 3
---------------------------------------------------- = 34
17. Algoritma: 3. Adım
produce an initial population of individuals
evaluate the fitness of all individuals
while termination condition not met do
select fitter individuals for reproduction
recombine between individuals
mutate individuals
evaluate the fitness of the modified individuals
generate a new population
End while
18. Seçilim (1)
Daha sonra rulet tekerleği yöntemi ile uygunluk orantılı
seçim uygulayarak popülasyon sayısını arttırıyoruz.
Daha sonra birey çıkarma işlemini bir çok kere tekrar
ediyoruz en az başlangıç popülasyonun da bulunan birey sayısı
kadar.
Sonuç olarak ana popülasyon sayımıza geri dönüyoruz (n = 6)
Birey i seçilebilmek için şu
olasılığa sahip olacak :
i
if
if
)(
)(3
Bu alan uygunluk
değeri ile orantılı2
1
4
n
20. Algoritma: 4. Adım
produce an initial population of individuals
evaluate the fitness of all individuals
while termination condition not met do
select fitter individuals for reproduction
recombine between individuals
mutate individuals
evaluate the fitness of the modified individuals
generate a new population
End while
21. Çaprazlama (1)
Her bir çift için çaprazlama olasılığına göre çaprazlama
yapılıp yapılmayacağına karar veriyoruz.
Bu örnekte (s1`, s2`) ve (s5`, s6`) çiftelerini çaprazlama
uygulayacağımızı varsayalım.
Her bir çift için rastgele bir çaprazlama noktası
seçelim. Mesela ilk çift için 2, ikinci çift içinde 5 olsun.
23. Algoritma: 5. Adım
produce an initial population of individuals
evaluate the fitness of all individuals
while termination condition not met do
select fitter individuals for reproduction
recombine between individuals
mutate individuals
evaluate the fitness of the modified individuals
generate a new population
End while
25. Mutasyon (2)
Son olarak rastgele mutasyon uyguluyoruz. Küçük bir
olasılıkta (mesela 0.1) yeni hatalı bireylerin oluşmasını
sağlıyoruz.
Mutasyon’un amacı arama uzayında hareketi
sağlamaktır (local or global)
26. Algoritma: 6. Adım
produce an initial population of individuals
evaluate the fitness of all individuals
while termination condition not met do
select fitter individuals for reproduction
recombine between individuals
mutate individuals
evaluate the fitness of the modified individuals
generate a new population
End while
27. Yeni Popülasyonun Uygunluğu
Mutasyon uyguladıktan sonra:
s1``` = 1110100101 f (s1```) = 6
s2``` = 1111110100 f (s2```) = 7
s3``` = 1110101111 f (s3```) = 8
s4``` = 0111000101 f (s4```) = 5
s5``` = 0100011101 f (s5```) = 5
s6``` = 1110110001 f (s6```) = 6
---------------------------------------------------------- = 37
28. Örnek Sonucu
1 jenerasyonda toplam popülasyonun uygunluk değeri
34’den 37’ye yükselerek, yaklaşık olarak ~9% bir artış
göstermiş oldu
Bu noktada izlediğimiz bu adımları herhangi bir durma
koşulu ile karşılaşana dek devam ediyoruz.
31. Karşılaşılan Sorunlar
Temel implementasyonu seçmenin sorunları:
I. Genetik gösterim
II. Popülasyon büyüklüğü, mutasyon oranı, ...
III. Seçilim ve silme politikaları
IV. Çaprazlama, mutasyon operatorleri
Sonlandırma kriteri
Performans, ölçeklendirebilirlik
Çözüm sadece hesaplama fonksiyonu kadar iyi olabilir
(çoğunlukla en zor kısım)
32. Ne zaman GA?
Alternatif çözümler çok yavaş veya aşırı derece karışık
ise
Yeni yaklaşımları incelemek için keşifçi bir araca ihtiyaç
duyuluyorsa
Problem GA ile başarılı bir şekilde çözülmüş problem ile
aynı ise
Var olan bir çözümü melezleştirmek için
GA faydaları, temel sorun gereksinimlerini
karşılamalarıdır
33. Genetik Programlama
Genetik programlama(GP), evrimsel algoritma tabanlı
programlama metodolojisidir.
Genetik programlamada amaç evrim teorisinden esinlenerek
oluşturulan genetik algoritmalar kullanılarak kullanıcı
tarafından tanımlanmış görevlerin yerine getirilmesidir.
35. Fonksiyon Ağaçları İle GA Örneği
Ağaç şeklinde gösterilmiş
bir fonksiyona genetik
algoritma bileşenlerinden
çaprazlama uygulanması
örneği;
36. GP Kullanım Alanları
Bilim ve mühendislik
I. Fonksiyon ağaçlarının hesaplanması
II. Oyun ağaçlarında
I. Satranç
III. Ağaçlarla ifade edilebilen problemlerde diyebiliriz.
İş dünyası
I. Borsa
39. Referanslar
Clever Algorithms: Nature-Inspired Programming Recipes By Jason Brownlee PhD
(http://cleveralgorithms.com/)
Genetic Algorithms: A Tutorial By Dr. Nysret Musliu , Associate Professor Database
and Artificial Intelligence Group, Vienna University of Technology.
Introduction to Genetic Algorithms, Assaf Zaritsky Ben-Gurion University
Data Conference 2013, Or LeviData AnalystCatalog & ClassificationeBay
Structured Data
Genetic Algorithm https://en.wikipedia.org/wiki/Genetic_algorithm
Genetic Programming https://en.wikipedia.org/wiki/Genetic_programming
Genetic Algorithms for the Travelling Salesman Problem: A Review of
Representations and Operators, P. LARRA ˜NAGA, C.M.H. KUIJPERS, R.H. MURGA, I.
INZA and S. DIZDAREVI