Transcript YZ_7

Rekabet ortamında arama
Adversarial Search
Rekabet ortamında arama
 Çoklu vekil ortamı- her bir vekil karar verirken diğer
vekillerin de hareketlerini dikkate almalı ve bu vekillerin
onun durumunu nasıl etkileyeceğini bilmelidir
 Olasılık- diğer vekillerin hareketlerinin tahmin edile
bilmemesi
“Önceden tahmin edilemeyen" karşı taraf
rakibin her olası cevabına karşı bir hareketin
belirlenmesi
 İşbirlikçi ve rakip vekiller
 Rekabet ortamında arama-oyun
 Zaman sınırlamaları
2
Oyun neden öğrenilmeli?
 Yapay Zekanın en eski alanlarından birisi (Shannon
and Turing, 1950)
 Zeka gerektiren rekabetin soyut ifadesi
 Durum ve faaliyetlerin kolay ifade edilebilirliği
 Dış dünyadan çok az bilginin gerek olması
 Oyun oynama, bazı yeni gereksinimlerle aramanın
özel halidir.
3
Oyun türleri
•Tam bilgili; tam olmayan bilgili
•Belirlenmiş
•Talih
Satranç,dama,go- tam bilgili, belirlenmiş
Tavla- tam bilgili,talih
Kağıt oyunları- tam olmayan bilgili, talih
4
Oyunla bağlı sorunlar
 Oyunların çözümü zordur:
 “Olasılık ” sorunu
 Rakibin hareketini bilmiyoruz !
 Arama uzayının boyutu:
Satranç : her durumda yaklaşık ~15 hareket, 80
karşılıklı hamle
 ağaçta 1580 düğüm
Go : her durumda ~200 hareket, 300 karşılıklı hamle
 ağaçta 200300 düğüm
 Optimal çözümün çoğu zaman mümkün olmaması
5
Oyun oynama algoritmaları:
 Minimax algoritması
 Alpha-beta budama
Değerlendirme fonksiyonu
Aramayı kesme
her hangi derinlik sınırına kadar arama
 Derinlik sınırında değerlendirme
fonksiyonunun kullanılması
 Değerlendirmenin tüm ağaç boyunca
yayılması
6
Oyun-arama sorunu
Başlangıç durum-ilk pozisyon ve birinci hamle
yapacak oyuncu
Ardıl fonksiyonu- (hareket,durum) çiftleri listesini
veriyor; yasal hareket ve bu hareket sonucu durum
Uç düğüm (terminal) denemesi -oyunun bittiğini
belirler. Oyunun son bulduğu durumlara uç
durumlar denir
Yarar fonksiyonu - uç durumlar için sayı değer
Oyun ağacı- başlangıç durum ve her iki tarafın
yasal hareketleri
7
Oyun ağacı (2-oyuncu,
belirlenmiş)
8
Minimax yöntemi
 Belirlenmiş oyunlar için mükemmel taktik
 Temel fikir: en yüksek minimax değerli hareketi seçmeli
= en iyi ulaşılabilir sonuç
9
Minimax değer
 Minimax değer (n)=
Yarar(n) ,
eğer n son durum ise
Max (Minimaxdeğer(s)), n -Max düğüm ise
S  ardıllar(n)
Min (Minimaxdeğer(s)), n - Min düğüm ise
S  ardıllar(n)
10
Minimax algoritması
11
minimax’ın özellikleri
tam? Evet (eğer ağaç sonlu ise)
Optimal? Evet (optimal rakibe karşı)
Zaman karmaşıklığı? O(bm)
Uzay karmaşıklığı O(bm) (derinine izleme)
m- ağacın en fazla derinliği
b- her noktada mümkün hamleler sayısı
Satranç için b ≈ 35, m ≈100
12
MINI MAX
 Sınırlamalar:
 2 oyuncu: MAX (bilgisayar) ve MIN (rakip)
 belirlenmiş, tam bilgi
 Derinine arama ve değerlendirme fonksiyonu
MAX
Bu hareketi seç
3
MIN
2
3
1
MAX
2
5
3
1
4
4
3
- Derine doğru ağaç oluşturmalı
-Her seviye için değerlendirme
fonksiyonunu hesaplamalı
-Değerlendirme fonksiyonunu
yaymalı:
- MIN’de minimum kabul ediliyor
- Max’da maximum kabul ediliyor
13
Alpha-Beta budama
 Tüm ağacın (yukarıdan aşağıya doğru derinine)
oluşturulmasına ve değerlerin tüm ağaç boyu
yayılmasına gerek kalmaya bilir
 Edinilmiş bazı değerler ,ağacın üretilmemiş kısımlarının
