Adım 1 - SABİS

advertisement
GENETİK ALGORİTMALAR (GA)

Genetik algoritmalar, canlıların çiftleşmesi
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.
GA




GA yöntemi ilk olarak, John Holland ve arkadaşlarının
yaptığı çalışmalarda 1970’li yıllarda ortaya çıkmıştır
(SGA).
GA’nın temel amacı, fazla sayıda sınırlama içeren ve
karmaşık optimizasyon sorunlarının çözümlerini,
yazılımlar yardımıyla araştırmaktır.
Konuyla ilgili Goldberg, 1989 yılında “Genetic Algorithms
in Search, Optimization, and Machine Learning” adlı
klasik sayılacak eseri yayınlamıştır.
Bu eserle birlikte, konu üzerine yapılan çalışmalar büyük
hız kazanmıştır.
GA nedir?
GA, rastsal arama tekniklerini kullanarak
çözüm bulmaya çalışan, parametre
kodlama esasına dayanan bir arama
tekniğidir.
 Bir veri grubu içinde özel bir veriyi bulmak
için kullanılır.

GA – Klasik Optimizasyon




GA parametrelerin kendileri ile değil, parametre
takımının kodlanmış bir haliyle uğraşırlar.
GA amaç fonksiyonunun türevlerini ve bir takım ek
bilgileri değil, doğrudan amaç fonksiyonunun kendisini
kullanırlar.
Genetik algoritmalar aramaya tek bir noktadan değil,
noktalar kümesinden başlar. Bu nedenle çoğunlukla
yerel en iyi çözümde sıkışıp kalmazlar.
GA’da deterministlik değil rastlantısal geçiş kuralları
kullanılır.
GA Adımları
1.
2.
3.
4.
5.
6.
Başlangıç popülasyonunu rastlantısal olarak
üret.
Popülasyon içindeki tüm kromozomların amaç
fonksiyonu değerlerini hesapla.
Tekrar üreme, çaprazlama ve mutasyon
operatörlerini uygula.
Oluşturulan her yeni kromozomun amaç
fonksiyonu değerlerini bul.
Amaç fonksiyonu değerleri kötü olan
kromozomlar popülasyondan çıkar.
3-5 arasındaki adımlar tekrar et.
Akış Diyagramı
Kodlama Türleri
 Çaprazlama Türleri
 Mutasyon Türleri

GA terimleri

Gen
 Kalıtsal
molekülde bulunan ve organizmanın
karakterlerinin tayininde rol oynayan kalıtsal birimlere
denir.
 Yapay sistemlerde gen, kendi başına anlamlı bilgi
taşıyan en küçük birim olarak tanımlanır.

Kromozom (Birey)
 Birden
fazla genin bir araya gelerek oluşturduğu
diziye denir.
 Kromozomlar, alternatif aday çözümleri gösterirler.
GA terimleri

Popülasyon
 Kromozomlardan
oluşan topluluğa denir.
 Popülasyon, geçerli alternatif çözüm kümesidir.
 Popülasyondaki birey sayısı (kromozom) genelde
sabit tutulur.
 GA’da popülasyondaki birey sayısı ile ilgili genel bir
kural yoktur.
 Popülasyondaki kromozom sayısı arttıkça çözüme
ulaşma süresi (iterasyon sayısı) azalır.
GA terimleri
 Kodlama
 Kodlama
GA’nın çok önemli bir kısmını
oluşturmaktadır.
 Probleme GA 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.
GA kodlama türleri

İkili Kodlama
Her kromozom ikili diziye sahiptir { 0, 1 }
 Bu dizideki her bit, çözümün belli karakteristiğini
temsil eder veya tüm dizi bir sayıyı temsil eder.
 Kodlamada en sık kullanılan yöntemdir.
 Örnek { 10101001 }

GA kodlama türleri

Permütasyon Kodlama



Düzenleme problemlerinde kullanılır.
Burada her kromozom, sayıları bir sırada temsil
etmektedir.
Permütasyon kodlama, gezgin satıcı ve çizelgeleme
problemleri için kullanışlıdır.
Kromozom A
78941
Kromozom B
87914
GA kodlama türleri

Değer Kodlama

Gerçek sayılar gibi karmaşık değerlerin kullanıldığı
problemlerde, ikili kodlama zor olduğu için doğrudan
değer kodlanması kullanılabilir
Kromozom A
1.2324 3.5354 4.6465 3.5556
Kromozom B
Doğu, Batı, Güney, Kuzey
GA kodlama türleri

Ağaç Kodlama
Bu yöntem gelişen, değişen programlar veya
ifâdeler için kullanılır.
 Örneğin GA. Ağaç kodlamada her kromozom, bâzı
nesnelerin (örneğin fonksiyonlar ya da
programlama dilindeki komutlar gibi) ağacıdır.

/
z
g
3
(z/3)-g
Seçim türleri

Rulet-Çember Seçimi

