Chapter 4 - Representation, Mutation, and Recombination
Bu bölümde;
- 4.1 Temsil ve çeşitlilik (varyasyon) operatörlerinin rolleri
- 4.2 Genomların en yaygın temsilleri:
başlıklarından bahsedeceğiz.
Konuyu geçen hafta derinlemesine işlemiştik.
Buradan detaylı bilgiye ulaşabilirsiniz.
Bu hafta bu şemanın nasıl işlediğinin dışında bu hafta çözümlerimizi nasıl temsil ederiz bunun üzerine yoğunlaşacağız.
- Bir EA geliştirmenin ilk ve en zor aşaması: Problem için doğru temsili seçmek
Varyasyon operatörleri: Mutasyon ve çaprazlama
İhtiyaç duyulan varyasyon operatörleri seçilen temsile bağlıdır
Örneğin; Tam sayı temsili ile ağaç temsilin oparetörleri farklılık gösterecektir.
TSP (GSP)
- Mümkün temsil biçimleri nelerdir?
- Bit dizisi ile mi?
- Permutasyon temsili mi?
- Her node'a bir değer verilebilir. Yapacağı seyahat yolunuda ardışıl sırada değerleri yerleştirerk temsil edilebilir.
- 13245, 12345 gibi
- Ayrıca geçen haftanın sonunda konuştuğumuz Knapsack problem için de bit temsilini kullanabiliriz.
İkili Temsil
- İlk temsil biçimlerinden biridir
- bit temsili gibi.
- Genotip, bir dizi ikili rakamdan oluşur
İkili temsil için Mutasyon
- Bu gibi değişiklik çok büyük olduğu durumlarda grey kod kullanmalıyız.
İkili temsil için çaprazlama
Tek noktalı çaprazlama
- İki ebeveyn için rastgele bir nokta seçin [1, / − 1]
- Ebeveynleri bu geçiş noktasında ayırın
- Kuyrukları değiş tokuş ederek çocukları oluşturun
- Neden başka çaprazlama operatörlerine ihtiyacımız var?
- Tek noktalı çaprazlamanın performansı değişkenlerin temsilde belirme
sırasına bağlıdır
- Birbirine yakın genleri bir arada tutma olasılığı daha yüksektir
- Ebeveynin zıt uçlarındaki genleri bir arada tutamaz
- Bu durum konumsal ön yargı(positional bias) olarak bilinir
- Problemimizin yapısı bilindiğinde faydalanılabilir, fakat genellikle böyle değildir
n-noktalı Çaprazlama
- Rastgele n çaprazlama noktası seçilir
- Bu noktalardan parçalanır
- Ebeveynler arasında değişen parçalar yapıştırılır
- 1-noktalı çaprazlamanın genel halidir (yine de biraz konumsal önyargı içerir)
One-point crossover (top) and n-point crossover with n = 2 (bottom)
Birörnek Çaprazlama
- Ebeveynlerden birisine yazı, diğerine tura verelim
- İlk çocuğun her bir geni için bir para(yazı-tura) atalım
- İkinci çocuk için genin ters kopyasını oluşturalım
- Kalıtım konumdan bağımsızdır
On yıllık uzun tartışma: Hangisi varyasyon operatörü daha iyi / gerekli ?
Cevap:(en azından oldukça geniş bir uzlaşma)
- Probleme bağlı olarak değişir, fakat;
- Genellikle her ikisine de sahip olmak iyidir
- Her ikisinin de başka rolü vardır
- Yalnızca mutasyon bulunan EA mümkündür ancak yalnızca çaprazlama bulunan EA çalışmaz
- Çünkü sadece çaprazlama ile yeni değerler üretemez. Çalışmaz!
Keşif (Exploration): Arama alanında gelecek vaat eden alanları keşfetmek, yani problem hakkında bilgi edinmek
Sömürü (Exploitation): Gelecek vaat eden bir alanda optimizasyon yapmak, yani bilgiyi kullanmak
-
Aralarında işbirliği VE rekabet var
-
Çaprazlama, keşif amaçlıdır, iki (ebeveyn) alan “arasında” bir yerde bir alana büyük bir sıçrama yapar
-
Mutasyon, sömürücüdür, rastgele küçük sapmalar yaratır, böylece ebeveynin yakınında (alanında) kalır
-
Yalnızca çaprazlama, iki ebeveynden gelen bilgileri birleştirebilir
-
Yalnızca mutasyon yeni bilgiler sunabilir (aleller)
-
Çaprazlama popülasyonun alel frekanslarını değiştirmez
-
Optimuma ulaşmak için genellikle “şanslı” bir mutasyona ihtiyacınız vardır
Tamsayı Temsili
- Günümüzde genel olarak sayısal değişkenleri doğrudan kodlamanın daha iyi olduğu kabul edilmektedir (tam sayılar, kayan nokta değişkenleri)
- Bazı problemlerin doğal olarak tamsayı değişkenleri vardır, ör. görüntü işleme parametreleri (sonraki sayfa)
- Diğerleri, sabit bir kümeden kategorik değerler alır, ör. mavi, yeşil, sarı, pembe
- n-noktalı / birörnek (Uniform Crossover) çaprazlama çalışır
Tam sayı gösterimi için mutasyon
- Bit-çevirme (bit-fliping) mutasyonu genişletilebilir
Tam sayı gösteriminde çaprazlama
- Çaprazlama, ikili temsildeki ile aynı şekilde gerçekleşmekte.
Görüntü işleme katlama(convolution) örneği
Gerçek-değerli ya da Kayan-noktalı Temsil
- Örnek: Ackley’in fonksiyonu(evrimsel hesaplamada sıklıkla kullanılır)
Gerçek değerler ile temsilin mutasyonu
Birörnek Mutasyon
Birörnek Olmayan Mutasyon
olasılık yoğunluk fonskiyonu
sigma : olasılık yoğunluk fonskiyonun ne kadar yayvan olacağını belirten değer
mü : ortalamasını belirtiyor
Kırmızı değer için mü değeri 0 varyansı 0.2 olan bir olasılık yoğunluk fonskiyonu dar olarak görülmekte.
lacivert değerde varyans 5 olduğu için daha yayvan olduğunu görmekteseiniz.
Bu fonskiyonlara bakarak rastgele hangi değerleri ne kadar üreteceğimizi belirme olasığını bize göstermekte.
-sıgma +sigma arası değerler 68.2% olarak görülmektedir.
Limit 0'a yaklaşır fakat ger değerin oluşma ihtimali mevcuttur.
Kendinden Uyarlamalı Mutasyon
- Mutasyon adım boyutu kullanıcı tarafından ayarlanmaz, ancak çözümle birlikte gelişir
- Evrimsel araştırma sürecinin farklı aşamalarında farklı mutasyon stratejileri uygun olabilir
Eşit olasılığa sahip mutantlar
Daire: Oluşturulma şansı aynı olan mutantlar
Eşit olasılığa sahip mutantlar
Elips: Oluşturulma şansı aynı olan mutantlar
İlintili mutasyonlar
Mutasyon mekanizması şöyle olur:
- Kovaryans Matris Adaptasyon Evrim Stratejisi (CMA-ES) muhtemelen sayısal optimizasyon için en iyi EA’dır, bkz. CEC-2005 yarışması
Eşit olasılığa sahip mutantlar
Elips: Oluşturulma şansı aynı olan mutantlar
Ayrık:
- n-noktalı veya birörnek kullanılabilir
Ortada:
- Ebeveynler arasında çocuk oluşturma fikrinden yararlanır(aritmetik rekombinasyon olarak da bilinir)
- α parametresinin değeri:
- sabit: birörnek aritmetik çaprazlama
- değişken (Örn: popülasyonun yaşına bağlı)
- her seferinde rastgele seçilir
Single Arithmetic Recombination
Simple Arithmetic Recombination
Whole Arithmetic Recombination
Blend Crossover
- Evrimsel hesaplamayı doğanın pratikleri tarafından kısıtlamayabiliriz
- Mutasyonun n=1 ebeveyni ve “geleneksel” çaprazlamanın n=2 ebeveyni kullandığını düşünürsek, n>2 araştırılmaya değerdir
- 1960’lardan beri ortalıkta, hala nadir ama araştırmalar işe yaradığını gösteriyor
Fikir: ebevenleri parçalara ayırın ve yeniden birleştirin
Örnek: n ebeveyn için çapraz geçiş(çaprazlama)
- n − 1 çaprazlama noktası seçin(her ebeveynde aynı noktalar)
- Ebeveynlerin parçalarından n tane çocuğu, köşegen boyunca etrafını sararak oluşturun
- Bu operatör 1 noktalı çaprazlamayı genelleştirir
Fikir: (gerçek değerli) alellerin aritmetik kombinasyonu
n ebeveyn için aritmetik çaprazlama
- Çocuktaki i. alel ebeveynlerdeki i. alellerin ortalamasıdır
Çocuk ağırlık merkezi olur
Genetik algoritmada garip olabilir, evrim stratejisinde uzun süredir bilinen ve kullanılan
Permütasyon Temsili
- Sıralama problemleri özel bir tür oluşturur
- Görev (veya çözüm), bazı nesnleri belirli bir sıraya göre düzenlemektir
- Örnek: Üretim planlama: önemli olan hangi öğelerin diğerlerinden önce planlandığıdır (sıra)
- Örnek: Gezgin satıcı problemi (TSP): önemli olan hangi öğelerin yan yana oluştuğudur (komşuluk)
- Bu problemler genellikle bir permütasyon olarak ifade edilir
- n değişken varsa, temsil, her biri bir kez beliren n tamsayının listesi gibidir
Traveler Sales Man Example
Problem:
- Verilen n şehir için
- En kısa uzunluğa sahip tam turu bul
Kodlama:
- Şehirleri 1, 2, · · · , n şeklinde numaralandır
- Bir tam tur bir permütasyona eşittir(örn: n=4 için [1,2,3,4,], [3,4,2,1] mümkün)
Arama uzayı BÜYÜKTÜR: 30 şehir için 30! ≈ 10 32 mümkün tur sayısı vardır
Bütün şehirlerin tek seferde gezen optimum rota nedir?
Normal mutasyon operatörleri kabul edilemez çözümlere yol açar
- Örneğin bit-tabanlı mutasyon için i. genin değeri j olsun
- i. gen için k değerine geçmek, k’nin iki defa yer almasına ve j’nin kaybolmasına neden olacaktır
Bu nedenle en az iki değer değiştirilmelidir
Mutasyon parametresi artık bazı operatörlerin her konumda ayrı ayrı uygulamak yerine tüm dizeye bir kez uygulanması olasılığını yansıtır
Rastgele iki alel seç ve yerlerini değiştir
Rastgele iki alel seç
İkinciyi birincinin arkasına gelecek şekilde taşı ve diğerlerini kaydır
Bu işlem, sıralama ve komşuluk bilgisinin çoğunu koruyacaktır
Genlerin rastgele bir alt kümesini seçin
Bu konumlardaki alelleri rastgele yeniden düzenleyin
Bi dizinin elemanlarını karıştırmak istiyorum bunu nasıl yaparım?
Dizinin ilk elemanından son elemanına bir döngü oluşturup elemanları içinde gezmeye başlarım. Her bir eleman için dizi içinde rastgele bir indis atayıp bulunduğum değer ile onun yerini değiştiririm.
Rastgele iki alel seçin ve aralarındaki alt dizeyi ters çevirin
Çoğu komşuluk bilgisini korur(sadece ikisi bozulur) fakat sıralama bilgisi bozulur
Permütasyon temsili için çaprazlama operatörleri
“Normal” çaprazlama operatörleri genellikle kabul edilemez çözümlere yol açacaktır
İki ebeveynden gelen sıralama ve komşuluk bilgilerini birleştirmeye odaklanan bir çok özelleşmiş operatör tasarlanmıştır
Order çaprazlama
Fikir, öğelerin meydana geldiği göreceli düzeni korumaktır
Sözde kod:
- İlk ebeveynden rastgele bir bölüm seçin
- Bu bölümü ilk çocuğa kopyalayın
- Birinci kısımda olmayan sayıları ilk çocuğa kopyalayın:
- kopyalanan parçanın kesim noktasından başlayarak,
- ikinci ebeveyndeki sırayı kullanarak
- sona ulaşınca başa dönerek
- Ebeveyn rollerinin tersine çevrildiği ikinci çocuk için benzer
Rastgele seçilen alt kümeyi birinci ebeveynden kopyala
Kalan kısmı ikinci ebeveynden 1,9,3,8,2 sırasıyla kopyala
Kısmen eşleşmiş çaprazlama (PMX)
P1 ve P2 için sözde kod:
- Rastgele iki geçiş noktası seçin ve aralarındaki segmenti ilk ebeveynden (P1) ilk çocuğa kopyalayın.
- İlk geçiş noktasından başlayarak, ikinci ebeveynin (P2) bu segmentinde kopyalanmamış olan öğeleri arayın.
- Bunların her biri için (i diyelim), P1’den yerine hangi öğenin (j diyelim) kopyalandığını görmek için yavruya bakın.
- i’yi P2’de j’nin işgal ettiği konuma yerleştirin, çünkü j’yi oraya koymayacağımızı biliyoruz (zaten dizimizde olduğu gibi).
- P2’de j’nin işgal ettiği yer yavruda zaten bir k öğesi tarafından doldurulmuşsa, P2’de k’nin işgal ettiği konuma i’yi koyun.
- Çaprazlama bölümdeki unsurları ele aldıktan sonra, bu yavruda kalan pozisyonlar P2’den doldurulabilir ve ikinci çocuk, ebeveyn rolleri tersine çevrilerek benzer şekilde yaratılır.
..
..
..
..
Döngü çaprazlama
Temel fikir: Her alel, konumu ile birlikte bir ebeveynden gelir.
Sözde kod:
- Aşağıdaki şekilde P1’den alel döngüsü yapın:
- P1’in ilk aleli ile başlayın
- P2’de aynı konumdaki alele bakın
- P1’de aynı alelin pozisyonuna gidin
- Bu aleli döngüye ekleyin
- P1’deki ilk alele rastlayana kadar adım **b’**den **d’**ye kadar olan kısmı tekrarlayın
- İlk çocuktaki döngünün alellerini birinci ebeveynde sahip oldukları pozisyonlara yerleştirin
- Sonraki döngüyü ikinci ebeveynden alın
Adım 1: döngüleri belirle
Adım 2: alternatif döngüleri çocuklara kopyala
child 1 için kopyalama işlemi şekildeki gibi yapılmış child 2 için aynı işlemin paraleli yapılmalıdır.
örnek deftere çizildi
Kenar çaprazlama
İki ebeveynde hangi kenarların bulunduğunu listeleyen bir tablo oluşturarak başlar, eğer her ikisi için de ortak bir kenar varsa + ile işaretlenir
Örn: [1 2 3 4 5 6 7 8 9] ve [9 3 7 8 2 6 5 1 4]
Sözde kod:
- Rastgele bir başlangıç elemanı seçin ve çocuğa ekleyin
mevcut_eleman=kayitatamasını yapın- Tabloda mevcut elemana olan tüm referansları silin
- Listeyi mevcut eleman için kontrol edin:
- Eğer
ortak kenar varsa, sıradaki eleman olarak bunu seçin - Aksi halde listedeki en kısa listeye sahip olan elemanı seçin
- Eşitlik durumunda rastgele (standart olması için küçük olan)
- Eğer
- Boş bir liste gelmişse
- Rastgele bir eleman seçilir
1'i aldık ve komuşularına baktık 1'in komuşularından en az edge'e sahip olanı ikinci eleman olarak belirledik ve tablodaki tüm 1 leri ve seçilen elemanı listelerden çıkartacağız. şeklinde devam ediyor.
...
...
...
Ağaç temsili
- Ağaçlar evrensel bir biçimdir
- Kaynak kod:
Bu ifadenin aritmatik ifadenin ağaç temsili (expression tree) şekildeki gibidir.
ağaç temsili (expression tree)
Bu ifadenin mantıksal ifadenin ağaç temsili (expression tree) şekildeki gibidir.
Bu ifadenin kaynak kod ifadesinin ağaç temsili (expression tree) şekildeki gibidir. Bu gösterim biraz daha soyut kalmaktadır. Bir parser ile bu kod parse edildiğinde daha çok node üretilecektir.
-
Genetik algoritma, evrim stratejisi, evrimsel programlama yöntemlerinde kromozomlar doğrusal yapılardır (bit dizesi, tamsayı dizesi, gerçek-sayı vektörü, permütasyon gibi)
-
Ağaç yapılı kromozomlar doğrusal olmayan yapılardır
-
Genetik algoritma, evrim stratejisi, evrimsel programlama yöntemlerinde kromozom boyutu sabittir
-
Genetik programlamadaki ağaçlar derinlik ve genişlik olarak değişiklik gösterebilir
-
Sembolik ifadeler aşağıdakilerle tanımlanabilir.
- Terminal kümesi T
- Fonksiyon kümesi F (fonksiyon sembollerinin
arite bilgisi (fonksiyonun aldığı parametre sayısı)ile)
Henüz gördüğümüz aritmatik ifade örneğinde terminal kümesi ve fonskiyon kümesini belirleyecek olursak;
T = {2, π, 3, 5, 1, x, y}
*F = {+, -, , / }
-
Aşağıdaki genel özyinelemeli tanımlama benimsenir
- Her t ∈ T doğrudur
- Doğru ifadelerin başka biçimi yoktur
- Genel olarak genetik programlamada ifadelerin türü yoktur (aynı türden) farklı bi tip söz konusu değildir.
- kapanış (closure) özelliği: herhangi bir f ∈ F , g ∈ F fonksiyonunu argüman olarak alabilir
Ağaç temsili için mutasyon
- En yaygın mutasyon: rastgele seçilen alt ağacı rastgele oluşturulmuş ağaçla değiştirin
- Değiştirilecek alt ağacın kökü olarak bir iç nokta seçme olasılığı
- Bu işin duayeni sayılan Koza 92 yılında hiç mutasyon yapılmamasını önerir (mutasyon olasılığı 0 olarak tutulmalı şekilde bir fikir ortaya atıyor.)
- Çocuğun boyutu ebeveynin boyutunu aşabilir
- Ağaçı fazla şişirmeden bir sınırlama getirmelidir.
Ağaç temsili için çaprazlama
-
En yaygın rekombinasyon: ebeveynler arasında rastgele seçilen iki alt ağaç değişimi
kapanış (closure) özelliğinden dolayı bütün node'ların geri dönüş değerleri aynı tipten olacağından çaprazlama yaparken bir sıkıntı çekmiyoruz.
-
Rekombinasyonun iki parametresi vardır:
-
Yavruların boyutu ebeveynlerinkini aşabilir
-
Öğr. Gör. Şevket Umut Çakır ders sunumları.
-
Introduction to Evolutionary Computing 2nd Editionders kitabı. -
Wolfgang Banzhaf, Peter Nordin, Robert E Keller, and Frank D Francone. Genetic programming: An Introduction. Springer, 1998.
-
John R Koza and John R Koza. Genetic programming: on the programming of computers by means of natural selection, volume 1. MIT press, 1992.































































