Ders Notu – 3.1 Arama ile Problem Çözme

Slides:



Advertisements
Benzer bir sunumlar
GİRİŞ BÖLÜM:1-2 VERİ ANALİZİ YL.
Advertisements

Yrd. Doç. Dr. Mustafa Akkol
Arama ile sorun çözme Ders 3.
Prof.Dr.Şaban EREN Yasar Üniversitesi Fen-Edebiyat Fakültesi
MIT503 Veri Yapıları ve algoritmalar Algoritma Oluşturma – Açgözlü algoritmalar ve buluşsallar Y. Doç. Yuriy Mishchenko.
Değişkenler ve bellek Değişkenler
DOĞAL SAYILAR.
YAPAY ZEKA Yrd. Doç. Dr. Rembiye Kandemir
T.C. İNÖNÜ ÜNİVERSİTESİ Arapgir Meslek YÜKSEKOKULU
Eğitim Programı Kurulum Aşamaları E. Savaş Başcı ASO 1. ORGANİZE SANAYİ BÖLGESİ AVRUPA BİLGİSAYAR YERKİNLİĞİ SERTİFİKASI EĞİTİM PROJESİ (OBİYEP)
KÜMELER.
Atlayarak Sayalım Birer sayalım
ÇÖZÜM SÜRECİNE TOPLUMSAL BAKIŞ
BEIER CÜMLE TAMAMLAMA TESTİ
Diferansiyel Denklemler
ÖRNEKLEME DAĞILIŞLARI VE TAHMİNLEYİCİLERİN ÖZELLİKLERİ
ALIŞVERİŞ ALIŞKANLIKLARI ARAŞTIRMASI ÖZET SONUÇLARI Haziran 2001.
Algoritmalar En kısa yollar I En kısa yolların özellikleri
Orta Öğretimden Üniversiteye Gelen Öğrencilerin Temel Bilgisayar Bilgilerinin İl ve Bölge Bazında İncelenmesi: Karadeniz Teknik Üniversitesi Uygulaması.
İçerik Ön Tanımlar En Kısa Yol Problemi Yol, Cevrim(çember)
MIT503 Veri Yapıları ve algoritmalar En önemli graf problemleri
KIR ÇİÇEKLERİM’ E RakamlarImIz Akhisar Koleji 1/A.
Lokal Arama Algoritmaları
HİSTOGRAM OLUŞTURMA VE YORUMLAMA
Soruya geri dön
Prof. Dr. Leyla Küçükahmet
İkili Arama Ağaçları (Binary Search Trees) BST
CAN Özel Güvenlik Eğt. Hizmetleri canozelguvenlik.com.tr.
GÖK-AY Özel Güvenlik Eğt. Hizmetleri
1/20 PROBLEMLER A B C D Bir fabrikada kadın ve çocuk toplam 122 işçi çalışmaktadır. Bu fabrikada kadın işçilerin sayısı, çocuk işçilerin sayısının 4 katından.
HAZIRLAYAN:SAVAŞ TURAN AKKOYUNLU İLKÖĞRETİM OKULU 2/D SINIFI
1/25 Dört İşlem Problemleri A B C D Sınıfımızda toplam 49 öğrenci okuyor. Erkek öğrencilerin sayısı, kız öğrencilerin sayısından 3 kişi azdır.
Dördüncü Grup İkinci Harf B sesi sunumu Mürşit BEKTAŞ.
ÖLÇME VE DEĞERLENDİRME DERSİ
ÖRNEKLEM VE ÖRNEKLEME Dr.A.Tevfik SÜNTER.
EBOB EKOK.
TÜRKİYE KAMU HASTANELERİ KURUMU
1 YASED BAROMETRE 18 MART 2008 İSTANBUL.
İmalat Yöntemleri Teyfik Demir
Arama ile sorun çözme Ders 3.
YAPAY ZEKA ve UZMAN SİSTEMLER
MATRİSLER ve DETERMİNANTLAR
MIT503 Veri Yapıları ve algoritmalar Veri ağaçları
Ders Notu – 3.2 Bilgisiz (Kör) Arama Yöntemleri
Tam sayılarda bölme ve çarpma işlemi
İKİ BASAMAKLI DOĞAL SAYILARIN
PÇAĞEXER / SAYILAR Ali İhsan TARI İnş. Yük. Müh. F5 tuşu slaytları çalıştırmaktadır.
ONDALIK KESİRLERİN ÖĞRETİMİ
4 X x X X X
Mukavemet II Strength of Materials II
Matematik Bütün Konular Slayt.
BİL551 – YAPAY ZEKA PROBLEM ÇÖZME VE ARAMA
Yard. Doç. Dr. Mustafa Akkol
BİL551 – YAPAY ZEKA BİLGİSİZ ARAMA YÖNTEMLERİ
Rekabet ortamında arama Adversarial Search
Arama ile sorun çözme Ders 3.
ANA BABA TUTUMU ENVANTERİ
1 DEĞİŞMEYİN !!!
Test : 2 Konu: Çarpanlar ve Katlar
Bilgili arama Yöntemleri
6, 7 ve 8 BASAMAKLI DOĞAL SAYILAR
ÇEVRE YÖNETİMİ GENEL MÜDÜRLÜĞÜ ÖLÇÜM VE DENETİM DAİRESİ BAŞKANLIĞI
ÇOK DEĞİŞKENLİ FONKSİYONLARDA
Proje Konuları.
Bilgili arama Yöntemleri
PÇAĞEXER / SAYILAR Ali İhsan TARI İnş. Yük. Müh. F5 tuşu slaytları çalıştırmaktadır.
Diferansiyel Denklemler
BİL 4112 Yapay Zeka Hafta 2 – Bölüm 2
BİL 4112 YAPAY ZEKA Hafta 3 – Bölüm 1
Sunum transkripti:

