46
Rekabet ortamında arama Rekabet ortamında arama Adversarial Search Adversarial Search

Yapay Zeka - Alfa Beta

Embed Size (px)

DESCRIPTION

Yapay zeka ders notu Alfa Beta örneği

Citation preview

Rekabet ortamında aramaRekabet ortamında aramaAdversarial SearchAdversarial Search

2

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ı

3

OyunOyun neden öğrenilmeli?neden öğrenilmeli?

Yapay Zekanın en eski alanlarından birisi Yapay Zekanın en eski alanlarından birisi (Shannon and Turing, 1950)(Shannon and Turing, 1950) Zeka gerektiren rekabetin soyut ifadesiZeka gerektiren rekabetin soyut ifadesi Durum ve faaliyetlerin kolay ifade Durum ve faaliyetlerin kolay ifade

edilebilirliğiedilebilirliği Dış dünyadan çok az bilginin gerek olmasıDış dünyadan çok az bilginin gerek olması

Oyun oynama, bazı yeni gereksinimlerle Oyun oynama, bazı yeni gereksinimlerle aramanın özel halidir.aramanın özel halidir.

4

OyunOyun türleritü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

5

Oyunla bağlı sorunlarOyunla bağlı sorunlar Oyunların çözümü zordur:Oyunların çözümü zordur:

““Olasılık Olasılık ” ” sorunusorunu Rakibin hareketini bilmiyoruzRakibin hareketini bilmiyoruz ! !

Arama uzayının boyutuArama uzayının boyutu::SatrançSatranç : : her durumda yaklaşık her durumda yaklaşık ~15 ~15 harekethareket, 80 , 80

karşılıklı hamlekarşılıklı hamle ağaçta ağaçta 15158080 düğümdüğüm

Go : Go : her durumda her durumda ~200 ~200 harekethareket, 300 , 300 karşılıklı karşılıklı hamlehamle ağaçta ağaçta 200200300300 düğümdüğüm

Optimal çözümün çoğu zaman mümkün olmamasıOptimal çözümün çoğu zaman mümkün olmaması

6

Oyun oynama algoritmalarıOyun oynama algoritmaları::

Minimax algoritmasıMinimax algoritması Alpha-beta budamaAlpha-beta budama

Değerlendirme fonksiyonuDeğerlendirme fonksiyonuAramayı kesmeAramayı kesmeher hangi derinlik sınırına kadar aramaher hangi derinlik sınırına kadar arama Derinlik sınırında değerlendirme Derinlik sınırında değerlendirme

fonksiyonunun kullanılmasıfonksiyonunun kullanılması Değerlendirmenin tüm ağaç boyunca Değerlendirmenin tüm ağaç boyunca

yayılmasıyayılması

7

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

8

Oyun ağacıOyun ağacı (2- (2-oyuncuoyuncu, , belirlenmiş)belirlenmiş)

9

MinimaxMinimax yöntemi yöntemi Belirlenmiş oyunlar için mükemmel taktikBelirlenmiş oyunlar için mükemmel taktik Temel fikir:Temel fikir: en yüksek en yüksek minimax minimax değerli hareketi seçmelideğerli hareketi seçmeli

= = en iyi ulaşılabilir sonuçen iyi ulaşılabilir sonuç

10

MinimaxMinimax değerdeğer Minimax değer (n)=Minimax değer (n)=

Yarar(n)Yarar(n) , , eğer n son durum iseeğer n son durum ise

Max (Minimaxdeğer(s)),Max (Minimaxdeğer(s)), n -Max düğüm ise n -Max düğüm iseS S ardıllar(n ardıllar(n))

Min (Minimaxdeğer(sMin (Minimaxdeğer(s)))),, n - Min düğüm ise n - Min düğüm ise S ardıllar(n)

11

MinimaxMinimax algoritalgoritmasıması

12

minimaxminimax’’ının özellikleriözellikleri tamtam?? EvetEvet ( (eğer ağaç sonlu iseeğer ağaç sonlu ise)) Optimal?Optimal? EvetEvet ( (optimal rakibe karşıoptimal rakibe karşı)) Zaman karmaşıklığıZaman karmaşıklığı?? O(b O(bmm)) Uzay karmaşıklığıUzay karmaşıklığı O(bm) ( O(bm) (derinine izlemederinine izleme)) m- m- ağacın en fazla derinliği ağacın en fazla derinliği bb- her noktada mümkün hamleler sayısı- her noktada mümkün hamleler sayısı Satranç içinSatranç için b ≈ 35, m ≈100 b ≈ 35, m ≈100

13

MINI MAXMINI MAX SınırlamalarSınırlamalar::

2 2 oyuncuoyuncu:: MAXMAX ((bilgisayarbilgisayar)) veve MIN ( MIN (rakiprakip)) belirlenmişbelirlenmiş, , tam bilgitam bilgi

