Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

1 Ders Notu – 3.2 Bilgisiz (Kör) Arama Yöntemleri YAPAY ZEKA ve UZMAN SİSTEMLER.

Benzer bir sunumlar


... konulu sunumlar: "1 Ders Notu – 3.2 Bilgisiz (Kör) Arama Yöntemleri YAPAY ZEKA ve UZMAN SİSTEMLER."— Sunum transkripti:

1 1 Ders Notu – 3.2 Bilgisiz (Kör) Arama Yöntemleri YAPAY ZEKA ve UZMAN SİSTEMLER

2 2 Hatırla: Arama algoritmalarının uygulamaları Function General-Search(problem, Queuing-Fn) returns a solution, or failure nodes  make-queue(make-node(initial-state[problem])) loop do if nodes is empty then return failure node  Remove-Front(nodes) if Goal-Test[problem] applied to State(node) succeeds then return node nodes  Queuing-Fn(nodes, Expand(node, Operators[problem])) end Queuing-Fn(queue, elements) Kuyruğa elemanlar kümesi ekleyen ve düğüm genişletme sırasını belirleyen kuyruk fonksiyonudur. Farklı kuyruk fonksiyonlar farklı arama algoritmaları üretir.

3 3 Arama stratejilerinin değerlendirilmesi Bir arama stratejisi düğüm genişletme sırasının seçilmesiyle belirlenir. Stratejiler dört kritere göre değerlendirilebilir:  Tamlık (Completeness): Eğer çözüm varsa strateji çözümü garanti ediyor mu?  Zaman Karmaşıklığı (Time complexity): Çözümü bulmak ne kadar zaman alıyor?  Bellek Karmaşıklığı (Space complexity): Aramyı gerçekleştirmek için ne kadar bellek gerekiyor?  Optimallik (Optimality): Birden fazla çözüm olduğu zaman strateji en iyi olanını buluyor mu? (en düşük maliyetli çözüm) Zaman ve bellek karmaşıklığı şu terimler cinsinden ölçülür: b – arama ağazının maksimum dallanma faktörü d – en düşük maliyetli çözümün derinliği m – arama ağacının maksimum derinliği(sonsuz olabilir)

4 4 Bilgisiz (Kör) arama stratejileri Sadece problem formulasyonundaki mevcut bilgiyi kullanır. Bilgisiz arama yöntemlerinde çözüme ulaşmak için hiçbir bilgi verilmez. Aramanın herhangi adımında çözüme ne kadar yakın (veya uzak) olması hakkında veya çözümün buluna bileceği hakkında fikir söylemek mümkün değildir. başlangıç durumu içeren elementi (ağacın kökü) seçmeli listedeki ilk yol amaç durumunda sonlanana dek veya liste boş olana dek aşağıdakileri yapmalı: listeden ilk yolu almalı İlk yolu, onun uç düğümünün tüm ardıllarına doğru genişletmekle yeni yollar oluşturmalı Döngülü tüm yolları gözden atmalı Amaç durumu bulunursa aramayı bitirmeli, eksi halde yeni yolları gözden geçirmeli Tüm yollar gözden geçirildikten sonra amaç durumu bulunamazsa aramayı başarısız kabul etmeli Bilgisiz arama

5 5 Bilgisiz (Kör) arama stratejileri 1.Genişlik-önce (Breadth-first) 2.Düzenli-maliyet (Uniform-cost) 3.Derinlik-önce (Depth-first) 4.Derinlik-sınırlı (Depth-limited) 5.Tekrarlanan derinleştirme (Iterative deepening) 6.İki Yönlü (Bi-directional)

6 6 1. Genişlik-önce arama En sığ (üst seviye, yüzey) genişletilmemiş düğümü aç Uygulama: Queuing FN (FIFO yapısı) = Ardılları kuyruğun sonuna yerleştir Enine aramada ağaç soldan sağa, yukarıdan aşağıya doğru taranıyor. Başka değişle, bir seviyedeki tüm düğümler genişlendikten (tarandıktan) sonra bir sonraki aşağı seviyeye geçilir. CG SC S SR W CS L A SG FA R CS L SG AE R FA arama ağacı SG E başarı

7 7 Algoritma 1.Başlangıç düğümlerin bir listesi olan N’yi yerleştir 2.Eğer N boş ise o zaman çık ve hata mesajı ver 3.N’de ilk düğüm olarak n ‘yi yerleştir ve N’den n’yi sil 4.Eğer n amaç düğümü ise o zaman çık ve başarı mesajı geri gönder 5.Aksi durumda N’nin sonuna n’ nin coçuklarını ekle ve 2. adıma geri dön.

