Hafta_5 Arama Algoritmaları

Slides:



Advertisements
Benzer bir sunumlar
YAPAY ZEKA Yrd. Doç. Dr. Rembiye Kandemir
Advertisements

BİL551 – YAPAY ZEKA BİLGİSİZ ARAMA YÖNTEMLERİ
Arama ile sorun çözme Ders 3.
Hâsılat kavramları Firmaların kârı maksimize ettikleri varsayılır. Kâr toplam hâsılat ile toplam maliyet arasındaki farktır. Kârı analiz etmek için hâsılat.
Gıda Mikrobiyolojisi Eğitimi 04 Kasım 2014, Kuşadası Prof. Dr. Kadir HALKMAN Ankara Üniversitesi Gıda Mühendisliği Bölümü 04; Sonuçların değerlendirilmesi.
Algoritma.  Algoritma, belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.  Başka bir deyişle; bir sorunu çözebilmek için gerekli olan.
SUNU HAZIRLAMA PROGRAMI: powerpoint
Hat Dengeleme.
Önem Testleri. Örnekleme yoluyla sağlanan bilgiden hareketle; Kliniklerde hasta hayvanlara uygulanan yeni bir tedavi yönteminin eskisine kıyasla bir farklılık.
T.C. ORDU VALİLİĞİ İlköğretim Müfettişleri Başkanlığı TAM ÖĞRENME MODELİ TAM ÖĞRENME MODELİ.
Bilimsel bilgi Diğer bilgi türlerinden farklı
Girişimcilik Öğr.Gör.Seda AKIN GÜRDAL. Ders Akışı İşletmenin Amaçları İşletme Çevre İlişkisi.
HİPOTEZ TESTLERİNE GİRİŞ 1. Şu ana kadar örneklemden elde edilmiş istatistiklerden yararlanarak, kitle parametresini kestirebilmek için nokta tahmini.
Makine Öğrenmesinde Yeni Problemler YILDIZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ.
Arş.Gör.İrfan DOĞAN.  Bugün otizm tedavisinde en önemli yaklaşım, özel eğitim ve davranış tedavileridir.  Tedavi planı kişiden kişiye değişmektedir,
O R T L G İ M A A Ve Problem çözme.
OLASILIK TEOREMLERİ Permütasyon
Program Tasarım Modelleri
Yazılım Mühendisliği1[ 3.hft ]. Yazılım Mühendisliği2 Yazılım İ sterlerinin Çözümlemesi Yazılım Yaşam Çevrimi “ Yazılım Yaşam çevrimin herhangi bir yazılım.
HİPOTEZ TESTLERİNE GİRİŞ Şu ana kadar örneklemden elde edilmiş istatistiklerden yararlanarak, kitle parametresini kestirebilmek için nokta tahmini.
YÖNLENDİRME. Yönlendirme ● Statik ● Dinamik ● Kaynakta yönlendirme ● Hop by hop yönlendirme.
Öğr. Gör. Dr. İnanç GÜNEY Adana MYO
BİLGİSAYAR PROGRAMLAMA DERSİ
SAYILAR ve RAKAMLAR.
Öğr. Gör. Dr. İnanç GÜNEY Adana MYO
PROGRAMLI ÖĞRETİM Tanımı:
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
ÖRNEKLEME.
Problem Çözme ve Algoritmalar
MİKROEKONOMİ YRD. DOÇ. DR. ÇİĞDEM BÖRKE TUNALI
Yapay Sinir Ağı Modeli (öğretmenli öğrenme) Çok Katmanlı Algılayıcı
İleri Algoritma Analizi
Derinlik öncelikli arama (Depth-first Search(DFS))
X-IŞINLARI KRİSTALOGRAFİSİ
Çözülemiyen Matematik Soruları
TANIMLAYICI İSTATİSTİKLER
BİYOİNFORMATİK NEDİR? BİYOİNFORMATİKTE KULLANILAN SINIFLAMA YÖNTEMLERİ
STORAGE BÜŞRA KARADENİZ
Buluş nedir?.
Kırınım, Girişim ve Müzik
GÖRÜŞME İLKE VE TEKNİKLERİ Sağlık Bilimleri Fakültesi
İSTATİSTİK Yrd. Doç. Dr. Cumhur TÜRK
Bilgisayar Mühendisliğine Giriş
Hayvancılık İşletmelerinde Yönetim Prensipleri
PARAMETRİK HİPOTEZ TESTLERİ
BENZETİM Prof.Dr.Berna Dengiz 13. Ders Çıktı Analizi
Meriç ÇETİN Pamukkale Üniversitesi Bilgisayar Mühendisliği Bölümü
B+-Ağaçları.
TEKNOLOJİ VE TASARIM DERSİ 7.D.1. Özgün Ürünümü Tasarlıyorum.
Algoritmalar II Ders 12 DFS algoritması. Kirişlerin sınıflandırılması. Topolojik Sıralama.Kuvvetli bağlantılı bileşenler.
SPORDA TEKNİK ve TAKTİK ÖĞRETİM YÖNTEMLERİ
Doğrusal Mantık Yapısı İle Problem Çözme
Bilgisayar II 26 Nisan-7Mayıs Öğr. Gör. Feyza Tekinbaş.
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
Projenin sonlandırılması
Bilgisayar Bilimi Koşullu Durumlar.
Karar Yapıları İle Problem Çözme
Bilgi Teknolojileri Hafta 01
NİŞANTAŞI ÜNİVERSİTESİ
Evren-Örneklem, Örnekleme Yöntemleri 1
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Kesikli Olay benzetimi Bileşenleri
İleri Algoritma Analizi
OLASILIK Uygulamada karşılaşılan olayların birçoğu kesin olmayan diğer bir ifadeyle belirsizlik içeren bir yapıya sahiptir. Olasılık kavramı kesin olmayan.
Bilimsel Araştırma Yöntemleri
Çizge Algoritmalari 6. ders.
KİMYA DERSİNİ SEVMENİN YOLU
Sunum transkripti:

