SlideShare une entreprise Scribd logo
1  sur  39
Evrimsel Algoritmalar
İsmail Akbudak
151281011
4 Aralık, 2015
Ö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ı
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.
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ı.
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ı
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ı
Müzik Önerileri İçin GA Kullanımı
GA Akış Şeması
GA Bileşenleri
Mutasyon Çaprazlama
SeçilimPopülasyon
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
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ü
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)
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
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
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
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
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
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
Seçilim (2)
 Seçilimden sonra aşağıdaki popülasyonu elde ettiğimizi
varsayalım:
s1` = 1111010101 (s1)
s2` = 1110110101 (s3)
s3` = 1110111101 (s5)
s4` = 0111000101 (s2)
s5` = 0100010011 (s4)
s6` = 1110111101 (s5)
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
Ç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.
Çaprazlama (2)
 Çaprazlamadan önce:
s1` = 1111010101
s2` = 1110110101
s5` = 0100010011
s6` = 1110111101
 Çaprazlamadan sonra:
s1`` = 1110110101
s2`` = 1111010101
s5`` = 0100011101
s6`` = 1110110011
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
Mutasyon (1)
 Mutasyon uygulamadan önce:
s1`` = 1110110101
s2`` = 1111010101
s3`` = 1110111101
s4`` = 0111000101
s5`` = 0100011101
s6`` = 1110110011
 Mutasyon uyguladıktan sonra:
s1``` = 1110100101
s2``` = 1111110100
s3``` = 1110101111
s4``` = 0111000101
s5``` = 0100011101
s6``` = 1110110001
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)
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
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
Ö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.
Bireylerin Dağılım Grafikleri
Jenerasyon 0’da Bireylerin Dağılım
Jenerasyon N’de Bireylerin Dağılım
Ruby Kod Örneği
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)
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
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.
Örnek Bir Fonksiyon
Ağaç şeklinde gösterilmiş bir fonksiyon
Fonksiyon Ağaçları İle GA Örneği
Ağaç şeklinde gösterilmiş
bir fonksiyona genetik
algoritma bileşenlerinden
çaprazlama uygulanması
örneği;
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
Ruby Kod Örneği
Teşekkürler !
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

Contenu connexe

Tendances

Genetic algorithms
Genetic algorithmsGenetic algorithms
Genetic algorithmszamakhan
 
Genetic Algorithm by Example
Genetic Algorithm by ExampleGenetic Algorithm by Example
Genetic Algorithm by ExampleNobal Niraula
 
Adnan: Introduction to Natural Language Processing
Adnan: Introduction to Natural Language Processing Adnan: Introduction to Natural Language Processing
Adnan: Introduction to Natural Language Processing Mustafa Jarrar
 
Nature-Inspired Optimization Algorithms
Nature-Inspired Optimization Algorithms Nature-Inspired Optimization Algorithms
Nature-Inspired Optimization Algorithms Xin-She Yang
 
Introduction to Genetic algorithms
Introduction to Genetic algorithmsIntroduction to Genetic algorithms
Introduction to Genetic algorithmsAkhil Kaushik
 
Olasılık Dağılımları
Olasılık DağılımlarıOlasılık Dağılımları
Olasılık DağılımlarıGülşah Başol
 
Endüstri uygulamaları stajı
Endüstri uygulamaları stajıEndüstri uygulamaları stajı
Endüstri uygulamaları stajıHabip TAYLAN
 
Ayrık yapılar algoritmalar
Ayrık yapılar algoritmalarAyrık yapılar algoritmalar
Ayrık yapılar algoritmalarEmrah Gürcan
 
Introduction to Optimization with Genetic Algorithm (GA)
Introduction to Optimization with Genetic Algorithm (GA)Introduction to Optimization with Genetic Algorithm (GA)
Introduction to Optimization with Genetic Algorithm (GA)Ahmed Gad
 
ABC Algorithm.
ABC Algorithm.ABC Algorithm.
ABC Algorithm.N Vinayak
 

Tendances (20)

Genetic algorithms
Genetic algorithmsGenetic algorithms
Genetic algorithms
 
