Anasayfa / Bilgisayar Mühendisliği / Genetik Algoritma Örneği

Genetik Algoritma Örneği

Soru: f(x): 3x2 +2x1.x2+2x22+7 minimizasyonu. x1,x2 ε [0,31]

İterasyon 1: x1 ve x2 0 ve 1 lerden oluşan 5 bitlik bir sayı.

00000→0       11111→31               n:4 olarak seçilmiş  yani toplumun birey sayısı.

Birey 1: 01101      x1: 13 ,     01001    x2: 9       f(x):910

Birey 2: 11000    x1: 24 ,     01100    x2: 12     f(x):2599

Birey 3: 01000   x1: 8  ,      01111     x2: 15      f(x):889

Birey 4: 10011    x1: 19 ,      00011   x2:3         f(x):1222

Bütün değerlerin toplamı: 910+2599+889+1222=5620 yani 4 bireyin uygunluk değeridir.

Rulet tekerleğinde her bireyin kaplayacağı alan;

Birey 1 910/5620= %16                -%16

Birey 2 2599/5620= %46            -%46

Birey 3 889/5620= %15              -%15

Birey 4 1222/5620= %21            -%21

Rulet tekerleği 4 kez çevrildiğinde

Birey 1: 1 kere , Birey 2: 0 kere , Birey 3: 2 kere, Birey 4: 1 kere gelmiş olsun.Yüzdeliklere göre gelme durumlarıdır.

Çiftleşme Havuzu;

Aday 1: 01101  x1:13 , 01001  x2:9   f(x):910   (birey 1)

Aday 2: 01000  x1:8 , 01111  x2:15   f(x):889  (birey 2)

Aday 3: 01000  x1:8 , 01111  x2:15   f(x):889  (birey 3)

Aday 4: 10011  x1:19 , 00011  x2:3   f(x):1222  (birey 4)

**Çaprazlama için grup yapılmış ve zar atılmıştır.

Grup 1      (k=4 yani 4.bitten sonra çaprazlama yapılacağını gösterir.)

Aday 1: 01101    x1:13 ,  01001   x2:9   → x1:01100 , 12  x2:01001 , 9   Birey 1

Aday 2:01000   x1:8  ,  01111     x2:15  → x1:01001 ,9   x2:01111 , 15    Birey 2

Grup 2   (k=2 yani 2.bitten sonra çaprazlama yapılacağını gösterir.) için de aynı işlemleri yapınca elde edilen sonuç aşağıdaki gibidir.

Aday 3: 01011    x1:11 ,  01011   x2:11     Birey 3

Aday 4: 10000   x1:16 ,  00111   x2:7     Birey 4

Son aşama olan mutasyon aşamasında (toplam 20 bit için) rasgele değerler alınarak hangi bireyin kaç nolu bitinin mutasyona uğrayacağına karar verilir. Birey 3’ün 2 nolu bitinde mutasyon olcağını rasgele sayılar sonucunda belirlediğimizi kabul edersek;

Birey 3 için   x1:00011 , 3  x2:00011 , 3   olur. Görüldüğü gibi 2.bitinde değişiklik olmuştur.

Yeni Populasyonumuz

Birey 1   x1:12  x2:9   f(x):817

Birey 2   x1:9  x2:15   f(x):970

Birey 3  x1:3  x2:3      f(x):70

Birey 4   x1:16  x2:7   f(x):1097

İterasyon 2 : Burada yapılacak işlem yeni populasyon bireyleriyle eski populasyonumuzun bireylerini birleştirip en uygun olan 4 tanesini seçmektir. Seçme işleminden sonra tekrar aynı adımlar uygulanır.(Rulet tekerleği,çiftleşme havuzu,çaprazlama,mutasyon gibi..) Her zaman bir önceki iterasyonda oluşturulan bireylerle karşılaştırma yapılır.

İyi Çalışmalar..

Hakkında Ali Demirci

Ben Ali Demirci... 1991 Ankara doğumluyum. Ankara da yaşıyorum. Fırsat buldukça öğrendiklerimi burada paylaşıyorum. Java ile haşır neşirim. Android'den asla vazgeçemem. Öğrenmeye bayılırım. Yeni şeyler öğrendiğimde, geçmişteki projelerimde keşke böyle yapsaydım diye çok üzülmüşümdür. O yüzden öğrenmekten korkmayın. Takıldığınız yerleri mutlaka sorun. Biliyorsam yanıt veririm. Bilmiyorsam yol gösteririm. Teşekkürler :)

Kontrol Et

Regex Nedir? Nasıl Kullanılır?

Regex(Regular Expression) yani düzenli ifadeler, metinlerde aranan bir tümceyi kolayca bulmamızı sağlayan bir çeşit algoritmadır. Yani …