GENETİK ALGORİTMA AŞAMALARI
Genetic Algorithm (GA) Optimization – Step-by-Step Example with Python Implementation
Ahmed Fawzy Gad (Presentation)
Denklemde katsayıların (ağırlıkların) belirlenmesi ?
w1, w2, w3, w4, w5, w6 = ?
f(c) = | (w1x1 + w2x2 + w3x3 + w4x4 + w5x5 + w6x6) - 44.1 | Fitness Objective Function
f(x) = 1/f(c) Fitness Function (Uygunluk Fonk.)
f(x) = 1/(1+f(c)) Fitness Function
f(x) = 1/(1+f(x)) Fitness Function / Probability
p(x) = 1/(1+f(c)) Fitness Probability
p(x) = 1/(1+f(x)) Fitness Probability
P(x) = 1/Sf(x) Chromozone's Probability
P(x) = 1/Sp(x) Chromozone's Probability
1.Step Başlangıçta Kromozonlar ve Genleri random olarak oluşturulur.
x1 x2 x3 x4 x5 x6 y
Veri 4 -2 7 5 11 1 44,1
Bu analizde F(c) veya P(x) kullanılmaktadır.
Population Kromozon w1 w2 w3 w4 w5 w6 y F(c) F(x) F'(x) P(x)
1 2,4 0,7 8 -2 5 1,1 110,3 66,2 0,015 0,0149 10,8%
2 -0,4 2,7 5 -1 7 0,1 100,1 56,0 0,018 0,0175 12,7%
3 -1 2 2 -3 2 0,9 13,9 30,2 0,033 0,0321 23,2% 2. En iyi kromozon
4 4 7 12 6,1 1,4 -4 127,9 83,8 0,012 0,0118 8,5%
5 3,1 4 0 2,4 4,8 0 69,2 25,1 0,040 0,0383 27,7% 1. En iyi kromozon
6 -2 3 -7 6 3 3 3 41,1 0,024 0,0238 17,2% 3. En iyi kromozon
SUM= 302,4 0,1422 0,1383 100%
Karıştırılacak Kromozomların belirlenmesi: [ En iyi 3 kromozon Kromozon Çiftleri oluşturmak amacıyla seçilir. ]
Kromozon w1 w2 w3 w4 w5 w6
3 -1 2 2 -3 2 0,9 2. En iyi kromozon
5 3,1 4 0 2,4 4,8 0 1. En iyi kromozon
6 -2 3 -7 6 3 3 3. En iyi kromozon
Karıştırılacak olan Kromozomların Eşleştirilmesi : (1-2) (2-3) (3-1) --> Bu kural GA'nın tüm iterasyonlarında aynı şekilde kullanılır.
w1 w2 w3 w4 w5 w6
1 -1 2 2 -3 2 0,9
2 3,1 4 0 2,4 4,8 0 1.Gen 2.Gen 3.Gen
2 3,1 4 0 2,4 4,8 0
3 -2 3 -7 6 3 3
3 -2 3 -7 6 3 3
1 -1 2 2 -3 2 0,9
Karıştırma (Crossover) : [ Yarıya böl ve Çarpraz karıştır ]
w1 w2 w3 w4 w5 w6
1 -1 2 2 -3 2 0,9
2 3,1 4 0 2,4 4,8 0
2 3,1 4 0 2,4 4,8 0
3 -2 3 -7 6 3 3
3 -2 3 -7 6 3 3
1 -1 2 2 -3 2 0,9
Çocuklar (Offspring) :
w1 w2 w3 w4 w5 w6
1 -1 2 2 2,4 4,8 0 
2 3,1 4 0 -3 2 0,9
3 3,1 4 0 6 3 3 
4 -2 3 -7 2,4 4,8 0
Fitness(Uygunluk)
Fonksiyonu&
Olasılığı
En iyi kromozonlar belirlenir
Parent
(Eski
Nesil)
Offspring
(Yeni
Nesil)
KURAL : Seçim sadece Eski Nesil veya Yeni
Nesil bireylerinden oluşamaz. İkisinin
karması olması gereklidir.
Eşleştirme Kriteri
C:UsersTOSH
DesktopZAIM
SunumlarYapay
5 -2 3 -7 -3 2 0,9 
6 -1 2 2 6 3 3
Mutasyon : Her kromozon çiftinden birincisi alınır ve bunun 5.geninde mutasyon yapılır.
w1 w2 w3 w4 w5 w6
-1 2 2 2,4 2,4 0 5.Genlerdeki değerler 2'ye bölünerek değiştirilir.
3,1 4 0 6 1,5 3
-2 3 -7 -3 1 0,9
Yeni Kromozonlar (Sonraki Jenerasyon için) :
Population Kromozon w1 w2 w3 w4 w5 w6
1 -1 2 2 -3 2 0,9 2. En iyi kromozon
2 3,1 4 0 2,4 4,8 0 1. En iyi kromozon
3 -2 3 -7 6 3 3 3. En iyi kromozon
4 -1 2 2 2,4 2,4 0 Mutasyona uğramış kromozon
5 3,1 4 0 6 1,5 3 Mutasyona uğramış kromozon
6 -2 3 -7 -3 1 0,9 Mutasyona uğramış kromozon
2.Step
x1 x2 x3 x4 x5 x6 y
Veri 4 -2 7 5 11 1 44,1
Population Kromozon w1 w2 w3 w4 w5 w6 y F(c) F(x) F'(x) P(x)
1 -1 2 2 -3 2 0,9 13,9 30,2 0,033 0,032 0,031
2 3,1 4 0 2,4 4,8 0 69,2 25,1 0,040 0,038 0,037
3 -2 3 -7 6 3 3 3,0 41,1 0,024 0,024 0,023
4 -1 2 2 2,4 2,4 0 44,4 0,3 3,333 0,769 0,742 1. En iyi kromozon GA rastgele tabanlı bir optimizasyon tekniğidir. Yeni kromozonların eski kromozonlara göre
5 3,1 4 0 6 1,5 3 53,9 9,8 0,102 0,093 0,089 2. En iyi kromozon daha iyi olacağının garantisi yoktur. En azından eski kromozonların tutulması sonuçları kötüleştirmekten
6 -1 2 2 6 1,5 3 55,5 11,4 0,088 0,081 0,078 3. En iyi kromozon korur.
SUM= 117,9 3,620 1,037 1,000 Karıştırılacak kromozonların seçiminde hepsi
mutasyona uğramış krımozonlar olmamalı.
Karıştırılacak Kromozomların belirlenmesi: [ En iyi 3 kromozon Kromozon Çiftleri oluşturmak amacıyla seçilir. ] Bu yüzden 3.En iyi kromozon yerine eski
kromozonların en iyisi seçilir.
Kromozon w1 w2 w3 w4 w5 w6
2 3,1 4 0 2,4 4,8 0 Eski Populasyondan En iyi Kromozon
4 -1 2 2 2,4 2,4 0 1. En iyi kromozon
5 3,1 4 0 6 1,5 3 2. En iyi kromozon
Karıştırılacak olan Kromozomların Eşleştirilmesi : (1-2) (2-3) (3-1) --> Bu kural GA'nın tüm iterasyonlarında aynı şekilde kullanılır.
w1 w2 w3 w4 w5 w6
1 3,1 4 0 2,4 4,8 0
2 -1 2 2 2,4 2,4 0 1.Gen 2.Gen 3.Gen
2 -1 2 2 2,4 2,4 0
3 3,1 4 0 6 1,5 3
3 3,1 4 0 6 1,5 3
1 3,1 4 0 2,4 4,8 0
Karıştırma (Crossover) : [ Yarıya böl ve Çarpraz karıştır ]
w1 w2 w3 w4 w5 w6
1 3,1 4 0 2,4 4,8 0
2 -1 2 2 2,4 2,4 0
2 -1 2 2 2,4 2,4 0
3 3,1 4 0 6 1,5 3
3 3,1 4 0 6 1,5 3
1 3,1 4 0 2,4 4,8 0
Çocuklar (Offspring) :
w1 w2 w3 w4 w5 w6
1 3,1 4 0 2,4 2,4 0 
2 -1 2 2 2,4 4,8 0
3 -1 2 2 6 1,5 3 
4 3,1 4 0 2,4 2,4 0
Parent
(Eski
Nesil)
Offspring
(Yeni
Nesil)
Parent
(Eski
Nesil)
Offspring
(Yeni
Nesil)
Bu yeni kromozonlar bir sonraki
jenerasyonun Parent'leridir.
(Sonraki Iterasyonun kromozonlarıdır)
Eşleştirme Kriteri
Yeni Nesil Populasyon
(Yeni Jenerasyon) (Kromozonlar)
5 3,1 4 0 2,4 4,8 0 
6 3,1 4 0 6 1,5 3
Mutasyon : Her kromozon çiftinden birincisi alınır ve bunun 5.geninde mutasyon yapılır.
w1 w2 w3 w4 w5 w6
3,1 4 0 2,4 1,2 0 5.Genlerdeki değerler 2'ye bölünerek değiştirilir.
-1 2 2 6 0,75 3
3,1 4 0 2,4 2,4 0
Yeni Kromozonlar (Sonraki Jenerasyon için) :
Population Kromozon w1 w2 w3 w4 w5 w6
1 3,1 4 0 2,4 4,8 0 Eski Nesilden En iyi Kromozon
2 -1 2 2 2,4 2,4 0 1. En iyi kromozon
3 3,1 4 0 6 1,5 3 2. En iyi kromozon
4 3,1 4 0 2,4 1,2 0 Mutasyona uğramış kromozon
5 -1 2 2 6 0,75 3 Mutasyona uğramış kromozon
6 3,1 4 0 2,4 2,4 0 Mutasyona uğramış kromozon
3.Step
x1 x2 x3 x4 x5 x6 y
Veri 4 -2 7 5 11 1 44,1
Population Kromozon w1 w2 w3 w4 w5 w6 y F(c) F(x) F'(x) P(x)
1 3,1 4 0 2,4 4,8 0 69,2 25,1 0,040 0,038 2,3%
2 -1 2 2 2,4 2,4 0 44,4 0,3 3,333 0,769 46,9% 1.En İyi Kromozon
3 3,1 4 0 6 1,5 3 53,9 9,8 0,102 0,093 5,6%
4 3,1 4 0 2,4 1,2 0 29,6 14,5 0,069 0,065 3,9%
5 -1 2 2 6 0,75 3 47,25 3,2 0,317 0,241 14,7% 3.En İyi Kromozon
6 3,1 4 0 2,4 2,4 0 42,8 1,3 0,769 0,435 26,5% 2.En İyi Kromozon
SUM= 54,2 4,631 1,640 100%
Karıştırılacak Kromozomların belirlenmesi: [ En iyi 3 kromozon Kromozon Çiftleri oluşturmak amacıyla seçilir. ]
Kromozon w1 w2 w3 w4 w5 w6
2 -1 2 2 2,4 2,4 0 1. En iyi kromozon
5 -1 2 2 6 0,75 3 3. En iyi kromozon
6 3,1 4 0 2,4 2,4 0 2. En iyi kromozon
Karıştırılacak olan Kromozomların Eşleştirilmesi : (1-2) (2-3) (3-1) --> Bu kural GA'nın tüm iterasyonlarında aynı şekilde kullanılır.
w1 w2 w3 w4 w5 w6
1 -1 2 2 2,4 2,4 0
2 -1 2 2 6 0,75 3 1.Gen 2.Gen 3.Gen
2 -1 2 2 6 0,75 3
3 3,1 4 0 2,4 2,4 0
3 3,1 4 0 2,4 2,4 0
1 -1 2 2 2,4 2,4 0
Karıştırma (Crossover) : [ Yarıya böl ve Çarpraz karıştır ]
w1 w2 w3 w4 w5 w6
1 -1 2 2 2,4 2,4 0
2 -1 2 2 6 0,75 3
2 -1 2 2 6 0,75 3
3 3,1 4 0 2,4 2,4 0
3 3,1 4 0 2,4 2,4 0
1 -1 2 2 2,4 2,4 0
Çocuklar (Offspring) :
w1 w2 w3 w4 w5 w6
1 -1 2 2 6 0,75 3 
2 -1 2 2 2,4 2,4 0
3 -1 2 2 2,4 2,4 0 
4 3,1 4 0 6 0,75 3
Parent
(Eski
Nesil)
Offspring
(Yeni
Nesil)
Parent
(Eski
Nesil)
Offspring
(Yeni
Nesil)
Bu yeni kromozonlar bir sonraki
jenerasyonun Parent'leridir.
(Sonraki Iterasyonun kromozonlarıdır)
Eşleştirme Kriteri
5 3,1 4 0 2,4 2,4 0 
6 -1 2 2 2,4 2,4 0
Mutasyon : Her kromozon çiftinden birincisi alınır ve bunun 5.geninde mutasyon yapılır.
w1 w2 w3 w4 w5 w6
-1 2 2 6 0,38 3 5.Genlerdeki değerler 2'ye bölünerek değiştirilir.
-1 2 2 2,4 1,2 0
3,1 4 0 2,4 1,2 0
Yeni Kromozonlar (Sonraki Jenerasyon için) :
Population Kromozon w1 w2 w3 w4 w5 w6
1 -1 2 2 2,4 2,4 0 1. En iyi kromozon
2 -1 2 2 6 0,75 3 3. En iyi kromozon
3 3,1 4 0 2,4 2,4 0 2. En iyi kromozon
4 -1 2 2 6 0,38 3 Mutasyona uğramış kromozon
5 -1 2 2 2,4 1,2 0 Mutasyona uğramış kromozon
6 3,1 4 0 2,4 1,2 0 Mutasyona uğramış kromozon
4.Step
x1 x2 x3 x4 x5 x6 y
Veri 4 -2 7 5 11 1 44,1
Population Kromozon w1 w2 w3 w4 w5 w6 y F(c) F(x) F'(x) P(x)
1 -1 2 2 2,4 2,4 0 44,4 0,3 3,333 0,769 36,8% 1.En İyi Kromozon
2 -1 2 2 6 0,75 3 47,3 3,2 0,317 0,241 11,5%
3 3,1 4 0 2,4 2,4 0 42,8 1,3 0,769 0,435 20,8% 3.En İyi Kromozon
4 -1 2 2 6 0,38 3 43,1 1,0 1,026 0,506 24,3% 2.En İyi Kromozon
5 -1 2 2 2,4 1,2 0 31,2 12,9 0,078 0,072 3,4%
6 3,1 4 0 2,4 1,2 0 29,6 14,5 0,069 0,065 3,1%
SUM= 33,1 5,592 2,088 100%
Karıştırılacak Kromozomların belirlenmesi: [ En iyi 3 kromozon Kromozon Çiftleri oluşturmak amacıyla seçilir. ]
Kromozon w1 w2 w3 w4 w5 w6
1 -1 2 2 2,4 2,4 0 1. En iyi kromozon
3 3,1 4 0 2,4 2,4 0 3. En iyi kromozon
4 -1 2 2 6 0,375 3 2. En iyi kromozon
Karıştırma (Crossover) : [ Yarıya böl ve Çarpraz karıştır ]
w1 w2 w3 w4 w5 w6
1 -1 2 2 2,4 2,4 0
2 3,1 4 0 2,4 2,4 0
2 3,1 4 0 2,4 2,4 0
3 -1 2 2 6 0,38 3
3 -1 2 2 6 0,38 3
1 -1 2 2 2,4 2,4 0
Çocuklar (Offspring) :
w1 w2 w3 w4 w5 w6
1 -1 2 2 2,4 2,4 0 
2 3,1 4 0 2,4 2,4 0
3 3,1 4 0 6 0,38 3 
4 -1 2 2 2,4 2,4 0
5 -1 2 2 2,4 2,4 0 
6 -1 2 2 6 0,38 3
Mutasyon : Her kromozon çiftinden birincisi alınır ve bunun 5.geninde mutasyon yapılır.
w1 w2 w3 w4 w5 w6
-1 2 2 2,4 1,2 0 5.Genlerdeki değerler 2'ye bölünerek değiştirilir.
3,1 4 0 6 0,19 3
-1 2 2 2,4 1,2 0
Parent
(Eski
Nesil)
Offspring
(Yeni
Nesil)
Parent
(Eski
Nesil)
Offspring
(Yeni
Nesil)
Bu yeni kromozonlar bir sonraki
jenerasyonun Parent'leridir.
(Sonraki Iterasyonun kromozonlarıdır)
Yeni Kromozonlar (Sonraki Jenerasyon için) :
Kromozon w1 w2 w3 w4 w5 w6
1 -1 2 2 2,4 2,4 0 1. En iyi kromozon
2 3,1 4 0 2,4 2,4 0 3. En iyi kromozon
3 -1 2 2 6 0,38 3 2. En iyi kromozon
4 -1 2 2 2,4 1,2 0 Mutasyona uğramış kromozon
5 3,1 4 0 6 0,19 3 Mutasyona uğramış kromozon
6 -1 2 2 2,4 1,2 0 Mutasyona uğramış kromozon
5.Step
x1 x2 x3 x4 x5 x6 y
Veri 4 -2 7 5 11 1 44,1
Population Kromozon w1 w2 w3 w4 w5 w6 y F(c) F(x) F'(x) P(x)
1 -1 2 2 2,4 2,40 0 44,4 0,3 3,333 0,769 37,9% 1. En iyi kromozon Karıştırılacak kromozonların seçiminde hepsi
2 3,1 4 0 2,4 2,40 0 42,8 1,3 0,769 0,435 21,4% 3. En iyi kromozon meski nesiden gelen krımozonlar olmamalı.
3 -1 2 2 6 0,38 3 43,125 1,0 1,026 0,506 24,9% 2. En iyi kromozon Bu yüzden 3.En iyi kromozon yerine mutasyon
4 -1 2 2 2,4 1,20 0 31,2 12,9 0,078 0,072 3,5% yapılmış kromozonların en iyisi seçilir.
5 3,1 4 0 6 0,19 3 39,4625 4,6 0,216 0,177 8,7%
6 -1 2 2 2,4 1,20 0 31,2 12,9 0,078 0,072 3,5%
SUM= 33,0 5,499 2,032 100%
Karıştırılacak Kromozomların belirlenmesi: [ En iyi 3 kromozon Kromozon Çiftleri oluşturmak amacıyla seçilir. ]
Kromozon w1 w2 w3 w4 w5 w6
1 -1 2 2 2,4 2,4 0 1. En iyi kromozon
3 -1 2 2 6 0,38 3 2. En iyi kromozon
5 3,1 4 0 6 0,19 3 Mutasyon yapılan jenerasyondan
Iteration F(c)
1.step 302,4
2.step 117,9
3.step 54,2
4.step 33,1
5.step 33,0
… …
Parent
(Eski
Nesil)
Offspring
(Yeni
Nesil)
Parent
(Eski
Nesil)
Offspring
(Yeni
Nesil)
Bu yeni kromozonlar bir sonraki
jenerasyonun Parent'leridir.
(Sonraki Iterasyonun kromozonlarıdır)
Iterasyona devam edilir…
0
50
100
150
200
250
300
350
1 2 3 4 5
SF(x)
Iteration
Errors
SAFI UR REHMAN (Presentation)
Simplex problem: Max f(x)=x2
{ 0, 1, …., 31 }
Binary formda çözümü.
Bit-String uzunluğu (Gen Sayısı) = 5
Polulasyon boyutu = 4
F(x) = x
2
Fitness Function
p(x) = f(x)/SF(x) Fitness Probability
P(x) = f(x)/((1/n)SF(x)) Expected Count (Payda: ortalama hesabını gösterir)
1.STEP
Karıştırılacak Kromozomların belirlenmesi: [En kötü ve En iyi kromozomların bulunması: Min(P(x) yerine Max(P(x)) yerleştir. ]
Kromozom
2
4
(16)
2
3
(8)
2
2
(4)
2
1
(2)
2
0
(1) x F(x) P(x)
Beklenen
Sayı
Gerçek
Sayı
1 0 1 1 0 1 13 169 0,14 0,58 1
2 1 1 0 0 0 24 576 0,49 1,97 2 <<<<< Max (En İyi 2.Kromozom)
3 0 1 0 0 0 8 64 0,05 0,22 0 <<<<< Min (En Kötü 3.Kromozom)
4 1 0 0 1 1 19 361 0,31 1,23 1
Toplam = 64 1170 1,00 4,00 4
Average= 16 292,5 0,25 1,00 1
Max = 24 576 0,49 1,97 2
Min= 8 64 0,05 0,22 0
Karıştırılacak olan Kromozomların Eşleştirilmesi :
Min yerine Max kromozonun yerleştirilmesi
Kromozom
2
4
(16)
2
3
(8)
2
2
(4)
2
1
(2)
2
0
(1) x F(x) P(x)
Beklenen
Sayı
Gerçek
Sayı
1 0 1 1 0 1 13 169 0,10 0,40 0
2 1 1 0 0 0 24 576 0,34 1,37 1
3 1 1 0 0 0 24 576 0,34 1,37 1
4 1 0 0 1 1 19 361 0,21 0,86 1
Toplam = 80 1682 1,00 4,00 3
Average= 20 420,5 0,25 1,00 0,75
Max = 24 576 0,34 1,37 1
Min= 13 169 0,10 0,40 0
Eşleştirilen Kromozomlar : (1-2) (3-4)
Karıştırma (Crossover) : Her grubun nereden (hangi bitten) çaprazlama yapılacağı Rulet Tekerleği yöntemi ile belirlenir.
Random (1-4)
Kromozom
2
4
(16)
2
3
(8)
2
2
(4)
2
1
(2)
2
0
(1)
Çarprazlama
yeri
1 0 1 1 0 1
GENETIC ALGORITHMS - A GENTLE GENETIC ALGORITHMS
(3) nolu kromozom yerine (2)
kopyalanır : (3)  (2)
4
Değiş tokuş DEĞİL!
KURAL: MIN yerine MAX kopyalanır. Fakat kopyalama aynı Çift içindeyse yapılmaz,
2.MIN kromozonuna bakılır, diğer Çift içindeyse yapılır, yoksa 3.MIN için yapılır.
C:UsersTOSH
DesktopZAIM
SunumlarYapay
Simpleks Yöntemi, amaç fonksiyonunu en büyük (maksimum)
veya en küçük (minimum) yapacak en iyi çözüme adım adım
yaklaşan bir algoritma (hesaplama yöntemi)’dir.
Bu nedenle, probleme bir uç noktasından başlayarak optimuma
daha yakın bir ikincisine, oradan bir üçüncüsüne ... atlayarak en iyi
çözümü veren uç noktasına ulaşmamızı sağlar.
C:UsersTOSH
DesktopZAIM
SunumlarYapay
2 1 1 0 0 0
3 1 1 0 0 0
4 1 0 0 1 1
Çocuklar (Offspring) :
Kromozom
2
4
(16)
2
3
(8)
2
2
(4)
2
1
(2)
2
0
(1) x F(x) P(x)
Beklenen
Sayı
Gerçek
Sayı
1 0 1 1 0 0 12 144 0,08 0,33 0 <<<<< Min
2 1 1 0 0 1 25 625 0,36 1,43 1
3 1 1 0 1 1 27 729 0,42 1,66 2 <<<<< Max
4 1 0 0 0 0 16 256 0,15 0,58 1
Toplam = 80 1754 1,00 4,00 4
Average= 20 438,5 0,25 1,00 1
Max = 27 729 0,42 1,66 2
Min= 12 144 0,08 0,33 0
2.STEP
Karıştırılacak Kromozomların belirlenmesi: [En kötü ve En iyi kromozomların bulunması: Min(P(x) yerine Max(P(x)) yerleştir. ]
Min yerine Max kromozonun yerleştirilmesi
Kromozom
2
4
(16)
2
3
(8)
2
2
(4)
2
1
(2)
2
0
(1) x F(x) P(x)
Beklenen
Sayı
Gerçek
Sayı
1 1 1 0 1 1 27 729 0,31 1,25 1
2 1 1 0 0 1 25 625 0,27 1,07 1
3 1 1 0 1 1 27 729 0,31 1,25 1
4 1 0 0 0 0 16 256 0,11 0,44 0
Toplam = 95 2339 1,00 4,00 3
Average= 23,75 584,75 0,25 1,00 0,75
Max = 27 729 0,31 1,25 1
Min= 16 256 0,11 0,44 0
Eşleştirilen Kromozomlar : (1-2) (3-4)
Kromozom
2
4
(16)
2
3
(8)
2
2
(4)
2
1
(2)
2
0
(1)
1 1 1 0 1 1
2 1 1 0 0 1
3 1 1 0 1 1
4 1 0 0 0 0
Karıştırma (Crossover) : Her grubun nereden (hangi bitten) çaprazlama yapılacağı Rulet Tekerleği yöntemi ile belirlenir.
Random (1-4)
Kromozom
2
4
(16)
2
3
(8)
2
2
(4)
2
1
(2)
2
0
(1)
Çarprazlama
yeri
1 1 1 0 1 1
2 1 1 0 0 1
3 1 1 0 1 1
4 1 0 0 0 0
4
2
2
3
Çocuklar (Offspring) :
Kromozom
2
4
(16)
2
3
(8)
2
2
(4)
2
1
(2)
2
0
(1) x F(x) P(x)
Beklenen
Sayı
Gerçek
Sayı
1 1 1 0 0 1 25 625 0,27 1,09 1
2 1 1 0 1 1 27 729 0,32 1,27 1 <<<<< Max
3 1 1 0 0 0 24 576 0,25 1,01 1
4 1 0 0 1 1 19 361 0,16 0,63 1 <<<<< Min
Toplam = 95 2291 1,00 4,00 4
Average= 23,75 572,75 0,25 1,00 1
Max = 27 729 0,32 1,27 1
Min= 19 361 0,16 0,63 1
3.STEP
Karıştırılacak Kromozomların belirlenmesi: [En kötü ve En iyi kromozomların bulunması: Min(P(x) yerine Max(P(x)) yerleştir. ]
Min yerine Max kromozonun yerleştirilmesi
Kromozom
2
4
(16)
2
3
(8)
2
2
(4)
2
1
(2)
2
0
(1) x F(x) P(x)
Beklenen
Sayı
Gerçek
Sayı
1 1 1 0 0 1 25 625 0,24 0,94 1
2 1 1 0 1 1 27 729 0,27 1,10 1
3 1 1 0 0 0 24 576 0,22 0,87 1
4 1 1 0 1 1 27 729 0,27 1,10 1
Toplam = 103 2659 1,00 4,00 4
Average= 25,75 664,75 0,25 1,00 1
Max = 27 729 0,27 1,10 1
Min= 24 576 0,22 0,87 1
Eşleştirilen Kromozomlar : (1-2) (3-4)
Kromozom
2
4
(16)
2
3
(8)
2
2
(4)
2
1
(2)
2
0
(1)
1 1 1 0 0 1
2 1 1 0 1 1
3 1 1 0 0 0
4 1 1 0 1 1
Karıştırma (Crossover) : Her grubun nereden kesileceği Rulet Tekerleği yöntemi ile belirlenir.
Random (1-4)
Kromozom
2
4
(16)
2
3
(8)
2
2
(4)
2
1
(2)
2
0
(1)
Çarprazlama
yeri
1 1 1 0 0 1
2 1 1 0 1 1
3 1 1 0 0 0
4 1 1 0 1 1
Çocuklar (Offspring) :
1
3
Kromozom
2
4
(16)
2
3
(8)
2
2
(4)
2
1
(2)
2
0
(1) x F(x) P(x)
Beklenen
Sayı
Gerçek
Sayı
1 1 1 0 1 1 27 729 0,27 1,10 1 <<<<< Max
2 1 1 0 0 1 25 625 0,24 0,94 1
3 1 1 0 1 1 27 729 0,27 1,10 1
4 1 1 0 0 0 24 576 0,22 0,87 1 <<<<< Min
Toplam = 103 2659 1,00 4,00 4
Average= 25,75 664,75 0,25 1,00 1
Max = 27 729 0,27 1,10 1
Min= 24 576 0,22 0,87 1
4.STEP
Karıştırılacak Kromozomların belirlenmesi: [En kötü ve En iyi kromozomların bulunması: Min(P(x) yerine Max(P(x)) yerleştir. ]
Min yerine Max kromozonun yerleştirilmesi
Kromozom
2
4
(16)
2
3
(8)
2
2
(4)
2
1
(2)
2
0
(1) x F(x) P(x)
Beklenen
Sayı
Gerçek
Sayı
1 1 1 0 1 1 27 729 0,26 1,04 1
2 1 1 0 0 1 25 625 0,22 0,89 1
3 1 1 0 1 1 27 729 0,26 1,04 1
4 1 1 0 1 1 27 729 0,26 1,04 1
Toplam = 106 2812 1,00 4,00 4
Average= 26,5 703 0,25 1,00 1
Max = 27 729 0,26 1,04 1
Min= 25 625 0,22 0,89 1
Eşleştirilen Kromozomlar : (1-2) (3-4)
Kromozom
2
4
(16)
2
3
(8)
2
2
(4)
2
1
(2)
2
0
(1)
1 1 1 0 1 1
2 1 1 0 0 1
3 1 1 0 1 1
4 1 1 0 1 1
Karıştırma (Crossover) : Her grubun nereden kesileceği Rulet Tekerleği yöntemi ile belirlenir.
Random (1-4)
Kromozom
2
4
(16)
2
3
(8)
2
2
(4)
2
1
(2)
2
0
(1)
Çarprazlama
yeri
1 1 1 0 1 1
2 1 1 0 0 1
3 1 1 0 1 1
4 1 1 0 1 1
Çocuklar (Offspring) :
Kromozom
2
4
(16)
2
3
(8)
2
2
(4)
2
1
(2)
2
0
(1) x F(x) P(x)
Beklenen
Sayı
Gerçek
Sayı
2
1
1 1 1 0 0 1 25 625 0,22 0,89 1 <<<<< Min
2 1 1 0 1 1 27 729 0,26 1,04 1
3 1 1 0 1 1 27 729 0,26 1,04 1 <<<<< Max
4 1 1 0 1 1 27 729 0,26 1,04 1
Toplam = 106 2812 1,00 4,00 4
Average= 26,5 703 0,25 1,00 1
Max = 27 729 0,26 1,04 1
Min= 25 625 0,22 0,89 1
5.STEP
Kromozom
2
4
(16)
2
3
(8)
2
2
(4)
2
1
(2)
2
0
(1) x F(x) P(x)
Beklenen
Sayı
Gerçek
Sayı
1 1 1 0 1 1 27 729 0,25 1,00 1
2 1 1 0 1 1 27 729 0,25 1,00 1
3 1 1 0 1 1 27 729 0,25 1,00 1
4 1 1 0 1 1 27 729 0,25 1,00 1
Toplam = 108 2916 1,00 4,00 4
Average= 27 729 0,25 1,00 1
Max = 27 729 0,25 1,00 1
Min= 27 729 0,25 1,00 1
Simplex problem: Max (x2
) { 0, 1, …., 31 }  x = 27
Iterasyon Sx Max(x) SF(x)
1.Step 64 24 1170
2.Step 95 27 2339
3.Step 103 27 2659
4.Step 106 27 2812
5.Step 108 27 2916
Tüm Kromozonlar eşit hale geldi.
Iterasyon 5.adımda tamamlandı !
0
500
1000
1500
2000
2500
3000
3500
20
30
40
50
60
70
80
90
100
110
1.Step 2.Step 3.Step 4.Step 5.Step
SF(x)
Sx
Iterasyon
Chart Title
Sx Max(x) SF(x)
Denny Hermawanto
a + 2b + 3c + 4d = 30 eşitliğini sağlayan denklemin katsayılatın bulunması ?
f(c) = | (a+2b+3c+4d) -30 | Fitness Objective Function
f(x) = 1/(1+f(x)) Fitness Function veya F.Probability
P(x) = 1/Sp(x) Probability of Chromozone
C(P) Cumulative Probability
INITIALIZATION (Genin 6 kromozunu random olarak oluşturuldu)
1.STEP
Kromozon a b c d f(c) f(x) P(x)
Kümülülatif
Prb. C(P)
Random(0-1)
R
Kromozom
Seçimi
(...) < R < (…)
1 12 5 23 8 93 0,0106 0,126 12,6% 0,201 2
2 2 21 18 3 80 0,0123 0,146 27,2% 0,284 3
3 10 4 13 14 83 0,0119 0,141 41,3% 0,099 3
4 20 1 10 6 46 0,0213 0,252 66,4% 0,822 4 >>>> This chromosome has highest probability to be selected for next generation chromosomes.
5 1 4 13 19 94 0,0105 0,124 78,9% 0,398 5 1.Step'teki en iyi kromozom 4.nolu kromozondur. Bu 2.Step'te ilk Parent olacaktır.
6 20 5 17 1 55 0,0179 0,211 100,0% 0,501 6
SUM= 451 0,0845
Karıştırılacak Kromozomların seçilmesi: Karıştırma :
Kromozon a b c d
Random(0-1)
Min (R)
Random(1-3)
Cut at …
1 2 21 18 3 0,191 1 1 2 21 18 3
2 10 4 13 14 0,259 1 4 20 5 17 1
3 12 5 23 8 0,760 2 4 20 5 17 1
4 20 5 17 1 0,006 5 10 4 13 14
5 10 4 13 14 0,159 4 10 4 13 14
6 20 1 10 6 0,340 5 2 21 18 3
Kromozon Çiftleri : (1-4) (4-5) (5-1)
1 2 21 18 3
1 2 21 18 3 4 20 5 17 1 Çocuklar (Offspring) :
4 20 5 17 1 4 20 5 17 1
5 10 4 13 14 5 10 4 13 14 1 2 5 17 1
5 10 4 13 14 4 20 4 13 14
1 2 21 18 3 4 10 4 18 3
MUTASYON :
Hangi Kromozonun hangi Geninin mutasyona uğrayacağının seçimi.
Kromozondaki genlerin sayısı 4
Populasyon büyüklüğü 6
Populasyondaki toplam gen 6 Kromozon x 4 Gen = 24 Gen
Kaç tane genin Mutasyona Uğrayacağı belirlenir :
Populasyondaki Mutasyona uğrayacak olan gen miktarı = 10%
Genetic Algorithm for Solving Simple Mathematical Equality Problem
=IF(AND(I16<J16;J16<I17);A17;A16)
if (I16 < R < I17) --> A17
else --> A16
C:UsersTOSH
DesktopZAIM
SunumlarYapay
Toplam Gen Sayısı x 10% = 24x10% = 2.4  2 adet Gen mutasyona uğrayacak.
Mutasyon yapılacak genlerin sıra numarası belirlenir : 2 tane 1-24 arasında Random sayı üretilir
Üretilen bu sayılar, mutasyon yapılacak genin sıra numarasını gösterir.
12 12.gen mutasyona uğrayacak
18 18.gen mutasyona uğrayacak
GENLERIN BELIRLENMESI
Kromozon a b c d
1 2 5 17 1
2 10 4 13 14
3 12 5 23 8
4 20 4 13 14
5 10 4 18 3
6 20 1 10 6
MUTATION Yeni Populasyon (Kromozonlar)
Kromozon a b c d Kromozon a b c d
1 2 5 17 1 1 2 5 17 1
2 10 4 13 14 2 10 4 13 14
3 12 5 23 2 3 12 5 23 2
4 20 4 13 14 4 20 4 13 14
5 10 5 18 3 5 10 5 18 3
6 20 1 10 6 6 20 1 10 6
2.STEP
Kromozon a b c d f(c) f(x) P(x) C(P)
Random (0-1)
Kromozom
Seçimi
(...) < R < (…)
1 2 5 17 1 37 0,0263 25,81% 25,81% <<<<< Max olasılığa sahip kromozon
2 10 4 13 14 83 0,0119 11,68% 37,48%
3 12 5 23 2 69 0,0143 14,01% 51,49% <<<<< Mutasyon yapılmış kromozon
4 20 4 13 14 93 0,0106 10,43% 61,93%
5 10 5 18 3 56 0,0175 17,21% 79,13% <<<<< Mutasyon yapılmış kromozon
6 20 1 10 6 46 0,0213 20,87% 100,00%
SUM= 384 0,1020
1.Step SF(c) = 451
2.Step SF(c) = 384
… … …
Makalede 50 adım sonra en iyi sonuça elde edilmekte.
Iterasyona devam edilir…
Her iterasyonda azalması beklenmekte.
Bir sonraki adımın Populasyonu
(Kromozonları) (Bireyleri)
(Presentation) COMP305. Part II. Genetic Algorithms (Maximizasyon Problemi)
f(x) = x x={ 0, … , 255 }
Bit-String uzunluğu = 8 (bit) x'in en fazla 255'e kadar olduğuna göre bu tamsayı 8 bit olatak gösterilebilir.
Populasyon büyüklüğü (n= 4)
Fitness Function : f(x) = Sxi (Stringteki/Kromozomdaki rakamların (0/1) toplamı)
Crossover Porobability = 0.7 (Pc)
Mutation Probability = 0.001 (Pm)
1.STEP
Population/Parents/Kromozonlar :
Beklenen
Sayı
Kaç kez
seçileceği
Kromozom x1 x2 x3 x4 x5 x6 x7 x8 f(x) p(x) P(x) Round(P(x))
1 0 0 0 0 0 1 1 0 2 0,17 0,67 1 1.kromozon (1 kez) kullanılacak
2 1 1 1 0 1 1 1 0 6 0,50 2,00 2 2.kromozon (2 kez) kullanılacak
3 0 0 1 0 0 0 0 0 1 0,08 0,33 0 3.kromozon kullanılmayacak
4 0 0 1 1 0 0 1 0 3 0,25 1,00 1 4.kromozon (1 kez) kullanılacak
12 1 4
3 0,25 1
Karıştırılacak olan Parent'ların Eşleştirilmesi : (2-1) (1-4)
Kromozom x1 x2 x3 x4 x5 x6 x7 x8
Random
(0-1)
Pc=0.7
1 1 1 1 0 1 1 1 0
2 0 0 0 0 0 1 1 0
3 1 1 1 0 1 1 1 0
4 0 0 1 1 0 0 1 0
Karıştırma (Crossover) : Her grubun nereden kesileceği Rulet Tekerleği (1-7 arasında random sayı) yöntemi ile belirlenir.
Random (1-7)
Kromozom x1 x2 x3 x4 x5 x6 x7 x8
Çarprazlama
yeri
1 1 1 1 0 1 1 1 0
2 0 0 0 0 0 1 1 0
3 1 1 1 0 1 1 1 0
4 0 0 1 1 0 0 1 0
Çocuklar (Offspring) :
Random
Kromozom x1 x2 x3 x4 x5 x6 x7 x8 (0-1) Pm=0.001
1 1 1 0 0 0 1 1 0 0,4000 > Pm No Mutation
2 0 0 1 0 1 1 1 0 0,1000 > Pm No Mutation
3 1 1 1 0 1 1 1 0 0,8000 > Pm No Mutation
4 0 0 1 1 0 0 1 0 0,0005 < Pm Mutation
ADAPTIVE APPLICATION of GENETIC ALGORITHM
Yakınsama hızı derecesini belirler
Sum=
Average=
2
-
Adaptif GA uygulamasında Pc ve Pm
parametreleri değişkendir. Buradaki
uygulamada sabit ttulmuştur.
 Crossover YAPILIR
 Crossover YAPILMAZ. Çift doğrudan kullanılır.
0,4 < Pc
> Pc0,8
C:UsersTOSH
DesktopZAIM
SunumlarYapay
Mutation :
Kromozom x1 x2 x3 x4 x5 x6 x7 x8
1 1 1 0 0 0 1 1 0
2 0 0 1 0 1 1 1 0
3 1 1 1 0 1 1 1 0 Random (1-31)
4 0 0 1 1 0 1 1 0 Mutasyona uğrayacak Gen rastgele seçilir 30

New Population :
Kromozom x1 x2 x3 x4 x5 x6 x7 x8
1 1 1 1 0 1 1 1 0 Parents'tan Max { P(x) } =2 alınır
2 1 1 0 0 0 1 1 0 Crossover yapılan kromozon
3 0 0 1 0 1 1 1 0 Crossover yapılan kromozon
4 0 0 1 1 0 1 1 0 Mutasyona uğrayan kromozon
2.STEP
Parents:
Kromozom x1 x2 x3 x4 x5 x6 x7 x8 f(x) p(x) P(x) Round(P(x))
1 1 1 1 0 1 1 1 0 6 0,33 1,33 1 1.kromozon (1 kez) kullanılacak
2 1 1 0 0 0 1 1 0 4 0,22 0,89 1 2.kromozon (1 kez) kullanılacak
3 0 0 1 0 1 1 1 0 4 0,22 0,89 1 3.kromozon (1 kez) kullanılacak
4 0 0 1 1 0 1 1 0 4 4,50 0,89 1 4.kromozon (1 kez) kullanılacak
18 5,28 4
4,5 1,32 1
Karıştırılacak olan Parent'ların Eşleştirilmesi : (1-2) (3-4)
Kromozom x1 x2 x3 x4 x5 x6 x7 x8
Random
(0-1)
Pc=0.7
1 1 1 1 0 1 1 1 0
2 1 1 0 0 0 1 1 0
3 0 0 1 0 1 1 1 0
4 0 0 1 1 0 1 1 0
Karıştırma (Crossover) : Her grubun nereden kesileceği Rulet Tekerleği (1-4 arasında random sayı) yöntemi ile belirlenir.
Random (1-4)
Kromozom x1 x2 x3 x4 x5 x6 x7 x8
Çarprazlama
yeri
1 1 1 1 0 1 1 1 0
2 1 1 0 0 0 1 1 0
3 0 0 1 0 1 1 1 0
4 0 0 1 1 0 1 1 0
Çocuklar (Offspring) :
Kromozom x1 x2 x3 x4 x5 x6 x7 x8
4
4
Pm=0.001Random (0-1)
Average=
Sum=
Mutasyona uğramış
Kromozonlar
0,6 < Pc  Crossover YAPILIR
0,1 < Pc  Crossover YAPILIR
1 1 1 1 0 0 1 1 0 0,350 > Pm No Mutation
2 1 1 0 0 1 1 1 0 0,470 > Pm No Mutation
3 0 0 1 0 0 1 1 0 0,100 > Pm No Mutation
4 0 0 1 1 1 1 1 0 0,530 > Pm No Mutation
Mutation : No mutation! (New Population)
Kromozom x1 x2 x3 x4 x5 x6 x7 x8
1 1 1 1 0 0 1 1 0
2 1 1 0 0 1 1 1 0
3 0 0 1 0 0 1 1 0
4 0 0 1 1 1 1 1 0
2.STEP
Population/Parents:
Kromozom x1 x2 x3 x4 x5 x6 x7 x8 f(x) p(x) P(x) Round(P(x))
1 1 1 1 0 0 1 1 0 5 0,28 1,11 1 1.kromozon (1 kez) kullanılacak
2 1 1 0 0 1 1 1 0 5 0,28 1,11 1 2.kromozon (1 kez) kullanılacak
3 0 0 1 0 0 1 1 0 3 0,17 0,67 1 3.kromozon (1 kez) kullanılacak
4 0 0 1 1 1 1 1 0 5 0,28 1,11 1 4.kromozon (1 kez) kullanılacak
18 1,00 4
4,5 0,25 1
Karıştırılacak olan Parent'ların Eşleştirilmesi : (1-2) (3-4)
Kromozom x1 x2 x3 x4 x5 x6 x7 x8
Random
(0-1)
Pc=0.7
1 1 1 1 0 0 1 1 0
2 1 1 0 0 1 1 1 0
3 0 0 1 0 0 1 1 0
4 0 0 1 1 1 1 1 0
Karıştırma (Crossover) : Her grubun nereden kesileceği Rulet Tekerleği (1-4 arasında random sayı) yöntemi ile belirlenir.
Random (1-4)
Kromozom x1 x2 x3 x4 x5 x6 x7 x8
Çarprazlama
yeri
1 1 1 1 0 0 1 1 0
2 1 1 0 0 1 1 1 0
3 0 0 1 0 0 1 1 0
4 0 0 1 1 1 1 1 0
Çocuklar (Offspring) :
Kromozom x1 x2 x3 x4 x5 x6 x7 x8
1 1 1 1 0 0 1 1 0 0,5000 > Pm No Mutation
2 1 1 0 0 1 1 1 0 0,0008 < Pm No Mutation
3 0 0 1 1 1 1 1 0 0,6100 > Pm Mutation
Sum=
Average=
 Crossover YAPILMAZ
0,54 < Pc  Crossover YAPILIR
-
3
Random
(0-1)
Pm=0.001
0,83 > Pc
4 0 0 1 0 0 1 1 0 0,3530 > Pm No Mutation
Mutation :
Kromozom x1 x2 x3 x4 x5 x6 x7 x8
1 1 1 1 0 0 1 1 0
2 1 1 0 0 1 1 1 0 Random (1-31)
3 0 1 1 1 1 1 1 0 Mutasyona uğrayacak Gen rastgele seçilir 18
4 0 0 1 0 0 1 1 0

New Population :
Kromozom x1 x2 x3 x4 x5 x6 x7 x8
1 1 1 1 0 0 1 1 0 Parents'tan Max { P)x) } =1.11 lerden ilki alınır
2 0 0 1 1 1 1 1 0 Crossover yapılan kromozon
3 0 0 1 0 0 1 1 0 Crossover yapılan kromozon
4 0 1 1 1 1 1 1 0 Mutasyona uğrayan kromozon
3.STEP
Population/Parents:
Kromozom x1 x2 x3 x4 x5 x6 x7 x8 f(x) p(x) P(x) Round(P(x))
1 1 1 1 0 0 1 1 0 5 0,26 1,05 1 1.kromozon (1 kez) kullanılacak
2 0 0 1 1 1 1 1 0 5 0,26 1,05 1 2.kromozon (1 kez) kullanılacak
3 0 0 1 0 0 1 1 0 3 0,16 0,63 1 3.kromozon (1 kez) kullanılacak
4 0 1 1 1 1 1 1 0 6 0,32 1,26 1 4.kromozon (1 kez) kullanılacak
19 1,00 4
4,75 0,25 1
Karıştırılacak olan Parent'ların Eşleştirilmesi : (1-2) (3-4)
Kromozom x1 x2 x3 x4 x5 x6 x7 x8
Random
(0-1)
Pc=0.7
1 1 1 1 0 0 1 1 0
2 0 0 1 1 1 1 1 0
3 0 0 1 0 0 1 1 0
4 0 1 1 1 1 1 1 0
Sf(x)
1.step 12
2.step 18
3.step 19
0,54 < Pc  Crossover YAPILIR
Mutasyona uğramış
Kromozonlar
Sum=
Average=
0,97 < Pc  Crossover YAPILMAZ
12
18
19
10
11
12
13
14
15
16
17
18
19
20
1 2 3
Sf(x)
Iteration
x : 4 bit'le gösterilebilir
Populasyon büyüklüğü : 6
Fitness Function : f(x) = 15 x - x2
Mutasyon oranı : %10
1.STEP
Kromozon
23
(8)
22
(4)
21
(2)
20
(1) x F(x) P(x)
Beklenen
Sayı
Gerçek
Sayı
1 1 1 0 0 12 36 16,5% 0,99 1
2 0 1 0 0 4 44 20,2% 1,21 1
3 0 0 0 1 1 14 6,4% 0,39 0 << Min Bu örnekte bunu Bu seneryaları da deneyerek
4 1 1 1 0 14 14 6,4% 0,39 0 << Min tercih ettik**** sonuçları karşılaştırabilirsiniz.
5 0 1 1 1 7 56 25,7% 1,54 2 << MAX
6 1 0 0 1 9 54 24,8% 1,49 1
Toplam = 47 218 0,50 2,97 2
Average= 7,83 36,33 0,12 0,74 0,5
Max = 14 56 0,20 1,21 1
Min= 1 14 0,06 0,39 0
Karıştırılacak olan Kromozomların Eşleştirilmesi :
Min kromozomlar (3 ve 4) atılır. Bunların yerine Random olarak kromozon çitleri oluşturulur.
Kromozon
1 1 1 0 0
2 0 1 0 0
5 0 1 1 1
6 1 0 0 1
Eşleştirilen Kromozomlar : (6-2) (1-5) (2-5) Burada Kromozon Çiftlerin nasıl eşleneceği Random olarak oluşturulur. (Çoğu uygulamalarda her iterasyon adımında aynı Eşleşme Şablonu kullanılmaktadır)
Kromozon
6 1 0 0 1
2 0 1 0 0
1 1 1 0 0
5 0 1 1 1
2 0 1 0 0
5 0 1 1 1
Karıştırma (Crossover) :
Random (1-4)
Kromozon
Çarprazlama
yeri << Kormozonların hangi bit'ten (genden) itibaren çaprazlanacağı Random olarak belirlenir.
6 1 0 0 1
2 0 1 0 0
1 1 1 0 0
5 0 1 1 1
2 0 1 0 0
5 0 1 1 1
Çocuklar (Offspring) :
UYGULAMA: SIMPLEX PROBLEM (FONKSİYONUN MAKSIMIZASYONU)
f(x) = 15 x - x2
fonksiyonun maksimum değeri x = { 0, … ,15 } ve x : tamsayı değer
2
1
0
Crossover Probability : Pc = 0.7
Mutation Probability : Pm = 0.001
Chromosome
Fitness
Fitness
Ratio
Evaluation #1 versiyon
2. genden sonra çarprazlama yapılır
1. genden sonra çarprazlama yapılır
Çarprazlama yapılmaz.
Evaluation #2 versiyon Evaluation #3 versiyon
Bu iki MIN Kromozonları kullanılmayacak.
Yeni oluşturulacak kromozon çifti eklenir.
ilk MIN kromozonu yerine MAX
ADAPTIVE UYGULAMA tercih
edilebilir. Pc ve Pm kullanılır.
veya veya
C:UsersTOSH
DesktopZAIM
SunumlarYapay
1 1 0 0 0
2 0 1 0 1
3 1 1 1 1
4 0 1 0 0
5 0 1 0 0
6 0 1 1 1
Mutation :
KURAL: Doğada mutasyon en fazla 10% dur.
1 1 0 0 0 (6 kromozon x 10%) (Rounded)
2 0 1 0 1 Kaç tane bit'te mutasyon yapılacak : 0,6  1
3 1 1 1 1
4 0 1 0 0 Random (1-24)
5 0 1 1 0 Hangi bit'lerde mutasyon yapılacağı Random olarak belirlenir : 19
6 0 1 1 1
2.STEP
Kromozon
23
(8)
22
(4)
21
(2)
20
(1) x F(x) P(x)
Beklenen
Sayı
Gerçek
Sayı
1 1 0 0 0 8 56 21,5% 1,29 1 << MAX (NOT: Eğer uygulamada MAX değeri kullanılacaksa, ve birden fazla MAX değeri varsa listede ilk MAX kullanılır)
2 0 1 0 1 5 50 19,2% 1,15 1
3 1 1 1 1 15 0 0,0% 0,00 0 << Min
4 0 1 0 0 4 44 16,9% 1,02 1 << Min
5 0 1 1 0 6 54 20,8% 1,25 1
6 0 1 1 1 7 56 21,5% 1,29 1
Toplam = 45 260 1,00 6,00 5
Average= 7,50 43,33 0,17 1,00 1
Max = 15 56 0,22 1,29 1
Min= 4 0 0,00 0,00 0
Karıştırılacak olan Kromozomların Eşleştirilmesi :
Min kromozomlar (3 ve 4) atılır. Random olarak kromozon çitleri oluşturulur.
Kromozon
1 1 0 0 0
2 0 1 0 1
5 0 1 1 0
6 0 1 1 1
Eşleştirilen Kromozomlar : (6-1) (1-5) (2-5) Burada Kromozon Çiftlerin nasıl eşleneceği Random olarak oluşturulur.
Kromozon
6 0 1 1 1
1 1 0 0 0
1 1 0 0 0
5 0 1 1 0
2 0 1 0 1
5 0 1 1 0
Karıştırma (Crossover) :
Random (1-4)
Kromozon
Çarprazlama
yeri << Kormozonların hangi bitten itibaren çaprazlanacağı Random olarak belirlenir.
6 0 1 1 1
1 1 0 0 0
1 1 0 0 0
5 0 1 1 0
Populasyondan (Kromozon listesinden) silinir.
Yeni kromozon çifti eklenir
3
2
3. genden sonra çarprazlama yapılır
2. genden sonra çarprazlama yapılır
2 0 1 0 1
5 0 1 1 0
Çocuklar (Offspring) :
1 0 1 1 0
2 1 0 0 1
3 1 0 1 0
4 0 1 0 0
5 0 1 1 0
6 0 1 0 1
Mutation : KURAL: Mutasyon en fazla 10% olabilir.
(6 kromozom x 10%) (Rounded)
1 0 1 1 0 Kaç tane bit'te mutasyon yapılacak : 0,6  1
2 1 0 0 1
3 1 1 1 0 Random (1-24)
4 0 1 0 0 Hangi bit'lerde mutasyon yapılacağı Random olarak belirlenir : 10
5 0 1 1 0
6 0 1 0 1
3.STEP
x F(x) P(x)
Beklenen
Sayı
Gerçek
Sayı
1 0 1 1 0 6 54 20,0% 1,20 1 << MAX (NOT: Eğer uygulamada MAX değeri kullanılacaksa, ve birden fazla MAX değeri varsa listede ilk MAX kullanılır)
2 1 0 0 1 9 54 20,0% 1,20 1
3 1 1 1 0 14 14 5,2% 0,31 0 << Min
4 0 1 0 0 4 44 16,3% 0,98 1 << Min
5 0 1 1 0 6 54 20,0% 1,20 1
6 0 1 0 1 5 50 18,5% 1,11 1
Toplam = 44 270 1,00 6,00 5
Average= 7,33 45,00 0,17 1,00 1
Max = 14 54 0,20 1,20 1
Min= 4 14 0,05 0,31 0
Iteration Sf(x)
1.Step 218
2.Step 260
3.Step 270
2 2. genden sonra çarprazlama yapılır
200
220
240
260
280
1 2 3
Sf(x)
Iteration
x ve y : 8 bit'le gösterilebilir
Populasyon büyüklüğü : 6
Crossover Probability : Pc = 0.7
Mutation Probability : Pm = 0.001
Fitness Function : f(x,y)
Mutasyon oranı : %10
x ve y değerlerini normalize etmek için izleyen sayı ile çarpılır ve 3 çıkartılır :
1.STEP
Kromozon
27
(128)
26
(64)
25
(32)
24
(16)
23
(8)
22
(4)
21
(2)
20
(1)
27
(128)
26
(64)
25
(32)
24
(16)
23
(8)
22
(4)
21
(2)
20
(1) x y ẋ ẏ F(ẋ,ẏ) P(ẋ,ẏ)
Expected
Value
Actual
Value
1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1 138 59 0,25 -1,61 0,06 0,0000 -0,00002 0
2 1 1 0 1 1 1 0 0 1 0 1 1 0 0 0 0 220 176 2,18 1,14 300,04 -0,0135 -0,08123 0
3 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 26 69 -2,39 -1,38 2364,27 -0,1067 -0,64009 -1 <<< Min
4 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 11 142 -2,74 0,34 -24831,42 1,1205 6,72271 7 <<< MAX
5 1 0 1 1 1 0 1 1 0 1 0 1 1 1 1 0 187 94 1,40 -0,79 4,34 -0,0002 -0,00118 0
6 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 174 124 1,09 -0,08 0,72 0,0000 -0,00019 0
Sum= 756 664 -0,212 -2,376 -22161,980 1,0000
Average= 126 110,6667 -0,035 -0,396 -3693,663 0,1667
Max= 220 176 2,176 1,141 2364,271 1,1205
Min= 11 59 -2,741 -1,612 -24831,422 -0,1067
Karıştırılacak olan Kromozomların Eşleştirilmesi :
Min yerine Max kromozonun yerleştirilmesi
Kromozon
27
(128)
26
(64)
25
(32)
24
(16)
23
(8)
22
(4)
21
(2)
20
(1)
27
(128)
26
(64)
25
(32)
24
(16)
23
(8)
22
(4)
21
(2)
20
(1)
1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1
2 1 1 0 1 1 1 0 0 1 0 1 1 0 0 0 0
3 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0
4 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0
5 1 0 1 1 1 0 1 1 0 1 0 1 1 1 1 0
6 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0
Eşleştirilen Kromozomlar : (1-2) (3-5) (4-6)
Karıştırma (Crossover) :
Random (1-7)
Kromozon
27
(128)
26
(64)
25
(32)
24
(16)
23
(8)
22
(4)
21
(2)
20
(1)
27
(128)
26
(64)
25
(32)
24
(16)
23
(8)
22
(4)
21
(2)
20
(1)
Çarprazlama
yeri
1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1
2 1 1 0 1 1 1 0 0 1 0 1 1 0 0 0 0
3 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0
4
3
x (8 bit) y (8 bit)
x (8 bit) y (8 bit)
x (8 bit) y (8 bit)
UYGULAMA: SIMPLEX PROBLEM (FONKSİYONUN MAKSIMIZASYONU)
f(x,y) fonksiyonun maksimum değeri x = { -3, … ,+3 } y = { -3, … ,+3 }

ẋ = x*0.0235294 - 3
ẏ = y*0.0235294 - 3
Çok büyük veya küçük değerleri
önlemek için !
2222
)()1(),( 33)1(2 yxyx
eyxxexyxf ----
----
C:UsersTOSH
DesktopZAIM
SunumlarYapay
0235294.0
1256
6

-
5 1 0 1 1 1 0 1 1 0 1 0 1 1 1 1 0
4 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0
6 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0
Çocuklar (Offspring) :
Kromozon
27
(128)
26
(64)
25
(32)
24
(16)
23
(8)
22
(4)
21
(2)
20
(1)
27
(128)
26
(64)
25
(32)
24
(16)
23
(8)
22
(4)
21
(2)
20
(1)
1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0
2 1 1 0 1 1 0 1 0 1 0 1 1 1 0 1 1
3 0 0 0 1 1 0 1 1 1 0 0 1 1 1 1 0
5 1 0 1 0 1 0 1 1 0 1 0 0 1 1 1 0
4 0 0 1 0 1 1 1 0 1 0 1 1 1 1 0 0
6 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0
MUTATION: Mutasyon yapılmamıştır.
2.STEP
Kromozon
27
(128)
26
(64)
25
(32)
24
(16)
23
(8)
22
(4)
21
(2)
20
(1)
27
(128)
26
(64)
25
(32)
24
(16)
23
(8)
22
(4)
21
(2)
20
(1) x y ẋ ẏ F(ẋ,ẏ) P(ẋ,ẏ)
Expected
Value
Actual
Value
1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 140 48 0,29 -1,87 0,03 0,0000 -0,00013 0
2 1 1 0 1 1 0 1 0 1 0 1 1 1 0 1 1 218 187 2,13 1,40 135,15 -0,0966 -0,57975 -1 <<< Min
3 0 0 0 1 1 0 1 1 1 0 0 1 1 1 1 0 27 158 -2,36 0,72 -1522,08 1,0882 6,52904 7 <<< MAX
5 1 0 1 0 1 0 1 1 0 1 0 0 1 1 1 0 171 78 1,02 -1,16 -1,12 0,0008 0,00482 0
4 0 0 1 0 1 1 1 0 1 0 1 1 1 1 0 0 46 188 -1,92 1,42 -10,78 0,0077 0,04623 0
6 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 139 78 0,27 -1,16 0,05 0,0000 -0,00021 0
Sum= 741 737 -0,565 -0,659 -1398,743 1,0000
Average= 123,5 122,8333 -0,094 -0,110 -233,124 0,1667
Max= 218 188 2,129 1,424 135,153 1,0882
Min= 27 48 -2,365 -1,871 -1522,075 -0,0966
2.adımın aşamalarını tamamlayın ve Diğer adıma (3,4 ve 5.Iterasyona) devam edin…
x (8 bit) y (8 bit)
3
2
x (8 bit) y (8 bit)
NOT !!! : Algoritma hiçbir zaman mutasyon olmadan en uygun çözüme ulaşamaz. (The Algorithm will never reach the optimal solution without mutation.)
25/26
x ve y : 8 bit'le gösterilebilir
Populasyon büyüklüğü : 6
Crossover Probability : Pc = 0.7
Mutation Probability : Pm = 0.001
Fitness Function : f(x,y)
Mutasyon oranı : %10
x ve y değerlerini normalize etmek için izleyen sayı ile çarpılır ve 3 çıkartılır :
(Çok büyük sayılarla uğraşmamak için)
1.STEP
Kromozon
27
(128)
26
(64)
25
(32)
24
(16)
23
(8)
22
(4)
21
(2)
20
(1)
27
(128)
26
(64)
25
(32)
24
(16)
23
(8)
22
(4)
21
(2)
20
(1) x y ẋ ẏ F(ẋ,ẏ) P(ẋ,ẏ)
Expected
Value
Actual
Value
1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1 138 59 0,25 -1,61 0,06 0,0000 -0,00002 0
2 1 1 0 1 1 1 0 0 1 0 1 1 0 0 0 0 220 176 2,18 1,14 300,04 -0,0135 -0,08123 0
3 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 26 69 -2,39 -1,38 2364,27 -0,1067 -0,64009 -1 <<< Min P(x,y) MIN kromozonunu populasyondan ÇIKARTILIR :
4 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 11 142 -2,74 0,34 -24831,42 1,1205 6,72271 7 <<< Max P(x,y) 3.kromozon kullanılmayacak !
5 1 0 1 1 1 0 1 1 0 1 0 1 1 1 1 0 187 94 1,40 -0,79 4,34 -0,0002 -0,00118 0
6 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 174 124 1,09 -0,08 0,72 0,0000 -0,00019 0
Sum= 756 664 -0,212 -2,376 -22161,980 1,0000
Average= 126 110,6667 -0,035 -0,396 -3693,663 0,1667
Max= 220 176 2,176 1,141 2364,271 1,1205
Min= 11 59 -2,741 -1,612 -24831,422 -0,1067
Karıştırılacak olan Kromozomların Eşleştirilmesi :
Eşleştirmeler : (2-1) (4-5) (6-1)
Kromozon
27
(128)
26
(64)
25
(32)
24
(16)
23
(8)
22
(4)
21
(2)
20
(1)
27
(128)
26
(64)
25
(32)
24
(16)
23
(8)
22
(4)
21
(2)
20
(1)
Random
(0-1)
Pc=0.7
2 1 1 0 1 1 1 0 0 1 0 1 1 0 0 0 0
1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1
4 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0
5 1 0 1 1 1 0 1 1 0 1 0 1 1 1 1 0
1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1
6 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0
Karıştırma (Crossover) :
Random (1-7)
Kromozon
27
(128)
26
(64)
25
(32)
24
(16)
23
(8)
22
(4)
21
(2)
20
(1)
27
(128)
26
(64)
25
(32)
24
(16)
23
(8)
22
(4)
21
(2)
20
(1)
Çarprazla
ma yeri
2 1 1 0 1 1 1 0 0 1 0 1 1 0 0 0 0
1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1
4 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0
5 1 0 1 1 1 0 1 1 0 1 0 1 1 1 1 0
1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1
6 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0
Çocuklar (Offspring) :
Kromozon
27
(128)
26
(64)
25
(32)
24
(16)
23
(8)
22
(4)
21
(2)
20
(1)
27
(128)
26
(64)
25
(32)
24
(16)
23
(8)
22
(4)
21
(2)
20
(1)
Random
(0-1)
Pm=0.001 Mutation Status
< Pc
x (8 bit) y (8 bit)
5
--
UYGULAMA: SIMPLEX PROBLEM (FONKSİYONUN MAKSIMIZASYONU)
f(x,y) fonksiyonun maksimum değeri x = { -3, … ,+3 } y = { -3, … ,+3 }
x (8 bit) y (8 bit)
x (8 bit) y (8 bit)
3.kromozon yok !
ADAPTIVE VERSION

ẋ = x*0.0235294 - 3
ẏ = y*0.0235294 - 3
Çok büyük ve küçük değerleri
önlemek için !
2
x (8 bit) y (8 bit)
 Crossover YAPILIR
 Crossover YAPILMAZ. Çift doğrudan kullanılır.
 Crossover YAPILIR
< Pc
> Pc
0,62
0,83
0,45
2222
)()1(),( 33)1(2 yxyx
eyxxexyxf ----
----
C:UsersTOSH
DesktopZAIM
SunumlarYapay
0235294.0
1256
6

-
C:UsersTOSH
DesktopZAIM
SunumlarYapay
26/262 1 1 0 1 1 0 1 0 1 0 1 1 0 0 1 1 0,4000 > Pm No Mutation
1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0,1000 > Pm No Mutation
4 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 0,8000 > Pm No Mutation
5 1 0 1 1 1 0 1 1 0 1 0 1 1 1 1 0 0,0005 < Pm Mutation
1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 0,6305 > Pm No Mutation
6 1 0 1 0 1 0 1 0 0 1 1 1 1 0 1 1 0,1000 > Pm No Mutation
MUTATION:
Kromozon
27
(128)
26
(64)
25
(32)
24
(16)
23
(8)
22
(4)
21
(2)
20
(1)
27
(128)
26
(64)
25
(32)
24
(16)
23
(8)
22
(4)
21
(2)
20
(1)
1 1 1 0 1 1 0 1 0 1 0 1 1 0 0 1 1 Random (1-8)
2 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 6 Hangi Genin (bit'İn) mutasyona uğrayacağı belirlenir
3 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0
5 1 0 1 1 1 1 1 1 0 1 0 1 1 0 1 0  Random(1-48) Mutasyona uğrayacak Genin sıra numarası
4 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 30 rastgele seçilir. Bit değerleri ters-yüz edilir.
6 1 0 1 0 1 0 1 0 0 1 1 1 1 0 1 1
 
NEW PARENTS for NEXT GENERATION
Kromozon
27
(128)
26
(64)
25
(32)
24
(16)
23
(8)
22
(4)
21
(2)
20
(1)
27
(128)
26
(64)
25
(32)
24
(16)
23
(8)
22
(4)
21
(2)
20
(1)
1 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 Parents'tan Max { P(x) } =1.12045 alınır
2 1 1 0 1 1 0 1 0 1 0 1 1 0 0 1 1 Crossover yapılan kromozon
3 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 Crossover yapılan kromozon
5 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 Crossover yapılan kromozon
4 1 0 1 0 1 0 1 0 0 1 1 1 1 0 1 1 Crossover yapılan kromozon
6 1 0 1 1 1 1 1 1 0 1 0 1 1 0 1 0 Mutasyona uğrayan kromozon
2.STEP
Kromozon
27
(128)
26
(64)
25
(32)
24
(16)
23
(8)
22
(4)
21
(2)
20
(1)
27
(128)
26
(64)
25
(32)
24
(16)
23
(8)
22
(4)
21
(2)
20
(1) x y ẋ ẏ F(ẋ,ẏ) P(ẋ,ẏ)
Expected
Value
Actual
Value
1 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 11 142 -2,74 0,34 -24831,42 1,0084 6,05061 6 <<< Max P(x,y)
2 1 1 0 1 1 0 1 0 1 0 1 1 0 0 1 1 218 179 2,13 1,21 200,55 -0,0081 -0,04887 0 <<< Min P(x,y) MIN kromozonunu populasyondan ÇIKARTILIR :
3 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 140 56 0,29 -1,68 0,02 0,0000 0,00000 0 2.kromozon kullanılmayacak !
4 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 142 60 0,34 -1,59 -0,04 0,0000 0,00001 0
5 1 0 1 0 1 0 1 0 0 1 1 1 1 0 1 1 170 123 1,00 -0,11 0,00 0,0000 0,00000 0
6 1 0 1 1 1 1 1 1 0 1 0 1 1 0 1 0 191 90 1,49 -0,88 7,18 -0,0003 -0,00175 0
Sum= 872 650 2,518 -2,706 -24623,714 1,0000
Average= 145,3333 108,3333 0,420 -0,451 -4103,952 0,1667
Max= 218 179 2,129 1,212 200,552 1,0084
Min= 11 56 -2,741 -1,682 -24831,422 -0,0081
2.adımın aşamalarını tamamlayın ve Diğer adıma (3,4 ve 5.Iterasyona) devam edin…
x (8 bit) y (8 bit)
x (8 bit) y (8 bit)
Bunlar bir sonraki iterasyonun
Populasyonudur.
Mutasyona
uğramış
kromozonlar
x (8 bit) y (8 bit)
Genetik Algoritma & Programlama
Dr. Hakan ERDUN
DOĞAL DÜNYA
İnsan vücudu trilyonlarca hücreden oluşur.
Her hücre kromozom içeren bir çekirdeğe
sahiptir. Kromozomların sayısı canlı
türlerinde değişiklik gösterir. İnsanın
kromozom sayısı 46'dır.
Her kromozom, birbirine sıkı sıkı sarılmış
DNA (DeoksiriboNükleik Asit) ipliklerin-
den oluşur. Genler, göz ve saç rengi gibi
spesifik özellikleri belirleyen DNA
parçalarıdır. Bir insanın 20.000’den fazla
geni vardır. Salzberg ve ekibinin
çalışmalarına göre insandaki toplam gen
sayısı en az 46.831 dir.
DNA:
Görevleri
• Hücredeki yaşamsal olayları yöneten moleküldür.
• Canlının kalıtsal yapısını belirler. Canlıya ait kalıtsal özellikleri ortaya çıkarır.
• Canlıların üremesinde ve kalıtım olayında görev alır.
DNA'nın Eşlenmesi:
• DNA eşlenmesi hücre bölünmesi öncesinde gerçekleşir. Eşlenmenin amacı; taşıdığı kalıtsal bilgilerin yeni
oluşacak hücrelere aktarılmasını sağlamaktır.
GEN:
• Bir DNA molekülü milyonlarca nükleotitten oluşur. 1000–1500 tane nükleotit bir araya gelerek bir GEN
oluşturur.
• Genler DNA’nın görev birimleridir. Yani Genler canlılardaki saç rengi, saç şekli, göz rengi, boy uzunluğu vb
gibi kalıtsal karakterlerin oluşumunu ve bu karakterlerin kuşaktan kuşağa aktarılmasını (kalıtımı)
sağlar. İnsandaki toplam gen sayısı için bilim insanları arasında tartışma vardır. Ortalama 20.000 civarı olduğu
söylenmekle birlikte bazı bilim insanları en son 46.831 olarak açıklamışlardır.
KROMOZOM:
• DNA ve özel proteinlerin birleşmesiyle oluşan yapılara kromozom denir. Her bir kromozomda pek çok
gen bulunur. Genlerin kuşaktan kuşağa geçişi (kalıtım), kromozomlar sayesinde gerçekleştirilir.
Her bir canlı türü kendisine özgü sayıda kromozom bulundurur. İnsanlardaki kromozom sayısı 46’dır.
MUTASYON:
• DNA’nın eşlemesi sırasında, eğer DNA’nın bir zincirinde hata varsa diğer zincir kalıp olarak kullanılarak
hata onarılabilir. Ancak karşılıklı zincirlerin ikisinde de hata varsa bu hata onarılamaz. Bu
olaya mutasyon adı verilir.
GENETİK ALGORİTMA
Genetik algoritmaların temel prensibi: Genetik ve doğal seleksiyonu bilgisayar yazılımları kullanarak taklit
etmektir.
Genetik Algoritma, doğadaki çoğalma ve seleksiyon mekanizmasını örnek alan bir stokastik arama ve
optimizasyon yöntemidir.
Genetik Algoritmalar, canlıların çoğalması sonucunda kendi özelliklerini bir sonraki nesle aktarma
yeteneklerini, güçlü olanın yaşama şansının yüksek olması ve bazı durumlarda önceden nasıl olacağı
bilinmeyen değişimlerin bir hesaplama yöntemi içerisinde bir arada kullanılması sonucunda ortaya
çıkmış bir yöntemdir.
Genetik Algoritmaların temel amacı, fazla sayıda sınırlama içeren ve karmaşık optimizasyon sorunlarının
çözümlerini bulmaktır. Önbilgi ve varsayımlar olmadan, sadece uygunluk fonksiyonu (fitness function) ile
çalışabilmektedir.
Genetik Algoritmalar, rastsal arama tekniklerini kullanarak çözüm bulmaya çalışan, parametre kodlama
esasına dayanan bir çözüm-arama tekniğidir. Bir veri grubu içinde özel bir veriyi bulmak için – diğer bir
deyişle bir çözüm grubu içinde özel bir çözümü bulmak için kullanılır.
Genetik Algoritma (GA)
• GA, sistemin parametreleri ile değil, parametre takımının kodlanmış bilgileriyle
uğraşırlar.
• GA fitness (uygunluk) fonksiyonunun türevlerini ve bir takım ek bilgileri değil,
doğrudan fitness fonksiyonunun kendisini kullanırlar.
• Bazı problemlerde sonsuz sayıda çözüm olabilir ama en uygun ve hızlı çözümü
bulmaya ihtiyacımız vardır.
• Genetik algoritmalar aramaya tek bir noktadan değil, noktalar kümesinden başlar. Bu
nedenle çoğunlukla yerel (lokal) en iyi çözümde sıkışıp kalmazlar.
• Genetik algoritmalar problemlere tek bir çözüm üretmek yerine farklı çözümlerden
oluşan bir çözüm kümesi üretir. Sonuçta bütünsel (global) çözüme ulaşma olasılığı
yükselmektedir.
• GA’da deterministlik değil rastlantısal geçiş kuralları kullanılır.
Genetik Algoritmaya Ne Zaman İhtiyaç Var ?
• Çözüm arama uzayının büyük ve karmaşık olduğu durumlarda. Örneğin çözüm için çok
fazla zaman gerektiği durumlarda…
• Mevcut bilgiyle sınırlı arama uzayında çözümün zor olduğu durumlarda…
• Problemin belirli bir matematiksel modelle ifade edilemediği durumda…
• Geleneksel optimizasyon (eniyileme) yöntemlerinden istenen sonucun alınamadığı
alanlarda etkili ve kullanışlıdır.
2222
)()1(),( 33)1(2 yxyx
eyxxexyxf 

Genetik Algoritma Özellikleri
Avantajları
– Çok amaçlı optimizasyon yöntemleri ile kullanılabilmesi
– Çok karmaşık ortamlara uyarlanabilmesi
– Kısa sürelerde iyi sonuçlar verebilmesi
Dezavantajları
– Son kullanıcının modeli anlamasının güçlüğü
– Problemi Genetik Algoritma ile çözmeye uygun hale getirmek zorluğu
– Uygunluk fonksiyonunu belirlemek zorluğu
– Çaprazlama ve Mutasyon tekniklerini belirleme zorluğu…
Genetik Algoritma Adımları
1) Başlangıç popülasyonunu rastlantısal olarak üret.
2) Popülasyon içindeki tüm kromozomların fitness (uygunluk/amaç)
fonksiyonu değerlerini hesapla. (EVALUATION)
3) Çoğalma (tekrar üreme), Çaprazlama (CROSSOVER) ve
Mutasyon (MUTATION) işlemlerini uygula. Yeni popülasyonun
kromozomlarını belirle.
4) Oluşturulan her yeni kromozomun fitness fonksiyonu değerlerini
bul.
5) Fitness fonksiyonu değerleri kötü olan kromozomları
popülasyondan çıkar.
6) 3-5 arasındaki adımlar tekrar et.
1. Başlangıç: Çözümlerin kodlanması gerçekleştirilir ve n kromozomdan oluşan rastgele (genel olarak ama zorunlu değil) bir
popülasyon oluşturulur
2. Uygunluk: Toplumdaki her x kromozomu için f(x) "fitness fonksiyonu" uygunluk değeri değerlendirilir.
3. Yeni Popülasyon : Aşağıdaki adımlar izlenerek yeni popülasyon üretilir. Başlangıç popülasyonu oluşturulmuş genetik
algoritma üç evrim operatörüyle çalışır.
Seçim: popülasyondaki kromozomların uygunluk değerlerine bağlı olarak, yeni kromozomları oluşturmak için, ebeveyn
birey seçmesi işlemidir. Popülasyondan uygunluklarına göre iki kromozom seçilir (uygunluk değeri iyi olanın seçilme
şansı daha fazladır)
Çaprazlama: ebeveyn kromozomlardaki genlerin bazılarının karşılıklı yer değiştirmesi işlemidir. Çaprazlama ile
kromozomlar yeni çocuk oluşturmak için birbirleriyle eşleştirilir. Eğer çaprazlama yapılmazsa, çocuk kromozom
anne-baba(ebeveyn) kromozomların tıpatıp aynısı olacaktır.
Mutasyon: Sürekli yeni nesil üretimi sonucunda, belli bir süre sonra nesildeki kromozomlar tekrar edebilir ve farklı
kromozom üretimi azalabilir. Bu yüzden mutasyon işlemi ile bazı genler değiştirilir.
Kabul: Çocuk kromozom, yeni popülasyona eklenir.
4. Yeni Popülasyon: Yeni popülasyon algoritmanın tekrar işlenmesinde kullanılır.
5. Iterasyon Kontrolü: Eğer bitiş durumu sağlandıysa, popülasyondaki en iyi çözüm sonuç olarak döndürülür. Iterasyona
devam edilecekse Adım 2’ye gidilir.
Genetik algoritmanın çalışması esnasında istenen çözüm bulunduğunda, GA’nın başlangıcında tanımlanan toplam
iterasyon sayısına ulaşıldığında veya uygunluk değeri sürekli olarak sabit kaldığında algoritma sonlandırılır.
Genetik Algoritma Adımları
Genetik Algoritmaların Çalışma Prensibi
Genetik Algoritmaların Çalışma Prensibi
GENETİK ALGORİTMA TERİMLERİ
Kromozom (Birey)
• Birden fazla genin bir araya gelerek oluşturduğu diziye denir.
• Kromozomlar, alternatif aday çözümlerini gösterirler.
Gen
• Kalıtsal molekülde bulunan ve organizmanın karakterlerinin tayininde rol oynayan
kalıtsal birimlere gen denir.
• Yapay Sistemlerde gen, kendi başına anlamlı bir bilgi taşıyan en küçük birim olarak
tanımlanır.
Populasyon (Nesil/Bireyler/Kromozomlar)
• Kromozomlardan (bireylerden) oluşan topluluğa denir (Anne, Baba, Dede, Nine, Çocuklar).
• Popülasyon, geçerli alternatif çözüm (beklenen kromozomlar) kümesidir.
• Başlangıç popülasyonundaki her bir kromozom, problemin olası bir çözümünü temsil eder.
• Popülasyondaki kromozom sayısı algoritma boyunca genelde sabit tutulur. Ancak
popülasyondaki kromozom sayısının sabit tutulması gerektiğiyle ilgili genel bir kural
yoktur.
• Başlangıçta belirli kriterlere göre veya rastgele kromozomlardan oluşan bir
popülasyon oluşturulur.
Populasyon (Nesil/Bireyler/Kromozomlar)
Popülasyondaki kromozom sayısı nasıl belirlenir ?
Genetik Algoritmada popülasyondaki kromozom sayısı (popülasyon büyüklüğü) ile ilgili genel bir
kural yoktur. Bununla birlikte kromozom sayısının ne olacağı problemin yapısına göre
belirlenmektedir.
 Kromozom sayısının çok fazla olması çözüme ulaşma kalitesini arttırır ancak algoritmanın