fazla olduğu ve üretilmesine gerek kalmadığı bilgisini
vere bilir
14
α-β budama için minimax
değerinin bulunması
Temel fikir: oyun ağacında her bir düğüme bakmadan da
doğru çözümü bulmak mümkündür. Bu halde ağacın
bakılmayan kısmı budanmış oluyor
Minimax Değer(kök)=
max(min(3,12,8),min(2,x,y),min(14,5,
2))
=max(3,min(2,x,y),2)= =max(3,z,2 ) ;
z=min(2,x,y) kabul ettik . Buradan z<=2
olduğu anlaşılıyor.
O zaman Minimax Değer(kök)= 3 alırız
15
α-β budama örneği
16
α-β budama örneği
17
α-β budama örneği
18
α-β budama örneği
19
α-β budama örneği
20
α-β’nın özellikleri
 Budama son neticeyi etkilemez
 Hareketlerin iyi sıralanması budamanın etkiliğini
yükseltir
 “mükemmel sıralamada," zaman karmaşıklığı =
O(bm/2)
21
Neden α-β?
 α, max için yol boyunca
seçilmiş en iyi (en
yüksek) değer
 Eğer v α’dan kötü ise
max onu iptal edecek
 uygun dal
budanacak
 Min için β, benzer
yolla değerlendirilir
22
α-β algoritması
23
α-β algoritması
24
Alpha-Beta budama ilkeleri
 İlkeler:
 Derinine, soldan sağa ağaç üretmeli
 son düğümlerin değerlerini baba düğümleri için
başlangıç tahminler kabul etmeli.
MAX
MIN
MAX
2
2
=2
-MIN-değer (1), babanın (2)
MAX –değerinden küçüktür
1
-MIN-değer daha ileride
küçüle bilir,
-MAX-değerin yalnız büyümesine
izin veriliyor,
-Bu düğümden aşağı düğümlere
bakmamalı
2
5
1
25
Alpha-Beta budama ilkeleri
(devamı)
- MAX-düğümlerde (geçici) değerler ALPHA-değerlerdir
- MIN-düğümlerde (geçici) değerler BETA-değerlerdir
MAX
MIN
MAX
Alpha-değer
2
2
2
=2
1
5
1
Beta-değer
26
Alpha-Beta ilkeleri (1):
- Eğer ALPHA-değer oğul düğümün Beta-değerinden büyük
veya ona eşitse:
uygun soydan düğümlerin üretimini dayandırmalı
MAX
MIN
MAX
Alpha-değer
2
2
2
=2
1
5
1
Beta-değer
27
Alpha-Beta ilkeleri (2):
- Eğer Beta-değer, oğul düğümün Alpha-değerinden küçük
veya ona eşitse :
uygun soy üzere düğümlerin üretimini durdurmalı
MAX
MIN
MAX
2
2
2
=2
6
1
1
3
Beta-değer
Alpha-değer
28
Mini-Max ve 
 4 16
8 6
 5 23
= 4 15
8 2
=8 5
9 8
= 5 30
 2 10  1 18
 4 12  3 20
= 4 14 = 5 22
8 7 3 9 1 6 2 4 1
1 3 4 7
 5 31 = 5 39
9 11 13
MAX
 3 38
 1 33
 2 35
 3 25
 9 27  6 29 = 3 37
1 3 5 3 9 2 6 5 2
17 19 21 24 26
MIN
28
MAX
1 2 3 9 7 2 8 6 4
32 34 36
11 değerlendirmede tasarruf sağlandı!
29
Kazanç: En iyi hal:
- Eğer her seviyede: en iyi düğüm en soldaki düğüm ise
MAX
MIN
MAX
Yalnız kalın doğrular inclenmeli
30
Mükemmel sıralanmış ağaç
örneği
MAX
21
21
21
24
12
27
21 20 19 24 23 22 27 26 25
12
15
3
18
12 11 10 15 14 13 18 17 16
3
6
MIN
9
MAX
3 2 1 6 5 4 9 8 7
31
Değerlendirme fonksiyonları
 Ağırlıklı doğrusal fonksiyon
Eval(s) = w1 f1(s) + w2 f2(s) + … + wn fn(s)
w-özelliğin ağırlığı
f-özellik
Örnek: satrançta
f(s) = aynı türden taşların sayısı
w-uygun taşın ağırlığı (örn., piyon için 1)
32
sınırlamalar
Örnek: arama için 100 saniyelik zaman tanınmıştır. Her
saniyede 104 düğüm araştırılmalıdır
 her harekette 106 düğüm
yaklaşımlar:
 Kesme denemesi (cutoff test):
Derinlik sınırı
 Değerlendirme fonksiyonları
33
Kesmekle arama (cutting off)
Aşağıdaki değerlerle çalışma mümkün mü?
bm = 106, b=35  m=4
Yalnız 4 hamle ileriyi görmek satranç oyuncusu için
başarısızlıktır!
 4 hamle ≈ acemi oyuncu
 8 hamle ≈ tipik bir program, usta oyuncu
 12 hamle ≈ Deep Blue, Kasparov