Ders Notu – 3.1 Arama ile Problem Çözme YAPAY ZEKA ve UZMAN SİSTEMLER Ders Notu – 3.1 Arama ile Problem Çözme

Geçen Haftalar: Özet YZ’nin Tanımı? Turing Testi? Zeki Ajanlar: Ajan, sensörleriyle çevresini algılayan ve efektörleriyle bu çevre üzerinde davranan herhangi bir şeydir. Algı-Hareket eşlemesi Ajan Tipleri: Refleks, durum-tabanlı, amaç-tabanlı, fayda-tabanlı Rasyonel Hareket: Performans Ölçüsü-Değerlendirme Zamanı Her olası algı serisi için, algı serisi ve sahip olduğu bilgileri kullanarak performans ölçüsünü maksimize edecek şekilde davranan ajan ideal ajandır.

Taslak: Problem çözme ve arama Problem çözmeye giriş Karmaşıklık Bilgisiz arama Problem formülasyonu Arama stratejileri: derinlik-önce, genişlik-önce Bilgili arama Arama stratejileri: En iyi-ilk önce, A* Sezgisel fonksiyonlar

Örnek: Ölçme problemi! 9 l 5 l 3 l Problem: Bu üç kovayı kullanarak 7 litre suyu ölçün.

Örnek: Ölçme problemi! 9 l 5 l 3 l (olası bir) Çözüm: a b c 0 0 0 start 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 hedef a b c

Örnek: Ölçme problemi! 9 l 5 l 3 l (olası bir) Çözüm: a b c 0 0 0 start 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 goal a b c

Örnek: Ölçme problemi! 9 l 5 l 3 l (olası bir) Çözüm: a b c 0 0 0 start 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 goal a b c

Örnek: Ölçme problemi! 9 l 5 l 3 l (olası bir) Çözüm: a b c 0 0 0 start 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 goal a b c

Örnek: Ölçme problemi! 9 l 5 l 3 l (olası bir) Çözüm: a b c 0 0 0 start 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 goal a b c

Örnek: Ölçme problemi! 9 l 5 l 3 l (olası bir) Çözüm: a b c 0 0 0 start 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 goal a b c

Örnek: Ölçme problemi! 9 l 5 l 3 l (olası bir) Çözüm: a b c 0 0 0 start 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 goal a b c

Örnek: Ölçme problemi! 9 l 5 l 3 l (olası bir) Çözüm: a b c 0 0 0 start 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 goal a b c

Örnek: Ölçme problemi! 9 l 5 l 3 l (olası bir) Çözüm: a b c 0 0 0 start 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 goal a b c

Örnek: Ölçme problemi! 9 l 5 l 3 l (olası bir) Çözüm: a b c 0 0 0 start 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 hedef a b c

Örnek: Ölçme problemi! 9 l 5 l 3 l Diğer Çözüm: a b c 0 0 0 start 0 5 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 hedef a b c

Örnek: Ölçme problemi! 9 l 5 l 3 l Diğer Çözüm: a b c a b c 0 0 0 start 0 5 0 3 2 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 goal a b c

Örnek: Ölçme problemi! 9 l 5 l 3 l Diğer Çözüm: a b c a b c 0 0 0 start 0 5 0 3 2 0 3 0 2 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 goal a b c

Örnek: Ölçme problemi! 9 l 5 l 3 l Diğer Çözüm: a b c a b c 0 0 0 start 0 5 0 3 2 0 3 0 2 3 5 2 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 goal a b c

Örnek: Ölçme problemi! 9 l 5 l 3 l Diğer Çözüm: a b c a b c 0 0 0 start 0 5 0 3 2 0 3 0 2 3 5 2 3 0 7 hedef 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 goal a b c

Hangi çözümü tercih ederiz? a b c 0 0 0 start 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 hedef Çözüm 2: a b c 0 0 0 start 0 5 0 3 2 0 3 0 2 3 5 2 3 0 7 hedef

Problem-Çözme Ajanı Not: Bu offline problem-çözmedir. Online problem-çözme problem ve çevre hakkında eksiksiz bilgiyle hareketi içerir.

Örnek: Kovalar 7 litre suyu bir 3 litrelik, bir 5 litrelik ve bir 9 litrelik kovaları kullanarak ölç. Hedefi formüle et: 7 litre suyu 9 litrelik kovada tut Problemi formüle et: Durumlar: Kovalardaki su miktarı Operatörler: Kovayı kaynaktan doldur, Kovayı boşalt Çözüm bul: seni şimdiki durumdan hedef duruma götürecek operatörler sırası

Hatırla : Çevre tipleri Environment Accessible Deterministic Episodic Static Discrete Operating System Yes No Virtual Reality Yes/No Office Environment Mars Semi Çevre tipleri ekseriyetle ajan tasarımını belirler.

Problem Tipleri Tek durumlu problem: deterministik, ulaşılabilir Ajanın sensorları ile hangi durumda olduğunu tespit eder (erişimli dünya). Aynı zamanda ajan eylemleri ne sonuç verir, bellidir. Bu durumda ajan izleyeceği herhangi bir eylem sırası sonucunda hangi duruma erişeceğini hesaplayabilir. Ajan dünya hakkında herşeyi bilir böylece hedef duruma ulaşmak için optimal hareket sırasını hesaplayabilir. Çok durumlu problem: deterministik, ulaşılamaz Ajan eylemlerinin sonucunu bilir ama bulunduğu durumu tespit edemez, dünya tam olarak erişimli değil ise ajan bir durum yerine içinde bulunabileceği durumları tahmin edebilmelidir. Ajan hedef duruma ulaşmak için uğraşırken varsayılan hareketler sırası ve durumlar hakkında muhakeme etmelidir. Koşullu problem: deterministik değil, ulaşılamaz İcra boyunca sensörleri kullanmalıdır Çözüm bir ağaç ya da policydir (takip edilen yol ya da yön-hareket hattı) Sıksık arama ve icra yaprakları ekler Keşif problemi: bilinmeyen durum uzayı Ajanın eylemlerinin etkileri hakkında bilgisi yok. Bu bilinmeyen bir ülkede haritasız dolaşmaya benzer. Ajan gerçek dünyada eylemlerinin sonuçlarını ve farklı durumları yaşayarak öğrenecektir. Bu zeki ajanlar için en zor görevdir. Dikkatsiz bir ajan büyük tehlikelerle karşılaşır eğer ölmezse çevrenin haritasını çıkararak daha sonraki eylemleri için kullanabilir Hareketleri yaparken çevreyi keşfetmeli ve öğrenmelidir.

