BİL 4112 YAPAY ZEKA Hafta 3 – Bölüm 1

Slides:



Advertisements
Benzer bir sunumlar
Ders İçeriği Ağaç Veri Modeli Tanım ve Gerçekleştirim İkili Ağaç
Advertisements

Arama ile sorun çözme Ders 3.
MIT503 Veri Yapıları ve algoritmalar
YAPAY ZEKA Yrd. Doç. Dr. Rembiye Kandemir
IT503 Veri Yapıları ve algoritmalar
YAPAY ZEKA Yrd. Doç. Dr. Rembiye Kandemir
Yapay Zeka DR.KORHAN KAYIŞLI.
Algoritmalar Ders 8 Dinamik Programlama.
MIT503 Veri Yapıları ve algoritmalar Algoritma Oluşturma – Açgözlü algoritmalar ve buluşsallar Y. Doç. Yuriy Mishchenko.
YAPAY ZEKA Yrd. Doç. Dr. Rembiye Kandemir
Informed Search and Exploration
Yığın ve Kuyruk.
Ders İçeriği Bağlantılı Liste İki Yönlü Bağlantılı Liste
YAPAY ZEKA ÖDEV - 1 Kenan KILIÇASLAN Trakya Üniversitesi Fen Bilimleri Enstitüsü Makina Mühendisliği Doktora Programı.
YAPAY ZEKA ÖDEV - 2 Kenan KILIÇASLAN Trakya Üniversitesi Fen Bilimleri Enstitüsü Makina Mühendisliği Doktora Programı.
İkili Ağaçlar İkili Arama Ağaçları
Algoritmalar En kısa yollar I En kısa yolların özellikleri
CLUSTERING USING REPRESENTATIVES Hazırlayan: Arzu ÇOLAK
İçerik Ön Tanımlar En Kısa Yol Problemi Yol, Cevrim(çember)
MIT503 Veri Yapıları ve algoritmalar En önemli graf problemleri
Lokal Arama Algoritmaları
Karar Ağaçları.
İŞ SIRALAMA VE ÇİZELGELEME DERS 4
Operatörler.
Bölüm 3 – Yapısal Programlama
En Küçük Yol Ağacı (Minimum Spanning Tree)
Yapısal Program Geliştirme – if, if-else
Kaynakların Dağılımı.
Algoritmalar DERS 4 Çabuk sıralama Böl ve fethet Bölüntüler
Arama ile sorun çözme Ders 3.
YAPAY ZEKA ve UZMAN SİSTEMLER
İçerik: Graflar Tanım Gösterim Dolaşma Algoritmaları
MIT503 Veri Yapıları ve algoritmalar Veri ağaçları
Ders Notu – 3.2 Bilgisiz (Kör) Arama Yöntemleri
BPR152 ALGORİTMA VE PROGRAMLAMA - II
M.Fatih AMASYALI Yapay Zeka Ders Notları
BİL551 – YAPAY ZEKA BİLGİSİZ ARAMA YÖNTEMLERİ
Rekabet ortamında arama Adversarial Search
Arama ile sorun çözme Ders 3.
Bilgili arama Yöntemleri
Arama Her Yerde M.Fatih AMASYALI Yapay Zeka Ders Notları
Bilgili arama Yöntemleri
BAZI VERİ YAPILARI Yılmaz KILIÇASLAN. Sunu Planı Bu derste, çizgeler gibi bazı teorik nesnelerin bellekte nasıl tutulduğunu ve algoritmalarca nasıl işlendiğini.
M.Fatih AMASYALI Uzman Sistemler Ders Notları
Çizge Algoritmaları Ders 2.
BİL551 – YAPAY ZEKA BİLGİLİ ARAMA YÖNTEMLERİ
BAH TABLOSU.
Algoritma Mantığı ve Akış Diyagramları
Optimizasyon.
GEOMETRİ TEMEL KAVRAMLAR
AVL(Adel’son-Vel’skiĭ and Landis) Ağacı AVL ağacı, iki alt ağacının yükseklikleri farkının en fazla 1 olabildiği dengeli ikili arama ağacıdır. AVL ağacında.
Sayısal Analiz 7. Hafta SAÜ YYurtaY.
Floyd Algoritması Floyd Algoritması Dijkstra algoritmasının daha genel halidir. Çünkü şebekedeki herhangi iki düğüm arasındaki en kısa yolu belirler. Algoritma,
BİL 4112 Yapay Zeka Hafta 2 – Bölüm 2
Oyunlar. Giriş YZ da oyunlar 3 sınıfa ayrılarak incelenir. – Rasgele sonuçlu (tavla vb) – Ustalık gerektiren (futbol, golf vs) – Stratejik (satranç,dama,
BİL 4112 YAPAY ZEKA Hafta 5.
Algoritmalar II Ders 2 Dinamik Programlama Yöntemi.
Hafta_5 Arama Algoritmaları
Algoritmalar II Ders 8 Açgözlü Algoritmalar.
Algoritmalar II Ders 1: Alan zaman takası yöntemi.
Çizgeler Çizge G=(V,E), ikilisine denir, burada V sonlu bir kümedir, E ise bu kümenin elemanları arasında ikili bir bağıntıdır. V kümesine G çizgesinin.
Çizge Algoritmalari 6. ders.
BLM-111 PROGRAMLAMA DİLLERİ I Ders-2 Değişken Kavramı ve Temel Operatörler Yrd. Doç. Dr. Ümit ATİLA
İleri Algoritma Analizi
Algoritmalar II Ders 11 Çizgeler. Çizgelerin bilgisayarda gösterimi. BFS algoritması.
Çizge Algoritmalari 5. ders.
NİŞANTAŞI ÜNİVERSİTESİ
İleri Algoritma Analizi
Algoritmalar II Ders 2 Dinamik Programlama Yöntemi.
Sunum transkripti:

BİL 4112 YAPAY ZEKA Hafta 3 – Bölüm 1

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örlemesine arama) Enine arama (Breadth-first search) Derinine arama (Depth-first search) Sınırlı Derinine arama (Depth-limited search) Sabit Maliyet Araması (Uniform-cost search) Yinelemeli derinine arama (Iterative deeping search) İki yönlü arama (Bi-directional search) Bilgili Arama Stratejileri (Sezgisel yöntemler) En iyisini arama (generic best-first search) Hırslı arama (Greedy best-best-first search) Işın arama (Beam search) A* araması (A* search) Özyinelemeli en iyisini arama (RBFS – Recursive best-first search)