Genetic Algorithm by Example
Genetic Algorithm by ExampleGenetic Algorithm by Example
Genetic Algorithm by Example
 
Bat Algorithm
Bat AlgorithmBat Algorithm
Bat Algorithm
 
Genetic algorithm
Genetic algorithmGenetic algorithm
Genetic algorithm
 
Genetic algorithm
Genetic algorithmGenetic algorithm
Genetic algorithm
 
Bat algorithm
Bat algorithmBat algorithm
Bat algorithm
 
Adnan: Introduction to Natural Language Processing
Adnan: Introduction to Natural Language Processing Adnan: Introduction to Natural Language Processing
Adnan: Introduction to Natural Language Processing
 
Nature-Inspired Optimization Algorithms
Nature-Inspired Optimization Algorithms Nature-Inspired Optimization Algorithms
Nature-Inspired Optimization Algorithms
 
Introduction to Genetic algorithms
Introduction to Genetic algorithmsIntroduction to Genetic algorithms
Introduction to Genetic algorithms
 
Olasılık Dağılımları
Olasılık DağılımlarıOlasılık Dağılımları
Olasılık Dağılımları
 
BAT Algorithm
BAT AlgorithmBAT Algorithm
BAT Algorithm
 
Endüstri uygulamaları stajı
Endüstri uygulamaları stajıEndüstri uygulamaları stajı
Endüstri uygulamaları stajı
 
Genetic programming
Genetic programmingGenetic programming
Genetic programming
 
Firefly algorithm
Firefly algorithmFirefly algorithm
Firefly algorithm
 
Ayrık yapılar algoritmalar
Ayrık yapılar algoritmalarAyrık yapılar algoritmalar
Ayrık yapılar algoritmalar
 
Genetic Algorithm
Genetic AlgorithmGenetic Algorithm
Genetic Algorithm
 
Firefly algorithm
Firefly algorithmFirefly algorithm
Firefly algorithm
 
Introduction to Optimization with Genetic Algorithm (GA)
Introduction to Optimization with Genetic Algorithm (GA)Introduction to Optimization with Genetic Algorithm (GA)
Introduction to Optimization with Genetic Algorithm (GA)
 
Genetic Algorithms
Genetic AlgorithmsGenetic Algorithms
Genetic Algorithms
 
ABC Algorithm.
ABC Algorithm.ABC Algorithm.
ABC Algorithm.
 

En vedette

Genetik Algoritma Nasıl Çalışır
Genetik Algoritma Nasıl ÇalışırGenetik Algoritma Nasıl Çalışır
Genetik Algoritma Nasıl ÇalışırEmre Akadal
 
Evrimsel algoritma
Evrimsel algoritmaEvrimsel algoritma
Evrimsel algoritmaAhmet Kolcu
 
Çoklu Asansörler için bir Genetik Algoritma Önerisi, Kullanımın Yoğun Olduğu ...
Çoklu Asansörler için bir Genetik Algoritma Önerisi, Kullanımın Yoğun Olduğu ...Çoklu Asansörler için bir Genetik Algoritma Önerisi, Kullanımın Yoğun Olduğu ...
Çoklu Asansörler için bir Genetik Algoritma Önerisi, Kullanımın Yoğun Olduğu ...Mustafa Tanyer
 
Yapay arı kolonisi algoritması
Yapay arı kolonisi algoritmasıYapay arı kolonisi algoritması
Yapay arı kolonisi algoritmasıOrhan ERIPEK
 
Karınca kolonisi algoritması
Karınca kolonisi algoritmasıKarınca kolonisi algoritması
Karınca kolonisi algoritmasıOrhan ERIPEK
 
Karar ağaçlari
Karar ağaçlariKarar ağaçlari
Karar ağaçlarireyhan koç
 
Yzm 2116 Bölüm 1 - Veri Yapılarına Giriş
Yzm 2116  Bölüm 1 - Veri Yapılarına GirişYzm 2116  Bölüm 1 - Veri Yapılarına Giriş
Yzm 2116 Bölüm 1 - Veri Yapılarına GirişDeniz KILINÇ
 
