Alg Jocuri
-
Upload
andreea1093 -
Category
Documents
-
view
47 -
download
0
description
Transcript of Alg Jocuri
-
Algoritmi pentru jocuri
Minimax, -
Proiectarea Algoritmilor
-
Problema
-
Cum gndim noi?
Analizm posibilitile i evalum fiecare mutare n funcie de consecine
Am pierdut :( Egal :(
-
Cum gndim noi?
Analizm posibilitile i evalum fiecare mutare n funcie de consecine
Am pierdut :( Egal :(
Chiar aa gndim?
-
Cum gndim noi?
Ne dm seama instinctiv c avem o singur opiune pentru a nu pierde partida i mutm n consecin
Egal :(
-
Cum gndim noi?
http://www.dwheeler.com/chess-openings/#Sicilian%20Defense
Aprarea sicilian!
Varianta Najdorf Varianta Dragon
Cnd avem foarte multe posibiliti la dispoziie ncercm s folosim poziii (pattern-uri) cunoscute
-
Cum gndim noi?
Albul la mutare -11 posibiliti de mutare - le putem ncerca pe toate s vedem ce se ntmpl
Numrul mutrilor posibile se reduce la 6
Doar 4 mutri posibile Remiz asigurat
Maxim 11*64 mutri de analizat circa 15.000 de mutri uor pentru calculator Noi eliminm mutrile ce ni se par fr sens (mai mult de jumtate)
-
Cum gndim noi?
Cam 35 de mutri posibile
Varianta ctigtoare presupune sacrificarea unei piese valoroase
-
Cum gndim noi?
Evalum ameninrile cutm mutri care s minimizeze pierderile
cutm mutri care s maximizeze ctigul
Alegem mutrile ce ni se par cele mai bune pe moment
explorm n adncime mutrile
Numrul de niveluri = minim dintre Terminarea jocului
Obinerea unui avantaj consistent fr pericol aparent de a-l pierde
Nivelul maxim al capacitii noastre de calcul
-
Abordri posibile pentru calculator
abloane pentru poziii standard
Cutare n spaiul de poziii
Utilizare euristici pentru evaluarea poziiei curente
Ne vom concentra asupra cutrilor
-
Metoda minimax
2 juctori Max si Min
Fiecare mut pe rnd
Max urmrete s-i maximizeze ctigul
Min urmrete s-i minimizeze pierderea
Se construiete un arbore and/or
Pe nivelele impare (pornind de la 1 ) se gsesc mutrile juctorului Max
Pe nivelele pare se gsesc mutrile juctorului Min
-
Exemplu (I)
MAX (firefox) trebuie s mute
-
Exemplu (II)
MAX
MIN
-
Exemplu (III)
MAX
MIN
MAX -1
-
Exemplu (IV)
http://mouserunner.com/MozllaTicTacToe/Mozilla_Tic_Tac_Toe.htm
MAX
MIN
MAX
MIN
+1 0
-1
...-1 ...0 ...0
-
Minimax
Dup ce se construiete arborele se evalueaz frunzele i se propag rezultatele spre rdcin astfel:
Nivelul MIN alege cea mai mic valoare dintre cele ale copiilor
Nivelul MAX alege cea mai mare valoare dintre cele
ale copiilor
-
Exemplu (V) MAX
MIN
MAX
MIN
+1 0
-1
...-1 ...0 ...0
+1 0 0
-1 -1 0
0
Deci poziia conduce la remiz
-
Probleme Dimensiunea arborelui pentru X i 0 este < 9! Pentru ah fiecare nod are n medie 35 copii
Pentru go ramificarea este de cca. 150-250
Complexitatea arborelui pentru ah - 10123
pentru go 10360
=>nu putem ajunge de fiecare dat la strile finale
-
Optimizri minimax
Limitarea adncimii cutrii Trebuie s construim o funcie euristic care s
estimeze ansele de ctig pentru o poziie dat Ex: pentru ah Regin:10p Turn: 5p Cal, nebun: 3p Pion: 1p Ex Funcie de evaluare a poziiei = suma pieselor proprii
suma pieselor adversarului
Ne oprim dup un numr maxim de nivele i estimm valoarea funciei de evaluare la nivelul respectiv
Apoi propagm valorile conform principiului enunat anterior
-
Exemplu i contraexemplu
Eval: 36-34=2 Eval: 36-37=-1 Eval: 26-34=-8
Funcia nu ine cont de poziie albul are o poziie net superioar dar funcia de evaluare o ignor
Dac se oprete cutarea la acest nivel atunci aparent albul iese n ctig material ignorndu-se faptul c la mutarea urmtoare se pierde dama
Dac cutarea se oprete la acest nivel aparent albul iese in dezavantaj deoarece a pierdut dama
-
Exemplu funcie euristic X i 0 F=numrul de linii/coloane/diagonale posibil
ctigtoare pentru MAX-numrul de linii/coloane/diagonale posibil ctigtoare pentru MIN
Dac MAX poate s mute i s ctige atunci F=+; dac MIN poate s mute i s ctige F=-
-
Exemplu funcie euristic X i 0
MAX
MIN
MAX
- 2-2=0 2-1=1 1-1=0
- 0
0
-
Minimax funcii de evaluare Funcia euristic trebuie s cuantifice poziia
Chiar n dauna avantajului material
Trebuie s ia n calcul potenialele ameninri
-
Algoritm MINIMAX w(n)=cost(n) dac n=frunz w(n)=euristica(n) dac n>=nivel_limita w(n)=min{w(n)|nsuccs(n)} dac juctorul
MIN este la mutare
w(n)=max{w(n)|nsuccs(n)} dac juctorul MAX este la mutare
MINIMAX(n) Pentru fiecare nsuccs(n) Fie m=mutarea corespunztoare arcului (n,n) VAL(m)=w(n)
Return m a.. VAL(m)= max{VAL(x)|xmutri(n)}
Cristian Giumale Introducere n Algoritmi
-
Tiere -
ncercm s limitm spaiul de cutare prin eliminarea variantelor ce nu au cum s fie alese
Idee
Dac V21
-
Tiere - = max dintre valorile gsite pentru MAX
= min dintre valorile gsite pentru MIN
tiem o ramur dac
am gsit un nod pe nivelul MAX cu valoare = ricare din valorile calculate anterior
-
MAX
MIN
MAX
MIN
+1 0
-1
...-1 ...0 ...0
+1 0
0
-1 -1 0
0
Min va alege ntotdeauna -1 Indiferent de ce alte opiuni mai sunt
-
Algoritm - -(n, limit)
w=eval_max(n,-,,0,limit) return m=mutri(n) a.i. VAL(m)=w
eval_max(n,,,nivel,limit) if(tip(n)==terminal)
return cost(n)
if (nivel>=limita) return euristica(n) a=- //valoarea curenta a nodului de tip max pentru fiecare (nsuccs(n)){
a=max(a,eval_min(n,max(,a), ,nivel+1,limita); if (a>= ) break; }
return a
similar eval_min
https://www.youtube.com/watch?v=xBXHtz4Gbdo
Cristian Giumale Introducere n Algoritmi
-
Observaii - Reduce complexitatea minimax n cazul ideal de la
Numr_ramificrinumr_nivele la Numr_ramificrinumr_nivele/2
Conteaz foarte mult ordinea n care analizm mutrile
se folosesc euristici pentru a alege mutarile examinate mai intai ex: la sah se aleg intai mutarile in care se iau piese
sau se aleg mai intai mutarile cu scor bun in parcurgeri precedente
sau se aleg mutarile care au mai generat taieri
sortarea mutarilor dupa un criteriu dat nu este costisitoare comparativ cu costul exponential al algoritmului
-
Observaii MINIMAX i - algoritmi de cutare n adncime
pot cauza probleme cnd avem un timp limit
=> soluie posibil IDDFS
cutare n adncime mrind iterativ adncimea maxim pn la care cutm
-
Concluzii
algoritmi cu complexitate foarte mare
soluii euristice pentru limitarea complexitii
recomandabil s se combine cu alte strategii baze de date cu poziii, pattern-matching