Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Genetik Algoritma.

Benzer bir sunumlar


... konulu sunumlar: "Genetik Algoritma."— Sunum transkripti:

1 Genetik Algoritma

2 GENETİK ALGORİTMA Genetik Algoritma Michigan Üniversitesi’nden John Holland tarafından1975’li yılında ortaya çıkarılmıştır. Genetik algoritma, doğadaki evrim mekanizmasını örnek alan bir arama ve optimizasyon yöntemidir. Önbilgi ve varsayımlar olmadan, sadece uygunluk fonksiyonu (fitness function) ile çalışabilmektedir.

3 GENETİK ALGORİTMA Genetik algoritmalar doğada geçerli olan en iyinin yaşaması kuralına dayanarak sürekli iyileşen çözümler üretir. Bazı problemlerde sonsuz sayıda çözüm olabilir ama en uygun ve hızlı çözümü bulmaya ihtiyacımız vardır. Genetik algoritmalar problemlere tek bir çözüm üretmek yerine farklı çözümlerden oluşan bir çözüm kümesi üretir. Sonuçta bütünsel çözüme ulaşma olasılığı yükselmektedir.

4 GENETİK ALGORİTMA Genetik algoritmalar;
Arama uzayının büyük ve karmaşık olduğu, Mevcut bilgiyle sınırlı arama uzayında çözümün zor olduğu, Problemin belirli bir matematiksel modelle ifade edilemediği, Geleneksel eniyileme yöntemlerinden istenen sonucun alınmadığı alanlarda etkili ve kullanışlıdır.

5 Genetik Algoritma Özellikleri
Avantajları – Çok amaçlı optimizasyon yöntemleri ile kullanılabilmesi – Çok karmaşık ortamlara uyarlanması – Kısa sürelerde iyi sonuçlar verebilmesi Dezavantajları – Son kullanıcının modeli anlaması güç – Problemi Genetik Algoritma (GA) ile çözmeye uygun hale getirmek zor – Uygunluk fonksiyonunu belirlemek zor – Çaprazlama ve mutasyon tekniklerini belirlemek zor

6 TERMİNOLOJİ Gen: Canlıların karakterlerini belirleyen ve anlamlı bilgi içeren kromozom içindeki en küçük birimlerdir. Kromozom (Birey): Birden fazla genin bir araya gelerek oluşturduğu diziye denir. Genetik Algoritma’da her kromozom belirlenen problem için potansiyel bir çözümü temsil etmektedir. Çözüm için kullanılan bireyler. GA’da her birey doğadakinden farklı olarak yalnızca bir kromozomdan oluşmaktadır. Popülasyon (Topluluk): Kromozomlardan oluşan topluluktur. GA’da olası çözümlerden oluşan kümeye karşılık gelir. Çözüm kümesini oluşturan kromozomların tümüdür. Seçim (Selection) : Var olan kromozomu genetik yapısında herhangi bir değişiklik yapmadan yeni nesile kopyalar. Çaprazlama (Crossover) : İki kromozomun yapılarının rastlantısal olarak birleştirilerek yeni çocuk kromozomlar oluşturulmasıdır. İşlem, ikili dizilerin parçalarının değiş tokuşu ile gerçekleştirilir. Mutasyon (Mutation) : Çaprazlama ile elde edilen bir çocuk kromozomun genlerinden birinin ya da birkaçının yerlerinin değiştirilmesiyle oluşturulur.

7 TERMİNOLOJİ Gen: Canlıların karakterlerini belirleyen ve anlamlı bilgi içeren kromozom içindeki en küçük birimlerdir. Kromozom (Birey): Birden fazla genin bir araya gelerek oluşturduğu diziye denir. Genetik Algoritma’da her kromozom belirlenen problem için potansiyel bir çözümü temsil etmektedir. Çözüm için kullanılan bireyler. GA’da her birey doğadakinden farklı olarak yalnızca bir kromozomdan oluşmaktadır. Popülasyon (Topluluk): Kromozomlardan oluşan topluluktur. GA’da olası çözümlerden oluşan kümeye karşılık gelir. Çözüm kümesini oluşturan kromozomların tümüdür. Seçim (Selection) : Var olan kromozomu genetik yapısında herhangi bir değişiklik yapmadan yeni nesile kopyalar. Çaprazlama (Crossover) : İki kromozomun yapılarının rastlantısal olarak birleştirilerek yeni çocuk kromozomlar oluşturulmasıdır. İşlem, ikili dizilerin parçalarının değiş tokuşu ile gerçekleştirilir. Mutasyon (Mutation) : Çaprazlama ile elde edilen bir çocuk kromozomun genlerinden birinin ya da birkaçının yerlerinin değiştirilmesiyle oluşturulur.