Örnek: Vakum dünyası Basitleştirilmiş dünya: . Bu dünyada yalnız iki yer vardır. Her bir yerde kir olabilir veya olmayabilir. Ajan iki yerin birinde bulunabilir. Ajanın hedefi: Kiri temizle.

Örnek: Vakum dünyası Durumlar : Yer kirli, yer kirli değil Başlangıç Durumu : Problem tarafından verilir. Amaç : Hiçbir yer kirli kalmayacak Operatör (hareket) : Sol, sağ, temizle, işlem yok Yol Maliyeti : Her hareket 1 birim, işlem yok 0 birim N oda için durum sayısı ? N * 2^N

Örnek: Vakum dünyası Operatörler (Hareketler) Durum 1: <Sağ,?> <Sol,?> <Temizle,?> Durum 4:

Örnek: Vakum dünyası Operatörler (Hareketler) Durum 1: <Sağ,2> <Sol,1> <Temizle,5> Durum 4: <Sağ,4> <Sol,3> <Temizle,4>

Her bir durum için yol maliyeti Örnek: Vakum dünyası Her bir durum için yol maliyeti Durum Yol maliyeti 1 3 2 4 5 6 7 8

Örnek: Vakum dünyası Problemin durum uzayı

Örnek: Yön bulma Çanakkale’den Ankara’ya varmak Hedefi formüle et : Ankara’da ol Problemi formüle et : durumlar: çeşitli şehirler operatörler: şehirler arasında git Çözüm bul: Toplam sürme uzaklığını minimize edecek şehirler sırası. Yol Maliyeti : Şehirler arası uzaklık

Örnek: Yön bulma

Problem formülasyonu Sorun aşağıdaki kavramlarla tanımlanabilir: 1. Başlangıç durum, “Çanakkle" 2. Hareketler veya ardıl fonksiyonu S(x) = hareketler kümesi–durum çiftleri S(Çanakkale) = {<Çanakkale  Bursa, Bursa>, … } 3. Amaç denemesi açık, x = “Ankara" imalı, mat(x) 4. Yol değeri gidilen yol, düğümler sayısı, gerçekleştirilen hareketler sayısı… Çözüm, başlangıç durumdan amaç durumuna götüren hareketler ardışıklığıdır

Durumun tasviri Her bir zaman anındaki ortam durumla ifade ediliyor. Başlangıç durum – sorunun çözümü için yapılacak ilk hareketin başlandığı durum Hareket, güncel durumu diğer bir durumla değiştiriyor; buna geçiş durumu denir. Her bir verilmiş durum için birkaç uygulanabilir hareket olabilir Amaç durumu - sorunun tanımında verilmiş ulaşılması gereken durum-sorunun çözümü Başarısız durum - hiçbir hareketin uygulana bilemediği ve amaç olmayan durum

Durumun tasviri Durum uzayı: Başlangıç durumdan ve bu durumdan başlayarak hareketler ardışıklığı ile ulaşıla bilecek tüm durumlardan oluşan küme Durum uzayı graflarla ifade edile bilir: düğümler: uzaydaki durumlar kenarlar: hareketler/işlemler Sorunun boyutu genelde mümkün durumlar sayısı ile (veya durum uzayının boyutu ile) ifade ediliyor. Tic-Tac-Toe oyununda yaklaşık 3^9 durum vardır Damada (Checkers) yaklaşık 10^40 durum vardır. Rubik‘ Cube’da durumlar sayısı 10^19 civarındadır. Satrançta durumlar sayısı yaklaşık 10^120 dir. Go oyununda durumlar sayısı ise çok daha fazladır.

Durumlara ait bilgilerin ifade edilmesi Durumda nasıl bilgiler olmalıdır: Yamyamlar ve Yolcular sorununun çözümü için kayığın hangi renkte olmasının bir önemi var mı? Borsada hisse senetlerinin değerlendirilmesinde güneşteki lekeler ne kadar etkilidir? Hangi bilgilerin ifade edilmesi sistem tasarımcısının sorumluluğundadır. Ortamın soyutlanma seviyesi nasıl olmalıdır veya ortam hangi ayrıntılarına dek ifade edilmelidir? Çok ayrıntılarına gidersek “ağaçlar arasında ormanı kaybederiz”. Çok kabaca tasvirle ise sorunun çözümü için gereken ayrıntıları gözden kaçırmış olabiliriz Durumların sayısı seçtiğimiz ifade yöntemine ve soyutlama seviyesine bağlıdır.

Ulaşılacak amacın tasviri Ulaşmak istediğimiz durum, elde etmek istediğimiz özellikler kümesi ile ifade edile bilmelidir Amacımızın sağlanıp sağlanmadığını belirlemek için amaç denemesi yapılmalıdır