adımları daha uzun zaman alacağı için çözüme ulaşma süresi artar.
 Popülasyondaki kromozomların sayısı küçük seçildiğinde ise iterasyonlar daha hızlı olur
ancak algoritmanın yerel (lokal) optimuma takılma şansı artar.
 Popülasyondaki kromozom sayısı genellikle 100 ile 300 arasında seçilmektedir.
Populasyon (Nesil/Bireyler/Kromozomlar)
Popülasyon büyüklüğü genetik algoritmanın tüm performansını ve verimliliğini
etkiler.
 Genetik algoritmalar genellikle az sayılı popülasyonlarla çalıştıklarında iyi sonuçlar
vermemektedirler. Çünkü popülasyon yeterli örnek büyüklüğünü içermemektedir. Eğer
kromozom sayısı az olursa GA, çözüm aranan uzayın ancak bir kısmını gezebilmekte ve
çaprazlama için fazla bir seçenek bulamamaktadır.
 Büyük popülasyonların çok sayıdaki hiper-alanlardan temsiller içerme ihtimali daha
fazladır. Diğer yandan büyük popülasyonlar her nesil için daha fazla değerlendirme
yapmayı gerektirmektedir. Bu durum, GA’nın kabul edilemeyen bir sürede sonuca
ulaşmasına neden olabilir. Yapılan araştırmalar, belli bir noktadan sonra popülasyon
sayısını artırmanın bir yararı olmadığını göstermiştir.
• Gen: Canlıların karakterlerini belirleyen ve anlamlı bilgi içeren kromozom içindeki en küçük
birimlerdir.
• Kromozom (Birey): Birden fazla genin bir araya gelerek oluşturduğu diziye denir. GA’’da her
kromozom belirlenen problem için potansiyel bir çözümü temsil etmektedir. Çözüm için kullanılan
bireyler. GA’da her birey doğadakinden farklı olarak yalnızca bir kromozomdan oluşmaktadır.
• Popülasyon (Topluluk): Kromozomlardan oluşan topluluktur. GA’da olası çözümlerden oluşan
kümeye karşılık gelir. Çözüm kümesini oluşturan kromozomların tümüdür.
• Seçim (Selection) : Var olan kromozomu genetik yapısında herhangi bir değişiklik yapmadan yeni
nesle kopyalar.
• Çaprazlama (Crossover) : İki kromozomun yapılarının rastlantısal olarak birleştirilerek yeni çocuk
kromozomlar oluşturulmasıdır. İşlem, ikili dizilerin parçalarının değiş tokuşu ile gerçekleştirilir.
• Mutasyon (Mutation) : Çaprazlama ile elde edilen bir çocuk kromozomun genlerinden birinin ya
da birkaçının bilgisinin veya yerlerinin değiştirilmesiyle oluşturulur.
Terminoloji Özeti
Fitness (Uygunluk) Fonksiyonu
Kromozomlardan meydana gelen bir popülasyon oluşturulduktan sonra, popülasyondaki her
kromozomun uygunluk (fitness) değeri hesaplanır.
Bu fitness değeri, kromozomların karşılaştırılması ve iyi olanların seçimi için kullanılır.
Bu örnekte f(x1)>f(x2) (veya P(x1)>P(x2)) olduğundan x1 kromozomu, x2 kromozomundan
daha iyidir.
Fitness (Uygunluk) Fonksiyonu
Gezgin Satıcı Probleminde kullanılan Fitness fonksiyonu:
Satıcının ürünleri ilgili şehirlere en kısa mesafe kat ederek dağıtması gerekmekte. İlgili
şehirlere sıralı erişim için bir çok alternatif güzergah seçeneği vardır.
• Fitness fonksiyonu: f(x) = min(di j ) Burada di j iki şehir arasındaki mesafedir.
Bu örnekte f(x1) < f(x2) olduğundan x1 kromozomu, x2 kromozomundan daha iyidir.
Fitness (Uygunluk) Fonksiyonu
Optimizasyon karar verme ve fiziksel bir sistemin analizi konularında oldukça önemli bir
araçtır.
Bu aracın kullanılabilmesi için ilk olarak sistemin performansını sayısal olarak ölçebilen bir
uygunluk değerinin belirlenmesi gerekmektedir.
Bu uygunluk tek bir rakam ile ifade edilebilen kâr, zaman, miktar veya bunların
kombinasyonu vb. olabilmektedir. Belirlenen uygunluk fonksiyonu f(x), sistemin ‘değişken-x’
veya bilinmeyen olarak tanımlanan belirli karakteristiklerine bağımlıdır. Bu değişkenler sıklıkla
sınırlandırılmakta veya kısıtlanmaktadırlar.
BİLGİNİN (KROMOZOMLARIN) KODLANMASI
(Popülasyonun Oluşturulması)
• Kodlama, Genetik Algoritmanın çok önemli bir kısmını oluşturmaktadır.
• Probleme Genetik Algoritma uygulanmadan önce, verinin uygun şekilde kodlanması
gerekmektedir.
• Kurulan genetik modelin hızlı ve güvenilir çalışması için bu kodlamanın doğru yapılması
gerekmektedir.
Kodlama Çeşitleri :
1. İkili (binary) kodlama
2. Permütasyon kodlama
3. Değer kodlama
4. Ağaç kodlama
1) BINARY (İKİLİ) KODLAMA
Bu kodlama ilk GA uygulamalarında kullanıldığı için hala en çok kullanılan yöntemlerdir. Her
kromozom 0 ve 1’lerden oluşan BIT diziyle ifade edilir. Bu dizideki her bit, çözümün bir özelliğini
taşır. Dizinin tümü ise bir sayıya karşılık gelir. Basit, kolay ve hızlı işlemler için uygundur.
Kromozom A: 101110010110
Kromozom B: 010110100000
2) PERMÜTASYON KODLAMA
• Burada her kromozom, sayıları bir sırada temsil eden bir sayı dizisidir.
• Sıralama ve düzenleme problemlerinde kullanılır.
• Permütasyon kodlama, Gezgin Satıcı ve Çizelgeleme Problemleri için kullanışlıdır.
Kromozom A: 3 5 1 2 7 6 0 4
Kromozom B: 0 1 5 6 2 3 4 7
3) DEĞER KODLAMA
• Karmaşık verilerin kullanıldığı problemlerde gerçekleştirilir.
• Değerler; gerçek sayılar, karakterler veya nesneler olabilir.
• Bu tip kodlamada probleme özgü yeni çaprazlama ve mutasyon yöntemleri geliştirmek
gereklidir.
Kromozom A: 3.2 6.5 0.8 9.4
Kromozom B: A B C D
Kromozom C: (geri) (sağ) (ileri) (sol)
4) AĞAÇ KODLAMA
• Bu yöntem gelişen, değişen programlar veya ifadeler için kullanılır.
• Çoğunlukla ifadesel çözümler içeren problemlerde kullanılır, her kromozom bir nesnenin
ağacıdır.
• Ağaç kodlama, program geliştirmek için uygundur. Örneğin Lisp ve Prolog gibi dillerde ağaç
yapısı kullanılır.
• Örneğin her kromozom, bazı nesnelerin (örneğin fonksiyonlar veya programlama dilindeki
komutlar gibi) ağacıdır.
GENETİK ALGORİTMA PARAMETRELERİ
Genetik algoritma uygulamasının önemli bir adımı da
çeşitli parametrelerin belirlenmesidir. Parametreler
genetik algoritma performansı üzerinde çok önemli
bir etkiye sahiptir. Kontrol parametreleri olarak da
adlandırılan bu parametreler popülasyon büyüklüğü,
çaprazlama olasılığı, mutasyon olasılığı, seçim stratejisi,
fonksiyon ölçeklemesini kapsamaktadır.
Parametreler birbirlerini doğrusal olmayan biçimde
etkilediği için aynı anda optimize edilemezler.
Literatürde parametre seçimi ve adaptasyonu üzerinde
oldukça fazla sayıda çalışma yapılmış olmakla birlikte
tüm problemlerde kullanılabilecek en iyi parametreler
üzerinde bir uzlaşı söz konusu değildir.
1) Popülasyon Büyüklüğü (Kromozom Sayısı  )
Popülasyon büyüklüğü genetik algoritma kullanıcısı tarafından verilen en önemli kararlardan
biridir. Bu değer küçük olarak seçildiğinde algoritmanın yerel optimuma takılması olasılığı vardır.
Büyük bir değer ise çözüm uzayının daha iyi tarama olasılığına karşı çözüm için gerekli zaman ve
kaynakları artırmaktadır.
Popülasyon büyüklüğü diğer genetik algoritma parametrelerinden tamamen ayrı düşünülemez.
Belirlenecek büyüklük, hesaplama etkinliği, yeterli örnekleme sağlayabilme durumu,
popülasyonun çeşitliliği, çaprazlama ve seçim baskısı gibi parametrelerin dengelemesine katkı
sağlamalıdır.
Örnekte:
6 tane kromozom (Popülasyon Büyüklüğü =6)
Her kromozom 4 tane gen (w1-w4) içerir.
2) Çaprazlama Oranı/Olasılığı (Crossover Rate Pc)
Çaprazlama operatöründe temel parametre çaprazlama olasılığıdır (Pc ). GA’da Pc 0-1 arasında
değişen bir değerdir ve genellikle 0.7 olarak alınır.
Çaprazlama olasılığı, çaprazlamanın ne kadar sıklıkla yapılacağını tanımlayan bir
parametredir.
Çaprazlama olmadığı durumda çocuk kromozomu, ebeveynlerin direkt kopyası olur.
Ancak bu yeni neslin önceki ile aynı olduğu anlamına gelmez. Çaprazlamanın olduğu
durumda çocuk kromozomu, ebeveynlerin her ikisinin kromozomlarının parçalarından
oluşur. Çaprazlama, yeni kromozomların eskilerinin iyi parçalarını taşıyacağı beklentisi ile
yapılır.
Çaprazlama olasılığı eşleşme havuzuna girecek kromozomların sayısını belirler.
GA’da bu oranın çok yüksek olması durumunda iyi yapı bloklarının tek bir kromozomda
birikme olasılığı oldukça azalır. Düşük bir oran belirlenmesi durumunda ise yeterli sayıda
yeni çocuk kromozmu ortaya konulamaz.
3) Mutasyon Oranı/Olasılığı (Mutation Rate Pm)
Mutasyon tekniğindeki önemli parametre, kromozomda ne kadar bir değişiklik olacağını gösteren
mutasyon olasılığıdır (Pm ). GA’da Pm 0-1 arasında değişen bir değerdir ve orta büyüklükte bir
popülasyon için genellikle 0.001 olarak alınır.
Eğer mutasyon yok ise (Pm=0), yeni birey çaprazlamadan hemen sonra oluşturulur demektir.
Mutasyon olasılığının %100 olması ise (Pm=1), kromozomun tamamen değiştirildiği anlamına
gelir.
Mutasyonun temel amacı popülasyondaki çeşitliliği korumaktır. Mutasyon olasılığının artması
genetik aramayı raslantısal bir aramaya dönüştürür; ancak diğer taraftan bu durum kayıp genetik
materyali tekrar bulmada yardımcı olmaktadır.
Bazı çalışmalar büyük popülasyonlar için (μ>200) büyük mutasyon olasılığı (Pm>0.05)
kullanıldığında; ve benzer şekilde küçük popülasyonlar (μ<20) için ise daha küçük mutasyon
oranı (Pm<0.002) kullanıldığında performansın arttığını ortaya koymuştur. Orta büyüklükteki bir
popülasyon büyüklüğü için genellikle Pm=0.001 oranı seçilebilir.
4) Seçim Yöntemi
Eski nesli yenilemenin çeşitli yöntemleri mevcuttur.
Nesilsel (kuşaksal) stratejide, mevcut popülasyondaki kromozomlar tamamen çocuklar ile yer
değiştirir ancak popülasyonun en iyi kromozomu da yenilendiğinden dolayı bir sonraki nesle
aktarılamaz.
İyi niteliklerin bir sonraki nesle aktarımı için bu strateji en uygun (elitist) stratejisiyle beraber
kullanılmaktadır. En uygun stratejisinde, popülasyondaki en iyi kromozomlar hiçbir zaman
yenilenmemektedir. Sabit durum (steady state) stratejisinde ise, her kuşakta yalnızca birkaç
kromozom yenilenmektedir. Genellikle, yeni kromozomlar popülasyona katıldığında en kötü
kromozomlar yenilenir.
Ref: Emel ve Taşkın (2002), s136
5) Yakınsama/Sonlandırma (Termination) Kriterleri
Genetik Algoritma kaç adım çalıştırılmalı?
Lokal bir optimuma ulaşıldığında basit yakın komşuluk arama metotlarından farklı olarak genetik
algoritma prensip olarak sonsuza kadar çalışır. Bunun için pratikte bir sonlandırmam kriteri
gerekmektedir. Genetik Algoritma, sonlandırma kriterlerine ulaşıncaya kadar birkaç jenerasyon
(nesil) boyunca çalıştırılır. GA’nın kaç adım çalıştırılacağı konusunda yaklaşımlar şu şekildedir:
Sonlandırma Kriterleri
1. Maksimum Nesil: Tanımlanan sayıda nesil/jenerasyon üretildiği durumda genetik algoritma
durdurulur. (Stop after a fixed number of generations.)
2. Maksimum Süre: önceden tanımlanan süre dolduğunda genetik proses sonlandırılır. Nesil
sayısı kriteri ile birlikte kullanıldığında önceden tanımlanan nesil sayısına süreden önce
ulaşılırsa algoritma durur. (Stop after a fixed amount of time)
3. Değişmeyen Toplam Uygunluk Değeri: Bu sonlandırma şemasında, popülasyondaki
uygunluğun toplamının popülasyon kaydındaki (record) yakınsama değerine eşit veya daha
düşükse aramanın, yakınsamayı sağladığı düşünülür. Bu durum hemen hemen tüm bireylerin
belli bir uygunluk aralığında olmasını garanti eder. Ancak bu yakınlaşma kriterini en zayıf gen
değişimi ile birlikte düşünmek daha iyi sonuç verir. Aksi durumda popülasyondaki yeni birkaç
düşük uygunluklu birey toplam uygunluğu bozabilir. Yakınsama değeri belirlenirken
popülasyon büyüklüğü dikkate alınmalıdır.(Stop when a chromosome reaches a specified
fitness level.)
4. Minumum Tolerans Sağlandığında: Belli bir tolerans (hata oranı) dahilinde, bir
kromozomun problemin çözümünde başarı elde etmesine kadar çalışır. (Stop when a
chromosome succeeds in solving the problem, within a specified tolerance).
5. Sezgisel Karar: Kişisel bakış veya sezgisel duruma göre jenerasyon istenilen anda
durdurulabilir. (Human judgment can also be used in some more subjective cases.)
7. Diğer Sonlandırma Teknikleri:
 En İyi Birey: Bu kriter popülasyondaki en düşük uygunluğu yakınsama değerinin altına düştüğünde arama
