YAPAY ZEKA Yrd. Doç. Dr. Rembiye Kandemir Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü
Bilgisiz Arama Stratejileri Derinlik Öncelikli Arama –Depth First Search (DFS) Genişlik Öncelikli Arama –Breadth First Search (BFS) Düşük Maliyetli Arama –Uniform Cost Search (UCS) Sınırlı Derinlikte Arama -Depdth-Limited Search (DLS) Tekrarlı Derinlikte Arama –Iterative Deeping Search (IDS) İki Yönlü Arama –Bidirectional Search (BS)
Uniform Cost Search (Düşük Maliyetli Arama) Genişlik öncelikli aramaya benzer. Dallar üzerinde toplam en düşük maliyetli düğümü seçer ve genişletir. Depdth-Limited Search (Sınırlı Derinlikte Arama) Derinlik öncelikli aramaya benzer, ağaç dalları çok fazla ise amaç çözüme ulaşmak mümkün olmayabilir. Bu nedenle derinlik aramada bir yere saplanmamak için sınır şartları verilir.
Iterative-Deeping Search (TekrarlıDerinlikte Arama) Tekrarlı derinlikte arama tüm olası derinlik sınırlarını deneyerek, en iyi derinlik sınırını seçen bir stratejidir. Tekrarlı derinlikte arama, derinlik öncelikli ve genişlik öncelikli aramaların iyi yönlerinin birleşimidir. Bidirectional Search (İki YönlüArama) İleri ve geri aramaların her biri sadece yarım yol gider.
Arama Stratejilerinin Karşılaştırma Tablosu
Sezgisel Problem Çözümleme İnsan farkında olmadan sezgisel yaklaşımlarla iç içe yaşamaktadır Kısıtlı zaman içerisinde karar vermeler, Karmaşık olaylarda seçimin yapılması, Yargılar, Bireyler arasında olan ilişkiler, Düşüncelerin değişmesi vs. “Bana dostunu söyle sana kim olduğunu söyleyeyim” “Meyve veren ağıcın başı aşağı olur”
Sezgisellik nedir? “sezgisellik” sözcüğü “heuristic” kelimesinin Türkçe eşdeğer anlamı olarak kullanılmaktadır. Bu kelime ise Yunanca “Eureka” (Buldum) kelimesinden gelmektedir. Daha sonraları Arşimet’in kullandığı “eureka” kelimesini yanlış olarak “Heureka” yazılması ile ortaya çıkmaktadır. Fagenbaum ve Fieldman tarafından sezgisellik tanımı; Sezgisellik (sezgisel kurallar, sezgisel yöntem) problemin durum uzayı çok büyük olduğunda, çözümün aranmasını kesin biçimde sınırlayan herhangi bir kural, strateji, hile, sadeleştirme ve diğer etmenler kullanımıdır.
Sezgisel Arama Stratejileri Best-First Search – En İyi Arama Gready Search (GBFS) A* Search (A*) – A* Arama Hill Climbing Search (HCS) – Tepe Tırmanma Simulated Annealing (SA)– Isıl İşlem Arama Genetik Search (GA) – Genetik Arama
Best First Search (En İyi Arama) Greedy Search En İyi Arama, bilgilendiren arama metodlarındandır. Bu yöntem Breath-First ile Depth-First aramalarının en iyi yönlerini birleştirmiştir. Düğümler değerlendirme fonksiyonu f(n) ’e göre genişletilir. Geleneksel olarak f bir maliyet ölçüsüdür. Üretilen düğümler içinden en uygunu seçilir ve bu düğüm genişletilir. Seçme işlemi h(n) (sezgisel fonksiyon)’ e göre yapılır. h(n) : n düğümünden amaç düğüme olan tahmini en ucuz maliyet. Varsayım : h(n) = 0 ise n amaç düğümdür.
Greedy Best-First Search (GBFS) Algoritması 1. Başlangıç düğümlerin sınıflandırılmış 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ı ver 5. Diğer durumlarda, N ’ye n ’nin çocuklarını ekle, N deki düğümleri, bunların amaçtan tahmin edilen mesafelerine göre sınıflandır ve adım 2 ye geri dön.
Greedy Best-First Search - (GBFS) (Devam) Bütünlük : Yok. (Bir döngüye saplanıp kalabilir. Tekrarlı bir alanda sınırlı arama yapar.) Zaman Karmaşıklığı : O(bm) , iyi bir sezgisel ile yeterli ölçüde gelişme sağlanabilir Alan Karmaşıklığı : O(bm) (Bütün düğümleri bellekte tutar.) Optimallik : Yok
Greedy Best-First Search (Devam) 30 10 20 40 ‘açık’ düğümler 1 35 15 3 27 18 2 25 45 Yrd.Doç.Dr.Rembiye Kandemir
Greedy Best-First Search (Devam)
Greedy Best-First Search (Devam)
Greedy Best-First Search (Devam)
Greedy Best-First Search (Devam)
Best-First Aramaya göre Arad-Sibiu-Fagares-Bucharest Toplam Uzaklık 140+99+211=450
A* Search (Toplam Yolu Azaltma) Belirli ve iyi tanımlanmış koşullar altında, bu sezgisel başlangıç ve amaç noktası arasında, eğer varsa minimum maliyetli yolu en az sayıda düğüm oluşturarak bulacağı garanti eder. A* akla uygun bir sezgisel kullanır. n düğümü göstermek üzere; f(n) = g(n)+h(n): değerlendirme fonksiyonu tanımlanır (başlangıç noktasından bulunan düğüme kadar tahmini toplam maliyet) g(n): Başlangıç noktasından, bulunan düğüme kadar olan maliyetin doğru ölçümü (gerçek mesafe olabilir) h(n): Mevcut düğümden amaç düğümüne kadar en az maliyet tahmini. Bu fonksiyon negatif olmamalı ve asla amaç düğümüne ulaşım maliyetinden daha fazla olmamalı. h : Tasarım problemine bağlı olarak değişen fonksiyon. g fonksiyonu S ’den (başlangıçtan) n ’ye her yol için kesin olarak hesaplanırken, h fonksiyonu daha az belirgin ve sezgisel bir bilgidir. Eğer tüm düğümler için h=0 ise araştırma en iyi öncelikli araştırmaya (best-first search) döner.
A* Search (Toplam Yolu Azaltma) (Devam...) Bütünlük : Var. ( f ≤ f(G) durumunda . ) Zaman Karmaşıklığı : Üssel olarak artmakta Alan Karmaşıklığı : O(bm) (Bütün düğümleri bellekte tutar.) Optimallik : Var. ( fi+1 ‘i genişletemediğinde fi sonlanmıştır) C* maliyet açısından optimal çözüm olmak üzere A* tüm düğümleri genişletir f(n) < C* olduğunda A* bazı düğümleri genişletir f(n) = C* olduğunda A* hiç bir düğümü genişletmez f(n) > C* olduğunda
A* Search (Toplam Yolu Azaltma) (Devam...)
A* Search (Toplam yolu Azaltma) (Devam...)
A* Search (Toplam yolu Azaltma) (Devam...)
A* Search (Toplam yolu Azaltma) (Devam...)
A* Search (Toplam yolu Azaltma) (Devam...)
A* Search (Toplam yolu Azaltma) (Devam...)
A* göre Arad-Sibiu-Rimnicu-Pitesti-BucharestToplam Uzak 140+80+97+101=418
Örnek: 8-taş bulmacası Başlangıç Amaç Problem : A* algoritması kullanılarak 8 taş bulmacasının çözümü Durumlar : boş, 1, 2, 3, 4, 5, 6, 7, 8 numaralı taşlar Operatör : Sağ, Sol, Yukarı, Aşağı hareketleri Maliyet : Her hareket 1 birim
Örnek: 8-taş bulmacası 8-taş bulmacasında 9! = 362,800 durum vardır Başlangıç Amaç 8-taş bulmacasında 9! = 362,800 durum vardır f(n) = g(n) + h(n) A* arama için g(n): başlangıçtan n düğümüne kadar olan gerçek uzaklığı ifade eder. h(n): n düğümü için sezgisel bir değer, bu değeri bulmak için farklı yöntemler kullanılır.
Örnek: 8-taş bulmacası h1(n) = yerinde bulunan taşların sayısı h2(n) = yerinde bulunmayan taşların sayısı h2(n) = 4
Örnek: 8-taş bulmacası h3(n) = taşların hedefteki yerlerine uzaklıkları toplamı (yatay ve dikey hane toplamları) Bu uzaklıklara Manhattan uzaklığı da denir h3(n) = 1 + 1 + 2 + 2 = 6
Sezgisellerin hakimiyeti h1 ve h2 sezgiseli verilmekte h1 ve h2 her ikisi de akla uygun veriler h1 ve h2 her ikisi de kolay hesaplanabilir Herhangi bin n düğümü için, h2(n) >= h1(n) Hangisi daha iyi? h2 hakimdir h1 bütün arama boyunca h2 daha iyi sonuç üretir.
Tipik bir arama maliyeti : d = 14 ise IDS = 3,493,941 düğüm A*(h1) = 539 düğüm A*(h2) = 113 düğüm d = 24 ise IDS ≈ 54,000,000,000 düğüm A*(h1) = 39,135 düğüm A*(h2) = 1,641 düğüm