Title: Arama ile sorun
1Arama ile sorun çözme
2Konular
- Sorun çözen vekil
- Sorun türleri
- Sorunun ifade edilmesi
- Sorun örnekleri
- Temel arama algoritmalari
3Arama Türleri
- Tüm arama yöntemlerinde baslica düsünce, kismi
çözüm ardisikliklari kümesini bulmak ve
genisletmektir
- Bilgisiz Arama (Körüne arama)
- Enine arama
- Derinine arama
- Özyinelemeli derinine arama
- Bilgili Arama Stratejileri
- Daga Tirmanma
- En iyisini arama
- Hirsli arama
- Isin arama
- Algorithm A
4Bilgisiz veya KÖRÜNE ARAMA- Blind search
5Bilgisiz (kör) arama yöntemleri
- Bilgisiz arama yöntemlerinde yalniz sorunun
taniminda bulunan bilgiler kullanila bilir - Enine arama-Breadth-first search
- Derinine arama-Depth-first search
- Sinirli derinine arama-Depth-limited search
- Özyinilemeli derinine arama-Iterative deepening
search
6Kör Arama
- Kör arama yöntemlerinde çözüme ulasmak için
hiçbir bilgi verilmez. Aramanin her hangi
adiminda çözüme ne kadar yakin (veya uzak) olmasi
hakkinda veya çözümün buluna bilecegi hakkinda
fikir söylemek mümkün degildir.
7Yol haritasi
8Enine arama
- Enine aramada agaç soldan saga, yukaridan asagiya
dogru taraniyor. Baska degisle, bir seviyedeki
tüm dügümler genislendikten (tarandiktan) sonra
bir sonraki asagi seviyeye geçilir.
9Enine arama
- En yüzeyde (en üst seviye) olan genislenmemis
dügümü genisletmeli - FIFO yapisi yeni ardillar sona eklenecek
10Enine arama
- En yüzeyde (en üst seviye) olan genislenmemis
dügümü genisletmeli - FIFO yapisi yeni ardillar sona eklenecek
11Enine arama
- En yüzeyde (en üst seviye) olan genislenmemis
dügümü genisletmeli - FIFO yapisi yeni ardillar sona eklenecek
12Enine arama
- En yüzeyde (en üst seviye) olan genislenmemis
dügümü genisletmeli - FIFO yapisi yeni ardillar sona eklenecek
13Enine aramanin özellikleri
- Tam? evet (b sonlu ise)
- Zaman? 1bb2b3 bd O(bd)
- Mekan? O(bd) (her bir dügüm bellekte tutuluyor)
- Optimal? Evet (eger her adim için deger 1 ise)
- Mekan sorunu çok önemlidir
14Enine Arama
- Gen. dügü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 lt-- Gnin degeri-10
- Genislenen dügümler sayisi
- (amaç dügümle birlikte) 7
15Enine Arama-örnek
s
- d derinlikli tam arama agaci her bir yaprak
olmayan dügümün b oglu var - Toplam 1 b b2 ... bd
d
- Örnek 12 derinlikli tam arama agacinda 0,,11
derinlikte her dügümün 10 oglu var. 12.ci
derinlikteki dügümlerin ogullari yoktur.
Böylelikle, agaçta 1 10 100 1000 ...
1012 (1013 - 1) dügüm var
16Derine Arama
- Derine aramada arama agaci yukaridan asagiya en
sol dügümden baslayarak yaprak dügüme ulasilana
dek gelistiriliyor. - Eger bir yolda çözüm bulunamazsa, arama sonraki
en sol ve genislenmemis dügümle devam ettirilir.
basari
17Derinine Arama
- Derinine aramada arama agaci yukaridan asagiya en
sol dügümden baslayarak yaprak dügüme ulasilana
dek gelistiriliyor. - Eger bir yolda çözüm bulunamazsa, arama sonraki
sol ve genislenmemis dügümle devam ettirilir.
basari
18Derinine arama
- Derinine arama islemleri ardisikligi
CG SCS SR L A R FA SG
19Derinine arama
- En derindeki genislenmemis dügümü genisletmeli
- LIFO yapisi, yani ardillar öne yazilacak
20Derinine arama
- En derindeki genislenmemis dügümü genisletmeli
- LIFO yapisi ardillar öne yazilacak
21Derinine arama
- En derindeki genislenmemis dügümü genisletmeli
- LIFO yapisi, yani ardillar öne yazilacak
22Derinine arama
- En derindeki genislenmemis dügümü genisletmeli
- LIFO yapisi, yani ardillar öne yazilacak
23Derinine arama
- En derindeki genislenmemis dügümü genisletmeli
- LIFO yapisi, yani ardillar öne yazilacak
24Derinine arama
- En derindeki genislenmemis dügümü genisletmeli
- LIFO yapisi, yani ardillar öne koyulacak
25Derinine arama
- En derindeki genislenmemis dügümü genisletmeli
- LIFO yapisi, yani ardillar öne yazilacak
26Derinine arama
- En derindeki genislenmemis dügümü genisletmeli
- LIFO yapisi, yani ardillar öne yazilacak
27Derinine arama
- En derindeki genislenmemis dügümü genisletmeli
- LIFO yapisi, yani ardillar öne yazilacak
28Derinine arama
- En derindeki genislenmemis dügümü genisletmeli
- LIFO yapisi, yani ardillar öne yazilacak
29Derinine arama
- En derindeki genislenmemis dügümü genisletmeli
- LIFO yapisi, yani ardillar öne yazilacak
30Derinine arama
- En derindeki genislenmemis dügümü genisletmeli
- LIFO yapisi, yani ardillar öne yazilacak
31 derinine arama (daha bir örnek)
Dügümlerin yaninda parantez içinde o dügümün
taranma sirasi gösterilip.
32Derinine aramanin özellikleri
- Tam? Degil sonsuz derinlik,döngülü uzaylar ola
biliyor - Tekrarlanan durumlarin önlenmesi için algoritmada
degisiklik yapiliyor - ? sonlu uzayda tamlik
- Zaman? O(bm) m , dden çok büyük ise zaman
oldukça büyük olacak m-yol uzunlugu - çözümler çok ise, enine aramadan daha hizli ola
bilir - Uzay? O(bm)- dogrusal uzay
- Optimal? Degil
33Derinine Arama algoritmasi
- Gen. dügü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 lt-- Gnin degeri 10
- Genislenen dügümler sayisi (amaç dügümle
birlikte) 5
S
1
8
5
C
B
A
3
9
7
E
D
G
34 Derinine Arama algoritmasi
- Algoritmanin esas özellikleri
- Genislenme için listeden her zaman en derindeki
dügümü seçmeli ve yeni üretilmis dügümleri
listeye yazmali - liste LIFO yapilidir.
- Genislenme için seçilmis dügüm amaç ise
algoritmayi sonlandirmali
goal
- Sonlu olmaya bilir
- Tam degil
- Exponensiyel zaman O(bd)
- Dogrusal mekan O(bd)
- sansimiz varsa çözüm çok hizli buluna bilir
35Sinirli derinine arama
- derinligi sinirli götürmekle derinine arama
36 Sinirli Derinine Arama
- Bu arama yönteminde, derinine aramada olasi
sonsuz (ölü döngü) arama islemini önlemek için
aramanin belirli bir seviyeye kadar yapilmasi
düsünülmektedir. - Örnegin, Yol haritasinda hiçbir çözüm 11den
fazla adim gerektirmeyecek. Çünkü, burada yalniz
12 yerlesim vardir. Bu nedenle biz sinir gibi
11i kullana bileriz. Döngülerin var oldugunu
kabul etmiyoruz ve varsayiyoruz ki, sorun sonlu
derinlik seviyesinde çözüle bilir.
37Sinirli Derinine arama
- Eger gereken çözüm L1 derinlikte ise, o hiç
zaman bulunamayacak. (L-sinir derinligi) - Karmasiklik bakimindan yöntem siradan derinine
aramaya benzer (azami derinligi ifade eden
derinlik sinirini göz önüne almakla)
Zaman karmasikligi Uzay karmasikligi Tam? Optimal?
O(bl) O(bl) Evet(çözüm ltl derinlikte ise) hayir
38Sinirli Derinine arama
- Sinirli derinine arama yönteminde iyi arama
sinirini bulmak çogu zaman kolay olmuyor. - Arama uzayi büyük ve çözüm derinligi belli
olmayan durumlarda yinelemeli derinine arama
tercih edilen yöntemdir - Basariya ulasana dek derinlik siniri her defa 1
arttiriliyor
39Yinelemeli derinine arama
- Satranç turnuvalarinda oyunlar kesin zaman siniri
içinde oynaniliyor. Satranç programi da her hamle
için ne kadar zaman kullanmali oldugu kararini
vermelidir. Pek çok satranç programlari aramani
belirlenmis derinlige kadar degil, yinelemeli
derinine arama ile gerçeklestiriyorlar. - Baska degisle, program önce 2 seviyede, sonra 3 ,
sonra 4 seviyede arama yapiyor. Bu, arama için
ayrilan zaman bitene dek devam ediyor. - Zaman bittikte program, bulunan hamleler içinden
en iyisini çözüm gibi kabul ediyor
40Yinelemeli derinine arama fonksiyonu
41Yinelemeli derinine arama l 0
42Yinelemeli derinine arama l 1
43Yinelemeli derinine arama l 2
44Yinelemeli derinine arama l 3
45Yinelemeli derinine arama
- Sinirli derinine arama yönteminde üretilen
dügümler sayisi - NDLS b0 b1 b2 bd-2 bd-1 bd
- Yinelemeli derinine aramada üretilen dügümler
sayisi - NIDS (d1)b0 d b1 (d-1)b2 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 sinirli arama arasindaki fark
(123,456 - 111,111)/111,111 11
46Yinelemeli derinine arama yönteminin özellikleri
- Tam? Evet
- Zaman? (d1)b0 d b1 (d-1)b2 bd O(bd)
- Mekan? O(bd)
- Optimal? Evet,eger adim degeri1
47Sabit maliyet- Uniform-Cost (UCS)
- g(n) baslangiç dügümden açik n dügümüne yolun
degeri - Algoritma
- her zaman en küçük g(.) degerli dügümü seçmeli
tüm yeni üretilmis dügümleri OPEN listesine
kaydetmeli - OPEN listesindeki dügümleri g(.) nin artmasi
ardisikligi ile siralamali - Açilmak için seçilmis dügüm amaç ise algoritmayi
sonlandirmali - Algoritmalarla bagli kaynaklardaDijkstra
Algoritmasi , yöneylem arastirmasinda Dal ve
Sinir Algoritmasi denir
48Sabit maliyet Aramasi
- Açilan
- dügüm dügü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 lt-- Gnin degeri 10 degil,
9tur - Açilan dügüm sayisi (amaç dügümle birlikte)
7
S
1
8
5
C
B
A
3
9
4
5
7
E
D
G
G
49Sabit maliyet yönteminin özellikleri
- Tam (her bir adimin degeri sonsuz degilse)
- g(n) lt g(amaç) kosulu ile durum uzayinda
dügümler sayisi n sonludur) - n dügümü nin oglu ise g(n) g(n) c(n, n)
gt g(n) - Amaç dügümü nihayette üretilecek ve amaç
denemesinden geçecek - Optimal/Uygun
- Uygunluk dügüme uygulanan amaç denemesine
baglidir - Çoklu çözüm yollari
- Açik n dügümünden üretilen her çözüm yolunun
degeri gt g(n) - Genislenme için açilan ve denemeden geçen birinci
dügümün yol OPEN listesindeki her bir açik
dügümün degerinden küçük veya esittir - Eksponensiyel zaman ve mekan karmasikligi (bd)
d en küçük degerli çözüm için çözüm yolunun
derinligidir
50Tekrarlanan durumlarin aradan kaldirilmasi
- Durum uzayinin boyutunu küçültmekle arama
etkisinin yükseltilmesi - 1. Bir önce bulundugun duruma geri dönmemeli
- 2. Döngü yapacak yollar olusturmamali
- 3. Daha önce olusturulmus olan bir durumu yeniden
olusturmamali
51Ikiyönlü arama- Bi-directional search
- Baslangiç durumdan amaca ve amaç durumundan
baslangica dogru ayni zamanda arama - Yollar kesistikte durmali
- Tek bir baslangiç ve amaç durumu oldukta ve
hareketler degistirile bilir oldukta iyidir - Çözüme daha hizli ulasmak mümkün ola bilir
52Arama stratejilerinin karsilastirilmasi
53Arama Yöntemlerinin özeti
- Yapay Zekada kullanilan arama teknikleri , bizi
verilen baslangiç durumdan amaç durumuna
(durumlarina) dogru yöneten adimlar
ardisikliginin bulunmasina dayanmaktadir. - Enine ve derinine arama algoritmalari sonlu arama
agacinda tüm dügümlerin bakilmasini gerektire
bilir. - Bu veya diger algoritmanin seçimi çözülecek
soruna baglidir. - Kismi yollarin makul derinlikten sonra ölü sona
veya basarili sona ulasacagina inaniyorsan ,
derine arama yöntemini kullanmagin mantiklidir. - Yinelemeli Derinine arama küçük bellek alani
ister (derinine arama gibi) ve en kisa yolu önce
bular (enine arama gibi)
54Arama Yöntemlerinin özeti
- En kisa yolu bulmak istersinizse en iyisi enine
arama yöntemini kullanmaktir - Daha az bellek alani kullanmak gerekiyorsa
derinine arama kullanmak daha etkilidir - Tek_deger aramasi
- Hareketlerin degerleri farklidir
- En az degerli çözüm gerekiyor
- Yalniz tekdeger aramada deger hakkinda
düsünülüyor - Çözümü daha çabuk bulmak gerekiyorsa o zaman daha
karmasik algoritmalar kullanilmalidir! - Çözüm durumlarina götüren pek çok yol varsa
derinine arama hizlidir, fakat yollar çok
uzundur. - Hedefe götüren yalniz bir kisa yol varsa enine
arama daha hizlidir. Fakat arama uzayi genis ve
derindir.