Hareketler Hareketlere, her birisi bir zaman diliminde oluşan kesintili olaylar gibi bakmak mümkündür Ortam her hangi bir durumun içindedir; bir hareket gerçekleşir ve ortam yeni duruma geçiyor. Örneğin, “Ali sınıftadır” ve “Eve gitti” hareketleri ardışık olarak gerçekleşmişse sonraki durum “Ali evdedir” olacaktır. (Burada Ali’nin sınıfta ve evde olduğu andaki durumlarından farklı durumlara (örn., “Ali eve gidiyor” durumuna) bakmıyoruz) Meselenin çözümü boyunca tüm değişmeleri ifade etmek için uygun her bir hareket ve olay değerlendirilmelidir Önceki hareket verilmişse ve ortamın güncel durumu belli ise sonraki hareket belirlenebilir Önkoşul: hareket şu anki ortama uygulanabilir ve yasaldır Etki: şu anki ortamda hareket yapıldıktan sonra ortamın kesin durumu nasıl olacak

Bir durum uzayı seçme Gerçek dünya çok komplekstir; muhakeme etmek için bazı soyutlamalara gerek vardır… Doğru soyutlamayı seçmek ve durum uzayını çıkarmak zor bir problemdir! Soyut durumlar  gerçek dünya durumları Soyut operatörler  gerçek dünya hareketleri sırası (mesela i şehrinden j şehrine gitmek Lij’ ye mal olur  gerçekte i şehrinden j’ ye sür) Soyut çözüm  problemi çözmek için gerçek dünyada vuku bulan gerçek hareketler kümesi

Problem Çözme Performansının Ölçülmesi Aramanın etkinliği en az üç şekilde ölçülebilir: ·   Hiç çözüm buldu mu ? ·   Düşük yol maliyetli iyi bir çözüm mü ? ·  Problemi çözmek için gerekli zaman ve belleğe ilişkin arama maliyeti (search cost) nedir? Toplam maliyet (total cost), arama maliyeti ile yol maliyetinin toplamıdır. İki şehir arasında izlenecek güzergahı tespit etmede yol maliyeti kilometre olabilir. Arama maliyeti ise yolun durumu veya yapılabilecek hız olabilir. Toplam maliyeti hesaplarken kilometre ile dakikayı toplamak gerebilir. Bu durumda ajan hangisine daha fazla ağırlık vereceğini tespit etmelidir.

Örnek: 8-puzzle Başlangıç durumu Hedef durum Durum: Operatörler: Hedef testi: Yol maliyeti:

Örnek: 8-puzzle Başlangıç durumu Hedef durum Durum: taşların yerleri (ara yerleri ihmal et) Operatörler: boşluk, sola, sağa, yukarı veya aşağı hareket Hedef testi: durum hedef duruma uyuyor mu? Yol maliyeti : her bir adımın maliyeti 1

Örnek: 8-puzzle Başlangıç durumu Hedef durum Niçin arama algoritmaları? 8-puzzle’ın 362,800 durumu vardır 15-puzzle’ın e 10^12 durumu vardır 24-puzzle’ın 10^25 durumu vardır Bu yüzden bu büyük arama uzaylarında bir çözüm aramak için prensipli bir yola ihtiyacımız vardır… Başlangıç durumu Hedef durum

8-puzzle Durum: taşların tahta üzerinde 3 x 3 dizi yapısı Hareketler: BoşYeri Sola, Sağa, Yukarı, Aşağı hareket ettirmek. Her bir 8 taşın 4 mümkün hareketini tasvir etmektense “Boş yer”in hareket ettirilmesi işlemlerin tasviri için daha etkili yoldur. Başlangıç durum: Tahta üzerinde her hangi bir durum Amaç: Taşların tahta üzerinde arzu olunan dizilişi çözümü O(2^k) adım gerektiriyor; k-çözüm yolunun uzunluğudur. 15-taş sorunu (15 taşlı 4 x 4 çerçeve) ve N-taş sorunu (N = n^2-1)

8 taş sorununun durum uzayından bir kesinti 5 4 6 1 8 7 3 2 5 4 6 1 8 7 3 2 5 4 8 6 1 7 3 2 5 1 4 6 8 7 3 2 5 4 6 1 8 7 3 2 5 1 4 6 8 7 3 2

Vakum dünyası durumlar? toz ve robotun yeri hareketler? Sol, Sağ,Temizle Amaç denemesi? hiç bir karede toz yoktur Yol değeri? Her hareketin değerinin 1 olduğunu kabul ediyoruz

Örnek: Robot Montajı durumlar?: robot kolunun koordinatlarının montajı yapılacak nesnenin parçasının köşelerine uygunlaştırılması hareketler?: robot kolunun hareketi Amaç denemesi?: montajın bitmesi Yol değeri?: montaj için gereken zaman

8-Vezir Problemi N-VEZİR!!!, Temelde iki çeşit formülasyon vardır: artışsal (incremental) formülasyonda vezirler tek tek yerleştirilmektedir, tam durum (complete-state) formülasyonunda ise 8 vezir tahta üzerine yerleştirilip hareket ettirilmektedir. Sadece son durum dikkate alındığı için yol maliyeti dikkate alınmaz yalnız arama maliyetine bakılır:       Amaç testi: Tahtada birbirini tehdit etmeyen 8-vezir.       Yol maliyeti: sıfır. Farklı durum ve işlemler de vardır:       Durumlar: 0-8 vezirin herhangi bir düzenlemesi.       İşlemler: Herhangi bir kareye vezir koymak. Bu formülasyonda araştırılacak 648 olası sıra vardır. Eğer İşlem:       İşlemler: Tehdit edilmeyen en soldaki boş kareye vezir koy. Bu şekilde tehdit edilmeyen durumları tespit etmek kolaydır. Ama 7 vezirden sonra mümkün eylem kalmamaktadır. Bu nedenle arama işlemi başka bir seçeneği denemelidir. Hızlı bir hesap araştırılacak yalnız 2057 olası sıra olduğunu gösterir. Doğru formülasyon arama uzayının boyutunu büyük ölçüde küçültür. Tehdit edilen veziri aynı kolonda başka bir kareye götürme işlemi de zaman alsa da sonunda çözümü bulur N-VEZİR!!!, Ödev: Hanoi Kulesi (Tower of Hanoi), Misyonerler ve Yamyamlar (Missionaries & cannibals), Kripto aritmetik (Cryptarithmetic), Maymun ve Muz problemi (Monkey & Bananas)