Derinine aramaDerinine arama ve değerlendirme fonksiyonuve değerlendirme fonksiyonu

MAXMAX

MINMIN

MAXMAX

-- Derine doğru ağaç oluşturmalı Derine doğru ağaç oluşturmalı

-Her seviye için değerlendirmeHer seviye için değerlendirme fonksiyonunu hesaplamalıfonksiyonunu hesaplamalı

22 55 33 11 44 44 33

-Değerlendirme fonksiyonunu Değerlendirme fonksiyonunu yaymalı:yaymalı: - - MINMIN’de ’de minimum kabul ediliyorminimum kabul ediliyor

22 11 33

- - Max’da Max’da maximum kabul ediliyormaximum kabul ediliyor

33Bu hare-Bu hare-keti seçketi seç

14

Alpha-Beta Alpha-Beta budamabudama

Tüm ağacın (yukarıdan aşağıya doğru derinine) Tüm ağacın (yukarıdan aşağıya doğru derinine) oluşturulmasına ve değerlerin tüm ağaç boyu oluşturulmasına ve değerlerin tüm ağaç boyu yayılmasına gerek kalmaya biliryayılmasına gerek kalmaya bilir

Edinilmiş bazı değerler ,ağacın üretilmemiş Edinilmiş bazı değerler ,ağacın üretilmemiş kısımlarının fazla olduğu ve üretilmesine gerek kısımlarının fazla olduğu ve üretilmesine gerek kalmadığı bilgisini vere bilirkalmadığı bilgisini vere bilir

15

α-β budama için minimax değerinin bulunması

Minimax Değer(Minimax Değer(kökkök)= )= max(max(min(3,12,8),min(2,x,y),min(min(3,12,8),min(2,x,y),min(14,5,2)14,5,2)))

=max(=max(3,min(2,x,y),23,min(2,x,y),2)= )= =max(=max(3,z,2 3,z,2 ) ; ) ;

z=min(z=min(2,x,y2,x,y) ) kabul ettik . Buradan kabul ettik . Buradan z<=2z<=2 olduğu anlaşılıyor. olduğu anlaşılıyor.

O zaman Minimax Değer(O zaman Minimax Değer(kökkök)= 3 )= 3 alırız alırız

Temel fikirTemel fikir: oyun ağacında her bir düğüme bakmadan : oyun ağacında her bir düğüme bakmadan da doğru çözümü bulmak mümkündür. Bu halde da doğru çözümü bulmak mümkündür. Bu halde ağacın bakılmayan kısmı budanmış oluyorağacın bakılmayan kısmı budanmış oluyor

16

α-β α-β budama örneğibudama örneği

17

α-β α-β budama örneğibudama örneği

18

α-β α-β budama örneğibudama örneği

19

α-β α-β budama örneğibudama örneği

20

α-β α-β budama örneğibudama örneği

21

α-βα-β’nın özellikleri’nın özellikleri Budama son neticeyi etkilemezBudama son neticeyi etkilemez

Hareketlerin iyi sıralanması budamanın etkiliğini Hareketlerin iyi sıralanması budamanın etkiliğini yükseltiryükseltir

“ “mükemmel sıralamadamükemmel sıralamada," ," zaman karmaşıklığızaman karmaşıklığı = O(b= O(bm/2m/2))

22

NedenNeden α-β? α-β? αα, , maxmax için yol için yol

boyunca seçilmiş en boyunca seçilmiş en iyi (en yüksek) değeriyi (en yüksek) değer

Eğer Eğer vv αα’dan kötü ise ’dan kötü ise max onu iptal edecekmax onu iptal edecek uygun dal uygun dal

budanacakbudanacak MinMin için için ββ, , benzer benzer

yolla değerlendiriliryolla değerlendirilir

23

α-β algoritα-β algoritmasıması

24

α-β algoritα-β algoritmasıması

25

MINMIN

MAXMAX

MAXMAX

22

Alpha-Beta Alpha-Beta budama ilkeleribudama ilkeleri İlkelerİlkeler::

Derinine, soldan sağa ağaç üretmeliDerinine, soldan sağa ağaç üretmeli son düğümlerin değerlerini baba düğümleri son düğümlerin değerlerini baba düğümleri

için başlangıç tahminler kabul etmeliiçin başlangıç tahminler kabul etmeli..

22

55

=2=2

22

11

11

-MINMIN--değerdeğer ( (11)), babanın (, babanın (22) ) MAXMAX –değerinden küçüktür–değerinden küçüktür

-MINMIN--değer daha ileride değer daha ileride küçüle bilküçüle biliirr,,

-MAXMAX--değerin yalnız büyümesinedeğerin yalnız büyümesineizin veriliyorizin veriliyor,,

