Yapay Zeka DR.KORHAN KAYIŞLI.

Slides:



Advertisements
Benzer bir sunumlar
BENZETİM Prof.Dr.Berna Dengiz 10. Ders.
Advertisements

Yığınlama Sıralaması (Heap Sort)
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
U.Mahir YILDIRIM Bülent ÇATAY
YAPAY ZEKA Yrd. Doç. Dr. Rembiye Kandemir
MIT503 Veri Yapıları ve algoritmalar Algoritma Oluşturma – Açgözlü algoritmalar ve buluşsallar Y. Doç. Yuriy Mishchenko.
RİSK KAVRAMI RİSKLERİN BELİRLENMESİ
SINIFLANDIRMA VE REGRESYON AĞAÇLARI (CART)
Informed Search and Exploration
MIT563 Yapay Zeka ve Makine Öğrenmesi
Algoritma ve Akış Diyagramları
Problemi Çözme Adımları
CLUSTERING USING REPRESENTATIVES Hazırlayan: Arzu ÇOLAK
MIT503 Veri Yapıları ve algoritmalar Algoritmalara giriş
İçerik Ön Tanımlar En Kısa Yol Problemi Yol, Cevrim(çember)
Bellek Tabanlı Sınıflandırma
Yapay Zeka DR.KORHAN KAYIŞLI.
LEKIN Ar. Gör. Pelin ALCAN.
En Küçük Yol Ağacı (Minimum Spanning Tree)
Algoritma ve Akış Diyagramları
Çizge Teorisi, Dağıtık Algoritmalar ve Telsiz Duyarga Ağları
YAPAY ZEKA ve UZMAN SİSTEMLER
İçerik: Graflar Tanım Gösterim Dolaşma Algoritmaları
Geriden Kestirme Hesabı
PARAMETRİK VE HEDEF PROGRAMLAMA
MIT503 Veri Yapıları ve algoritmalar Veri ağaçları
Bölüm6:Diferansiyel Denklemler: Başlangıç Değer Problemleri
M.Fatih AMASYALI Yapay Zeka Ders Notları
BİL551 – YAPAY ZEKA BİLGİSİZ ARAMA YÖNTEMLERİ
Rekabet ortamında arama Adversarial Search
Arama ile sorun çözme Ders 3.
GEOMETRİK PROGRAMLAMA
BİYOİNFORMATİK NEDİR? BİYOİNFORMATİKTE KULLANILAN SINIFLAMA YÖNTEMLERİ
Bölüm5 :Kök Bulma Sayısal bilgisayarlar çıkmadan önce, cebirsel denklemlerin köklerini çözmek için çeşitli yollar vardı. Bazı durumlarda, eşitliğinde olduğu.
İÇ KONTROL UYUM EYLEM PLANI VE YOL HARİTASI. İÇ KONTROL İç kontrol genel olarak idarenin amaçlarına, belirlenmiş politikalara ve mevzuata uygun olarak;
Örnekleme Yöntemleri Şener BÜYÜKÖZTÜRK, Ebru KILIÇ ÇAKMAK,
Oyunlar.
Analiz Yöntemleri Düğüm Analiz
SONLU ELEMANLARA GİRİŞ DERSİ
Şahin BAYZAN Kocaeli Üniversitesi Teknik Eğitim Fakültesi
BİL551 – YAPAY ZEKA Genetik Algoritma
BAH TABLOSU.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
En Yakın k-komşu Algoritması Bellek Tabanlı Sınıflandırma
Lineer Olmayan Denklem Sistemlerinin Çözüm Yöntemleri
Ahmet ÖZSOY Gökhan ÇAKMAK
Sayısal Analiz 7. Hafta SAÜ YYurtaY.
BİL3112 Makine Öğrenimi (Machine Learning)
Oyunlar. Giriş YZ da oyunlar 3 sınıfa ayrılarak incelenir. – Rasgele sonuçlu (tavla vb) – Ustalık gerektiren (futbol, golf vs) – Stratejik (satranç,dama,
YAPAY SİNİR AĞLARI.
BİLGİSAYAR PROGRAMLAMA Araş. Gör. Ahmet ARDAHANLI Kafkas Üniversitesi Mühendislik Fakültesi.
Bilgisayar Mühendisliği Bölümü
LOJİSTİK MALİYETLERİN YÖNETİMİ
Kümeleme Modeli (Clustering)
Algoritmalar II Ders 8 Açgözlü Algoritmalar.
Çizge Algoritmalari 6. ders.
Lojistik Merkez Yer Seçimi
Optimizasyon Teknikleri
Problem Çözme Yaklaşımları
Algoritmanın Hazırlanması
İleri Algoritma Analizi
Algoritma Nedir? Algoritmayı, herhangi bir problemin çözümü için izlenecek yolun adımlar halinde yazılması olarak tanımlayabiliriz. Algoritma, bir problemin.
Fırat Üniversitesi Mühendislik Fakültesi Elektrik-Elektronik Müh.
Problemi Çözme Adımları
Yapay Zeka Nadir Can KAVKAS
5 Gamma Dağılımı Gamma dağılımının yoğunluk fonksiyonu şöyledir.
OLASILIK DAĞILIMLARI Bu kısımda teorik olasılık dağılımları incelenecektir. Gerçek hayatta birçok olayın dağılımı bu kısımda inceleyeceğimiz çeşitli olasılık.
Sunum transkripti:

Yapay Zeka DR.KORHAN KAYIŞLI

A* Algoritması Sezgisel bilgilerin kullanımında değer fonksiyonunun bilinmesi ve belirlenmesi büyük önem taşımaktadır. Bu fonksiyon, durumları ifade eden çözüm grafı üzerinde verilmiş başlangıç durumdan hedefe ulaşmak için gereken minimum yolun bulunmasında daha az tarama yapmaya olanak tanımalıdır.

A* Algoritması Değer fonksiyonlarının belirlenmesinde farklı yaklaşımlar vardır. Değer fonksiyonlarına örnek olarak; Düğümün çözüme dahil olmasının olasılık değerlendirilmesi, Verilmiş düğümden hedefe olan uzaklık Diğer farklılık ölçütleri gösterilebilir.

A* Algoritması Problem çözümünde sonuca ulaşmak için düğümlerin seçilmesinde bu düğümlerin sıralanmasını sağlayan bir f fonksiyonu olduğunu varsayalım. Herhangi x düğümünün fonksiyon değeri, f(x) ile ifade edilsin. Bu fonksiyon, x düğümünden geçmek şartı ile başlangıç düğümden hedefe olan yollar içerisinden minimum olanının değerlendirilmesine karşılık gelmektedir. Açılması gereken düğümler burada f fonksiyonunun artışına göre sıralanmaktadır ve sıralı arama algoritmaları olarak bilinmektedir.

A* Algoritması Sıralı arama algoritmaları: Başlangıç durum çözüm ağacının köküne yerleştirilir ve geçerli gidişler ve operatörlerle bu durumdan mümkün olan yeni durumlar - ”çocuklar” elde edilir. Çocuk düğümler için f(xi) fonksiyon değerlendirmesi yapılarak minimum değerli düğüm seçilir aynı değere sahip olan birkaç düğüm varsa bu düğümler içerisinden operatörlerin kullanım sırasına göre herhangi birisi seçilir.

A* Algoritması Açılan minimum değerli düğümün benzeri şekilde, çocuk düğümlerinin değerlendirilmesi yapılır. O anki düğümden yeni bir çocuk düğüm elde edilemiyorsa (önce açılmış bir duruma rastlanırsa) ve henüz hedefe erişilmemişse üst seviyeye geri dönülerek arama yönü, minimum olan fonksiyon değerine göre değiştirilir. İşlemler hedefe ulaşılıncaya kadar tekrarlanır. Hedef bulunmuşsa başlangıç durumundan hedefe olan yol çözümü verir.

A* Algoritması Sıralı algoritmanın çalışma mantığı; Ormanda yol bulma örneği: Bir ormanda yolu kaybettiğinizi düşünün. Doğal olarak sonunda nereye erişmeniz gerektiğini bilmektesiniz (Bu hedef durumunuzdur). Çıkış için dağları, çayları değil de daha kolay geçilebilin yolları seçmektesiniz. Şayet bu seçimler sonucunda tekrar önce bulunduğunu herhangi bir yere erişirseniz, en iyi çözüm bu noktaya vardığınız yere tekrar geri dönerek başka bir yön seçmeniz olacaktır. Dolayısıyla algoritma bir pusula gibi çalışarak hedefe olan yolu belirlemektedir. Hedeften sapmalar olursa, pusula rolünü üstlenen değer fonksiyonu yeni ayarlama yapmaktadır.

Sezgisel çözümlemenin açıklanması A* Algoritması Yöntemde minimum yol bilinmemektedir. Bu yol başlangıç durumundan bulunduğumuz duruma kadar bilinen ve bulunulan durumdan hedefe kadar tahmin edilecek bileşenlerden oluşmaktadır. Sezgisel çözümlemenin açıklanması

A* Algoritması Eğer başlangıç s düğümünden x düğümüne kadar olan yolu g(x) ile, x düğümünden f hedef düğümüne kadar olan yol değerini h(x) ile ifade edersek A* algoritması denilen sezgisel arama için aşağıdaki bağıntı elde edilir. f(x)=g(x)+h(x) Burada g(x), x durumunun gerçek olan o anki değeridir, h(x) ise x düğümünden çözüme olan gidişlerin sezgisel değeridir.

A* Algoritması g(x) değeri, genellikle başlangıç düğümden x düğümüne olan dolaysız uzaklığı ifade etmektedir. h(x)’ in kesin değeri bilinmemekte ve yerine, sezgisel bir yaklaşımla hesaplanan h(x) değeri kullanılmaktadır. Bu fonksiyon, iyi bir değerlendirme sonucu hedefe yaklaştıkça daha küçük, uzaklaştıkça daha büyük değerler oluşturmaktadır. Yani seçilen sezgisel fonksiyon hedefe ulaşmayı hızlandırma bakımından bir öneme sahiptir.

A* Algoritması Kötü seçilmiş sezgisel fonksiyonlarda daha çok tarama ile sonuca ulaşılabilir. Hart, Nilson, Rafael, tarafından önerilen A* Algoritması’ nın (1968-1972) genel biçimi Pohl tarafından verilmiştir f(x)=α.g(x)+(1-α).h(x) Burada α, 0α1 α nın büyük değerleri için daha çok enine ve küçük değerleri için daha çok derinine arama yapılır.

A* Algoritması α değeri problemin beli aşamalarında aramayı yönlendirmek için kullanılabilir. A* Algoritması için α=0.5 alınır ve bu durumda f(x)=0.5.g(x)+0.5.h(x) α= 0 durumu saf gradyan yöntemine, α= 1 ise çözüm ağacının tam taranmasına karşılık gelmektedir.

A* Algoritması Bilgisayar bilimlerinde en kısa yol bulmak için kullanılan algoritmalardan birisidir. Örneğin seyyar tüccar problemi (travelling salesman problem, TSP) gibi bir problemin çözümünde kullanılabilir. Benzer şekilde oyun programlamada, oyunda bulunan oyuncuların en kısa yolu bularak hedefe gitmeleri için de sıklıkla kullanılan algoritmadır. Kısaca bir düğümden (node) hedef bir düğüme (target node) en kısa hangi düğümler üzerinden gidileceğini bulmaya yarayan “en iyi yerleştirme (best fit)” algoritmasıdır.

A* Algoritması A* algoritması yapı olarak muteber(geçerli, güvenilir) sezgisel (admissable heuristic) bir algoritma olarak sınıflandırılabilir. Bunun sebebi algoritmasının mesafe hesaplamada kullandığı fonksiyondur: f(n) = g(n) + h(n) denklemindeki; f(n) =hesaplama yapan sezgisel (heuristic) fonksiyon. g(n)  =başlangıç düğümünden mevcut düğüme kadar gelmenin maliyeti h(n) = Mevcut düğümden hedef düğüme varmak için tahmin edilen mesafe. Dikkat edileceği üzere f(n) fonksiyonunun sezgisel olma sebebi, bu fonksiyon içerisinde bulunan ve tahmine dayalı olan h(n) sezgisel fonksiyonudur.

A* Algoritması Algoritmanın çalışması: Algoritma yukarıdaki toplama işlemini kullanan oldukça basit bir yapıya sahiptir. Veri yapısı olarak bir öncelik sırası (priority queue) kullanan algoritmada en öncelikli olan düğüm f(n) değeri en düşük olan düğümdür. Algoritma her adımda en düşük değeri (Ve dolayısıyla en önemli) düğümü alır (yani bu düğüme gider) ve düğümü sıradan (queue) çıkarır. Gidilen bu düğüme göre komşu olan bütün düğümlerin değerleri güncellenir (artık bu düğüme gelmenin bir maliyeti vardır ve dikkat edilirse f(n) fonksiyonu içerisinde bu değer yer almaktadır.) Algoritma yukarıdaki adımları hedefe varana kadar (yani hedef düğümü öncelik sırasında (priority queue) en öne gelene kadar) veya sırada (queue) düğüm kalmayana kadar tekrarlar.

A* Algoritması Örnek: 8 taş problemi üzerinde A* algoritmasının çalışmasının açıklanması. Problemde, verilen başlangıç durumdan hedefe ulaşmak için boşluğun yapması gereken en kısa hareket dizisinin bulunması istenmektedir. Boşluğun bir rakamla yer değiştirmek üzere hareket ettiğini düşünürsek, geriye hareketler yapılmadığı taktirde,

A* Algoritması Her durumda en çok 3 operatör vardır. 8 taş probleminde başlangıç durumundan hedef duruma ulaşmak için n minimum hareket sayısı, Problemin algoritma karmaşıklı O(3n) şeklinde belirlenir.

A* Algoritması 4 1 3 2 8 5 7 6

A* Algoritması Bu problem için çözüme on adımda ulaşılır. 310 =59049 farklı düğümün açılması anlamına gelir. Sezgisel yöntem kullanılmazsa bilgisayarda çok uzun zamanda çözüme ulaşılır.

A* Algoritması

A* Algoritması Burada her durum için f fonksiyonunun değeri, durumların yan taraflarında yuvarlak içerisinde verilmektedir. Minimum f fonksiyonu değerine sahip olan durum seçildikten sonra, operatörler uygulanarak çocuk düğümler açılır ve yeni fonksiyon değerleri hesaplanır. Sürekli olarak küçük değerli düğümler seçilerek hedefe varan çözüm aranır. Durumların üstlerinde kara içerisindeki sayılar ise düğümlerin açılma ardışıklığını ifade etmektedir. Örneğin 2. sırada açılan durum için derinlik g(x)=1 ve hedef durumunda yerinde olmayan taşlarının sayısını ifade eden h^(x) değeri 5 olduğundan f fonksiyonunun değeri 6’dır. İşlemler, f=7 olan sınır değeri aşılana kadar bu dalın çocukları boyunca devam ettirilmektedir. Örnekte herhangi bir derinlikte bu sınır değeri aşılsaydı, tekrar 2. seviyedeki (derinlik g=1) en sağ duruma geçilerek yeni sınır değeri 8 olarak belirlendikten sonra işlemler devam ettiriliecektir.

A* Algoritması

A* Algoritması