8 Genetik Algoritmanın Adımları:
1. Başlangıç: Çözümlerin kodlanması gerçekleştirilir ve n kromozomdan oluşan rastgele (genel olarak ama zorunlu değil) bir popülasyon oluşturulur 2. Uygunluk: Toplumdaki her x kromozomu için f(x) uygunluk değeri değerlendirilir. 3. Yeni Popülasyon : Aşağıdaki adımlar izlenerek yeni popülasyon üretilir. Başlangıç popülasyonu oluşturulmuş genetik algoritma üç evrim operatörüyle çalışır. Seçim: popülasyondaki kromozomların uygunluk değerlerine bağlı olarak, yeni kromozomları oluşturmak için, ebeveyn birey seçmesi işlemidir. Popülasyondan uygunluklarına göre iki kromozom seçilir (uygunluk değeri iyi olanın seçilme şansı daha fazladır) Çaprazlama: ebeveyn kromozomlardaki genlerin bazılarının karşılıklı yer değiştirmesi işlemidir. Çaprazlama ile kromozomlar yeni çocuk oluşturmak için birbirleriyle eşleştirilir. Eğer çaprazlama yapılmazsa, çocuk kromozom anne-baba(ebeveyn) kromozomların tıpatıp aynısı olacaktır. Mutasyon: Sürekli yeni nesil üretimi sonucunda, belli bir süre sonra nesildeki kromozomlar tekrar edebilir ve farklı kromozom üretimi azalabilir. Bu yüzden mutasyon işlemi ile bazı genler değiştirilir. Kabul: Çocuk kromozom, yeni popülasyona eklenir. 4. Değiştir: Yeni popülasyon algoritmanın tekrar işlenmesinde kullanılır. 5. Deney: Eğer bitiş durumu sağlandıysa, durup popülasyondaki en iyi çözüm döndürülür. 6. Döngü: Adım 2’ye gidilir. Genetik algoritmanın çalışması esnasında istenen çözüm bulunduğunda, GA’nın başlangıcında tanımlanan toplam iterasyon sayısına ulaşıldığında veya uygunluk değeri sürekli olarak sabit kaldığında algoritma sonlandırılır.

9 Genetik Algoritmaların Çalışma Prensibi

10 Genetik Algoritmaların Çalışma Prensibi

11

12 Genel olarak GA’nın Adımları
Parametre Kodlama Başlangıç Popülasyonu Seçim (Üreme) Çaprazlama Mutasyon Sonlandırma

13 Parametre Kodlama Kodlama genetik algoritmanın önemli bir aşamasıdır.
Genetik Algoritma uygulamasına başlamadan önce, verilerin uygun şekilde kodlanması gerekir. Geliştirilen modelin hızlı ve güvenilir çalışması için bu kodlamanın doğru yapılması gerekir. Kodlama Çeşitleri : İkili (binary) kodlama Permütasyon kodlama Değer kodlama Ağaç kodlama

14 Parametre Kodlama Kromozomların kodlanması a) İkili kodlama
Bu yöntem ilk GA uygulamalarında kullanıldığı için hala en çok kullanılan yöntemlerdir. Her kromozom, 0 ve 1 lerden oluşan bit dizisidir ve ikili diziyle ifade edilir. Bu dizideki her bit, çözümün bir özelliğini taşır. Dizinin tümü ise bir sayıya karşılık gelir. Basit, kolay ve hızlı işlemler için uygundur. Kromozom A: Kromozom B:

15 Parametre Kodlama b) Permutasyon kodlama
Sıralamaya veya düzenlemeye yönelik problemler için uygundur. Bu kodlama Gezgin Satıcı Problemi ve iş sıralama gibi problemlerin çözümü için kullanılır. Burada her kromozom bir numaralar dizisidir. Kromozom A: Kromozom B:

16 Parametre Kodlama c) Değer Kodlama Karmaşık verilerin kullanıldığı problemlerde gerçekleştirilir. Değerler; gerçek sayılar, karakterler veya nesneler olabilir. Bu tip kodlamada probleme özgü yeni çaprazlama ve mutasyon yöntemleri geliştirmek gereklidir. Kromozom A: Kromozom B: ABCDE Kromozom C: (geri), (sağ), (ileri), (sol)