-Bu düğümden aşağı düğümlereBu düğümden aşağı düğümlere bakmamalıbakmamalı

26

Alpha-Beta Alpha-Beta budama ilkeleri (devamı)budama ilkeleri (devamı)- - MAXMAX--düğümlerde düğümlerde ((geçicigeçici) ) değerlerdeğerler ALPHA- ALPHA-değerlerdirdeğerlerdir

- - MINMIN--düğümlerdedüğümlerde ( (geçici)geçici) değerlerdeğerler BETA-BETA-değerlerdirdeğerlerdir

MINMIN

MAXMAX

MAXMAX

22

22

55

=2=2

22

11

11

Alpha-Alpha-değerdeğer

Beta-Beta-değerdeğer

27

Alpha-Beta Alpha-Beta ilkeleri ilkeleri (1):(1):- - EğerEğer ALPHA-ALPHA-değer oğul düğümündeğer oğul düğümün Beta-Beta-değerinden değerinden büyük veya ona eşitsebüyük veya ona eşitse::

uygun soydan uygun soydan düğümlerindüğümlerin üretimini dayandırmalı üretimini dayandırmalı

MINMIN

MAXMAX

MAXMAX

22

22

55

=2=2

22

11

11

Alpha-Alpha-değerdeğer

Beta-Beta-değerdeğer

28

Alpha-Beta Alpha-Beta ilkeleriilkeleri (2): (2):- - EğerEğer Beta-Beta-değer, oğul düğümün değer, oğul düğümün Alpha-Alpha-değerinden değerinden küçük veya ona eşitse küçük veya ona eşitse ::

uygun soy üzere uygun soy üzere düğümlerin düğümlerin üretimini durdurmalıüretimini durdurmalı

MINMIN

MAXMAX

MAXMAX

22

22

66

=2=2

22

33

11

Alpha-Alpha-değerdeğer

Beta-Beta-değerdeğer

1

29

88 77 33 99 11 66 22 44 11 11 33 55 33 99 22 66 55 22 11 22 33 99 77 22 88 66 44

Mini-Max Mini-Max veve

11

22 88

33

55= 8= 8

44

66 88

77

88 99

99 1111 1313 1717 1919212124242626 2828 3232 3434 3636

1010 221212 441414= 4= 4

1515= 4= 4

441616

1818 112020 332222= 5= 5

3030= 5= 5 55 2323

553131

2525 332727 99 2929 66

3333 113535 223737= 3= 3

33 3838

3939= 5= 5 MAXMAX

MINMIN

MAXMAX

11 11 değerlendirmede tasarruf sağlandı değerlendirmede tasarruf sağlandı!!

30

KazançKazanç: : En iyi halEn iyi hal::

MAXMAX

MINMIN

MAXMAX

- - Eğer her seviyedeEğer her seviyede: : en iyi düğüm en soldaki düğüm en iyi düğüm en soldaki düğüm iseise

Yalnız kalın doğrular inclenmeliYalnız kalın doğrular inclenmeli

31

Mükemmel sıralanmış ağaç örneğiMükemmel sıralanmış ağaç örneği

MAXMAX

MINMIN

MAXMAX

21 20 19 24 23 22 27 26 2521 20 19 24 23 22 27 26 2512 11 10 15 14 13 18 17 1612 11 10 15 14 13 18 17 163 2 1 6 5 4 9 8 73 2 1 6 5 4 9 8 7

21 24 2721 24 27 12 15 1812 15 18 3 6 93 6 9

21 12 321 12 3

2121

32

Değerlendirme fonksiyonlarıDeğerlendirme fonksiyonları Ağırlıklı doğrusal fonksiyonAğırlıklı doğrusal fonksiyon

Eval(s) Eval(s) = w= w11 f f11(s) + w(s) + w22 f f22(s) + … + w(s) + … + wnn f fnn(s)(s)w-özelliğin ağırlığıw-özelliğin ağırlığıf-özellikf-özellik

Örnek:Örnek: satrançta satrançtaff(s)(s) = = aynı türden taşların sayısıaynı türden taşların sayısı

w-uygun taşın ağırlığı (örn., piyon için 1)w-uygun taşın ağırlığı (örn., piyon için 1)

33

sınırlamalarsınırlamalarÖrnek:Örnek: arama için 100 saniyelik zaman tanınmıştır. Her arama için 100 saniyelik zaman tanınmıştır. Her

saniyedesaniyede 10 1044 düğüm araştırılmalıdırdüğüm araştırılmalıdır her harekette her harekette 101066 düğümdüğüm

yaklaşımlaryaklaşımlar:: Kesme denemesi (Kesme denemesi (cutoff testcutoff test)): :

Derinlik sınırıDerinlik sınırı Değerlendirme fonksiyonlarıDeğerlendirme fonksiyonları