Yolcular ve Yamyamlar Yakın sahil çay uzak sahil Kişi 1 Kişi 2 3 yolcu ve 3 yamyam kayıkla çayın bir sahilinden karşı sahile geçmek istiyor. Kayığa en fazla 2 kişi bine bilir. Amaç: Tüm yamyamların ve yolcuların çayı geçmesi. Sınırlama: Yamyamların sayısı çayın her hangi sahilinde yolculardan çok olursa yamyamlar yolcuları yiyecektir Durum: çayın her iki sahilinde ve kayıktaki yamyam ve yolcular Hareketler/İşlemler: Her iki yönde içinde bir,veya iki kişi ile kayığın hareketi Yakın sahil çay uzak sahil Kişi 1 Kişi 2 Kişi 3 kayık Yamyam 1 Yamyam 2 Yamyam 3 Bu sorun 11 harekette çözüle bilir.

Yamyamlar ve Yolcular Sorunun Çözümü Yakın sahil Karşı sahil 0 Başlangıç durum: MMMCCC B - 1 2 yamyam çayı geçti: MMMC B CC 2 Birisi geri döndü: MMMCC B C 3 2 yamyam çayı geçti: MMM B CCC 4 Biri geri döndü: MMMC B CC 5 2 yolcu çayı geçti: MC B MMCC 6 Bir yolcu ve bir yamyam geri döndü: MMCC B MC 7 İki yolcu çayı geçti: CC B MMMC 8 Bir yamyam geri döndü: CCC B MMM 9 İki yamyam çayı geçti: C B MMMCC 10 Bir yamyam geri döndü: CC B MMMC 11 İki yamyam çayı geçti: - B MMMCCC M- yolcu, C -yamyam

Hanoi kulesi Hanoi kulesi sorunu 1883 yılında Fransız matematiği Edouard Lucas tarafından icat edilmiştir. 1 diskin hareketine 1 san gerek olduğunu varsayarsak, 64 disk sorununu çözmek için 500 milyar yıl gerek olacaktır. http://www.cut-the-knot.org/Curriculum/Combinatorics/TowerOfHanoi.shtml

Gezer satıcı sorunu N kent arasında yol haritası verilmiştir. Her kentte bir kez bulunmakla tüm kentlerden geçerek başlangıç kente dönüşü gerçekleştiren en kısa yolu bulmalı (Hamiltonian devresi) Geometrik ifadesi: N düğümlü tam graf. n!/2n mümkün yol Mümkün yollar içinden en kısasının bulunması

Gerçek dünya örneği: VLSI çip tasarımı Silikon çiplerin tasarımı en karmaşık mühendislik işlemlerinden biridir. VLSI çipinde milyonlarca kapı yer alır. Her bir kapının pozisyonu ve bağlantıları çipin başarılı çalışması için hayati önem taşır. İşlemin her aşamasında CAD kullanılır. En güç işlerden ikisi hücrelerin yayılımı (cell layout) ve bağlantılarıdır (channel routing). Yayılımdan amaç, kullanılan alanı ve bağlantı uzunluklarını en aza indirerek hızı artırmaktır. Bağlantılar hücreler arasındaki boşlukları kullanarak yapılır. “optimal yol”?? Düz alanı minimize Katman sayısını, sinyalleri minimize Kanalların sayısını minimize (bir katmandan diğerine bağlantılar) Bazı işaret hatlarının uzunluğunu minimize (mesela saat hatti) Isıyı kart boyunca dağıt vb.

Durum Uzayında Arama

Durum Uzayında aramanın formal ifadesi Durum uzayı - (V, E) grafıdır. V düğümler, E kenarlar kümesidir. Kenar bir düğümden diğerine yönelmiştir. düğüm: durumu ifade eder Düğümün babası ile ilgili bilgileri, baba düğümden bu düğüme geçmek için gereken işlem hakkında bilgileri ve diğer istatistiksel bilgileri içerir kenar: uygulanabilir hareketi/işlemi ifade eder Kaynak ve hedef düğümler uygun olarak baba ve oğul düğümlerdir. Her bir kenarın sabit, eksi olmayan değeri vardır. Bu değer hareketin değerini ifade eder Düğümün üretilmesi - önceden belirlenmiş (genişlenmiş) bir düğüm üzerinde işlem yapmakla diğer bir düğümün belirlenmesi Düğümün genişlenmesi - belirlenmiş düğüm üzerinde tüm uygulanabilir hareketleri uygulamakla tüm oğul düğümlerin üretilmesi Bir veya birkaç düğüm başlangıç düğüm olarak kabul ediliyor Amaç denemesi - üzerinde işlem yapılan düğümün durumunun amaç durumu olup-olmadığının belirlenmesi Çözüm - başlangıç durumdan amaç duruma doğru yolda yapılan işlemler ardışıklığı Çözümün değeri - çözüm yolundaki kenarların değerlerinin toplamı

Durum Uzayında aramanın formal ifadesi (devamı) Durum_Uzayında_ Arama- genişlenmemiş durum uzayı grafının, amaç düğümü de içine alan bir kısmının genişlenmesi yolu ile çözümün aranması. Başlangıçta V={S}, S başlangıç düğümdür, S genişlendikte onun ardılları üretiliyor ve bu düğümler V’ye, uygun kenarlar ise E’ye ilave ediliyor. Bu süreç amaç düğüm üretilene (V’ye ilave etme) ve tanımlanana (amaç denemesi) dek devam ediyor Arama sürecinde düğüm üç halden birinde olabilir: Henüz üretilmemiş AÇIK: üretilmiş, ama genişletilmemiş SON: genişletilmiş Aramanın her adımında genişlenme için AÇIK düğümün seçilmesi yoluna göre farklı arama stratejileri bulunmaktadır

