1 / 54

Arama ile sorun çözme

Arama ile sorun çözme. Ders 3. Konular. Sorun çözen vekil Sorun türleri Sorunun ifade edilmesi Sorun örnekleri Temel arama algoritmaları. Arama Türleri. Tüm arama yöntemlerinde başlıca düşünce, kısmı çözüm ardışıklıkları kümesini bulmak ve genişletmektir. Bilgisiz Arama (Körüne arama)

herne
Télécharger la présentation

Arama ile sorun çözme

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Arama ile sorun çözme Ders 3

  2. Konular • Sorun çözen vekil • Sorun türleri • Sorunun ifade edilmesi • Sorun örnekleri • Temel arama algoritmaları

  3. Arama Türleri • Tüm arama yöntemlerinde başlıca düşünce, kısmı çözüm ardışıklıkları kümesini bulmak ve genişletmektir • Bilgisiz Arama (Körüne arama) • Enine arama • Derinine arama • Özyinelemeli derinine arama • Bilgili Arama Stratejileri • Dağa Tırmanma • En iyisini arama • Hırslı arama • Işın arama • Algorithm A*

  4. Bilgisiz veya KÖRÜNE ARAMA-Blind search

  5. Bilgisiz (kör) arama yöntemleri • Bilgisiz arama yöntemlerinde yalnız sorunun tanımında bulunan bilgiler kullanıla bilir • Enine arama-Breadth-first search • Derinine arama-Depth-first search • Sınırlı derinine arama-Depth-limited search • Özyinilemeli derinine arama-Iterative deepening search

  6. Kör arama • 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 Kör Arama • Kör arama yöntemlerinde çözüme ulaşmak için hiçbir bilgi verilmez. Aramanın her hangi 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.

  7. Durum Uzayı CG 3 A CS SC E R L SG SR W FA S CG 4 3 3 7 3 1 2 2 4 4 3 7 Yol haritası CS 3243 - Blind Search

  8. arama ağacı A SG CG SC S W L FA CS SG R CS L SG A E R FA E SR SG başarı Enine arama • 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.

  9. Enine arama • En yüzeyde (en üst seviye) olan genişlenmemiş düğümü genişletmeli • FIFO yapısı: yeni ardıllar sona eklenecek

  10. Enine arama • En yüzeyde (en üst seviye) olan genişlenmemiş düğümü genişletmeli • FIFO yapısı: yeni ardıllar sona eklenecek

  11. Enine arama • En yüzeyde (en üst seviye) olan genişlenmemiş düğümü genişletmeli • FIFO yapısı: yeni ardıllar sona eklenecek

  12. Enine arama • En yüzeyde (en üst seviye) olan genişlenmemiş düğümü genişletmeli • FIFO yapısı: yeni ardıllar sona eklenecek

  13. Enine aramanın özellikleri • Tam?evet (bsonlu ise) • Zaman?1+b+b2+b3+… +bd O(bd) • Mekan?O(bd) (her bir düğüm bellekte tutuluyor) • Optimal?Evet (eğer her adım için değer = 1 ise) • Mekan sorunu çok önemlidir

  14. Enine Arama Gen. düğüm { S } S { A B C } A { B C D E G } B { C D E G G' } C { D E G G' G" } D { E G G' G" } E { G G' G" } G { G' G" } Çözüm yolu- S A G <-- G’nin değeri-10 Genişlenen düğümler sayısı (amaç düğümle birlikte) = 7

  15. 1 1 b 2 b^2 b^d Enine Arama-örnek s • d derinlikli tam arama ağacı; her bir yaprak olmayan düğümün b oğlu var: • Toplam: 1 + b + b^2 + ... + b^d d • Ö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 1 + 10 + 100 + 1000 + ... + 10^12 = (10^13 - 1) düğüm var

  16. Arama ağacı A SG CG SC S W L FA CS SG R CS L SG A E R FA E SR SG Derine Arama • Derine aramada arama ağacı yukarıdan aşağıya en sol düğümden başlayarak yaprak düğüme ulaşılana dek geliştiriliyor. • Eğer bir yolda çözüm bulunamazsa, arama sonraki en sol ve genişlenmemiş düğümle devam ettirilir. başarı

  17. Arama ağacı A SG CG SC S W L FA CS SG R CS L SG A E R FA E SR SG Derinine Arama • Derinine aramada arama ağacı yukarıdan aşağıya en sol düğümden başlayarak yaprak düğüme ulaşılana dek geliştiriliyor. • Eğer bir yolda çözüm bulunamazsa, arama sonraki sol ve genişlenmemiş düğümle devam ettirilir. başarı

  18. CG Arama ağacı SC S Başl.kuyruk CG-SC genişlenmesi SR L CS W Kuyruk 1 SC-S genişlenmesi L CS W Kuyruk 2 SR R L SG FA CS A SC CG FA CS SG R L SG E E SG S W A S-SR, L, CS, W genişlenmesi Kuyruk 3 SR genişlenemez A SG E CS’ CS W L-A, SG, E, CS genişlenmesi Kuyruk 4 R SG E CS’ CS W A-R genişlenmesi Kuyruk 5 R-FA genişlenmesi Kuyruk 6 FA SG E CS’ CS W FA genişlenemez Kuyruk 7 SG E CS’ CS W Başarı Kuyruk 8 Derinine arama • Derinine arama işlemleri ardışıklığı CG SCS SR L A R FA SG

  19. Derinine arama • En derindeki genişlenmemiş düğümü genişletmeli • LIFO yapısı, yani ardıllar öne yazılacak

  20. Derinine arama • En derindeki genişlenmemiş düğümü genişletmeli • LIFO yapısı: ardıllar öne yazılacak

  21. Derinine arama • En derindeki genişlenmemiş düğümü genişletmeli • LIFO yapısı, yani ardıllar öne yazılacak

  22. Derinine arama • En derindeki genişlenmemiş düğümü genişletmeli • LIFO yapısı, yani ardıllar öne yazılacak

  23. Derinine arama • En derindeki genişlenmemiş düğümü genişletmeli • LIFO yapısı, yani ardıllar öne yazılacak

  24. Derinine arama • En derindeki genişlenmemiş düğümü genişletmeli • LIFO yapısı, yani ardıllar öne koyulacak

  25. Derinine arama • En derindeki genişlenmemiş düğümü genişletmeli • LIFO yapısı, yani ardıllar öne yazılacak

  26. Derinine arama • En derindeki genişlenmemiş düğümü genişletmeli • LIFO yapısı, yani ardıllar öne yazılacak

  27. Derinine arama • En derindeki genişlenmemiş düğümü genişletmeli • LIFO yapısı, yani ardıllar öne yazılacak

  28. Derinine arama • En derindeki genişlenmemiş düğümü genişletmeli • LIFO yapısı, yani ardıllar öne yazılacak

  29. Derinine arama • En derindeki genişlenmemiş düğümü genişletmeli • LIFO yapısı, yani ardıllar öne yazılacak

  30. Derinine arama • En derindeki genişlenmemiş düğümü genişletmeli • LIFO yapısı, yani ardıllar öne yazılacak

  31. derinine arama (daha bir örnek) Düğümlerin yanında parantez içinde o düğümün taranma sırası gösterilip.

  32. Derinine aramanın özellikleri • Tam?Değil: sonsuz derinlik,döngülü uzaylar ola biliyor • Tekrarlanan durumların önlenmesi için algoritmada değişiklik yapılıyor sonlu uzayda tamlık • Zaman?O(bm): 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ı ola bilir • Uzay?O(bm)-doğrusal uzay • Optimal?Değil

  33. Derinine Arama algoritması 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 1 8 5 B C A 3 9 7 E D G

  34. Derinine Arama algoritması • Algoritmanın esas özellikleri: • Genişlenme için listeden her zaman en derindeki düğümü seçmeli ve yeni üretilmiş düğümleri listeye yazmalı • liste LIFO yapılıdır. • Genişlenme için seçilmiş düğüm amaç ise algoritmayı sonlandırmalı goal • Sonlu olmaya bilir • Tam değil • Exponensiyel zaman O(b^d) • Doğrusal mekan O(bd) • şansımız varsa çözüm çok hızlı buluna bilir

  35. Sınırlı derinine arama derinliği sınırlı götürmekle derinine arama

  36. Sınırlı Derinine Arama • 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, Yol haritasında hiçbir çözüm 11’den fazla adım gerektirmeyecek. Çünkü, burada yalnız 12 yerleşim vardır. Bu nedenle biz sınır gibi 11’i kullana bileriz. Döngülerin var olduğunu kabul etmiyoruz ve varsayıyoruz ki, sorun sonlu derinlik seviyesinde çözüle bilir.

  37. Sınırlı Derinine arama • 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)

  38. Sınırlı Derinine arama • 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

  39. Yinelemeli derinine arama • Satranç turnuvalarında oyunlar kesin zaman sınırı içinde oynanılıyor. Satranç programı da her hamle için ne kadar zaman kullanmalı olduğu kararını vermelidir. Pek çok satranç programları aramanı belirlenmiş derinliğe kadar değil, 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 zaman bitene dek devam ediyor. • Zaman bittikte program, bulunan hamleler içinden en iyisini çözüm gibi kabul ediyor

  40. Yinelemeli derinine arama fonksiyonu

  41. Yinelemeli derinine aramal =0

  42. Yinelemeli derinine aramal =1

  43. Yinelemeli derinine aramal =2

  44. Yinelemeli derinine aramal =3

  45. Yinelemeli derinine arama • Sınırlı derinine arama yönteminde üretilen düğümler sayısı: NDLS = b0 + b1 + b2 + … + bd-2 + bd-1 + bd • Yinelemeli derinine aramada üretilen düğümler sayısı: NIDS = (d+1)b0 + d b^1 + (d-1)b^2 + … + 3bd-2 +2bd-1 + 1bd • Örnek:b = 10, d = 5, • NDLS = 1 + 10 + 100 + 1,000 + 10,000 + 100,000 = 111,111 • NIDS = 6 + 50 + 400 + 3,000 + 20,000 + 100,000 = 123,456 • Yineleme ve sınırlı arama arasındaki fark: (123,456 - 111,111)/111,111 = 11%

  46. Yinelemeli derinine arama yönteminin özellikleri: • Tam?Evet • Zaman?(d+1)b0 + d b1 + (d-1)b2 + … + bd = O(bd) • Mekan?O(bd) • Optimal?Evet,eğer adım değeri=1

  47. Sabit maliyet- Uniform-Cost (UCS) • g(n) = başlangıç düğümden açık n düğümüne yolun değeri • Algoritma: • her zaman en küçük g(.) değerli düğümü seçmeli; tüm yeni üretilmiş düğümleri OPEN listesine kaydetmeli • OPEN listesindeki düğümleri g(.) ‘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

  48. G Sabit maliyet Araması Açılan düğüm düğümler listesi {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) } çözüm yolu S B G <-- G’nin değeri 10 değil, 9’tur Açılan düğüm sayısı (amaç düğümle birlikte) = 7 S 1 8 5 B C A 3 9 4 5 7 E D G” G’

  49. Sabit maliyet yönteminin özellikleri • Tam(her bir adımın değeri sonsuz değilse) • g(n) <= g(amaç) koşulu ile durum uzayında düğümler sayısı n sonludur) • n’ düğümü n’in oğlu ise g(n’) = g(n) + c(n, n’) > g(n) • Amaç düğümü nihayette üretilecek ve amaç denemesinden geçecek • Optimal/Uygun • Uygunluk düğüme uygulanan amaç denemesine bağlıdır • Çoklu çözüm yolları • Açık n düğümünden üretilen her çözüm yolunun değeri >= g(n) • Genişlenme için açılan ve denemeden geçen birinci düğümün yol OPEN listesindeki her bir açık düğümün değerinden küçük veya eşittir • Eksponensiyel zaman ve mekan karmaşıklığı(b^d) ; d en küçük değerli çözüm için çözüm yolunun derinliğidir

  50. Tekrarlanan durumların aradan kaldırılması • 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ı

More Related