Arama ile sorun çözme

57
Arama ile sorun çözme Ders 3

description

Arama ile sorun çözme. Ders 3. Konular. Sorun çözen vekil Sorun türleri Sorunun ifade edilmesi Sorun örnekleri Temel arama algoritmaları. Arama Türleri. Tüm arama yöntemlerinde başlıca düşünce, kısmı çözüm ardışıklıkları kümesini bulmak ve genişletmektir. Bilgisiz Arama (Körüne arama) - PowerPoint PPT Presentation

Transcript of Arama ile sorun çözme

Page 1: Arama ile sorun çözme

Arama ile sorun çözme

Ders 3

Page 2: Arama ile sorun çözme

Konular

Sorun çözen vekil Sorun türleri Sorunun ifade edilmesi Sorun örnekleri Temel arama algoritmaları

Page 3: Arama ile sorun çözme

Arama Türleri

Bilgisiz Arama (Körüne arama) Enine arama Derinine arama Özyinelemeli derinine arama

Bilgili Arama Stratejileri Dağa Tırmanma En iyisini arama Hırslı arama Işın arama Algorithm A*

Tüm arama yöntemlerinde başlıca düşünce, kısmı çözüm ardışıklıkları kümesini bulmak ve genişletmektir

Page 4: Arama ile sorun çözme

Arama parametreleri

Tam- kullanılan arama algoritması ile çözüm bulunuyor mu?

Mekan- algoritmanın kullandığı durum uzayının boyutu (bellek alanı)

Zaman- algoritmanın gerçekleştirilmesi için gereken zaman

Optimal- bu algoritma ile durum uzayında en iyi çözümü bulmak mümkün mü? (bu algoritma ile ilk aramada en iyi çözüme ulaşılmasının mümkünlüğü değil)

14 Jan 2004 CS 3243 - Blind Search 4

Page 5: Arama ile sorun çözme

Bilgisiz veya Bilgisiz veya

KÖRÜNE ARAMA-KÖRÜNE ARAMA- Blind searchBlind search

Page 6: Arama ile sorun çözme

Bilgisiz (kör) arama yöntemleri

Bilgisiz arama yöntemlerinde yalnız sorunun tanımında bulunan bilgiler kullanıla bilir Enine arama-Breadth-first search Derinine arama-Depth-first search Sınırlı derinine arama-Depth-limited search Özyinilemeli derinine arama-Iterative

deepening search

Page 7: Arama ile sorun çözme

Kör Arama

Kör arama yöntemlerinde çözüme ulaşmak için hiçbir bilgi verilmez. Aramanın her hangi adımında çözüme ne kadar yakın (veya uzak) olması hakkında veya çözümün buluna bileceği hakkında fikir söylemek mümkün değildir.

başlangıç durumu içeren elementi (ağacın kökü) seçmeli

listedeki ilk yol amaç durumunda sonlanana dek veya liste boş olana dek aşağıdakileri yapmalı:

listeden ilk yolu almalı

İlk yolu, onun uç düğümünün tüm ardıllarına doğru genişletmekle yeni yollar oluşturmalı

Döngülü tüm yolları gözden atmalı

Amaç durumu bulunursa aramayı bitirmeli, eksi halde yeni yolları gözden geçirmeli

Tüm yollar gözden geçirildikten sonra amaç durumu bulunamazsa aramayı başarısız kabul etmeli

Kör arama

Page 8: Arama ile sorun çözme

14 Jan 2004 CS 3243 - Blind Search 8

Durum Uzayı CG

CG

SC

S

SR

W

CSLAR

ESG

FA

7

2

1

3 47

4

23

33

3

4

Yol haritası

Page 9: Arama ile sorun çözme

Enine arama

Enine aramada ağaç soldan sağa, yukarıdan aşağıya doğru taranıyor. Başka değişle, bir seviyedeki tüm düğümler genişlendikten (tarandıktan) sonra bir sonraki aşağı seviyeye geçilir.

CG

SC

S

SRW

CSL

A

SGSG

FA

R

CSL SG

A E

R

FA

arama ağacı

SG

E

başarı

Page 10: Arama ile sorun çözme

Enine arama En yüzeyde (en üst seviye) olan

genişlenmemiş düğümü genişletmeli FIFO yapısı: yeni ardıllar sona eklenecek

