Documente Academic
Documente Profesional
Documente Cultură
Jocuri
Unul din cele mai vechi subdomenii ale IA-ului (Zuse, Shannon, Wiener, Turing, anii 1950)
Forme abstracte i pure de competiie care par s necesite inteligen
Jocurile sunt un caz particular al problemelor de cutare Deseori au spaii de cutare foarte mari Jocurile sunt interesante
Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm
Jocurile i IA-ul
Tradiional, jocurile erau vzute formal, ca o extensie a algoritmilor de cutare Recent, tehnicile de IA au devenit mai importante n jocurile pe calculator
Personaje controlate de calculator Scenarii mai sofisticare Medii mai complexe Aspect general superior
Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm
ah
Dame
Go
Othelo
X i 0
Table
Monopoly
7
Bridge
Poker Scrabble
Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm
Jocurile i cutarea
Cutarea clasic: un singur agent, ncearc fr piedici s i ating obiectivul Jocurile: cutare n prezena unui adversar Reprezentarea jocurilor ca probleme de cutare
Stri: configuraiile tablei de joc Operatori: mutrile permise Starea iniial: configuraia curent a tablei Starea scop: configuraia ctigtoare
9
Dificulti
Jocurile pot fi probleme de cutare foarte dificile
Totui uor de formalizat
10
Go
12
Probleme cheie:
Reprezentarea tablei Generarea tuturor configuraiilor urmtoare valide Evaluarea unei poziii Considerarea mai multor mutri n avans
Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm
13
Funcia de evaluare este o funcie euristic i cuprinde cunotinele expert despre domeniu Inteligena calculatorului depinde n mare msur de funcia de evaluare
14
f(n) > 0: poziia n este bun pentru calculator i rea pentru adversar (om) f(n) < 0: poziia n este rea pentru calculator i bun pentru adversar f(n) 0: poziia n este neutr
Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm
15
Exemple
X i 0: ah (funcia lui Alan Turing):
f(n) = [numrul de direcii de 3 ptrele deschise pentru calculator] - [numrul de direcii deschise pentru adversar] Direciile sunt linii, coloane sau diagonale complete f(n) = w(n)/b(n) w(n) = suma punctelor pieselor albe; b(n) - negre
Majoritatea funciilor de evaluare sunt sume ponderate ale trsturilor unei poziii:
f(n) = w1* t1(n) + w2* t2(n) + ... + wk* tk(n) Trsturi pentru ah sunt numrul de piese, plasarea pe tabl a pieselor, ptrele controlate etc. 1 pion = 1 punct; 1 nebun = 3 puncte etc.
16
17
Minimax
Restricii:
MAX
MIN
MAX
Modul de funcionare
MAX Alege mutarea
- Se construiete arborele pn la limita de adncime - Se calculeaz funcia de evaluare pentru frunze - Se propag evaluarea n sus - innd minimele n MIN - innd maximele n MAX
MIN
MAX
3
19
Pseudocod
Initialize depthbound; Minimax (board, depth) = IF depth = depthbound THEN return static_evaluation(board); ELSE IF maximizing_level(depth) THEN FOR EACH child c of board compute Minimax(c, depth+1); return maximum over all children; ELSE IF minimizing_level(depth) THEN FOR EACH child c of board compute Minimax(c, depth+1); return minimum over all children;
Apel: Minimax(current_board, 0)
20
21
Retezarea alfa-beta
Alpha-Beta Pruning, Elagajul alfa-beta Optimizare general aplicat algoritmului minimax Minimax
Creeaz mai nti ntregul arbore (pn la limita de adncime) Apoi realizeaz propagarea
Retezarea alfa-beta
ntreese generarea arborelui cu propagarea valorilor
Motivaie
Unele valori obinute n arbore furnizeaz informaii privind redundana altor pri care nu mai trebuie generate
22
Ideea alfa-beta
Se genereaz arborele n adncime, de la stnga la dreapta Se propag valorile finale ale nodurilor ca estimri iniiale pentru prinii lor
MAX
MIN
=2
- Valoarea MIN (1) este deja mai mic dect valoarea MAX a printelui (2) - Valoarea MIN poate doar s descreasc n continuare - Valoarea MAX poate doar s creasc - Nu are sens s mergem mai jos sub acest nod
MAX
1
23
Terminologie
Valorile (temporare) n nodurile MAX sunt valori ALFA Valorile (temporare) n nodurile MIN sunt valori BETA
24
25
26
5 31 = 5 39 3 38
MAX
5 23
= 5 30
MIN
8 2
=85
9 8
2 10 1 18 4 12 3 20
= 4 14 = 5 22
3 25 9 27 6 29 = 3 37
1 33 2 35
MAX
8 7 3 9 1 6 2 4 1
1 3 4 7
9 11 13
17 19 21 24 26
1 3 5 3 9 2 6 5 2
28
32 34 36
1 2 3 9 7 2 8 6 4
27
11 evaluri evitate
Retezare n adncime
Pentru arbori cu cel puin 4 niveluri Min/Max, regulile Alfa - Beta se aplic i pentru niveluri mai adnci
4 4 4 4 2
2
28
MAX
3
21
12
MIN
21
24
27
12
15
18
MAX
21 20 19 24 23 22 27 26 25
12 11 10 15 14 13 18 17 16 3 2 1 6 5 4 9 8 297
MIN
MAX
30
Profitul
Pentru cazul cel mai favorabil alfa-beta
Numrul de evaluri statice =
2 bd/2 - 1, dac d este par b(d+1)/2 + b(d-1)/2 - 1, dac d este impar
n exemplul anterior:
d=3, b=3 9+3-1=11
31
32
n cazul Deep Blue, s-a descoperit empiric c retezarea alfa-beta a redus factorul mediu de ramificare de la 35 la 6
Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm
33
Efectul orizontului
Datorit limitei de adncime, se prefer ntrzierea dezastrelor, dei nu se previn Soluia: continuarea euristic
Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm
34
Continuarea euristic
n situaii strategice cruciale (regele n pericol, pierdere iminent de piese, pion transformast n regin etc.), se extinde cutarea dincolo de limita de adncime
35
Cutarea secundar
Uneori este util verificarea unei mutri De ex., dac se face cutarea pe 6 niveluri (engl. ply) i am gsit cea mai bun mutare, putem expanda numai acea poziie pentru nc 2 niveluri pentru a verifica dac rmne bun n continuare
Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm
36
Limite de timp
Chiar i cnd avem limite de adncime, timpii pot varia mult Soluie: cutarea iterativ n adncime
La orice moment este disponibil o mutare Calitatea mutrii crete n timp
37
38
Jocuri nedeterministe
Includ elemente probabilistice
Zaruri, cri de joc
40
41
Exemplu
A1 este cea mai bun mutare 2 rezultate cu prob. {0.9, 0.1} A2 este cea mai bun mutare
42
43
Satisfacerea constrngerilor
Constraint Satisfaction Problems (CSP) n multe probleme, aceleai stri pot fi atinse independent de ordinea n care se iau deciziile (aciuni comutative) n problemele de satisfacerea constrngerilor (PSC), strile au o structur standard iar algoritmii pot profita de aceasta
Se pot aplica algoritmi generali, nu doar euristici specifice unei probleme
Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm
44
45
Variabile: WA, NT, Q, NSW, V, SA, T Domenii: Di = { rou, verde, albastru } Constrngeri: regiunile adiacente trebuie s aib culori diferite De ex. WA NT, sau (WA,NT) {(rou,verde), (rou,albastru), (verde,rou), (verde,albastru),(albastru,rou),(albastru,verde)}
Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm
46
Soluie
Soluiile sunt atribuiri complete i consistente De ex. WA = rou, NT = verde, Q = rou, NSW = verde, V = rou, SA = albastru, T = verde
Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm
47
Graful constrngerilor
PSC binare: fiecare constrngere este definit pe 2 variabile Graful constrngerilor: nodurile sunt variabile, arcele sunt constrngeri
48
Tipuri de PSC
Variabile discrete
Domenii finite
De ex. Boolean satisfiability (NP-complet)
Domenii infinite
De ex. planificarea sarcinilor de lucru, variabilele sunt momentele de nceput/sfrit al fiecrei sarcini
Variabile continue
De ex. momentele de nceput/sfrit pentru observaiile telescopului Hubble Constrngeri liniare
49
Tipuri de constrngeri
Constrngerile unare implic o singur variabil
De ex. SA verde
50
Probleme criptaritmetice
51
Probleme reale
Probleme de atribuire
De ex. cine pred ce curs la ce clas
Problema orarului
De ex. ce curs este predat cnd i unde
52
Scopul: Atribuirea curent este complet Aceeai procedur pentru toate PSC
Fiecare soluie apare la adncimea n cu n variabile Se folosete cutarea n adncime Calea este irelevant
53
54
Cutarea backtracking
Atribuirile sunt comutative
(WA = rou apoi NT = verde) este la fel cu (NT = verde apoi WA = rou)
55
Exemplu de backtracking
56
Exemplu de backtracking
57
Exemplu de backtracking
58
Exemplu de backtracking
59
60
61
62
63
64
Verificarea nainte
Forward Checking La nceput, pentru fiecare variabil se memoreaz mulimea curent de valori permise Cnd se atribuie o valoare n procesul de cutare, se actualizeaz mulimile de valori permise pentru toate variabilele Dac o mulime devine vid, se face backracking
Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm
66
67
Propagarea constrngerilor
Constraint Propagation Verificarea nainte calculeaz domeniul fiecrei variabile independent la nceput, i actualizeaz aceste domenii numai cnd se fac atribuiri ce influeneaz direct variabila curent Propagarea constrngerilor duce verificarea mai departe:
Cnd se terge o valoare din domeniul variabilei X, se verific toate variabilele conectate la X Dac aceste variabile se modific, se terg toate valorile inconsistente conectate la ele .a.m.d.
68
Propagarea constrngerilor
69
70
71
Min-Conflicts
72
Concluzii
Jocurile ilustreaz faptul c perfeciunea este deseori de neatins, aproximrile sunt suficiente Tehnicile de satisfacere a constrngerilor sunt utile cnd:
Problema poate fi exprimat printr-o mulime de variabile cu constrngeri asupra valorilor lor Constrngerile sunt relativ simple (de ex. binare)
73