durdurulur. Bu metot, en azından bir adet iyi çözümü garanti ederek aramayı daha hızlı sonlandırır.
 En Kötü Birey: En kötü birey kriteri kullanıldığında popülasyondaki en az uygun bireyin yakınsama kriterinden
daha düşük bir uygunluğa sahip olduğu durumda arama sonlandırılır. Bu durumda tüm popülasyonun belli bir
minimum standardın üstünde olması sağlanır. Ancak en iyi bireyin en kötüden önemli ölçüde farklı olmayabilir. Bu
durumda, aşılacak belli bir maksimuma göre tanımlanan yüksek bir yakınsama değeri hiçbir zaman
sağlanamayabilir.
Bu kriterlerden bir kaçı aynı anda kullanılabilir.
GENETİK ALGORİTMA
OPERATÖRLERİ
Genetik algoritmalarda bir sonraki nesli elde etmek için 3 ana genetik
operatör kullanılır:
A. SEÇİM (Yeniden Üretme-Reproduction),
B. CROSSOVER (Çaprazlama)
C. MUTATION (Mutasyon)
Genetik Algoritma uygulamalarında yapılan işlemlerin %90-95’i seçim
ve çaprazlama operatörleri ile ilişkilidir. Mutasyon için genellikle düşük
bir olasılık değeri tercih edilmektedir
A) SEÇİM (SELECTION) - Kromozom Seçimi
Genetik Algoritma uygulamalarında daha yüksek uygunluğa sahip bireylerin daha fazla çoğalacağı
temeline dayalı doğal seleksiyon fikri yeniden üretme veya seleksiyon/seçim olarak adlandırılır.
Popülasyondaki bütün kromozomların uygunluk değerleri hesaplandıktan sonra, bunlardan bazıları
yeni nesiller üretmek için seçilirler.
Amaç: seçilen uygunluk fonksiyonuna ve seçim yöntemine göre elimizdeki popülasyondan yeni bir
neslin bireylerini oluşturmak için (kromozomları) seçmektir.
 Uygunluk değeri yüksek olan kromozomun, yeni nesle aktarılma ihtimali daha yüksektir.
Seçim işlemi için bazı yöntemler:
1. Rulet tekeri yöntemi
2. Sıralı seçim yöntemi
3. Sabit durum yöntemi
4. Turnuva yöntemi
SEÇKİNLİK (Elitism)
Seçkinlik, GA algoritmalarında bir popülasyonun maksimum uygunluk değerinin bir diğerine
geçildiğinde azalmamasını temin eden özelliktir.
Çaprazlama ve mutasyonla yeni popülasyon üretildiği zaman, en iyi kromozom kaybedilecektir.
Bunu önlemek için önce popülasyondaki en iyi kromozom (veya birkaç en iyi kromozom) yeni
popülasyona kopyalanır (koruma altına alınmış olur). Geri kalanı diğer yöntemlerle devam ettirilir.
Seçkinlik, bulunan en iyi sonucun kaybını önlediğinden GA’nın performansını oldukça hızlı bir
şekilde arttırır.
1) Rulet Tekeri/Çemberi ile Seçim
En basit seçim yöntemi olarak bilinmektedir.
Bu yöntemde seçilme işlemi bireylerin (kromozomların)
uygunluk değerine göre yapılmaktadır. Fakat uygunluk
değeri en büyük olanın seçileceği garanti edilmez, yalnız
seçilme şansı daha fazla olacaktır. Bu yöntemde bütün
uygunluk değerleri bir tabloya yazılır ve toplanır. Uygunluk
değeri toplama bölünerek bireylerin [0,1] aralığında seçilme
olasılıkları belirlenir. Rulet tekerleği seçimi çözümlerin
uygunluk değerlerinin pozitif olması gerekir.
Diğer bir uygulanışı :
Tüm bireyler birbirine bitişik bir şekilde düz bir çizgi üzerine
dizilirler. Her bir ferde ilişkin bölümün uzunluğu, onun
uygunluk değeri kadar olur. Rasgele sayı üretilir ve rasgele
sayı hangi bölüm içerisine gelirse, o bölümün ait olduğu fert
seçilir. İşlem ulaşılacak popülasyonun gerekli adedi elde
edilene kadar devam eder.
Uygunluk fonksiyonu: f(x)=x²
• Kromozom 1: 1101 x = 13 x² = 169
• Kromozom 2: 0100 x = 4 x² = 16
• Kromozom 3: 1011 x = 11 x² = 121
• Kromozom 4: 1000 x = 8 x² = 64
 f(x) = 169+16+121+64 = 370