17 Parametre Kodlama d) Ağaç Kodlama İfadesel çözümler içeren problemlerde kullanılır, her kromozom bir nesnenin ağacıdır. Ağaç kodlama, program geliştirmek için uygundur. Örneğin Lisp ve Prolog gibi dillerde ağaç yapısı kullanılır.

18 Başlangıç Popülasyonu Oluşturma
Başlangıçta belirli kriterlere göre veya rastgele kromozomlardan oluşan bir popülasyon oluşturulur. Başlangıç popülasyonundaki her bir kromozom, problemin olası bir çözümünü temsil eder. Popülasyon büyüklüğü, problemin yapısına göre belirlenmelidir. Popülasyondaki bireylerin sayısı küçük seçildiğinde iterasyonlar daha hızlı olur ancak algoritmanın yerel optimuma takılma şansı artar. Birey sayısının çok fazla olması ise çözüm kalitesini arttırır ancak algoritmanın adımları daha uzun zaman alır. Popülasyondaki kromozom sayısı genellikle 100 ile 300 arasında seçilir. Popülasyondaki birey(kromozom) sayısı genelde sabit tutulur. Ancak popülasyondaki birey sayısının sabit tutulması gerektiğiyle ilgili genel bir kural yoktur.

19 Başlangıç Popülasyonu Oluşturma
Popülasyon büyüklüğü genetik algoritmanın tüm performansını ve verimliliğini etkiler. Genetik algoritmalar genellikle az sayılı popülasyonlarla çalıştıklarında iyi sonuçlar vermemektedirler. Çünkü popülasyon yeterli örnek büyüklüğünü içermemektedir. Eğer kromozom sayısı az olursa GA, çözüm aranan uzayın ancak bir kısmını gezebilmekte ve çaprazlama için fazla bir seçenek bulamamaktadır. Büyük popülasyonların çok sayıdaki hiperalanlardan temsiller içerme ihtimali daha fazladır. Diğer yandan büyük popülasyonlar her nesil için daha fazla değerlendirme yapmayı gerektirmektedir. Bu durum, GA’nın kabul edilemeyen bir sürede sonuca ulaşmasına neden olabilir. Yapılan araştırmalar, belli bir noktadan sonra popülasyon sayısını artırmanın bir yararı olmadığını göstermektedir. Popülasyondaki birey(kromozom) sayısı genelde sabit tutulur. Ancak popülasyondaki birey sayısının sabit tutulması gerektiğiyle ilgili genel bir kural yoktur.

20 Uygunluk (Fitness) Fonksiyonu
Bir popülasyon oluşturulduktan sonra, popülasyondaki her kromozomun uygunluk (fitness) değeri hesaplanır. Farklı kromozomların karşılaştırılması ve iyi olanların seçimi için gereklidir. f(X1) > f(X2) ise X1, X2’den daha iyidir.

21 Örnek: Gezgin Satıcı Problemi
Gezi için birçok yol seçeneği vardır: Uygunluk fonksiyonu: f(x) = min(uzunluk) f(X1) < f(X2) olduğu için X1, X2’den daha iyi bir çözümdür. Bu nedenle X1 seçilir.

22 Kromozom Seçimi Popülasyondaki bütün kromozomların uygunluk değerleri hesaplandıktan sonra, bunlardan bazıları yeni nesiller üretmek için seçilirler. Amaç; seçilen uygunluk fonksiyonuna ve seçim yöntemine göre elimizdeki popülasyondan yeni bir neslin bireylerini (kromozomları) seçmektir. Uygunluğu yüksek olan kromozomun, yeni nesle aktarılma ihtimali daha yüksektir. Seçim işlemi için bazı yöntemler: – Rulet tekeri yöntemi – Sıralı seçim yöntemi – Sabit durum yöntemi – Turnuva yöntemi Genelde, popülasyonun büyüklüğünün değişmesine (artmasına) izin verilmez.

23 Kromozom Seçimi 1. Rulet tekeri seçimi Bu yöntemde seçilme işlemi bireylerin (kromozomların) uygunluk değerine göre yapılmaktadır. Fakat uygunluk değeri en büyük olanın seçileceği garanti edilmez, yalnız seçilme şansı daha fazla olacaktır. Bu yöntemde bütün uygunluk değerleri bir tabloya yazılır ve toplanır. Uygunluk değeri toplama bölünerek bireylerin [0,1] aralığında seçilme olasılıkları belirlenir. Rulet tekerleği seçimi çözümlerin uygunluk değerlerinin pozitif olması gerekir.