Durum_Uzayında_Arama Algoritması (devamı) Arama sürecinde arama ağacı oluşturuluyor: Ağacın kökü S başlangıç durumudur Yaprak düğümler Henüz genişlenmemişler (OPEN listesinde değiller) veya Ardılları yoktur Arama ağacı döngülerden dolayı, hatta durum uzayı küçük olsa bile sonsuz ola bilir Her düğüm başlangıç düğümden verilmiş düğüme dek kısmı çözüm yolunu (ve bu yolun değerini) ifade ediyor.

Durum_Uzayında_Arama Algoritması open := {S}; closed :={}; /* S- başlangıç durum repeat n := select(open); /* Açık listesinden açılmak için bir düğüm seçmeli */ if n amaç düğüm ise then exit başarılı sonuç expand(n) /* n’in tüm oğullarını üretmeli yeni üretilmiş düğümleri açık listesine eklemeli (tekrarlamaları kontrol etmeli) put n’i kapalı listesine eklemeli (tekrarlamaları yoklamalı) */ until open = {}; exit başarısız sonuç

Kapalı Dünya yaklaşımı-Closed World Assumption Sorun alanı hakkında tüm gereken bilgiler her algılamada erişilebilendir, başka değişle her bir durum dünyanın tam tasviridir. Zamanın hiçbir anında tam olmayan bilgi yoktur.

Arama algoritmaları Ana fikir: Durum uzayının, gezilen durumların çocuklarını üreterek (genişletme) simule edilen offline, sistematik keşfi Function General-Search(problem, strateji) returns bir çözüm ya da hata Başlangıç durum problemini kullanarak arama uzayını initialize et loop do if genişletmek için adaylar yok then return hata genişletmek için stratejiye göre bir yaprak düğüm seç if düğüm hedef durumu içerir then return uygun çözüm else düğümü genişlet ve sonuç düğümü arama uzayına ekle end

Gerçek Dünya Örnekleri Rota Bulma Rota bulma algoritmaları; bilgisayar ağları, otomatik seyahat tavsiye sistemleri, havayolu seyahat planlama sistemleri gibi değişik alanlarda kullanılmaktadır. Havayolu uygulaması çok karmaşıktır çünkü yol maliyeti çok karmaşıktır; para, yer kalitesi, zaman, uçak tipi, indirimler... Üstelik problemdeki eylemler de tamamen bilinen çıktıları vermez: uçuş gecikebilir, bağlantılar kaçırılabilir, sis veya acil durumlar gecikmeye neden olabilir Turlama ve gezen satıcı (travelling salesperson) problemi Robot Hareketi Montaj Sırası (Assembly sequencing)

Son kez: Problem Çözme Problem çözme: Problem formulasyonu: Hedef formülasyonu Problem formülasyonu (durumlar, operatörler) Çözüm için ara Problem formulasyonu: Başlangıç durumu ? Problem tipleri: tek durumlu: ulaşılabilir ve deterministik çevre çok durumlu: ? koşullu: ? keşif: ?

Son kez: Problem Çözme Problem çözme: Problem formulasyonu: Hedef formülasyonu Problem formülasyonu (durumlar, operatörler) Çözüm için ara Problem formulasyonu: Başlangıç durumu Operatörler Hedef testi Yol maliyeti Problem tipleri: tek durumlu: ulaşılabilir ve deterministik çevre çok durumlu: ? koşullu: ? keşif: ?

Son kez: Problem Çözme Problem çözme: Problem formulasyonu: Hedef formülasyonu Problem formülasyonu (durumlar, operatörler) Çözüm için ara Problem formulasyonu: Başlangıç durumu Operatörler Hedef testi Yol maliyeti Problem tipleri: tek durumlu: ulaşılabilir ve deterministik çevre çok durumlu: ulaşılamaz ve deterministik çevre koşullu: ulaşılamaz ve deterministik olmayan çevre keşif: bilinmeyen durum uzayı

Son kez: Bir Çözüm Bulma Çözüm: ??? mi Ana fikir: Durum uzayının, gezilen durumların çocuklarını üreterek(genişletme) simule edilen offline, sistematik keşfi Function General-Search(problem, strateji) returns bir çözüm ya da hata Başlangıç durum problemini kullanarak arama uzayını initialize et loop do if genişletmek için adaylar yok then return hata genişletmek için stratejiye göre bir yaprak düğüm seç if düğüm hedef durrumu içerir then return uygun çözüm else düğümü genişlet ve sonuç düğümü arama uzayına ekle end

Son kez: Bir Çözüm Bulma Çözüm: seni şu anki durumdan hedef duruma götüren operatörler sırasıdır. Ana fikir: Durum uzayının, gezilen durumların çocuklarını üreterek(genişletme) simule edilen offline, sistematik keşfi Function General-Search(problem, strateji) returns bir çözüm ya da hata Başlangıç durum problemini kullanarak arama uzayını initialize et loop do if genişletmek için adaylar yok then return hata genişletmek için stratejiye göre bir yaprak düğüm seç if düğüm hedef durrumu içerir then return uygun çözüm else düğümü genişlet ve sonuç düğümü arama uzayına ekle end Strateji: Arama stratejisi ??? ile belirlenir.

Son kez: Bir Çözüm Bulma Çözüm: seni şu anki durumdan hedef duruma götüren operatörler sırasıdır. Ana fikir: Durum uzayının, gezilen durumların çocuklarını üreterek(genişletme) simule edilen offline, sistematik keşfi Function General-Search(problem, strateji) returns bir çözüm ya da hata Başlangıç durum problemini kullanarak arama uzayını initialize et loop do if genişletmek için adaylar yok then return hata genişletmek için stratejiye göre bir yaprak düğüm seç if düğüm hedef durrumu içerir then return uygun çözüm else düğümü genişlet ve sonuç düğümü arama uzayına ekle end Strateji: Arama stratejisi düğümlerin genişletilme sırası ile belirlenir