Hafta_5 Arama Algoritmaları

Arama Algoritmaları ile Gerçek Dünya Örnekleri Rota Bulma bilgisayar ağları, otomatik seyahat tavsiye sistemleri, havayolu seyahat planlama sistemleri gibi değişik alanlarda kullanılmaktadır Havayolu uygulaması çok karmaşıktır çünkü yol maliyeti çok karmaşıktır: para, yer kalitesi, zaman, uçak tipi, indirimler, ... Ayrıca problemdeki eylemler de tamamen bilinen çıktıları vermez: uçuş gecikebilir, bağlantılar kaçırılabilir, sis veya acil durumlar gecikmeye neden olabilir Gezgin satıcı (travelling salesman) problemi Robot Hareketi Montaj Sırası (Assembly sequencing)

Durum Uzayında Arama Durum uzayı bir (V, E) graftır: V düğümler, E (bir düğümden diğerine) kenarlar kümesidir düğüm: durumu ifade eder Düğümün atası (parent) ile ilgili bilgileri, Ata (parent) düğümden bu düğüme geçmek için gereken işlem hakkında bilgileri diğer istatistiksel bilgileri içerir kenar: uygulanabilir hareketi/işlemi ifade eder Her bir kenarın pozitif bir değeri (maliyet) vardır Düğümün genişletilmesi: bir düğüm üzerinde olası hareketleri uygulayarak, bu düğümden ulaşılabilecek diğer tüm çocuk (child) düğümlerin belirlenmesi

Durum Uzayında Arama Düğümün üretilmesi: önceden belirlenmiş (genişletilmiş) bir düğüm üzerinde işlem yaparak diğer bir düğümün temsil ettiği duruma geçmek Başlangıç düğüm bir ya da daha fazla olabilir Amaç testi: üzerinde işlem yapılan düğümün durumunun hedef durum olup-olmadığının belirlenmesi Çözüm: başlangıç durumdan hedef duruma doğru yolda yapılan işlemler sırası Çözümün değeri: çözüm yolundaki kenarların değerlerinin (maliyetlerinin) toplamı

Durum Uzayında Arama Tanımı: genişletilmemiş durum uzayı grafının, amaç düğümü de içine alan bir kısmının genişletilmesi yolu ile çözümün aranması Başlangıçta V={S}, S başlangıç düğümdür S genişletildikçe ulaşılan düğümler V’ye, geçilen kenarlar ise E’ye ilave edilir Hedef düğüm üretilene dek tekrar et Düğüm 3 halden birinde olabilir: Henüz genişletilmemiş AÇIK: Genişletilmiş ama üretilmemiş KAPALI (SON): Üretilmiş Arama ağacının büyüklüğü durum uzayı küçük olsa bile sonsuz olabilir Sebebi: döngüler