24 Kromozom Seçimi 1. Rulet tekeri seçimi
Popülasyondaki tüm kromozomların yerleştirildiği bir rulet tekeri düşünülür. Rulet tekeri üzerindeki kromozomun yerinin boyutu kromozomun uygunluğuyla orantılıdır. Daha uygun olan kromozom daha geniş bir kısma sahip olur.

25 Örnek: Rulet tekeri seçimi
Uygunluk fonksiyonu: f(x)=x² Kromozom 1: 1101, x = 13, x² = 169 Kromozom 2: 0100, x = 4, x² = 16 Kromozom 3: 1011, x = 11, x² = 121 Kromozom 4: 1000, x = 8, x² = 64 Toplam = = 370 Kromozom 1: 169/370 =0,456 (%46) Kromozom 2: 16/370 =0,0432 (%4) Kromozom 3: 121/370 =0,327 (%33) Kromozom 4: 64/370 =0,172 (%17) Rulet 1 defa çevrildiğinde gelme ihtimalleri

26 Kromozom Seçimi 1. Rulet tekeri seçimi
Eğer uygunluk değerleri arasında büyük farklar varsa problemler ortaya çıkacaktır. Örneğin, eğer en iyi kromozomun uygunluğu diğer tüm kromozomların toplamının %90’ı ise diğer kromozomların seçilme şansı çok azalacaktır. Bunu önlemek için sıralı seçim kullanılabilir.

27 Kromozom Seçimi 2. Sıralı seçim
Sıralı seçimde en kötü uyumlulukta olan kromozoma 1 değeri, sonrakine 2 değeri, …, sonuncu olan en iyisi ise N uygunlukta olacaktır. Böylelikle bütün kromozomlara seçilme şansı verilir. Fakat bu yöntemde en iyi kromozomlar, diğerlerinden daha farklı olmadığından çözüme yaklaşma daha yavaş olacaktır.

28 Kromozom Seçimi 3. Sabit durum seçimi
Her yeni nesilde yüksek uygunluk değerine sahip kromozomlar yeni çocukları oluşturmak için seçilir. Her nesilde yeni bir kromozom (çocuk) oluşturmak için birkaç kromozom seçilir (uygunluk değeri iyi olanlar). Düşük uygunluk değerine sahip kromozomlar kaldırılarak yerlerine bu yeni oluşturulan çocuk kromozomlar konur. Geri kalan kromozomlar değiştirilmeden yeni nesile aktarılır.

29 ÇAPRAZLAMA VE MUTASYON
Çaprazlama işlemi: Anne ve babadaki (ebeveyn) bazı genlerin yer değiştirmesi ile yeni çocukların oluşturulma işlemidir. İkili kodlanmış kromozomlarda 4 çeşit çaprazlama gerçekleştirilir. A) Tek noktalı gen takası Parents (anne-baba) Kromozom-1 : 11011| Parents (anne-baba) Kromozom-2 : 11011| Offspring (çocuk) Kromozom-1 : Offspring (çocuk) Kromozom-2 :

30 ÇAPRAZLAMA Çaprazlama işlemi: B) Çift noktalı gen takası
Parents (anne-baba) Kromozom-1 : 11011|00100|110110 Parents (anne-baba) Kromozom-2 : 11011|11000|011110 Offspring (çocuk) Kromozom-1 : Offspring (çocuk) Kromozom-2 :

31 ÇAPRAZLAMA Çaprazlama işlemi:
C) Tek biçimli (uniform) gen takası : Bitler rastgele biçimde iki ebeveynden yeni kromozoma kopyalanır. Parents (anne-baba) Kromozom-1 : Parents (anne-baba) Kromozom-2 : Offspring (çocuk) Kromozom-1 : Offspring (çocuk) Kromozom-2 : D) Aritmetik takas = VE (AND)işlemi

32 MUTASYON Mutasyon işlemi :
Sürekli yeni nesil üretimi sonucunda, belli bir süre sonra nesildeki kromozomlar tekrar edebilir ve farklı kromozom üretimi azalabilir. Nesildeki kromozom çeşitliliğini artırmak için kromozomlardan bazılarına mutasyon işlemi uygulanır. İkili kodlama için, Rastgele seçilen bir genin değiştirilmesi: Örneğin, bit değerini diğer bit değerine dönüştürme (0 veya 1). Çocuk-1(orijinal) : Çocuk-1(yeni) :