Örnek: Arad’dan Bucharest’e seyahat

Problemden arama uzayına Bu konu hakkında bazı materyal ve slaytlar http://www.cs.kuleuven.ac.be/~dannyd/FAI/ A D B E C F G S 3 4 5 2 Arama uzayı S A D B E C F G 3 2 4 5 İlgili döngü-serbest arama ağacı

Arama ağaçlarında yollar SA S A D B E C F G SDA SDEBA

Arama Ağaçları-örnek Durum uzayı CG SC S SR W CS L A R E SG FA Örnek haritada CG’den SG’ye ulaşıla bilecek tüm yollar gösterilmiştir. Kenarların üzerinde uygun 2 kent arasındaki yol uzunluğu (yol değeri) gösterilmiştir. Durum uzayı CG SC S SR W CS L A R E SG FA 7 2 1 3 4

Arama Ağaçları-örnek (devamı) Eğer biz CG’den çıkan tüm mümkün yolları bulmağa çalışsak, kesin olarak SG’ye geden yolu da bulmuş olacağız. Çünkü böyle bir yol mevcuttur.. Burada harita grafla,yani arama ağacı ile ifade edilmiştir. Bu ağacın düğümleri arasındaki kenarlar bir yolu (durumu değil) ifade etmektedir. Arama yöntemleri, bu ağacın boyutu hakkında hiçbir bilgi olmadan çalışmaya başlar. Önemli olan budur ki,seçilen yöntem, daha az yol sayısı bulunan ağacı geliştirmiş olsun CG SC S SR W CS L A SG FA R E Arama ağacı Ölü Son CG-SC-S yolu Çözüm

Durum uzayı ve Arama Ağaçları CG SC S SR W CS L A R E SG FA 7 2 1 3 4 Arama ağacı ve durum uzayı farklı kavramlardır: Durum uzayında yalnız 12 düğüm vardır. (her kent için bir düğüm). Ama arama ağacında sonsuz sayıda düğüm ola biliyor (eğer döngülere izin veriliyorsa). Hatta döngüleri gözden atsak dahi ağaçta 20 düğüm olduğunu görürüz. CG SC S SR W CS L A SG FA R E Arama ağacı Ölü son CG-SC-S yolu Çözüm

Ağaç üzere arama örneği

Ağaç üzere arama örneği

Ağaç üzere arama örneği

Ağaç üzere arama algoritması

Durum ve düğümün karşılaştırılması Durum fiziki bir yapının tasviridir Düğüm arama ağacının bir kısmını oluşturan veri yapısıdır ve durum, baba düğüm, hareket, yol değeri g(x), derinlik kavramlarını içeriyor

Arama algoritmalarının uygulamaları Function General-Search(problem, Queuing-Fn) returns a solution, or failure nodes  make-queue(make-node(initial-state[problem])) loop do if nodes is empty then return failure node  Remove-Front(nodes) if Goal-Test[problem] applied to State(node) succeeds then return node nodes  Queuing-Fn(nodes, Expand(node, Operators[problem])) end Queuing-Fn(queue, elements) Kuyruğa elemanlar kümesi ekleyen ve düğüm genişletme sırasını belirleyen kuyruk fonksiyonudur. Farklı kuyruk fonksiyonlar farklı arama algoritmaları üretir.

Düğümlerde durum bilgisini gizlemek (Encapsulating) Düğümleri göstermenin birçok yolu vardır. Ama burada düğümü beş elemanlı bir veri yapısı olarak ele alacağız: Düğümün durum uzayındaki durum karşılığı, Bu düğüm (parent node)tarafından üretilen arama ağacındaki düğüm, Bu düğümü üretmek için yapılan işlem, Kökten bu düğüme kadar olan yoldaki düğüm sayısı (derinlik-depth) Başlangıç durumundan bu düğüme olan yolun yol maliyeti. Düğüm ve durum farklıdır. Düğüm; özel bir algoritma tarafından bir problem için üretilen arama ağacını gösteren kayıt veri yapısıdır. Durum dünyanın konfigürasyonunu temsil eder. Düğümde derinlik, parent ... vardır, durumda ise yoktur. Veri tipi : Node Bileşenleri : State , Parent-Node, Operator, Depth, Path-Cost

Arama stratejilerinin değerlendirilmesi Bir arama stratejisi düğüm genişletme sırasının seçilmesiyle belirlenir. Stratejiler dört kritere göre değerlendirilebilir: Tamlık (Completeness): Eğer çözüm varsa strateji çözümü garanti ediyor mu? Zaman Karmaşıklığı (Time complexity): Çözümü bulmak ne kadar zaman alıyor? (incelenen düğümler sayısı) Bellek Karmaşıklığı (Space complexity): Aramayı gerçekleştirmek için ne kadar bellek gerekiyor? (bellekteki düğümler sayısı) Optimallik (Optimality): Birden fazla çözüm olduğu zaman strateji en iyi olanını buluyor mu? (en düşük maliyetli çözüm) Zaman ve bellek karmaşıklığı şu terimler cinsinden ölçülür: b – arama ağacının maksimum dallanma faktörü d – en düşük maliyetli çözümün derinliği m – arama ağacının maksimum derinliği (sonsuz olabilir)

Zaman ve mekan karmaşıklığı Aramanın zaman ve mekan karmaşıklıkları ağacın, incelenen ve bellekte yer tutan düğümlerinin sayısı ile bağlıdır. Karmaşıklığın değerlendirilmesinde ağacın dallanma etkeni (“b”) ve ağacın azami derinliği (“d”) etkeni kullanılıyor. Eğer dallanma etkeni b ise bu, “ uç olmayan (yaprak olmayan) düğümün b oğlu var” anlamını veriyor. b = 2 d = 3