Arama parametreleri Tam- kullanılan arama algoritması ile çözüm bulunuyor mu? (completeness) Mekan- algoritmanın kullandığı durum uzayının boyutu (bellek alanı – space complexity) Zaman- algoritmanın gerçekleştirilmesi için gereken zaman (time complexity) Optimal- bu algoritma ile durum uzayında en iyi çözümü bulmak mümkün mü? (optimality)

(Uninformed search strategies) Bilgisiz veya Kör arama yöntemleri (Uninformed search strategies)

Bilgisiz (kör) arama yöntemleri Bilgisiz arama yöntemlerinde yalnız sorunun tanımında bulunan bilgiler kullanılabilir Enine arama Breadth-first search Derinine arama Depth-first search Sınırlı derinine arama Depth-limited search Yinelemeli derinine arama Iterative deepening search Sabit Maliyet Araması Uniform-cost search İki yönlü arama Bi-directional search

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 bulunabileceği hakkında fikir yürütmek olası değildir.

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

Enine arama Enine aramada ağaç soldan sağa, yukarıdan aşağıya doğru taranıyor. 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 E arama ağacı başarı

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

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

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

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

Enine arama patrametreleri Tam? evet (b sonlu 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); genelde ise Hayır, optimal değil Mekan sorunu çok önemlidir

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

Enine Arama-örnek s 1 b b^2 b^d 2 1 d derinlikli tam arama ağacı; her bir yaprak olmayan düğümün b oğlu var: Toplam: 1 + b + b2 + ... + bd d Örnek: 12 derinlikli tam arama ağacında 0,…,11 derinlikte her düğümün 10 çocuğu var. 12.ci derinlikteki düğümlerin çocukları yoktur. Böylece, ağaçta 1 + 10 + 100 + 1000 + ... + 1012 = (1013 - 1) düğüm var

Enine aramada mekan ve zaman değerlendirmesi

Derinine Arama CG SC S SR W CS L A SG FA R E Arama ağacı 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 en sol ve genişlenmemiş düğümle devam ettirilir. başarı

Derinine Arama CG SC S SR W CS L A SG FA R E Arama ağacı 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ı

Derinine arama CG SC S SR W CS L A SG FA R E SR L A R FA SG S SC CG CS Arama ağacı Derinine arama Derinine arama işlemleri ardışıklığı SR L A R FA SG S SC CG CS W E CS’ 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 SCS SR L A R FA SG

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

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

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

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

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

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

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

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

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

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

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

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

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

Derinine aramanın özellikleri Tam? Değil: sonsuz derinlik, döngülü uzaylar olabilir 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ı olabilir Uzay? O(bm)- doğrusal uzay Optimal? Değil

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 A B C 3 9 7 D E G

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 olmayabilir Tam değil Exponensiyel zaman O(bd) Doğrusal mekan O(bd) şansımız varsa çözüm çok hızlı bulunabilir