Page 11: Arama ile sorun çözme

Enine arama

En yüzeyde (en üst seviye) olan genişlenmemiş düğümü genişletmeli

FIFO yapısı: yeni ardıllar sona eklenecek

Page 12: Arama ile sorun çözme

Enine arama

En yüzeyde (en üst seviye) olan genişlenmemiş düğümü genişletmeli FIFO yapısı: yeni ardıllar sona eklenecek

Page 13: Arama ile sorun çözme

Enine arama

En yüzeyde (en üst seviye) olan genişlenmemiş düğümü genişletmeli FIFO yapısı: yeni ardıllar sona eklenecek

Page 14: Arama ile sorun çözme

Enine arama patrametreleri

Tam? evet (b sonlu ise) Zaman? 1+b+b2+b3+… +bd O(bd) Mekan? O(bd) (her bir düğüm bellekte tutuluyor) Optimal? Evet (eğer her adım için değer = 1 ise);

genelde ise optimal değil Mekan sorunu çok önemlidir

Page 15: Arama ile sorun çözme

Enine Arama

Gen. düğüm { S } S { A B C } A { B C D E G } B { C D E G G' } C { D E G G' G" } D { E G G' G" } E { G G' G" } G { G' G" } Çözüm yolu- S A G <-- G’nin

değeri-10 Genişlenen düğümler sayısı (amaç düğümle birlikte) = 7

Page 16: Arama ile sorun çözme

Enine Arama-örnek

d derinlikli tam arama ağacı; her bir yaprak olmayan düğümün b oğlu var:

Toplam: 1 + b + b^2 + ... + b^d

s1

b

b^2

b^dd

2

1

– Örnek: 12 derinlikli tam arama ağacında 0,…,11 derinlikte her düğümün 10 oğlu var. 12.ci derinlikteki düğümlerin oğulları yoktur. Böylelikle, ağaçta 1 + 10 + 100 + 1000 + ... + 10^12 = (10^13 - 1) düğüm var

Page 17: Arama ile sorun çözme

Enine aramada mekan ve zaman değerlendirmesi

14 Jan 2004 CS 3243 - Blind Search 17

Page 18: Arama ile sorun çözme

Derine Arama

Derine aramada arama ağacı yukarıdan aşağıya en sol düğümden başlayarak yaprak düğüme ulaşılana dek geliştiriliyor.

Eğer bir yolda çözüm bulunamazsa, arama sonraki en sol ve genişlenmemiş düğümle devam ettirilir.

CG

SC

S

SRW

CSL

A

SGSG

FA

R

CSL SG

A E

R

FA

Arama ağacı

SG

E

başarı

Page 19: Arama ile sorun çözme

Derinine Arama

Derinine aramada arama ağacı yukarıdan aşağıya en sol düğümden başlayarak yaprak düğüme ulaşılana dek geliştiriliyor.

Eğer bir yolda çözüm bulunamazsa, arama sonraki sol ve genişlenmemiş düğümle devam ettirilir.

CG

SC

S

SRW

CSL

A

SGSG

FA

R

CSL SG

A E

R

FA

Arama ağacı

SG

E

başarı

Page 20: Arama ile sorun çözme

Derinine arama

Derinine arama işlemleri ardışıklığı

SR

L

A

R

FA

SG

S

SC

CG

L CS W

CS W

SG E CS’ CS W

SG E CS’ CS W

SG E CS’ CS W

E CS’ CS W

Başl.kuyruk

Kuyruk 1

Kuyruk 2

Kuyruk 3

Kuyruk 4

Kuyruk 5

Kuyruk 6

Kuyruk 7

Kuyruk 8

CG-SC genişlenmesi

SC-S genişlenmesi

S-SR, L, CS, W genişlenmesi

SR genişlenemez

L-A, SG, E, CS genişlenmesi

A-R genişlenmesi

R-FA genişlenmesi

FA genişlenemez

Başarı

CG

SC

SSR

WCSL

ASG

SGFA

RCS

L SGA E

R

FA

Arama ağacı

SG

E

CG

SCS

SR

L

A

R

FA

SG

Page 21: Arama ile sorun çözme

Derinine arama

En derindeki genişlenmemiş düğümü genişletmeli

LIFO yapısı, yani ardıllar öne yazılacak

Page 22: Arama ile sorun çözme

Derinine arama

En derindeki genişlenmemiş düğümü genişletmeli

LIFO yapısı: ardıllar öne yazılacak

Page 23: Arama ile sorun çözme

Derinine arama

En derindeki genişlenmemiş düğümü genişletmeli

LIFO yapısı, yani ardıllar öne yazılacak

Page 24: Arama ile sorun çözme

Derinine arama

En derindeki genişlenmemiş düğümü genişletmeli

LIFO yapısı, yani ardıllar öne yazılacak

Page 25: Arama ile sorun çözme

Derinine arama

En derindeki genişlenmemiş düğümü genişletmeli

LIFO yapısı, yani ardıllar öne yazılacak

Page 26: Arama ile sorun çözme

Derinine arama

En derindeki genişlenmemiş düğümü genişletmeli

LIFO yapısı, yani ardıllar öne koyulacak

Page 27: Arama ile sorun çözme

Derinine arama

En derindeki genişlenmemiş düğümü genişletmeli

LIFO yapısı, yani ardıllar öne yazılacak

Page 28: Arama ile sorun çözme

Derinine arama

En derindeki genişlenmemiş düğümü genişletmeli

LIFO yapısı, yani ardıllar öne yazılacak

Page 29: Arama ile sorun çözme

Derinine arama

En derindeki genişlenmemiş düğümü genişletmeli

LIFO yapısı, yani ardıllar öne yazılacak

Page 30: Arama ile sorun çözme

Derinine arama

En derindeki genişlenmemiş düğümü genişletmeli

LIFO yapısı, yani ardıllar öne yazılacak

Page 31: Arama ile sorun çözme

Derinine arama

En derindeki genişlenmemiş düğümü genişletmeli

LIFO yapısı, yani ardıllar öne yazılacak

Page 32: Arama ile sorun çözme

Derinine arama

En derindeki genişlenmemiş düğümü genişletmeli

LIFO yapısı, yani ardıllar öne yazılacak

Page 33: Arama ile sorun çözme

derinine arama (daha bir örnek)

Düğümlerin yanında parantez içinde o düğümün taranma sırası gösterilip.

Page 34: Arama ile sorun çözme

Derinine aramanın özellikleri

Tam? Değil: sonsuz derinlik,döngülü uzaylar ola biliyor Tekrarlanan durumların önlenmesi için algoritmada

değişiklik yapılıyor sonlu uzayda tamlık

Zaman? O(bm): m , d’den çok büyük ise zaman oldukça büyük olacak; m-yol uzunluğu çözümler çok ise, enine aramadan daha hızlı ola

bilir Uzay? O(bm)- doğrusal uzay Optimal? Değil

Page 35: Arama ile sorun çözme

Derinine Arama algoritması

Gen. düğüm liste { S }

S { A B C } A { D E G B C} D { E G B C } E { G B C } G { B C }

Çözüm yolu S A G <-- G’nin değeri= 10 Genişlenen düğümler sayısı (amaç düğümle

birlikte) = 5

S

CBA

D E

15 8

937

G

Page 36: Arama ile sorun çözme

Derinine Arama algoritması

Algoritmanın esas özellikleri: Genişlenme için listeden her zaman en

derindeki düğümü seçmeli ve yeni üretilmiş düğümleri listeye yazmalı

liste LIFO yapılıdır. Genişlenme için seçilmiş düğüm amaç ise

algoritmayı sonlandırmalı

• Sonlu olmaya bilir• Tam değil • Exponensiyel zaman O(b^d)• Doğrusal mekan O(bd) • şansımız varsa çözüm çok hızlı buluna bilir

goal

Page 37: Arama ile sorun çözme

Sınırlı derinine arama

derinliği sınırlı götürmekle derinine arama

Page 38: Arama ile sorun çözme

Sınırlı Derinine Arama

Bu arama yönteminde, derinine aramada olası sonsuz (ölü döngü) arama işlemini önlemek için aramanın belirli bir seviyeye kadar yapılması düşünülmektedir.

Örneğin, Yol haritasında hiçbir çözüm 11’den fazla adım gerektirmeyecek. Çünkü, burada yalnız 12 yerleşim vardır. Bu nedenle biz sınır gibi 11’i kullana bileriz. Döngülerin var olduğunu kabul etmiyoruz ve varsayıyoruz ki, sorun sonlu derinlik seviyesinde çözüle bilir.

Page 39: Arama ile sorun çözme

Sınırlı Derinine arama

Eğer gereken çözüm L+1 derinlikte ise, o hiç zaman bulunamayacak. (L-sınır derinliği)

Karmaşıklık bakımından yöntem sıradan derinine aramaya benzer (azami derinliği ifade eden derinlik sınırını göz önüne almakla)

Zaman karmaşıklığı

Uzay karmaşıklığı

Tam? Optimal?

O(bl) O(bl) Evet(çözüm <=l derinlikte

ise)

hayır

Page 40: Arama ile sorun çözme

Sınırlı Derinine arama

Sınırlı derinine arama yönteminde iyi arama sınırını bulmak çoğu zaman kolay olmuyor.

Arama uzayı büyük ve çözüm derinliği belli olmayan durumlarda yinelemeli derinine arama tercih edilen yöntemdir

Başarıya ulaşana dek derinlik sınırı her defa 1 arttırılıyor

Page 41: Arama ile sorun çözme

Yinelemeli derinine arama

Satranç turnuvalarında oyunlar kesin zaman sınırı içinde oynanıyor. Satranç programı her hamle için ne kadar zaman kullanmalı olduğu kararını vermelidir. Pek çok satranç programları arama işlemini yinelemeli derinine arama ile gerçekleştiriyorlar. 

Başka değişle, program önce 2 seviyede, sonra 3 , sonra 4… seviyede arama yapıyor. Bu, arama için ayrılan süre dolana dek devam ediyor.

Bundan sonra program, bulunan hamleler içinden en iyisini çözüm gibi kabul ediyor 

Page 42: Arama ile sorun çözme

Yinelemeli derinine arama fonksiyonu

Page 43: Arama ile sorun çözme

Yinelemeli derinine arama l =0

Page 44: Arama ile sorun çözme

Yinelemeli derinine arama l =1

Page 45: Arama ile sorun çözme

Yinelemeli derinine arama l =2

Page 46: Arama ile sorun çözme

Yinelemeli derinine arama l =3

Page 47: Arama ile sorun çözme

Yinelemeli derinine arama Sınırlı derinine arama yönteminde üretilen düğümler

sayısı: NDLS = b0 + b1 + b2 + … + bd-2 + bd-1 + bd

Yinelemeli derinine aramada üretilen düğümler sayısı: NIDS = (d+1)b0 + d b^1 + (d-1)b^2 + … + 3bd-2 +2bd-1 +

1bd

Örnek: b = 10, d = 5, NDLS = 1 + 10 + 100 + 1,000 + 10,000 + 100,000 = 111,111 NIDS = 6 + 50 + 400 + 3,000 + 20,000 + 100,000 = 123,456

Yineleme ve sınırlı arama arasındaki fark: (123,456 - 111,111)/111,111 = 11%

Page 48: Arama ile sorun çözme

Yinelemeli derinine arama yönteminin özellikleri:

Tam? Evet Zaman? (d+1)b0 + d b1 + (d-1)b2 + …

+ bd = O(bd) Mekan? O(bd) Optimal? Evet,eğer adım değeri=1

Page 49: Arama ile sorun çözme

Sabit maliyet- Uniform-Cost (UCS) g(n) = başlangıç düğümden açık n

düğümüne yolun değeri Algoritma:

her zaman en küçük g(n) değerli düğümü seçmeli; tüm yeni üretilmiş düğümleri listeye kaydetmeli

Listedeki düğümleri g(n) ‘nin artması ardışıklığı ile sıralamalı

Açılmak için seçilmiş düğüm amaç ise algoritmayı sonlandırmalı

Algoritmalarla bağlı kaynaklarda“Dijkstra Algoritması” , yöneylem araştırmasında “Dal ve Sınır Algoritması” denir

Page 50: Arama ile sorun çözme

Sabit maliyet AramasıAçılan düğüm düğümler listesi

{S(0)} S {A(1) B(5) C(8)} A {D(4) B(5) C(8) E(8) G(10)} D {B(5) C(8) E(8) G(10)} B {C(8) E(8) G’(9) G(10)}

C {E(8) G’(9) G(10) G”(13)} E {G’(9) G(10) G”(13) } G’ {G(10) G”(13) }

çözüm yolu S B G <-- G’nin değeri 10 değil, 9’tur

Açılan düğüm sayısı (amaç düğümle birlikte) = 7

S

CBA

D E

15

937

G G’ G”

8

54

Page 51: Arama ile sorun çözme

Sabit maliyet yönteminin özellikleri Tam (her bir adımın değeri sonsuz değilse)

g(n) <= g(amaç) koşulu ile durum uzayında düğümler sayısı n sonludur)

