Professional Documents
Culture Documents
Ders 6
Ders 6
1
Durum Uzay Grafi ve Arama Ağacı
• Arama Ağacı:
– Başlangıç durum, kök node u temsil eder
– Cocuk durumlar, mevcut durumdan doğan sonraki durumları temsil
eder
– Nodelar durumlari temsil eder fakat bu durumlara ulaşan eylem
2
dizisini (plan) kapsar
Uygulama: durum ve node(düğüm)
durum dünyanın içsel bir gösterimidir.
node arama ağacının düğümü olup, durum, ata node,
eylem, yol maliyeti g(x), çözüm derinliği bilgilerini içerir
3
Genel Ağaç-Arama Algoritması
Aşağıdaki algoritma eylem dizisi aradığımız aramalar için geçerlidir. Cözüm
fonk. nihai eylem dizisini döndürür. Genişlet fonk. izleyenler kümesini
döndürür.
Problem veri yapısı, problemin formalize edilmesi sonucu oluştuğunu ve
baslangıç durum, hedef durum ve olası işlemleri (eylemleri) kapsadığını
varsayoruz, Kuyruk ise başlangıçta boş olup, ekle işlevi Kuyruk tipine
göre ekleme yapar.
4
Arama stratejileri
Arama stratejisi, düğümlerin kuyruğa hangi sırada eklendiğine
göre değişirkuyruğun sıralanması
7
Önce genişlik arama
En sığ düğümü önce genişlet
Kuyruk FIFO sıralamasında tutulur, yeni
genişletilen düğümler en sona eklenir
Uygulama:
8
Önce genişlik arama
En sığ düğümü önce genişlet
Kuyruk FIFO sıralamasında tutulur, yeni
genişletilen düğümler en sona eklenir
Uygulama:
9
Önce genişlik arama
En sığ düğümü önce genişlet
Kuyruk FIFO sıralamasında tutulur, yeni
genişletilen düğümler en sona eklenir
Uygulama:
10
Önce genişlik arama
En sığ düğümü önce genişlet
Kuyruk FIFO sıralamasında tutulur, yeni
genişletilen düğümler en sona eklenir
Uygulama:
11
Önce genişlik aramanın özellikleri
12
Uniform maliyetli arama
13
Uniform maliyetli arama
15
Derinlik öncelikli arama
En derindeki genisletilmemis düğümü önce genişlet
Uygulama:
Kuyruk = LIFO, sonraki durumlari ,en öne koy
16
Derinlik öncelikli arama
En derindeki genisletilmemis düğümü önce genişlet
Uygulama:
Kuyruk = LIFO, sonraki durumlari ,en öne koy
17
Derinlik öncelikli arama
En derindeki genisletilmemis düğümü önce genişlet
Uygulama:
Kuyruk = LIFO, sonraki durumlari ,en öne koy
18
Derinlik öncelikli arama
En derindeki genisletilmemis düğümü önce genişlet
Uygulama:
Kuyruk = LIFO, sonraki durumlari ,en öne koy
19
Derinlik öncelikli arama
En derindeki genisletilmemis düğümü önce genişlet
Uygulama:
Kuyruk = LIFO, sonraki durumlari ,en öne koy
20
Derinlik öncelikli arama
En derindeki genisletilmemis düğümü önce genişlet
Uygulama:
Kuyruk = LIFO, sonraki durumlari ,en öne koy
21
Derinlik öncelikli arama
En derindeki genisletilmemis düğümü önce genişlet
Uygulama:
Kuyruk = LIFO, sonraki durumlari ,en öne koy
22
Derinlik öncelikli arama
En derindeki genisletilmemis düğümü önce genişlet
Uygulama:
Kuyruk = LIFO, sonraki durumlari ,en öne koy
23
Derinlik öncelikli arama
En derindeki genisletilmemis düğümü önce genişlet
Uygulama:
Kuyruk = LIFO, sonraki durumlari ,en öne koy
24
Derinlik öncelikli arama
En derindeki genisletilmemis düğümü önce genişlet
Uygulama:
Kuyruk = LIFO, sonraki durumlari ,en öne koy
25
Derinlik öncelikli arama
En derindeki genisletilmemis düğümü önce genişlet
Uygulama:
Kuyruk = LIFO, sonraki durumlari ,en öne koy
26
Derinlik öncelikli arama
En derindeki genisletilmemis düğümü önce genişlet
Uygulama:
Kuyruk = LIFO, sonraki durumlari ,en öne koy
27
Derinlik öncelikli aramanın özellikleri
Recursif uygulama:
29
Derinlik Sınırlı Arama, limit=2
Kesme Seviyesi
30
İteratif Derinleserek Arama(İDA)
= Algoritma her derinlikte, derinlik sınırlı arama yapar. Derinlik 0
da cözümü bulamazsa, Derinlik 1 de derinlemesine arama yapar,
sonra artan derinliğe göre diğer derinliklerde derinlik öncelikli
arama yapar
Recursif uygulama:
function Iteratif_Derinleserek_Arama(Problem) return çözüm/hata
For derinlik=0 to ∞ Do
sonucDerinlik_Sınırlı_Arama(Problem, derinlik)
If sonuc != kesme Then sonuc
31
İteratif Derinleserek Aramal =0
32
İteratif Derinleserek Arama l =1
33
İteratif Derinleserek Arama l =2
34
İteratif Derinleserek Arama l =3
35
İteratif Derinleserek Arama
Derinlik sınırlı aramada(DSA) üretilen düğüm sayısı (derinlik d ve
dallanma faktörü b için):
NDSA = b0 + b1 + b2 + … + bd-2 + bd-1 + bd
b = 10 ve d = 5 için,
NDSA = 1 + 10 + 100 + 1,000 + 10,000 + 100,000 = 111,111
NIDA = 6 + 50 + 400 + 3,000 + 20,000 + 100,000 = 123,456
Tam? Evet
38
Tekrar eden Durumlar
Tekrar eden durumları dikkate almamak, doğrusal
karmaşıklıktaki bir problemi, üstsel bir probleme dönüştürebilir!
Tekrarlar yol şeklinde olabilir XYZXY...şeklinde
Tekrarlar aynı düğümlerin farklı yollarda tekrarı şeklinde de
olabilir. Örneğin
39