Genetik Algoritma
İçerik Giriş Genetik Algoritma Terimleri Genetik Operatörler Genetik Algoritma Parametre Seçimi Genetik Algoritmanın Uygulama Alanları Genetik Algoritma Nasıl Çalışır? Basit Bir Uygulama Matlab fonksiyonları
Giriş Genetik Algoritmalar, doğal seçim ilkelerine dayanan bir arama ve eniyileme yöntemidir. İlk defa Michigan Üniversitesi’nde John Holland ve çalışma arkadaşları tarafından geliştirilmiştir. Tek bir çözüm üretmek -> bir çözüm kümesi Çözüm uzayının tamamını değil belirli bir kısmını tararlar. GA problemlere tek bir çözüm üretmek yerine farklı çözümlerden oluşan bir çözüm kümesi üretir. Margin & Padding
Genetik Algoritma Terimleri Kendi başına anlamlı bilgi taşıyan en küçük birim Kromozom (Birey) Birden fazla genin bir araya gelerek oluşturduğu dizi Kromozomlar, alternatif aday çözümleri gösterirler.
Genetik Algoritma Terimleri Popülasyon Kromozomlardan oluşan topluluk Geçerli alternatif çözüm kümesi Birey sayısı (kromozom) genelde sabit Popülasyondaki kromozom sayısı arttıkça çözüme ulaşma süresi (iterasyon sayısı) azalır. Kodlama 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.
Genetik Algoritma Terimleri Kodlama Türleri ; Binary Kodlama Her kromozom ikili diziye sahiptir { 0, 1 } Kodlamada en sık kullanılan yöntemdir Örnek { 10101001 } 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.
Genetik Algoritma Terimleri 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 kodlaması kullanılabilir. 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.
Genetik Operatörler Bu operatörler Gen Havuzu Seçim Çaprazlama GA’nın temel işleyişini oluşturan ve yürütücülüğünü belirleyen kısımdır. Kullanılan genetik operatörler, var olan popülasyon üzerine uygulanan işlemlerdir. Bu işlemlerin amacı daha iyi özelliğe sahip yeni nesiller üretmek ve arama algoritmasının alanını genişletmektir. Bu operatörler Gen Havuzu Seçim Çaprazlama Mutasyon
Genetik Operatörler Gen Havuzu Gen havuzu, kromozomların uygunluklarının değerlendirilip kopyalama işleminin yapıldığı yerdir. Aşağıdaki topluluk içerisinden uygunluk değeri yüksek olan bireyler seçilerek, en yüksek uygunluklu birey, uygunluğu düşük olan bireyin yerini almaktadır.
Genetik Operatörler Seçim Yeni popülasyonun seçilmesinde hangi fertlerin eşleme için seçileceği seçim fonksiyonuyla sağlanır. Seçimlerde kullanılan kalite faktörüne fitness denir. Rulet Tekeri Seçimi Ranking Seçimi Sabit Durum Seçimi Turnuva Seçimi Burada bahsedilen uygunluk değeri, Genetik Algoritma ile bulunan problemin sonuç değerini göstermektedir. Bu operatör yeni topluluk içerisinde, uygunluğu yüksek bireylerin bulunmasını sağlamaktadır. İyi olan bireylerden daha iyi birey elde etmek için seçim operatörü kullanılır. Margin & Padding
Genetik Operatörler Rulet Tekeri Seçimi: Ebeveynler uygunluklarına göre seçilirler. Daha iyi kromozomlar, daha fazla seçilme şansına sahip olanlardır. Rulet tekeri üzerindeki kromozomun yerinin boyutu kromozomun uygunluğuyla orantılıdır. Toplumdaki tüm kromozomların yerleştirildiği bir rulet tekerini hayal edelim.Rulet tekeri üzerindeki kromozomun yerinin boyutu kromozomun uygunluğuyla orantılıdır.Daha uygun olan kromozom daha geniş bir kısma sahip olur. Margin & Padding
Genetik Operatörler Ranking Seçimi: Rulet tekerleğindeki tıkanmayı önlemek için kullanılır. Uygunluk değeri büyüklüklerine göre bireyler sıralanır. Rank seçimi önce popülasyonu sıralar ve daha sonra her kromozom uygunluğu bu sıralamadan sonra alır. En kötüsü 1 uygunluğunu alacak, ikinci en kötü 2 ve en iyisi N uygunluk değerini alacak ki N de popülasyondaki kromozom sayısıdır. Margin & Padding
Genetik Operatörler Sabit Durum Seçimi: Bu özel bir ata seçme yöntemi değildir. Bu tip seçimin ana fikri, toplumun var olan kromozomlarının büyük bir kısmının yeni nesle aktarılmasıdır. Sabit durum seçimi şu şekilde çalışmaktadır. Her yeni nesilde yüksek uygunluk değerine sahip kromozomlar yeni yavruları oluşturmak için seçilir ve düşük uygunluk değerine sahip yavrular kaldırılarak yerlerine bu yeni oluşturulan yavrular koyulur. Toplumun geri kalan kısmı aynen yeni nesle aktarılır. Margin & Padding
Genetik Operatörler Turnuva Seçimi: Kural dahilinde iki kromozom toplum içerisinden seçilerek uygunluk fonksiyonu büyük olan kromozom eşleşme havuzuna gönderilir, diğeri ise havuzun içine tekrar bırakılır.
Genetik Operatörler Elitizm(Seçkinlik) : Çaprazlama ve Mutasyon yöntemleriyle yeni bir nesil oluştururken, en iyi kromozomları kaybetme olasılığımız vardır. Elitizm en iyi kromozomu ya da birkaç en iyi kromozomları yeni nesle kopyalama metodunun adıdır. Elitizm çok hızlı bir şekilde GA’ nın performansını arttırır çünkü en iyi bulunan çözümü kaybetmeyi önler. Margin & Padding
Genetik Operatörler Çaprazlama Çaprazlama işlemini uygunluk değerlerine göre seçilmiş iki ebeveyn bireyden, iyi özellikte yeni bireyler elde etmek için kullanır. En çok kullanılan çaprazlama çeşitleri bir noktalı çaprazlama, iki noktalı çaprazlama, uniform çaprazlama ve sıralı çaprazlamadır.
Genetik Operatörler Çaprazlama Gösterimi
Genetik Operatörler Mutasyon Çaprazlama vasıtasıyla üretilemeyen uygunluk değeri yüksek kromozomların, mutasyon vasıtasıyla üretmek mümkün olmaktadır. Genelde mutasyon olasılığı (0.01 gibi) düşük tutulmaktadır. Nesildeki kromozomların çeşitliğini artırmak için kromozomlardan bazıları mutasyona uğratılır. Amaç, var olan bir kromozomun genlerinin bir ya da bir kaçının yerlerini değiştirerek yeni kromozom oluşturmaktır. Margin & Padding
Genetik Operatörler Mutasyon gösterimi
Genetik Algoritmada Parametre Seçimi Popülasyon Büyüklüğü: Genetik algoritma kullanıcısı tarafından verilen en önemli kararlardan birisidir. Bu değer çok küçük olduğunda, genetik algoritma yerel bir optimuma takılabilmektedir. Popülasyonun çok büyük olması ise çözüme ulaşma zamanını arttırmaktadır. Mutasyon Olasılığı: Mutasyon P(m) olasılığı ile bir kromozomdaki her bitte meydana gelebilir. Eğer mutasyon olasılığı artarsa, genetik arama rastsal bir aramaya dönüşür. Fakat bu aynı zamanda kayıp genetik malzemeyi tekrar bulmada yardımcı olmaktadır. Genetik algoritma performansı üzerinde önemli etkileri vardır Margin & Padding
GA’nın Uygulama Alanları Genetik algoritmaların en uygun olduğu problemler Geleneksel yöntemler ile çözümü mümkün olamayan Çözüm süresi problemin büyüklüğü ile üstel orantılı olarak artanlardır. Bugüne kadar GA ile çözümüne çalışılan konulardan bazıları şunlardır. Yapay Sinir Ağları (artificial neural networks) Otomatik Programlama (automatic programming) Makine Öğrenmesi (machine learning) Ekonomi (economics) Popülasyon Genetiği (population genetics) Görüntü İşleme (image processing)
Genetik Algoritma Nasıl Çalışır? Çözümlerin Kodlanması Tüm çözümler aynı boyutlara sahip bitler dizisi olarak ifade edilir İlk Popülasyonun Oluşturulması Uygunluk Değerinin Hesaplanması Verilen belirli bir kromozom için uygunluk fonksiyonu, o kromozomun temsil ettiği çözümün kullanımıyla veya yeteneğiyle orantılı olan sayısal bir uygunluk değeri verir. İkili kodlamanın kullanıldığı kromozomların gösteriminde, ilk popülasyonun oluşturulması için örneğin rastsal sayı üreticileri kullanılabilir. Rastsal sayı üreticisi çağrılır ve değer 0,5’den küçükse konum 0’a değilse 1 değerine ayarlanır. Margin & Padding
Genetik Algoritma Nasıl Çalışır? Çoğalma İşleminin Uygulanması İyi kalıtsal özellikleri sahip bireyler seçimi Çaprazlama İşleminin Uygulanması Elitizm İşleminin Uygulanması Mutasyon İşleminin Uygulanması Yeni Kuşağın Oluşması ve Döngünün Durdurulması Yeni kuşak çoğalma, çaprazlama, mutasyon ve elitizm işlemlerinden sonra tanımlanmakta ve bir sonraki kuşağın ebeveynleri olmaktadırlar. Mevcut gen havuzunun potansiyelini araştırmak üzere, bir önceki kuşaktan daha iyi nitelikler içeren yeni kromozomlar yaratmak amacıyla çaprazlama operatörü kullanılmaktadır Mevcut kromozomlardan yeni kromozomlar üretme yeteneğine sahip bir operatör gerekmektedir. Bu görevi mutasyon gerçekleştirir. Margin & Padding
Basit Bir Uygulama Gezgin Satıcı Problemi(Traveling Salesman Problem) Her şehir 1 kere ziyaret edilecek Toplam seyahat mesafesi minimum olacak Şehir bilgileri Şehir listesi 1 (3 5 7 2 1 6 4 8) Şehir listesi 2 (2 5 7 6 8 1 3 4)
Basit Bir Uygulama Çaprazlama Mutasyon
Basit Bir Uygulama 30 Şehir için TSP 30 Şehir için En İyi Çözüm
Basit Bir Uygulama TSP performansı
MATLAB Crtbp -> binary populasyon oluşturmak için Ranking -> ranking metodu için Select -> birey seçme Recombin -> çaprazlama metodu için xovsp, xovdp.. Mut -> mutasyon için Örnek O anki populasyondan fitness degerlerine göre istenen miktarda birey çeker Margin & Padding