Örnek durum uzayı S: başlangıç, G: hedef Durum uzayı C F G S 3 4 5 2 Durum uzayı S A D B E C F G 3 2 4 5 Döngüsüz Arama ağacı

Arama ağaçlarında yollar SA S A D B E C F G SDA SDEBA

Arama Algoritmaları Yapay zeka problemlerinin çözümünde arama evrensel bir tekniktir Bu yüzden Arama Algoritmaları yapay zeka uygulamalarında önemli yere sahiptirler. Birçok problemin çözümünde arama algoritmaları hızlı ve etkili çözümler sunmaktadır. Bir problem için doğru arama stratejisini seçmek gerekir. Arama stratejilerinden hangisinin seçileceğini belirlerken bazı kriterlere bakmak gerekir:

Arama Algoritmaları Arama stratejileri 4 kritere göre karşılaştırılır Tamlık-Bütünlük (Completeness): Bir tane çözüm olduğunda arama startejisi çözümü garanti ediyor mu? Zaman Karmaşıklığı (Time Complexity): Algoritmanın sonuca ulaşması için gerçekleştirdiği işlemlerin sayısı. Bir çözüm bulmak ne kadar zaman alacak? Alan Karmaşıklığı (Space Complexity): Algoritmanın çalışması için gerekli bellek miktarı. Aramayı yapmak için ne kadarlık bir bellek (memory) gerekli olacak? Eniyileme (Optimality): Farklı çözümler mevcut iken seçilen stratejinin çözümü optimal olan mı? Her zaman en az masraflı çözümü bulabiliyor mu?

Arama Algoritmaları Bilgisiz - Körüne Arama (Blind Search) Bilgili - Sezgisel Arama (Heuristic Search)

Bilgisiz (kör) arama yöntemleri Sadece problem formülasyonundaki mevcut bilgiyi kullanır Durum bilgisinden yararlanmazlar Çözüme ulaşmak için hiçbir bilgi verilmez Aramanın herhangi bir adımında çözüme ne kadar yakın (veya uzak) olduğu veya çözümün bulunabileceği hakkında fikir söylemek mümkün değildir

Bilgisiz (kör) arama yöntemleri Enine öncelikli arama-Breadth-first search-BFS Derinine öncelikli arama-Depth-first search-DFS Sınırlı derinine arama-Depth-limited search-DLS Özyinilemeli derinine arama-Iterative deepening search-IDS Çift Yönlü Arama-Bidirectional Search-BS Tek Maliyetli Arama-Uniform Cost Search- UCS

Enine öncelikli arama-Breadth first search Enine arama algoritması, bulmaca ve oyunlar gibi yapay zeka problemlerine uygulanabilmektedir. Ağaç yapılarında kullanılır. Bu algoritmada istenen şey; aramada hem en kısa yolu bulmak hem de aramayı optimum bir şekilde gerçekleştirmektir. Çalışma prensibi; başlangıç düğümden başlayarak, hedef düğüm bulunana kadar komşu düğümlere dallanma şeklindedir. Bir problemin çözümü varsa enine arama algoritması çözümü garanti eder. Eğer birkaç çözüm var ise en üstte olan yani ilk bulunan çözümü çözüm olarak kabul eder. Bu arama algoritmasında ilk kural "İLK GİREN İLK ÇIKAR"dır.

Enine öncelikli arama-Breadth first search Enine aramada ağaç yapısı, yukarıdan başlayarak, soldan sağa tarayarak ilerler. Bir seviyedeki tüm düğümler genişlendikten (tarandıktan) sonra bir sonraki aşağı seviyeye geçilir. Enine arama algoritması başlangıç durumuna bağlı olarak seviye seviye tüm düğümleri açarak tek tek kontrol eder. Bir seviyeden uzaklaşmadan önce, o seviyeye kadar olan bütün düğümleri dolaşmış olması gerekir.