34
Ufuk etkisi
Vezir kaybı
Piyonun kaybı
ufuk = mini-max
derinliği
Vezirin kaybı
Derinine ilerlemekle
felaketi önleye bilmesek de onu geciktire biliriz
 çözüm: sezgisel devam
35
Sezgisel Devam
Strateji durumlarda çok önemli
oyun taşının kaybı, piyonun vezire çevrilmesi, ...
Aramanı derinlik sınırının dışında da yapmalı!
Derinlik sınırı
36
Talih oyunları
Örnek: Tavla:
Oyun ağacının biçimi:
37
Talih oyunlarında “Yarar”ın
yayılması:
C düğümü için yarar fonksiyonu
Di- zarın değeri
P(di)-Di’nin oluşma olasılığı
S(C,Di)-Di değerinde C’den ulaşıla bilen
durum
C
MAX
d1 d2 d3 d4 d5
Yarar(s)-s’in değerlendirilmesi
Beklenen_max( C ) =
s1 s2 s3 s4
Min
S(C,d3)
38
İlave Oku için
 Sonraki sunular ilave bilgi amaçlıdır
39
belirlenmiş oyunlar
 Checkers: Chinook ended 40-year-reign of human world
champion Marion Tinsley in 1994. Used a precomputed
endgame database defining perfect play for all positions
involving 8 or fewer pieces on the board, a total of 444 billion
positions.
 Chess: Deep Blue defeated human world champion Garry
Kasparov in a six-game match in 1997. Deep Blue searches
200 million positions per second, uses very sophisticated
evaluation, and undisclosed methods for extending some lines
of search up to 40 ply.

 Othello: human champions refuse to compete against
computers, who are too good.

 Go: human champions refuse to compete against computers,
who are too bad. In go, b > 300, so most programs use pattern
knowledge bases to suggest plausible moves.

40
State of the art
Drawn from an article by Mathew Ginsberg,
Scientific American, Winter 1998, Special Issue
on Exploring Intelligence
41
State of the art (2)
42
State of the art (3)
43
Computer chess ratings studied around 90ies:
Chess Rating
3500
?
3000
Kasparov
2500
2000
1500
2
4
6
8
10 12 14
Depth in ply
Further increase of depth was likely to win !
44
 Satranç ustası ve satranç programı arasındaki farklar:
1. Deep Blue saniyede 200,000,000 ‘in üzerinde pozisyonu inceleye ve değerlendire bilir
Bir usta ise saniyede 3 pozisyon değerlendire bilir
2. Satranç programının bilgisi azdır ,ama hesaplama yeteneği çok yüksektir
Ustanın çok büyük satranç bilgisi var, ama hesaplama yeteneği sınırlıdır.
3.İnsan satranç oynadığı zaman duyumundan,önsezisinden yararlanıyor.
Programın duyma, sezme yeteneği yoktur.
4. Deep Blue ,bir uluslararası büyük usta ve beş IBM araştırmacı bilim adamının
rehberliğinden faydalanmıştır
Bir ustaya ise antrenörü ve çok iyi satranç oynaya bilme yeteneği yardım eder
5. İnsan kendi hatalarından ve başarılarından öğrenebilme yeteneğine sahiptir.
Deep Blue, bugünkü haliyle, öğrenme sistemi değildir; bu nedenle, rakibinden öğrenmek
ve ya satranç tahtasındaki durumu “düşünmek” için yapay zeka kullanma yeteneğine
sahip değildir
45
6. Programın korku duygusu, fikrinin dağıtılması endişesi yoktur (örneğin,Kasparov’un
sabit bakışlarından).
Bir ustanın ise ise insani zafiyeti var, canı sıkla bilir, fikri dağıla bilir ve s.
7. Program satranç oynarken çok etkileyicidir, ama zekası en geri zekalı insandan da
geridir
Satranç ustaları ise genellikle aydın insanlardır, birkaç dil biliyorlardır, toplumun ileri
gelenleridir
8. Programın oyun anlayışındaki değişimler ,geliştirme ekibi tarafından yapılmalıdır
Usta ise her oyundan önce,sonra, oyun içinde oyununda değişiklik yapa bilir.
9. İnsan rakibini değerlendire, onun zayıf yönlerini öğrene ve bundan yararlana bilir.
Program ise satranç pozisyonlarını çok iyi değerlendirse de rakibinin zayıf yönlerinden
yararlana bilmez.
10. İnsan , değerlendire bildiği pozisyonlar içinden seçim yapar
Program ise mümkün pozisyonlar içinden en iyisini seçe biliyor (Deep Blue saniyede
200 milyon pozisyon içinde arama yapa biliyor)
46