8 8 Örnek: Arad’dan Bucharest’e seyahat

9 9 Genişlik-önce arama

10 10 Genişlik-önce arama

11 11 Genişlik-önce arama

12 12 Genişlik-önce Arama (Problem,EnqueueAtEnd) G.Düğüm OPEN listCLOSED list { S }{} S { A B C }{S} A { B C D E G } {S A} B { C D E G G' }{S A B} C { D E G G' G" } {S A B C} D { E G G' G" } {S A B C D} E { G G' G" } {S A B C D E} G { G' G" }{S A B C D E} Bulunan çözüm yolu S A G <-- bu G’ nin maliyeti 10 Genişletilen düğüm sayısı(hedef düğüm dahil) = 7 S CBA D G E

13 13 Genişlik-önce aramanın özellikleri Tamlık: Zaman karmaşıklığı: Bellek karmaşıklığı: Optimallik : Stratejiler dört kritere göre değerlendirilebilir:  Tamlık (Completeness): Eğer çözüm varsa strateji çözümü garanti ediyor mu?  Zaman Karmaşıklığı (Time complexity): Çözümü bulmak ne kadar zaman alıyor?  Bellek Karmaşıklığı (Space complexity): Aramyı gerçekleştirmek için ne kadar bellek gerekiyor?  Optimallik (Optimality): Birden fazla çözüm olduğu zaman strateji en iyi olanını buluyor mu? (en düşük maliyetli çözüm) Zaman ve bellek karmaşıklığı şu terimler cinsinden ölçülür: b – arama ağazının maksimum dallanma faktörü d – en düşük maliyetli çözümün derinliği m – arama ağacının maksimum derinliği(sonsuz olabilir)

14 14 Genişlik-önce aramanın özellikleri Completeness: b sonluysa evet Time complexity:1+b+b 2 +…+b d = O(b d ), mesela, d‘ de eksponansiyel Space complexity:O(b d ), hafızada her düğümü tutar Optimality:Evet (her adım maliyeti = 1 varsayılarak) Bellek sorunu önemlidir. Neden tüm düğümleri hafızada tutalım? Çok kolayca sonsuz döngülere götürecek, zaten gezilmiş bir düğümü tekrar gezmekten kaçınmak için.

15 15 Genişlik-önce aramanın zaman karmaşıklığı Eğer hedef düğüm ağacın d derinliğinde bulunursa bu derinliğe kadarki tüm düğümler oluşturulur. m G b d Böylece: O(b d )

16 16 QUEUE tüm ve düğümleri içerir. (Böylece: 4). Genel olarak: b d Genişlik-önce aramanın zaman karmaşıklığı Kuyruktaki(QUEUE) en büyük düğüm sayısına hedef düğümün d seviyesinde ulaşılır. G m b d G

17 17 d derinlikli tam arama ağacı; her bir yaprak olmayan düğümün b oğlu var: Toplam: 1 + b + b^ b^d s 1 b b^2 b^d d 2 1 –Örnek: 12 derinlikli tam arama ağacında 0,…,11 derinlikte her düğümün 10 oğlu var. 12.ci derinlikteki düğümlerin oğulları yoktur. Böylelikle, ağaçta ^12 = (10^13 - 1) düğüm var

18 18 2. Düzenli-maliyetli arama g(n) = başlangıç düğümden açık n düğümüne yolun değeri Algoritma: her zaman en küçük g(n) değerli düğümü seçmeli; tüm yeni üretilmiş düğümleri listeye kaydetmeli Listedeki düğümleri g(n) ‘nin artması ardışıklığı ile sıralamalı Açılmak için seçilmiş düğüm amaç ise algoritmayı sonlandırmalı Algoritmalarla bağlı kaynaklarda“Dijkstra Algoritması”, yöneylem araştırmasında “Dal ve Sınır Algoritması” denir

19 19 Düzenli-maliyetli arama En düşük maliyetli açılmamış düğümü genişlet Uygulama: QueueingFN=artan yol maliyeti sırasına göre ekle Böylece kuyruk fonksiyonu artan yol maliyetine göre sıralanmış düğümler listesini tutar, ve ilk açılmamış düğümü genişletiriz (bu yüzden en küçük yol maliyetli) Maliyet fonksiyonu g(n) ve derinlik Derinlik(n) olarak tanımlanırsa g(n)=Derinlik(n) için Düzenli maliyetli arama genişliğine aramaya eşit olur Genişlik önce stratejisinin bir arıtması

20 20 Algoritma Başlangıç listesin N ‘ yi oluştur (kök düğüm) Repeat until (Liste boş ise) veya (ilk düğüm n amaç durum ise): Listenin başındaki ilk düğümü sil Bu düğümü genişlet (çocuk düğümlerini bul) Döngüye takılmamak için daha önce değerlendirilen çocuk düğümleri değerlendirilmeye alma Çocukları Listeye ekle (her defasında azalan yol maliyetine göre) Eğer n Amaç düğüm ise başarı, değilse hata değeri geri döndür

21 21 Adımı km ile maliyetli Romanya Bucharest ’e kadar olan doğrusal uzaklık

22 22 A B Z O S F C P R T L M D

23 23 S 140 O 146 L 229 A T 118 S 140 O 146 Z 75 T 118 S 140 O 146 R 220 L 229 F 239 O 291 R 220 L 229 F 239 O 291 S 297 A B Z O S F C P R T L M D F 239 O 291 S 297 P 317 D 340 C 366 M 299 … L 229 F 239 O 291 S 297 P 317 D 340 C 366

24 24 Düzenli-maliyetli Arama GENERAL-SEARCH(problem, ENQUEUE-BY-PATH-COST) G.Düğüm D.listesiCLOSED list {S(0)} S {A(1) B(5) C(8)} A {D(4) B(5) C(8) E(8) G(10)} D {B(5) C(8) E(8) G(10)} B {C(8) E(8) G’(9) G(10)} C {E(8) G’(9) G(10) G”(13)} E {G’(9) G(10) G”(13) } G’ {G(10) G”(13) } Bulunan çözüm yol S B G <-- bu G nin maliyeti 9 dur 10 değil Genişletilen düğüm sayısı(hedef düğüm dahil) = 7 S CB A D E G G’ G” 8 5 4

25 25 Düzenli-maliyetli aramanın özellikleri Completeness: Adım maliyeti   >0 ise evet Time complexity: g’ li # düğüm  optimal çözüm maliyeti,  O(b d ) Space complexity: g’ li # düğüm  optimal çözüm maliyeti,  O(b d ) Optimality:yol maliyeti düşmediği müddetçe evet g(n) n düğümün yol maliyetidir Hatırla: b = dallanma faktörü d = en düşük maliyetli çözümün derinliği

26 26 Düzenli-maliyetli aramanın uygulaması Kuyruğu (Queue) kök düğümle Initialize et (start durumundan inşa et) Repeat until (Queue boş) or (ilk düğüm Hedef durum): İlk düğümü kuyruğun önünden kaldır Düğümü genişlet (çocuklarını bul) Döngüleri önlemek için daha önce dikkate alınan çocukları reddet Kalan çocukları kuyruğa ekle, tüm kuyruğu artan yol maliyetine göre tutacak şekilde If Hedefe ulaşıldı, return başarı, otherwise hata

27 27 Dikkat! Düzenli maliyetli arama kuyrukta herhangi bir düğüm hedef düğüm olduğunda sonlandırılırsa optimal olmaz. G D 5 10 E 5 15 F 5 20 S A C B maliyetli bir yol varken Düzenli maliyetli arama 102 maliyetli yolu dönderir (herhangi bir hedef düğüm çözüm olarak alınırsa)

28 28 Not: Döngü Tespiti Aramanın başarısız olacağını ya da tam optimal olmayacağını gördük eğer: - döngü tespiti yok: o zaman algoritma sonsuz döngülere girer (A -> B -> A -> B -> …) - bizim daha önce gezdiğimiz bir düğümü içeren bir durumu kuyruğa almama : tam optimal çözüm olmaz - basitçe atalara geri dönmekten kaçınma: ümit veren olarak görünür, fakat bunun çalıştığını ispatlamadık Çözüm? Bir düğümü eğer durumu onun herhangi bir atasının durumuyla eşleşiyorsa kuyruğa atma (yol maliyeti>0 varsayılıyor). Aslında, eğer yol maliyeti > 0 ise bu düğümle tekrar ilgilenmek bize ilk seferkinden daha fazla maliyet getirecektir Yeterli mi??

29 29 Not: Düzenli Maliyetli Aramada Kuyruklama Amacımız en düşük maliyetli çözümü bulmak ise bir önceki örnekte G durumuyla üç düğümü kuyruklamak gereksizdi(ama yanlış değil) : Farklı yolları temsil etmelerine rağmen emin olarak biliyoruz ki en düşük maliyetli yol(örnekte 9) diğerlerinden daha düşük toplam yol maliyeti sağlayacaktır. Bu yüzden kuyruk fonksiyonunu şu şekilde arıtabiliriz : - düğümü kuyrukla(queue-up node) 1) durumu herhangi bir atasıyla uyuşmuyorsa ve2) kuyrukta aynı durum ile herhangi genişletilmeyen düğümün yol maliyetinden daha düşük bir maliyeti varsa (ve bu durumda eskisini yeni düğümle(aynı durum) değiş !!!

30 30 Örnek G D 5 E 5 F 5 S A C 1 5 B 1 1 # Durum Derinlik Maliyet Ata 1S00-

31 31 Örnek G D 5 E 5 F 5 S A C 1 5 B 1 1 # Durum Derinlik Maliyet Ata 1S00- 2A111 3C151 Açık kuyruğu sıralı tutacak şekilde genişletilmiş düğümleri ekle Siyah = açık kuyruk Gri= kapalı kuyruk

32 32 Örnek G D 5 E 5 F 5 S A C 1 5 B 1 1 # Durum Derinlik Maliyet Ata 1S00- 2A111 4B222 3C151 Düğüm 2’nin 2 atası var biri B durumuyla diğeri S durumuyla. #1 S durumuyla kapalı fakat onun yol maliyeti 0 A’dan S’e açılmakla elde edilen maliyetten daha küçüktür. Bu yüzden S durumuna sahip olan düğüm 2’nin atasını kuyruklamayız

33 33 Örnek G D 5 E 5 F 5 S A C 1 5 B 1 1 # Durum Derinlik Maliyet Ata 1S00- 2A111 4B222 5C334 6G31024 Düğüm 4 C durumlu ataya sahiptir ve aynı zamanda C durumuna sahip açık düğüm #3 ten daha az maliyetlidir bu yüzden en kısa yolu yansıtmak için açığı güncelleriz

34 34 Örnek G D 5 E 5 F 5 S A C 1 5 B 1 1 # Durum Derinlik Maliyet Ata 1S00- 2A111 4B222 5C334 7D485 6G31024

35 35 Örnek G D 5 E 5 F 5 S A C 1 5 B 1 1 # Durum Derinlik Maliyet Ata 1S00- 2A111 4B222 5C334 7D485 8E5137 6G31024

36 36 Örnek G D 5 E 5 F 5 S A C 1 5 B 1 1 # Durum Derinlik Maliyet Ata 1S00- 2A111 4B222 5C334 7D485 8E5137 9F6188 6G31024

37 37 Örnek G D 5 E 5 F 5 S A C 1 5 B 1 1 # Durum Derinlik Maliyet Ata 1S00- 2A111 4B222 5C334 7D485 8E5137 9F G7239 6G31024

38 38 Örnek G D 5 E 5 F 5 S A C 1 5 B 1 1 # Durum Derinlik Maliyet Ata 1S00- 2A111 4B222 5C334 7D485 8E5137 9F G7239 6G31024 Hedefe ulaşıldı

39 39 Tekrarlanan durumların aradan kaldırılması Amaç:Durum uzayının boyutunu küçültmekle arama etkisinin yükseltilmesi 1. Bir önce bulunduğun duruma geri dönmemeli 2. Döngü yapacak yolları oluşturmamalı 3. Daha önce oluşturulmuş olan bir durumu yeniden oluşturmamalı

40 40 Daha fazla örnek… Demolar:

41 41 3- Derinlik-önce arama Derinlik öncelikli aramada daima ağacın en derin düğümlerinden biri açılır. Yani arama ağacı yukarıdan aşağıya en sol düğümden başlayarak yaprak düğüme ulaşılana dek geliştiriliyor. Eğer amaçlanmayan düğüme erişilmiş ise veya açılacak düğüm kalmamış ise açma işlemine daha sığ (en sol ve genişletilmemiş) seviyelerden devam edilir. Uygulama: QueueingFN=Ardılları kuyruğun önünde ekle (LIFO yapısı, yani ardıllar öne yazılacak) CG SC S SR W CS L A SG FA R CS L SG AE R FA Arama ağacı SG E

42 42 Algoritma 1.Başlangıç düğümlerin bir listesi olan N’yi yerleştir 2.Eğer N boş ise o zaman çık ve başarısızlık mesajı ver 3.N’de ilk düğüm olan n ‘yi yerleştir ve N’den n’yi sil 4.Eğer n amaç düğümü ise o zaman çık ve başarı mesajı ver 5.Eğer n=max derinlik ise o zaman 2. adıma git 6.Aksi durumda N’nin önüne n’nin coçuklarını ekle ve 2. adıma geri dön

43 43 Seviye 0 Seviye 1 Seviye 2 Seviye 3

44 44 Adımı km ile maliyetli Romanya

45 45 Derinlik-önce arama

46 46 Derinlik-önce arama

47 47 Derinlik-önce arama

48 48 Derinlik-önce arama return GENERAL-SEARCH(problem, ENQUEUE-AT-FRONT) G.Düğüm OPEN listCLOSED list { S } S { A B C } A { D E G B C} D { E G B C } E { G B C } G { B C } Bulunan çözüm yolu S A G <-- bu G nin maliyeti 10 Genişletilen düğüm sayısı (hedef düğüm dahil) = 5 S CB A D E G

49 49 Derinlik önce arama Derinine arama işlemleri ardışıklığı SR L A R FA SG S SC CGCG LCSW W SGECS’CSW SGECS’CSW SGECS’CSW ECS’CSW Başl.kuyruk Kuyruk 1 Kuyruk 2 Kuyruk 3 Kuyruk 4 Kuyruk 5 Kuyruk 6 Kuyruk 7 Kuyruk 8 CG-SC genişlenmesi SC-S genişlenmesi S-SR, L, CS, W genişlenmesi SR genişlenemez L-A, SG, E, CS genişlenmesi A-R genişlenmesi R-FA genişlenmesi FA genişlenemez Başarı CG SC S SR W CS L A SG FA R CS L SG AE R FA Arama ağacı SG E CG SC S SR L A R FA SG

50 50 Gen. düğüm liste { S } S { A B C } A { D E G B C} D { E G B C } E { G B C } G { B C } Çözüm yolu S A G <-- G’nin değeri= 10 Genişlenen düğümler sayısı (amaç düğümle birlikte) = 5 S CB A D E G Derinlik önce arama

51 51 Derinlik-önce aramanın özellikleri Completeness: Hayır, sonsuz durum uzayında (sonsuz derinlik,döngülü uzaylar ) başarısız (Evet, sonlu durum uzayı) Time complexity:O(b m ) m, d’den çok büyük ise zaman oldukça büyük olacak; m-yol uzunluğu çözümler çok ise, enine aramadan daha hızlı olabilir. Space complexity:O(bm) Optimality:Hayır Hatırla: b = dallanma faktörü m = arama ağacının max. derinliği

52 52 Derinlik-önce aramanın zaman karmaşıklığı: detaylar En kötü durumda: hedef(sadece) dalın en sağında olabilir, G m b Zaman karmaşıklığı == b m + b m-1 + … + 1 = b m+1 -1 Böylece: O(b m ) b - 1

53 53 Derinlik önce aramanın bellek karmaşıklığı Kuyrukta( QUEUE) en fazla düğüme altta en solda ulaşılır. Örnek: m = 3, b = 3 :... QUEUE, tüm düğümleri içerir. Böylece: 7. Genelde: ((b-1) * m) + 1 Mertebe: O(m*b)

54 54 Tekrar eden durumlardan kaçınma Etkililik : geldiğimiz duruma geri dönme, mesela genişletme fonksiyonu düğümün ebeveyniyle(parent) aynı durumda olan mümkün ardılları atlayacaktır. devirli(cycle) yollar oluşturma, mesela genişletme fonksiyonu düğümün herhangi atası(ancestor) ile aynı durumda olan ardılları atlayacaktır. hafızada üretilen her düğümün izini saklayarak bu duruma en son ulaştığımızdan daha daha düşük maliyete sahip değilse daha önce üretilen bir durumu tekrar üretme.

55 55 4- Derinlik-sınırlı Arama Derinliğine aramada karşılaşılan problemi gidermek için yolun maksimum derinliği belirtilerek derinlik sınırlı arama yapılabilir. Bu arama yönteminde, derinine aramada olası sonsuz (ölü döngü) arama işlemini önlemek için aramanın belirli bir seviyeye kadar yapılması düşünülmektedir. Örneğin 20 şehrin bulunduğu haritada bir şehirden diğerine gitmek için yapılacak bir aramada maksimum derinlik 19 olarak verilebilir. Yeni işlem formu "eğer A'da iseniz ve seyahat ettiğiniz şehir sayısı 19'dan küçük ise yol uzunluğu bir fazla olan B şehrinde yeni bir durum oluştur" şeklinde ifade edilebilir Derinlik limitli bir derinlik-önce aramadır / Uygulama: l derinliğindeki düğümlerin ardılları yoktur. Complete: kesim uygun şekilde seçilmişse o zaman bir çözümü garanti eder. Eğer derinlik az seçilirse tamlık da tehlikeye girer. Optimal: en düşük maliyetli çözümü garanti etmez Derinliğine aramada olduğu gibi derinlik sınırlamalı aramada da zaman karmaşıklığı O(b l ), bellek karmaşıklığı O(bl)'dir. Burada l derinlik sınırıdır

56 56 Eğer gereken çözüm L+1 derinlikte ise, o hiç zaman bulunamayacak. (L-sınır derinliği) Karmaşıklık bakımından yöntem sıradan derinine aramaya benzer (azami derinliği ifade eden derinlik sınırını göz önüne almakla) Sınırlı derinine arama yönteminde iyi arama sınırını bulmak çoğu zaman kolay olmuyor. Arama uzayı büyük ve çözüm derinliği belli olmayan durumlarda yinelemeli derinine arama tercih edilen yöntemdir Başarıya ulaşana dek derinlik sınırı her defa 1 arttırılıyor Zaman karmaşıklığıUzay karmaşıklığıTam?Optimal? O(b l ) Evet(çözüm <=l derinlikte ise) hayır Derinlik-sınırlı Arama

57 57 limit = 0 limit = 1 limit = 2 limit = 3

58 58 Örnek: Romanya Ziyareti Haritada 20 şehir var. Maximum derinlik sınırı l = 19 verilebilir

59 59 5- Tekrarlanan derinleştirme araması Satranç turnuvalarında oyunlar kesin zaman sınırı içinde oynanıyor. Satranç programı her hamle için ne kadar zaman kullanmalı olduğu kararını vermelidir. Pek çok satranç programları arama işlemini yinelemeli derinine arama ile gerçekleştiriyorlar. Başka değişle, program önce 2 seviyede, sonra 3, sonra 4… seviyede arama yapıyor. Bu, arama için ayrılan süre dolana dek devam ediyor. Bundan sonra program, bulunan hamleler içinden en iyisini çözüm gibi kabul ediyor

60 60 Tekrarlanan derinleştirme araması l =0

61 61 Tekrarlanan derinleştirme araması l =1

62 62 Tekrarlanan derinleştirme araması l =2

63 63 Tekrarlanan derinleştirme araması l =3

64 64 Tekrarlanan derinleştirme araması Function Iterative-deepening-Search(problem) returns bir çözüm ya da hata for depth = 0 to  do result  Depth-Limited-Search(problem, depth) if result succeeds then return result end return hata Genişlik-önce ve derinlik-önce arama stratejilerinin avantajlarını birleştirir. Genişliğine arama gibi optimal ve tamdır, derinliğine arama gibi az bellek gerektirir Completeness: Evet, Time complexity: (d+1)b0 + d b1 + (d-1)b2 + … + bd = O(b d ) Space complexity:O(bd) Optimality:Evet, eğer adım maliyeti = 1

65 65 Tekrarlanan derinleştirme karmaşıklığı İteratif derinleşmede köke yakın durumlar çok kez açılırlar. Bu kayıp olarak görülse de derinlik sınırlı arama ile fazla farklı değildir. Örneğin b=10 ve d=5 için derinlik sınırlı arama açma sayısı 1+b + b 2 + b b d = = iken derinliğine aramada alt seviyedekiler bir kez, bir üsttekiler iki kez vb kök d+1 kez açılacak ve toplam açılma sayısı (d+1)1+(d)b+(d-1)b b d-1 +1b d = = İteratif derinleşme algoritması genişliğine veya derinliğine aramadan yalnız %11 daha fazla düğüm açar. Çünkü düğümlerin çoğu yaprak seviyesindedir(alt) Bu nedenle iteratif derinleşmenin zaman karmaşıklığı O(b d ), bellek karmaşıklığı ise O(bn)'dir. Arama uzayı büyük olduğunda ve çözümün derinliği bilinmediği zaman iteratif derinleşme algoritması kullanılır.

66 66 6- İki yönlü arama İki yönlü aramanın aramada, arama işlemine başlangıç durumu ve amaç durumundan aynı anda başlanır. İki arama ortada karşılaştığı zaman işlem biter. Tek bir başlangıç ve amaç durumu oldukta ve hareketler değiştirile bilir oldukta iyidir Çözüme daha hızlı ulaşmak mümkün ola bilir Problem: amaçtan geriye doğru aramak?? Amaçtan geriye doğru aramak ne demektir? Amaç düğümden başlayarak önceki düğümleri (predecessor) sırayla üretmektir. İşlemlerin tersi mümkün olduğunda, önceki düğümler kümesi ve sonraki düğümler (successor) kümesi aynı olacaktır. Bazı problemlerde öncekileri bulmak zor olabilir. Birden fazla amaç durum var ise ne yapılabilir? Amaç durum yerine amaç durum kümesine aynı işlemler uygulanabilir. Amaç durumların tespiti güç olabilir. Örneğin satrançta şahmat amacını üretecek durumlar nelerdir? Yeni oluşturulacak bir düğümün arama ağacının diğer yanında yer alıp almadığını kontrol etmenin etkin bir yolu olmalıdır. Her iki yarıda ne çeşit aramanın yapılacağına karar vermek gerekir. Şekilde gösterilen iki tarafta da genişliğine arama en iyi seçim midir?

67 67 b=10, d=6 alınırsa her bir yön 3 derinliğinde olur ve oluşturulan düğüm sayısı 2,222 dir. Derinlik öncelikli aramada ise bu sayı 1,111,111 adet düğümdür. Bidirectional search’ te n adet ardıl tanımladığı gibi n adette öncül tanımlanır. Bazı problemler için, öncülleri hesaplamak oldukça zordur.

68 68 Algoritma 1. Sadece kökü içeren yolu LİSTE1’ e ata ; Sadece amacı içeren yolu LİSTE2’ ye ata ; Sadece amacı içeren yolu LİSTE2’ ye ata ; 2. WHILE (her iki LİSTE boş değilse) AND (LİSTE1 ve LİSTE2 aynı durumu paylaşmaz ise) AND (LİSTE1 ve LİSTE2 aynı durumu paylaşmaz ise) DO DO - Her iki listenin ilk yollarını sil; - Her iki listenin ilk yollarını sil; - Onların yeni yollarını oluştur (tüm çocuklarına giden) - Onların yeni yollarını oluştur (tüm çocuklarına giden) - Çıkmaz döngü oluşturan yeni yolları reddet; - Çıkmaz döngü oluşturan yeni yolları reddet; - Yeni yolları listenin sonuna ekle; - Yeni yolları listenin sonuna ekle; 3. IF LİSTE1 ve LİSTE2 bir durum paylaşırsa THEN başarı durumu; THEN başarı durumu; ELSE başarısız durum; ELSE başarısız durum;

69 69 Bilgisiz arama stratejilerini karşılaştırma KriterBreadth-UniformDepth-Depth-Iterative Bidirectional firstcostfirstlimiteddeepening (uygulanabilirse) Timeb^db^db^mb^lb^d b^(d/2) Spaceb^db^dbmblbd b^(d/2) Optimal?EvetEvetHayırHayırEvet Evet Complete? EvetEvetHayırEvet l  d Evet Evet b – arama ağacının max dallanma faktörü d – en düşük maliyetli çözümün derinliği m – durum uzayının max derinliği (sonsuz olabilir) l – derinlik sınırı

70 70 Tekrarlayan durumlardan sakınma

71 71 Fazlalık Arama (Tekrarlı Arama) Başla  Arama ağacı, hareketlerin tüm olası durumlarını araştırır. Eğer farklı hareketler aynı durum sonucunu veriyorsa buna fazlalık arama denir. Durum/Geçiş Uzayı Arama Ağıcı

72 72 Fazlalık Arama Başla  Arama ağacı, hareketlerin tüm olası durumlarını araştırır. Eğer farklı hareketler aynı durum sonucunu veriyorsa buna fazlalık arama denir. Durum/Geçiş Uzayı Arama Ağıcı Aynı Durum!

73 73 Fazlalık Arama Başla  Arama ağacı, hareketlerin tüm olası durumlarını araştırır. Eğer farklı hareketler aynı durum sonucunu veriyorsa buna fazlalık arama denir. Durum/Geçiş Uzayı 3 arama zamanında aynı alt ağaç!

74 74 Fazlalık Arama  Fazlalık arama, aramayı gereğinden fazla üssel olarak büyütebilir.

75 75 Fazlalık Arama  Fazlalık arama, aramayı gereğinden fazla üssel olarak büyütebilir. Durumlar/Hareketler ~ Herbir durum için 4 mümkün hareket  Arama ağıcı

76 76 Fazlalık Arama  Fazlalık arama, aramayı gereğinden fazla üssel olarak büyütebilir. Durumlar/Hareketler ~ Herbir durum için 4 mümkün hareket  Arama ağıcı Fakat bütün arama boyunca durumlar

77 77 Çözüm: Ağaç Arama Algoritması Bütün ziyaret edilmiş düğümleri bellekte tut Yeni düğüm, önceden görünmüş durumlara benziyorsa bu düğümü atama yapma. Fazlalık Arama Ard arda gelen tekrarlı düğüm ve hareketler budanmış

78 78 Özet Yapay Zekada kullanılan arama teknikleri, bizi verilen başlangıç durumdan amaç durumuna (durumlarına) doğru götüren adımlar ardışıklığının bulunmasına dayanmaktadır. Bilgisayar algoritmaları kullanılarak dikkatlice incelenebilecek bir durum uzayını tanımlamak için Problem formulasyonu genellikle gerçek dünya detaylarını soyutlamaya ihtiyaç duyar. Bir kere problem soyut formda formüle edildikten sonra karmaşıklık analizi bize problemi çözmek için en yii algoritmayı seçmemize yardım eder. Çeşitli bilgisiz arama stratejileri daha sonraki aşamada açılacak düğümü seçmede farklılık gösterir. Tekrarlanan derinleştirme arama sadece lineer uzay kullanır ve diğer bilgisiz arama stratejilerinden daha az zaman gerektirir.

79 79 Özet En kısa yolu bulmak istiyorsanız en iyisi enine arama yöntemini kullanmaktır Daha az bellek alanı kullanmak gerekiyorsa derinine arama kullanmak daha etkilidir Sabit Maliyet araması: Hareketlerin değerleri farklıdır En az değerli çözüm gerekiyor Yalnız sabit maliyet aramasında yol değeri dikkate alınıyor Çözümü daha çabuk bulmak gerekiyorsa o zaman daha karmaşık algoritmalar kullanılmalıdır ! Çözüm durumlarına götüren pek çok yol varsa derinine arama hızlıdır, fakat yollar çok uzundur. Hedefe götüren yalnız bir kısa yol varsa enine arama daha hızlıdır. Fakat arama uzayı geniş ve derindir.

80 80 Arama algoritmaları için demolar 876/searchapplet/index.htmlhttp://www.cse.unl.edu/~choueiry/S /searchapplet/index.html

81 81 SORULAR?!?!?!

82 82 ÖDEV-1 1) Dallanma faktörü b, derinliği d olan sonlu düzenli bir arama ağacımız olsun. Tek çözüm düğümü en son seviyenin ortasındadır. a) Bilgisiz derinlik-önce arama ile genişletilen düğüm sayısını hesaplayınız. b) Bilgisiz genişlik-önce arama ile genişletilen düğüm sayısını hesaplayınız. c) Bilgisiz tekrarlanan derinleştirmeli arama ile genişletilen düğüm sayısını hesaplayınız.