33 MUTASYON Permütasyon kodlama için,
Çaprazlama: bir çaprazlama noktası seçilir. Bu noktaya kadar olan ifade birinci ebeveynden kalan ise diğer ebeveynden kopyalanarak yeni kromozom oluşturulur. Kromozom-1 : Kromozom-2 : Çocuk-1 : Çocuk-2 : Mutasyon: İki tane rasgele gen seçilir ve bunların yeri değiştirilir. Çocuk-1 (orijinal) : Çocuk-1 (yeni) :

34 MUTASYON Değer Kodlama için, Çaprazlama: ikili kromozomlarda yapılabilen tüm takas türleri burada da yapılır. Mutasyon: seçilen değerlerden küçük bir sayı çıkarılarak veya eklenerek yeni kromozom oluşturulur. Çocuk-1(orijinal) ( ) Çocuk-1 (yeni) ( )

35 MUTASYON Ağaç kodlama için, Çaprazlama: her iki ebeveynde birer takas noktası seçilerek parçalanır. Bu noktaların altındaki kısımlar aralarında değiştirilip yeni bireyler oluşturulur. Mutasyon: seçilen düğümlerdeki numaralar veya işlemler değiştirilir.

36 ÇAPRAZLAMA VE MUTASYON
Çaprazlama ve mutasyon işlemlerinden sonra, yeni nesil kromozomlar, anne ve babalarından (ebeveynlerinden) daha iyi olabilirler.

37 Sonlandırma Sonlandırma, genetik algoritmanın araştırmaya devam mı edecek veya araştırmayı durduracak mı kararını verebilmesi için kullanılan bir işlemdir. Her nesil oluşumundan sonra genetik algoritma belirlenen sonlandırma kriterini kontrol ederek araştırmaya devam eder veya araştırmayı durdurur. Sonlandırma ile ilgili farklı yöntemler bulunmaktadır.

38 Sonlandırma 1. Nesil sayısı: Evrim süreci problem çözücü tarafından belirlenen maksimum nesil sayısına ulaştığında algoritma araştırma işlemini sonlandırır. 2. Evrim Süresi: Algoritmanın araştırma süresi problem çözücü tarafından belirlenen maksimum süreyi aştığında işlem sonlanır. 3. Uygunluk Eşiği: Minimizasyon problemlerinde mevcut popülasyondaki en uygun değeri taşıyan bireyin uygunluk değeri problem çözücü tarafından belirlenen uygunluk eşiğinden az ise, maksimizasyon problemlerinde mevcut popülasyondaki en uygun değeri taşıyan bireyin uygunluk değeri problem çözücü tarafından belirlenen uygunluk eşiğinden yüksek ise algoritma arama işlemini sonlandırır.

39 Sonlandırma 4. Popülasyon Yakınsaması: Evrim süreci popülasyon yakınsamaya başladığında sonlanır. 5. Gen Yakınsaması: Kromozomlardaki genlerin değeri problem çözücü tarafından belirlenen yüzde değeri kadar yakınsamaya başladığında evrim süreci sonlanır.

40 GENETİK ALGORİTMA PARAMETRELERİ
1.Çaprazlama olasılığı: Çaprazlamanın ne sıklıkla yapılacağını belirtir. Çaprazlama olasılığı %0 ile %100 arasındadır. 2. Mutasyon olasılığı: Kromozom parçalarının ne sıklıkla mutasyon geçireceğini belirtir. Mutasyon olasılığı %0 ile %100 arasındadır. 3. Popülasyon Büyüklüğü Popülasyondaki kromozom sayısını belirtir. 4. Uygunluk Fonksiyonu Bu fonksiyon ile kromozom içerisindeki kodlanmış yada kodlanmamış bilgiler çözümlenerek sayısal bir değer elde (çıktı) edilir.

41 GA’nın Performansını Etkileyen Nedenler
Kromozom sayısı: Kromozom sayısını arttırmak çalışma zamanını arttırırken, azaltmak da kromozom çeşitliliğini yok eder. Mutasyon Oranı: Kromozomlar birbirine benzemeye başladığında hala çözüm noktalarının uzağında bulunuyorsa mutasyon işlemi GA’nın sıkıştığı yerden kurtulmak için tek yoludur. Ancak yüksek bir değer vermek GA’ın kararlı bir noktaya ulaşmasını engelleyecektir. Kaç Noktalı Çaprazlama Yapılacağı: Normal olarak çaprazlama tek noktada gerçekleştirilmekle beraber yapılan araştırmalar bazı problemlerde çok noktalı çaprazlamanın daha yararlı olduğunu göstermiştir. Çaprazlamanın sonucu elde edilen bireylerin nasıl değerlendirileceği: Elde edilen iki bireyin birden kullanılıp kullanılamayacağı bazen önemli olmaktadır. Yrd.Doç.Dr.Rembiye KANDEMİR