Enine öncelikli arama-Breadth first search Enine arama algoritması, problemin çözümü daha derinlerde ise verimsiz bir algoritmadır. Çünkü açılan düğüm sayısı artacaktır. Çözümün derinde olması dallanma etmeni (branching factor) olarak bilinmektedir. Başlangıç düğümü de dahil olmak üzere her düğümün b sayıda komşusu olduğunu varsayalım. Kök ilk genişletildiğinde b sayıda dal olacaktır bir sonraki derinlikte b² dallanma olacaktır. Bu şekilde d derinlikte bd dallanma olacaktır. Toplamda değerlendirilmesi gereken düğüm sayısı=1+b+b²+b³… olacaktır. Bu da zaman karmaşıklığı bakımından önemlidir.

Enine arama-Breadth first search b dallanma faktörü, d çözümün derinliği olmak üzere Bütünlük : Var Zaman Karmaşıklığı : O(bd) dir. Alan Karmaşıklığı : O(bd) dir. Optimallik : Her zaman çözüm bulunur.

Enine öncelikli arama-Breadth first search Algoritmanın adımları : Öncelikle bir başlangıç düğümü seçilir ve bu düğüm işaretlenir. Bu düğümün komşuları sırasıyla bir K (kuyruk) listesine yazılır. Bu K listesi komşulukları tutan bir listedir. Bu komşu düğümler teker teker ziyaret edilir ve işaretlenerek Z (ziyaret) listesine eklenir. Z listesi ziyaret edilen düğümleri tutan listedir. K listesindeki ilk düğüm alınarak işaretlenir ve K listesinden silinir. Silinen düğümün komşuları K listesine eklenir. Bu ekleme yapılırken eğer eklenecek düğüm Z listesinde varsa yani daha önce ziyaret edilmişse eklenmeyecektir. Silinen düğümün ziyaret edilen düğümleri Z listesine eklenir (var olanlar eklenmeyecek). Bu şekilde K listesindeki tüm düğümler silininceye kadar devam edilir.

Enine öncelikli arama-Breadth first search Enine aramanın düğümleri arama şekli:

Enine öncelikli arama-Breadth first search Enine aramanın düğümleri arama şekli:

Enine öncelikli arama-Breadth first search Kuyruk : A

Enine öncelikli arama-Breadth first search Kuyruk : B C

Enine öncelikli arama-Breadth first search Kuyruk : C D E

Enine öncelikli arama-Breadth first search Kuyruk : D E D G

Enine öncelikli arama-Breadth first search Kuyruk : E D G C F

Enine öncelikli arama-Breadth first search Kuyruk : D G C F

Enine öncelikli arama-Breadth first search Kuyruk : G C F B F

Enine öncelikli arama-Breadth first search Kuyruk : C F B F

Enine arama-Breadth-first search ÖRNEK: Arama ağacına göre enine arama algoritmasının çalışması Yol Kuyruk Kapatılan Düğümler { A } {} A { B C D} {A} AB { C D E F} { B C D} AC { D E F G H I } { C D E F} AD { E F G H I J } { D E F G H I } ABE { F G H I J K L } { E F G H I J } ABF { G H I J K L M } { F G H I J K L } ACG { H I J K L M } { G H I J K L M } ACH { I J K L M N O } { H I J K L M } ACI { J K L M N O} { I J K L M N O } ADJ { K L M N O P Q } { J K L M N O} ABEK { L M N O P Q } { K L M N O P Q } ABEL { M N O P Q } { L M N O P Q } ABFM { N O P Q } { M N O P Q } ACHN { O P Q } { N O P Q } ACHO { P Q R S T } { O P Q } ADJP { Q R S T } { P Q R S T } ADJQ { R S T U } { Q R S T } ACHOR { S T U } { R S T U } ACHOS { T U V} { S T U } ACHOT { U V } { T U V} ADJQU { V } { U V } ACHOSV { } { V } Burada durumları oluşturma ve genişleme sırası; ABCDEFGHIJKLMNOPQRSTUV şeklindedir. Eğer hedef düğümleri M, V ve J düğümleri ise enine arama algoritması en az derinliğe sahip olan J’yi önce bulacaktır.

