Genetik Algoritma.

Slides:



Advertisements
Benzer bir sunumlar
BİL551 – YAPAY ZEKA Genetik Algoritma
Advertisements

Hâsılat kavramları Firmaların kârı maksimize ettikleri varsayılır. Kâr toplam hâsılat ile toplam maliyet arasındaki farktır. Kârı analiz etmek için hâsılat.
Hafta 7: Öz Türleri ve Fonksiyonları BBY 306 Dizinleme ve Öz Hazırlama.
Algoritma.  Algoritma, belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.  Başka bir deyişle; bir sorunu çözebilmek için gerekli olan.
Çıkış katmanındaki j. nöron ile gizli katmandaki i. nörona ilişkin ağırlığın güncellenmesi Ağırlığın güncellenmesi Hangi yöntem? “en dik iniş “ (steepest.
Hat Dengeleme.
SAYISAL DEVRELER BÖLÜM-2 Sayı Sistemleri ve Kodlar
Bilimsel bilgi Diğer bilgi türlerinden farklı
BÖLÜM 1 TEMEL KAVRAMLAR. BÖLÜM 1 TEMEL KAVRAMLAR.
HİPOTEZ TESTLERİNE GİRİŞ 1. Şu ana kadar örneklemden elde edilmiş istatistiklerden yararlanarak, kitle parametresini kestirebilmek için nokta tahmini.
Arş.Gör.İrfan DOĞAN.  Bugün otizm tedavisinde en önemli yaklaşım, özel eğitim ve davranış tedavileridir.  Tedavi planı kişiden kişiye değişmektedir,
BSE 207 Mantık Devreleri Sayı sistemleri Sakarya Üniversitesi.
OLASILIK TEOREMLERİ Permütasyon
Yazılım Mühendisliği1[ 3.hft ]. Yazılım Mühendisliği2 Yazılım İ sterlerinin Çözümlemesi Yazılım Yaşam Çevrimi “ Yazılım Yaşam çevrimin herhangi bir yazılım.
HİPOTEZ TESTLERİNE GİRİŞ Şu ana kadar örneklemden elde edilmiş istatistiklerden yararlanarak, kitle parametresini kestirebilmek için nokta tahmini.
MAYOZ BÖLÜNME. Mayoz bölünme bitki, insan ve hayvanlarda üreme hücrelerinin (sperm, yumurta ve polen) oluşturulmasını sağlar. Canlıların üreme organlarında.
MAYOZ BÖLÜNME. MAYOZ BÖLÜNME:Bitki, insan ve hayvanlarda üreme hücrelerinin (Sperm, Yumurta ve Polen) oluşturulmasını sağlar. Canlıların üreme organlarında.
Genetik Algoritma.
BİLGİSAYAR PROGRAMLAMA DERSİ
Ayrık Zaman Hopfield Ağı ile Çağrışımlı Bellek Tasarımı
Erken çocukluk döneminde fen ve matematik kavramlarının gelişimi
PROGRAMLI ÖĞRETİM Tanımı:
DENEYSEL TERTİPLER VE PAZAR DENEMESİ
ÖRNEKLEME.
1. Bernoulli Dağılımı Bernoulli dağılımı rassal bir deneyin sadece iyi- kötü, olumlu-olumsuz, başarılı-başarısız, kusurlu-kusursuz gibi sadece iki sonucu.
Yapay Sinir Ağı Modeli (öğretmenli öğrenme) Çok Katmanlı Algılayıcı
MODEL YETERSİZLİKLERİNİ DÜZELTMEK İÇİN DÖNÜŞÜMLER VE AĞIRLIKLANDIRMA
İleri Algoritma Analizi
BİLİŞİM SİSTEMLERİ GÜVENLİĞİ (2016)
MAT – 101 Temel Matematik Mustafa Sezer PEHLİVAN *
Fluvyal Jeomorfoloji Yrd. Doç. Dr. Levent Uncu.
BİYOİNFORMATİK NEDİR? BİYOİNFORMATİKTE KULLANILAN SINIFLAMA YÖNTEMLERİ
“Bilgi”’nin Gösterimi “Bilgi” İnsan veya Makina Yorumlama Öngörme
İnsan Kaynakları ve Kalite Yönetimi
KORELASYON VE DOGRUSAL REGRESYON
ZEE ZİHİN ENGELLİLERE BECERİ VE KAVRAM ÖĞRETİMİ
Yatay Gen Transferinin Hesaplanması
Bilgisayar Mühendisliğine Giriş
PARAMETRİK HİPOTEZ TESTLERİ
BENZETİM Prof.Dr.Berna Dengiz 13. Ders Çıktı Analizi
Meriç ÇETİN Pamukkale Üniversitesi Bilgisayar Mühendisliği Bölümü
Benzetim 11. Ders İmalat Yönetimde Benzetim.
TEKNOLOJİ VE TASARIM DERSİ 7.D.1. Özgün Ürünümü Tasarlıyorum.
Kemal AKYOL, Şafak BAYIR, Baha ŞEN
PROGRAM DEĞERLENDİRME
SPORDA TEKNİK ve TAKTİK ÖĞRETİM YÖNTEMLERİ
NİŞANTAŞI ÜNİVERSİTESİ
Evren-Örneklem, Örnekleme Yöntemleri 2
ÖĞRENME STİLLERİ.
ÖLÇME-DEĞERLENDİRME 1.DERS
Bilgisayar Bilimi Koşullu Durumlar.
SPORDA TEKNİK ve TAKTİK ÖĞRETİM YÖNTEMLERİ
Karar Yapıları İle Problem Çözme
Bilgisayar Mühendisliğine Giriş
NİŞANTAŞI ÜNİVERSİTESİ
Değerler ve Değişkenler
Gelişim ve Temel Kavramlar
DAVRANIŞ BİLİMLERİNDE ARAŞTIRMA (YÜKSEK LİSANS)
Ders 2: Yazılım Geliştirme
Evren-Örneklem, Örnekleme Yöntemleri 1
NİŞANTAŞI ÜNİVERSİTESİ
Veri ve Türleri Araştırma amacına uygun gözlenen ve kaydedilen değişken ya da değişkenlere veri denir. Olgusal Veriler Yargısal Veriler.
Ölçmede Hata Kavramı ve Hata Türleri
İleri Algoritma Analizi
Sınıf Öğretmenlerinin Eğitsel Amaçlı İnternet Kullanım Öz Yeterlikleri
OLASILIK Uygulamada karşılaşılan olayların birçoğu kesin olmayan diğer bir ifadeyle belirsizlik içeren bir yapıya sahiptir. Olasılık kavramı kesin olmayan.
RASTGELE DEĞİŞKENLER Herhangi bir özellik bakımından birimlerin almış oldukları farklı değerlere değişken denir. Rastgele değişken ise tanım aralığında.
Bilimsel Araştırma Yöntemleri
İnsan Kaynakları Yönetiminin
Bilimsel araştırma türleri (Deneysel Desenler)
Sunum transkripti:

Genetik Algoritma

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.

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.

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.

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

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.

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.

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.

Genetik Algoritmaların Çalışma Prensibi

Genetik Algoritmaların Çalışma Prensibi

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

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

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: 101110010110 Kromozom B: 010110100000

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: 3 5 1 2 7 6 0 4 Kromozom B: 0 1 5 6 2 3 4 7

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: 3.2 6.5 0.8 9.4 Kromozom B: ABCDE Kromozom C: (geri), (sağ), (ileri), (sol)

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.

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.

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.

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.

Ö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.

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.

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.

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.

Ö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 = 169+16+121+64 = 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

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.

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.

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.

Ç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|00100110110 Parents (anne-baba) Kromozom-2 : 11011|11000011110 Offspring (çocuk) Kromozom-1 : 1101111000011110 Offspring (çocuk) Kromozom-2 : 1101100100110110

Ç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 : 1101111000110110 Offspring (çocuk) Kromozom-2 : 1101100100011110

Ç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 : 11011001 Parents (anne-baba) Kromozom-2 : 00011110 Offspring (çocuk) Kromozom-1 : 10011010 Offspring (çocuk) Kromozom-2 : 01011101 D) Aritmetik takas 11001011+11011111=11001001 VE (AND)işlemi

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) : 11011001 Çocuk-1(yeni) : 11110001

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 : 123456789 Kromozom-2 : 453689721 Çocuk-1 : 123489721 Çocuk-2 : 453656789 Mutasyon: İki tane rasgele gen seçilir ve bunların yeri değiştirilir. Çocuk-1 (orijinal) : 123456789 Çocuk-1 (yeni) : 183456289

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) (1.29 5.68 2.86 4.11 5.55) Çocuk-1 (yeni) (1.29 5.68 2.73 4.11 5.55)

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.

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

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.

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.

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.

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.

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

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

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

Ö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:

Ö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.

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

Ö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:

Örnek Yeni neslin uygunluk fonksiyonunun hesaplanması:

Ö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

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

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; 169 + 576 + 64 + 361 = 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

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 : 01101 (Kromozom 1) Aday 2 : 11000 (Kromozom 2) Aday 3 : 11000 (Kromozom 2) Aday 4 : 10011 (Kromozom 4) Yrd.Doç.Dr.Rembiye KANDEMİR

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

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

Ö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.)

Ö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)

Ö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

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

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

Ö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

Ö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

Ö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)

Ö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)

Ö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

Örnek Ebeveyn kromozomları için ortalama fitness değeri 0.017 iken yavru kromozomlar için ortalama fitness değeri 0.026 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.