42 GA’nın Performansını Etkileyen Nedenler
Nesillerin birbirinden ayrık olup olmadığı: Normal olarak her nesil tümüyle bir önceki nesle bağlı olarak yaratılır. Bazı durumlarda yeni nesli eski nesille birlikte yeni neslin o ana kadar elde edilen bireyleri ile yaratmak yararlı olabilir. Parametre kodlanmasının nasıl yapıldığı: Kodlananın nasıl yapıldığı en önemli noktalardan biridir. Örnek vermek gerekirse kimi zaman bir parametrenin doğrusal yada logaritmik kodlanması GA’nın performansında önemli bir farka yol açabilir. Kodlama gösteriminin nasıl yapıldığı: Kodlamanın nasıl olduğu yeterince açık olmamakla beraber GA’nın performansını etkileyen bir noktadır. İkilik düzen, kayan nokta aritmetiği ya da gray kodu ile gösterim en yaygın yöntemlerdir. Başarı değerlendirmesinin nasıl yapıldığı: Akıllıca yazılmamış bir değerlendirme işlevi, çalışma zamanını uzatabileceği gibi çözüme hiçbir zaman ulaşmamasına da neden olabilir. Yrd.Doç.Dr.Rembiye KANDEMİR

43 GA’ nın Uygulama Alanları
Optimizasyon: Sayısal optimizasyon ve kombinetoral optimizasyon problemleri olan devre tasarımı, doğrusal olmayan denklem sistemlerinin çözümünde ve fabrika-üretim planlamasında kullanılır. Otomatik Programlama (automatic programming): Bilgisayar programları yardımıyla network sıralamasında (sorting), ders programı hazırlanmasında kullanılır. Makine öğrenmesi (machine learning): Robot sensorlerinde, yapay sinir ağlarında, VLSI yonga tasarımı ve protein yapısal analizinde kullanır. Ekonomi (economics): Ekonomik modellerin geliştirilmesinde ve işlemesinde kullanılır. İmmün sistemler (Immune systems): Çok-gen’li ailelerin evrimi esnasında ve doğal immün sistem modellerinde kullanılır. Topluluk genetiği (population genetics): Evrim ile ilgili sorulara cevap bulmada kullanılır. Evrim ve öğrenme (evolution and learning): Fertlerin öğrenmesini ve türlerin evrilmesinde kullanılır. Sosyal sistemler (social systems): Sosyal sistemlerin analizinde kullanılır. Yrd.Doç.Dr.Rembiye KANDEMİR

44 Örnek Elimizde 6 genden oluşan kromozomlar var:
– xi = abcdef – Her gen 0 ile 9 arasında numaralandırılmıştır. 4 kromozomdan oluşan popülasyonumuz var:

45 Örnek Uygunluk (fitness) fonksiyonu aşağıda verilmiştir:
f (x) = (a + c + e) – (b + d + f ) İstenenler: Kromozomları uygunluk fonksiyonuna göre sıralayınız. 3. ve 4. kromozomları tam orta noktalarından ayırarak çaprazlama yapınız. 1. ve 3. kromozomların 2. ve 4. bitlerinden ayırarak 2 noktalı çaprazlama yapınız. Yeni neslin uygunluk fonksiyonunu hesaplayınız.

46 Örnek Uygunluk fonksiyonunu uygulayalım:
Uygunluk fonksiyonuna göre sıralama X4, X3, X1 ve X2

47 Örnek 3. ve 4. kromozomları tam orta noktalarından ayırarak çaprazlama: 1. ve 3. kromozomların 2. ve 4. bitlerinden ayırarak 2 noktalı çaprazlama:

48 Örnek Yeni neslin uygunluk fonksiyonunun hesaplanması:

