GENETİK ALGORİTMALAR (GA)

Slides:



Advertisements
Benzer bir sunumlar
Unsupervised Learning (Kümeleme)
Advertisements

Karmaşıklık Giriş.
Karmaşıklık Giriş.
MIT503 Veri Yapıları ve algoritmalar
KARAR TEORİSİ.
IT503 Veri Yapıları ve algoritmalar
Prof. Dr. Eşref ADALI Yrd. Doç. Dr. Şule Gündüz Öğüdücü Sürüm-A
MIT503 Veri Yapıları ve algoritmalar Algoritma Oluşturma – Açgözlü algoritmalar ve buluşsallar Y. Doç. Yuriy Mishchenko.
Problemi Çözme Adımları
9.Sınıf Tıbbi Etik ve Meslek Tarihi
SEZGİSEL ALGORİTMALAR (devam)
ÖRNEKLEME DAĞILIŞLARI VE TAHMİNLEYİCİLERİN ÖZELLİKLERİ
Bilgi Teknolojisinin Temel Kavramları
MATEMATİKSEL PROGRAMLAMA
GENETİK ALGORİTMALAR (1-15.slayt).
SAÜ. ENDÜSTRİ MÜHENDİSLİĞİ BL. GENETİK ALGORİTMALARIN UYGULANMASI
4 Kontrol Yapıları: 1.Bölüm.
AKADEMİK BİLİŞİM ’07’ 31OCAK-2 ŞUBAT 2007 KÜTAHYA
CLUSTERING USING REPRESENTATIVES Hazırlayan: Arzu ÇOLAK
MIT503 Veri Yapıları ve algoritmalar Algoritmalara giriş
Bellek Tabanlı Sınıflandırma
MAKSİMUM OLASILIK (MAXİMUM LİKELİHOOD)
META SEZGİSEL YÖNTEMLER
EVRİMSEL DEĞİŞİM MEKANİZMALARI
BPR151 ALGORİTMA VE PROGRAMLAMA - I
Fonksiyonlar ve Alt Programlar
Yalınlaştırma İle İlgili Tanımlar
Fonksiyonlar Hafta 4.
Enerji Sistemlerinde Yapay Arı Kolonisi (YAK) Algoritması Kullanarak Yük Akışı Optimizasyonu Nihat Pamuk.
Nesneye Dayalı Programlama
MIT503 Veri Yapıları ve algoritmalar Veri ağaçları
Veri Yapıları ve Algoritmalar
Microsoft EXCEL (2) Kapsam Kopyalama, Yapıştırma Açıklama Ekleme Satır ve Sütunların Boyutlandırılması Bitişik Hücrelere Dayanarak Otomatik Veri Girme.
Chapter 6: Using Arrays.
Bölüm6:Diferansiyel Denklemler: Başlangıç Değer Problemleri
VERİLERİN DERLENMESİ VE SUNUMU
SÜREKLİ ŞANS DEĞİŞKENLERİNİN OLASILIK YOĞUNLUK FONKSİYONLARI
FONKSİYONLAR f : A B.
BİYOİNFORMATİK NEDİR? BİYOİNFORMATİKTE KULLANILAN SINIFLAMA YÖNTEMLERİ
Olay Ağacı Analizi (ETA)
YAPAY SİNİR AĞLARI VE BAYES SINIFLAYICI
C PROGRAMLAMA FONKSİYONLAR Adres ile Fonksiyon Çağırma Pointer (İşaretçiler) ile Fonksiyon Çağırma Rekürsif Fonksiyonlar.
Örnekleme Yöntemleri Şener BÜYÜKÖZTÜRK, Ebru KILIÇ ÇAKMAK,
Ölçme Sonuçlarının Değerlendirilmesi
ENF 204 Bilgisayar Programlama Algoritma ve Akış Diyagramları
Şahin BAYZAN Kocaeli Üniversitesi Teknik Eğitim Fakültesi
BİL551 – YAPAY ZEKA Genetik Algoritma
KALITIM.
Bileşik Mantık Devreleri (Combinational Logic)
Bulanık Mantık Kavramlar:
KIRPMA (Clipping) Bir grafik veri tabanından bir parçayı çıkarma işlemi olan kırpma bilgisayar grafiğinin temel işlerinden birisidir. Kırpma algoritmaları.
Tacettin İnandı Olasılık ve Kuramsal Dağılımlar 1.
VERİ ve BELLEK & DEĞİŞKENLERİN SAKLANMASI Asst.Prof.Dr.Misket YEKTAY Gizem AYIK.
M.Fatih AMASYALI Yapay Zeka Ders Notları
Danışman Hoca : Doç. Dr. Muharrem KARAASLAN.  Elektromanyetik, sivil ve savunma uygulamalarıyla dünyadaki bütün araştırmacılar arasında büyük ilgi görmektedir.
Genetik Algoritma/Programlama
Genetik Algoritma.
Algoritma ve Akış Şemaları
Algoritmalar II Ders 8 Açgözlü Algoritmalar.
VERİLERİN DERLENMESİ VE SUNUMU
POPULASYON GENETİĞİ.
Genetik Algoritma.
Algoritma Nedir? Algoritmayı, herhangi bir problemin çözümü için izlenecek yolun adımlar halinde yazılması olarak tanımlayabiliriz. Algoritma, bir problemin.
Fırat Üniversitesi Mühendislik Fakültesi Elektrik-Elektronik Müh.
Bilgisayar Bilimi Problem Çözme Süreci-2.
YER DEĞİŞTİRME VE DEĞER DÖNÜŞTÜRME ÖZELLİĞİNE SAHİP GÖRÜNTÜ ŞİFRELEME ALGORİTMALARININ ANALİZİ Erdal GÜVENOĞLU Nurşen SUÇSUZ 
M. Aykut Yiğitel, Tolga Tolgay ve Cem Ersoy
Bilgisayar Bilimi Problem Çözme Süreci-3.
Sunum transkripti:

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ı 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 Kromozom (Birey) 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 7 8 9 4 1 8 7 9 1 4 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 7 8 9 4 1 Kromozom B 8 7 9 1 4

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. - / g z 3 (z/3)-g

Seçim türleri Rulet-Çember Seçimi Uygulanışı : 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 child1 : Diğer child için tersidir.  = 0.5 için

Basit Aritmetik Çaprazlama (Değer Kod)  = 0.5 için

Bütün Aritmetik Çaprazlama (Değer Kod)  = 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

Permutasyon kodda mutasyon Ekleme mutasyon Yer değiştirme mutasyon Ters mutasyon Karışık mutasyon

GA Çevrimi

Örnek: Fonksiyon Maksimizasyonu Problem : f(x)=x², x[0, 31] şeklinde verilen bir fonksiyonun. Amaç : 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 oluşan Birey 1 : 01100 Aday 2 : 1100/0 oluşan Birey 2 : 11001 Çiftleşme grubu 2 : (k=2) Aday 3 : 11/000 oluşan Birey 3 : 11011 Aday 4 : 10/011 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, x=12, x²=144 Birey 2 : 11001, x=25, x²=625 Birey 3 : 10011, x=19, x²=361 Birey 4 : 10000, x=16, 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 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