En basit seçim yöntemi olarak bilinmektedir.
Uygulanışı :




Tüm fertler 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.
Seçim türleri

Rank Seçimi
 En
iyi kromozomun uygunluk değeri çok yüksek ise,
Rulet-Çemberi seçim yöntemi problem
yaratabilir(Sürekli yüksek olasılığa sahip kromozom
seçilecek). Bu nedenle, Rank seçim yöntemi
uygulanabilir.
 Popülasyon uygunluk değerine göre tersten sıralanır.
Yani en iyi kromozom N adetlik bir popülasyonda N
değerini alır
 Seçim bu değerlere göre yapılır.
Rulet-Çember
Seçimi
Rank Seçimi
Öncesi
Rank Seçimi
Sonrası
Seçim türleri

Kararlı Hal Seçimi (Yerine 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.
Yeni çocuklar oluşturmak için her nesilde UD yüksek birkaç
kromozom seçilir.
UD düşük bâzı kromozomlar atılır ve yeni çocuk onun yerine
yerleştirilir.
Popülasyonun geri kalan kısmı yeni nesilde hayattadır.
Bu yöntemde alt popülasyon oluşturulduktan sonra uygunluklar
hesaplanır, en kötü kromozomlar yerlerini başlangıç
popülasyonundaki en iyi kromozomlara bırakır.
Çaprazlama





Çaprazlama, iki kromozomun (çözümün) birbirleri arasında gen
alışverişinde bulunup iki yeni kromozom oluşturmasıdır.
Genetik algoritmadaki en önemli parametrelerden bir tanesidir.
İkili yöntemle kodlanmış değişkenlerin yaptıkları üreme faaliyeti,
kromozomların çaprazlamasına benzemesi dolayısıyla 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ülasyon dizisinden rastsal olarak iki kromozom seçilir ve
karşılıklı çaprazlama işlemine tâbi tutulur.
1-Noktalı Çaprazlama (İkili Kod)
Pc
(0.6, 0.9) aralığındadır
N-Noktalı Çaprazlama (İkili Kod)
Düzenli Çaprazlama (İkili Kod)
Tek Aritmetik Çaprazlama (Değer Kod)




Atalar x1,…,xn  ve y1,…,yn
(k) gelişigüzel seçilir
x1 , ..., xk ,   yk  (1   )  xk , ..., xn
child1 :
Diğer child için tersidir.  = 0.5 için
Basit Aritmetik Çaprazlama (Değer Kod)
x , ..., x ,   y
 (1   )  x
, ...,   y  (1   )  x
1
k
k 1
k 1
n
n
 = 0.5 için
Bütün Aritmetik Çaprazlama (Değer Kod)
a  x  (1  a)  y
 = 0.5 için
Sıralama çaprazlama (OX) (Permutasyon
Kod)

Çaprazlama noktası seç, aynısını kopyala

Gerisini 1,9,3,8,2 sırasıyla ikinciden al
Parçasal eşleşmeli çaprazlama
(PMX) (Permutasyon Kod)

Adım 1

Adım 2

Adım 3
Çevrim Çaprazlama (CX)
(Permutasyon Kod)

Adım 1: Çevrimleri bul

Adım 2: Değişimli çevrimleri çocuğa kopyala
Mutasyon

pm =mutasyon oranı (1/pop_buyuk and 1/ Kromozom_uzunlugu)
 Mutasyon Oranı, 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.
 Genelde mutasyon olasılığı (0.01 gibi) düşük tutulmaktadır.
 Bu nedenle mutasyon etkileri kromozomlarda az görülmektedir.
 Mutasyon sırasında kromozomdaki gen sayısı değişmez, sabit
kalır.
 Mutasyon yapılmasının bir başka amacı da, popülasyondaki
çeşitliliğin azalmamasını sağlamaktır
İkili kodda mutasyon
Değer kodda mutasyon
x  x1 , ..., xl  x   x1, ..., xl
xi , xi  LBi ,UBi 
Permutasyon kodda mutasyon
Ekleme mutasyon
Yer değiştirme mutasyon
Ters mutasyon
Karışık mutasyon
GA Çevrimi
Çaprazlama
Nesil i
X1i
1 1 0 0
f = 36
X2i
0 1 0 0
f = 44
X3i
0 0 0 1
f = 14
X4i
1 1 1 0
f = 14
X5i
0 1 1 1
f = 56
X6i
1 0 0 1
f = 54
X6i
1 0 00 1
0 1 00 00 X2i
X1i
0 11 00 00
1
0 11 11 11 X5i
X2i
0 1 0 0
0 1 1 1 X5i
Nesil (i + 1)
X1i+1 1 0 0 0
f = 56
X2i+1 0 1 0 1
f = 50
X3i+1 1 0 1 1
f = 44
X4i+1 0 1 0 0
f = 44
X5i+1 0 1 1 0
f = 54
X6i+1 0 1 1 1
f = 56
Mutasyon
X6'i 1 0 0 0
X2'i 0 1 0 1
0
X1'i 1
0
1 1
1
1 1 X1"i
X5'i 0 1 0
1 0
1
X2i
0 1
X5i
0 1 1 1
0
0 1
0 X2"i
Örnek: Fonksiyon Maksimizasyonu
Problem
Amaç
: f(x)=x², x[0, 31] şeklinde verilen bir fonksiyonun.
: Verilen aralıkta fonksiyonun maksimizasyonu.
Adım 1: x’in 0 ve 1'lerden oluşan 2 tabanındaki gösterilimi
yapılmaktadır
0 : “00000”
31 : “11111” olacaktır.
Adım 2: Toplumun birey sayısı n:4 olarak seçilmiştir. Toplumu
oluşturan dört birey, her biri 5 bit uzunluğunda birer kromozomla
temsil edildiği için toplam 20 kere yazı tura atmak suretiyle
belirlenmiştir.
Birey 1: 01101,
x = 13 ,
x² = 169
Birey 2: 11000,
x = 24 ,
x² = 576
Birey 3: 01000,
x=8,
x² = 64
Birey 4: 10011,
x = 19 ,
x² = 361
Adım 3: Belirlenen bireyler için f(x)=x² ile uygunluk değerlerini
hesaplanır. Dört bireyin toplam uygunluk değerleri;
169 + 576 + 64 + 361 = 1170
Her bir bireyin rulet tekerleğinde kaplayacağı alan;
Birey 1: 169 / 1170 = 0.14 : %14
Birey 2: 576 / 1170 = 0.49 : %49
Birey 3: 64 / 1170 = 0.06 : %6
Birey 4: 361 / 1170 = 0.31 : %31
Bu değerler, rulet tekerleğinin her çevrilişinde hangi olasılıkla hangi
bireyin seçileceğini belirtir.
Adım 4: Toplumda ki birey sayısının sabit kaldığı
varsayıldığından, rulet tekerleği 4 kere çevrilerek çiftleşme
havuzu oluşturulur.
Birey 1 : 1 kere
Birey 2 : 2 kere
Birey 3 : 0 kere
Birey 4 : 1 kere
Elde edilen çiftleşme havuzu şu şekildedir;
Aday 1 : 01101 (Birey 1)
Aday 2 : 11000 (Birey 2)
Aday 3 : 11000 (Birey 2)
Aday 4 : 10011 (Birey 4)
Adım 5: Çiftleşme havuzu belirlendikten sonra iki aşamalı
çaprazlama uygulanır.
İlk aşamada adaylar
çiftleşmek üzere rasgele olarak
eşlenirler. Rasgele eşleştirme sonucunda ( Aday 1, Aday 2) ve
(Aday 3, Aday 4) ikili grupları oluşturulur.
İkinci aşamada her ikili grup için birer kere zar atılarak
çaprazlaşmanın oluşacağı nokta belirlenir. Zar atılarak 1. Grup
için k=4 ve 2. Grup içinde k=2 olarak belirlenmiştir.
Çiftleşme grubu 1: (k=4)
Aday 1 : 0110/1
Aday 2 : 1100/0
Çiftleşme grubu 2 : (k=2)
Aday 3 : 11/000
Aday 4 : 10/011
oluşan Birey 1 : 01100
oluşan Birey 2 : 11001
oluşan Birey 3 : 11011
oluşan Birey 4 : 10000
Adım 6: Son aşama olan mutasyon işlemi bitler düzeyinde uygulanır.
Birey 3’ün 2 numaralı bitinde mutasyon işlemi tapılmaktadır.
Oluşan Birey 3 : 11011
Mutasyon sonucu oluşan Birey 3 : 10011
Bu adımın tamamlanmasıyla bir sonraki kuşağı oluşturacak toplumun
bireyleri belirlenmiş olur. Yeni toplum şu şekildedir;
Birey 1 : 01100,
Birey 2 : 11001,
Birey 3 : 10011,
Birey 4 : 10000,
x=12,
x=25,
x=19,
x=16,
x²=144
x²=625
x²=361
x²=256
Bu örnekte tek bir iterasyon yapılmış ve başlangıç toplumundan bir
sonraki kuşak oluşturulmuştur ancak genetik algoritmanın
çalışmasının tam olarak gözlenebilmesi için tek bir iterasyon yeterli
değildir.
Problem
: Rasgele seçilmiş 8 bitlik 4 bireyden en iyi bireyi
oluşturmak.
Başlangıç
:
a : 00000110
b : 11101110
c : 00100000
d : 00110100
Amaç
:
11111111
Uygunluk kriteri: Her dizinin barındırdığı 1 değeri
Çaprazlama
: Rasgele
Mutasyon
: Rasgele
GA Örnek (Özet)

max x2 x={0,1,…,31}
Çaprazlama
Mutasyon
Download