Sınırlı Derinine Arama Derinliği sınırlı götürmekle derinine arama

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 kullanabiliriz. Döngülerin var olduğunu kabul etmiyoruz ve varsayıyoruz ki, sorun sonlu derinlik seviyesinde çözülebilir.

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) Zaman karmaşıklığı Uzay karmaşıklığı Tam? Optimal? O(bl) Evet(çözüm <=l derinlikte ise) hayır

Sınırlı Derinine arama Sınırlı derinine arama yönteminde iyi arama sınırını bulmak çoğu zaman kolay olmayabilir. 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 artırılır.

Yinelemeli derinine arama Satranç turnuvalarında oyunlar kesin zaman sınırı içinde oynanır. 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ştirmektedir.  Başka değişle, program önce 2 seviyede, sonra 3 , sonra 4… seviyede arama yapılır. Bu, arama için ayrılan süre dolana dek devam eder. Bundan sonra program, bulunan hamleler içinden en iyisini çözüm gibi kabul etmektedir.

Yinelemeli derinine arama fonksiyonu

Yinelemeli derinine arama l =0

Yinelemeli derinine arama l =1

Yinelemeli derinine arama l =2

Yinelemeli derinine arama l =3

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 b1 + (d-1)b2 + … + 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%

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)

Sabit maliyet Araması (Uniform-Cost Search) 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 (Branch and Bound Algorithm)

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 A B C 3 9 4 7 5 D E G G’ G”

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 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 değeri listedeki her bir açık düğümün değerinden küçük veya eşittir Eksponensiyel zaman ve mekan karmaşıklığı (bd) ; d- en küçük değerli çözüm için çözüm yolunun derinliğidir

Tekrarlanan Durumlardan Kurtulmak 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ı

Tekrarlanan Durumlardan Kurtulmak Kuyruk / stack = [kök durum] bulundu = FALSE Açılan durumlar = boş While (kuyruk / stack <> boş) and (bulundu <> FALSE) Kuyruk / stack’ ten ilk durumu (N) çek N’ yi açılan durumlar listesine ekle Eğer N hedef durumsa, bulundu = TRUE N’den gidilebilecek tüm durumlardan açılan durumlar listesinde olmayanları kuyruğun sonuna / stack’ in başına ekle

İki yönlü Arama- Bi-directional search Başlangıç durumdan amaca ve amaç durumundan başlangıca doğru aynı zamanda arama Yollar kesiştiğinde durmalı Tek bir başlangıç ve amaç durumu oldukça, ayrıca, hareketler değiştirilebilir oldukça iyidir Çözüme daha hızlı ulaşmak mümkün olabilir

İki yönlü Arama- Bi-directional search b=10, d=6 için her bir yön 3 derinliğinde olur ve oluşturulan düğüm sayısı 2,222 dir. Genişlik öncelikli (enlemesine) aramada bu sayı 1,111,111. Bazı problemler (?) için, geriye doğru operatörleri kullanmak zordur.

İki yönlü Arama- Bi-directional search İleri ve geri aramaların her biri sadece yarım yol gider. Enlemesine arama yapılır. Tam? Evet Zaman? O((bd)/2) Mekan? O((bd)/2) Optimal? Eğer tüm maliyetler eşitse, Evet

Bilgisiz Arama stratejilerinin karşılaştırılması * maliyetlerin eşit yani her adım için = 1 birim olduğu durumlar

Bilgisiz Arama Yöntemlerinin özeti 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. Enine ve derinine arama algoritmaları sonlu arama ağacında tüm düğümlerin bakılmasını gerektirebilir. Ayrıca, her adımdaki maliyetler eşit değilse, en iyi (optimal) çözümü garantileyemez. Bu veya diğer algoritmalardan birisinin seçimi, çözülecek sorunun yapısı, gereksinimleri, kıstaslarına bağlıdır. Kısmi yolların, uygun düzeyde bir derinlikten sonra ölü sona veya başarılı sona ulaşacağına inanılıyorsa, derinine arama yöntemini kullanmak mantıklıdır. Yinelemeli Derinine arama küçük bellek alanı ister (derinine arama gibi) ve en kısa yolu önce bulur (enine arama gibi).

Bilgisiz Arama Yöntemlerinin özeti Yol değeri (maliyetlerini) dikkate almadan, garantili biçimde optimal çözümü bulmak istiyorsanız, enine arama yöntemi öncelikle kullanılmalıdı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 (ikinci bölümde işleyeceğimiz sezgisel, vb) 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.

Arama algoritmaları için örnekler http://www.cse.unl.edu/~choueiry/S03-476-876/searchapplet/index.html https://courses.cs.washington.edu/courses/cse473/06sp/MazeRunnerDemo/search_algorithm_demo.htm http://cs.lmu.edu/~ray/notes/usearch/