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ı
Ö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:
Örnek: Romanya
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
Örnek: elektrikli süpürge
• Deterministik
• Tek durum, #5 ile başla. Çözüm?
Ö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??
Ö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??
Ö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]
Tek Durumlu Problemi Formülleştirmek
Bir Problem 4 madde ile tanımlanabilir:
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.
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
Elektrikli süpürge için durum uzayı grafı
• Durumlar?
• Eylemler?
• Amaç testi?
• Yol maliyeti?
Elektrikli süpürge için durum uzayı grafı
• Durumlar? «kirli» ve «konum». İkisi de sayı
• Eylemler?
• Amaç testi?
• Yol maliyeti?
Elektrikli süpürge için durum uzayı grafı
• Durumlar? «kirli» ve «konum». İkisi de sayı
• Eylemler? «sol», «sağ», «çek»
• Amaç testi?
• Yol maliyeti?
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?
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»
Örnek: 8 parçalı bulmaca
• Durumlar?
• Eylemler?
• Amaç testi?
• Yol maliyeti?
Örnek: 8 parçalı bulmaca
• Durumlar? «karoların konumları»
• Eylemler?
• Amaç testi?
• Yol maliyeti?
Örnek: 8 parçalı bulmaca
• Durumlar? «karoların konumları»
• Eylemler? «boş olan sol, sağ, yukarı, aşağıya taşı»
• Amaç testi?
• Yol maliyeti?
Ö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?
Ö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»
Örnek: montaj robotu
• Durumlar?
• Eylemler?
• Amaç testi?
• Yol maliyeti?
Örnek: montaj robotu
• Durumlar? «parçaları birleştirecek olan robot kollarının gerçek açıları»
• Eylemler?
• Amaç testi?
• Yol maliyeti?
Ö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?
Ö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?
Ö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»
Ağaç Arama Algoritmaları
• Temel mantık:
– Çevrimdışı olarak, zaten incelenmiş durumlardan incelenmeye aday durumlar oluşturma (aynı zamanda genişletme –expanding- olarak bilinir.)
–
–
Ağaç Arama Örneği
Ağaç Arama Örneği
Ağaç Arama Örneği
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.
Gerçekleştirme: genel ağaç arama
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
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
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.
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.
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.
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.
Breadth-first search’ün özellikleri
– Tamlık (completeness): Evet (eğer b sınırlı ise)
– Zaman karmaşıklığı (time complexity): 1+b+b2+b3+… +bd + b(bd-1) = O(bd+1) – Alan karmaşıklığı (space complexity): O(bd+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.
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(bceiling(C*/ ε)), burada C* optimal çözümün maliyeti, ε ise bir yolun minimum maliyetidir.
– Alan karmaşıklığı (space complexity): O(bceiling(C*/ ε)) – Optimallik (optimality): Evet.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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(bm): 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.
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:
Iterative deepening search
Iterative deepening search l =0
Iterative deepening search l =1
Iterative deepening search l =2
Iterative deepening search l =3
Iterative deepening search
• d derinliği ve b dallanma faktörü ile depth-limited search’te oluşturulan düğüm sayısı
NDLS = b0 + b1 + b2 + … + bd-2 + bd-1 + bd
• d derinliği ve b dallanma faktörü ile iterative deepening search’te oluşturulan düğüm sayısı
NIDS = (d+1)b0 + d b1 + (d-1)b2 + … + 3bd-2 +2bd-1 + 1bd
• b = 10, d = 5 için
•
– NDLS = 1 + 10 + 100 + 1,000 + 10,000 + 100,000 = 111,111 – NIDS = 6 + 50 + 400 + 3,000 + 20,000 + 100,000 = 123,456
• Getirdiği yük= (123,456 - 111,111)/111,111 = 11%
Iterative deepening search’ün özellikleri
– Tamlık (completeness): Evet
– Zaman karmaşıklığı (time complexity): (d+1)b0 + d b1 + (d-1)b2 + … + bd = O(bd) – Alan karmaşıklığı (space complexity): O(bd).
– Optimallik (optimality): Evet. Eğer adım maliyeti 1 ise.