n’ düğümü n ’in oğlu ise g(n’) = g(n) + c(n, n’) > g(n) Amaç düğümü nihayette üretilecek ve amaç

denemesinden geçecek

Optimal/Uygun amaç denemesine bağlıdır Çoklu çözüm yolları Açık n düğümünden üretilen her çözüm yolunun değeri

>= g(n) Genişlenme için açılan ve denemeden geçen birinci

düğümün yol değeri listedeki her bir açık düğümün değerinden küçük veya eşittir

Eksponensiyel zaman ve mekan karmaşıklığı (b^d) ; d- en küçük değerli çözüm için çözüm yolunun derinliğidir

Page 52: Arama ile sorun çözme

Tekrarlanan durumların aradan kaldırılması

Amaç:Durum uzayının boyutunu küçültmekle arama etkisinin yükseltilmesi1. Bir önce bulunduğun duruma geri dönmemeli 2. Döngü yapacak yolları oluşturmamalı 3. Daha önce oluşturulmuş olan bir durumu yeniden

oluşturmamalı

Page 53: Arama ile sorun çözme

İkiyönlü arama- Bi-directional search

Başlangıç durumdan amaca ve amaç durumundan başlangıca doğru aynı zamanda arama

Yollar kesiştikte durmalı Tek bir başlangıç ve amaç durumu oldukta ve