Artificial bee colony (abc)
Artificial bee colony (abc)Artificial bee colony (abc)
Artificial bee colony (abc)quadmemo
 
Gestalt kurami
Gestalt kuramiGestalt kurami
Gestalt kuramimassive501
 

En vedette (12)

Genetik Algoritma Nasıl Çalışır
Genetik Algoritma Nasıl ÇalışırGenetik Algoritma Nasıl Çalışır
Genetik Algoritma Nasıl Çalışır
 
Evrimsel algoritma
Evrimsel algoritmaEvrimsel algoritma
Evrimsel algoritma
 
Çoklu Asansörler için bir Genetik Algoritma Önerisi, Kullanımın Yoğun Olduğu ...
Çoklu Asansörler için bir Genetik Algoritma Önerisi, Kullanımın Yoğun Olduğu ...Çoklu Asansörler için bir Genetik Algoritma Önerisi, Kullanımın Yoğun Olduğu ...
Çoklu Asansörler için bir Genetik Algoritma Önerisi, Kullanımın Yoğun Olduğu ...
 
Yapay arı kolonisi algoritması
Yapay arı kolonisi algoritmasıYapay arı kolonisi algoritması
Yapay arı kolonisi algoritması
 
Karınca kolonisi algoritması
Karınca kolonisi algoritmasıKarınca kolonisi algoritması
Karınca kolonisi algoritması
 
Karar ağaçlari
Karar ağaçlariKarar ağaçlari
Karar ağaçlari
 
Yzm 2116 Bölüm 1 - Veri Yapılarına Giriş
Yzm 2116  Bölüm 1 - Veri Yapılarına GirişYzm 2116  Bölüm 1 - Veri Yapılarına Giriş
Yzm 2116 Bölüm 1 - Veri Yapılarına Giriş
 
Artificial bee colony (abc)
Artificial bee colony (abc)Artificial bee colony (abc)
Artificial bee colony (abc)
 
MARKA OLUSTURMAK
MARKA OLUSTURMAKMARKA OLUSTURMAK
MARKA OLUSTURMAK
 
Araştirma teknikleri ders notu
Araştirma teknikleri ders notuAraştirma teknikleri ders notu
Araştirma teknikleri ders notu
 
Gestalt kurami
Gestalt kuramiGestalt kurami
Gestalt kurami
 
What is Big Data?
What is Big Data?What is Big Data?
What is Big Data?
 

Evrimsel Algoritmalar - Genetik Algoritma ve Genetik Programlama

  • 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ı
  • 7. Müzik Önerileri İçin 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
  • 19. Seçilim (2)  Seçilimden sonra aşağıdaki popülasyonu elde ettiğimizi varsayalım: s1` = 1111010101 (s1) s2` = 1110110101 (s3) s3` = 1110111101 (s5) s4` = 0111000101 (s2) s5` = 0100010011 (s4) s6` = 1110111101 (s5)
  • 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.
  • 22. Çaprazlama (2)  Çaprazlamadan önce: s1` = 1111010101 s2` = 1110110101 s5` = 0100010011 s6` = 1110111101  Çaprazlamadan sonra: s1`` = 1110110101 s2`` = 1111010101 s5`` = 0100011101 s6`` = 1110110011
  • 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
  • 24. Mutasyon (1)  Mutasyon uygulamadan önce: s1`` = 1110110101 s2`` = 1111010101 s3`` = 1110111101 s4`` = 0111000101 s5`` = 0100011101 s6`` = 1110110011  Mutasyon uyguladıktan sonra: s1``` = 1110100101 s2``` = 1111110100 s3``` = 1110101111 s4``` = 0111000101 s5``` = 0100011101 s6``` = 1110110001
  • 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.
  • 29. Bireylerin Dağılım Grafikleri Jenerasyon 0’da Bireylerin Dağılım Jenerasyon N’de Bireylerin Dağılım
  • 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.
  • 34. Örnek Bir Fonksiyon Ağaç şeklinde gösterilmiş bir fonksiyon
  • 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

Notes de l'éditeur

  1. 3