BLM-431 YAPAY ZEKA Ders-3 Durum Uzayında Arama Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/
Dersin Hedefleri Durum uzayı temsilini öğrenmek ve durum uzayında arama problemi olarak formülize edilen bazı genel problemlere aşinalık kazanmak Verilen bir problem tanımından, problemi durum uzayı arama problemi olarak formülize edebilme Durumların onların özellikleri ile nasıl temsil edilebildiğini anlamak. Hedef Temelli etmenlerin durum uzayında arama kullanılarak modellenmesi. 2
Akıllı Etmen 3
Hedefe Yönlendirilmiş Etmen Hedefe yönlendirilmiş etmen, kesin hedeflere ihtiyaç duyar. Birçok problem, bir durum kümesi ve bir durumun diğerine nasıl değiştiğinin kural kümesi olarak temsil edilebilir. Bir etmen istenen hedefe ulaşmak için bir dizi eylem seçmek zorundadır. 4
Arama Problemi Her bir durum, etmenin bulunduğu ortamın soyut bir temsilidir. Her durum etmenin biçiminin belirtilmesi için bir soyutlamadır. Bir etmen bir eylem gerçekleştirerek, bulunduğu durumdan o durumun varislerinden birine geçer. Başlangıç Durumu: Etmenin başlangıç biçiminin tanımlanmasıdır. Bir eylem / operatör etmeni bir durumdan diğerine sokar. Bir durum birçok varis duruma sahip olabilir. 5
Arama Problemi Plan, bir etmenin başlangıç durumundan başlayarak hedefe ulaşana kadar bir eylem dizisini gerçekleştirmesidir. Path (yol) ise eylem dizisini tanımlar. Hedef, ortama ait bir grup istenen durumun tanımlamasıdır. Hedef durumlar sıklıkla bir hedef testi ile belirtilir. Hedef testi hedef durumun birini sağlamalıdır. Bir yolun maliyeti genellikle farklı adımların maliyetlerinin toplamı olan pozitif bir saydır. 6
Arama Problemi Problem Formülasyonu, değerlendirmek üzere uygun durumları seçmek ve bir durumdan diğerine geçmek için uygun operatörleri seçmek. Bize verilen bir problemin, durum kümeleri ve eylem (operatör) kümeleri olarak formülize edilmesidir. Arama, başlangıç durumuna uygulanacak olan eylem dizilerini hayal etme ve hangi eylem dizisinin hedefe ulaştığını kontrol etme süreci 7
Arama Problemi Bir etmen bir durumdayken mümkün olan eylemlerden birini gerçekleştirir. Arama Problemi: Etmeni başlangıç durumdan hedef duruma götürecek eylemler dizisinin bulunmasıdır. Böylece arama problemi bir yönlü graf olarak temsil edilmiş olur. Durumlar düğümler ile temsil edilir. İzin verilen eylemler ise bağlantılar ile temsil edilir. 8
Arama Problemi S: tüm durumlar kümesi S 0 : başlangıç durumu A: S S operatör kümesi G: hedef durum kümesi Arama Problemi: Etmeni başlangıç durumdan hedef duruma götürecek eylemler dizisinin bulunması 9
Arama İşlemi Mevcut durumu kontrol et Bir sonraki duruma geçebilmek için izin verilen eylemleri gerçekleştir Yeni durumun hedef durum olup olmadığını kontrol et. Eğer değilse, yeni durum mevcut durum olur ve bu işlemler bir çözüm bulana kadar veya durum uzayı bitene kadar tekrar edilir. Böylece etmen başlangıç durumundan başlayarak durum uzayını keşfeder ve amacı hedef duruma varmaktır. 10
Arama İşlemi 11
Arama İşlemi 12
Arama İşlemi 13
Arama İşlemi 14
Arama İşlemi 15
Arama İşlemi 16
Hanoi Kuleleri 3 adet çubuk ve 3 adet diskimiz var. Operatörler: çubukların herhangi birinin en üstünde yer alan disk, bir başka çubuğun yine en üst konumuna taşınabilir. Amaç, diskleri aynı dizilim sırası ile A çubuğundan B çubuğuna taşımak. 17
Hanoi Kuleleri Başlangıç durumundan hedef duruma gitmek için gerçekleştirilecek eylem dizisi ne olmalı? 18
Hanoi Kuleleri 19
Hanoi Kuleleri 20
Hanoi Kuleleri 21
Hanoi Kuleleri 22
Hanoi Kuleleri 23
Hanoi Kuleleri 24
Hanoi Kuleleri 25
Hanoi Kuleleri 26
Hanoi Kuleleri 27
Hanoi Kuleleri 28
Hanoi Kuleleri 29
Hanoi Kuleleri 30
Hanoi Kuleleri 31
Hanoi Kuleleri 32
8 Vezir Problemi 8 adet veziri satranç tahtasına öyle bir yerleştirin ki bu vezirlerden hiç biri diğeri hamle yapamasın. Bu problem için durum uzayını nasıl formülize edebiliriz ve bu problemi bir durum uzayında arama problemi olarak nasıl çözebiliriz? 33
8 Vezir Problemi Çözümü Örnek bir çözüm 34
8 Vezir Problemi Çözümü Geçerli olmayan bir çözüm 35
8 Vezir Problemi Formülasyon-1 Durumlar: 8 vezirin tahta üzerinde herhangi bir dizilimi Başlangıç durumu: Tahta üzerinde hiç vezir yok. Successor Fonksiyonu: Bir kareye bir vezir yerleştir. Tahtada 5 vezir varsa 64-5= 59 successor durumu vardır. Hedef Testi: Tahta üzerinde 8 vezir ve hiçbirine hamle yapılamıyor. 36
8 Vezir Problemi Formülasyon-1 Başlangıç durumunda 64 Successor 37
8 Vezir Problemi Formülasyon-1 Bir vezir yerleşti, Bu durumdayken mümkün 63 Successor daha var 38
8 Vezir Problemi Formülasyon-1 63 Successor 39
8 Vezir Problemi Formülasyon-1 63 Successor 40
8 Vezir Problemi Formülasyon-1 63 Successor 41
8 Vezir Problemi Formülasyon-1 63 Successor... 42
8 Vezir Problemi Formülasyon-2 Durumlar: 8 adet vezirin tahta üzerinde herhangi bir dizilimi Başlangıç durumu: Bütün vezirler 1. sütunda Successor Fonksiyonu: Bir vezirin yerini değiştir. Hedef Testi: Tahta üzerinde 8 vezir ve hiçbirine hamle yapılamıyor. 43
8 Vezir Problemi Formülasyon-2 Başlangıç durumu 44
8 Vezir Problemi Formülasyon-2 Vezirler 7 sütundan birine hareket ettirilir. 45
8 Vezir Problemi Formülasyon-2 Örnek bir ara durum 46
8 Vezir Problemi Formülasyon-3 Durumlar: k adet vezirin ilk k adet satırda hiçbirine hamle yapılamayacak şekilde herhangi bir dizilimi Başlangıç durumu: Tahtada hiç vezir yok Successor Fonksiyonu: (k+1). Satıra bir vezir ekle ve vezirlerin hiç birine hamle yapılamasın Hedef Testi: Tahta üzerinde 8 vezir ve hiçbirine hamle yapılamıyor. 47
8 Vezir Problemi Formülasyon-3 k = 3 için başlangıç durumu k+1 için 4. satırda 4. ve 8. sütunlara vezir konabilir. k=3 durumunda, 2 adet successor var. 48
8 Vezir Problemi Yapılan formülasyonlar arama algoritmaları için uygun mudur? Hangi arama algoritması hangi formülasyon için daha verimli çalışır? 49
Açık vs. Üstü Kapalı Durum Uzayları Durum uzayı açık bir şekilde temsil edilebilir. Durum uzayındaki tüm durumlar ve mümkün tüm eylemler ortaya konur. Yapay zeka problemlerinde durum uzayları büyüktür ve açık temsil zor ve gereksizdir. Durumları temsil etmek için metodlar vardır ve verilen bir durum ve operatör ile sonraki durumu üretilebilir. Durum uzayı tipik olarak üstü kapalı bir şekilde temsil edilir ve ihtiyaç duyulduğunda oluşturulur. Etmen Başlangıç durumunu bilir Opertatörleri bilir Durum uzayını böylece genişletebilir. Bir operatör bir düğümü açan fonksiyondur. Etmen verilen düğümün successor larını hesaplar. Etmen kendine verilen durum ve verilen operatörle successor düğümü oluşturabilecektir. 50
8-Puzzle Problemi 8 puzzle probleminde 9 kareden oluşan bir platform ve bu platform üzerinde 1 den 8 e kadar numaralanmış 8 blok bulunur. Bu bloklar belli bir dizilime sahip olur ve 9 kareden biri boştur. 8 puzzle probleminde amaç blokları boşluğa kaydırmak suretiyle verilen bir hedef dizilime ulaşmaktır. Hedef durum sistemin farklı bir biçimidir. 51
8-Puzzle Problemi Boşluk 4 veya 8 e kaydırılabilir. 52
8-Puzzle Problemi 53
8-Puzzle Problemi Durumlar Bir durum, 8 bloğun her birinin bir konumda tanımlanmasıdır Operasyonlar / Eylemler Boşluk sağa, sola, yukarı, aşağı hareket edebilir. Hedef Testi Mevcut durumun verilen hedef durumla uyuşması Yol Maliyeti (Path Cost) Boşluğun her bir hareketinin maliyeti 1 Boşluk kaç kere hareket ettirildi? Hedef minimum olan. 54
8-Puzzle Problemi Bu başlangıç durumundan iki adet mümkün eylem gerçekleştirebiliriiz. Bunlardan biri 4 ün sağa kayması, diğeri de 8 in yukarı kayması. Diğer bir deyişle boşluğun sola veya aşağı kayması 55
8-Puzzle Problemi Eğer boşluğu sola kaydırırsak elde edilen dizilim 56
8-Puzzle Problemi Eğer boşluğu aşağı kaydırırsak elde edilen dizilim 57
8-Puzzle Problemi Bu noktadan sonra boşluk aşağı veya sola kaydırılabilir. Boşluğu sağa kaydırmıyoruz çünkü eğer sağa kaydırırsak bir önceki duruma dönmüş oluruz. Bu şekilde 8 puzzle probleminin durum uzayını genişletmiş oluruz. Bu operatörün uygulanması sonucu sonucun tanımlandığı kapalı durum uzayının çok basit bir örneğidir. 58
Tic-tac-toe Bir diğer örnek olarak Tic-Tac-Toe oyununu ele alalım. Bu oyun single agent olarak modellenemez çünkü iki kişiyle oynanır. Tic-Tac-Toe oyununda 3x3 bir tablo var. Her oyuncu bir sembolü kullanarak tabloda bir hücreyi işaretler. Bu yöntemle Tic-Tac-Toe probleminin her bir durumu noktaların ve çarpıların konumları ile temsil edilebilir. 59
Tic-tac-toe 60
Tic-tac-toe Diyelim oyuncu noktayı şuraya yerleştirdi. Mümkün successorlar nelerdir? 61
Tic-tac-toe Mevcut durum için 8 adet successor var. Sonraki oyuncu hamlesi için 7 successor kaldı. 62
Tic-tac-toe 63
Durum Uzayında Arama Giriş Durum kümesi Operatörler ( ve maliyetler) Başlangıç durumu Hedef durum (test) Çıkış Yol: başla hedef testini sağlayan bir durum En kısa yol gerekebilir. 64
Temel Arama Algoritması L başlangıç durumunu tutan liste ( L = fringe) L başta başlangıç durumunu tutan bir listeyken, daha sonra o ana kadar oluşturduğumuz durum kümesini tutacak bir listedir. Döngü Eğer L boş ise hata döndür Değilse Node select (L) Eğer Node hedef ise Düğümü döndür (başlangıç durumundan düğüme olan yol) Değilse tüm uygulanabilir eylemleri düğüme uygula ve yeni oluşturulan durumları L ye ekle 65
Temel Arama Algoritması Çeşitli arama algoritmaları farklı successor ları fringe içerisinde nasıl yerleştirdiğimize ve fringe te yer alan hangi düğümün seçilerek açılacağına göre birbirleridne ayrılırlar. 66
Temel arama algoritması: Anahtar noktalar Arama ağacı sınırlandırılmamış olabilir. Döngüler sebep olur Durum uzayının sonsuz olması sebep olur. Bir yol veya düğüm döndürüyor mu? Birleştirme ve seçimler nasıl yapılıyor? Graf ağırlıklı mı ağırlıksız mı? Ara durumların kalitesi hakkında ne kadar bilgi sahibiyiz? Hedefimiz en iyi çözümü bulmak mı yoksa en çabuk şekilde bir çözüm mü bulmak? 67
Arama stratejisi Problem çözme performansının ölçülmesi: Completeness: Arama stratejisi çözümün olduğu durumda bir çözüm bulmayı garanti ediyor mu? Optimality: Çözümün maliyeti düşük mü yoksa minimum mu? Stratejiye bağlı olan arama maliyeti çözümü bulmak için ihtiyaç duyulan zaman ve hafızadır 68
Arama Stratejileri Bilgisiz (Kör) Arama (Blind) Depth first arama Breath first arama Iterative deepining arama Bilgili Arama (Informed) Kısıt Sağlama (Constraint Satisfaction) Yarışmacı Arama (Adversarial) 69