83 83 ÖDEV-2 2) Üç misyoner ve üç yamyam nehrin sol tarafından sağa geçmek istemektedir. Yalnız iki kişiyi taşıyabilecek bir bot vardır. Nehir yüzülerek geçilememektedir, bot en az bir kişi tarafından karşı kıyıya götürülebilmektedir. Nehrin her iki kıyısında yamyamların sayısı misyonerleri geçerlerse misyonerlerin yenilme tehlikesi vardır. Problem misyonerlerin yenilmeden herkesin karşı kıyıya geçmesidir Her durumu üç basamaklı sayıyla temsil etmelisiniz (IJK). I, sol taraftaki misyoner sayısı, J sol taraftaki yamyam sayısı ve K da soldaki bot sayısıdır. Bu temsille I ve J 0-3 arasında K da sadece 0-1 olabilir. 331 başlangıç durumu, 000 hedef durumdur. a)Geçersiz üç durum örneği veriniz. b)Bu problemdeki tüm geçerli hareketler tersine çevrilebilir mi? c)Bu problem için tam durum uzayını çiziniz. Çizgede bir durum bir kez bulunmalıdır. Geçersiz durumlar çizilmeyecektir (nehrin herhangi bir tarafında yamyamların misyonerlerden fazla olduğu durum).


"1 Ders Notu – 3.2 Bilgisiz (Kör) Arama Yöntemleri YAPAY ZEKA ve UZMAN SİSTEMLER." indir ppt

Benzer bir sunumlar


Google Reklamları