Örnek S C B A D G E 1 5 8 9 4 3 7 Yol Kuyruk Kapatılan { S } {} S { A B C } {S} S,A { B C D E G } {S A} S,B { C D E G G' } {S A B} S,C { D E G G' G" } {S A B C} S,A,D { E G G' G" } {S A B C D} S,A,E { G G' G" } {S A B C D E} S,A,G { G' G" } {S A B C D E G} Bulunan çözüm yolu S A G --> maliyeti = 10 Genişletilen düğüm sayısı (hedef düğüm dahil) = 7

Derinine Öncelikli Arama (Depth-First Search) Arama işlemine, enine arama gibi en üstteki düğümden kök (root) başlanır, ama enine aramanın aksine, yatay değil de dikey olarak ilerler. Kökten itibaren, en soldan gidebildiği en alttaki düğüme kadar iner, en alttakine ulaştıktan sonra, Eğer bir yolda çözüm bulunamazsa, arama sonraki en sol ve genişlenmemiş düğümle devam ettirilir. Dallanma faktörüne bakılacak olursa; b dallanma sayısı ve m maksimum derinlik için gerekli bellek alanı b*m olacaktır.

Derinine Öncelikli Arama (Depth-First Search) b dallanma faktörü, m maximum derinlik olmak üzere Bütünlük : Yok, her zaman aramayı sonlandıramaz Zaman Karmaşıklığı : O(bm) dir. Alan Karmaşıklığı : O(b*m) Optimallik : Her zaman çözüm bulunamaz. Enine aramaya göre daha verimli olduğu görülmektedir.

Derinine Öncelikli Arama (Depth-First Search) Derinine aramada olası sorunlar problemin çözümünde gidilen yanlış yolda sıkışıp kalmaktır. Birçok problemin sonsuz veya çok derin ağaçları olabilmektedir böyle durumlarda derinine arama uygun bir çözüm bulamayacaktır. Bu şekilde arama bir önceki duruma dönmeden sürekli devam edecektir, hatta bir önceki seviyede bir çözüm bulunmuşsa bile yine devam edecektir.

Derinine Öncelikli Arama (Depth-First Search) Derinine arama algoritması bu tür sonsuz veya çok derin ağaçlarda sonsuz döngüye girer ve asla bir çözüme ulaşamaz çözüm bir önceki seviyede olsa bile. Bir diğer durum ise algoritma bir çözüm bulabilir ama bu optimal çözüm olmayabilir. Yani bir üst seviyedeki çözüm ile en son bulunan çözüm arasında zaman, bellek bakımından farklar olacaktır. Derine arama yukarıdaki kriterlere göre tam çözümü garanti etmez.

Derinine Öncelikli Arama (Depth-First Search) Derinine aramanın düğümleri arama şekli: Derinine arama algoritmasında, graf üzerinde arama yapılırken öncelikle derinlemesine bakılır ve kökten itibaren en derinde yani uçta bulunan düğüme kadar gidilir. Ulaşılan düğümün hedef düğüm olmadığı anlaşılırsa, başka bir bağlacı olan üstteki bir düğüme geri dönülerek bu bağlaçtan devam edilir.

Derinine Öncelikli Arama (Depth-First Search) Bir düğümün öncelikle tüm alt düğümlerine bakıldıktan sonra aynı seviyedeki diğer düğümlere geçilir. En alta ulaşana kadar düğümleri aç (genişlet) Alttan başlayarak kapa (üret)

Derinine Öncelikli Arama (Depth-First Search)

Derinine Öncelikli Arama (Depth-First Search)

Derinine Öncelikli Arama (Depth-First Search)

Derinine Öncelikli Arama (Depth-First Search)

Derinine Öncelikli Arama (Depth-First Search)

Derinine Öncelikli Arama (Depth-First Search)

Derinine Öncelikli Arama (Depth-First Search)

Derinine Öncelikli Arama (Depth-First Search)

Derinine Öncelikli Arama (Depth-First Search)

Derinine Öncelikli Arama (Depth-First Search)

Derinine Öncelikli Arama (Depth-First Search)

Derinine Öncelikli Arama (Depth-First Search)

Derinine Öncelikli Arama (Depth-First Search) Kuyruk : A

Derinine Öncelikli Arama (Depth-First Search) Kuyruk : B C

Derinine Öncelikli Arama (Depth-First Search) Kuyruk : D E C

Derinine Öncelikli Arama (Depth-First Search) Kuyruk : C F E C

Derinine Öncelikli Arama (Depth-First Search) Kuyruk : G F E C

Derinine Öncelikli Arama (Depth-First Search) ÖRNEK: Arama ağacına göre derinine arama algoritmasının çalışması Gidilen düğüm Kuyruk A A B C D B E F C D E K L F C D K L F C D L F C D F M C D M C D C G H I D G H I D H N O I D N O I D O R S T I D R S T I D S V T I D V T I D T I D I D D J J P Q P Q Q U U Eğer hedef düğümleri M, V ve J düğümleri ise derinine arama algoritması M’yi daha önce bulacaktır.

Derinine Öncelikli Arama (Depth-First Search) Gidilen Düğüm Kuyruk { 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 --> maliyeti = 10 Genişletilen düğüm sayısı (hedef düğüm dahil) = 5

Sınırlı Derinine Arama (Depth-limited search) 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. Bu nedenle derinlik aramada bir yere saplanmamak için sınır şartları verilebilir. L sınır derinliği olmak üzere, eğer gereken çözüm L+1 derinlikte ise, çözüm hiçbir zaman bulunamayacaktır. 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 (Depth-limited search) Sınırlı Derinlikteki Arama için performans analizi; b dallanma faktörü, L derinlik sınırı olmak üzere Bütünlük : Yok, Zaman Karmaşıklığı : O(bL) dir. Alan Karmaşıklığı : O(b*L) dir. Optimallik : Yok, verilen sınır içinde çözüm bulunamayabilir.

Sınırlı Derinine Arama (Depth-limited search)

Yinelemeli derinine arama (Iterative deepening search) Yinelemeli derinlikte arama tüm olası derinlik sınırlarını deneyerek, en iyi derinlik sınırını seçen bir stratejidir. Derinine öncelikli (depth first) ve enine öncelikli (breadth first) arama algoritmalarının iyi taraflarını kendinde barındıran algoritmadır. Bu algoritmada, klasik derinine öncelikli arama kullanılır fakat arama yapmaya izin verilecek maksimum ağaç derinliği her bir adımda bir arttırılır. Derinine öncelikli aramada olduğu gibi alan karmaşıklığının daha az olması yanı sıra enine öncelikli aramadaki gibi en iyi (optimum) sonuç verir. Bütün düğümleri dolaşarak aranan düğümü bulmayı garanti eder bu yüzden algoritma tam arama algoritmasıdır.

Yinelemeli derinine arama (Iterative deepening search) Algoritma basitçe derinlik değerini bir değişkende tutmakta ve bu değeri her adımda arttırmaktadır. Yineleme yapısı (iteration) basit bir döngü (loop) olarak düşünülebilir ve her adımda derinliğin, bir döngü değişkeni (loop variable) gibi düşünülerek derinleştiği kabul edilebilir. önce 2 seviyede, sonra 3 , sonra 4… seviyede arama yapılır, bulunan hamleler içinden en iyisi çözüm olarak kabul edilir. Pek çok satranç programı arama işlemini yinelemeli derinine arama ile gerçekleştirir.

Yinelemeli derinine arama (Iterative deepening search)

Yinelemeli derinine arama l =0

Yinelemeli derinine arama l =1

Yinelemeli derinine arama l =2

Yinelemeli derinine arama l =3

Yinelemeli derinine arama (Iterative deepening search) 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%

Çift Yönlü Arama (Bidirectional Search) Aramaya başlangıç durumundan ileri doğru ve sondan geriye doğru arama yapar belirlenen bir durumda ikisi karşılaşana kadar devam eder. Baştaki arama ve sondaki arama her birisi toplam yolun yarısını almış olur.

Çift Yönlü Arama (Bidirectional Search) İleri ve geri aramaların her biri sadece yarım yol gider. Enlemesine arama yapılır. Bütünlük : Evet Zaman Karmaşıklığı : O(bd/2) Alan Karmaşıklığı : O(bd/2) Optimallik : Eğer tüm maliyetler eşitse Evet

Düşük Maliyetli Arama (Uniform Cost Search ) Bir düğüme olan yolları maliyetlerine göre artacak şekilde sıralar. Genişlemeyi yani komşuları ziyaret etmeyi maliyeti en az olan, en yakın olanı seçer ve genişlemeyi bu düğümle yapar. Eğer tüm yolların maliyeti aynı ise enine arama gibidir.

Düşük Maliyetli Arama (Uniform Cost Search ) Dallar üzerinde toplam en düşük maliyetli düğümü seçer ve genişletir. b = dallanma faktörü, d = en düşük maliyetli çözümün derinliği Bütünlük : Eğer b sonlu ve maliyet >0 ise Evet Zaman Karmaşıklığı : O(bd) Alan Karmaşıklığı : O(bd) Optimallik : Tüm maliyetler pozitif ise Evet

Düşük Maliyetli Arama (Uniform Cost Search ) Algoritmanın çalışması; Kök düğümün komşularından itibaren aramaya başlanır. Düğümünün komşularına bakılır ve maliyetleri elde edilir daha sonra en az maliyete sahip komşu düğüme gidilir. Hedef düğüme erişildiğinde işlem tamamlanır, hedefe erişilmediğinde 2. Adıma geri dönülür. Tüm maliyetler birbirine eşitse enine arama şeklinde devam edilir.

Düşük Maliyetli Arama (Uniform Cost Search ) 5 1 15 A C B D F 10 E B,C,D  B min(1,5,15)1 F,C,D  C min(11,5,15) 5 F,E,D  E min(11,10,15)10

Düşük Maliyetli Arama (Uniform Cost Search ) PQ = {(START,0)}

Düşük Maliyetli Arama (Uniform Cost Search ) PQ = {(p,1) (d,3) (e,9)}

Düşük Maliyetli Arama (Uniform Cost Search ) PQ = {(d,3) (e,9) (q,16)}

Düşük Maliyetli Arama (Uniform Cost Search ) PQ = {(b,4) (e,5) (c,11) (q,16)} Doğrudan e ye gitmek yerine, d üzerinden e ye gitmenin maliyeti daha ucuz, e değeri 9 dan 5 e güncellenir.

Düşük Maliyetli Arama (Uniform Cost Search ) PQ = {(e,5) (a,6) (c,11) (q,16)}

Düşük Maliyetli Arama (Uniform Cost Search ) PQ = {(a,6) (h,6) (c,11) (r,14) (q,16)}

Düşük Maliyetli Arama (Uniform Cost Search ) PQ = {(h,6) (c,11) (r,14) (q,16)}

Düşük Maliyetli Arama (Uniform Cost Search ) PQ = {(q,10) (c,11) (r,14)} p üzerinden q ye gitmek yerine, h üzerinden q ye gitmenin maliyeti daha ucuz, q değeri 16 dan 10 a güncellenir.

Düşük Maliyetli Arama (Uniform Cost Search ) PQ = {(c,11) (r,13)}

Düşük Maliyetli Arama (Uniform Cost Search ) PQ = {(r,13)} PQ = {(f,18)}

Düşük Maliyetli Arama (Uniform Cost Search ) PQ = {(GOAL,23)}

Düşük Maliyetli Arama (Uniform Cost Search ) Sonuçta belirlenen yol: {START, d, e, h, q, r, f, GOAL}

Düşük Maliyetli Arama (Uniform Cost Search ) Başlangıç düğümü S Hedef düğüm G Initialization: { [ S , 0 ] } Iteration1: { [ S->A , 1 ] , [ S->G , 12 ] } Iteration2: { [ S->A->C , 2 ] , [ S->A->B , 4 ] , [ S->G , 12] } Iteration3: { [ S->A->C->D , 3 ] , [ S->A->B , 4 ] , [ S->A->C->G , 4 ] , [ S->G , 12 ] } Iteration4: { [ S->A->B , 4 ] , [ S->A->C->G , 4 ] , [ S->A->C->D->G , 6 ] , [ S->G , 12 ] } Iteration5: { [ S->A->C->G , 4 ] , [ S->A->C->D->G , 6 ] , [ S->A->B->D , 7 ] , [ S->G , 12 ] } Iteration6 final output S->A->C->G

Arama Stratejilerinin Karşılaştırma Tablosu Kriter Breath Firsrt Uniform Cost Depth First Limited İterative Deeping Bidirectional Zaman bd bm bl bd/2 Uzay Optimal? Evet Hayır Bütünlük Evet, eğer l ≥ d Şekil: Arama stratejilerin gelişimi; b dallanma faktörü, d çözümün derinliği, m arama ağıcındaki maksimum derinlik, l derinlik sınırı