49 Örnek : Fonksiyon Maksimizasyonu
Problem : x[0, 31] olmak üzere f(x)=x² fonksiyonunu verilen aralıkta maksimize edecek x değerinin bulunması istenmektedir. x=31 olduğunda fonksiyonun maksimum olduğu görülmektedir. Bu çözümü genetik algoritmaya bulduralım. Adım 1: x’in 0 ve 1'lerden oluşan 2 tabanındaki gösterimi yapılmalıdır. (İkili Kodlama) 0 : “00000” 31 : “11111” olacaktır. Yrd.Doç.Dr.Rembiye KANDEMİR

50 Adım 2: Popülasyonun kromozom sayısı n=4 olarak seçilmiştir
Adım 2: Popülasyonun kromozom sayısı n=4 olarak seçilmiştir. Popülasyonu oluşturan dört kromozom, her biri 5 bit uzunluğunda birer kromozomla temsil edildiği için toplam 20 kere yazı tura atmak suretiyle belirlenmiştir. Kromozom 1: 01101, x = 13 , x² = 169 Kromozom 2: 11000, x = 24 , x² = 576 Kromozom 3: 01000, x = 8 , x² = 64 Kromozom 4: 10011, x = 19 , x² = 361

51 Her bir kromozomun rulet tekerleğinde kaplayacağı alan;
Adım 3: Belirlenen kromozomlar için f(x)=x² ile uygunluk değerlerini hesaplanır. Dört kromozomun toplam uygunluk değerleri; = 1170 Rulet tekeri seçimi : Her bir kromozomun rulet tekerleğinde kaplayacağı alan; Kromozom 1: 169 / 1170 = 0.14 : %14 Kromozom 2: 576 / 1170 = 0.49 : %49 Kromozom 3: 64 / 1170 = 0.06 : %6 Kromozom 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. Yrd.Doç.Dr.Rembiye KANDEMİR

52 Elde edilen eşleşme havuzu şu şekildedir;
Adım 4: Popülasyondaki kromozom sayısının sabit kaldığı varsayıldığından, rulet tekerleği 4 defa çevrilerek eşleşme havuzu oluşturulur. Kromozom 1 : 1 defa Kromozom 2 : 2 defa Kromozom 3 : 0 defa Kromozom 4 : 1 defa Elde edilen eşleşme havuzu şu şekildedir; Aday 1 : (Kromozom 1) Aday 2 : (Kromozom 2) Aday 3 : (Kromozom 2) Aday 4 : (Kromozom 4) Yrd.Doç.Dr.Rembiye KANDEMİR

53 Aday 1 : 0110/1 oluşan Kromozom 1 : 01100
Adım 5: Eşleşme havuzu belirlendikten sonra iki aşamalı Çaprazlama uygulanır. İlk aşamada adaylar eşleşmek üzere rasgele olarak seçilirler. 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. Eşleşme grubu 1: (k=4) Aday 1 : 0110/1 oluşan Kromozom 1 : 01100 Aday 2 : 1100/0 oluşan Kromozom 2 : 11001 Eşleşme grubu 2 : (k=2) Aday 3 : 11/000 oluşan Kromozom 3 : 11011 Aday 4 : 10/011 oluşan Kromozom 4 : 10000 Yrd.Doç.Dr.Rembiye KANDEMİR

54 Adım 6: Son aşama olan Mutasyon işlemi bitler düzeyinde uygulanır.
Kromozom 3’ün 2 numaralı bitinde mutasyon işlemi yapılmaktadır. Oluşan Kromozom 3 : 11011 Mutasyon sonucu oluşan Kromozom 3 : 10011 Bu adımın tamamlanmasıyla bir sonraki nesli oluşturacak popülasyonun kromozomları belirlenmiş olur. Yeni popülasyon şu şekildedir; Kromozom 1 : 01100, x=12, x²=144 Kromozom 2 : 11001, x=25, x²=625 Kromozom 3 : 10011, x=19, x²=361 Kromozom 4 : 10000, x=16, x²=256 Bu örnekte tek bir iterasyon yapılmış ve başlangıç popülasyonundan bir sonraki nesil oluşturulmuştur ancak genetik algoritmanın çalışmasının tam olarak gözlenebilmesi için tek bir iterasyon yeterli değildir. Yrd.Doç.Dr.Rembiye KANDEMİR

55 Örnek a+2b+3c+4d=30 şeklinde bir eşitlik olan diyofant denklemini ele alacak olursak; burada a, b, c, d pozitif tam sayılardır. Genetik algoritma kullanarak bu denklemi en iyi şekilde sağlayacak a, b, c, d değerlerini bulunuz. (Kromozom sayısı 5 alınabilir, çaprazlama, seçme ve mutasyon işlemleri için bir genelleştirme yoktur kişisel olarak tercih yapılabilir.)