• Kromozom 1: 169/370=0,456 (%46)
• Kromozom 2: 16/370 =0,043 (%4)
• Kromozom 3: 121/370=0,327 (%33)
• Kromozom 4: 64/370 =0,172 (%17)
%46
%17
%33
%4
Eğer uygunluk değerleri arasında büyük farklar varsa çözümün aranmasında sorunlar ortaya çıkar.
Örneğin, eğer en iyi kromozomun uygunluğu diğer tüm kromozomların toplamının %90’ı ise
diğer kromozomların seçilme şansı çok azalacaktır. Bunu önlemek için Sıralı Seçim
kullanılabilir.
2) SIRALI (RANK) SEÇİM
• Rulet Tekeri yönteminde, eğer uygunluk değerleri arasında büyük farklar varsa çözümün
aranmasında sorunlar ortaya çıkar. Örneğin, eğer en iyi kromozomun uygunluğu diğer tüm
kromozomların toplamının %90’ı ise diğer kromozomların seçilme şansı çok azalacaktır. Bunu
önlemek için Sıralı Seçim kullanılabilir.
• Ayrıca sıralama, uygunluk fonksiyonun tam olarak tanımlanamadığı problemler için de doğal bir
seçenek olabilir. Bu gibi problemlerde tüm dikkati uygunluk fonksiyonunu alacağı değere atfetmek
mantıklı değildir çünkü bazı durumlarda bu durum mümkün de olmayabilir.
• Sıralı seçimde popülasyondaki kromozomlar da en kötü uyumlulukta olan kromozoma 1 değeri,
sonrakine 2 değeri, … ve sonuncu olan en iyi kromozoma ise N değeri verilir.
• Uygunluklar arasındaki mutlak farklılıklar dikkate alınmadığı için sıralama seçiminde uygunlukları
derecelendirme gereksinimi de bulunmamaktadır. Böylelikle bütün kromozomlara aynı oranda
seçilme şansı verilir.
• Fakat bu yöntemde en iyi kromozomlar, diğerlerinden daha farklı olmadığından çözüme yaklaşma
daha yavaş olacaktır. Çeşitliliği korur ve daha başarılı arama sağlar. Uygulamada potansiyel aileler
seçilir ve hangi ailenin bir sonraki nesil seçileceğine yönelik bir turnuva düzenlenir.
Farklı şekillerde yapılabilir olmakla birlikte aşağıdaki 2 yöntem yaygın olarak kullanılmaktadır:
1. Popülasyondan birey çiftlerini rastgele seçilir. 0-1 arasında R random sayısı üretilir. Eğer R<r
ise ilk birey Parent (aile) olarak seçilir. Eğer R  r ise ikinci birey seçilir. Bu ikinci ailenin seçimi
için de aynen tekrarlanır. Burada r değeri bu metot için tanımlanmış 0-1 arasında bir eşik
parametresidir.
2. Popülasyondan rastgele iki farklı birey seçilir. Daha yüksek değerlendirme değeri olan birey
parent (aile) için seçilir. İkinci aileyi bulmak için de bu adım tekrarlanur.
3) SABİT DURUM/KARARLI HAL SEÇİMİ (YERİNE GEÇME)
• Bu seçimin ana düşüncesi, kromozomların büyük kısmının bir sonraki nesilde hayatta kalmak
zorunda olmasıdır.
• Her yeni nesilde en yüksek uygunluk değerine sahip kromozomlar, yeni çocukları oluşturmak
için seçilir.
• Her nesilde yeni bir kromozom (çocuk) oluşturmak için birkaç tane uygunluk değeri iyi olan
kromozom seçilir. Düşük uygunluk değerine sahip kromozomlar kaldırılarak yerlerine bu yeni
oluşturulan çocuk kromozomlar konur.
• Geri kalan kromozomlar değiştirilmeden yeni nesle aktarılır.
• Bu yöntemde alt popülasyon oluşturulduktan sonra fitness değerleri hesaplanır, en kötü
kromozomlar yerlerini başlangıç popülasyonundaki en iyi kromozomlara bırakır.
4) TURNUVA YÖNTEMİ
Genetik algoritma arama performansının en iyi olması için seçim baskısı ve popülasyonun
çeşitliliğinin ayarlanabildiği bir seçim yöntemi ideal olandır Turnuva seçimi, seçim baskısı
açısından sıralama seçimi ile benzerdir ancak ona göre hesaplaması daha etkin ve paralel
uygulamalar için daha uygundur.
Rulet tekerleri seçiminden farklı olarak turnuva seçimi N birey arasında bir turnuva düzenleyerek
seçim baskısı sağlar. Kazanan birey uygunluk değerine göre belirlenir. En yüksek uygunluk
değerine sahip birey genellikle deterministik olarak seçilir. Turnuva, eşleşme havuzu yeni nesil
oluşturmak için doluncaya kadar tekrarlanır. Genelde turnuva iki birey arasında düzenlenir ancak
keyfi olarak seçilen bir sayıdaki birey arasında da uygulanabilir. Turnuva gruplardan bağımsız
olarak düzenlenir ancak grup sayısı arttıkça seçim baskısı da artacaktır. Uygulamada 6-10 grup
önerilmektedir. Turnuva kazananlardan oluşan eşleşme havuzu yüksek bir ortalama popülasyon
uygunluğuna sahiptir. Bu uygunluk farkı seçim baskısı sağlar ve bu durum da, genetik algoritmayı
başarılı genlerin uygunluğunu artırmaya zorlar.
5) BOLTZMANN (Simulated Annealing) YÖNTEMİ
Boltzmann seçimi Benzetilmiş Tavlama veya Benzetimli Tavlama algoritması prensiplerini
kullanarak ve termodinamik olarak seçim baskısını kontrol eden seçim mekanizmasıdır. Tavlama
benzetimi algoritması bir yerel arama algoritmasıdır ve pek çok değişkene sahip fonksiyonların
en büyük veya en küçük değerlerinin bulunması ve özellikle pek çok yerel en küçük değere sahip
doğrusal olmayan fonksiyonların en küçük değerlerinin bulunması için tasarlanmıştır. Boltzmann
seçiminde önceden belirlenmiş tabloya göre sürekli değişen sıcaklık seçim oranını kontrol eder.
Sıcaklık düşük seçim baskısı anlamına gelecek biçimde yüksek olarak tutulur. Daha sonra seçim
baskısı kademeli olarak yükseltilir ve böylelikle uygun bir seviyedeki çeşitlilik korunurken genetik
algoritmanın arama uzayını en iyi kısma yakın olacak biçimde küçültmesi sağlanır.
Boltzmann seçim mekanizmasının temelinde mevcut i çözümü ve alternatif j çözümü arasındaki
rekabet yatar. Burada i’nin kazanma olasılığı aşağıdaki formülle hesaplanmaktadır:
Burada T sıcaklığı, fi ve fj mevcut ve alternatif çözüm maliyet, uygunluk fonksiyon değeri veya
uygunluk değerini göstermektedir.
Formülde kullanılan T ve k hesabı :
T=T0 (1-α)k
k=(1+100*g/G)
Burada
g : mevcut jenerasyon sayısı
G : maksimum g değeri.
α : [0-1] aralığında seçilen bir sayı.
T0 : [5-100] aralığında seçilen bir sayı
 T, 0 değerine ulaştığında global çözüme ulaşılmış olmaktadır.
Seçim mekanizmasının seçimi diğer yönlerinden bağımsız olarak yapılamaz. Değerlendirme
fonksiyonu çok karmaşık ise en fazla artırımsal modeller problemli olacaktır. Karmaşıklık
durumunda seçim baskısı azaltılmalıdır. Karmaşıklık yoksa artırımsal modeller yeni iyi bireyler
önemli artışlar sağlayabilir. Bireylerin silinmesi de dikkatli olunmasını gerektirmektedir. En kötü
bireylerin ortadan kaldırılması büyüme oranını artırmaktadır ancak bu durum daha düşük kontrol
demektir.
B) ÇAPRAZLAMA (CROSSOVER)
Çaprazlama : 2 kromozomun (çözümün) birbirleri arasında gen alışverişinde bulunup 2 yeni
kromozom oluşturmasıdır. Diğer bir deyişle, anne ve babadaki (Parents) bazı genlerin yer
değiştirmesi ile yeni çocukların oluşturulma işlemidir.
• Genetik Algoritmadaki en önemli parametrelerden bir tanesidir.
• Binary kodlanmış değişkenlerin yaptıkları çoğalma faaliyetinin "kromozomların çaprazla-
masına" benzemesinden dolayı böyle adlandırılmaktadır.
• Eğer kodlamada gerçek değerler kullanılıyorsa, klasik çaprazlama yöntemi yerine daha farklı
yöntemler kullanılmaktadır.
• Seçim yöntemi ile yapay seçim sonucunda elde edilen yeni popülasyonlardan rastsal olarak
2 kromozom seçilir ve karşılıklı çaprazlama işlemine tâbi tutulur.
1) RASTGELE SEÇİM
Bu teknikte gelecek nesli oluşturmak için aile popülasyondan rastgele seçilerek belirlenir. Bunun
için programlama dillerinin hepsinde mevcut olan random() vb fonksiyon kullanılmaktadır. Basit
GA algoritmalarında sıklıkla kullanılmaktadır.
2) BİR NOKTADAN (Binary Kodlu Bilgide)
Genler belli bir sıradan sonra çaprazlama gen değiş tokuşu yaparlar. Örneğin 5.bit baz alınarak
çaprazlama:
Bu bitler
sabit kalır
Bu bitler
değiş tokuş edilir
ÇAPRAZLAMA SONUCU
5
3) N-NOKTADAN (Binary Kodlu Bilgide)
Bu bitler
sabit kalır
Bu bitler değiş
tokuş edilir
Bu bitler
sabit kalır
Bu bitler değiş
tokuş edilir
ÇAPRAZLAMA SONUCU
5 8 14 18
4) UNIFORM ÇAPRAZLAMA (Binary Kodlu Bilgide)
Bitler rastgele biçimde değiş tokuş edilerek yeni kromozomlar oluşturulur. Her bir gen için
çaprazlama, kromozomlarla aynı uzunlukta ve rastgele oluşturulan "ikili çaprazlama maskesine"
göre yapılır. Yani her bir Parent (ebeveyn) çifti için yeni bir çaprazlama maskesi rastgele
oluşturulur.
İkili
çaprazlama
maskesi
5) TEK ARİTMETİK ÇAPRAZLAMA (Değer Kodlu)
Patents : {x1,…,xn} ve {y1,…,yn} ve 1 k  n olmak üzere:
• k rastgele seçilir
• Yeni kromozomlar (çocuklar) için k.bilgi (geni) için yeni değer elde edilir:
1.çocuk kromozomu için ( =0.3) kromozomlar :
2.çocuk kromozomu için ( =0.3) kromozomlar:
k=8 ve =0.5 alındığında aşağıdaki gibi iki farklı çocuk kromozomları elde edilir:
𝒌 𝒌
𝒌 𝒌
𝒌 𝒌
6) BASİT ARİTMETİK ÇAPRAZLAMA (Değer Kodlu)
𝒌 𝒌 𝐧 𝒏
Örnek k=7 ve  = 0.5 için : k.genden n.gene kadar aritmetik çaprazlama işlemi uygulanır:
7) BÜTÜN ARİTMETİK ÇAPRAZLAMA (Değer Kodlu)
Kromozomun tüm genleri aritmetik işlemden geçirilir:
yaxa  )1( = 0.5 için :
8) SIRALI ÇAPRAZLAMA (Permütasyon Kod)
Önce 1. kromozom için: Çaprazlama aralığı seçilir. Bu aralıktaki veriler çocuk kromozomunda
aynı aralığa kopyalanır.
Geriye kalan veriler çapraz sırayla 1, 9, 3, 8, 2 gibi kopyalanır.
Aynı işlem 2. kromozom için tekrarlanır.
9) PARÇALI EŞLEŞMELİ ÇAPRAZLAMA (Permütasyon Kod)
Adım 1
Adım 2
10) ÇEVRİM ÇAPRAZLAMA (Permütasyon Kod)
Adım 1: Çevrimleri bul
Adım 2: Değişimli çevrimleri çocuğa kopyala
NOT: Bu seçim yöntemlerinin dışında birçok yöntem de mevcuttur.
C) MUTASYON (MUTATION)
• Doğada genlerde mutasyon oranı 0.001-0.01 arasındadır. GA’da genlerde mutasyon olasılığı genelde (0.01
gibi) düşük tutulmaktadır. Uygulamalarda alınan en büyük oran değeri 10% dur. Bu nedenle mutasyon etkileri
kromozomlarda az görülmektedir.
• Yeniden ve sürekli yeni nesil üretimi sonucunda, belli bir süre sonra nesildeki kromozomlar birbirlerini tekrar
edebilir. Böylece farklı kromozom üretimi durur veya azalır. İşte bu nedenle nesildeki kromozom çeşitliliğini
artırmak için kromozomlardan bazıları mutasyona tabi tutulur.
• Mutasyon yapılmasının bir başka amacı da, popülasyondaki çeşitliliğin azalmamasını sağlamaktır.
• Mutasyon, popülasyonu lokal minimuma takılmaktan uzak tutar. Tesadüfî işlemlerle kaybedilen genetik bilgiler
gibi kayıp genetik materyalin geri kazanılmasında rol alır. Aynı zamanda genetik materyalin geri dönülemez
kaybına karşı da bir sigorta işlevi görür.
• Mutasyon sırasında kromozomdaki gen sayısı değişmez.
• GA’da Mutasyon Oranı Pm, mutasyon olasılığını gösteren orandır. Amaç mevcut kromozomların genlerinin bir
ya da birkaçını değiştirerek yeni kromozomlar elde etmektir.
1) Binary Kodda Mutasyon
2) Değer Kodda Mutasyon
ll xxxxxx  ...,,...,, 11
 iiii UBLBxx ,, 
3) Permütasyon Kodda Mutasyon
Araya İlave (Insert) mutasyon
Yer değiştirme mutasyon
Ters mutasyon
Karışık mutasyon
GENETİK ALGORİTMA
EK BİLGİLER
GA’NIN PERFORMANSINI ETKİLEYEN NEDENLER
GA’nın isleyişini etkileyen faktör parametrelerdir. Genel olarak bu parametreler:
 Popülasyon büyüklüğü,
 Mutasyon tipi ve olasılığı,
 Çaprazlama tipi ve olasılığı,
 Nesil (kromozom) sayısı
 Seçim operatörünün tipidir.
Literatürde, bu parametrelerin uygun değerlerini bulmak için yapılmış teorik veya uygulamaya
yönelik pek çok çalışma vardır.
1) Kodlama Biçiminin Etkisi
GA’nın performansını belirleyen önemli bir faktördür, fakat kodlama biçimi probleme ve
programa bağlı olduğu için bütün problemlerde geçerli olan uygun kodlama biçimini
söylemek mümkün değildir.
Michalewicz (1996) belirli bir problem tipi için gerçekleştirdiği çalışmada, gerçel sayı
gösteriminin daha çabuk sonuca götürdüğünü belirtmiştir.
GA lokal en iyi içindeki çözümü bulmak yerine yüksek oranda çoklu arama yeteneği sunarlar. GA
uygunluk fonksiyonunun hesaplanması dışında hiçbir karmaşık matematiksel formül içermez ve
genetik algoritmalar eniyileme için arama yönünde özel bir kurala sahip değildir.
2) Parametre Kodlamasının Etkisi
GA’da en önemli noktalardan biride kodlama işleminin nasıl yapılacağıdır. Parametrenin doğrusal
ya da logaritmik olarak kodlanması GA’nın performansında oldukça önemlidir.
Kodlamanın binary düzen, kayan nokta aritmetiği veya gray kodu ile gösterimi kodlama
gösteriminde en yaygın yöntemlerdir.
3) Popülasyon Büyüklüğünün Etkisi
Popülasyonun büyüklüğü problemin çözüm süresinde etkilidir.
Popülasyonda bulunan bireylerin sayısı gereğinden fazla ise çözüm süresi uzar, bireylerin sayısı
gereğinden az ise popülasyon istenen çözüme ulaşamayabilir.
Problemin yapısına göre popülasyondaki birey sayısı, GA’yı hazırlayan uzman tarafından iyi
belirlenmesi gerekir. Grefensette, GA için en uygun popülasyon büyüklüğü 10-160 birey
arasında olması gerektiğini savunmuştur.
Bunların yanında uygunluk fonksiyonunun ölçeklenmesinde rank, oransal, doğrusal ve üstel
ölçekleme gibi yöntemler mevcuttur. Problemin yapısına göre uygun ölçek seçmek, genetik
algoritmanın etkin işlemesi açısından önemlidir.
4) Kromozom Sayısının Etkisi
Kromozomun sayısı arttıkça çalışma zamanı da artmakta, sayıyı azaltma işleminde ise de
kromozomların çeşitli olması engellenmektedir.
GA’ların ana fikrinde, kromozoma sahip bireylerin karakterize ettiği toplumu yenilemesi fikri
yatar. Kromozomları, l uzunluğundaki sembollerin bir zincir oluşturması sonucu oluşan yapı ile
ifade etmek mümkündür. Oluşturulmuş olan her bir kromozom, optimizasyon probleminde
uygun bir çözüm olarak düşünülür. Sembollerin her biri gen olarak adlandırılmaktadır ve gen
hangi parametreyi ifade edecekse sıra ile dizilmesi sonucu kromozomlar oluşturulmuş olur.
GA ve optimizasyon probleminin arasında bulunan bağlantıyı uygunluk fonksiyonu (F) sağlar. F
fonksiyonu kromozomlar için kullanılır ve onları gerçel sayılara dönüştürmek için kullanılır. F
değerinin büyük olması sonucu kromozomun temsil ettiği çözüm diğer kromozomlara göre
daha iyidir.
5) Mutasyon Oranının Etkisi
Kromozomların yapısı birbirlerine benzer olmaya başladığı zaman hala çözüm değerlerinin
uzağındalarsa, bu durumu mutasyon işlemi ile atlatmak mümkündür.
GA’nın çıkmaza girdiği yerden kurtulmak için tek yol olarak da söylenebilir. Ancak yüksek bir
değer vermek GA’yı kararlı bir noktaya ulaşmasını zorlaştıracaktır.
6) Çaprazlama Biçiminin Etkisi
Normal olarak çaprazlama tek nokta baz alınarak gerçekleştirilir, fakat yapılan araştırmalar bazı
problemlerde çok noktalı çaprazlamanın daha fazla yararlı olduğunu göstermiştir.
7) Başarı Değerlendirme Yönteminin Etkisi
Her iterasyonun sonunda düzgün yazılmayan bir değerlendirme işlevi çalışma zamanını
uzatmanın yanında çözüme hiçbir zaman erişememeye de neden olabilir.
Ref: Elen, A., Avuçlu, E., GELECEĞİN DÜNYASINDA BİLİMSEL VE MESLEKİ ÇALIŞMALAR (2019), Ekin Basım Dağıtım.
GA’nın Geleneksel Optimizasyon
Yöntemleri ile Karşılaştırılması
Genetik algoritmaların temel prensibi basittir: Genetik ve doğal seleksiyonu bilgisayar yazılımları kullanarak
taklit etmek. Problem parametreleri de DNA’daki gibi bir doğrusal veri yapısı, bir vektör veya bir dizi gibi en
doğal biçimi ile kodlanır.
Genetik algoritmalar geleneksel optimizasyon tekniklerinden aşağıdaki yönlerden farklıdır:
 Genetik algoritmalar problem parametrelerinin kendilerinden ziyade kodlanmış versiyonları ile çalışırlar.
 Hemen tüm geleneksel optimizasyon teknikleri tek bir noktadan hareket ederek araştırır ancak Genetik
algoritmalar ise tek bir çözüm yerine çözümlerin popülasyonunu kullanır. Bu durum GA’nın global
optimuma ulaşma olasılığını artırır ve yerel sabit bir noktaya takılmasından kaçınılmasını sağlar.
 Genetik algoritmalar değerlendirme için türevlerden ziyade uygunluk fonksiyonunu kullanır. Bu
fonksiyonlar da sürekli yada kesikli her tür optimizasyon problemine uygulanabilir.
 Geleneksel yöntemler sürekli optimizasyonlara deterministik dönüşüm uygularken genetik algoritmalar
olasılıklı dönüşüm uygular.
Genetik Algoritmaların geleneksel yaklaşımların başarısız olduğu durumlarda çarpıcı
sonuçlar ortaya koymasını sağlayan diğer bazı farkları ve avantajları aşağıdaki gibi
sıralanabilir :
 Sürekli ve kesikli değişkenleri optimize edebilir.
 Türev alma işlemine gereksinim duymaz.
 Çözüm alanında daha geniş örneklemeyi eş zamanlı araştırır. Global optimumu daha kolay belirler.
Klasik yöntemlerde ise bu durum tek nokta ve yön olarak karşımıza çıkmaktadır.
 Çok sayıda değişken ile çalışabilir.
 Farklı problemlere kolaylıkla uyarlanabilir.
 Paralel bilgisayarlarla hesaplamalar için oldukça uygundur.
 Oldukça karmaşık çözüm yüzeylerinde yerel minimumlara takılmadan değişkenleri optimize
edebilir.
 Sadece tek bir çözüm yerine optimum değişkenlerin bir listesini verebilir.
 Kodlanmış değişkenler ile optimizasyon sağlayabilmek için değişkenleri kodlayabilir.
 Nümerik olarak oluşturulan verilerle, deneysel verilerle ve analitik fonksiyonlar ile çalışabilir.
 Kendi iç kuralları ile çalıştığı için problemin kurallarını bilmesi gerekmez.
 Problemin doğrusallaştırılmasını gerektirmemektedir.
Bununla birlikte Genetik algoritmaların her tür problemin çözümünde en iyi metot olduğu da
söylenemez. Yalnızca birkaç değişkeni olan düzgün bir analitik fonksiyon geleneksel yöntemlerle
kolayca çözülebilir. Bu gibi problemlerde Genetik Algoritma başlangıç popülasyonu için
maliyetleri hesaplarken geleneksel yöntemler hesaplamayı tamamlamış olabilir.
Genetik Algoritmaların sınırlılıkları ve dezavantajları ise şu şekilde sıralanabilir:
 Uygunluk fonksiyonunu tanımlama problemi
 Vaktinden önce yakınsama olabilmektedir.
 Popülasyon büyüklüğü, mutasyon oranı, çaprazlama oranı, seçim metodu gibi çeşitli
parametrelerin belirlenmesi problem oluşturabilir.
 Probleme özgü bilgiler kolaylıkla dahil edilemez
 Lokal optimumları tanımlamada iyi bir metot değildir.
 İyi bir sonlandırıcı değildir. Harici yardım gerekebilir.
 Kesin global optimumu bulmada sorun yaşayabilir.
 Çok sayıda uygunluk fonksiyonu değerlendirmesine gereksinim duyar.
GA’nın Uygulama Alanları
Genetik Algoritmaların mühendislik problemlerinde optimizasyon amaçlı olarak kullanılmaya
başlanmıştır. Özellikle mekanizma tasarımında çok iyi sonuçlar ortaya konulmuştur. Bunların yanında
otomatik programlama, öğrenme kabiliyetli makinalar, ekonomi, ekoloji, planlama, üretim hattı
yerleşimi gibi çok farklı alanlarda da başarılı uygulamalar yapılmaktadır. Ayrıca dijital resim işleme
tekniğinde de çokça uygulama alanı bulmuştur. Bu problemlerin hemen hemen hepsi çok geniş bir
çözüm havzasının taranmasını gerektirmektedir. Bu çözüm havzasının geleneksel yöntemlerle
taranması çok uzun sürmekte, genetik algoritmayla ise kısa bir sürede kabul edilebilir bir sonuç
alınabilmektedir
Genetik Algoritmanın Kısa Tarihçesi
Genetik algoritmaların temel ilkeleri ilk kez Michigan Üniversitesi'nde John Holland tarafından ortaya
atılmıştır.
Holland 1975 yılında yaptığı çalışmaları “Adaptation in Natural and Artificial Systems” adlı kitabında bir araya
getirmiştir. Çalışmalarının sonucunu açıkladığını kitabının 1975’te yayınlanmasından sonra geliştirdiği
yöntemin adı Genetik Algoritmalar (kısaca GA ) olarak yerleşmiştir.
1985 yılında Holland’ın doktora öğrencisi David E.Goldberg 1989 yılında inşaat konusunda bir klasik sayılan
kitabını yayınlayana dek genetik algoritmaların pek pratik yararı olmayan bir araştırma konusu olduğu
düşünülüyordu. Kitabında Genetik Algoritmalara dayalı tam 83 uygulamaya yer vererek GA’nın bir anda
tanınmasını sağlamış ve çeşitli konularda pratik kullanılabilir olduğunu göstermiştir.
Sezgisel bir teknik olarak Genetik algoritmaların Yöneylem Araştırması problemlerinde kullanımı
her geçen gün artmaktadır. Genetik algoritmalar temelde iki farklı amaç için kullanılmaktadır:
1. Bir sistem performansını optimize etmek için parametre seçimidir. Bu gibi sistemler
muhtemelen kısıtlar ile birlikte büyük ölçüde sistemi kuran ya da işletenlerin belirlediği karar
parametrelerine bağlıdır. Genetik algoritma uygulamalarının çoğunluğu sistemleri optimize
etmek veya en azından onları optimuma yakınlaştırmaktır.
2. Sayısal modelleri test etmek ve uygunluğunu sağlamaktır. Literatürde karşımıza daha az
çıkan bu uygulamalarda öncelikle açıklayıcı ya da tanımlayıcı bir model kurulur, veri toplanır
ve model test edilir. Çelişkiler tespit edildiğinde model modifiye edilir. Performans
optimizasyonunu hedefleyen algoritmaların aksine burada model ile veriler arasındaki
uyumsuzluğun minimizasyonu hedeflenir.
Uygulama alanlarının bazıları aşağıdaki gibi sıralanabilir :
 Kombinatoryal Optimizasyon (Combinatorial Optimization) problemleri: Gezgin satıcı problemi,
araç rotalama problemi, Çinli postacı problemi, iş atölyesi çizelgeleme problemi, atama problemi,
yerleşim tasarımı problemi ve sırt çantası problemi vb gibi problem uygulamaları
 Bilgisayar ağları tasarımı
 Nonlineer dinamik sistem tahmini, veri analizleri
 Robot yörüngesi planlama
 Görüntü işleme
 LISP programlarının geliştirilmesi
 Stratejik planlama
 Protein moleküllerinin şeklinin bulunması
 Gaz boru hattı uygulamaları
 İmalat planlama, yerleşim planlama ve kaynak ataması
 Mekanik öğrenme,
 Yapay sinir ağlarının tasarımı,
 Sinyal işleme, filtre dizaynı
 Portföy optimizasyonu,
 Hisse senedi fiyatlarındaki değişim kalıplarını tahmini
 Montaj hattı dengeleme problemleri
 Taşıma problemi
Genetic Algorithm - Walkers
https://kottke.org/plus/misc/images/genetic-walker.gif
Genetic Algorithm – The Largest Circle
http://petehare.com/writing-a-basic-genetic-algorithm-in-obj-c/
Genetic Algorithm – Traveling Salesman Problem
https://cdn.analyticsvidhya.com/wp-content/uploads/2017/07/31104045/TravelingSalesmanUSCapitals2.gif
Genetik Algoritma
Sınıflandırılması/Yaklaşımları/Türleri
Genetik algoritmalar problem çözümünde adım adım (step by step) bir prosedür ortaya koyar.
Etkin bir arama tekniği olarak kendini ispatladığı için birçok işletme, fen bilimleri, mühendislik
vb konularında problem çözümünde kullanılmıştır. Tüm bu özellikleri araştırmacıların genetik
algoritmalara farklı yaklaşımlar geliştirmesine de olanak tanımıştır.
Farklı genetik algoritma yaklaşımları izleyen slaytlarda açıklanmaktadır.
1) Basit Genetik Algoritma Yaklaşımı
Basit genetik algoritmanın mekanizması, dizileri kopyalamak ve belirli kısımlarını değiştirmek
dışında karmaşık işlemler içermemektedir. Birçok problemin çözümünde başarılı sonuçlar elde
eden bu yaklaşım 3 işlemden oluşmaktadır:
 Yeniden birleştirme (reproduction): Yeniden birleştirme aşamasında birey dizileri uygunluk
değerlerine göre kopyalanır. En sık kullanılan yöntem rulet tekerleği seçimidir.
 Çaprazlama
 Mutasyon
Basit genetik algoritma kullanımının faydalı olduğu durumlar aşağıda sıralanmıştır:
 Arama yüzeyi geniş veya karmaşık ise,
 Alan bilgisi veya uzmanlığın arama uzayını kodlamada yetersiz kaldığı durum mevcut ise,
 Herhangi bir matematiksel analiz mevcut değil ise
 Geleneksel metotlar denemesi başarısız olmuş ise
Basit genetik algoritmanın avantajı keyfi kısıt ve amaçlar ile kolayca kullanılabilmesidir. Bununla
birlikte kullanımda bazı dezavantajları mevcuttur:
 Genellikle etkin değillerdir,
 Değerlendirmeler çok zaman almaktadır,
 Çok sayıda problemde popülasyonun büyük tutulması gerekmektedir.
2) Paralel Genetik Algoritma Yaklaşımı
Çeşitli basit genetik algoritmaların paralel olarak uygulanması ‘paralel genetik algoritma’ olarak
tanımlanmaktadır. Bu yaklaşım basit genetik algoritmaların geniş bir arama yüzeyinde optimale yakın
çözümü bulmak için harcadığı sürenin kısaltılmasına yönelik geliştirilmişlerdir. Genetik algoritmaların
paralel olarak çalıştırılabilmesi aşağıdaki elementlere bağımlıdır:
 Uygunluğun değerlendirme ve mutasyonun uygulanma biçimi,
 Seçimin lokal veya global uygulanması,
 Tek veya çoklu alt popülasyonların kullanılması,
 Çoklu popülasyonlar kullanılıyor ise bireylerin değiştirilme biçimi.
Probleme alternatif çözümler ortaya koyabilmesi, farklı noktalardan hareketle paralel arama yapılmasını
sağlaması, daha hızlı sonuç vermesi ve diğer arama prosedürleri ile kolayca bütünleştirilmesi bu
yaklaşımın avantajları olarak sıralanabilir. Paralel genetik algoritma modelinin önemli bir diğer avantajı
geleneksel ya da basit genetik algoritmaların erken yakınlaşmasını zorlaştırmasıdır. Birçok araştırmacı
tarafından paralel genetik algoritmanın daha gerçekçi bir model olduğu ileri sürülmektedir.
Paralel genetik algoritmalar da uygulama metoduna göre kendi içerisinde : A) Bağımsız paralel genetik
algoritmalar, B) Göçebe paralel genetik algoritması, C) Bölümlendirme paralel genetik algoritması,
D) Segmentasyon paralel genetik algoritması gibi kısımlara ayrılmaktadır.
3) Hibrit Genetik Algoritma Yaklaşımı
Hibrit Genetik Algoritma çaprazlama tarafından üretilen yeni bireylerin gelişimi için sezgiselliğin
kullanımını sağlamaya dönük geliştirilmiştir. Bir sezgisellik, başlangıç popülasyonu oluşturmada; diğer
ikisi de ya çaprazlama ya da karıştırmadan gelen bireylere uygulanmaktadır. Son iki sezgisellik lokal
minimuma takılı kalmasını önlemede kullanılmaktadır.
Hibrit Genetik Algoritması adımları aşağıda sıralanmaktadır:
1.Adım: Başlangıç Sezgisellik algoritmasını kullanarak ilk popülasyon kısmını oluştur,
Popülasyonun kalanını tesadüfi olarak belirle
2.Adım: Başlangıç popülasyonundaki her bir yerleşim için RemoveSharp algoritmasını uygula
Başlangıç popülasyonundaki her bir yerleşim için LocalOpt algoritmasını uygula
3.Adım: Tesadüfi olarak iki ebeveyn seç,
Seçilen ebeveynlere çaprazlama uygula ve yeni birey oluştur,
Yeni bireye RemoveSharp algoritmasını uygula,
Yeni bireye LocalOpt algoritmasını uygula,
Yeni bireyin uygunluğu herhangi bir ebeveyninden büyük ise onunla yeni bireyi değiştir.
4.Adım: Popülasyondan seçilen herhangi bir bireyi mutasyona tabi tut,
5.Adım: Adım 3 ve 4’ü belirlenen iterasyon sayısınca tekrar et.
4) Adaptif Genetik Algoritma Yaklaşımı
Popülasyon Büyüklüğü (), Çaprazlama Olasılığı (Pc) veya Mutasyon Olasılığı (Pm) genetik
algoritmanın çalıştırılması sırasında değişiyorsa adaptif genetik algoritmalar olarak
adlandırılmaktadır.
Çok optimumlu problemlerin optimizasyonunda genetik algoritmaların iki önemli karakteristiğinin
olması zaruridir. Bu özelliklerin ilki optimuma yakınsama kapasitesi; ikincisi ise çözüm uzayında
global optimumu ararken yeni bölgeleri keşfetme kapasitesidir. Bu iki karakteristik arasındaki denge
mutasyon olasılığı, çaprazlama olasılığı ve kullanılan çaprazlama yöntemi tarafından
belirlenmektedir.
Adaptif genetik algoritma yaklaşımında keşif ve sömürü (exploitation) arasındaki dönüşüm,
çözümün uygunluk değerine göre mutasyon olasılığı ve çaprazlama olasılığının değiştirilmesi ile
yapılmaktadır. Popülasyonun yerel minimuma takılma eğilimi ortaya çıktığında her iki olasılık da
artırılmakta; çözüm uzayına yayılımı artınca da azaltılmaktadır.
5) Messy (Hızlı Dağınık) Genetik Algoritma Yaklaşımı
Dağınık genetik algoritma, ikili, stokastik, değişken kromozom uzunluklu ve popülasyon temelli bir problem
çözme yaklaşımıdır. Diğer yaklaşımlardan en önemli farkı, en iyi çözüme ulaşmak için genetik materyalin yapı
bloklarını (building blocks) açıkça manipüle edebilmesidir.
Dağınık genetik algoritma 3 işlem aşaması içermektedir:
1. Başlangıç aşaması,
2. İlksel (primordial) aşama,
3. Bitişiklik durumu (juxtapositonal) aşaması.
Adımları:
 Başlangıç aşamasında, bir sonraki blok filtreleme aşamasında ortaya çıkabilecek gürültünün (noise) üstesinden
gelebilmek için yeter derecede büyük bir popülasyon elde etmek için popülasyon boyutu belirleme denklemi
kullanılır.
 Popülasyon büyüklüğü belirlendikten sonra başlangıç popülasyonu üyeleri rastgele olarak belirlenir ve seçilen
uygulamaya göre onların uygunluk değerleri hesaplanır.
 Yapı bloğu filtreleme şeması kullanılarak başlangıç aşamasında belirlenen bu popülasyon üyeleri sistematik
