Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
YayınlayanHadi Dharmawijaya Değiştirilmiş 6 yıl önce
1
Hafta_6 Sezgisel-Bilgili Arama (Heuristic-Informed Search)
2
Sezgisel Arama Yöntemleri
Kör arama yöntemleri basittir, fakat çoğu zaman pratik değildir. Kör arama yöntemleri bilgisiz yöntemlerdir. Yani, bu yöntemlerle arama, durum uzayı hakkında bilgi olmadan gerçekleştirilir. Sezgisel arama yöntemleri , önce en umut verici yolu incelemekle aramanın etkisini yükseltir.
3
SEZGİSEL YAKLAŞIM Sezgisellik, gerçeğin deneye veya akla vurmadan, doğrudan doğruya kavranmasıdır. Sezgisellik (sezgisel kurallar, sezgisel yöntem) problemin durum uzayı çok büyük olduğunda çözümün aranmasını kesin biçimde sınırlayan herhangi kural, strateji, hile, sadeleştirme ve diğer etmenler kullanımıdır. Sezgisellik, problem karmaşıklık içerdiğinde, çözüm için yolun bulunmasındaki yardımcı anahtardır. İyi seçilmiş anahtarla tek bir kapıyı açıp amaca ulaşmak mümkün olduğu gibi, kötü seçilmiş anahtarlarla bu yolu zora sokmak da mümkündür.
4
SEZGİSEL PROBLEM ÇÖZÜMLEME
Yuri Gagarin, 1961’ de uzaya giden ilk insan olduktan sonra İngiltere Kraliçesi Elizabeth II tarafından kabul edilmiştir. Yemek sırasında masaya 5 çatal, 5 kaşık ve 5 bıçak getirilmiştir. Bir köylü çocuğu olan kozmonot rastgele aldığı çatal ve bıçaklarla yemeye başlamış ve sonunda ilginç bir durumla karşılaşmıştır. Yemek sonunda çay karıştırmak için kaşıklardan en büyüğü kalmıştır. Menü önceden bilinseydi, olay algoritmik özellik taşıyacaktı. Öte yandan yemek süresinin sınırlı olması deneme yapmaya imkan vermemektedir. Fakat tekrar benzeri durumla karşılaşıldığında tecrübeye göre en iyi yaklaşım yapılmaktadır. Yine de kötü bir tahmin rol oynayabilir.
5
SEZGİSEL PROBLEM ÇÖZÜMLEME
Sezgisel algoritmalar sonucun doğruluğunun kanıtlanabilir olup olmadığını önemsememektedir fakat genelde iyiye yakın çözüm yolları elde eder. Sezgisel algoritmalar en iyi çözümü aramaktan vazgeçerek çözüm zamanını azaltan algoritmalardır. Sezgisel algoritmalar en iyi sonucu bulacaklarını garanti etmezler fakat makul bir süre içerisinde bir çözüm elde edeceklerini garanti ederler. Genellikle en iyiye yakın olan çözüm yoluna hızlı ve kolay bir şekilde ulaşırlar.
6
Sezgisel Arama Stratejileri (Heuristic-Informed Search Strategies)
Sezgisellik bir tahmindir, fakat aramayı gerçekleştirmek için yararlı yoldur. Temel düşünce… Tüm mümkün arama yollarını denemek yerine , hedefe/amaca yaklaştırdığı düşünülen yolların denenmesi.
7
Sezgisel Arama Stratejileri (Heuristic-Informed Search Strategies)
Örneğin, arama uzayında kentler arasındaki kuş uçuşu mesafeleri sezgisel değerlendirme için kullanılabilir. Üstünlük verilen yollar SG’ye daha yakın olan yollardır. SG’ye kuş uçuşu yolların uzunlukları SG 3 4 7 6 11 8 E L CS A R FA SR S SC W CG
8
Sezgisel Arama Stratejileri (Heuristic-Informed Search Strategies)
En İyi Öncelikli Arama Algoritması (Best-First Search – BFS) Aç gözlü Arama Algoritması (Gready Search- GBFS) A Yıldız Arama Algoritması(A* Search) Tepe Tırmanma Arama Algoritması (Hill Climbing Search - HCS)
9
En İyi Öncelikli Arama Algoritması (Best-First Search)
Her durum-düğüm için, o durumun-düğümün istenebilirliğini (desirability) tarif edecek bir tahmin fonksiyonu f(n) kullanılır. Bu fonksiyon hedef/amaç durumuna yakınlığı değerlendirmek için arama ağacında düğümleri inceler. En çok istenen-arzu edilen düğüm genişletilir Düğümler istenebilirlikleri azalacak şekilde sıralanır
10
En İyi Öncelikli Arama Algoritması (Best-First Search)
Bazı hallerde amaca doğru her hangi bir yolun bulunması yeterli olsa da, bazı zamanlarda en iyi yolun bulunması gerekebilir. En hızlı, en düşük maliyetle ve en kolay yolla amaca ulaşılması için optimal arama yapılmalıdır. Mantıklı bir zaman diliminde en iyi çözümün bulunması yöntemleri: Aç gözlü Arama (Greedy Search- GBFS) A Yıldız Arama (A* Search)
11
Aç Gözlü Arama (Greedy Search)
Değerlendirme fonksiyonu, f(n) = h(n) Tahmin fonksiyonu h(n), n. düğümden amaç düğüme kadar tahmin edilen maliyet (sezgisellik fonksiyonu) Örn., h(n) = İki şehir arası kuş uçuşu mesafesi gerçek yol maliyetinin tahmin edilmesinde bir sezgisel (heuristic) bilgi olarak kullanılabilir. Algoritma, amaca en yakın olduğu tahmin edilen/düşünülen düğüme doğru genişleme yapar. Varsayım : h(n) = 0 ise n amaç düğümdür.
12
Aç Gözlü Arama (Greedy Search)
Bütünlük : Yok. (Bir döngüye saplanıp kalabilir. Tekrarlı bir alanda sınırlı arama yapar.) Zaman Karmaşıklığı : O(bm) , iyi bir sezgisel ile yeterli ölçüde gelişme sağlanabilir Alan Karmaşıklığı : O(bm) (Bütün düğümleri bellekte tutar.) Optimallik : Yok
13
Aç Gözlü Arama (Greedy Search)
Algoritma öncelikle düğümlerden ve ağırlıklı kenarlardan oluşan bir çizge oluşturur ve bu çizgedeki kenarları ağırlıklarına göre sıralar. Daha sonra algoritma hedefe kuş uçuşu en kısa kenarı seçerek işlemeye devam eder; bu sırada da döngülerin oluşmasını önler. Greedy algoritması makul zamanda çözüm üretmektedir ancak her zaman iyi sonuçlar verememektedir.
14
Greedy Search Start State Heuristic: h(n) A 366 B 374 C 329 D 244 E
253 F 178 G 193 H 98 I A 75 118 B C 140 111 E D 80 99 G F 97 H 211 101 I f(n) = h (n) = sezgisel kuş uçuşu mesafesi Goal
15
Greedy Search Start State Heuristic: h(n) A 366 B 374 C 329 D 244 E
253 F 178 G 193 H 98 I A 75 118 B C 140 111 E D 80 99 G F 97 H 211 101 I f(n) = h (n) = straight-line distance heuristic Goal
16
Greedy Search Start State Heuristic: h(n) A 366 B 374 C 329 D 244 E
253 F 178 G 193 H 98 I A 75 118 B C 140 111 E D 80 99 G F 97 H 211 101 I f(n) = h (n) = straight-line distance heuristic Goal
17
Greedy Search Start State Heuristic: h(n) A 366 B 374 C 329 D 244 E
253 F 178 G 193 H 98 I A 75 118 B C 140 111 E D 80 99 G F 97 H 211 101 I f(n) = h (n) = straight-line distance heuristic Goal
18
Greedy Search Start State Heuristic: h(n) A 366 B 374 C 329 D 244 E
253 F 178 G 193 H 98 I A 75 118 B C 140 111 E D 80 99 G F 97 H 211 101 I f(n) = h (n) = straight-line distance heuristic Goal
19
Greedy Search Start State Heuristic: h(n) A 366 B 374 C 329 D 244 E
253 F 178 G 193 H 98 I A 75 118 B C 140 111 E D 80 99 G F 97 H 211 101 I f(n) = h (n) = straight-line distance heuristic Goal
20
Greedy Search Start State Heuristic: h(n) A 366 B 374 C 329 D 244 E
253 F 178 G 193 H 98 I A 75 118 B C 140 111 E D 80 99 G F 97 H 211 101 I f(n) = h (n) = straight-line distance heuristic Goal
21
Greedy Search Start State Heuristic: h(n) A 366 B 374 C 329 D 244 E
253 F 178 G 193 H 98 I A 75 118 B C 140 111 E D 80 99 G F 97 H 211 101 I f(n) = h (n) = straight-line distance heuristic Goal
22
Greedy Search Start State Heuristic: h(n) A 366 B 374 C 329 D 244 E
253 F 178 G 193 H 98 I A 75 118 B C 140 111 E D 80 99 G F 97 H 211 101 I f(n) = h (n) = straight-line distance heuristic Goal
23
Greedy Search Start State Heuristic: h(n) A 366 B 374 C 329 D 244 E
253 F 178 G 193 H 98 I A 75 118 B C 140 111 E D 80 99 G F 97 H 211 101 I f(n) = h (n) = straight-line distance heuristic Goal
24
Greedy Search: Tree Search
Start A
25
Greedy Search: Tree Search
Start A 75 118 B [374] [329] C 140 E [253]
26
Greedy Search: Tree Search
Start A 75 118 B [374] [329] C 140 E [253] 99 80 [193] G F [178] A [366]
27
Greedy Search: Tree Search
Start A 75 118 B [374] [329] C 140 E [253] 99 80 [193] G F [178] A [366] 211 I [0] [253] E Goal
28
Greedy Search: Tree Search
Start A 75 118 B [374] [329] C 140 E [253] 99 80 [193] G F [178] A [366] 211 I [0] [253] E Goal Path cost(A-E-F-I) = = 431 dist(A-E-F-I) = = 450
29
Greedy Search: Optimal ?
Start State Heuristic: h(n) A 366 B 374 C 329 D 244 E 253 F 178 G 193 H 98 I A 75 118 B C 140 111 E D 80 99 G F 97 H 211 101 I f(n) = h (n) = straight-line distance heuristic dist(A-E-G-H-I) = =418 Goal
30
Aç Gözlü Arama (Greedy Search)
Ankara ile diğer kentler arasındaki kuş uçuşu (straight line) yaklaşık mesafeleri
31
Aç Gözlü Arama (Greedy Search)
32
Aç Gözlü Arama (Greedy Search)
33
Aç Gözlü Arama (Greedy Search) Romanya Haritası, Amaç: Arad’dan Bükreş’e gitmek
34
Aç Gözlü Arama (Greedy Search) Romanya Haritası, Amaç: Arad’dan Bükreş’e gitmek
35
Aç Gözlü Arama (Greedy Search) Romanya Haritası, Amaç: Arad’dan Bükreş’e gitmek
36
Aç Gözlü Arama (Greedy Search) Romanya Haritası, Amaç: Arad’dan Bükreş’e gitmek
37
Aç Gözlü Arama (Greedy Search) Romanya Haritası, Amaç: Arad’dan Bükreş’e gitmek
38
Optimum Çözüm Aç Gözlü Arama (Greedy Search) Çözümü
39
Aç Gözlü Arama (Greedy Search) Örnek
S is the starting state, G is the goal state
40
Aç Gözlü Arama (Greedy Search) Örnek
41
A Yıldız Arama Algoritması (A* Search Algorithm)
Bilgisayar bilimlerinde en kısa yol bulmak için kullanılan algoritmalardan birisidir. Örneğin seyyar tüccar problemi (travelling salesman problem) gibi bir problemin çözümünde kullanılabilir. Benzer şekilde oyun programlamada, oyunda bulunan oyuncuların en kısa yolu bularak hedefe gitmeleri için de sıklıkla kullanılan algoritmadır. Kısaca bir düğümden hedef bir düğüme en kısa hangi düğümler üzerinden gidileceğini bulmaya yarayan bir algoritmadır.
42
A Yıldız Arama Algoritması (A* Search Algorithm)
Başlangıç düğümünden n. düğüme kadar olan yolu g(n) ile n. düğümden ise hedef düğümüne olan yol değerini h(n) ile ifade edersek bu algoritma için aşağıdaki bağıntı elde edilir. f(n) = g(n) + h(n) f(n) = hesaplama yapan sezgisel (heuristic) fonksiyon. g(n) = Başlangıç düğümünden mevcut düğüme kadar gelmenin maliyeti h(n) = Mevcut düğümden hedef düğüme varmak için tahmin edilen mesafe. Dikkat edileceği üzere f(n) fonksiyonunun sezgisel olma sebebi, bu fonksiyon içerisinde bulunan ve tahmine dayalı olan h(n) sezgisel fonksiyonudur.
43
A Yıldız Arama Algoritması (A* Search Algorithm)
Maliyeti fazla olan yolların genişletilmesini engeller, sadece en faydalı olabilecek yolları genişletir. Veri yapısı olarak bir öncelik sırası (priority queue) kullanan algoritmada, en öncelikli olan düğüm f(n) değeri en düşük olan düğümdür.
44
A Yıldız Arama Algoritması (A* Search Algorithm)
Tamdır. Sonuçta, çözüm varsa bulunur. Kökten başlanarak gidilen herhangi bir yolda f tahmini her zaman artar (h, monoton olsa bile). Zaman karmaşıklığı Optimaldir. Zaman ve Yer karmaşıklıkları kötü olsa da iyi bir sezgi ile, düzelecektir.
45
A Yıldız Arama Algoritması (A Star Search Algorithm)
Algoritmanın çalışması: 1. Algoritma her adımda en düşük değerli (dolayısıyla en önemli) düğümü alır yani bu düğüme gider ve düğümü kuyruktan (queue) çıkarır. 2. Gidilen bu düğüme göre komşu olan bütün düğümlerin değerleri güncellenir (artık bu düğüme gelmenin bir maliyeti vardır ve f(n) fonksiyonu içerisinde bu değer yer almaktadır.) 3. Algoritma yukarıdaki adımları hedefe varana kadar (yani hedef düğümü öncelik sırasında (priority queue) en öne gelene kadar) veya kuyrukta (queue) düğüm kalmayana kadar tekrarlar.
46
A Yıldız Arama Algoritması (A Star Search Algorithm)
Algoritmanın çalışması için yandaki örnek grafik ele alınacaktır. Grafikte sol üst köşedeki düğümden, sağ alt köşedeki düğüme gidilmek isteniyor. Bu durumda f(n) fonksiyonunu oluşturan mesafe değeri, grafik üzerindeki yol maliyetleri olarak hesaplanabilir.
47
A Yıldız Arama Algoritması (A Star Search Algorithm)
Sezgisel fonksiyon olarak, bir düğümün hedefe olan kuş uçuşu mesafesi alınır. Yani iki düğüm arasındaki mesafeyi çizilen yoldan değil de iki düğüm arasındaki cetvel ile ölçülen değer olarak kabul edilecektir. Bu durumda düğümlerin sezgisel mesafelerini (heuristic) gösteren grafik yandaki şekildedir:
48
A Yıldız Arama Algoritması (A Star Search Algorithm)
Grafikte kırmızı renkle gösterilen değerler, o düğümden hedef düğüm olan sağ alt köşedeki düğüme olan kuş uçuşu mesafeyi göstermektedir. Bu değerleri kısaca h(n) olarak kabul edebiliriz. Başlangıç düğümü olan sol üst köşedeki düğümden başlayarak iki düğümün değeri hesaplanırsa: Başlangıcın altında bulunan düğüm için h(n) = 9 ve g(n) = 4 olmaktadır. Başlangıcın sağında bulunan düğüm için ise h(n) = 8 ve g(n) = 3 olmaktadır. Buna göre: f(aşağı) = h(n)+g(n)=9+4 = 13 f(sağa) = h(n)+g(n)=8 +3 = 11 olarak bulunmaktadır. Algoritma bu seçimler arasından küçük olan (ve önceliği yüksek olan) sağdaki düğüme gitmeyi tercih eder.
49
A Yıldız Arama Algoritması (A Star Search Algorithm)
Bir önceki seçimden sonra değerler tekrar hesaplanır. Önceki yapılan seçime göre düğümlerin değerleri tekrar f(n) = g(n) + h(n) olarak hesaplanırsa: Grafikte görüldüğü üzere kuyrukta (queue) iki düğüm bulunmakta ve iki düğümün değerleri sırasıyla 13 ve 11 olmaktadır. Bu durumda f(n) değeri 11 olan düğüm seçilip aşağı doğru hareket edilir.
50
A Yıldız Arama Algoritması (A Star Search Algorithm)
Son durumda f(n) değeri 13 ve 21 değerleri olan iki düğüm arasında seçim yapıldığında, kısa değer olarak 13 bulunduğu için A* arama algoritması bu aşamada geldiği yoldan vaz geçerek en kısa yolun bu yeni düğüm olabileceğini düşünür ve bu yola gider.
51
A Yıldız Arama Algoritması (A Star Search Algorithm)
Bu yeni seçim yeşil renk ile gösterilmiştir. Yeni seçim yapıldıktan sonra ulaşılan komşu düğümler 14 ve 21 değerlerine sahiptir. Bu durumda 14 değerine sahip olan daha öncelikli düğüme hareket edilecektir.
52
A Yıldız Arama Algoritması (A Star Search Algorithm)
Yeni halinde değerler hesaplandığında sonuç düğümüne gidilmesi mümkündür ve ulaşım değeri yukarıdaki dolaşmaya göre daha düşüktür.
53
A Yıldız Arama Algoritması (A Star Search Algorithm)
Son durumda hedefe ulaşılmış ve aşağıdaki yol kullanılmıştır. Sonuçta ulaşım için mesafe toplandığında =14 mesafesi, diğer alternatif olan =21 değerine göre daha kısadır. A* algoritması sezgisel bir algoritma olduğu için bu durumu bilmemektedir.
54
A* Arama Romanya Haritası, Amaç: Arad’dan Bükreş’e gitmek
55
A* Arama Romanya Haritası, Amaç: Arad’dan Bükreş’e gitmek
56
A* Arama Romanya Haritası, Amaç: Arad’dan Bükreş’e gitmek
57
A* Arama Romanya Haritası, Amaç: Arad’dan Bükreş’e gitmek
58
A* Arama Romanya Haritası, Amaç: Arad’dan Bükreş’e gitmek
59
A* Arama Romanya Haritası, Amaç: Arad’dan Bükreş’e gitmek
60
A* Arama Romanya Haritası, Amaç: Arad’dan Bükreş’e gitmek
61
Şekil-1 Farklı şehirler arasındaki yol bağlantısı
Şekil-1 Farklı şehirler arasındaki yol bağlantısı. Bağlantılardaki değerler Şehirler arasındaki mesafe Şekil-2 Farklı şehirlerin G şehrine olan doğrusal uzaklığı Amaç S şehrinden G şehrine gitmek
62
Durum uzayı Arama ağacı
63
Enlemesine Arama Breadth-first search
[D2,B3,D4] [B3,D4,A5,E6] [D4,A5,E6,C7,E8] [A5,E6,C7,E8,E9] [E6,C7,E8,E9,B10] [C7,E8,E9,B10,B11,F12] [E8,E9,B10,B11,F12] [E9,B10,B11,F12,D13,F14] [B10,B11,F12,D13,F14,B15,F16] [B11,F12,D13,F14,B15,F16,C17,E18] [F12,D13,F14, B15,F16,C17,E18,A19,C20] [D13,F14, B15,F16,C17,E18,A19,C20,G21] [F14,B15,F16,C17,E18,A19,C20,G21] [B15,F16,C17,E18,A19,C20,G21,G22] [F16,C17,E18,A19,C20,G21,G22,C23] [C17,E18,A19,C20,G21,G22,C23,G24] [E18,A19,C20,G21,G22,C23,G24] [A19,C20,G21,G22,C23,G24] [C20,G21,G22,C23,G24,F25] [G21,G22,C23,G24,F25] BFS={S,D,E,F,G} Harflerin altlarındaki sayılar, indisleri göstermektedir.
64
Derinlemesine Arama Depth-first search
[B3,D4,D2,] [C7,E8,D4,D2] [E8,D4,D2] [D13,F14,D4,D2] [F14,D4,D2] [G22,D4,D2] DFS={S,A,B,E,F,G} Harflerin altlarındaki sayılar, indisleri göstermektedir.
65
Düşük Maliyetli Arama Uniform cost search
[A3,D4] [D4,B7,D8] [E6,B7,D8,A9] [B7, D8,A9,F10,B11] [D8,A9,F10,B11,C11,E12] [A9,F10,E10,B11,C11,E12] [F10, E10,B11,C11,E12,B13] [E10,B11,C11,E12,B13,G13] [B11,C11,E12,B13,G13,F14,B15] [C11,E12,B13,G13,F14,B15,A15,C15] [E12,B13,G13,F14,B15,A15,C15] [B13,G13,F14,D14, B15,A15,C15,F16] [G13, F14,D14, B15,A15,C15,F16,C17,E18] UCS={S,D,E,F,G} Harflerin altlarındaki sayılar, S’den uzaklıklarını göstermektedir.
66
A* Arama f(n)=g(n)+h(n) [S0] [D12.9,A13.4] [E12.9,A13.4,A19.4]
[F13.0,A13.4,B17.7,A19.4] [G13.0,A13.4,B17.7,A19.4] A*={S,D,E,F,G} Harflerin altlarındaki sayılar, S’den uzaklıkları + G’ye uzaklıklarını göstermektedir.
67
A* Arama S 11+0 SA A 10.4+3 SD D 8.9+4 SDS 11+8 SDA 10.4+9 SDE E 6.9+9
SAS 11+6 SAD 8.9+8 SAB B 6.7+7 SABA SABE 6.9+8 SABC C 4+11 SABED 8.9+13 SABEB 6.7+9 SABEF F 3+12 SABCB 6.7+15 SABEFE 6.9+16 SABEFG G 0+15
68
Tepe Tırmanma Algoritması (Hill-Climbing Search – HCS)
Basit bir sezgisel arama metodudur. Derinlik öncelikli arama + sezgisel bulgu Tepe tırmanma algoritması, arama algoritmaları arasındaki en iyi sonucu veren algoritma değildir. Ancak kodlanması ve tasarımının basit oluşundan dolayı sıklıkla kullanılır. Yrd.Doç.Dr.Rembiye KANDEMİR
69
Tepe Tırmanma Algoritması (Hill-Climbing Search – HCS)
Tepe tırmanma algoritması, sisli bir havada bulunulan çevredeki en yüksek doruğu aramaya benzetilir. Doruğa tırmanmak için başlanılan yerden eğimin yukarı olduğu yöne doğru ilerlenir. Yeni konumda etraftaki eğimler yeniden gözden geçirilir ve yine eğimin yukarı olduğu yön seçilip oraya doğru ilerlenir. Bu işlem görüş alanındaki tüm noktaların aşağıda kaldığı âna kadar sürer. Bu anda bir tepenin doruğuna ulaşılmış olur. Fakat ulaşılan tepenin çevredeki en yüksek doruk olup olmadığı bilinemez. Bu yüzden, tepe tırmanma algoritması her zaman en iyi sonucu vermez.
70
Tepe Tırmanma Algoritması (Hill-Climbing Search – HCS)
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
71
Tepe Tırmanma Algoritması (Hill-Climbing Search – HCS)
Temel olarak bir grafikte rastgele seçilen bir nokta için 3 farklı ihtimal bulunmaktadır: Noktanın bir tarafında problem iyileşirken diğer tarafında kötüleşmektedir. Bu durumda iyi tarafa doğru tırmanma algoritması devam eder. Noktanın iki tarafında da problem sonucu kötüleşmektedir. Bu durumda bulunulan nokta problem için en iyi noktalardan (optimum points) birisidir. Elbette bu en iyi sonuç olmayabilir yani bu sonuçtan daha iyi sonuçlar olabilir ancak klasik tepe tırmanma algoritması bu diğer sonuçları bulamaz ve bu noktada kalır. Noktanın iki tarafında da problem iyileşiyordur. Yani tesadüfen bulunulan nokta aslında problem için ulaşılabilecek en kötü noktalardan birisidir. Bu durumda tepe tırmanma algoritması yönlerden birisini seçerek tırmanmaya devam eder. Yrd.Doç.Dr.Rembiye KANDEMİR
72
Tepe Tırmanma Algoritması (Hill-Climbing Search – HCS)
Tepe Tırmanma Algoritması için Riskler : Tepe tırmanma algoritmaları genel olarak yerel bir başarı noktasında (local optimum point) takılmak gibi bir zafiyete sahiptirler. Örneğin aşağıdaki şekilde x ve y noktaları arasında bir düzlük bulunmaktadır. Başlangıç noktası olarak bu aralıktaki herhangi bir noktadan başlanırsa algoritma komşuları aradığında daha iyi veya daha kötü bir sonuç bulamayacağı için hatalı karar verebilir.
73
Tepe Tırmanma Algoritması (Hill-Climbing Search – HCS)
Tepe Tırmanma Algoritması için Riskler : Aramanın başarısı, başlangıç durumuna bağlıdır; bazen yerel maksimumlarda, yamaç ve platolarda takılıp kalabilir. Arama uzayında döngüler varsa tepe tırmanma yöntemi kullanılamaz.
74
Tepe Tırmanma Algoritması (Hill-Climbing Search – HCS)
Tepe tırmanma yöntemi, çözümün tahmin edilen değerini doğru hesaplayan değerlendirme fonksiyonunun verilmiş olduğu sorunlar için uygulanmaktadır. Algoritmada, son durum ve amaç durum yolları arasındaki “mesafeyi” ölçmek için her bir yeni yola değerlendirme fonksiyonu uygulanır. Zaman karmaşıklığı :O(bd) Uzay karmaşıklığı :O(bd) Tam? : değil Optimal? :değil
75
Tepe Tırmanma Algoritması (Hill-Climbing Search – HCS)
Algoritma iterasyon tekniği kullanılır. Arama alanında tek bir noktadan başlar. Her bir iterasyonda mevcut çözüme komşu çözümler arasından bir tanesi seçilir. Eğer seçilen nokta mevcut çözümden daha iyiyse yeni çözüm olarak alınır, değilse başka bir komşu çözüm aranır. Algoritma daha iyi bir çözüm bulunamayınca veya daha önceden belirlenmiş iterasyon sayısına ulaşınca sonlandırılır.
76
Tepe Tırmanma Algoritması (Hill-Climbing Search – HCS)
10.4 A B 8.9 C D 6.9 10.4 Tepe tırmanma sezgisel değerlendirmeli derine arama yöntemidir. Fakat hemen soldan aşağıya doğru ilerlemez. Düğümler genişlendikçe en iyi değerdeki sezgisel değeri seçer. Şekilde düğümlerin yanındaki sayılar son ( o anki) düğümlerden amaca kadar olan düz yolun uzunluğunu gösteriyor. 3.0 E F 6.7 G
77
Tepe Tırmanma Algoritması (Hill-Climbing Search – HCS)
30 10 20 40 1 35 15 2 25 45 3 27 18 Yrd.Doç.Dr.Rembiye KANDEMİR
78
Tepe Tırmanma Algoritması (Hill-Climbing Search – HCS)
Yrd.Doç.Dr.Rembiye KANDEMİR
79
Tepe Tırmanma Algoritması (Hill-Climbing Search – HCS)
Yrd.Doç.Dr.Rembiye KANDEMİR
80
Tepe Tırmanma Algoritması (Hill-Climbing Search – HCS)
Yrd.Doç.Dr.Rembiye KANDEMİR
81
Tepe Tırmanma Algoritması (Hill-Climbing Search – HCS)
Yrd.Doç.Dr.Rembiye KANDEMİR
82
HC Aramaya göre Arad-Sibiu-Fagares-Bucharest Toplam Uzaklık 140+99+211=450
Yrd.Doç.Dr.Rembiye KANDEMİR
83
Tepe Tırmanma Algoritması (Hill-Climbing Search – HCS)
Hill Climbing Açılan düğüm Kuyruk S [22<S>] A [12<A,S> 14<M,S>] I [10<I,A,S> 16<C,A,S> 24<B,A,S> 14<M,S>] J [8<J,I,A,S> 16<C,A,S> 24<B,A,S> 14<M,S>] L [4<L,J,I,A,S> 6<K,J,I,A,S> 16<C,A,S> 24<B,A,S> 14<M,S>] K [6<K,L,J,I,A,S> 14<M,L,J,I,A,S> 6<K,J,I,A,S> 16<C,A,S> 24<B,A,S> 14<M,S>] M [14<M,L,J,I,A,S> 6<K,J,I,A,S> 16<C,A,S> 24<B,A,S> 14<M,S>] G [0<G,M,L,J,I,A,S> 6<K,J,I,A,S> 16<C,A,S> 24<B,A,S> 14<M,S>] hedefe ulaşılıdı!
84
Arama Stratejileri (Search Strategies)
SONUÇ OLARAK Bilgisiz (kör) arama algoritmaları, düğümlerin amaca uzaklığı hakkında bir bilgiye sahip değildirler. Eğer belirli sayıda düğüm varsa, uygun çözüm bulunabilir Bilgili (sezgisel) arama yaklaşımlarında, amaca olan tahmini uzaklık kullanılır. Amaca yakın olan düğümler ilk önce açılır. Çözümün bulunması garanti değildir. Bu yöntemlerin başarılı olmasında doğru değerlendirme fonksiyonunun seçilmesi önemli rol oynar
85
ÖRNEK Yukarıdaki grafikte S ve G arasında bir yol bulmanız gerektiğini varsayalım. Grafiğin her kenarına eklenen sayı, kenarın geçilme maliyetini temsil eder. Her bir düğümdeki sayı, düğümün G hedefine olan uzaklığının tahmini bir tahmini değerini temsil eder. Çözümü Greedy Search A* Search Hill-climbing Algoritmaları ile gerçekleştiriniz.
86
Greedy Search Greedy Search Açılan düğümler: __S_B_E_H_G_ Expanded Queue S [13<S>] B [6<B,S> 9<A,S>] E [2<E,B,S> 4<H,B,S> 9<A,S> 9<A,B,S>] H [4<H,B,S> 9<A,S> 9<A,B,S> 10<F,E,B,S>] G [0<G,H,B,S> 8<C,H,B,S> 9<A,S> 9<A,B,S> 10<F,E,B,S>]
87
A* Search A* Search Açılan düğümler: __S_B_H_A_B_G_ Expanded Queue S [13<S>] B [10<B,S> 12<A,S>] H [11<H,B,S> 12<A,S> 16<E,B,S>] A [12<A,S> 12<G,H,B,S> 16<E,B,S> 19<C,H,B,S>] B [11<B,A,S> 12<G,H,B,S> 13<C,A,S> 16<E,B,S>] G [12<G,H,B,S> 12<H,B,A,S> 13<C,A,S> 16<E,B,S>]
88
Hill-climbing Hill-climbing Açılan düğümler: __S_B_E_F_G_ Expanded Queue S [13<S>] B [6<B,S> 9<A,S>] E [2<E,B,S> 4<H,B,S> 9<A,B,S> 9<A,S>] F [10<F,E,B,S> 4<H,B,S> 9<A,B,S> 9<A,S>] G [0<G,F,E,B,S> 4<H,B,S> 9<A,B,S> 9<A,S>]
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.