Transcript YZ_4

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)
 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*
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
Bilgisiz veya
KÖRÜNE ARAMA- Blind search
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
Kör Arama
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
Yol haritası
Durum Uzayı
CG
CG
3
SC
SR
FA
4
7
3
1
R
2
A
3
3
S
2
L
CS
4
3
W
4
E
7
SG
14 Jan 2004
CS 3243 - Blind Search
8
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.
arama ağacı
CG
SC
S
W
SR
CS
L
L
A
R
SG
CS
E
SG
FA
başarı
A
SG
E
R
SG
FA
Enine arama


En yüzeyde (en üst seviye) olan
genişlenmemiş düğümü genişletmeli
FIFO yapısı: yeni ardıllar sona eklenecek
Enine arama


En yüzeyde (en üst seviye) olan genişlenmemiş
düğümü genişletmeli
FIFO yapısı: yeni ardıllar sona eklenecek
Enine arama

En yüzeyde (en üst seviye) olan
genişlenmemiş düğümü genişletmeli

FIFO yapısı: yeni ardıllar sona eklenecek
Enine arama

En yüzeyde (en üst seviye) olan
genişlenmemiş düğümü genişletmeli

FIFO yapısı: yeni ardıllar sona eklenecek
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
Enine Arama
Gen. düğüm
{S}
S
{ABC}
A
{BCDEG}
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
Enine Arama-örnek
s


d derinlikli tam arama
ağacı; her bir yaprak
olmayan düğümün b
oğlu var:
Toplam: 1 + b + b^2
+ ... + b^d
1
2
1
b
b^2
d
– Ö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
b^d
Enine aramada mekan ve zaman
değerlendirmesi
14 Jan 2004
CS 3243 - Blind Search
17
Derine Arama


Arama ağacı
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
W
SR
CS
L
L
A
R
SG
CS
E
SG
FA
başarı
A
SG
E
R
SG
FA
Derinine Arama

Arama ağacı
Derinine aramada arama ağacı
yukarıdan aşağıya en sol düğümden
başlayarak yaprak düğüme ulaşılana
dek geliştiriliyor.
CG
SC
S

Eğer bir yolda çözüm bulunamazsa,
arama sonraki sol ve genişlenmemiş
düğümle devam ettirilir.
W
SR
CS
L
L
A
R
SG
CS
E
SG
FA
başarı
A
SG
E
R
SG
FA
Arama ağacı
CG
Derinine arama

SC
S
SR
Derinine arama işlemleri
ardışıklığı
R
FA
Başl.kuyruk
Kuyruk 1
CG
CG
SC
Kuyruk 2
SC
S
S
Kuyruk 3
SR
Kuyruk 4
Kuyruk 5
Kuyruk 6
L
A
R
Kuyruk 7
FA
Kuyruk 8
SG
SR L CS W
A
SG
L
CG-SC
CS
E
SG
L
A
R
CS
W
SG
E
SG
FA
genişlenmesi
SC-S genişlenmesi
S-SR, L, CS, W genişlenmesi
SR genişlenemez
L CS W
L-A, SG, E, CS genişlenmesi
A SG E CS’ CS W
A-R genişlenmesi
R SG E CS’ CS W
R-FA genişlenmesi
FA SG E CS’ CS W
FA genişlenemez
SG E CS’ CS W
Başarı
Derinine arama


En derindeki genişlenmemiş düğümü genişletmeli
LIFO yapısı, yani ardıllar öne yazılacak
Derinine arama


En derindeki genişlenmemiş düğümü genişletmeli
LIFO yapısı: ardıllar öne yazılacak
Derinine arama


En derindeki genişlenmemiş düğümü genişletmeli
LIFO yapısı, yani ardıllar öne yazılacak
Derinine arama


En derindeki genişlenmemiş düğümü genişletmeli
LIFO yapısı, yani ardıllar öne yazılacak
Derinine arama



En derindeki genişlenmemiş düğümü genişletmeli
LIFO yapısı, yani ardıllar öne yazılacak
Derinine arama


En derindeki genişlenmemiş düğümü genişletmeli
LIFO yapısı, yani ardıllar öne koyulacak
Derinine arama


En derindeki genişlenmemiş düğümü genişletmeli
LIFO yapısı, yani ardıllar öne yazılacak
Derinine arama


En derindeki genişlenmemiş düğümü genişletmeli
LIFO yapısı, yani ardıllar öne yazılacak
Derinine arama


En derindeki genişlenmemiş düğümü genişletmeli
LIFO yapısı, yani ardıllar öne yazılacak
Derinine arama


En derindeki genişlenmemiş düğümü genişletmeli
LIFO yapısı, yani ardıllar öne yazılacak
Derinine arama


En derindeki genişlenmemiş düğümü genişletmeli
LIFO yapısı, yani ardıllar öne yazılacak
Derinine arama


En derindeki genişlenmemiş düğümü genişletmeli
LIFO yapısı, yani ardıllar öne yazılacak
derinine arama (daha bir örnek)
Düğümlerin yanında parantez içinde o düğümün taranma sırası gösterilip.
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
Derinine Arama algoritması
Gen. düğüm liste
{S}
S
{ABC}
A
{ D E G B C}
D
{EGBC}
E
{GBC}
G
{BC}
S
1
5
B
A
3
D
8
C
9
7
E
G
Çözüm yolu S A G <-- G’nin değeri= 10
Genişlenen düğümler sayısı (amaç düğümle birlikte) = 5
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
Sınırlı derinine arama
derinliği sınırlı götürmekle derinine arama
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.
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
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
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
Yinelemeli derinine arama fonksiyonu
Yinelemeli derinine arama l =0
Yinelemeli derinine arama l =1
Yinelemeli derinine arama l =2
Yinelemeli derinine arama l =3
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%
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
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
Sabit maliyet Araması
Açılan
düğüm
S
A
D
B
C
E
G’
düğümler listesi
{S(0)}
{A(1) B(5) C(8)}
{D(4) B(5) C(8) E(8) G(10)}
{B(5) C(8) E(8) G(10)}
{C(8) E(8) G’(9) G(10)}
{E(8) G’(9) G(10) G”(13)}
{G’(9) G(10) G”(13) }
{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
1
B
A
3
D
9
7
E
8
5
C
4
G
5
G’
G”
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
Tekrarlanan durumların aradan kaldırılması

Amaç:Durum uzayının boyutunu küçültmekle arama
etkisinin yükseltilmesi
1. 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ı
İ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
Arama stratejilerinin karşılaştırılması
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)
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.
Arama algoritmaları için demolar



http://www.cs.rochester.edu/~kautz/Mazes/
search/applet.html
http://www.cse.unl.edu/~choueiry/S03-476876/searchapplet/index.html
http://www.dcs.bbk.ac.uk/~dell/teaching/ai
wa/
14 Jan 2004
CS 3243 - Blind Search
57