34

Kesmekle arama (cutting off)Kesmekle arama (cutting off)

Aşağıdaki değerlerle çalışma mümkün mü?Aşağıdaki değerlerle çalışma mümkün mü?bbmm = 10 = 1066, b=35 , b=35 m=4 m=4

Yalnız 4 Yalnız 4 hamlehamle ileriyi görmek ileriyi görmek satranç oyuncusu için satranç oyuncusu için başarısızlıktırbaşarısızlıktır!!

44 hamle hamle ≈ ≈ acemi oyuncuacemi oyuncu 88 hamle hamle ≈≈ tipik bir program, usta oyuncutipik bir program, usta oyuncu 1212 hamle hamle ≈≈ Deep Blue, Kasparov Deep Blue, Kasparov

35

UfukUfuk etkisietkisi

Vezir kaybıVezir kaybı Piyonun kaybıPiyonun kaybı

Vezirin kaybıVezirin kaybı

ufukufuk = = mini-max mini-max derinliğiderinliği

Derinine ilerlemekle Derinine ilerlemekle felaketi önleye bilmesek de onu geciktire felaketi önleye bilmesek de onu geciktire bilirizbiliriz çözümçözüm: : sezgisel devamsezgisel devam

36

Sezgisel DevamSezgisel DevamStrateji durumlarda çok önemliStrateji durumlarda çok önemli

oyun taşının kaybı, piyonun vezire çevrilmesioyun taşının kaybı, piyonun vezire çevrilmesi, ... , ...

Aramanı derinlik sınırınınAramanı derinlik sınırının dışında da yapmalıdışında da yapmalı!!

Derinlik sınırıDerinlik sınırı

37

Talih oyunlarıTalih oyunları

ÖrnekÖrnek: : TavlaTavla:: Oyun ağacının biçimiOyun ağacının biçimi::

38

Talih oyunlarında Talih oyunlarında ““YararYarar””ının yayılmasıyayılması::

C düğümü için yarar C düğümü için yarar fonksiyonufonksiyonu

MAXMAX

s1s1 s2s2 s3s3 s4s4

d1d1 d2d2 d3d3 d4d4 d5d5

S(S(CC,,d3d3))

CC

MinMin

Di- zarın değeriP(di)-Di’nin oluşma olasılığıS(C,Di)-Di değerinde C’den ulaşıla bilen durumYarar(s)-s’in değerlendirilmesiBeklenen_max( C ) =

39

İlave Oku içinİlave Oku için Sonraki sunular ilave bilgi amaçlıdırSonraki sunular ilave bilgi amaçlıdır

40

belirlenmiş oyunlarbelirlenmiş oyunlar Checkers: Chinook ended 40-year-reign of human world Checkers: Chinook ended 40-year-reign of human world

champion Marion Tinsley in 1994. Used a precomputed champion Marion Tinsley in 1994. Used a precomputed endgame database defining perfect play for all positions endgame database defining perfect play for all positions involving 8 or fewer pieces on the board, a total of 444 involving 8 or fewer pieces on the board, a total of 444 billion positions.billion positions.

Chess: Deep Blue defeated human world champion Garry Chess: Deep Blue defeated human world champion Garry Kasparov in a six-game match in 1997. Deep Blue Kasparov in a six-game match in 1997. Deep Blue searches 200 million positions per second, uses very searches 200 million positions per second, uses very sophisticated evaluation, and undisclosed methods for sophisticated evaluation, and undisclosed methods for extending some lines of search up to 40 ply.extending some lines of search up to 40 ply.

Othello: human champions refuse to compete against Othello: human champions refuse to compete against computers, who are too good.computers, who are too good.

Go: human champions refuse to compete against Go: human champions refuse to compete against computers, who are too bad. In go, computers, who are too bad. In go, b > 300b > 300, so most , so most programs use pattern knowledge bases to suggest programs use pattern knowledge bases to suggest plausible moves.plausible moves.

41

State of the artState of the artDrawn from an article by Mathew Ginsberg,

Scientific American, Winter 1998, Special Issue on Exploring Intelligence

42

State of the art (2)State of the art (2)

43

State of the art (3)State of the art (3)

44

Computer chess ratings studied around 90ies:Computer chess ratings studied around 90ies:

1500150020002000250025003000300035003500

22 44 66 88 10101212 1414

Chess RatingChess Rating

Depth in plyDepth in ply

KasparovKasparov??

Further increase of depth was likely to win !Further increase of depth was likely to win !

45

1. 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 Deep Blue ,bir uluslararası büyük usta ve beş IBM araştırmacı bilim adamının

rehberliğinden faydalanmıştırrehberliğ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

Satranç ustası ve satranç programı arasındaki farklarSatranç ustası ve satranç programı arasındaki farklar: :

46

6. 6. Programın 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)