Yapay Zeka BM437, Bahar 2014-1015 Öğretim Üyesi: Yrd. Doç. Dr. Mehmet ŞİMŞEK
Günün Dersi Arama Algoritmaları Problem çözme ajanları Problem tipleri Problem formülasyonu Örnek problemler Temel arama algoritmaları
Problem Çözme Ajanları 3
Örnek: Romanya Tatilde Romanya dasınız. İlk olarak Arad şehrinde. Bucharest e gideceksiniz. Amacı formülleştir: Bucharest te ol. Problemi formülleştir: durumlar: değişik şehirler eylemler: şehirler arasında hareket Çözümü Bul: Sıralı şehirler, ör: Arad, Sibiu, Fagaras, Bucharest 4
Örnek: Romanya 5
Problem tipleri Deterministik, tam olarak gözlemlenebilir (fully observable) Tek durumlu problem Ajan tam olarak hangi durumda olduğunu bilir; çözüm bir dizidir. Gözlemlenemez (Non-observable) algılayıcısız problem Ajan tam olarak nerde olduğunu bilemeyebilir; çözüm bir dizidir Nondeterministik ve/veya kısmen gözlemlenebilir (partially observable) İhtimal problemi Algılama, bulunulan durumla ilgili yeni bilgiler verir Çözüm bir ihtimaller planıdır Bilinmeyen durum uzayı keşif problemi 6
Örnek: elektrikli süpürge Deterministik Tek durum, #5 ile başla. Çözüm? 7
Örnek: elektrikli süpürge Deterministik Tek durum, #5 ile başla. Çözüm? [Sağ; çek] Gözlemlenemez Olası başlangıç durumları {1; 2; 3; 4; 5; 6; 7; 8} Ör:, Sağ {2; 4; 6; 8}. Çözüm?? 8
Örnek: elektrikli süpürge Deterministik Tek durum, #5 ile başla. Çözüm? [Sağ; çek] Gözlemlenemez Olası başlangıç durumları {1; 2; 3; 4; 5; 6; 7; 8} Ör:, Sağ {2; 4; 6; 8}. Çözüm?? [Sağ; Çek; Sol; Çek] Nondeterministik Tek durum, #5 ile başla. Algılama: kir, konum. Çözüm?? 9
Örnek: elektrikli süpürge Deterministik Tek durum, #5 ile başla. Çözüm? [Sağ; çek] Gözlemlenemez Olası başlangıç durumları {1; 2; 3; 4; 5; 6; 7; 8} Ör:, Sağ {2; 4; 6; 8}. Çözüm?? [Sağ; Çek; Sol; Çek] Nondeterministik Tek durum, #5 ile başla. Algılama: kir, konum. Çözüm?? [Sağ; Eğer kirliyse Çek] 10
Bir Problem 4 madde ile tanımlanabilir: Tek Durumlu Problemi Formülleştirmek 1. Başlangıç durumu. ör, «Arad da» 2. Eylemler veya takipçi fonksiyonu (successor function) S(x) = eylem-durum çiftlerinin kümesi Ör:, S(Arad) = {<Arad Zerind, Zerind>, } 3. Amaç testi, açık, ör:, x = "Bucharest te" gizli, ör:, ŞahMat(x) 4. Yol maliyeti (eklemeli) Ör:, uzaklıkların toplamı, gerçekleştirilen eylemlerin sayısı, vb. c(x,a,y) adım maliyeti, sıfırdan büyük Bir çözüm, başlangıç durumundan amaç durumuna yönlendiren eylemler sırasıdır. 11
Bir durum uzayı belirleme Gerçek dünya fazlasıyla karmaşık Problem çözmek için durum uzayı mutlaka özetlenmeli (Özet) durum= gerçek durumlar kümesi (Özet) eylem= gerçek eylemlerin karmaşık kombinasyonları Ör:, "Arad Zerind" eylemi karmaşık bir muhtemel yollar, sapakları, molalar vb. Şeyleri içerir. Gerçekleştirilebilirliğin garanti edilmesi için, herhangi bir "Arad da gerçek durumu "Zerind de«gerçek durumuna varmalı. (Özet) çözüm = Gerçek dünyaya çözüm olan gerçek yolların kümesi Herbir özetleme işi, orijinal problemden daha «kolay» olmalı 12
Elektrikli süpürge için durum uzayı grafı Durumlar? Eylemler? Amaç testi? Yol maliyeti? 13
Elektrikli süpürge için durum uzayı grafı Durumlar? «kirli» ve «konum». İkisi de sayı Eylemler? Amaç testi? Yol maliyeti? 14
Elektrikli süpürge için durum uzayı grafı Durumlar? «kirli» ve «konum». İkisi de sayı Eylemler? «sol», «sağ», «çek» Amaç testi? Yol maliyeti? 15
Elektrikli süpürge için durum uzayı grafı Durumlar? «kirli» ve «konum». İkisi de sayı Eylemler? «sol», «sağ», «çek» Amaç testi? «hiçbir yerde kir kalmayacak» Yol maliyeti? 16
Elektrikli süpürge için durum uzayı grafı Durumlar? «kirli» ve «konum». İkisi de sayı Eylemler? «sol», «sağ», «çek» Amaç testi? «hiçbir yerde kir kalmayacak» Yol maliyeti? «eylem başı 1» 17
Örnek: 8 parçalı bulmaca Durumlar? Eylemler? Amaç testi? Yol maliyeti? 18
Örnek: 8 parçalı bulmaca Durumlar? «karoların konumları» Eylemler? Amaç testi? Yol maliyeti? 19
Örnek: 8 parçalı bulmaca Durumlar? «karoların konumları» Eylemler? «boş olan sol, sağ, yukarı, aşağıya taşı» Amaç testi? Yol maliyeti? 20
Örnek: 8 parçalı bulmaca Durumlar? «karoların konumları» Eylemler? «boş olan sol, sağ, yukarı, aşağıya taşı» Amaç testi? «istenen durum» (sağdaki şekil) Yol maliyeti? 21
Örnek: 8 parçalı bulmaca Durumlar? «karoların konumları» Eylemler? «boş olan sol, sağ, yukarı, aşağıya taşı» Amaç testi? «istenen durum» (sağdaki şekil) Yol maliyeti? «eylem başı 1» 22
Örnek: montaj robotu Durumlar? Eylemler? Amaç testi? Yol maliyeti? 23
Örnek: montaj robotu Durumlar? «parçaları birleştirecek olan robot kollarının gerçek açıları» Eylemler? Amaç testi? Yol maliyeti? 24
Örnek: montaj robotu Durumlar? «parçaları birleştirecek olan robot kollarının gerçek açıları» Eylemler? «robot eklemlerinin hareketleri» Amaç testi? Yol maliyeti? 25
Örnek: montaj robotu Durumlar? «parçaları birleştirecek olan robot kollarının gerçek açıları» Eylemler? «robot eklemlerinin hareketleri» Amaç testi? «montajın tamamlanması» Yol maliyeti? 26
Örnek: montaj robotu Durumlar? «parçaları birleştirecek olan robot kollarının gerçek açıları» Eylemler? «robot eklemlerinin hareketleri» Amaç testi? «montajın tamamlanması» Yol maliyeti? «montaj süresi» 27
Ağaç Arama Algoritmaları Temel mantık: Çevrimdışı olarak, zaten incelenmiş durumlardan incelenmeye aday durumlar oluşturma (aynı zamanda genişletme expanding- olarak bilinir.) 28
Ağaç Arama Örneği 29
Ağaç Arama Örneği 30
Ağaç Arama Örneği 31
Gerçekleştirme: durumlara karşılık düğümler Bir durum, fiziksel bir düzenin gösterimidir. Bir düğüm bir arama ağacını oluşturan veri yapısı parçalarından biridir ve durum, ebeveyn düğüm, eylem, yol maliyeti g(x) ve derinlik değerlerini içerir. Genişletme fonksiyonu Expand yeni düğümler oluşturur, bazı alanları doldurur ve SuccessorFn fonksiyonunu kullanarak ilgili durumları oluşturur. 32
Gerçekleştirme: genel ağaç arama 33
Arama Stratejileri Arama stratejisi, incelenecek (expand) edilecek bir sonraki düğümün seçilmesidir. Stratejiler aşağıdaki boyutlarda değerlendirilir: Tamlık (completeness): Eğer bir çözüm varsa, her zaman bu çözümü bulabiliyor mu? Zaman karmaşıklığı (time complexity): oluşturulan düğümlerin sayısı Alan karmaşıklığı (space complexity): bir anda hafızada tutulması gereken düğüm sayısı Optimallik (optimality): Her zaman en düşük maliyetli çözümü bulabiliyor mu? Zaman ve Alan karmaşıklıkları aşağıdaki cinslerden ölçülür: b: arama ağacının maksimum dallanma faktörü (branching factor) d: en az maliyetli çözümün derinliği m: durum uzayının maksimum derinliği ( olabilir) 34
Bilgisiz (Uninformed) Arama Stratejileri Bilgisiz arama stratejileri yalnızca problem tanımında verilen bilgileri kullanırlar Breadth-first search Uniform-cost search Depth-first search Depth-limited search Iterative deepening search 35
Breadth-first search Genişletilmemiş en sığ düğümü genişlet (Expand shallowest unexpanded node) gerçekleştirim: Fringe (kenar) bir FIFO kuyruk. Yani, yeni adaylar bu kuyruğun sonuna eklenir. 36
Breadth-first search Genişletilmemiş en sığ düğümü genişlet (Expand shallowest unexpanded node) gerçekleştirim: Fringe (kenar) bir FIFO kuyruk. Yani, yeni adaylar bu kuyruğun sonuna eklenir. 37
Breadth-first search Genişletilmemiş en sığ düğümü genişlet (Expand shallowest unexpanded node) gerçekleştirim: Fringe (kenar) bir FIFO kuyruk. Yani, yeni adaylar bu kuyruğun sonuna eklenir. 38
Breadth-first search Genişletilmemiş en sığ düğümü genişlet (Expand shallowest unexpanded node) gerçekleştirim: Fringe (kenar) bir FIFO kuyruk. Yani, yeni adaylar bu kuyruğun sonuna eklenir. 39
Breadth-first search ün özellikleri Tamlık (completeness): Evet (eğer b sınırlı ise) Zaman karmaşıklığı (time complexity): 1+b+b 2 +b 3 + +b d + b(b d -1) = O(b d+1 ) Alan karmaşıklığı (space complexity): O(b d+1 ) (bütün düğümleri hafızada tutar) Optimallik (optimality): Evet (eğer adım başı maliyet 1 ise) Alan büyük problem. Kolaylıkla 100MB/sec ile düğümler üretebilir. Yani 24s = 8640GB. 40
Uniform-cost search En az maliyetle genişletilebilecek düğümü genişlet (Expand least-cost unexpanded node) gerçekleştirim: Fringe (kenar) maliyete göre sıralanmış bir kuyruk. Eğer her bir adımın maliyeti aynı ise breadth-first ile eşdeğerdir. Bu arama algoritması yolun derinliğine göre değil maliyetine göre hareket eder. Bu nedenle, karmaşıklığın b ve d cinsinden hesabı zordur. Tamlık (completeness): Evet. Zaman karmaşıklığı (time complexity): O(b ceiling(c*/ ε) ), burada C * optimal çözümün maliyeti, ε ise bir yolun minimum maliyetidir. Alan karmaşıklığı (space complexity): O(b ceiling(c*/ ε) ) Optimallik (optimality): Evet. 41
Depth-first search Genişletilmemiş en derin düğümü genişlet (Expand deepest unexpanded node) gerçekleştirim: Fringe (kenar) bir LIFO kuyruk (ya da bir yığın). Yeni adaylar bu kuyruğun sonuna eklenir. 42
Depth-first search Genişletilmemiş en derin düğümü genişlet (Expand deepest unexpanded node) gerçekleştirim: Fringe (kenar) bir LIFO kuyruk (ya da bir yığın). Yeni adaylar bu kuyruğun sonuna eklenir. 43
Depth-first search Genişletilmemiş en derin düğümü genişlet (Expand deepest unexpanded node) gerçekleştirim: Fringe (kenar) bir LIFO kuyruk (ya da bir yığın). Yeni adaylar bu kuyruğun sonuna eklenir. 44
Depth-first search Genişletilmemiş en derin düğümü genişlet (Expand deepest unexpanded node) gerçekleştirim: Fringe (kenar) bir LIFO kuyruk (ya da bir yığın). Yeni adaylar bu kuyruğun sonuna eklenir. 45
Depth-first search Genişletilmemiş en derin düğümü genişlet (Expand deepest unexpanded node) gerçekleştirim: Fringe (kenar) bir LIFO kuyruk (ya da bir yığın). Yeni adaylar bu kuyruğun sonuna eklenir. 46
Depth-first search Genişletilmemiş en derin düğümü genişlet (Expand deepest unexpanded node) gerçekleştirim: Fringe (kenar) bir LIFO kuyruk (ya da bir yığın). Yeni adaylar bu kuyruğun sonuna eklenir. 47
Depth-first search Genişletilmemiş en derin düğümü genişlet (Expand deepest unexpanded node) gerçekleştirim: Fringe (kenar) bir LIFO kuyruk (ya da bir yığın). Yeni adaylar bu kuyruğun sonuna eklenir. 48
Depth-first search Genişletilmemiş en derin düğümü genişlet (Expand deepest unexpanded node) gerçekleştirim: Fringe (kenar) bir LIFO kuyruk (ya da bir yığın). Yeni adaylar bu kuyruğun sonuna eklenir. 49
Depth-first search Genişletilmemiş en derin düğümü genişlet (Expand deepest unexpanded node) gerçekleştirim: Fringe (kenar) bir LIFO kuyruk (ya da bir yığın). Yeni adaylar bu kuyruğun sonuna eklenir. 50
Depth-first search Genişletilmemiş en derin düğümü genişlet (Expand deepest unexpanded node) gerçekleştirim: Fringe (kenar) bir LIFO kuyruk (ya da bir yığın). Yeni adaylar bu kuyruğun sonuna eklenir. 51
Depth-first search Genişletilmemiş en derin düğümü genişlet (Expand deepest unexpanded node) gerçekleştirim: Fringe (kenar) bir LIFO kuyruk (ya da bir yığın). Yeni adaylar bu kuyruğun sonuna eklenir. 52
Depth-first search Genişletilmemiş en derin düğümü genişlet (Expand deepest unexpanded node) gerçekleştirim: Fringe (kenar) bir LIFO kuyruk (ya da bir yığın). Yeni adaylar bu kuyruğun sonuna eklenir. 53
Depth-first search ün özellikleri Tamlık (completeness): Hayır: sonsuz derinlikteki uzaylarda, döngü barındıran uzaylarda başarısız. Yol üzerindeki tekrar eden durumlardan kaçınmak gerekir. Sınırlı uzaylarda Tam. Zaman karmaşıklığı (time complexity): O(b m ): m d den çok büyükse korkunç! m, bir düğümün maksimum derinliği Alan karmaşıklığı (space complexity): O(bm). Optimallik (optimality): Hayır. 54
Depth-limited search = depth-first search ün derinliğinin l değeri ile sınırlandırılmış biçimi. Yani, l. derinlikteki düğümlerin aday düğümleri yok Recursive gerçekleştirim: 55
Iterative deepening search 56
Iterative deepening search l =0 57
Iterative deepening search l =1 58
Iterative deepening search l =2 59
Iterative deepening search l =3 60
Iterative deepening search d derinliği ve b dallanma faktörü ile depth-limited search te oluşturulan düğüm sayısı N DLS = b 0 + b 1 + b 2 + + b d-2 + b d-1 + b d d derinliği ve b dallanma faktörü ile iterative deepening search te oluşturulan düğüm sayısı N IDS = (d+1)b 0 + d b 1 + (d-1)b 2 + + 3b d-2 +2b d-1 + 1b d b = 10, d = 5 için N DLS = 1 + 10 + 100 + 1,000 + 10,000 + 100,000 = 111,111 N IDS = 6 + 50 + 400 + 3,000 + 20,000 + 100,000 = 123,456 Getirdiği yük= (123,456-111,111)/111,111 = 11% 61
Iterative deepening search ün özellikleri Tamlık (completeness): Evet Zaman karmaşıklığı (time complexity): (d+1)b 0 + d b 1 + (d-1)b 2 + + b d = O(b d ) Alan karmaşıklığı (space complexity): O(bd). Optimallik (optimality): Evet. Eğer adım maliyeti 1 ise. 62
Algoritmaların Özeti 63
Tekrar eden durumlar Tekrar eden durumların tespit edilememesi doğrusal bir problemi üssel hale getirebilir. 64
Son Söz Problem formülasyonu, gerçek dünyadaki detaylardan uzak durarak durum uzayının özetlenmesidir. 65