hareketler değiştirile bilir oldukta iyidir Çözüme daha hızlı ulaşmak mümkün ola bilir

Page 54: Arama ile sorun çözme

Arama stratejilerinin karşılaştırılması

Page 55: Arama ile sorun çözme

Arama Yöntemlerinin özeti Yapay Zekada kullanılan arama teknikleri, bizi verilen

başlangıç durumdan amaç durumuna (durumlarına) doğru götüren adımlar ardışıklığının bulunmasına dayanmaktadır.

Enine ve derinine arama algoritmaları sonlu arama ağacında tüm düğümlerin bakılmasını gerektire bilir.

Bu veya diğer algoritmanın seçimi çözülecek soruna bağlıdır.

Kısmı yolların makul derinlikten sonra ölü sona veya başarılı sona ulaşacağına inanıyorsan , derine arama yöntemini kullanmak mantıklıdır.

Yinelemeli Derinine arama küçük bellek alanı ister (derinine arama gibi) ve en kısa yolu önce bular (enine arama gibi)

Page 56: Arama ile sorun çözme

Arama Yöntemlerinin özeti En kısa yolu bulmak istiyorsanız en iyisi enine

arama yöntemini kullanmaktır Daha az bellek alanı kullanmak gerekiyorsa derinine

arama kullanmak daha etkilidir Sabit Maliyet araması:

Hareketlerin değerleri farklıdır En az değerli çözüm gerekiyor Yalnız sabit maliyet aramasında yol değeri dikkate alınıyor

Çözümü daha çabuk bulmak gerekiyorsa o zaman daha karmaşık algoritmalar kullanılmalıdır!

Çözüm durumlarına götüren pek çok yol varsa derinine arama hızlıdır, fakat yollar çok uzundur.

Hedefe götüren yalnız bir kısa yol varsa enine arama daha hızlıdır. Fakat arama uzayı geniş ve derindir.

Page 57: Arama ile sorun çözme

Arama algoritmaları için demolar

http://www.cs.rochester.edu/~kautz/Mazes/search/applet.html

http://www.cse.unl.edu/~choueiry/S03-476-876/searchapplet/index.html

http://www.dcs.bbk.ac.uk/~dell/teaching/aiwa/

14 Jan 2004 CS 3243 - Blind Search 57