56 Örnek a+2b+3c+4d=30 İlk olarak 1 =< a,b,c,d =< 30 aralığını içerecek şekilde, 5 tane rastgele başlangıç çözüm seti seçelim. Kromozom (a,b,c,d) 1 (1,28,15,3) 2 (14,9,2,4) 3 (13,5,7,3) 4 (23,8,16,19) 5 (9,13,5,2)

57 Örnek Fitness(uygunluk) değerlerini hesaplayalım. 1+2*28+3*15+4*3=114
14+2*9+3*2+4*4 =54 13+2*5+3*7+4*3 =56 23+2*8+3*16+4*19 =163 9+2*13+3*5+4*2 =58

58 Örnek 1. Nesil kromozomların Fitness(uygunluk)değerleri Kromozom
Mutlak fark Fitness değeri 1 |114-30|=84 1/84= 2 |54-30|=24 1/24= 3 |56-30|=26 1/26= 4 |163-30|=133 1/133= 5 |58-30|=28 1/28= Toplam=

59 Örnek Ebeveyn seçimi Kromozom Uygunluk Oranı 1
(1/84) / = 8.80% 2 (1/24) / = 30.8% 3 (1/26) / = 28.4% 4 (1/133) / = 5.56% 5 (1/28) / = 26.4%

60 Örnek Rulet tekerleğini 5 kez çevirdiğimizi varsayalım ve farz edelim ki sonuçlar aşağıdaki tabloda olduğu gibi gelsin. Kromozom 4 ün fitness oranı düşük olduğundan hayatta kalma şansı düşük idi ve yeni seçim de kromozom 4 seçilemedi. Kromozom(baba kromozom) Rulet tekerleği dödürüldükten sonraki kromozom seçimi (anne kromozom) 1 2 3 5 4

61 Örnek Çaprazlama işlemi Anne çözüm seti a1,b1,c1,d1, ve baba çözüm setini de a2,b2,c2,d2, olarak kabul edelim. Burada 6 çaprazlama yapmak mümkündür. (| = çaprazlama noktası): Baba kromozom Anne kromozom Yavru kromozom a1 | b1,c1,d1 a2 | b2,c2,d2 a1,b2,c2,d2 or a2,b1,c1,d1 a1,b1 | c1,d1 a2,b2 | c2,d2 a1,b1,c2,d2 or a2,b2,c1,d1 a1,b1,c1 | d1 a2,b2,c2 | d2 a1,b1,c1,d2 or a2,b2,c2,d1

62 Örnek Ebeveyn kromozomlarından çaprazlama Baba kromozom Anne kromozom
Yavru kromozom (13 | 5,7,3) (1 | 28,15,3) (13,28,15,3) (9,13 | 5,2) (14,9 | 2,4) (9,13,2,4) (13,5,7 | 3) (9,13,5 | 2) (13,5,7,2) (14 | 9,2,4) (9 | 13,5,2) (14,13,5,2) (13,5 | 7, 3) (9,13 | 5, 2) (13,5,5,2)

63 Örnek Mutasyona uğratma; Rastgele seçilen bir kromozoma mutasyon uygulayalım. Örneğin kromozom 1 de gen a olsun. Mutasyon ile rastgele seçilen bir genin değeri 0-30 arasında değiştirilir. (13, 28, 15, 3)  (8, 28, 15, 3)

64 Örnek Şimdi yeni neslin temsil ettiği yavruların fitness değerlerini tekrar hesaplayalım. Yavru kromozom Mutlak fark Fitness değeri (8, 28, 15, 3) |121-30|=91 1/91 (9, 13, 2, 4) |57-30|=27 1/27 (13, 5, 7, 2) |57-30|=22 1/22 (14, 13, 5, 2) |63-30|=33 1/33 (13, 5, 5, 2) |46-30|=16 1/16

65 Örnek Ebeveyn kromozomları için ortalama fitness değeri iken yavru kromozomlar için ortalama fitness değeri olarak elde edilmiştir. Bu oranda ilerleme sağlanırsa bir kromozom sonuçta çok yüksek fitness değerine ulaşabilecektir (mutlak fark değeri 0’a yakın olduğunda). İşte o zaman optimal çözüm bulunacaktır.


"Genetik Algoritma." indir ppt

Benzer bir sunumlar


Google Reklamları