Karmaşıklık Algoritmaların karmaşıklığı hakkında neden endişe ederiz? Çünkü bir problem çözülebilir olabilir ancak pratikte çözmek çok uzun olabilir Algoritmaların karmaşıklığını nasıl değerlendiririz? Asimptotik analizle (ya da operasyon sayısı) mesela bir problemin n boyutlu örneğini n sonsuza giderken gerekli tahmini zaman

Karmaşıklık örneği: Gezgin satıcı problemi n şehir vardır ve i şehrini j’ye bağlayan Lij uzunluklu bir yol vardır Gezgin tüm şehirleri gezmek için bir yol bulmayı arzuluyor (iki yolla optimal olan): her şehir sadece bir kez gezilecek ve toplam yol mümkün olduğu kadar kısa olacak. Bu hard bir problemdir: Şu ana kadar bunu çözen bilinen algoritmalar eksponansiyel karmaşıklığa sahiptir yani çözüm için gereken operasyon n şehir için exp(n) olarak büyüyor.

Eksponansiyel karmaşıklık neden “hard”dır? Problemin gerçek çözümünü hesaplamak için gerekli olan operasyonun sayısının problemin boyutuyla(burada şehirlerin sayısı) arttığı anlamına gelir. exp(1) = 2.72 exp(10) = 2.20 104 (günlük gezgin gezintisi) exp(100) = 2.69 1043 (aylık gezgin planlaması) exp(500) = 1.40 10217 (müzik bandı evrensel turu) exp(250,000) = 10108,573 (fedex, postal servisleri) En hızlı bilgisayar = 1012 operasyon/saniye

Bu yüzden… Genel olarak eksponansiyel karmaşıklı problemler en küçük örnekleri için çözülebilirler!(herşeyi için çözülemez)

Karmaşıklık Polinomal-zamanlı (P) problemler: giriş boyutuyla polinomal büyüyen bir zamanda (=operasyon sayısı) çözen algoritmalar bulabiliriz mesela: n sayıyı artan sırada sırala : kötü algoritmalar n^2 karmaşıklığa sahiptir, daha iyileri n log(n). Polinomun derecesini belirtmediğimizden o çok büyük olabilir! Polinomal zamandan daha fazla zamana ihtiyaç duyan algoritmalar var mıdır? Evet (aksi ispatlanmadığı müddetçe); bazı algoritmalar için, onları çözmek için hiç polinomal zamanlı algoritma bilmeyiz. Bunlara nondeterministic-polynomial-time (NP) algoritmaları olarak bakılır. mesela: gezgin satıcı problemi. Özellikle eksponansiyel zamanlı algoritmaların NP olduğuna inanılır.

NP-zor problemler hakkında not NP problemlerin formal tanımı: Bir problem nondeterministic polynomial dır eğer bir çözümü tahmin edebilecek ve daha sonra tahminin polinomal zamanda doğru olup olmadığını doğrulayan bir algoritma varsa. (deterministik olmayan Turing makinesinde polinomal zamanda çözülebilir.) Pratikte, aksi ispatlandığı müddetçe, bu, bilinen bilgisayar mimarilerinde koşan bilinen algoritmalar bu problemi çözmek için polinomal zamandan daha fazla zaman alacağı anlamına gelir.

Karmaşıklık: O() ve o() ölçümleri (Landau sembolleri) Bir algoritmanın karmaşıklığını nasıl temsil edebiliriz? Verilen: Problem girişi (ya da örnek) boyut: n Problemi çözmek için operasyon sayısı : f(n) Eğer, verilen bir g(n) fonksiyonu için: O zaman f, g tarafından dominated O zaman f, g’ye göre negligible

Landau sembolleri sınırlanmış

Örnekler, özellikler f(n)=n, g(n)=n^2: n o(n^2)’dir, çünkü n/n^2 = 1/n -> 0 n ->sonsuz iken benzer olarak, log(n) o(n)’dir n^C o(exp(n))’dir herhangi C için Eğer f O(g) ise, herhangi K için, K.f de O(g)’dir; o() için de aynı Eğer f O(h) ve g O(h) ise , herhangi K, L için: K.f + L.g O(h)’dir o() için de aynı Eğer f O(g) ve g O(h) ise , f O(h)’ dir Eğer f O(g) ve g o(h) ise , f o(h)’dir Eğer f o(g) ve g O(h) ise, f o(h)’dir

Polinomal zaman hiyerarşisi Handbook of Brain Theory & Neural Networks (Arbib, ed.; MIT Press 1995). NP P AC0 NC1 NC P complete NP complete PH AC0: sabit derinlikli kapılar kullanılarak çözülebilir NC1: 2-girişli kapılar kullanılarak logaritmik derinlikte çözülebilir NC: küçük, hızlı paralel bilgisayarla çözülebilir P: polinomal zamanda çözülebilr P-complete: P deki en zor problem; eğer bir tanesinin NC olması ispatlanabilirse o zaman P = NC NP: nondeterministik-polinomal algoritmalar NP-complete: en zor NP problemler; eğer bir tanesinin P olması ispatlanabilirse o zaman NP = P PH: polinomal-zaman hiyerarşisi

Karmaşıklık ve insan beyni Bilgisayarlar insan beyin gücüne yakın mıdır ? Şu anki bilgisayar çipleri (CPU): 10^3 giriş (pinleri) 10^7 işlem elemanı (kapılar) Her işlem elemanı başına 2 giriş (fan-in = 2) İşlem elemanları bool mantığını yürütür (OR, AND, NOT, vb) Tipik insan beyni: 10^7 giriş (sensör) 10^10 işlem elemanı (nöron) fan-in = 10^3 İşlem elemanları karmaşık fonksiyonları hesaplar Bilgisayarlar için hala çok fazla gelişme lazım ama bilgisayar kümeleri yaklaşıyor!