olarak, kullanıcı tarafından belirlenen yapı bloğu büyüklüğüne düşürülür.
 Yapı bloğu filtrelemede her bir popülasyon üyesinin belirli sayıda bit’i silinir.
 Bir sonraki jenerasyon için en iyi kısmi dizilerin saklanabilmesi için bu silme işlemini turnuva seçimi takip eder.
 Son aşamada ise filtreleme aşamasında gelen yapı blokları alınır ve bir ‘kes ve dilimle’ (cut-and-slice) operatörü
ile birleştirilir.
 Bu prosesi de turnuva seçimi izlemektedir.
Genetik Algoritmanın Yapay Zekadaki Yeri
Artificial Intelligence
Machine Learning
Neural
Networks
Deep
Learning
Genetic Algorithm - Neural Networks - Fuzzy Logic
Faydalı olması dileklerimle… Dr. Hakan Erdun , 2020

Genetic Algorithm Examples & Presentation (in Turkish)

  • 1.
  • 2.
    Genetic Algorithm (GA)Optimization – Step-by-Step Example with Python Implementation Ahmed Fawzy Gad (Presentation) Denklemde katsayıların (ağırlıkların) belirlenmesi ? w1, w2, w3, w4, w5, w6 = ? f(c) = | (w1x1 + w2x2 + w3x3 + w4x4 + w5x5 + w6x6) - 44.1 | Fitness Objective Function f(x) = 1/f(c) Fitness Function (Uygunluk Fonk.) f(x) = 1/(1+f(c)) Fitness Function f(x) = 1/(1+f(x)) Fitness Function / Probability p(x) = 1/(1+f(c)) Fitness Probability p(x) = 1/(1+f(x)) Fitness Probability P(x) = 1/Sf(x) Chromozone's Probability P(x) = 1/Sp(x) Chromozone's Probability 1.Step Başlangıçta Kromozonlar ve Genleri random olarak oluşturulur. x1 x2 x3 x4 x5 x6 y Veri 4 -2 7 5 11 1 44,1 Bu analizde F(c) veya P(x) kullanılmaktadır. Population Kromozon w1 w2 w3 w4 w5 w6 y F(c) F(x) F'(x) P(x) 1 2,4 0,7 8 -2 5 1,1 110,3 66,2 0,015 0,0149 10,8% 2 -0,4 2,7 5 -1 7 0,1 100,1 56,0 0,018 0,0175 12,7% 3 -1 2 2 -3 2 0,9 13,9 30,2 0,033 0,0321 23,2% 2. En iyi kromozon 4 4 7 12 6,1 1,4 -4 127,9 83,8 0,012 0,0118 8,5% 5 3,1 4 0 2,4 4,8 0 69,2 25,1 0,040 0,0383 27,7% 1. En iyi kromozon 6 -2 3 -7 6 3 3 3 41,1 0,024 0,0238 17,2% 3. En iyi kromozon SUM= 302,4 0,1422 0,1383 100% Karıştırılacak Kromozomların belirlenmesi: [ En iyi 3 kromozon Kromozon Çiftleri oluşturmak amacıyla seçilir. ] Kromozon w1 w2 w3 w4 w5 w6 3 -1 2 2 -3 2 0,9 2. En iyi kromozon 5 3,1 4 0 2,4 4,8 0 1. En iyi kromozon 6 -2 3 -7 6 3 3 3. En iyi kromozon Karıştırılacak olan Kromozomların Eşleştirilmesi : (1-2) (2-3) (3-1) --> Bu kural GA'nın tüm iterasyonlarında aynı şekilde kullanılır. w1 w2 w3 w4 w5 w6 1 -1 2 2 -3 2 0,9 2 3,1 4 0 2,4 4,8 0 1.Gen 2.Gen 3.Gen 2 3,1 4 0 2,4 4,8 0 3 -2 3 -7 6 3 3 3 -2 3 -7 6 3 3 1 -1 2 2 -3 2 0,9 Karıştırma (Crossover) : [ Yarıya böl ve Çarpraz karıştır ] w1 w2 w3 w4 w5 w6 1 -1 2 2 -3 2 0,9 2 3,1 4 0 2,4 4,8 0 2 3,1 4 0 2,4 4,8 0 3 -2 3 -7 6 3 3 3 -2 3 -7 6 3 3 1 -1 2 2 -3 2 0,9 Çocuklar (Offspring) : w1 w2 w3 w4 w5 w6 1 -1 2 2 2,4 4,8 0  2 3,1 4 0 -3 2 0,9 3 3,1 4 0 6 3 3  4 -2 3 -7 2,4 4,8 0 Fitness(Uygunluk) Fonksiyonu& Olasılığı En iyi kromozonlar belirlenir Parent (Eski Nesil) Offspring (Yeni Nesil) KURAL : Seçim sadece Eski Nesil veya Yeni Nesil bireylerinden oluşamaz. İkisinin karması olması gereklidir. Eşleştirme Kriteri C:UsersTOSH DesktopZAIM SunumlarYapay
  • 3.
    5 -2 3-7 -3 2 0,9  6 -1 2 2 6 3 3 Mutasyon : Her kromozon çiftinden birincisi alınır ve bunun 5.geninde mutasyon yapılır. w1 w2 w3 w4 w5 w6 -1 2 2 2,4 2,4 0 5.Genlerdeki değerler 2'ye bölünerek değiştirilir. 3,1 4 0 6 1,5 3 -2 3 -7 -3 1 0,9 Yeni Kromozonlar (Sonraki Jenerasyon için) : Population Kromozon w1 w2 w3 w4 w5 w6 1 -1 2 2 -3 2 0,9 2. En iyi kromozon 2 3,1 4 0 2,4 4,8 0 1. En iyi kromozon 3 -2 3 -7 6 3 3 3. En iyi kromozon 4 -1 2 2 2,4 2,4 0 Mutasyona uğramış kromozon 5 3,1 4 0 6 1,5 3 Mutasyona uğramış kromozon 6 -2 3 -7 -3 1 0,9 Mutasyona uğramış kromozon 2.Step x1 x2 x3 x4 x5 x6 y Veri 4 -2 7 5 11 1 44,1 Population Kromozon w1 w2 w3 w4 w5 w6 y F(c) F(x) F'(x) P(x) 1 -1 2 2 -3 2 0,9 13,9 30,2 0,033 0,032 0,031 2 3,1 4 0 2,4 4,8 0 69,2 25,1 0,040 0,038 0,037 3 -2 3 -7 6 3 3 3,0 41,1 0,024 0,024 0,023 4 -1 2 2 2,4 2,4 0 44,4 0,3 3,333 0,769 0,742 1. En iyi kromozon GA rastgele tabanlı bir optimizasyon tekniğidir. Yeni kromozonların eski kromozonlara göre 5 3,1 4 0 6 1,5 3 53,9 9,8 0,102 0,093 0,089 2. En iyi kromozon daha iyi olacağının garantisi yoktur. En azından eski kromozonların tutulması sonuçları kötüleştirmekten 6 -1 2 2 6 1,5 3 55,5 11,4 0,088 0,081 0,078 3. En iyi kromozon korur. SUM= 117,9 3,620 1,037 1,000 Karıştırılacak kromozonların seçiminde hepsi mutasyona uğramış krımozonlar olmamalı. Karıştırılacak Kromozomların belirlenmesi: [ En iyi 3 kromozon Kromozon Çiftleri oluşturmak amacıyla seçilir. ] Bu yüzden 3.En iyi kromozon yerine eski kromozonların en iyisi seçilir. Kromozon w1 w2 w3 w4 w5 w6 2 3,1 4 0 2,4 4,8 0 Eski Populasyondan En iyi Kromozon 4 -1 2 2 2,4 2,4 0 1. En iyi kromozon 5 3,1 4 0 6 1,5 3 2. En iyi kromozon Karıştırılacak olan Kromozomların Eşleştirilmesi : (1-2) (2-3) (3-1) --> Bu kural GA'nın tüm iterasyonlarında aynı şekilde kullanılır. w1 w2 w3 w4 w5 w6 1 3,1 4 0 2,4 4,8 0 2 -1 2 2 2,4 2,4 0 1.Gen 2.Gen 3.Gen 2 -1 2 2 2,4 2,4 0 3 3,1 4 0 6 1,5 3 3 3,1 4 0 6 1,5 3 1 3,1 4 0 2,4 4,8 0 Karıştırma (Crossover) : [ Yarıya böl ve Çarpraz karıştır ] w1 w2 w3 w4 w5 w6 1 3,1 4 0 2,4 4,8 0 2 -1 2 2 2,4 2,4 0 2 -1 2 2 2,4 2,4 0 3 3,1 4 0 6 1,5 3 3 3,1 4 0 6 1,5 3 1 3,1 4 0 2,4 4,8 0 Çocuklar (Offspring) : w1 w2 w3 w4 w5 w6 1 3,1 4 0 2,4 2,4 0  2 -1 2 2 2,4 4,8 0 3 -1 2 2 6 1,5 3  4 3,1 4 0 2,4 2,4 0 Parent (Eski Nesil) Offspring (Yeni Nesil) Parent (Eski Nesil) Offspring (Yeni Nesil) Bu yeni kromozonlar bir sonraki jenerasyonun Parent'leridir. (Sonraki Iterasyonun kromozonlarıdır) Eşleştirme Kriteri Yeni Nesil Populasyon (Yeni Jenerasyon) (Kromozonlar)
  • 4.
    5 3,1 40 2,4 4,8 0  6 3,1 4 0 6 1,5 3 Mutasyon : Her kromozon çiftinden birincisi alınır ve bunun 5.geninde mutasyon yapılır. w1 w2 w3 w4 w5 w6 3,1 4 0 2,4 1,2 0 5.Genlerdeki değerler 2'ye bölünerek değiştirilir. -1 2 2 6 0,75 3 3,1 4 0 2,4 2,4 0 Yeni Kromozonlar (Sonraki Jenerasyon için) : Population Kromozon w1 w2 w3 w4 w5 w6 1 3,1 4 0 2,4 4,8 0 Eski Nesilden En iyi Kromozon 2 -1 2 2 2,4 2,4 0 1. En iyi kromozon 3 3,1 4 0 6 1,5 3 2. En iyi kromozon 4 3,1 4 0 2,4 1,2 0 Mutasyona uğramış kromozon 5 -1 2 2 6 0,75 3 Mutasyona uğramış kromozon 6 3,1 4 0 2,4 2,4 0 Mutasyona uğramış kromozon 3.Step x1 x2 x3 x4 x5 x6 y Veri 4 -2 7 5 11 1 44,1 Population Kromozon w1 w2 w3 w4 w5 w6 y F(c) F(x) F'(x) P(x) 1 3,1 4 0 2,4 4,8 0 69,2 25,1 0,040 0,038 2,3% 2 -1 2 2 2,4 2,4 0 44,4 0,3 3,333 0,769 46,9% 1.En İyi Kromozon 3 3,1 4 0 6 1,5 3 53,9 9,8 0,102 0,093 5,6% 4 3,1 4 0 2,4 1,2 0 29,6 14,5 0,069 0,065 3,9% 5 -1 2 2 6 0,75 3 47,25 3,2 0,317 0,241 14,7% 3.En İyi Kromozon 6 3,1 4 0 2,4 2,4 0 42,8 1,3 0,769 0,435 26,5% 2.En İyi Kromozon SUM= 54,2 4,631 1,640 100% Karıştırılacak Kromozomların belirlenmesi: [ En iyi 3 kromozon Kromozon Çiftleri oluşturmak amacıyla seçilir. ] Kromozon w1 w2 w3 w4 w5 w6 2 -1 2 2 2,4 2,4 0 1. En iyi kromozon 5 -1 2 2 6 0,75 3 3. En iyi kromozon 6 3,1 4 0 2,4 2,4 0 2. En iyi kromozon Karıştırılacak olan Kromozomların Eşleştirilmesi : (1-2) (2-3) (3-1) --> Bu kural GA'nın tüm iterasyonlarında aynı şekilde kullanılır. w1 w2 w3 w4 w5 w6 1 -1 2 2 2,4 2,4 0 2 -1 2 2 6 0,75 3 1.Gen 2.Gen 3.Gen 2 -1 2 2 6 0,75 3 3 3,1 4 0 2,4 2,4 0 3 3,1 4 0 2,4 2,4 0 1 -1 2 2 2,4 2,4 0 Karıştırma (Crossover) : [ Yarıya böl ve Çarpraz karıştır ] w1 w2 w3 w4 w5 w6 1 -1 2 2 2,4 2,4 0 2 -1 2 2 6 0,75 3 2 -1 2 2 6 0,75 3 3 3,1 4 0 2,4 2,4 0 3 3,1 4 0 2,4 2,4 0 1 -1 2 2 2,4 2,4 0 Çocuklar (Offspring) : w1 w2 w3 w4 w5 w6 1 -1 2 2 6 0,75 3  2 -1 2 2 2,4 2,4 0 3 -1 2 2 2,4 2,4 0  4 3,1 4 0 6 0,75 3 Parent (Eski Nesil) Offspring (Yeni Nesil) Parent (Eski Nesil) Offspring (Yeni Nesil) Bu yeni kromozonlar bir sonraki jenerasyonun Parent'leridir. (Sonraki Iterasyonun kromozonlarıdır) Eşleştirme Kriteri
  • 5.
    5 3,1 40 2,4 2,4 0  6 -1 2 2 2,4 2,4 0 Mutasyon : Her kromozon çiftinden birincisi alınır ve bunun 5.geninde mutasyon yapılır. w1 w2 w3 w4 w5 w6 -1 2 2 6 0,38 3 5.Genlerdeki değerler 2'ye bölünerek değiştirilir. -1 2 2 2,4 1,2 0 3,1 4 0 2,4 1,2 0 Yeni Kromozonlar (Sonraki Jenerasyon için) : Population Kromozon w1 w2 w3 w4 w5 w6 1 -1 2 2 2,4 2,4 0 1. En iyi kromozon 2 -1 2 2 6 0,75 3 3. En iyi kromozon 3 3,1 4 0 2,4 2,4 0 2. En iyi kromozon 4 -1 2 2 6 0,38 3 Mutasyona uğramış kromozon 5 -1 2 2 2,4 1,2 0 Mutasyona uğramış kromozon 6 3,1 4 0 2,4 1,2 0 Mutasyona uğramış kromozon 4.Step x1 x2 x3 x4 x5 x6 y Veri 4 -2 7 5 11 1 44,1 Population Kromozon w1 w2 w3 w4 w5 w6 y F(c) F(x) F'(x) P(x) 1 -1 2 2 2,4 2,4 0 44,4 0,3 3,333 0,769 36,8% 1.En İyi Kromozon 2 -1 2 2 6 0,75 3 47,3 3,2 0,317 0,241 11,5% 3 3,1 4 0 2,4 2,4 0 42,8 1,3 0,769 0,435 20,8% 3.En İyi Kromozon 4 -1 2 2 6 0,38 3 43,1 1,0 1,026 0,506 24,3% 2.En İyi Kromozon 5 -1 2 2 2,4 1,2 0 31,2 12,9 0,078 0,072 3,4% 6 3,1 4 0 2,4 1,2 0 29,6 14,5 0,069 0,065 3,1% SUM= 33,1 5,592 2,088 100% Karıştırılacak Kromozomların belirlenmesi: [ En iyi 3 kromozon Kromozon Çiftleri oluşturmak amacıyla seçilir. ] Kromozon w1 w2 w3 w4 w5 w6 1 -1 2 2 2,4 2,4 0 1. En iyi kromozon 3 3,1 4 0 2,4 2,4 0 3. En iyi kromozon 4 -1 2 2 6 0,375 3 2. En iyi kromozon Karıştırma (Crossover) : [ Yarıya böl ve Çarpraz karıştır ] w1 w2 w3 w4 w5 w6 1 -1 2 2 2,4 2,4 0 2 3,1 4 0 2,4 2,4 0 2 3,1 4 0 2,4 2,4 0 3 -1 2 2 6 0,38 3 3 -1 2 2 6 0,38 3 1 -1 2 2 2,4 2,4 0 Çocuklar (Offspring) : w1 w2 w3 w4 w5 w6 1 -1 2 2 2,4 2,4 0  2 3,1 4 0 2,4 2,4 0 3 3,1 4 0 6 0,38 3  4 -1 2 2 2,4 2,4 0 5 -1 2 2 2,4 2,4 0  6 -1 2 2 6 0,38 3 Mutasyon : Her kromozon çiftinden birincisi alınır ve bunun 5.geninde mutasyon yapılır. w1 w2 w3 w4 w5 w6 -1 2 2 2,4 1,2 0 5.Genlerdeki değerler 2'ye bölünerek değiştirilir. 3,1 4 0 6 0,19 3 -1 2 2 2,4 1,2 0 Parent (Eski Nesil) Offspring (Yeni Nesil) Parent (Eski Nesil) Offspring (Yeni Nesil) Bu yeni kromozonlar bir sonraki jenerasyonun Parent'leridir. (Sonraki Iterasyonun kromozonlarıdır)
  • 6.
    Yeni Kromozonlar (SonrakiJenerasyon için) : Kromozon w1 w2 w3 w4 w5 w6 1 -1 2 2 2,4 2,4 0 1. En iyi kromozon 2 3,1 4 0 2,4 2,4 0 3. En iyi kromozon 3 -1 2 2 6 0,38 3 2. En iyi kromozon 4 -1 2 2 2,4 1,2 0 Mutasyona uğramış kromozon 5 3,1 4 0 6 0,19 3 Mutasyona uğramış kromozon 6 -1 2 2 2,4 1,2 0 Mutasyona uğramış kromozon 5.Step x1 x2 x3 x4 x5 x6 y Veri 4 -2 7 5 11 1 44,1 Population Kromozon w1 w2 w3 w4 w5 w6 y F(c) F(x) F'(x) P(x) 1 -1 2 2 2,4 2,40 0 44,4 0,3 3,333 0,769 37,9% 1. En iyi kromozon Karıştırılacak kromozonların seçiminde hepsi 2 3,1 4 0 2,4 2,40 0 42,8 1,3 0,769 0,435 21,4% 3. En iyi kromozon meski nesiden gelen krımozonlar olmamalı. 3 -1 2 2 6 0,38 3 43,125 1,0 1,026 0,506 24,9% 2. En iyi kromozon Bu yüzden 3.En iyi kromozon yerine mutasyon 4 -1 2 2 2,4 1,20 0 31,2 12,9 0,078 0,072 3,5% yapılmış kromozonların en iyisi seçilir. 5 3,1 4 0 6 0,19 3 39,4625 4,6 0,216 0,177 8,7% 6 -1 2 2 2,4 1,20 0 31,2 12,9 0,078 0,072 3,5% SUM= 33,0 5,499 2,032 100% Karıştırılacak Kromozomların belirlenmesi: [ En iyi 3 kromozon Kromozon Çiftleri oluşturmak amacıyla seçilir. ] Kromozon w1 w2 w3 w4 w5 w6 1 -1 2 2 2,4 2,4 0 1. En iyi kromozon 3 -1 2 2 6 0,38 3 2. En iyi kromozon 5 3,1 4 0 6 0,19 3 Mutasyon yapılan jenerasyondan Iteration F(c) 1.step 302,4 2.step 117,9 3.step 54,2 4.step 33,1 5.step 33,0 … … Parent (Eski Nesil) Offspring (Yeni Nesil) Parent (Eski Nesil) Offspring (Yeni Nesil) Bu yeni kromozonlar bir sonraki jenerasyonun Parent'leridir. (Sonraki Iterasyonun kromozonlarıdır) Iterasyona devam edilir… 0 50 100 150 200 250 300 350 1 2 3 4 5 SF(x) Iteration Errors
  • 7.
    SAFI UR REHMAN(Presentation) Simplex problem: Max f(x)=x2 { 0, 1, …., 31 } Binary formda çözümü. Bit-String uzunluğu (Gen Sayısı) = 5 Polulasyon boyutu = 4 F(x) = x 2 Fitness Function p(x) = f(x)/SF(x) Fitness Probability P(x) = f(x)/((1/n)SF(x)) Expected Count (Payda: ortalama hesabını gösterir) 1.STEP Karıştırılacak Kromozomların belirlenmesi: [En kötü ve En iyi kromozomların bulunması: Min(P(x) yerine Max(P(x)) yerleştir. ] Kromozom 2 4 (16) 2 3 (8) 2 2 (4) 2 1 (2) 2 0 (1) x F(x) P(x) Beklenen Sayı Gerçek Sayı 1 0 1 1 0 1 13 169 0,14 0,58 1 2 1 1 0 0 0 24 576 0,49 1,97 2 <<<<< Max (En İyi 2.Kromozom) 3 0 1 0 0 0 8 64 0,05 0,22 0 <<<<< Min (En Kötü 3.Kromozom) 4 1 0 0 1 1 19 361 0,31 1,23 1 Toplam = 64 1170 1,00 4,00 4 Average= 16 292,5 0,25 1,00 1 Max = 24 576 0,49 1,97 2 Min= 8 64 0,05 0,22 0 Karıştırılacak olan Kromozomların Eşleştirilmesi : Min yerine Max kromozonun yerleştirilmesi Kromozom 2 4 (16) 2 3 (8) 2 2 (4) 2 1 (2) 2 0 (1) x F(x) P(x) Beklenen Sayı Gerçek Sayı 1 0 1 1 0 1 13 169 0,10 0,40 0 2 1 1 0 0 0 24 576 0,34 1,37 1 3 1 1 0 0 0 24 576 0,34 1,37 1 4 1 0 0 1 1 19 361 0,21 0,86 1 Toplam = 80 1682 1,00 4,00 3 Average= 20 420,5 0,25 1,00 0,75 Max = 24 576 0,34 1,37 1 Min= 13 169 0,10 0,40 0 Eşleştirilen Kromozomlar : (1-2) (3-4) Karıştırma (Crossover) : Her grubun nereden (hangi bitten) çaprazlama yapılacağı Rulet Tekerleği yöntemi ile belirlenir. Random (1-4) Kromozom 2 4 (16) 2 3 (8) 2 2 (4) 2 1 (2) 2 0 (1) Çarprazlama yeri 1 0 1 1 0 1 GENETIC ALGORITHMS - A GENTLE GENETIC ALGORITHMS (3) nolu kromozom yerine (2) kopyalanır : (3)  (2) 4 Değiş tokuş DEĞİL! KURAL: MIN yerine MAX kopyalanır. Fakat kopyalama aynı Çift içindeyse yapılmaz, 2.MIN kromozonuna bakılır, diğer Çift içindeyse yapılır, yoksa 3.MIN için yapılır. C:UsersTOSH DesktopZAIM SunumlarYapay Simpleks Yöntemi, amaç fonksiyonunu en büyük (maksimum) veya en küçük (minimum) yapacak en iyi çözüme adım adım yaklaşan bir algoritma (hesaplama yöntemi)’dir. Bu nedenle, probleme bir uç noktasından başlayarak optimuma daha yakın bir ikincisine, oradan bir üçüncüsüne ... atlayarak en iyi çözümü veren uç noktasına ulaşmamızı sağlar. C:UsersTOSH DesktopZAIM SunumlarYapay
  • 8.
    2 1 10 0 0 3 1 1 0 0 0 4 1 0 0 1 1 Çocuklar (Offspring) : Kromozom 2 4 (16) 2 3 (8) 2 2 (4) 2 1 (2) 2 0 (1) x F(x) P(x) Beklenen Sayı Gerçek Sayı 1 0 1 1 0 0 12 144 0,08 0,33 0 <<<<< Min 2 1 1 0 0 1 25 625 0,36 1,43 1 3 1 1 0 1 1 27 729 0,42 1,66 2 <<<<< Max 4 1 0 0 0 0 16 256 0,15 0,58 1 Toplam = 80 1754 1,00 4,00 4 Average= 20 438,5 0,25 1,00 1 Max = 27 729 0,42 1,66 2 Min= 12 144 0,08 0,33 0 2.STEP Karıştırılacak Kromozomların belirlenmesi: [En kötü ve En iyi kromozomların bulunması: Min(P(x) yerine Max(P(x)) yerleştir. ] Min yerine Max kromozonun yerleştirilmesi Kromozom 2 4 (16) 2 3 (8) 2 2 (4) 2 1 (2) 2 0 (1) x F(x) P(x) Beklenen Sayı Gerçek Sayı 1 1 1 0 1 1 27 729 0,31 1,25 1 2 1 1 0 0 1 25 625 0,27 1,07 1 3 1 1 0 1 1 27 729 0,31 1,25 1 4 1 0 0 0 0 16 256 0,11 0,44 0 Toplam = 95 2339 1,00 4,00 3 Average= 23,75 584,75 0,25 1,00 0,75 Max = 27 729 0,31 1,25 1 Min= 16 256 0,11 0,44 0 Eşleştirilen Kromozomlar : (1-2) (3-4) Kromozom 2 4 (16) 2 3 (8) 2 2 (4) 2 1 (2) 2 0 (1) 1 1 1 0 1 1 2 1 1 0 0 1 3 1 1 0 1 1 4 1 0 0 0 0 Karıştırma (Crossover) : Her grubun nereden (hangi bitten) çaprazlama yapılacağı Rulet Tekerleği yöntemi ile belirlenir. Random (1-4) Kromozom 2 4 (16) 2 3 (8) 2 2 (4) 2 1 (2) 2 0 (1) Çarprazlama yeri 1 1 1 0 1 1 2 1 1 0 0 1 3 1 1 0 1 1 4 1 0 0 0 0 4 2 2 3
  • 9.
    Çocuklar (Offspring) : Kromozom 2 4 (16) 2 3 (8) 2 2 (4) 2 1 (2) 2 0 (1)x F(x) P(x) Beklenen Sayı Gerçek Sayı 1 1 1 0 0 1 25 625 0,27 1,09 1 2 1 1 0 1 1 27 729 0,32 1,27 1 <<<<< Max 3 1 1 0 0 0 24 576 0,25 1,01 1 4 1 0 0 1 1 19 361 0,16 0,63 1 <<<<< Min Toplam = 95 2291 1,00 4,00 4 Average= 23,75 572,75 0,25 1,00 1 Max = 27 729 0,32 1,27 1 Min= 19 361 0,16 0,63 1 3.STEP Karıştırılacak Kromozomların belirlenmesi: [En kötü ve En iyi kromozomların bulunması: Min(P(x) yerine Max(P(x)) yerleştir. ] Min yerine Max kromozonun yerleştirilmesi Kromozom 2 4 (16) 2 3 (8) 2 2 (4) 2 1 (2) 2 0 (1) x F(x) P(x) Beklenen Sayı Gerçek Sayı 1 1 1 0 0 1 25 625 0,24 0,94 1 2 1 1 0 1 1 27 729 0,27 1,10 1 3 1 1 0 0 0 24 576 0,22 0,87 1 4 1 1 0 1 1 27 729 0,27 1,10 1 Toplam = 103 2659 1,00 4,00 4 Average= 25,75 664,75 0,25 1,00 1 Max = 27 729 0,27 1,10 1 Min= 24 576 0,22 0,87 1 Eşleştirilen Kromozomlar : (1-2) (3-4) Kromozom 2 4 (16) 2 3 (8) 2 2 (4) 2 1 (2) 2 0 (1) 1 1 1 0 0 1 2 1 1 0 1 1 3 1 1 0 0 0 4 1 1 0 1 1 Karıştırma (Crossover) : Her grubun nereden kesileceği Rulet Tekerleği yöntemi ile belirlenir. Random (1-4) Kromozom 2 4 (16) 2 3 (8) 2 2 (4) 2 1 (2) 2 0 (1) Çarprazlama yeri 1 1 1 0 0 1 2 1 1 0 1 1 3 1 1 0 0 0 4 1 1 0 1 1 Çocuklar (Offspring) : 1 3
  • 10.
    Kromozom 2 4 (16) 2 3 (8) 2 2 (4) 2 1 (2) 2 0 (1) x F(x)P(x) Beklenen Sayı Gerçek Sayı 1 1 1 0 1 1 27 729 0,27 1,10 1 <<<<< Max 2 1 1 0 0 1 25 625 0,24 0,94 1 3 1 1 0 1 1 27 729 0,27 1,10 1 4 1 1 0 0 0 24 576 0,22 0,87 1 <<<<< Min Toplam = 103 2659 1,00 4,00 4 Average= 25,75 664,75 0,25 1,00 1 Max = 27 729 0,27 1,10 1 Min= 24 576 0,22 0,87 1 4.STEP Karıştırılacak Kromozomların belirlenmesi: [En kötü ve En iyi kromozomların bulunması: Min(P(x) yerine Max(P(x)) yerleştir. ] Min yerine Max kromozonun yerleştirilmesi Kromozom 2 4 (16) 2 3 (8) 2 2 (4) 2 1 (2) 2 0 (1) x F(x) P(x) Beklenen Sayı Gerçek Sayı 1 1 1 0 1 1 27 729 0,26 1,04 1 2 1 1 0 0 1 25 625 0,22 0,89 1 3 1 1 0 1 1 27 729 0,26 1,04 1 4 1 1 0 1 1 27 729 0,26 1,04 1 Toplam = 106 2812 1,00 4,00 4 Average= 26,5 703 0,25 1,00 1 Max = 27 729 0,26 1,04 1 Min= 25 625 0,22 0,89 1 Eşleştirilen Kromozomlar : (1-2) (3-4) Kromozom 2 4 (16) 2 3 (8) 2 2 (4) 2 1 (2) 2 0 (1) 1 1 1 0 1 1 2 1 1 0 0 1 3 1 1 0 1 1 4 1 1 0 1 1 Karıştırma (Crossover) : Her grubun nereden kesileceği Rulet Tekerleği yöntemi ile belirlenir. Random (1-4) Kromozom 2 4 (16) 2 3 (8) 2 2 (4) 2 1 (2) 2 0 (1) Çarprazlama yeri 1 1 1 0 1 1 2 1 1 0 0 1 3 1 1 0 1 1 4 1 1 0 1 1 Çocuklar (Offspring) : Kromozom 2 4 (16) 2 3 (8) 2 2 (4) 2 1 (2) 2 0 (1) x F(x) P(x) Beklenen Sayı Gerçek Sayı 2 1
  • 11.
    1 1 10 0 1 25 625 0,22 0,89 1 <<<<< Min 2 1 1 0 1 1 27 729 0,26 1,04 1 3 1 1 0 1 1 27 729 0,26 1,04 1 <<<<< Max 4 1 1 0 1 1 27 729 0,26 1,04 1 Toplam = 106 2812 1,00 4,00 4 Average= 26,5 703 0,25 1,00 1 Max = 27 729 0,26 1,04 1 Min= 25 625 0,22 0,89 1 5.STEP Kromozom 2 4 (16) 2 3 (8) 2 2 (4) 2 1 (2) 2 0 (1) x F(x) P(x) Beklenen Sayı Gerçek Sayı 1 1 1 0 1 1 27 729 0,25 1,00 1 2 1 1 0 1 1 27 729 0,25 1,00 1 3 1 1 0 1 1 27 729 0,25 1,00 1 4 1 1 0 1 1 27 729 0,25 1,00 1 Toplam = 108 2916 1,00 4,00 4 Average= 27 729 0,25 1,00 1 Max = 27 729 0,25 1,00 1 Min= 27 729 0,25 1,00 1 Simplex problem: Max (x2 ) { 0, 1, …., 31 }  x = 27 Iterasyon Sx Max(x) SF(x) 1.Step 64 24 1170 2.Step 95 27 2339 3.Step 103 27 2659 4.Step 106 27 2812 5.Step 108 27 2916 Tüm Kromozonlar eşit hale geldi. Iterasyon 5.adımda tamamlandı ! 0 500 1000 1500 2000 2500 3000 3500 20 30 40 50 60 70 80 90 100 110 1.Step 2.Step 3.Step 4.Step 5.Step SF(x) Sx Iterasyon Chart Title Sx Max(x) SF(x)
  • 12.
    Denny Hermawanto a +2b + 3c + 4d = 30 eşitliğini sağlayan denklemin katsayılatın bulunması ? f(c) = | (a+2b+3c+4d) -30 | Fitness Objective Function f(x) = 1/(1+f(x)) Fitness Function veya F.Probability P(x) = 1/Sp(x) Probability of Chromozone C(P) Cumulative Probability INITIALIZATION (Genin 6 kromozunu random olarak oluşturuldu) 1.STEP Kromozon a b c d f(c) f(x) P(x) Kümülülatif Prb. C(P) Random(0-1) R Kromozom Seçimi (...) < R < (…) 1 12 5 23 8 93 0,0106 0,126 12,6% 0,201 2 2 2 21 18 3 80 0,0123 0,146 27,2% 0,284 3 3 10 4 13 14 83 0,0119 0,141 41,3% 0,099 3 4 20 1 10 6 46 0,0213 0,252 66,4% 0,822 4 >>>> This chromosome has highest probability to be selected for next generation chromosomes. 5 1 4 13 19 94 0,0105 0,124 78,9% 0,398 5 1.Step'teki en iyi kromozom 4.nolu kromozondur. Bu 2.Step'te ilk Parent olacaktır. 6 20 5 17 1 55 0,0179 0,211 100,0% 0,501 6 SUM= 451 0,0845 Karıştırılacak Kromozomların seçilmesi: Karıştırma : Kromozon a b c d Random(0-1) Min (R) Random(1-3) Cut at … 1 2 21 18 3 0,191 1 1 2 21 18 3 2 10 4 13 14 0,259 1 4 20 5 17 1 3 12 5 23 8 0,760 2 4 20 5 17 1 4 20 5 17 1 0,006 5 10 4 13 14 5 10 4 13 14 0,159 4 10 4 13 14 6 20 1 10 6 0,340 5 2 21 18 3 Kromozon Çiftleri : (1-4) (4-5) (5-1) 1 2 21 18 3 1 2 21 18 3 4 20 5 17 1 Çocuklar (Offspring) : 4 20 5 17 1 4 20 5 17 1 5 10 4 13 14 5 10 4 13 14 1 2 5 17 1 5 10 4 13 14 4 20 4 13 14 1 2 21 18 3 4 10 4 18 3 MUTASYON : Hangi Kromozonun hangi Geninin mutasyona uğrayacağının seçimi. Kromozondaki genlerin sayısı 4 Populasyon büyüklüğü 6 Populasyondaki toplam gen 6 Kromozon x 4 Gen = 24 Gen Kaç tane genin Mutasyona Uğrayacağı belirlenir : Populasyondaki Mutasyona uğrayacak olan gen miktarı = 10% Genetic Algorithm for Solving Simple Mathematical Equality Problem =IF(AND(I16<J16;J16<I17);A17;A16) if (I16 < R < I17) --> A17 else --> A16 C:UsersTOSH DesktopZAIM SunumlarYapay
  • 13.
    Toplam Gen Sayısıx 10% = 24x10% = 2.4  2 adet Gen mutasyona uğrayacak. Mutasyon yapılacak genlerin sıra numarası belirlenir : 2 tane 1-24 arasında Random sayı üretilir Üretilen bu sayılar, mutasyon yapılacak genin sıra numarasını gösterir. 12 12.gen mutasyona uğrayacak 18 18.gen mutasyona uğrayacak GENLERIN BELIRLENMESI Kromozon a b c d 1 2 5 17 1 2 10 4 13 14 3 12 5 23 8 4 20 4 13 14 5 10 4 18 3 6 20 1 10 6 MUTATION Yeni Populasyon (Kromozonlar) Kromozon a b c d Kromozon a b c d 1 2 5 17 1 1 2 5 17 1 2 10 4 13 14 2 10 4 13 14 3 12 5 23 2 3 12 5 23 2 4 20 4 13 14 4 20 4 13 14 5 10 5 18 3 5 10 5 18 3 6 20 1 10 6 6 20 1 10 6 2.STEP Kromozon a b c d f(c) f(x) P(x) C(P) Random (0-1) Kromozom Seçimi (...) < R < (…) 1 2 5 17 1 37 0,0263 25,81% 25,81% <<<<< Max olasılığa sahip kromozon 2 10 4 13 14 83 0,0119 11,68% 37,48% 3 12 5 23 2 69 0,0143 14,01% 51,49% <<<<< Mutasyon yapılmış kromozon 4 20 4 13 14 93 0,0106 10,43% 61,93% 5 10 5 18 3 56 0,0175 17,21% 79,13% <<<<< Mutasyon yapılmış kromozon 6 20 1 10 6 46 0,0213 20,87% 100,00% SUM= 384 0,1020 1.Step SF(c) = 451 2.Step SF(c) = 384 … … … Makalede 50 adım sonra en iyi sonuça elde edilmekte. Iterasyona devam edilir… Her iterasyonda azalması beklenmekte. Bir sonraki adımın Populasyonu (Kromozonları) (Bireyleri)
  • 15.
    (Presentation) COMP305. PartII. Genetic Algorithms (Maximizasyon Problemi) f(x) = x x={ 0, … , 255 } Bit-String uzunluğu = 8 (bit) x'in en fazla 255'e kadar olduğuna göre bu tamsayı 8 bit olatak gösterilebilir. Populasyon büyüklüğü (n= 4) Fitness Function : f(x) = Sxi (Stringteki/Kromozomdaki rakamların (0/1) toplamı) Crossover Porobability = 0.7 (Pc) Mutation Probability = 0.001 (Pm) 1.STEP Population/Parents/Kromozonlar : Beklenen Sayı Kaç kez seçileceği Kromozom x1 x2 x3 x4 x5 x6 x7 x8 f(x) p(x) P(x) Round(P(x)) 1 0 0 0 0 0 1 1 0 2 0,17 0,67 1 1.kromozon (1 kez) kullanılacak 2 1 1 1 0 1 1 1 0 6 0,50 2,00 2 2.kromozon (2 kez) kullanılacak 3 0 0 1 0 0 0 0 0 1 0,08 0,33 0 3.kromozon kullanılmayacak 4 0 0 1 1 0 0 1 0 3 0,25 1,00 1 4.kromozon (1 kez) kullanılacak 12 1 4 3 0,25 1 Karıştırılacak olan Parent'ların Eşleştirilmesi : (2-1) (1-4) Kromozom x1 x2 x3 x4 x5 x6 x7 x8 Random (0-1) Pc=0.7 1 1 1 1 0 1 1 1 0 2 0 0 0 0 0 1 1 0 3 1 1 1 0 1 1 1 0 4 0 0 1 1 0 0 1 0 Karıştırma (Crossover) : Her grubun nereden kesileceği Rulet Tekerleği (1-7 arasında random sayı) yöntemi ile belirlenir. Random (1-7) Kromozom x1 x2 x3 x4 x5 x6 x7 x8 Çarprazlama yeri 1 1 1 1 0 1 1 1 0 2 0 0 0 0 0 1 1 0 3 1 1 1 0 1 1 1 0 4 0 0 1 1 0 0 1 0 Çocuklar (Offspring) : Random Kromozom x1 x2 x3 x4 x5 x6 x7 x8 (0-1) Pm=0.001 1 1 1 0 0 0 1 1 0 0,4000 > Pm No Mutation 2 0 0 1 0 1 1 1 0 0,1000 > Pm No Mutation 3 1 1 1 0 1 1 1 0 0,8000 > Pm No Mutation 4 0 0 1 1 0 0 1 0 0,0005 < Pm Mutation ADAPTIVE APPLICATION of GENETIC ALGORITHM Yakınsama hızı derecesini belirler Sum= Average= 2 - Adaptif GA uygulamasında Pc ve Pm parametreleri değişkendir. Buradaki uygulamada sabit ttulmuştur.  Crossover YAPILIR  Crossover YAPILMAZ. Çift doğrudan kullanılır. 0,4 < Pc > Pc0,8 C:UsersTOSH DesktopZAIM SunumlarYapay
  • 16.
    Mutation : Kromozom x1x2 x3 x4 x5 x6 x7 x8 1 1 1 0 0 0 1 1 0 2 0 0 1 0 1 1 1 0 3 1 1 1 0 1 1 1 0 Random (1-31) 4 0 0 1 1 0 1 1 0 Mutasyona uğrayacak Gen rastgele seçilir 30  New Population : Kromozom x1 x2 x3 x4 x5 x6 x7 x8 1 1 1 1 0 1 1 1 0 Parents'tan Max { P(x) } =2 alınır 2 1 1 0 0 0 1 1 0 Crossover yapılan kromozon 3 0 0 1 0 1 1 1 0 Crossover yapılan kromozon 4 0 0 1 1 0 1 1 0 Mutasyona uğrayan kromozon 2.STEP Parents: Kromozom x1 x2 x3 x4 x5 x6 x7 x8 f(x) p(x) P(x) Round(P(x)) 1 1 1 1 0 1 1 1 0 6 0,33 1,33 1 1.kromozon (1 kez) kullanılacak 2 1 1 0 0 0 1 1 0 4 0,22 0,89 1 2.kromozon (1 kez) kullanılacak 3 0 0 1 0 1 1 1 0 4 0,22 0,89 1 3.kromozon (1 kez) kullanılacak 4 0 0 1 1 0 1 1 0 4 4,50 0,89 1 4.kromozon (1 kez) kullanılacak 18 5,28 4 4,5 1,32 1 Karıştırılacak olan Parent'ların Eşleştirilmesi : (1-2) (3-4) Kromozom x1 x2 x3 x4 x5 x6 x7 x8 Random (0-1) Pc=0.7 1 1 1 1 0 1 1 1 0 2 1 1 0 0 0 1 1 0 3 0 0 1 0 1 1 1 0 4 0 0 1 1 0 1 1 0 Karıştırma (Crossover) : Her grubun nereden kesileceği Rulet Tekerleği (1-4 arasında random sayı) yöntemi ile belirlenir. Random (1-4) Kromozom x1 x2 x3 x4 x5 x6 x7 x8 Çarprazlama yeri 1 1 1 1 0 1 1 1 0 2 1 1 0 0 0 1 1 0 3 0 0 1 0 1 1 1 0 4 0 0 1 1 0 1 1 0 Çocuklar (Offspring) : Kromozom x1 x2 x3 x4 x5 x6 x7 x8 4 4 Pm=0.001Random (0-1) Average= Sum= Mutasyona uğramış Kromozonlar 0,6 < Pc  Crossover YAPILIR 0,1 < Pc  Crossover YAPILIR
  • 17.
    1 1 11 0 0 1 1 0 0,350 > Pm No Mutation 2 1 1 0 0 1 1 1 0 0,470 > Pm No Mutation 3 0 0 1 0 0 1 1 0 0,100 > Pm No Mutation 4 0 0 1 1 1 1 1 0 0,530 > Pm No Mutation Mutation : No mutation! (New Population) Kromozom x1 x2 x3 x4 x5 x6 x7 x8 1 1 1 1 0 0 1 1 0 2 1 1 0 0 1 1 1 0 3 0 0 1 0 0 1 1 0 4 0 0 1 1 1 1 1 0 2.STEP Population/Parents: Kromozom x1 x2 x3 x4 x5 x6 x7 x8 f(x) p(x) P(x) Round(P(x)) 1 1 1 1 0 0 1 1 0 5 0,28 1,11 1 1.kromozon (1 kez) kullanılacak 2 1 1 0 0 1 1 1 0 5 0,28 1,11 1 2.kromozon (1 kez) kullanılacak 3 0 0 1 0 0 1 1 0 3 0,17 0,67 1 3.kromozon (1 kez) kullanılacak 4 0 0 1 1 1 1 1 0 5 0,28 1,11 1 4.kromozon (1 kez) kullanılacak 18 1,00 4 4,5 0,25 1 Karıştırılacak olan Parent'ların Eşleştirilmesi : (1-2) (3-4) Kromozom x1 x2 x3 x4 x5 x6 x7 x8 Random (0-1) Pc=0.7 1 1 1 1 0 0 1 1 0 2 1 1 0 0 1 1 1 0 3 0 0 1 0 0 1 1 0 4 0 0 1 1 1 1 1 0 Karıştırma (Crossover) : Her grubun nereden kesileceği Rulet Tekerleği (1-4 arasında random sayı) yöntemi ile belirlenir. Random (1-4) Kromozom x1 x2 x3 x4 x5 x6 x7 x8 Çarprazlama yeri 1 1 1 1 0 0 1 1 0 2 1 1 0 0 1 1 1 0 3 0 0 1 0 0 1 1 0 4 0 0 1 1 1 1 1 0 Çocuklar (Offspring) : Kromozom x1 x2 x3 x4 x5 x6 x7 x8 1 1 1 1 0 0 1 1 0 0,5000 > Pm No Mutation 2 1 1 0 0 1 1 1 0 0,0008 < Pm No Mutation 3 0 0 1 1 1 1 1 0 0,6100 > Pm Mutation Sum= Average=  Crossover YAPILMAZ 0,54 < Pc  Crossover YAPILIR - 3 Random (0-1) Pm=0.001 0,83 > Pc
  • 18.
    4 0 01 0 0 1 1 0 0,3530 > Pm No Mutation Mutation : Kromozom x1 x2 x3 x4 x5 x6 x7 x8 1 1 1 1 0 0 1 1 0 2 1 1 0 0 1 1 1 0 Random (1-31) 3 0 1 1 1 1 1 1 0 Mutasyona uğrayacak Gen rastgele seçilir 18 4 0 0 1 0 0 1 1 0  New Population : Kromozom x1 x2 x3 x4 x5 x6 x7 x8 1 1 1 1 0 0 1 1 0 Parents'tan Max { P)x) } =1.11 lerden ilki alınır 2 0 0 1 1 1 1 1 0 Crossover yapılan kromozon 3 0 0 1 0 0 1 1 0 Crossover yapılan kromozon 4 0 1 1 1 1 1 1 0 Mutasyona uğrayan kromozon 3.STEP Population/Parents: Kromozom x1 x2 x3 x4 x5 x6 x7 x8 f(x) p(x) P(x) Round(P(x)) 1 1 1 1 0 0 1 1 0 5 0,26 1,05 1 1.kromozon (1 kez) kullanılacak 2 0 0 1 1 1 1 1 0 5 0,26 1,05 1 2.kromozon (1 kez) kullanılacak 3 0 0 1 0 0 1 1 0 3 0,16 0,63 1 3.kromozon (1 kez) kullanılacak 4 0 1 1 1 1 1 1 0 6 0,32 1,26 1 4.kromozon (1 kez) kullanılacak 19 1,00 4 4,75 0,25 1 Karıştırılacak olan Parent'ların Eşleştirilmesi : (1-2) (3-4) Kromozom x1 x2 x3 x4 x5 x6 x7 x8 Random (0-1) Pc=0.7 1 1 1 1 0 0 1 1 0 2 0 0 1 1 1 1 1 0 3 0 0 1 0 0 1 1 0 4 0 1 1 1 1 1 1 0 Sf(x) 1.step 12 2.step 18 3.step 19 0,54 < Pc  Crossover YAPILIR Mutasyona uğramış Kromozonlar Sum= Average= 0,97 < Pc  Crossover YAPILMAZ 12 18 19 10 11 12 13 14 15 16 17 18 19 20 1 2 3 Sf(x) Iteration
  • 19.
    x : 4bit'le gösterilebilir Populasyon büyüklüğü : 6 Fitness Function : f(x) = 15 x - x2 Mutasyon oranı : %10 1.STEP Kromozon 23 (8) 22 (4) 21 (2) 20 (1) x F(x) P(x) Beklenen Sayı Gerçek Sayı 1 1 1 0 0 12 36 16,5% 0,99 1 2 0 1 0 0 4 44 20,2% 1,21 1 3 0 0 0 1 1 14 6,4% 0,39 0 << Min Bu örnekte bunu Bu seneryaları da deneyerek 4 1 1 1 0 14 14 6,4% 0,39 0 << Min tercih ettik**** sonuçları karşılaştırabilirsiniz. 5 0 1 1 1 7 56 25,7% 1,54 2 << MAX 6 1 0 0 1 9 54 24,8% 1,49 1 Toplam = 47 218 0,50 2,97 2 Average= 7,83 36,33 0,12 0,74 0,5 Max = 14 56 0,20 1,21 1 Min= 1 14 0,06 0,39 0 Karıştırılacak olan Kromozomların Eşleştirilmesi : Min kromozomlar (3 ve 4) atılır. Bunların yerine Random olarak kromozon çitleri oluşturulur. Kromozon 1 1 1 0 0 2 0 1 0 0 5 0 1 1 1 6 1 0 0 1 Eşleştirilen Kromozomlar : (6-2) (1-5) (2-5) Burada Kromozon Çiftlerin nasıl eşleneceği Random olarak oluşturulur. (Çoğu uygulamalarda her iterasyon adımında aynı Eşleşme Şablonu kullanılmaktadır) Kromozon 6 1 0 0 1 2 0 1 0 0 1 1 1 0 0 5 0 1 1 1 2 0 1 0 0 5 0 1 1 1 Karıştırma (Crossover) : Random (1-4) Kromozon Çarprazlama yeri << Kormozonların hangi bit'ten (genden) itibaren çaprazlanacağı Random olarak belirlenir. 6 1 0 0 1 2 0 1 0 0 1 1 1 0 0 5 0 1 1 1 2 0 1 0 0 5 0 1 1 1 Çocuklar (Offspring) : UYGULAMA: SIMPLEX PROBLEM (FONKSİYONUN MAKSIMIZASYONU) f(x) = 15 x - x2 fonksiyonun maksimum değeri x = { 0, … ,15 } ve x : tamsayı değer 2 1 0 Crossover Probability : Pc = 0.7 Mutation Probability : Pm = 0.001 Chromosome Fitness Fitness Ratio Evaluation #1 versiyon 2. genden sonra çarprazlama yapılır 1. genden sonra çarprazlama yapılır Çarprazlama yapılmaz. Evaluation #2 versiyon Evaluation #3 versiyon Bu iki MIN Kromozonları kullanılmayacak. Yeni oluşturulacak kromozon çifti eklenir. ilk MIN kromozonu yerine MAX ADAPTIVE UYGULAMA tercih edilebilir. Pc ve Pm kullanılır. veya veya C:UsersTOSH DesktopZAIM SunumlarYapay
  • 20.
    1 1 00 0 2 0 1 0 1 3 1 1 1 1 4 0 1 0 0 5 0 1 0 0 6 0 1 1 1 Mutation : KURAL: Doğada mutasyon en fazla 10% dur. 1 1 0 0 0 (6 kromozon x 10%) (Rounded) 2 0 1 0 1 Kaç tane bit'te mutasyon yapılacak : 0,6  1 3 1 1 1 1 4 0 1 0 0 Random (1-24) 5 0 1 1 0 Hangi bit'lerde mutasyon yapılacağı Random olarak belirlenir : 19 6 0 1 1 1 2.STEP Kromozon 23 (8) 22 (4) 21 (2) 20 (1) x F(x) P(x) Beklenen Sayı Gerçek Sayı 1 1 0 0 0 8 56 21,5% 1,29 1 << MAX (NOT: Eğer uygulamada MAX değeri kullanılacaksa, ve birden fazla MAX değeri varsa listede ilk MAX kullanılır) 2 0 1 0 1 5 50 19,2% 1,15 1 3 1 1 1 1 15 0 0,0% 0,00 0 << Min 4 0 1 0 0 4 44 16,9% 1,02 1 << Min 5 0 1 1 0 6 54 20,8% 1,25 1 6 0 1 1 1 7 56 21,5% 1,29 1 Toplam = 45 260 1,00 6,00 5 Average= 7,50 43,33 0,17 1,00 1 Max = 15 56 0,22 1,29 1 Min= 4 0 0,00 0,00 0 Karıştırılacak olan Kromozomların Eşleştirilmesi : Min kromozomlar (3 ve 4) atılır. Random olarak kromozon çitleri oluşturulur. Kromozon 1 1 0 0 0 2 0 1 0 1 5 0 1 1 0 6 0 1 1 1 Eşleştirilen Kromozomlar : (6-1) (1-5) (2-5) Burada Kromozon Çiftlerin nasıl eşleneceği Random olarak oluşturulur. Kromozon 6 0 1 1 1 1 1 0 0 0 1 1 0 0 0 5 0 1 1 0 2 0 1 0 1 5 0 1 1 0 Karıştırma (Crossover) : Random (1-4) Kromozon Çarprazlama yeri << Kormozonların hangi bitten itibaren çaprazlanacağı Random olarak belirlenir. 6 0 1 1 1 1 1 0 0 0 1 1 0 0 0 5 0 1 1 0 Populasyondan (Kromozon listesinden) silinir. Yeni kromozon çifti eklenir 3 2 3. genden sonra çarprazlama yapılır 2. genden sonra çarprazlama yapılır
  • 21.
    2 0 10 1 5 0 1 1 0 Çocuklar (Offspring) : 1 0 1 1 0 2 1 0 0 1 3 1 0 1 0 4 0 1 0 0 5 0 1 1 0 6 0 1 0 1 Mutation : KURAL: Mutasyon en fazla 10% olabilir. (6 kromozom x 10%) (Rounded) 1 0 1 1 0 Kaç tane bit'te mutasyon yapılacak : 0,6  1 2 1 0 0 1 3 1 1 1 0 Random (1-24) 4 0 1 0 0 Hangi bit'lerde mutasyon yapılacağı Random olarak belirlenir : 10 5 0 1 1 0 6 0 1 0 1 3.STEP x F(x) P(x) Beklenen Sayı Gerçek Sayı 1 0 1 1 0 6 54 20,0% 1,20 1 << MAX (NOT: Eğer uygulamada MAX değeri kullanılacaksa, ve birden fazla MAX değeri varsa listede ilk MAX kullanılır) 2 1 0 0 1 9 54 20,0% 1,20 1 3 1 1 1 0 14 14 5,2% 0,31 0 << Min 4 0 1 0 0 4 44 16,3% 0,98 1 << Min 5 0 1 1 0 6 54 20,0% 1,20 1 6 0 1 0 1 5 50 18,5% 1,11 1 Toplam = 44 270 1,00 6,00 5 Average= 7,33 45,00 0,17 1,00 1 Max = 14 54 0,20 1,20 1 Min= 4 14 0,05 0,31 0 Iteration Sf(x) 1.Step 218 2.Step 260 3.Step 270 2 2. genden sonra çarprazlama yapılır 200 220 240 260 280 1 2 3 Sf(x) Iteration
  • 22.
    x ve y: 8 bit'le gösterilebilir Populasyon büyüklüğü : 6 Crossover Probability : Pc = 0.7 Mutation Probability : Pm = 0.001 Fitness Function : f(x,y) Mutasyon oranı : %10 x ve y değerlerini normalize etmek için izleyen sayı ile çarpılır ve 3 çıkartılır : 1.STEP Kromozon 27 (128) 26 (64) 25 (32) 24 (16) 23 (8) 22 (4) 21 (2) 20 (1) 27 (128) 26 (64) 25 (32) 24 (16) 23 (8) 22 (4) 21 (2) 20 (1) x y ẋ ẏ F(ẋ,ẏ) P(ẋ,ẏ) Expected Value Actual Value 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1 138 59 0,25 -1,61 0,06 0,0000 -0,00002 0 2 1 1 0 1 1 1 0 0 1 0 1 1 0 0 0 0 220 176 2,18 1,14 300,04 -0,0135 -0,08123 0 3 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 26 69 -2,39 -1,38 2364,27 -0,1067 -0,64009 -1 <<< Min 4 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 11 142 -2,74 0,34 -24831,42 1,1205 6,72271 7 <<< MAX 5 1 0 1 1 1 0 1 1 0 1 0 1 1 1 1 0 187 94 1,40 -0,79 4,34 -0,0002 -0,00118 0 6 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 174 124 1,09 -0,08 0,72 0,0000 -0,00019 0 Sum= 756 664 -0,212 -2,376 -22161,980 1,0000 Average= 126 110,6667 -0,035 -0,396 -3693,663 0,1667 Max= 220 176 2,176 1,141 2364,271 1,1205 Min= 11 59 -2,741 -1,612 -24831,422 -0,1067 Karıştırılacak olan Kromozomların Eşleştirilmesi : Min yerine Max kromozonun yerleştirilmesi Kromozon 27 (128) 26 (64) 25 (32) 24 (16) 23 (8) 22 (4) 21 (2) 20 (1) 27 (128) 26 (64) 25 (32) 24 (16) 23 (8) 22 (4) 21 (2) 20 (1) 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1 2 1 1 0 1 1 1 0 0 1 0 1 1 0 0 0 0 3 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 4 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 5 1 0 1 1 1 0 1 1 0 1 0 1 1 1 1 0 6 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 Eşleştirilen Kromozomlar : (1-2) (3-5) (4-6) Karıştırma (Crossover) : Random (1-7) Kromozon 27 (128) 26 (64) 25 (32) 24 (16) 23 (8) 22 (4) 21 (2) 20 (1) 27 (128) 26 (64) 25 (32) 24 (16) 23 (8) 22 (4) 21 (2) 20 (1) Çarprazlama yeri 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1 2 1 1 0 1 1 1 0 0 1 0 1 1 0 0 0 0 3 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 4 3 x (8 bit) y (8 bit) x (8 bit) y (8 bit) x (8 bit) y (8 bit) UYGULAMA: SIMPLEX PROBLEM (FONKSİYONUN MAKSIMIZASYONU) f(x,y) fonksiyonun maksimum değeri x = { -3, … ,+3 } y = { -3, … ,+3 }  ẋ = x*0.0235294 - 3 ẏ = y*0.0235294 - 3 Çok büyük veya küçük değerleri önlemek için ! 2222 )()1(),( 33)1(2 yxyx eyxxexyxf ---- ---- C:UsersTOSH DesktopZAIM SunumlarYapay 0235294.0 1256 6  -
  • 23.
    5 1 01 1 1 0 1 1 0 1 0 1 1 1 1 0 4 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 6 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 Çocuklar (Offspring) : Kromozon 27 (128) 26 (64) 25 (32) 24 (16) 23 (8) 22 (4) 21 (2) 20 (1) 27 (128) 26 (64) 25 (32) 24 (16) 23 (8) 22 (4) 21 (2) 20 (1) 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 2 1 1 0 1 1 0 1 0 1 0 1 1 1 0 1 1 3 0 0 0 1 1 0 1 1 1 0 0 1 1 1 1 0 5 1 0 1 0 1 0 1 1 0 1 0 0 1 1 1 0 4 0 0 1 0 1 1 1 0 1 0 1 1 1 1 0 0 6 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 MUTATION: Mutasyon yapılmamıştır. 2.STEP Kromozon 27 (128) 26 (64) 25 (32) 24 (16) 23 (8) 22 (4) 21 (2) 20 (1) 27 (128) 26 (64) 25 (32) 24 (16) 23 (8) 22 (4) 21 (2) 20 (1) x y ẋ ẏ F(ẋ,ẏ) P(ẋ,ẏ) Expected Value Actual Value 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 140 48 0,29 -1,87 0,03 0,0000 -0,00013 0 2 1 1 0 1 1 0 1 0 1 0 1 1 1 0 1 1 218 187 2,13 1,40 135,15 -0,0966 -0,57975 -1 <<< Min 3 0 0 0 1 1 0 1 1 1 0 0 1 1 1 1 0 27 158 -2,36 0,72 -1522,08 1,0882 6,52904 7 <<< MAX 5 1 0 1 0 1 0 1 1 0 1 0 0 1 1 1 0 171 78 1,02 -1,16 -1,12 0,0008 0,00482 0 4 0 0 1 0 1 1 1 0 1 0 1 1 1 1 0 0 46 188 -1,92 1,42 -10,78 0,0077 0,04623 0 6 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 139 78 0,27 -1,16 0,05 0,0000 -0,00021 0 Sum= 741 737 -0,565 -0,659 -1398,743 1,0000 Average= 123,5 122,8333 -0,094 -0,110 -233,124 0,1667 Max= 218 188 2,129 1,424 135,153 1,0882 Min= 27 48 -2,365 -1,871 -1522,075 -0,0966 2.adımın aşamalarını tamamlayın ve Diğer adıma (3,4 ve 5.Iterasyona) devam edin… x (8 bit) y (8 bit) 3 2 x (8 bit) y (8 bit) NOT !!! : Algoritma hiçbir zaman mutasyon olmadan en uygun çözüme ulaşamaz. (The Algorithm will never reach the optimal solution without mutation.)
  • 24.
    25/26 x ve y: 8 bit'le gösterilebilir Populasyon büyüklüğü : 6 Crossover Probability : Pc = 0.7 Mutation Probability : Pm = 0.001 Fitness Function : f(x,y) Mutasyon oranı : %10 x ve y değerlerini normalize etmek için izleyen sayı ile çarpılır ve 3 çıkartılır : (Çok büyük sayılarla uğraşmamak için) 1.STEP Kromozon 27 (128) 26 (64) 25 (32) 24 (16) 23 (8) 22 (4) 21 (2) 20 (1) 27 (128) 26 (64) 25 (32) 24 (16) 23 (8) 22 (4) 21 (2) 20 (1) x y ẋ ẏ F(ẋ,ẏ) P(ẋ,ẏ) Expected Value Actual Value 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1 138 59 0,25 -1,61 0,06 0,0000 -0,00002 0 2 1 1 0 1 1 1 0 0 1 0 1 1 0 0 0 0 220 176 2,18 1,14 300,04 -0,0135 -0,08123 0 3 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 26 69 -2,39 -1,38 2364,27 -0,1067 -0,64009 -1 <<< Min P(x,y) MIN kromozonunu populasyondan ÇIKARTILIR : 4 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 11 142 -2,74 0,34 -24831,42 1,1205 6,72271 7 <<< Max P(x,y) 3.kromozon kullanılmayacak ! 5 1 0 1 1 1 0 1 1 0 1 0 1 1 1 1 0 187 94 1,40 -0,79 4,34 -0,0002 -0,00118 0 6 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 174 124 1,09 -0,08 0,72 0,0000 -0,00019 0 Sum= 756 664 -0,212 -2,376 -22161,980 1,0000 Average= 126 110,6667 -0,035 -0,396 -3693,663 0,1667 Max= 220 176 2,176 1,141 2364,271 1,1205 Min= 11 59 -2,741 -1,612 -24831,422 -0,1067 Karıştırılacak olan Kromozomların Eşleştirilmesi : Eşleştirmeler : (2-1) (4-5) (6-1) Kromozon 27 (128) 26 (64) 25 (32) 24 (16) 23 (8) 22 (4) 21 (2) 20 (1) 27 (128) 26 (64) 25 (32) 24 (16) 23 (8) 22 (4) 21 (2) 20 (1) Random (0-1) Pc=0.7 2 1 1 0 1 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1 4 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 5 1 0 1 1 1 0 1 1 0 1 0 1 1 1 1 0 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1 6 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 Karıştırma (Crossover) : Random (1-7) Kromozon 27 (128) 26 (64) 25 (32) 24 (16) 23 (8) 22 (4) 21 (2) 20 (1) 27 (128) 26 (64) 25 (32) 24 (16) 23 (8) 22 (4) 21 (2) 20 (1) Çarprazla ma yeri 2 1 1 0 1 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1 4 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 5 1 0 1 1 1 0 1 1 0 1 0 1 1 1 1 0 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1 6 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 Çocuklar (Offspring) : Kromozon 27 (128) 26 (64) 25 (32) 24 (16) 23 (8) 22 (4) 21 (2) 20 (1) 27 (128) 26 (64) 25 (32) 24 (16) 23 (8) 22 (4) 21 (2) 20 (1) Random (0-1) Pm=0.001 Mutation Status < Pc x (8 bit) y (8 bit) 5 -- UYGULAMA: SIMPLEX PROBLEM (FONKSİYONUN MAKSIMIZASYONU) f(x,y) fonksiyonun maksimum değeri x = { -3, … ,+3 } y = { -3, … ,+3 } x (8 bit) y (8 bit) x (8 bit) y (8 bit) 3.kromozon yok ! ADAPTIVE VERSION  ẋ = x*0.0235294 - 3 ẏ = y*0.0235294 - 3 Çok büyük ve küçük değerleri önlemek için ! 2 x (8 bit) y (8 bit)  Crossover YAPILIR  Crossover YAPILMAZ. Çift doğrudan kullanılır.  Crossover YAPILIR < Pc > Pc 0,62 0,83 0,45 2222 )()1(),( 33)1(2 yxyx eyxxexyxf ---- ---- C:UsersTOSH DesktopZAIM SunumlarYapay 0235294.0 1256 6  - C:UsersTOSH DesktopZAIM SunumlarYapay
  • 25.
    26/262 1 10 1 1 0 1 0 1 0 1 1 0 0 1 1 0,4000 > Pm No Mutation 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0,1000 > Pm No Mutation 4 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 0,8000 > Pm No Mutation 5 1 0 1 1 1 0 1 1 0 1 0 1 1 1 1 0 0,0005 < Pm Mutation 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 0,6305 > Pm No Mutation 6 1 0 1 0 1 0 1 0 0 1 1 1 1 0 1 1 0,1000 > Pm No Mutation MUTATION: Kromozon 27 (128) 26 (64) 25 (32) 24 (16) 23 (8) 22 (4) 21 (2) 20 (1) 27 (128) 26 (64) 25 (32) 24 (16) 23 (8) 22 (4) 21 (2) 20 (1) 1 1 1 0 1 1 0 1 0 1 0 1 1 0 0 1 1 Random (1-8) 2 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 6 Hangi Genin (bit'İn) mutasyona uğrayacağı belirlenir 3 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 5 1 0 1 1 1 1 1 1 0 1 0 1 1 0 1 0  Random(1-48) Mutasyona uğrayacak Genin sıra numarası 4 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 30 rastgele seçilir. Bit değerleri ters-yüz edilir. 6 1 0 1 0 1 0 1 0 0 1 1 1 1 0 1 1   NEW PARENTS for NEXT GENERATION Kromozon 27 (128) 26 (64) 25 (32) 24 (16) 23 (8) 22 (4) 21 (2) 20 (1) 27 (128) 26 (64) 25 (32) 24 (16) 23 (8) 22 (4) 21 (2) 20 (1) 1 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 Parents'tan Max { P(x) } =1.12045 alınır 2 1 1 0 1 1 0 1 0 1 0 1 1 0 0 1 1 Crossover yapılan kromozon 3 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 Crossover yapılan kromozon 5 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 Crossover yapılan kromozon 4 1 0 1 0 1 0 1 0 0 1 1 1 1 0 1 1 Crossover yapılan kromozon 6 1 0 1 1 1 1 1 1 0 1 0 1 1 0 1 0 Mutasyona uğrayan kromozon 2.STEP Kromozon 27 (128) 26 (64) 25 (32) 24 (16) 23 (8) 22 (4) 21 (2) 20 (1) 27 (128) 26 (64) 25 (32) 24 (16) 23 (8) 22 (4) 21 (2) 20 (1) x y ẋ ẏ F(ẋ,ẏ) P(ẋ,ẏ) Expected Value Actual Value 1 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 11 142 -2,74 0,34 -24831,42 1,0084 6,05061 6 <<< Max P(x,y) 2 1 1 0 1 1 0 1 0 1 0 1 1 0 0 1 1 218 179 2,13 1,21 200,55 -0,0081 -0,04887 0 <<< Min P(x,y) MIN kromozonunu populasyondan ÇIKARTILIR : 3 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 140 56 0,29 -1,68 0,02 0,0000 0,00000 0 2.kromozon kullanılmayacak ! 4 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 142 60 0,34 -1,59 -0,04 0,0000 0,00001 0 5 1 0 1 0 1 0 1 0 0 1 1 1 1 0 1 1 170 123 1,00 -0,11 0,00 0,0000 0,00000 0 6 1 0 1 1 1 1 1 1 0 1 0 1 1 0 1 0 191 90 1,49 -0,88 7,18 -0,0003 -0,00175 0 Sum= 872 650 2,518 -2,706 -24623,714 1,0000 Average= 145,3333 108,3333 0,420 -0,451 -4103,952 0,1667 Max= 218 179 2,129 1,212 200,552 1,0084 Min= 11 56 -2,741 -1,682 -24831,422 -0,0081 2.adımın aşamalarını tamamlayın ve Diğer adıma (3,4 ve 5.Iterasyona) devam edin… x (8 bit) y (8 bit) x (8 bit) y (8 bit) Bunlar bir sonraki iterasyonun Populasyonudur. Mutasyona uğramış kromozonlar x (8 bit) y (8 bit)
  • 26.
    Genetik Algoritma &Programlama Dr. Hakan ERDUN
  • 27.
    DOĞAL DÜNYA İnsan vücudutrilyonlarca hücreden oluşur. Her hücre kromozom içeren bir çekirdeğe sahiptir. Kromozomların sayısı canlı türlerinde değişiklik gösterir. İnsanın kromozom sayısı 46'dır. Her kromozom, birbirine sıkı sıkı sarılmış DNA (DeoksiriboNükleik Asit) ipliklerin- den oluşur. Genler, göz ve saç rengi gibi spesifik özellikleri belirleyen DNA parçalarıdır. Bir insanın 20.000’den fazla geni vardır. Salzberg ve ekibinin çalışmalarına göre insandaki toplam gen sayısı en az 46.831 dir.
  • 28.
    DNA: Görevleri • Hücredeki yaşamsalolayları yöneten moleküldür. • Canlının kalıtsal yapısını belirler. Canlıya ait kalıtsal özellikleri ortaya çıkarır. • Canlıların üremesinde ve kalıtım olayında görev alır. DNA'nın Eşlenmesi: • DNA eşlenmesi hücre bölünmesi öncesinde gerçekleşir. Eşlenmenin amacı; taşıdığı kalıtsal bilgilerin yeni oluşacak hücrelere aktarılmasını sağlamaktır. GEN: • Bir DNA molekülü milyonlarca nükleotitten oluşur. 1000–1500 tane nükleotit bir araya gelerek bir GEN oluşturur. • Genler DNA’nın görev birimleridir. Yani Genler canlılardaki saç rengi, saç şekli, göz rengi, boy uzunluğu vb gibi kalıtsal karakterlerin oluşumunu ve bu karakterlerin kuşaktan kuşağa aktarılmasını (kalıtımı) sağlar. İnsandaki toplam gen sayısı için bilim insanları arasında tartışma vardır. Ortalama 20.000 civarı olduğu söylenmekle birlikte bazı bilim insanları en son 46.831 olarak açıklamışlardır. KROMOZOM: • DNA ve özel proteinlerin birleşmesiyle oluşan yapılara kromozom denir. Her bir kromozomda pek çok gen bulunur. Genlerin kuşaktan kuşağa geçişi (kalıtım), kromozomlar sayesinde gerçekleştirilir. Her bir canlı türü kendisine özgü sayıda kromozom bulundurur. İnsanlardaki kromozom sayısı 46’dır. MUTASYON: • DNA’nın eşlemesi sırasında, eğer DNA’nın bir zincirinde hata varsa diğer zincir kalıp olarak kullanılarak hata onarılabilir. Ancak karşılıklı zincirlerin ikisinde de hata varsa bu hata onarılamaz. Bu olaya mutasyon adı verilir.
  • 29.
    GENETİK ALGORİTMA Genetik algoritmalarıntemel prensibi: Genetik ve doğal seleksiyonu bilgisayar yazılımları kullanarak taklit etmektir. Genetik Algoritma, doğadaki çoğalma ve seleksiyon mekanizmasını örnek alan bir stokastik arama ve optimizasyon yöntemidir. Genetik Algoritmalar, canlıların çoğalması sonucunda kendi özelliklerini bir sonraki nesle aktarma yeteneklerini, güçlü olanın yaşama şansının yüksek olması ve bazı durumlarda önceden nasıl olacağı bilinmeyen değişimlerin bir hesaplama yöntemi içerisinde bir arada kullanılması sonucunda ortaya çıkmış bir yöntemdir. Genetik Algoritmaların temel amacı, fazla sayıda sınırlama içeren ve karmaşık optimizasyon sorunlarının çözümlerini bulmaktır. Önbilgi ve varsayımlar olmadan, sadece uygunluk fonksiyonu (fitness function) ile çalışabilmektedir. Genetik Algoritmalar, rastsal arama tekniklerini kullanarak çözüm bulmaya çalışan, parametre kodlama esasına dayanan bir çözüm-arama tekniğidir. Bir veri grubu içinde özel bir veriyi bulmak için – diğer bir deyişle bir çözüm grubu içinde özel bir çözümü bulmak için kullanılır.
  • 31.
    Genetik Algoritma (GA) •GA, sistemin parametreleri ile değil, parametre takımının kodlanmış bilgileriyle uğraşırlar. • GA fitness (uygunluk) fonksiyonunun türevlerini ve bir takım ek bilgileri değil, doğrudan fitness fonksiyonunun kendisini kullanırlar. • Bazı problemlerde sonsuz sayıda çözüm olabilir ama en uygun ve hızlı çözümü bulmaya ihtiyacımız vardır. • Genetik algoritmalar aramaya tek bir noktadan değil, noktalar kümesinden başlar. Bu nedenle çoğunlukla yerel (lokal) en iyi çözümde sıkışıp kalmazlar. • Genetik algoritmalar problemlere tek bir çözüm üretmek yerine farklı çözümlerden oluşan bir çözüm kümesi üretir. Sonuçta bütünsel (global) çözüme ulaşma olasılığı yükselmektedir. • GA’da deterministlik değil rastlantısal geçiş kuralları kullanılır.
  • 32.
    Genetik Algoritmaya NeZaman İhtiyaç Var ? • Çözüm arama uzayının büyük ve karmaşık olduğu durumlarda. Örneğin çözüm için çok fazla zaman gerektiği durumlarda… • Mevcut bilgiyle sınırlı arama uzayında çözümün zor olduğu durumlarda… • Problemin belirli bir matematiksel modelle ifade edilemediği durumda… • Geleneksel optimizasyon (eniyileme) yöntemlerinden istenen sonucun alınamadığı alanlarda etkili ve kullanışlıdır. 2222 )()1(),( 33)1(2 yxyx eyxxexyxf  
  • 34.
    Genetik Algoritma Özellikleri Avantajları –Çok amaçlı optimizasyon yöntemleri ile kullanılabilmesi – Çok karmaşık ortamlara uyarlanabilmesi – Kısa sürelerde iyi sonuçlar verebilmesi Dezavantajları – Son kullanıcının modeli anlamasının güçlüğü – Problemi Genetik Algoritma ile çözmeye uygun hale getirmek zorluğu – Uygunluk fonksiyonunu belirlemek zorluğu – Çaprazlama ve Mutasyon tekniklerini belirleme zorluğu…
  • 35.
    Genetik Algoritma Adımları 1)Başlangıç popülasyonunu rastlantısal olarak üret. 2) Popülasyon içindeki tüm kromozomların fitness (uygunluk/amaç) fonksiyonu değerlerini hesapla. (EVALUATION) 3) Çoğalma (tekrar üreme), Çaprazlama (CROSSOVER) ve Mutasyon (MUTATION) işlemlerini uygula. Yeni popülasyonun kromozomlarını belirle. 4) Oluşturulan her yeni kromozomun fitness fonksiyonu değerlerini bul. 5) Fitness fonksiyonu değerleri kötü olan kromozomları popülasyondan çıkar. 6) 3-5 arasındaki adımlar tekrar et.
  • 36.
    1. Başlangıç: Çözümlerinkodlanması gerçekleştirilir ve n kromozomdan oluşan rastgele (genel olarak ama zorunlu değil) bir popülasyon oluşturulur 2. Uygunluk: Toplumdaki her x kromozomu için f(x) "fitness fonksiyonu" uygunluk değeri değerlendirilir. 3. Yeni Popülasyon : Aşağıdaki adımlar izlenerek yeni popülasyon üretilir. Başlangıç popülasyonu oluşturulmuş genetik algoritma üç evrim operatörüyle çalışır. Seçim: popülasyondaki kromozomların uygunluk değerlerine bağlı olarak, yeni kromozomları oluşturmak için, ebeveyn birey seçmesi işlemidir. Popülasyondan uygunluklarına göre iki kromozom seçilir (uygunluk değeri iyi olanın seçilme şansı daha fazladır) Çaprazlama: ebeveyn kromozomlardaki genlerin bazılarının karşılıklı yer değiştirmesi işlemidir. Çaprazlama ile kromozomlar yeni çocuk oluşturmak için birbirleriyle eşleştirilir. Eğer çaprazlama yapılmazsa, çocuk kromozom anne-baba(ebeveyn) kromozomların tıpatıp aynısı olacaktır. Mutasyon: Sürekli yeni nesil üretimi sonucunda, belli bir süre sonra nesildeki kromozomlar tekrar edebilir ve farklı kromozom üretimi azalabilir. Bu yüzden mutasyon işlemi ile bazı genler değiştirilir. Kabul: Çocuk kromozom, yeni popülasyona eklenir. 4. Yeni Popülasyon: Yeni popülasyon algoritmanın tekrar işlenmesinde kullanılır. 5. Iterasyon Kontrolü: Eğer bitiş durumu sağlandıysa, popülasyondaki en iyi çözüm sonuç olarak döndürülür. Iterasyona devam edilecekse Adım 2’ye gidilir. Genetik algoritmanın çalışması esnasında istenen çözüm bulunduğunda, GA’nın başlangıcında tanımlanan toplam iterasyon sayısına ulaşıldığında veya uygunluk değeri sürekli olarak sabit kaldığında algoritma sonlandırılır. Genetik Algoritma Adımları
  • 37.
  • 38.
  • 39.
  • 40.
    Kromozom (Birey) • Birdenfazla genin bir araya gelerek oluşturduğu diziye denir. • Kromozomlar, alternatif aday çözümlerini gösterirler. Gen • Kalıtsal molekülde bulunan ve organizmanın karakterlerinin tayininde rol oynayan kalıtsal birimlere gen denir. • Yapay Sistemlerde gen, kendi başına anlamlı bir bilgi taşıyan en küçük birim olarak tanımlanır.
  • 41.
    Populasyon (Nesil/Bireyler/Kromozomlar) • Kromozomlardan(bireylerden) oluşan topluluğa denir (Anne, Baba, Dede, Nine, Çocuklar). • Popülasyon, geçerli alternatif çözüm (beklenen kromozomlar) kümesidir. • Başlangıç popülasyonundaki her bir kromozom, problemin olası bir çözümünü temsil eder. • Popülasyondaki kromozom sayısı algoritma boyunca genelde sabit tutulur. Ancak popülasyondaki kromozom sayısının sabit tutulması gerektiğiyle ilgili genel bir kural yoktur. • Başlangıçta belirli kriterlere göre veya rastgele kromozomlardan oluşan bir popülasyon oluşturulur.
  • 42.
    Populasyon (Nesil/Bireyler/Kromozomlar) Popülasyondaki kromozomsayısı nasıl belirlenir ? Genetik Algoritmada popülasyondaki kromozom sayısı (popülasyon büyüklüğü) ile ilgili genel bir kural yoktur. Bununla birlikte kromozom sayısının ne olacağı problemin yapısına göre belirlenmektedir.  Kromozom sayısının çok fazla olması çözüme ulaşma kalitesini arttırır ancak algoritmanın adımları daha uzun zaman alacağı için çözüme ulaşma süresi artar.  Popülasyondaki kromozomların sayısı küçük seçildiğinde ise iterasyonlar daha hızlı olur ancak algoritmanın yerel (lokal) optimuma takılma şansı artar.  Popülasyondaki kromozom sayısı genellikle 100 ile 300 arasında seçilmektedir.
  • 43.
    Populasyon (Nesil/Bireyler/Kromozomlar) Popülasyon büyüklüğügenetik algoritmanın tüm performansını ve verimliliğini etkiler.  Genetik algoritmalar genellikle az sayılı popülasyonlarla çalıştıklarında iyi sonuçlar vermemektedirler. Çünkü popülasyon yeterli örnek büyüklüğünü içermemektedir. Eğer kromozom sayısı az olursa GA, çözüm aranan uzayın ancak bir kısmını gezebilmekte ve çaprazlama için fazla bir seçenek bulamamaktadır.  Büyük popülasyonların çok sayıdaki hiper-alanlardan temsiller içerme ihtimali daha fazladır. Diğer yandan büyük popülasyonlar her nesil için daha fazla değerlendirme yapmayı gerektirmektedir. Bu durum, GA’nın kabul edilemeyen bir sürede sonuca ulaşmasına neden olabilir. Yapılan araştırmalar, belli bir noktadan sonra popülasyon sayısını artırmanın bir yararı olmadığını göstermiştir.
  • 45.
    • Gen: Canlılarınkarakterlerini belirleyen ve anlamlı bilgi içeren kromozom içindeki en küçük birimlerdir. • Kromozom (Birey): Birden fazla genin bir araya gelerek oluşturduğu diziye denir. GA’’da her kromozom belirlenen problem için potansiyel bir çözümü temsil etmektedir. Çözüm için kullanılan bireyler. GA’da her birey doğadakinden farklı olarak yalnızca bir kromozomdan oluşmaktadır. • Popülasyon (Topluluk): Kromozomlardan oluşan topluluktur. GA’da olası çözümlerden oluşan kümeye karşılık gelir. Çözüm kümesini oluşturan kromozomların tümüdür. • Seçim (Selection) : Var olan kromozomu genetik yapısında herhangi bir değişiklik yapmadan yeni nesle kopyalar. • Çaprazlama (Crossover) : İki kromozomun yapılarının rastlantısal olarak birleştirilerek yeni çocuk kromozomlar oluşturulmasıdır. İşlem, ikili dizilerin parçalarının değiş tokuşu ile gerçekleştirilir. • Mutasyon (Mutation) : Çaprazlama ile elde edilen bir çocuk kromozomun genlerinden birinin ya da birkaçının bilgisinin veya yerlerinin değiştirilmesiyle oluşturulur. Terminoloji Özeti
  • 46.
    Fitness (Uygunluk) Fonksiyonu Kromozomlardanmeydana gelen bir popülasyon oluşturulduktan sonra, popülasyondaki her kromozomun uygunluk (fitness) değeri hesaplanır. Bu fitness değeri, kromozomların karşılaştırılması ve iyi olanların seçimi için kullanılır. Bu örnekte f(x1)>f(x2) (veya P(x1)>P(x2)) olduğundan x1 kromozomu, x2 kromozomundan daha iyidir.
  • 47.
    Fitness (Uygunluk) Fonksiyonu GezginSatıcı Probleminde kullanılan Fitness fonksiyonu: Satıcının ürünleri ilgili şehirlere en kısa mesafe kat ederek dağıtması gerekmekte. İlgili şehirlere sıralı erişim için bir çok alternatif güzergah seçeneği vardır. • Fitness fonksiyonu: f(x) = min(di j ) Burada di j iki şehir arasındaki mesafedir. Bu örnekte f(x1) < f(x2) olduğundan x1 kromozomu, x2 kromozomundan daha iyidir.
  • 48.
    Fitness (Uygunluk) Fonksiyonu Optimizasyonkarar verme ve fiziksel bir sistemin analizi konularında oldukça önemli bir araçtır. Bu aracın kullanılabilmesi için ilk olarak sistemin performansını sayısal olarak ölçebilen bir uygunluk değerinin belirlenmesi gerekmektedir. Bu uygunluk tek bir rakam ile ifade edilebilen kâr, zaman, miktar veya bunların kombinasyonu vb. olabilmektedir. Belirlenen uygunluk fonksiyonu f(x), sistemin ‘değişken-x’ veya bilinmeyen olarak tanımlanan belirli karakteristiklerine bağımlıdır. Bu değişkenler sıklıkla sınırlandırılmakta veya kısıtlanmaktadırlar.
  • 49.
    BİLGİNİN (KROMOZOMLARIN) KODLANMASI (PopülasyonunOluşturulması) • Kodlama, Genetik Algoritmanın çok önemli bir kısmını oluşturmaktadır. • Probleme Genetik Algoritma uygulanmadan önce, verinin uygun şekilde kodlanması gerekmektedir. • Kurulan genetik modelin hızlı ve güvenilir çalışması için bu kodlamanın doğru yapılması gerekmektedir. Kodlama Çeşitleri : 1. İkili (binary) kodlama 2. Permütasyon kodlama 3. Değer kodlama 4. Ağaç kodlama
  • 50.
    1) BINARY (İKİLİ)KODLAMA Bu kodlama ilk GA uygulamalarında kullanıldığı için hala en çok kullanılan yöntemlerdir. Her kromozom 0 ve 1’lerden oluşan BIT diziyle ifade edilir. Bu dizideki her bit, çözümün bir özelliğini taşır. Dizinin tümü ise bir sayıya karşılık gelir. Basit, kolay ve hızlı işlemler için uygundur. Kromozom A: 101110010110 Kromozom B: 010110100000
  • 51.
    2) PERMÜTASYON KODLAMA •Burada her kromozom, sayıları bir sırada temsil eden bir sayı dizisidir. • Sıralama ve düzenleme problemlerinde kullanılır. • Permütasyon kodlama, Gezgin Satıcı ve Çizelgeleme Problemleri için kullanışlıdır. Kromozom A: 3 5 1 2 7 6 0 4 Kromozom B: 0 1 5 6 2 3 4 7
  • 52.
    3) DEĞER KODLAMA •Karmaşık verilerin kullanıldığı problemlerde gerçekleştirilir. • Değerler; gerçek sayılar, karakterler veya nesneler olabilir. • Bu tip kodlamada probleme özgü yeni çaprazlama ve mutasyon yöntemleri geliştirmek gereklidir. Kromozom A: 3.2 6.5 0.8 9.4 Kromozom B: A B C D Kromozom C: (geri) (sağ) (ileri) (sol)
  • 53.
    4) AĞAÇ KODLAMA •Bu yöntem gelişen, değişen programlar veya ifadeler için kullanılır. • Çoğunlukla ifadesel çözümler içeren problemlerde kullanılır, her kromozom bir nesnenin ağacıdır. • Ağaç kodlama, program geliştirmek için uygundur. Örneğin Lisp ve Prolog gibi dillerde ağaç yapısı kullanılır. • Örneğin her kromozom, bazı nesnelerin (örneğin fonksiyonlar veya programlama dilindeki komutlar gibi) ağacıdır.
  • 54.
    GENETİK ALGORİTMA PARAMETRELERİ Genetikalgoritma uygulamasının önemli bir adımı da çeşitli parametrelerin belirlenmesidir. Parametreler genetik algoritma performansı üzerinde çok önemli bir etkiye sahiptir. Kontrol parametreleri olarak da adlandırılan bu parametreler popülasyon büyüklüğü, çaprazlama olasılığı, mutasyon olasılığı, seçim stratejisi, fonksiyon ölçeklemesini kapsamaktadır. Parametreler birbirlerini doğrusal olmayan biçimde etkilediği için aynı anda optimize edilemezler. Literatürde parametre seçimi ve adaptasyonu üzerinde oldukça fazla sayıda çalışma yapılmış olmakla birlikte tüm problemlerde kullanılabilecek en iyi parametreler üzerinde bir uzlaşı söz konusu değildir.
  • 55.
    1) Popülasyon Büyüklüğü(Kromozom Sayısı  ) Popülasyon büyüklüğü genetik algoritma kullanıcısı tarafından verilen en önemli kararlardan biridir. Bu değer küçük olarak seçildiğinde algoritmanın yerel optimuma takılması olasılığı vardır. Büyük bir değer ise çözüm uzayının daha iyi tarama olasılığına karşı çözüm için gerekli zaman ve kaynakları artırmaktadır. Popülasyon büyüklüğü diğer genetik algoritma parametrelerinden tamamen ayrı düşünülemez. Belirlenecek büyüklük, hesaplama etkinliği, yeterli örnekleme sağlayabilme durumu, popülasyonun çeşitliliği, çaprazlama ve seçim baskısı gibi parametrelerin dengelemesine katkı sağlamalıdır. Örnekte: 6 tane kromozom (Popülasyon Büyüklüğü =6) Her kromozom 4 tane gen (w1-w4) içerir.
  • 56.
    2) Çaprazlama Oranı/Olasılığı(Crossover Rate Pc) Çaprazlama operatöründe temel parametre çaprazlama olasılığıdır (Pc ). GA’da Pc 0-1 arasında değişen bir değerdir ve genellikle 0.7 olarak alınır. Çaprazlama olasılığı, çaprazlamanın ne kadar sıklıkla yapılacağını tanımlayan bir parametredir. Çaprazlama olmadığı durumda çocuk kromozomu, ebeveynlerin direkt kopyası olur. Ancak bu yeni neslin önceki ile aynı olduğu anlamına gelmez. Çaprazlamanın olduğu durumda çocuk kromozomu, ebeveynlerin her ikisinin kromozomlarının parçalarından oluşur. Çaprazlama, yeni kromozomların eskilerinin iyi parçalarını taşıyacağı beklentisi ile yapılır. Çaprazlama olasılığı eşleşme havuzuna girecek kromozomların sayısını belirler. GA’da bu oranın çok yüksek olması durumunda iyi yapı bloklarının tek bir kromozomda birikme olasılığı oldukça azalır. Düşük bir oran belirlenmesi durumunda ise yeterli sayıda yeni çocuk kromozmu ortaya konulamaz.
  • 57.
    3) Mutasyon Oranı/Olasılığı(Mutation Rate Pm) Mutasyon tekniğindeki önemli parametre, kromozomda ne kadar bir değişiklik olacağını gösteren mutasyon olasılığıdır (Pm ). GA’da Pm 0-1 arasında değişen bir değerdir ve orta büyüklükte bir popülasyon için genellikle 0.001 olarak alınır. Eğer mutasyon yok ise (Pm=0), yeni birey çaprazlamadan hemen sonra oluşturulur demektir. Mutasyon olasılığının %100 olması ise (Pm=1), kromozomun tamamen değiştirildiği anlamına gelir. Mutasyonun temel amacı popülasyondaki çeşitliliği korumaktır. Mutasyon olasılığının artması genetik aramayı raslantısal bir aramaya dönüştürür; ancak diğer taraftan bu durum kayıp genetik materyali tekrar bulmada yardımcı olmaktadır. Bazı çalışmalar büyük popülasyonlar için (μ>200) büyük mutasyon olasılığı (Pm>0.05) kullanıldığında; ve benzer şekilde küçük popülasyonlar (μ<20) için ise daha küçük mutasyon oranı (Pm<0.002) kullanıldığında performansın arttığını ortaya koymuştur. Orta büyüklükteki bir popülasyon büyüklüğü için genellikle Pm=0.001 oranı seçilebilir.
  • 58.
    4) Seçim Yöntemi Eskinesli yenilemenin çeşitli yöntemleri mevcuttur. Nesilsel (kuşaksal) stratejide, mevcut popülasyondaki kromozomlar tamamen çocuklar ile yer değiştirir ancak popülasyonun en iyi kromozomu da yenilendiğinden dolayı bir sonraki nesle aktarılamaz. İyi niteliklerin bir sonraki nesle aktarımı için bu strateji en uygun (elitist) stratejisiyle beraber kullanılmaktadır. En uygun stratejisinde, popülasyondaki en iyi kromozomlar hiçbir zaman yenilenmemektedir. Sabit durum (steady state) stratejisinde ise, her kuşakta yalnızca birkaç kromozom yenilenmektedir. Genellikle, yeni kromozomlar popülasyona katıldığında en kötü kromozomlar yenilenir. Ref: Emel ve Taşkın (2002), s136
  • 59.
    5) Yakınsama/Sonlandırma (Termination)Kriterleri Genetik Algoritma kaç adım çalıştırılmalı? Lokal bir optimuma ulaşıldığında basit yakın komşuluk arama metotlarından farklı olarak genetik algoritma prensip olarak sonsuza kadar çalışır. Bunun için pratikte bir sonlandırmam kriteri gerekmektedir. Genetik Algoritma, sonlandırma kriterlerine ulaşıncaya kadar birkaç jenerasyon (nesil) boyunca çalıştırılır. GA’nın kaç adım çalıştırılacağı konusunda yaklaşımlar şu şekildedir: Sonlandırma Kriterleri 1. Maksimum Nesil: Tanımlanan sayıda nesil/jenerasyon üretildiği durumda genetik algoritma durdurulur. (Stop after a fixed number of generations.) 2. Maksimum Süre: önceden tanımlanan süre dolduğunda genetik proses sonlandırılır. Nesil sayısı kriteri ile birlikte kullanıldığında önceden tanımlanan nesil sayısına süreden önce ulaşılırsa algoritma durur. (Stop after a fixed amount of time)
  • 60.
    3. Değişmeyen ToplamUygunluk Değeri: Bu sonlandırma şemasında, popülasyondaki uygunluğun toplamının popülasyon kaydındaki (record) yakınsama değerine eşit veya daha düşükse aramanın, yakınsamayı sağladığı düşünülür. Bu durum hemen hemen tüm bireylerin belli bir uygunluk aralığında olmasını garanti eder. Ancak bu yakınlaşma kriterini en zayıf gen değişimi ile birlikte düşünmek daha iyi sonuç verir. Aksi durumda popülasyondaki yeni birkaç düşük uygunluklu birey toplam uygunluğu bozabilir. Yakınsama değeri belirlenirken popülasyon büyüklüğü dikkate alınmalıdır.(Stop when a chromosome reaches a specified fitness level.) 4. Minumum Tolerans Sağlandığında: Belli bir tolerans (hata oranı) dahilinde, bir kromozomun problemin çözümünde başarı elde etmesine kadar çalışır. (Stop when a chromosome succeeds in solving the problem, within a specified tolerance). 5. Sezgisel Karar: Kişisel bakış veya sezgisel duruma göre jenerasyon istenilen anda durdurulabilir. (Human judgment can also be used in some more subjective cases.)
  • 61.
    7. Diğer SonlandırmaTeknikleri:  En İyi Birey: Bu kriter popülasyondaki en düşük uygunluğu yakınsama değerinin altına düştüğünde arama durdurulur. Bu metot, en azından bir adet iyi çözümü garanti ederek aramayı daha hızlı sonlandırır.  En Kötü Birey: En kötü birey kriteri kullanıldığında popülasyondaki en az uygun bireyin yakınsama kriterinden daha düşük bir uygunluğa sahip olduğu durumda arama sonlandırılır. Bu durumda tüm popülasyonun belli bir minimum standardın üstünde olması sağlanır. Ancak en iyi bireyin en kötüden önemli ölçüde farklı olmayabilir. Bu durumda, aşılacak belli bir maksimuma göre tanımlanan yüksek bir yakınsama değeri hiçbir zaman sağlanamayabilir. Bu kriterlerden bir kaçı aynı anda kullanılabilir.
  • 63.
  • 64.
    Genetik algoritmalarda birsonraki nesli elde etmek için 3 ana genetik operatör kullanılır: A. SEÇİM (Yeniden Üretme-Reproduction), B. CROSSOVER (Çaprazlama) C. MUTATION (Mutasyon) Genetik Algoritma uygulamalarında yapılan işlemlerin %90-95’i seçim ve çaprazlama operatörleri ile ilişkilidir. Mutasyon için genellikle düşük bir olasılık değeri tercih edilmektedir
  • 65.
    A) SEÇİM (SELECTION)- Kromozom Seçimi Genetik Algoritma uygulamalarında daha yüksek uygunluğa sahip bireylerin daha fazla çoğalacağı temeline dayalı doğal seleksiyon fikri yeniden üretme veya seleksiyon/seçim olarak adlandırılır. Popülasyondaki bütün kromozomların uygunluk değerleri hesaplandıktan sonra, bunlardan bazıları yeni nesiller üretmek için seçilirler. Amaç: seçilen uygunluk fonksiyonuna ve seçim yöntemine göre elimizdeki popülasyondan yeni bir neslin bireylerini oluşturmak için (kromozomları) seçmektir.  Uygunluk değeri yüksek olan kromozomun, yeni nesle aktarılma ihtimali daha yüksektir. Seçim işlemi için bazı yöntemler: 1. Rulet tekeri yöntemi 2. Sıralı seçim yöntemi 3. Sabit durum yöntemi 4. Turnuva yöntemi
  • 66.
    SEÇKİNLİK (Elitism) Seçkinlik, GAalgoritmalarında bir popülasyonun maksimum uygunluk değerinin bir diğerine geçildiğinde azalmamasını temin eden özelliktir. Çaprazlama ve mutasyonla yeni popülasyon üretildiği zaman, en iyi kromozom kaybedilecektir. Bunu önlemek için önce popülasyondaki en iyi kromozom (veya birkaç en iyi kromozom) yeni popülasyona kopyalanır (koruma altına alınmış olur). Geri kalanı diğer yöntemlerle devam ettirilir. Seçkinlik, bulunan en iyi sonucun kaybını önlediğinden GA’nın performansını oldukça hızlı bir şekilde arttırır.
  • 67.
    1) Rulet Tekeri/Çemberiile Seçim En basit seçim yöntemi olarak bilinmektedir. Bu yöntemde seçilme işlemi bireylerin (kromozomların) uygunluk değerine göre yapılmaktadır. Fakat uygunluk değeri en büyük olanın seçileceği garanti edilmez, yalnız seçilme şansı daha fazla olacaktır. Bu yöntemde bütün uygunluk değerleri bir tabloya yazılır ve toplanır. Uygunluk değeri toplama bölünerek bireylerin [0,1] aralığında seçilme olasılıkları belirlenir. Rulet tekerleği seçimi çözümlerin uygunluk değerlerinin pozitif olması gerekir. Diğer bir uygulanışı : Tüm bireyler birbirine bitişik bir şekilde düz bir çizgi üzerine dizilirler. Her bir ferde ilişkin bölümün uzunluğu, onun uygunluk değeri kadar olur. Rasgele sayı üretilir ve rasgele sayı hangi bölüm içerisine gelirse, o bölümün ait olduğu fert seçilir. İşlem ulaşılacak popülasyonun gerekli adedi elde edilene kadar devam eder.
  • 68.
    Uygunluk fonksiyonu: f(x)=x² •Kromozom 1: 1101 x = 13 x² = 169 • Kromozom 2: 0100 x = 4 x² = 16 • Kromozom 3: 1011 x = 11 x² = 121 • Kromozom 4: 1000 x = 8 x² = 64  f(x) = 169+16+121+64 = 370 • Kromozom 1: 169/370=0,456 (%46) • Kromozom 2: 16/370 =0,043 (%4) • Kromozom 3: 121/370=0,327 (%33) • Kromozom 4: 64/370 =0,172 (%17) %46 %17 %33 %4 Eğer uygunluk değerleri arasında büyük farklar varsa çözümün aranmasında sorunlar ortaya çıkar. Örneğin, eğer en iyi kromozomun uygunluğu diğer tüm kromozomların toplamının %90’ı ise diğer kromozomların seçilme şansı çok azalacaktır. Bunu önlemek için Sıralı Seçim kullanılabilir.
  • 69.
    2) SIRALI (RANK)SEÇİM • Rulet Tekeri yönteminde, eğer uygunluk değerleri arasında büyük farklar varsa çözümün aranmasında sorunlar ortaya çıkar. Örneğin, eğer en iyi kromozomun uygunluğu diğer tüm kromozomların toplamının %90’ı ise diğer kromozomların seçilme şansı çok azalacaktır. Bunu önlemek için Sıralı Seçim kullanılabilir. • Ayrıca sıralama, uygunluk fonksiyonun tam olarak tanımlanamadığı problemler için de doğal bir seçenek olabilir. Bu gibi problemlerde tüm dikkati uygunluk fonksiyonunu alacağı değere atfetmek mantıklı değildir çünkü bazı durumlarda bu durum mümkün de olmayabilir. • Sıralı seçimde popülasyondaki kromozomlar da en kötü uyumlulukta olan kromozoma 1 değeri, sonrakine 2 değeri, … ve sonuncu olan en iyi kromozoma ise N değeri verilir. • Uygunluklar arasındaki mutlak farklılıklar dikkate alınmadığı için sıralama seçiminde uygunlukları derecelendirme gereksinimi de bulunmamaktadır. Böylelikle bütün kromozomlara aynı oranda seçilme şansı verilir. • Fakat bu yöntemde en iyi kromozomlar, diğerlerinden daha farklı olmadığından çözüme yaklaşma daha yavaş olacaktır. Çeşitliliği korur ve daha başarılı arama sağlar. Uygulamada potansiyel aileler seçilir ve hangi ailenin bir sonraki nesil seçileceğine yönelik bir turnuva düzenlenir.
  • 70.
    Farklı şekillerde yapılabilirolmakla birlikte aşağıdaki 2 yöntem yaygın olarak kullanılmaktadır: 1. Popülasyondan birey çiftlerini rastgele seçilir. 0-1 arasında R random sayısı üretilir. Eğer R<r ise ilk birey Parent (aile) olarak seçilir. Eğer R  r ise ikinci birey seçilir. Bu ikinci ailenin seçimi için de aynen tekrarlanır. Burada r değeri bu metot için tanımlanmış 0-1 arasında bir eşik parametresidir. 2. Popülasyondan rastgele iki farklı birey seçilir. Daha yüksek değerlendirme değeri olan birey parent (aile) için seçilir. İkinci aileyi bulmak için de bu adım tekrarlanur.
  • 71.
    3) SABİT DURUM/KARARLIHAL SEÇİMİ (YERİNE GEÇME) • Bu seçimin ana düşüncesi, kromozomların büyük kısmının bir sonraki nesilde hayatta kalmak zorunda olmasıdır. • Her yeni nesilde en yüksek uygunluk değerine sahip kromozomlar, yeni çocukları oluşturmak için seçilir. • Her nesilde yeni bir kromozom (çocuk) oluşturmak için birkaç tane uygunluk değeri iyi olan kromozom seçilir. Düşük uygunluk değerine sahip kromozomlar kaldırılarak yerlerine bu yeni oluşturulan çocuk kromozomlar konur. • Geri kalan kromozomlar değiştirilmeden yeni nesle aktarılır. • Bu yöntemde alt popülasyon oluşturulduktan sonra fitness değerleri hesaplanır, en kötü kromozomlar yerlerini başlangıç popülasyonundaki en iyi kromozomlara bırakır.
  • 72.
    4) TURNUVA YÖNTEMİ Genetikalgoritma arama performansının en iyi olması için seçim baskısı ve popülasyonun çeşitliliğinin ayarlanabildiği bir seçim yöntemi ideal olandır Turnuva seçimi, seçim baskısı açısından sıralama seçimi ile benzerdir ancak ona göre hesaplaması daha etkin ve paralel uygulamalar için daha uygundur. Rulet tekerleri seçiminden farklı olarak turnuva seçimi N birey arasında bir turnuva düzenleyerek seçim baskısı sağlar. Kazanan birey uygunluk değerine göre belirlenir. En yüksek uygunluk değerine sahip birey genellikle deterministik olarak seçilir. Turnuva, eşleşme havuzu yeni nesil oluşturmak için doluncaya kadar tekrarlanır. Genelde turnuva iki birey arasında düzenlenir ancak keyfi olarak seçilen bir sayıdaki birey arasında da uygulanabilir. Turnuva gruplardan bağımsız olarak düzenlenir ancak grup sayısı arttıkça seçim baskısı da artacaktır. Uygulamada 6-10 grup önerilmektedir. Turnuva kazananlardan oluşan eşleşme havuzu yüksek bir ortalama popülasyon uygunluğuna sahiptir. Bu uygunluk farkı seçim baskısı sağlar ve bu durum da, genetik algoritmayı başarılı genlerin uygunluğunu artırmaya zorlar.
  • 73.
    5) BOLTZMANN (SimulatedAnnealing) YÖNTEMİ Boltzmann seçimi Benzetilmiş Tavlama veya Benzetimli Tavlama algoritması prensiplerini kullanarak ve termodinamik olarak seçim baskısını kontrol eden seçim mekanizmasıdır. Tavlama benzetimi algoritması bir yerel arama algoritmasıdır ve pek çok değişkene sahip fonksiyonların en büyük veya en küçük değerlerinin bulunması ve özellikle pek çok yerel en küçük değere sahip doğrusal olmayan fonksiyonların en küçük değerlerinin bulunması için tasarlanmıştır. Boltzmann seçiminde önceden belirlenmiş tabloya göre sürekli değişen sıcaklık seçim oranını kontrol eder. Sıcaklık düşük seçim baskısı anlamına gelecek biçimde yüksek olarak tutulur. Daha sonra seçim baskısı kademeli olarak yükseltilir ve böylelikle uygun bir seviyedeki çeşitlilik korunurken genetik algoritmanın arama uzayını en iyi kısma yakın olacak biçimde küçültmesi sağlanır. Boltzmann seçim mekanizmasının temelinde mevcut i çözümü ve alternatif j çözümü arasındaki rekabet yatar. Burada i’nin kazanma olasılığı aşağıdaki formülle hesaplanmaktadır: Burada T sıcaklığı, fi ve fj mevcut ve alternatif çözüm maliyet, uygunluk fonksiyon değeri veya uygunluk değerini göstermektedir.
  • 74.
    Formülde kullanılan Tve k hesabı : T=T0 (1-α)k k=(1+100*g/G) Burada g : mevcut jenerasyon sayısı G : maksimum g değeri. α : [0-1] aralığında seçilen bir sayı. T0 : [5-100] aralığında seçilen bir sayı  T, 0 değerine ulaştığında global çözüme ulaşılmış olmaktadır. Seçim mekanizmasının seçimi diğer yönlerinden bağımsız olarak yapılamaz. Değerlendirme fonksiyonu çok karmaşık ise en fazla artırımsal modeller problemli olacaktır. Karmaşıklık durumunda seçim baskısı azaltılmalıdır. Karmaşıklık yoksa artırımsal modeller yeni iyi bireyler önemli artışlar sağlayabilir. Bireylerin silinmesi de dikkatli olunmasını gerektirmektedir. En kötü bireylerin ortadan kaldırılması büyüme oranını artırmaktadır ancak bu durum daha düşük kontrol demektir.
  • 75.
    B) ÇAPRAZLAMA (CROSSOVER) Çaprazlama: 2 kromozomun (çözümün) birbirleri arasında gen alışverişinde bulunup 2 yeni kromozom oluşturmasıdır. Diğer bir deyişle, anne ve babadaki (Parents) bazı genlerin yer değiştirmesi ile yeni çocukların oluşturulma işlemidir. • Genetik Algoritmadaki en önemli parametrelerden bir tanesidir. • Binary kodlanmış değişkenlerin yaptıkları çoğalma faaliyetinin "kromozomların çaprazla- masına" benzemesinden dolayı böyle adlandırılmaktadır. • Eğer kodlamada gerçek değerler kullanılıyorsa, klasik çaprazlama yöntemi yerine daha farklı yöntemler kullanılmaktadır. • Seçim yöntemi ile yapay seçim sonucunda elde edilen yeni popülasyonlardan rastsal olarak 2 kromozom seçilir ve karşılıklı çaprazlama işlemine tâbi tutulur.
  • 76.
    1) RASTGELE SEÇİM Buteknikte gelecek nesli oluşturmak için aile popülasyondan rastgele seçilerek belirlenir. Bunun için programlama dillerinin hepsinde mevcut olan random() vb fonksiyon kullanılmaktadır. Basit GA algoritmalarında sıklıkla kullanılmaktadır.
  • 77.
    2) BİR NOKTADAN(Binary Kodlu Bilgide) Genler belli bir sıradan sonra çaprazlama gen değiş tokuşu yaparlar. Örneğin 5.bit baz alınarak çaprazlama: Bu bitler sabit kalır Bu bitler değiş tokuş edilir ÇAPRAZLAMA SONUCU 5
  • 78.
    3) N-NOKTADAN (BinaryKodlu Bilgide) Bu bitler sabit kalır Bu bitler değiş tokuş edilir Bu bitler sabit kalır Bu bitler değiş tokuş edilir ÇAPRAZLAMA SONUCU 5 8 14 18
  • 79.
    4) UNIFORM ÇAPRAZLAMA(Binary Kodlu Bilgide) Bitler rastgele biçimde değiş tokuş edilerek yeni kromozomlar oluşturulur. Her bir gen için çaprazlama, kromozomlarla aynı uzunlukta ve rastgele oluşturulan "ikili çaprazlama maskesine" göre yapılır. Yani her bir Parent (ebeveyn) çifti için yeni bir çaprazlama maskesi rastgele oluşturulur. İkili çaprazlama maskesi
  • 80.
    5) TEK ARİTMETİKÇAPRAZLAMA (Değer Kodlu) Patents : {x1,…,xn} ve {y1,…,yn} ve 1 k  n olmak üzere: • k rastgele seçilir • Yeni kromozomlar (çocuklar) için k.bilgi (geni) için yeni değer elde edilir: 1.çocuk kromozomu için ( =0.3) kromozomlar : 2.çocuk kromozomu için ( =0.3) kromozomlar: k=8 ve =0.5 alındığında aşağıdaki gibi iki farklı çocuk kromozomları elde edilir: 𝒌 𝒌 𝒌 𝒌 𝒌 𝒌
  • 81.
    6) BASİT ARİTMETİKÇAPRAZLAMA (Değer Kodlu) 𝒌 𝒌 𝐧 𝒏 Örnek k=7 ve  = 0.5 için : k.genden n.gene kadar aritmetik çaprazlama işlemi uygulanır:
  • 82.
    7) BÜTÜN ARİTMETİKÇAPRAZLAMA (Değer Kodlu) Kromozomun tüm genleri aritmetik işlemden geçirilir: yaxa  )1( = 0.5 için :
  • 83.
    8) SIRALI ÇAPRAZLAMA(Permütasyon Kod) Önce 1. kromozom için: Çaprazlama aralığı seçilir. Bu aralıktaki veriler çocuk kromozomunda aynı aralığa kopyalanır. Geriye kalan veriler çapraz sırayla 1, 9, 3, 8, 2 gibi kopyalanır. Aynı işlem 2. kromozom için tekrarlanır.
  • 84.
    9) PARÇALI EŞLEŞMELİÇAPRAZLAMA (Permütasyon Kod) Adım 1 Adım 2
  • 85.
    10) ÇEVRİM ÇAPRAZLAMA(Permütasyon Kod) Adım 1: Çevrimleri bul Adım 2: Değişimli çevrimleri çocuğa kopyala NOT: Bu seçim yöntemlerinin dışında birçok yöntem de mevcuttur.
  • 86.
    C) MUTASYON (MUTATION) •Doğada genlerde mutasyon oranı 0.001-0.01 arasındadır. GA’da genlerde mutasyon olasılığı genelde (0.01 gibi) düşük tutulmaktadır. Uygulamalarda alınan en büyük oran değeri 10% dur. Bu nedenle mutasyon etkileri kromozomlarda az görülmektedir. • Yeniden ve sürekli yeni nesil üretimi sonucunda, belli bir süre sonra nesildeki kromozomlar birbirlerini tekrar edebilir. Böylece farklı kromozom üretimi durur veya azalır. İşte bu nedenle nesildeki kromozom çeşitliliğini artırmak için kromozomlardan bazıları mutasyona tabi tutulur. • Mutasyon yapılmasının bir başka amacı da, popülasyondaki çeşitliliğin azalmamasını sağlamaktır. • Mutasyon, popülasyonu lokal minimuma takılmaktan uzak tutar. Tesadüfî işlemlerle kaybedilen genetik bilgiler gibi kayıp genetik materyalin geri kazanılmasında rol alır. Aynı zamanda genetik materyalin geri dönülemez kaybına karşı da bir sigorta işlevi görür. • Mutasyon sırasında kromozomdaki gen sayısı değişmez. • GA’da Mutasyon Oranı Pm, mutasyon olasılığını gösteren orandır. Amaç mevcut kromozomların genlerinin bir ya da birkaçını değiştirerek yeni kromozomlar elde etmektir.
  • 87.
    1) Binary KoddaMutasyon 2) Değer Kodda Mutasyon ll xxxxxx  ...,,...,, 11  iiii UBLBxx ,, 
  • 88.
    3) Permütasyon KoddaMutasyon Araya İlave (Insert) mutasyon Yer değiştirme mutasyon Ters mutasyon Karışık mutasyon
  • 89.
  • 90.
    GA’NIN PERFORMANSINI ETKİLEYENNEDENLER GA’nın isleyişini etkileyen faktör parametrelerdir. Genel olarak bu parametreler:  Popülasyon büyüklüğü,  Mutasyon tipi ve olasılığı,  Çaprazlama tipi ve olasılığı,  Nesil (kromozom) sayısı  Seçim operatörünün tipidir. Literatürde, bu parametrelerin uygun değerlerini bulmak için yapılmış teorik veya uygulamaya yönelik pek çok çalışma vardır.
  • 91.
    1) Kodlama BiçimininEtkisi GA’nın performansını belirleyen önemli bir faktördür, fakat kodlama biçimi probleme ve programa bağlı olduğu için bütün problemlerde geçerli olan uygun kodlama biçimini söylemek mümkün değildir. Michalewicz (1996) belirli bir problem tipi için gerçekleştirdiği çalışmada, gerçel sayı gösteriminin daha çabuk sonuca götürdüğünü belirtmiştir. GA lokal en iyi içindeki çözümü bulmak yerine yüksek oranda çoklu arama yeteneği sunarlar. GA uygunluk fonksiyonunun hesaplanması dışında hiçbir karmaşık matematiksel formül içermez ve genetik algoritmalar eniyileme için arama yönünde özel bir kurala sahip değildir.
  • 92.
    2) Parametre KodlamasınınEtkisi GA’da en önemli noktalardan biride kodlama işleminin nasıl yapılacağıdır. Parametrenin doğrusal ya da logaritmik olarak kodlanması GA’nın performansında oldukça önemlidir. Kodlamanın binary düzen, kayan nokta aritmetiği veya gray kodu ile gösterimi kodlama gösteriminde en yaygın yöntemlerdir.
  • 93.
    3) Popülasyon BüyüklüğününEtkisi Popülasyonun büyüklüğü problemin çözüm süresinde etkilidir. Popülasyonda bulunan bireylerin sayısı gereğinden fazla ise çözüm süresi uzar, bireylerin sayısı gereğinden az ise popülasyon istenen çözüme ulaşamayabilir. Problemin yapısına göre popülasyondaki birey sayısı, GA’yı hazırlayan uzman tarafından iyi belirlenmesi gerekir. Grefensette, GA için en uygun popülasyon büyüklüğü 10-160 birey arasında olması gerektiğini savunmuştur. Bunların yanında uygunluk fonksiyonunun ölçeklenmesinde rank, oransal, doğrusal ve üstel ölçekleme gibi yöntemler mevcuttur. Problemin yapısına göre uygun ölçek seçmek, genetik algoritmanın etkin işlemesi açısından önemlidir.
  • 94.
    4) Kromozom SayısınınEtkisi Kromozomun sayısı arttıkça çalışma zamanı da artmakta, sayıyı azaltma işleminde ise de kromozomların çeşitli olması engellenmektedir. GA’ların ana fikrinde, kromozoma sahip bireylerin karakterize ettiği toplumu yenilemesi fikri yatar. Kromozomları, l uzunluğundaki sembollerin bir zincir oluşturması sonucu oluşan yapı ile ifade etmek mümkündür. Oluşturulmuş olan her bir kromozom, optimizasyon probleminde uygun bir çözüm olarak düşünülür. Sembollerin her biri gen olarak adlandırılmaktadır ve gen hangi parametreyi ifade edecekse sıra ile dizilmesi sonucu kromozomlar oluşturulmuş olur. GA ve optimizasyon probleminin arasında bulunan bağlantıyı uygunluk fonksiyonu (F) sağlar. F fonksiyonu kromozomlar için kullanılır ve onları gerçel sayılara dönüştürmek için kullanılır. F değerinin büyük olması sonucu kromozomun temsil ettiği çözüm diğer kromozomlara göre daha iyidir.
  • 95.
    5) Mutasyon OranınınEtkisi Kromozomların yapısı birbirlerine benzer olmaya başladığı zaman hala çözüm değerlerinin uzağındalarsa, bu durumu mutasyon işlemi ile atlatmak mümkündür. GA’nın çıkmaza girdiği yerden kurtulmak için tek yol olarak da söylenebilir. Ancak yüksek bir değer vermek GA’yı kararlı bir noktaya ulaşmasını zorlaştıracaktır.
  • 96.
    6) Çaprazlama BiçimininEtkisi Normal olarak çaprazlama tek nokta baz alınarak gerçekleştirilir, fakat yapılan araştırmalar bazı problemlerde çok noktalı çaprazlamanın daha fazla yararlı olduğunu göstermiştir. 7) Başarı Değerlendirme Yönteminin Etkisi Her iterasyonun sonunda düzgün yazılmayan bir değerlendirme işlevi çalışma zamanını uzatmanın yanında çözüme hiçbir zaman erişememeye de neden olabilir. Ref: Elen, A., Avuçlu, E., GELECEĞİN DÜNYASINDA BİLİMSEL VE MESLEKİ ÇALIŞMALAR (2019), Ekin Basım Dağıtım.
  • 97.
    GA’nın Geleneksel Optimizasyon Yöntemleriile Karşılaştırılması Genetik algoritmaların temel prensibi basittir: Genetik ve doğal seleksiyonu bilgisayar yazılımları kullanarak taklit etmek. Problem parametreleri de DNA’daki gibi bir doğrusal veri yapısı, bir vektör veya bir dizi gibi en doğal biçimi ile kodlanır. Genetik algoritmalar geleneksel optimizasyon tekniklerinden aşağıdaki yönlerden farklıdır:  Genetik algoritmalar problem parametrelerinin kendilerinden ziyade kodlanmış versiyonları ile çalışırlar.  Hemen tüm geleneksel optimizasyon teknikleri tek bir noktadan hareket ederek araştırır ancak Genetik algoritmalar ise tek bir çözüm yerine çözümlerin popülasyonunu kullanır. Bu durum GA’nın global optimuma ulaşma olasılığını artırır ve yerel sabit bir noktaya takılmasından kaçınılmasını sağlar.  Genetik algoritmalar değerlendirme için türevlerden ziyade uygunluk fonksiyonunu kullanır. Bu fonksiyonlar da sürekli yada kesikli her tür optimizasyon problemine uygulanabilir.  Geleneksel yöntemler sürekli optimizasyonlara deterministik dönüşüm uygularken genetik algoritmalar olasılıklı dönüşüm uygular.
  • 98.
    Genetik Algoritmaların gelenekselyaklaşımların başarısız olduğu durumlarda çarpıcı sonuçlar ortaya koymasını sağlayan diğer bazı farkları ve avantajları aşağıdaki gibi sıralanabilir :  Sürekli ve kesikli değişkenleri optimize edebilir.  Türev alma işlemine gereksinim duymaz.  Çözüm alanında daha geniş örneklemeyi eş zamanlı araştırır. Global optimumu daha kolay belirler. Klasik yöntemlerde ise bu durum tek nokta ve yön olarak karşımıza çıkmaktadır.  Çok sayıda değişken ile çalışabilir.  Farklı problemlere kolaylıkla uyarlanabilir.  Paralel bilgisayarlarla hesaplamalar için oldukça uygundur.  Oldukça karmaşık çözüm yüzeylerinde yerel minimumlara takılmadan değişkenleri optimize edebilir.  Sadece tek bir çözüm yerine optimum değişkenlerin bir listesini verebilir.  Kodlanmış değişkenler ile optimizasyon sağlayabilmek için değişkenleri kodlayabilir.  Nümerik olarak oluşturulan verilerle, deneysel verilerle ve analitik fonksiyonlar ile çalışabilir.  Kendi iç kuralları ile çalıştığı için problemin kurallarını bilmesi gerekmez.  Problemin doğrusallaştırılmasını gerektirmemektedir.
  • 99.
    Bununla birlikte Genetikalgoritmaların her tür problemin çözümünde en iyi metot olduğu da söylenemez. Yalnızca birkaç değişkeni olan düzgün bir analitik fonksiyon geleneksel yöntemlerle kolayca çözülebilir. Bu gibi problemlerde Genetik Algoritma başlangıç popülasyonu için maliyetleri hesaplarken geleneksel yöntemler hesaplamayı tamamlamış olabilir. Genetik Algoritmaların sınırlılıkları ve dezavantajları ise şu şekilde sıralanabilir:  Uygunluk fonksiyonunu tanımlama problemi  Vaktinden önce yakınsama olabilmektedir.  Popülasyon büyüklüğü, mutasyon oranı, çaprazlama oranı, seçim metodu gibi çeşitli parametrelerin belirlenmesi problem oluşturabilir.  Probleme özgü bilgiler kolaylıkla dahil edilemez  Lokal optimumları tanımlamada iyi bir metot değildir.  İyi bir sonlandırıcı değildir. Harici yardım gerekebilir.  Kesin global optimumu bulmada sorun yaşayabilir.  Çok sayıda uygunluk fonksiyonu değerlendirmesine gereksinim duyar.
  • 100.
    GA’nın Uygulama Alanları GenetikAlgoritmaların mühendislik problemlerinde optimizasyon amaçlı olarak kullanılmaya başlanmıştır. Özellikle mekanizma tasarımında çok iyi sonuçlar ortaya konulmuştur. Bunların yanında otomatik programlama, öğrenme kabiliyetli makinalar, ekonomi, ekoloji, planlama, üretim hattı yerleşimi gibi çok farklı alanlarda da başarılı uygulamalar yapılmaktadır. Ayrıca dijital resim işleme tekniğinde de çokça uygulama alanı bulmuştur. Bu problemlerin hemen hemen hepsi çok geniş bir çözüm havzasının taranmasını gerektirmektedir. Bu çözüm havzasının geleneksel yöntemlerle taranması çok uzun sürmekte, genetik algoritmayla ise kısa bir sürede kabul edilebilir bir sonuç alınabilmektedir
  • 101.
    Genetik Algoritmanın KısaTarihçesi Genetik algoritmaların temel ilkeleri ilk kez Michigan Üniversitesi'nde John Holland tarafından ortaya atılmıştır. Holland 1975 yılında yaptığı çalışmaları “Adaptation in Natural and Artificial Systems” adlı kitabında bir araya getirmiştir. Çalışmalarının sonucunu açıkladığını kitabının 1975’te yayınlanmasından sonra geliştirdiği yöntemin adı Genetik Algoritmalar (kısaca GA ) olarak yerleşmiştir. 1985 yılında Holland’ın doktora öğrencisi David E.Goldberg 1989 yılında inşaat konusunda bir klasik sayılan kitabını yayınlayana dek genetik algoritmaların pek pratik yararı olmayan bir araştırma konusu olduğu düşünülüyordu. Kitabında Genetik Algoritmalara dayalı tam 83 uygulamaya yer vererek GA’nın bir anda tanınmasını sağlamış ve çeşitli konularda pratik kullanılabilir olduğunu göstermiştir.
  • 102.
    Sezgisel bir teknikolarak Genetik algoritmaların Yöneylem Araştırması problemlerinde kullanımı her geçen gün artmaktadır. Genetik algoritmalar temelde iki farklı amaç için kullanılmaktadır: 1. Bir sistem performansını optimize etmek için parametre seçimidir. Bu gibi sistemler muhtemelen kısıtlar ile birlikte büyük ölçüde sistemi kuran ya da işletenlerin belirlediği karar parametrelerine bağlıdır. Genetik algoritma uygulamalarının çoğunluğu sistemleri optimize etmek veya en azından onları optimuma yakınlaştırmaktır. 2. Sayısal modelleri test etmek ve uygunluğunu sağlamaktır. Literatürde karşımıza daha az çıkan bu uygulamalarda öncelikle açıklayıcı ya da tanımlayıcı bir model kurulur, veri toplanır ve model test edilir. Çelişkiler tespit edildiğinde model modifiye edilir. Performans optimizasyonunu hedefleyen algoritmaların aksine burada model ile veriler arasındaki uyumsuzluğun minimizasyonu hedeflenir.
  • 103.
    Uygulama alanlarının bazılarıaşağıdaki gibi sıralanabilir :  Kombinatoryal Optimizasyon (Combinatorial Optimization) problemleri: Gezgin satıcı problemi, araç rotalama problemi, Çinli postacı problemi, iş atölyesi çizelgeleme problemi, atama problemi, yerleşim tasarımı problemi ve sırt çantası problemi vb gibi problem uygulamaları  Bilgisayar ağları tasarımı  Nonlineer dinamik sistem tahmini, veri analizleri  Robot yörüngesi planlama  Görüntü işleme  LISP programlarının geliştirilmesi  Stratejik planlama  Protein moleküllerinin şeklinin bulunması  Gaz boru hattı uygulamaları  İmalat planlama, yerleşim planlama ve kaynak ataması  Mekanik öğrenme,  Yapay sinir ağlarının tasarımı,  Sinyal işleme, filtre dizaynı  Portföy optimizasyonu,  Hisse senedi fiyatlarındaki değişim kalıplarını tahmini  Montaj hattı dengeleme problemleri  Taşıma problemi
  • 104.
    Genetic Algorithm -Walkers https://kottke.org/plus/misc/images/genetic-walker.gif
  • 105.
    Genetic Algorithm –The Largest Circle http://petehare.com/writing-a-basic-genetic-algorithm-in-obj-c/
  • 106.
    Genetic Algorithm –Traveling Salesman Problem https://cdn.analyticsvidhya.com/wp-content/uploads/2017/07/31104045/TravelingSalesmanUSCapitals2.gif
  • 107.
    Genetik Algoritma Sınıflandırılması/Yaklaşımları/Türleri Genetik algoritmalarproblem çözümünde adım adım (step by step) bir prosedür ortaya koyar. Etkin bir arama tekniği olarak kendini ispatladığı için birçok işletme, fen bilimleri, mühendislik vb konularında problem çözümünde kullanılmıştır. Tüm bu özellikleri araştırmacıların genetik algoritmalara farklı yaklaşımlar geliştirmesine de olanak tanımıştır. Farklı genetik algoritma yaklaşımları izleyen slaytlarda açıklanmaktadır.
  • 108.
    1) Basit GenetikAlgoritma Yaklaşımı Basit genetik algoritmanın mekanizması, dizileri kopyalamak ve belirli kısımlarını değiştirmek dışında karmaşık işlemler içermemektedir. Birçok problemin çözümünde başarılı sonuçlar elde eden bu yaklaşım 3 işlemden oluşmaktadır:  Yeniden birleştirme (reproduction): Yeniden birleştirme aşamasında birey dizileri uygunluk değerlerine göre kopyalanır. En sık kullanılan yöntem rulet tekerleği seçimidir.  Çaprazlama  Mutasyon Basit genetik algoritma kullanımının faydalı olduğu durumlar aşağıda sıralanmıştır:  Arama yüzeyi geniş veya karmaşık ise,  Alan bilgisi veya uzmanlığın arama uzayını kodlamada yetersiz kaldığı durum mevcut ise,  Herhangi bir matematiksel analiz mevcut değil ise  Geleneksel metotlar denemesi başarısız olmuş ise Basit genetik algoritmanın avantajı keyfi kısıt ve amaçlar ile kolayca kullanılabilmesidir. Bununla birlikte kullanımda bazı dezavantajları mevcuttur:  Genellikle etkin değillerdir,  Değerlendirmeler çok zaman almaktadır,  Çok sayıda problemde popülasyonun büyük tutulması gerekmektedir.
  • 109.
    2) Paralel GenetikAlgoritma Yaklaşımı Çeşitli basit genetik algoritmaların paralel olarak uygulanması ‘paralel genetik algoritma’ olarak tanımlanmaktadır. Bu yaklaşım basit genetik algoritmaların geniş bir arama yüzeyinde optimale yakın çözümü bulmak için harcadığı sürenin kısaltılmasına yönelik geliştirilmişlerdir. Genetik algoritmaların paralel olarak çalıştırılabilmesi aşağıdaki elementlere bağımlıdır:  Uygunluğun değerlendirme ve mutasyonun uygulanma biçimi,  Seçimin lokal veya global uygulanması,  Tek veya çoklu alt popülasyonların kullanılması,  Çoklu popülasyonlar kullanılıyor ise bireylerin değiştirilme biçimi. Probleme alternatif çözümler ortaya koyabilmesi, farklı noktalardan hareketle paralel arama yapılmasını sağlaması, daha hızlı sonuç vermesi ve diğer arama prosedürleri ile kolayca bütünleştirilmesi bu yaklaşımın avantajları olarak sıralanabilir. Paralel genetik algoritma modelinin önemli bir diğer avantajı geleneksel ya da basit genetik algoritmaların erken yakınlaşmasını zorlaştırmasıdır. Birçok araştırmacı tarafından paralel genetik algoritmanın daha gerçekçi bir model olduğu ileri sürülmektedir. Paralel genetik algoritmalar da uygulama metoduna göre kendi içerisinde : A) Bağımsız paralel genetik algoritmalar, B) Göçebe paralel genetik algoritması, C) Bölümlendirme paralel genetik algoritması, D) Segmentasyon paralel genetik algoritması gibi kısımlara ayrılmaktadır.
  • 110.
    3) Hibrit GenetikAlgoritma Yaklaşımı Hibrit Genetik Algoritma çaprazlama tarafından üretilen yeni bireylerin gelişimi için sezgiselliğin kullanımını sağlamaya dönük geliştirilmiştir. Bir sezgisellik, başlangıç popülasyonu oluşturmada; diğer ikisi de ya çaprazlama ya da karıştırmadan gelen bireylere uygulanmaktadır. Son iki sezgisellik lokal minimuma takılı kalmasını önlemede kullanılmaktadır. Hibrit Genetik Algoritması adımları aşağıda sıralanmaktadır: 1.Adım: Başlangıç Sezgisellik algoritmasını kullanarak ilk popülasyon kısmını oluştur, Popülasyonun kalanını tesadüfi olarak belirle 2.Adım: Başlangıç popülasyonundaki her bir yerleşim için RemoveSharp algoritmasını uygula Başlangıç popülasyonundaki her bir yerleşim için LocalOpt algoritmasını uygula 3.Adım: Tesadüfi olarak iki ebeveyn seç, Seçilen ebeveynlere çaprazlama uygula ve yeni birey oluştur, Yeni bireye RemoveSharp algoritmasını uygula, Yeni bireye LocalOpt algoritmasını uygula, Yeni bireyin uygunluğu herhangi bir ebeveyninden büyük ise onunla yeni bireyi değiştir. 4.Adım: Popülasyondan seçilen herhangi bir bireyi mutasyona tabi tut, 5.Adım: Adım 3 ve 4’ü belirlenen iterasyon sayısınca tekrar et.
  • 111.
    4) Adaptif GenetikAlgoritma Yaklaşımı Popülasyon Büyüklüğü (), Çaprazlama Olasılığı (Pc) veya Mutasyon Olasılığı (Pm) genetik algoritmanın çalıştırılması sırasında değişiyorsa adaptif genetik algoritmalar olarak adlandırılmaktadır. Çok optimumlu problemlerin optimizasyonunda genetik algoritmaların iki önemli karakteristiğinin olması zaruridir. Bu özelliklerin ilki optimuma yakınsama kapasitesi; ikincisi ise çözüm uzayında global optimumu ararken yeni bölgeleri keşfetme kapasitesidir. Bu iki karakteristik arasındaki denge mutasyon olasılığı, çaprazlama olasılığı ve kullanılan çaprazlama yöntemi tarafından belirlenmektedir. Adaptif genetik algoritma yaklaşımında keşif ve sömürü (exploitation) arasındaki dönüşüm, çözümün uygunluk değerine göre mutasyon olasılığı ve çaprazlama olasılığının değiştirilmesi ile yapılmaktadır. Popülasyonun yerel minimuma takılma eğilimi ortaya çıktığında her iki olasılık da artırılmakta; çözüm uzayına yayılımı artınca da azaltılmaktadır.
  • 112.
    5) Messy (HızlıDağınık) Genetik Algoritma Yaklaşımı Dağınık genetik algoritma, ikili, stokastik, değişken kromozom uzunluklu ve popülasyon temelli bir problem çözme yaklaşımıdır. Diğer yaklaşımlardan en önemli farkı, en iyi çözüme ulaşmak için genetik materyalin yapı bloklarını (building blocks) açıkça manipüle edebilmesidir. Dağınık genetik algoritma 3 işlem aşaması içermektedir: 1. Başlangıç aşaması, 2. İlksel (primordial) aşama, 3. Bitişiklik durumu (juxtapositonal) aşaması. Adımları:  Başlangıç aşamasında, bir sonraki blok filtreleme aşamasında ortaya çıkabilecek gürültünün (noise) üstesinden gelebilmek için yeter derecede büyük bir popülasyon elde etmek için popülasyon boyutu belirleme denklemi kullanılır.  Popülasyon büyüklüğü belirlendikten sonra başlangıç popülasyonu üyeleri rastgele olarak belirlenir ve seçilen uygulamaya göre onların uygunluk değerleri hesaplanır.  Yapı bloğu filtreleme şeması kullanılarak başlangıç aşamasında belirlenen bu popülasyon üyeleri sistematik olarak, kullanıcı tarafından belirlenen yapı bloğu büyüklüğüne düşürülür.  Yapı bloğu filtrelemede her bir popülasyon üyesinin belirli sayıda bit’i silinir.  Bir sonraki jenerasyon için en iyi kısmi dizilerin saklanabilmesi için bu silme işlemini turnuva seçimi takip eder.  Son aşamada ise filtreleme aşamasında gelen yapı blokları alınır ve bir ‘kes ve dilimle’ (cut-and-slice) operatörü ile birleştirilir.  Bu prosesi de turnuva seçimi izlemektedir.
  • 113.
    Genetik Algoritmanın YapayZekadaki Yeri Artificial Intelligence Machine Learning Neural Networks Deep Learning
  • 114.
    Genetic Algorithm -Neural Networks - Fuzzy Logic
  • 115.
    Faydalı olması dileklerimle…Dr. Hakan Erdun , 2020