YAPAY ZEKA Yrd. Doç. Dr. Rembiye Kandemir Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü
Problem Analizi Bir problemi çözmede en uygun yöntemi seçmek için, problemi birçok yönden incelemek gerekir. Problem ayrıştırılabilir mi? Örnek Çözüm adımları önemsenmeyebilir ya da geri alınabilir mi? Önemsenmeyebilen Düzeltilebilen Düzeltilemeyen Problem uzayı tahmin edilebilir mi? Cevap, mutlak mı yoksa göreceli mi? Bilgi tabanı tutarlı mı? Bilginin rolü nedir? Acaba iş kişi ile karşılıklı etkileşimi gerektiriyor mu? ...
(x2+3x-2)dx x2dx 3xdx 2dx x3/3 3x2/2 2x Bu tip problemler parçala ve çözümle yöntemiyle çözülür.
Yapay Zeka’ da Problem Çözme Teknikleri Yapay zekanın nasıl çalıştığını anlamak için, yapay zeka tarafından kullanılan yaklaşımları ve problem çözme stratejilerini bilmek gerekir. Arama Doğrudan bir yaklaşımın olmadığı problemleri çözmeyi sağlar. Bilgi kullanımı Konusu geçen objelerin yapılarındaki bilgileri kullanarak kompleks problemleri çözmek için yol gösterir. Soyutlama Önemli özellikleri ve değişimleri, önemsiz olanlardan ayırmayı sağlar
Problem Çözme İşlemi ve Karar Verme Simon’a göre problem çözme yaklaşımı üç aşamadan oluşur Bilgi Tasarım Seçim Araştırmacı Bel’e göre ise problem çözme ve karar verme, Problemi tespit etme ve tanımlama Bir çözüm için bulunan kriteri tanımlama Alternatifleri üretme Çözüm ve değerlendirmeler için arama Seçim ve öneriler Uygulama
Problemin Durum Uzayını Belirleme Yapay zekayı kullanarak herhangi bir problemi çözmenin genel işlemi üç temel bileşenden oluşur: Problem durumunu tanımlama - Problem durumu ve var olan şartlar tanımlanır. “Arabanız çalışmıyor” - Durumlar, problemde potansiyel alternatif çözümler olabilir. “Bir petrol sızıntısı olabilir”, “Akü bitmiş olabilir”, vs. - Tüm tanımlamalar birbirinden farklıdır. Amaç - Başarılacak hedeftir, son bir çözümdür. ‘Amacınız aracınızla ilgili yanlış giden şeyin ne olduğunu bulmaktır’. - Amaca ulaşmak için birden fazla arama olabilir. ‘Depo kontrol edilir”, “akü kontrol edilir”, vs. Operatörler - Bir durum dan başka bir duruma değişim için kullanılan işlemlerdir. - Bir operatör, algoritmaya dayalı bir alt program olabilir.
Problemi Formüle Etme Başlangıç Durumu Hareket Operatörleri: Bir sonraki durumu gösteren operatör Durum Uzayı: Başlangıç durumundan, ulaşılabilir tüm durumlar kümesi Amaç Durumu Belirleyicileri Yol: Özel hareketlerin birleşimi Yol Maliyeti: Herbir yolun toplam maliyeti Optimal çözüm: minimum yol maliyetli çözüm
Problemler Oyun Problemleri : Basit, fakat teori ve analizler için yararlıdır. Dünyayı temizleme N kraliçe N kare bulmacası vs. Gerçek Problemler: Bu tür çözümler daha çok kullanışlıdır, fakat teoriye fazla faydalar değildir. Yol bulma Linear programlama Optimizasyon Oyun teorisi Optimal control Evrim
Örnek-1: Dünyayı Temizleme problemini formule etme 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-1: Dünyayı Temizleme problemini formule etme (Devam) Her bir durum için yol maliyeti Durum Yol maliyeti 1 3 2 4 5 6 7 8
Örnek-1: Dünyayı Temizleme problemini formule etme (Devam) Problemin durum uzayı
Örnek-2: Romanya’ yı Gezme
Örnek-2: Romanya’ yı Gezme (Devam) Durumlar : Ülkenin şehirleri Başlangıç Durumu : Arad Şehri Amaç : Bucharest şehrine ulaşmak Operatör (hareket) : Bir şehirden diğer şehre gitmek Yol Maliyeti : Şehirler arası uzaklık
Örnek-3: 8 kare Bulmacası Başlangıç Durumu Amaç Durum Durumlar : 1, 2, 3, 4, 5, 6, 7, 8, boşluk kareleri Başlangıç Durumu : Problem tarafından verilir Amaç : Problem tarafından verilir Operatör (hareket) : Boşluk karesinin sağ, sol, yukarı, aşağı hareketi Yol Maliyeti : Her hareket 1 birim
Örnek-3: 8 kare Bulmacası (Devam) Başlangıç Durumu Amaç Durum Durumlar : Herhangi bir bölge ile başlayabilir 9! / 2 = 181,440 durum (Durum uzayı) 15-puzzle: ~ 1.3 trilyon durum 24-puzzle: ~ 1025 durum (çözümü oldukça zor)
Problem Çözümünde Arama Bir tanımlama uzayı, verilerin bir problem için ulaşılabilir tüm durum gruplarını temsil eder. Bir problemin durum uzayını grafiksel olarak ifade etmek mümkündür. Durum Grafiği Arama Ağıcı
Durum Grafiği (Yönlendirilmiş)
Arama Ağacı Bir ağaçtaki her düğüm problem durumu (problem state) olarak tanımlanır. İlk durum düğümü kök düğüm (roote node) olarak anılır. Kökten diğer düğümlere uzanan bütün yollar problem durum uzayı’nı tanımlar (dallar). Eğer yeni bir düğüm oluşturulduysa buna düğüm üretildi (generated) denir. Üretilen düğüm çocuk veya torun düğüm dür. Bunu üreten düğüm için de düğüm araştırıldı (explored) denir. Eğer bir düğümün tüm çocukları üretildiyse, bu düğüm için düğüm genişledi (expanded) denir. Çocuksuz düğümler yaprak düğüm veya ölü düğüm olarak ifade edilir.
AND/OR (Ve / Veya) Arama Ağacı B C D E F G H A Bir düğümden çıkan dallar iki veya daha fazla alternatif yolu temsil edebilir. Bu yollardan biri veya diğeri amaca götürebilir. Bu düğümler OR düğümleri olarak ifade edilir. Bununla birlikte bazı problemlerde ardıl düğümler tüm başarılabilen veya amaca ulaşmadan önce içinden seçilen problem durumlarını temsil eder. Bunlar AND düğümleri olarak ifade edilir. Bilgi akışı ileri zincirleme gösteren bir OR ağacında başlangıç durumundan başlar ve aşağı doğru düğümleri genişleterek ve değerlendirerek ilerler. Bir AND ağıcında ise, bir yandan aşağı doğru bilgi akışı kontrol edilirken, kısmi çözümler önce alt seviyelerde oluşturulur ve sonuçlar en üst düğümde ortaya çıkana kadar yukarıya doğru daha yüksek seviye fonksiyonları ile birleştirilerek yeniden işlenir.
Arama Algoritmaların Performansı Completeness (Bütünlük): Bir tane çözüm olduğunda arama startejisi çözümü garanti ediyor mu? Optimality (En iyilik): Birkaç farklı çözüm olduğu zaman arama stratejisi en iyi kalitede çözümü buluyor mu? Time complexity (Zaman karmaşıklığı): Çözümü bulmak ne kadar bir zaman alır? Space complexity (Alan karmaşıklığı): Arama işlemi ne kadar bellek gerektirir? b : Arama ağıcının maximum dallanma faktörü d : Amaç düğümün bulunduğu en sığ derinlik (en düşük maliyetinin bulunduğu derinlik) m : Durum uzayının maximum uzunluğu (∞ olabilir) Arama Maliyeti: Toplam maliyet
Arama Stratejileri Informed (bilgili) yaklaşımlar Bunlar “içten geleni hissetme” veya sadece dürtüler üzerinde hareket etme önsezileri ile ilgilenir. UnInformed (bilgilisiz) yaklaşımlar Kör arama (bilgisiz arama)
Optimizasyon Optimizasyon, özel durumları modelleyen matematiksel formülleri kullanarak en iyi mümkün çözümü bulmaya çalışır. Yöneylem araştırması ve matematik gibi yapay zeka teknolojileri olmayan durumlarda yoğun bir şekilde kullanılır.
Kör Arama (Blind Search) Kör arama teknikleri, alternatifleri ve bir karar çözümünün kanıtlarını (hipotezlerini) teker teker araştırır. Kör aramanın iki tipi vardır. Ayrıntılı arama - Tüm alternatifler değerlendirilir ve bu nedenle optimal bir çözüm bulunur. Eksik (parçalı) arama - Arama yeterli derecede iyi bir çözüm bulununcaya kadar devam eder. - Belirsiz durumlarda arama yolu keyfidir. - Zaman miktarı ve bilgisayarda depolama imkanı üzerinde pratik sınırlandırmalar vardır. - Belirsiz arama metodu ile çözüm bulunabilmesine rağmen metot büyük problemler için pratik değildir.
Kör bir aramada, değerlendirilen alternatif sayıları üssel olarak artabilir. Bu tür problemler, ‘combinetorial’ problemler olarak adlandırılır. Örneğin, işleri ya da adayları birleştiren bir problem için; Adayların ve işlerin sayısının 10’dan 11’e yükselmesi ile (%10’luk bir artış) potansiyel birleşmelerin sayısı %1100 oranında artar (10!=3,628,800 11!=39,916,800). 10’dan 12’ye (%20’lik bir artış) alternatif sayıları yaklaşık 480,000,000’a çıkmasına veya yaklaşık %13200 artmasına neden olabilir.
Sezgisel Arama (Heuristic Search) Birçok uygulama için, arma işlemine rehberlik edecek özel bilgilere ihtiyaç duyulur (sezgisel bilgi). Bu bilgileri kullanan arama prosedürlerine de sezgisel arama metotları denir. Sezgisel bilgiler, bir problemin nasıl çözülmesi gerektiği ile ilgili karar kurallarıdır. Sezgisel arama, bir kör aramadan daha ucuz ve daha hızlıdır.
Kör Arama (Blind Search) (Bilgisiz Arama) Kör arama teknikleri, alternatif yolları teker teker araştırır. Bilgisiz aramalardan bazıları BFS - Breath-First Search UCS - Uniform Cost Search DFS - Depth-First Search DLS – Depth Limited Search IDS – Iterative Deeping Search BS – Bidirectional Search
Breath-First Search – BFS (Genişlik Öncelikli Arama) b dallanma faktörü, m maximum derinlik olmak üzere, d optimum sonuç derinliği Bütünlük : Var (Eğer b sonlu ise) Zaman Karmaşıklığı : 1+b+b2+b3+...+bd+b(bd-1)=O(bd+1) dir. Alan Karmaşıklığı : O(bd+1) dir (her düğümü hafızada tutar). Optimallik : Her zaman çözüm bulunur.
Genişlik Öncelikli Aramanın Durum Tablosu
Breadth-First Search (BFS) (devam) Derinlik 0 Derinlik 1 * Optimum sonuç 2 3 amaç
Breadth-First Search (BFS) (devam) Derinlik 0 Derinlik 1 Optimum sonuç * 2 3 amaç Dallanma faktörü b = 3 Derinlik d = 2
Breadth-First Search (BFS) (devam) Derinlik 0 Derinlik 1 Optimum sonuç * 2 3 amaç Dallanma faktörü b = 3 Zamanı Karmaşıklık O(bd+1) = 27 Derinlik d = 2 Alan Karmaşıklığı O(bd+1) = 27
Breadth-First Search (BFS) (devam)
Breadth-First Search (BFS) (devam) (B,C)
Breadth-First Search (BFS) (devam) (B,C) (C,D,E)
Breadth-First Search (BFS) (devam) (B,C) (C,D,E) (D,E,F,G)
Genişlik Öncelikli Arama Algoritması Başlangıç düğümlerin bir listesi olan N’yi yerleştir Eğer N boş ise o zaman çık ve hata mesajı ver N’de ilk düğüm olarak n ‘yi yerleştir ve N’den n’yi sil Eğer n amaç düğümü ise o zaman çık ve başarı mesajı geri gönder Aksi durumda N’nin sonuna n’ nin coçuklarını ekle ve 2. adıma geri dön.
Uniform Cost Search – UCS (Düşük Maliyetli Arama) Genişlik öncelikli aramaya benzer. Dallar üzerinde toplam en düşük maliyetli düğümü seçer ve genişletir. b = dallanma faktörü, C*= en düşük maliyetli çözümün derinliği A A A A 1 15 1 15 1 15 1 15 5 5 5 5 B C D B C D B C D B C D 5 10 10 5 10 5 E F F E F E 10 1 1 1 F F Bütünlük : Var, eğer maliyet > 0 Zaman Karmaşıklığı : O(b[C*/ ]) Alan Karmaşıklığı : O(b[C*/ ]) Optimallik : Var, uzaklığa göre yol maliyeti hiçbir zaman azalmaz
Uniform-Cost Search Algoritması Başlangıç listesin N ‘ yi oluştur (kök düğüm) Repeat until (Liste boş ise) veya (ilk düğüm n amaç durum ise): Listenin başındaki ilk düğümü sil Bu düğümü genişlet (çocuk düğümlerini bul) Döngüye takılmamak için daha önce değerlendirilen çocuk düğümleri değerlendirilmeye alma Çocukları Listeye ekle (her defasında azalan yol maliyetine göre) Eğer n Amaç düğüm ise başarı, değilse hata değeri geri döndür
Romanya Ziyareti Şekil : Romanya haritası Bucharest’e kadar olan doğrusal uzaklık Şekil : Romanya haritası
Uniform Cost Search’e göre Romanya Ziyareti B Z O S F C P R T L M D 118 75 71 151 140 111 70 120 80 99 211 97 146 138 101
Uniform Cost Search (devam) Z75 T118 S140 A B Z O S F C P R T L M D 118 75 71 151 140 111 70 120 80 99 211 97 146 138 101 T118 S140 O146 S140 O146 L229 O146 R220 L229 F239 O291 R220 L229 F239 O291 S297 L229 F239 O291 S297 P317 D340 C366 F239 O291 S297 P317 D340 C366 M399 …
Depth-First Search – DFS (Derinlik Öncelikli Arama) Seviye 0 Seviye 1 Seviye 2 Seviye 3 b dallanma faktörü, m maximum derinlik olmak üzere Bütünlük : Yok, her zaman aramayı sonlandıramaz Zaman Karmaşıklığı : O(bm) dir. Alan Karmaşıklığı : O(bm) Optimallik : Her zaman çözüm bulunamaz.
Depth-First Search (DFS) (devam) Amaç Derinlik d Amaç …
Depth-First Search (DFS) (devam)
Depth-First Search (DFS) (devam)
Depth-First Search (DFS) (devam)
Depth-First Search (DFS) (devam)
Depth-First Search (DFS) (devam)
Depth-First Search (DFS) (devam)
Depth-First Search (DFS) (devam)
Depth-First Search (DFS) (devam)
Depth-First Search (DFS) (devam)
Depth-First Search (DFS) (devam)
Depth-First Search (DFS) (devam)
Derinlik Öncelikli Arama Algoritması Başlangıç düğümlerin bir listesi olan N’yi yerleştir Eğer N boş ise o zaman çık ve başarısızlık mesajı ver N’de ilk düğüm olan n ‘yi yerleştir ve N’den n’yi sil Eğer n amaç düğümü ise o zaman çık ve başarı mesajı ver Eğer n=max derinlik ise o zaman 2. adıma git Aksi durumda N’nin önüne n’nin coçuklarını ekle ve 2. adıma geri dön
Problem : 3-bulmaca 2 3 1 2 1 3 Başlangıç : Şekil 1 Durumlar : 4 kare, 3 sayı ve boş Amaç : En kısa çözüm (Şekil 2) - Arama uzayı, - Derinlemesine arama, - Genişlemesine arama İşlem : Yukarı, Aşağı, Sağ, Sol, boş alandan yararlanılacak, tekrar eden hareketler göz ardı edilecek Maliyet : Her hareket 1 birim 2 3 1 2 1 3 Şekil 2: Amaç Şekil 1: Başlangıç
K M M K Problem: Kırmızı ve mavi jetonların yerini değiştirme Durumlar : 2 kırmızı, 2 mavi jeton ve 5 gözlü bir tahta Başlangıç : Şekil 1 Amaç : Değişimi tamamlamak için gerekli en küçük sayı nedir? (Şekil 2) Arama Ağıcı, BFS, DFS İşlem : Kırmızı sadece sağa, Mavi sadece sola, Sadece 1 taşıma yapılabilir , Taşıma işleminde boşluktan yararlanılır , Sadece 1 dolu göz üzerinden atlanabilir Maliyet : 1 birim K M M K Şekil 1: Başlangıç Şekil 2: amaç
Problem. : S şehrinden G şehrine ulaşmayı Bilgisiz Problem : S şehrinden G şehrine ulaşmayı Bilgisiz Arama yöntemleri ile çözme (BFS, UC, DFS) Başlangıç : S şehri Amaç : G şehri Operatör : Şehirler arası mesafe G