380 likes | 850 Views
SEZGİSEL ALGORİTMALAR (devam). Yrd. Doç. Dr. Rembiye Kandemir Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü. Sezgisel Problem Çözümleme. İnsan farkında olmadan sezgisel yaklaşımlarla iç içe yaşamaktadır Kısıtlı zaman içerisinde karar vermeler, Karmaşık olaylarda seçimin yapılması,
E N D
SEZGİSEL ALGORİTMALAR (devam) Yrd. Doç. Dr. Rembiye Kandemir Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü
Sezgisel Problem Çözümleme • İnsan farkında olmadan sezgisel yaklaşımlarla iç içe yaşamaktadır • Kısıtlı zaman içerisinde karar vermeler, • Karmaşık olaylarda seçimin yapılması, • Yargılar, • Bireyler arasında olan ilişkiler, • Düşüncelerin değişmesi vs.
Sezgisel Arama Stratejileri • Best-First Search – En İyi Arama • Gready Search (GBFS) • A* Search (A*) – A* Arama • Hill Climbing Search (HCS) – Tepe Tırmanma • Simulated Annealing (SA)– Isıl İşlem Arama • Genetik Search (GA) – Genetik Arama
Greedy Best First Search - GBFS(En İyi Arama) • En İyi Arama, bilgilendiren arama metodlarındandır. • Bu yöntem Breath-First ile Depth-First aramalarının en iyi yönlerini birleştirmiştir. • Düğümler değerlendirme fonksiyonu f(n) ’e göre genişletilir. Geleneksel olarak f bir maliyet ölçüsüdür. • Üretilen düğümler içinden en uygunu seçilir ve bu düğüm genişletilir. Seçme işlemi h(n) (sezgisel fonksiyon)’ e göre yapılır. h(n) : n düğümünden amaç düğüme olan tahmini en ucuz maliyet. • Varsayım : h(n) = 0 ise n amaç düğümdür.
A* Search (Toplam Yolu Azaltma) • Belirli ve iyi tanımlanmış koşullar altında, bu sezgisel başlangıç ve amaç noktası arasında, eğer varsa minimum maliyetli yolu en az sayıda düğüm oluşturarak bulacağı garanti edilmiştir. • n düğümü göstermek üzere; f(n)=g(n)+h(n)değerlendirme fonksiyonu tanımlanır g(n) : Başlangıç noktasından, bulunan düğüme kadar olan maliyetin doğru ölçümü (gerçek mesafe olabilir) h(n) : Mevcut düğümden amaç düğümüne kadar en az maliyet tahmini. Bu fonksiyon negatif olmamalı ve asla amaç düğümüne ulaşım maliyetinden daha fazla olmamalı. h fonksiyonu tasarım problemine bağlı olarak değişmektedir.
Hill-Climbing Search – HCS (Tepe Tırmanma) • Basit bir sezgisel arama metodudur. • Derinlik öncelikli arama + sezgisel bulgu
Hill-Climbing (Tepe Tırmanma) Search • Tepe Tırmanmada temel fikir, mevcut durumdan daha iyi olan bir duruma doğru gitmektir. • Tepe Tırmanma teknikleri keşfedilmemiş bölgenin özellikleri üzerinde temel olarak bilgilendirilmemiş olmalarına rağmen, belirli bir düğüm hakkında yerel (local) bilgiden faydalanır. değişim Mevcut durum Yrd.Doç.Dr.Rembiye KANDEMİR
Hill-Climbing (Tepe Tırmanma) Search • Yerel bilgi, doğrudan düğümün civarında değerlendirme fonksiyonunun eğimi şeklinde bulunur ve yönlendirilir. Bu nedenle bir bakıma derinlik öncelikli aramaya benzer. • Resmi olarak bilgilendirilmemiş araştırma olmasına rağmen, tepenin özellikleri bilgisini kullanır; orada değilseniz tepe daha yukarıdadır ve eğer oradaysanız bütün yollar aşağı gider. • Tepe Tırmanama; yerel arazi bilgisi kullanılarak verimsiz araştırma uzayının çoğunu elimine etmek için çok kullanışlı ve etkin sezgisel bulgu sağlar. Yamaç “Düzlük” Durum uzayı Mevcu durum
Hill-Climbing’ in Riskleri • Tepe Tırmanma Sezgisel Aramada karşılaşılan problemler, gerçek dağcıların karşılaştığı problemlere benzer. • Yanlış tepe problemi • Yamaç problemi • Plato (yayla) problemi Yayla Yamaç Küçük tepe
Tepe Local maximum Yanlış tepe problemi • Dağ tırmanıcıların karşılaştıkları en ciddi problemdir. • Temel problem yanlış bir tepenin, yerel olarak gerçek bir tepenin özelliklerini yansıtmasıdır, dolayısıyla bulgu temelden bozguna uğrar. • Eğer daha yüksek tepe örnekleme işlemi ile üretilirse, tepe tırmanan sezgisel yeni yükselti (yeni düğüm) başlangıç noktası olarak zirve (amaç) noktasına ulaşıncaya kadar tekrarlanır.
Yamaç Yamaç problemi • Yamaç problemi, eğer bayır kenarları çok dik ve yükseklik kazanımı (rakım) çok aşamalı ise, özellikle ciddi bir problemdir. • Maximum Eğim algoritmaları, yamaç boyunca sert iniş-çıkışları olan ve çok az yükseklik kaydedilen bir yolla sonuçlanmaya meyillidir. • Yamaç problemi, yamacın yerel maximum bölgesinde işlem yaparken, adım boyutunu düşürmekle çözülebilir. • Böylesi bilgilerin dikkatli yorumu, başarıyla zirveye ulaşan yamacın varlığını ve yönünü gösterir.
Plato Plato (yayla) problemi • Tepe Tırmanan arama, en iyi aşamalı, iyi işlenmiş ve tek değerli fonksiyonlar için çalışır. • Topografik haritalardaki kesintiler gerçek dağ tırmanıcılarına olduğu kadar tepe tırmanma sezgiseli için de büyük zorluklar çıkarır. • Tanıdık olmayan arazide sezgiselin tamamen başarısız olması mümkündür.
Hill-Climbing Algoritması • AÇIK listesine Başlangıç düğümünü S ‘yi ekle • KAPALI listesini boşalt • AÇIK listesi boş değilse, AÇIK listesinin en solundaki elemanı listeden çıkart . Bu elemanı xolarak adlandıralım. • x‘in çocuklarını bul • x'in tüm çocukları için • Eğer çocuk AÇIK ve KAPALI listesinde değil ise • Çocuğa bir sezgisel değer ata ve AÇIK listesine ekle. • Eğer çocuk AÇIK listesinde ise • Eğer daha kısa bir yol ile ulaşılmış ise AÇIK lisesindeki çocuk kaydının sezgisel değerini değiştir. • Çocuğun ebeveyn bilgisini güncelle. • Eğer çocuk KAPALI listesinde ise • Eğer daha kısa bir yol bulunmuş ise KAPALI listesinden çıkartıp yeni bilgilere göre güncelleyip AÇIK listesine ekle. • xdüğümünü KAPALI listesine ekle • AÇIK listesini sezgisel değerlerine göre yeniden sırala (En iyi seçenek sola gelecek şekilde) • 3. adıma git
S 30 40 1 10 20 3 15 35 2 27 18 25 45 Hill-Climbing Search – HCS (Devam)
HC Aramaya göre Arad-Sibiu-Fagares-Bucharest Toplam Uzaklık 140+99+211=450
Genetic Search- GA (Genetik Arama) Genetik Algoritmanın Tanımı • Genetik algoritma, doğadaki evrim mekanizmasını örnek alan bir arama metodudur ve bir veri grubundan özel bir veriyi bulmak için kullanılır. • Genetik algoritmalar doğada geçerli olan en iyinin yaşaması kuralına dayanarak sürekli iyileşen çözümler üretir. • Bunun için kullandığı operatörler; • uygunlukfonksiyonu(fitness) : toplumdaki her kromozomun ne kadar iyi olduğu bulmayı amaçlayan fonksiyondur. Bu fonksiyon GA nın beynini oluşturmaktadır. • yenidenkopyalama (recombination) : yeni çözümler üretmek için çaprazlama (crossover) işlemi yapılır ve bu eşleme uygunluk fonksiyonuna göre yapılır. • değiştirme (mutation) : sadece bir çözüm üzerinde yapılan işlemdir.
Kromozomun şifrelenmesi • 1. İ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. Kromozom A: 101110010110 Kromozom 2: 010110100000
Kromozomun şifrelenmesi (Devam..) • 2. Permütasyon kodlama Bu kodlama Gezgin Satıcı Problemi ve iş sıralama problemleri gibi sıralam problemlerinde kullanılır. Burada her kromozom bir numaralar dizisidir. Kromozom A: 35127604 Kromozom B: 01562347
Gen takası (Çaprazlama) ve Mutasyon • 1. İkili kodlanmışkromozom - A) Tek noktalı gen takası. • Kromozom-1 : 11011|00100110110 • Kromozom-2 : 11011|11000011110 • Çocuk-1 : 1101111000011110 • Çocuk-2 : 1101100100110110 - B) Çift noktalı gen takası. • Kromozom-1 : 11011|00100|110110 • Kromozom-2 : 11011|11000|011110 • Çocuk-1 : 1101111000110110 • Çocuk-2 : 1101100100011110
Gen takası (Çaprazlama) ve Mutasyon (Devam..) - C) Tek biçimli (uniform) gen takası. • Kromozom-1 : 11011001 • Kromozom-2 : 00011110 • Çocuk-1 : 10011010 • Çocuk-2 : 01011101 Mutasyon işlemi : Mutasyon işlemi, problemin problemin populasyondaki çözümlerin yerel optimuma düşmesini engellemek için kullanılır. Mutasyon yeni üretilen çocuk kromozomu rasgele değiştirir. • Çocuk-1(orijinal) : 11011001 • Çocuk-2 : 11111001
Gen takası (Çaprazlama) ve Mutasyon (Devam..) • 2. Permütasyon kodlanmışkromozom Çaprazlama: • Kromozom-1 : 123456789 • Kromozom-2 : 453689721 • Çocuk-1 : 123489721 • Çocuk-2 : 453656789 Mutasyon: İkitane rasgele gen seçilir ve bunların yeri değiştirilir. • Çocuk-1(orijinal) : 123456789 • Çocuk-2 : 183456289
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 (Devam..) • 2. Sıralama seçimi Rulet tekeri seçimi, uygunluklar çok farklıysa problemlere yol açar. (Örneğin, en iyi kromozomun uygunluğu %90 ise diğer kromozomlar çok az seçilme şansına sahip olacaktır.) Sıralama seçimi önce populasyonu sıralamakta ve ardından her kromozomun bu sıralamada uygunluğu aranmaktadır. En kötüsü 1 uygunlukta, ikinci kötüsü 2 uygunlukta vb., 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 yavaş olacaktır.
Kromozom Seçimi (Devam..) • 3. Sabit durum seçimi Bu yönteme göre ebeveyinlerin seçimi için kromozomların büyük parçaları bir sonraki jenerasyona taşınmaktadır. Her nesilde yeni bir birey (çocuk) oluşturmak için birkaç kromozom seçilir (büyük uygunlukta iyi olanlar). Az uygunlukta kötü olan kromozomlar atılır ve yeni çocuk kromozomlar yerine getirilir. Geri kalan kromozomlar değiştirilmeden yeni nesile aktarılır.
Genetik Algoritmaların Çalışma Prensibi • Adım 1:Olası çözümlerin kodlandığı bir çözüm grubu oluşturulur (çözüm grubu (population), çözümlerin kodları (string) da kromozom olarak adlandırılır). • Adım 2:Her kromozomun ne kadar iyi olduğu bulunur (fitness function). • Adım 3:Bu kromozomlar eşlenerek (mating), yeniden kopyalama (recombination) ve değiştirme (crossover) operatörleri uygulanır. Bu sayede yeni bir toplum oluşturulur. • Adım 4:Yeni kromozomlara yer açmak için eski kromozomlar ortadan kaldırılır. • Adım 5:Tüm kromozomların uygunlukları tekrar hesaplanır. • Adım 6:İşlemler tekrarlanarak verilmiş zaman içerisinde daha iyi olan yeni nesillerin oluşturulması gerçekleştirilir (3. adıma gidilir). • Adım 7:O ana kadar hesaplanma sırasında en iyi kromozom bulunduğunda istenen sonuç elde edilmiş olur.
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 çok 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.
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.
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.
Ö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/1oluşan Birey 1 :01100 Aday 2 :1100/0 oluşan Birey 2 :11001 Çiftleşme grubu 2 : (k=2) Aday 3 :11/000 oluşanBirey 3 :11011 Aday 4 :10/011 oluşanBirey 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.