Inteligență artificială
3. Jocuri. Satisfacerea constrângerilor
Florin Leon
Universitatea Tehnică „Gheorghe Asachi” din Iași
Facultatea de Automatică și Calculatoare
http://florinleon.byethost24.com/curs_ia.htm
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
2
Jocuri. Satisfacerea constrângerilor
1. Tipuri de jocuri
2. Algorimul minimax
3. Retezarea alfa-beta
4. Jocuri nedeterministe
5. Formalizarea problemelor de satisfacere a constrângerilor
6. Backtracking
7. Euristici de optimizare
8. Concluzii
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
3
Jocuri. Satisfacerea constrângerilor
1. Tipuri de jocuri
2. Algorimul minimax
3. Retezarea alfa-beta
4. Jocuri nedeterministe
5. Formalizarea problemelor de satisfacere a constrângerilor
6. Backtracking
7. Euristici de optimizare
8. Concluzii
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
4
Introducere
 De-a lungul timpului, jocurile care necesită
explorarea unor alternative au fost considerate
provocări pentru inteligența umană
 Dame (Mesopotamia, cc. 3000 î.Hr.)
 Go (China, cc. 600 î.Hr.)
 Șah (India, cc. 600 d.Hr.)
 Jocurile sunt folosite deseori pentru a proiecta și
testa algoritmi de inteligență artificială
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
5
Introducere
 Unul din cele mai vechi subdomenii ale IA-ului
(Zuse, Shannon, Wiener, Turing, anii 1950)
 Forme abstracte și pure de competiție care necesită
inteligență
 Probleme dificile cu o structură inițială minimă de
cunoștințe
 Stări și acțiuni ușor de reprezentat
 Puține cunoștințe necesare despre mediu
 Jocurile sunt un caz particular al problemelor de căutare
 Deseori au spații de căutare foarte mari
 Sunt distractive 
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
6
Jocuri deterministe cu
informații perfecte
Șah Dame Go
Othelo X și 0Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
7
Jocuri nedeterministe cu
informații perfecte
Table Monopoly
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
8
Jocuri nedeterministe cu
informații imperfecte
Bridge
Scrabble
Poker
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
9
Caracteristici
 Jocurile pot fi probleme de căutare foarte
dificile, dar ușor de formalizat
 Găsirea soluției optime poate fi nefezabilă
 O soluție care învinge adversarul este acceptabilă
 O soluție „inacceptabilă” nu numai că induce
costuri mai mari, ci provoacă înfrângerea
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
10
Dimensiunea spațiului
de căutare
 Șah („drosofila IA-ului”)
 Factor de ramificare ≈ 35
 ≈ 50 de mutări pe jucător
 ≈ 35100 (10154) noduri
 1040 stări distincte (dimensiunea grafului de căutare)
 Go
 Factorul de ramificare începe de la 361 (tablă 19 x 19)
 ≈ 200 de mutări pe stare, 300 de niveluri 
200300 (10690) noduri în arbore
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
11
Jocurile și căutarea
 Căutarea clasică: un singur agent care
încearcă fără piedici să își atingă obiectivul
 Jocurile: căutare în prezența unui adversar
 Reprezentarea jocurilor ca probleme de
căutare
 Stări: configurațiile tablei de joc
 Operatori: mutările permise
 Starea inițială: configurația curentă a tablei
 Starea scop: configurația câștigătoare
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
12
Noi tehnici necesare (I)
 Spațiul de căutare este foarte mare
 Nu cunoaștem mutarea adversarului
 Algoritmii pentru jocuri:
 Caută numai până la o anumită adâncime în
arbore
 Utilizează o funcție de evaluare la adâncimea
respectivă
 Propagă evaluările în sus spre rădăcină
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
13
Noi tehnici necesare (II)
 Modalitatea de joc:
 Se consideră toate mutările legale care se pot face
 Fiecare mutare conduce către o nouă configurație (poziție)
 Se evaluează fiecare poziție rezultată și se determină care este cea
mai bună
 Se face mutarea respectivă
 Se așteaptă mutarea adversarului și se repetă algoritmul
 Probleme cheie:
 Reprezentarea tablei
 Generarea tuturor configurațiilor următoare valide
 Evaluarea unei poziții
 Considerarea mai multor mutări în avans
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
14
Funcția de evaluare (I)
 Evaluează valoarea unei poziții
 Considerând funcțiile g și h de la căutarea clasică,
aici contează numai h; g este irelevant
 Este o funcție euristică și cuprinde
cunoștințele expert despre domeniul
problemei
 Inteligența calculatorului depinde în mare
măsură de funcția de evaluare
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
15
Funcția de evaluare (II)
 Presupunem că jocul este de sumă nulă
 Putem folosi o singură funcție de evaluare
pentru ambii jucători
 f(n) > 0: poziția n este bună pentru calculator
și rea pentru adversar (om)
 f(n) < 0: poziția n este rea pentru calculator
și bună pentru adversar
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
16
Exemple: funcții de evaluare
 X și 0:
 f(n) = [numărul de direcții de 3 pătrățele deschise pentru
calculator] – [numărul de direcții deschise pentru adversar]
 Direcțiile sunt linii, coloane sau diagonale complete
 Șah (funcția lui Turing):
 f(n) = w(n) / b(n)
 w(n) = suma punctelor pieselor albe
 b(n) = suma punctelor pieselor negre
 Pion = 1 punct, cal/nebun = 3 puncte, turn = 5 puncte,
regină = 9 puncte
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
17
Exemple: funcții de evaluare
 Majoritatea funcțiilor de evaluare sunt sume
ponderate ale trăsăturilor unei poziții:
 f(n) = w1 ∙ t1(n) + w2 ∙ t2(n) + ... + wk ∙ tk(n)
 Trăsături pentru șah sunt numărul de piese, plasarea pe
tablă a pieselor, pătrățele controlate etc.
 Deep Blue avea în jur de 8000 de trăsături în funcția
de evaluare
 Pot exista combinații neliniare de trăsături
 Nebunul valorează mai mult spre sfârșitul jocului decât la
început
 2 nebuni valorează mai mult decât dublul valorii unuia singur
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
18
3. Jocuri. Satisfacerea constrângerilor
1. Tipuri de jocuri
2. Algorimul minimax
3. Retezarea alfa-beta
4. Jocuri nedeterministe
5. Formalizarea problemelor de satisfacere a constrângerilor
6. Backtracking
7. Euristici de optimizare
8. Concluzii
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
19
Minimax
 Restricții:
 Doi jucători:
 MAX (calculator)
 MIN (adversar)
 Joc determinist cu
informații perfecte
 Se selectează o limită
de adâncime (de
exemplu 2) și o funcție
de evaluare
MAX
MIN
MAX
2 5 3 1 4 4 3
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
20
MAX
MIN
MAX
- Se construiește arborele
până la limita de adâncime
- Se calculează funcția de
evaluare pentru frunze
2 5 3 1 4 4 3
- Se propagă evaluarea în sus
- selectând minimele în MIN
2 1 3
- selectând maximele în MAX
3
Alege
mutarea
Modul de funcționare
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
21
Initialize depth_bound
Minimax (board, depth) :=
IF depth = depth_bound
THEN return StaticEvaluation(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)
Pseudocod
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
22
Jocuri cu mai mulți jucători
 Funcția de evaluare este vectorială și redă
utilitățile tuturor jucătorilor
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
23
Alianțele
 Alianțele pot rezulta din aplicarea strategiilor
optime individuale
 Cooperarea poate rezulta din urmărirea
comportamentului rațional individual (egoist)
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
24
Jocuri. Satisfacerea constrângerilor
1. Tipuri de jocuri
2. Algorimul minimax
3. Retezarea alfa-beta
4. Jocuri nedeterministe
5. Formalizarea problemelor de satisfacere a constrângerilor
6. Backtracking
7. Euristici de optimizare
8. Concluzii
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
25
Retezarea alfa-beta
 engl. “alpha-beta pruning”, elagajul alfa-beta
 Optimizare aplicată algoritmului minimax
 Minimax
 Creează mai întâi întregul arbore, până la limita de adâncime
 Apoi realizează propagarea
 Retezarea alfa-beta
 Întrețese generarea arborelui cu propagarea valorilor
 Motivație
 Unele valori obținute în arbore furnizează informații privind
redundanța altor părți, care nu mai trebuie generate
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
26
MIN
MAX
MAX
2
Ideea alfa-beta
 Se generează arborele în adâncime, de la stânga la dreapta
 Se propagă valorile finale ale nodurilor ca estimări
inițiale pentru părinții lor
2
5
=2
2
1
1
- Valoarea MIN (1) este deja
mai mică decât valoarea MAX
a părintelui (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
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
27
Terminologie
 Valorile (temporare) în nodurile MAX sunt valori alfa
 Valorile (temporare) în nodurile MIN sunt valori beta
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
28
Principiile alfa-beta (I)
 Dacă valoarea alfa este mai mare sau egală decât valoarea
beta a unui nod descendent, atunci se oprește generarea fiilor
nodului descendent
  
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
29
Principiile alfa-beta (II)
 Dacă valoarea beta este mai mică sau egală decât valoarea
alfa a unui nod descendent, atunci se oprește generarea fiilor
nodului descendent
  
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
30
8 7 3 9 1 6 2 4 1 1 3 5 3 9 2 6 5 2 1 2 3 9 7 2 8 6 4
Exemplu: minimax cu alfa-beta
1
2 8
3
5= 8
4
6 8
7
8 9
9 11 13 17 19 21 24 26 28 32 34 36
10 2
12 4
14= 4
15= 4
 4 16
18 1
20 3
22= 5
30= 5
 5 23
 5 31
25 3
27 9 29 6
33 1
35 2
37= 3
 3 38
39= 5
MAX
MIN
MAX
11 evaluări evitateFlorin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
Retezare în adâncime
 Pentru arbori cu cel
puțin 4 niveluri
min/max, retezarea
alfa-beta se aplică și
pentru niveluri mai
adânci
4
 4
 4
 4
 4
2
 2
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
32
Cazul cel mai favorabil:
arbore perfect ordonat
MAX
MIN
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 7
21 24 27 12 15 18 3 6 9
21 12 3
21
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
33
Cazul cel mai favorabil
MAX
MIN
MAX
- Când pe fiecare nivel cel mai bun nod este primul din stânga
Doar ramurile îngroșate sunt explorateFlorin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
Reordonarea
 De exemplu, pentru șah:
 Mutările cele mai bune descoperite în căutarea
anterioară
 Capturile
 Atacurile
 Mutările înainte
 Mutările înapoi
34Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
35
Cazul cel mai favorabil
 Numărul de evaluări statice:
 nes = 2·bd/2 – 1, dacă d este par
 nes = b(d+1)/2 + b(d–1)/2 – 1, dacă d este impar
 În exemplul anterior:
 d = 3, b = 3  nes = 9 + 3 – 1 = 11
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
36
Comparație între
minimax și alfa-beta
 Graficul are scară logaritmică
 Retezarea alfa-beta are tot complexitate exponențială
 Cazul cel mai defavorabil
 Pentru unii arbori retezarea alfa-beta nu are niciun efect
 Pentru unii arbori este imposibilă reordonarea pentru a permite
retezarea
 Cazul cel mai
favorabil
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
37
Performanțele retezării alfa-beta
 Alfa-beta garantează calcularea aceleiași valori pentru rădăcină
ca și minimax, cu o complexitate mai mică sau egală
 Cazul cel mai defavorabil: nu se face nicio retezare, se
examinează O(bd) noduri
 Cazul mediu:
 Cazul cel mai favorabil: O(bd/2)
 Poate căuta pe o adâncime de două ori mai mare decât minimax
 Când cea mai bună mutare este și prima alternativă generată
 Î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://florinleon.byethost24.com/curs_ia.htm
38
Efectul orizontului
 Decizia din dreapta pare mai bună decât cea din
stânga, dar nu este. Alte mutări ar putea fi mai bune
 Soluția: continuarea euristică
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
39
Continuarea euristică
 În situații strategice cruciale (regele în pericol,
pierdere iminentă de piese, pion transformat în
regină etc.), se extinde căutarea dincolo de limita de
adâncime
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
40
Căutarea secundară
 Uneori este utilă verificarea unei mutări
 De exemplu, dacă se face căutarea pe
6 niveluri (engl. “ply”) și s-a găsit cea mai
bună mutare, se poate expanda numai acea
poziție pentru încă 2 niveluri pentru a verifica
dacă rămâne bună în continuare
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
41
Retezarea înainte
 engl. “forward pruning”
 Un jucător uman nu ia în calcul toate mutările
posibile, ci doar pe cele care i se par utile
 Se ignoră un sub-arbore
 Când există mai multe mutări simetrice sau echivalente
 Pentru mutări care par iraționale (care conduc în situații
aparent defavorbile)
 Numai la adâncimi mari în arbore
 Nerecomandate în apropierea rădăcinii
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
42
Limite de timp
 Chiar și când există limite de adâncime,
timpii pot varia mult
 Soluție: căutarea iterativă în adâncime
 În orice moment, este disponibilă o mutare
 Calitatea mutării crește în timp
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
43
Efectul euristicilor: șahul
 Cu minimax putem căuta pe aproximativ 5 niveluri
 Un jucător mediu analizează 6-8 niveluri
 Cu reducerea alfa-beta putem căuta pe aproximativ 10 niveluri
(reducerea alfa-beta face diferența)
 Deep Blue
 Căutare în medie pe 14 niveluri, maxim 40
 Evaluarea a 30 de miliarde de poziții pe mutare
 Bază de date cu 700.000 de jocuri
 4000 de strategii de deschidere
 Toate rezolvările pentru pozițiile cu 5 piese și multe pentru pozițiile
cu 6 piese
 Metodele euristice recente pot scădea factorul de ramificare de
la 35 la aproximativ 3
 De exemplu: mutarea nulă – oponentul mută de 2 ori la început
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
44
Jocuri. Satisfacerea constrângerilor
1. Tipuri de jocuri
2. Algorimul minimax
3. Retezarea alfa-beta
4. Jocuri nedeterministe
5. Formalizarea problemelor de satisfacere a constrângerilor
6. Backtracking
7. Euristici de optimizare
8. Concluzii
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
45
Jocuri nedeterministe
 Includ elemente
probabilistice
 Zaruri, cărți de joc
 De exemplu: table
 Albul a dat 6-5 și are 4
mutări valide:
 5-10, 5-11
 5-11, 19-24
 5-10, apoi 10-16
 5-11, apoi 11-16
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
46
Arbori de joc cu noduri-șansă
 Nodurile șansă (cercurile) reprezintă
evenimente aleatorii
 Pentru un eveniment aleatoriu cu n
rezultate posibile, fiecare nod-șansă
are n fii distincți, iar fiecare fiu are
asociată o probabilitate
 Pentru 2 zaruri, sunt posibile 21 de
rezultate
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
47
Arbori de joc cu noduri-șansă
 Se folosește minimax pentru a
calcula valorile nodurilor MAX și MIN
 Se folosesc valorile așteptate
pentru nodurile-șansă
 Pentru nodurile-șansă la un nod MIN
 expectimin(A) = Σi(P(di) ∙ minvalue(i))
 Pentru nodurile-șansă la un nod MAX
 expectimax(B) = Σi(P(di) ∙ maxvalue(i))
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
48
Exemplu
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
49
Performanțe
 Complexitate: O(bmnm)
 n = numărul de posibilități distincte (de exemplu, pentru un
zar, n = 6)
 Pentru jocul de table, căutarea se poate face probabil
pe maximum 3 niveluri
 Se poate aplica reducerea alfa-beta estimând limitele
superioare și inferioare ale valorilor
 Pentru aproximarea valorilor, se poate folosi
simularea Monte Carlo
 Valoarea stării este probabilitatea de a câștiga din acea stare
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
Stadiul actual al programelor
de jocuri
 Dame (Chinook), Othello (Logistello): programele
sunt mai bune decât oamenii
 Table (TD-Gammon): învățare cu întărire și rețele
neuronale, top 3 mondial
 Bridge (GIB): campion mondial
 Șah, Elo rating: Kasparov (cel mai bun înregistrat):
2851; Stockfish 7: 3229 (aprilie 2016)
 Go (AlphaGo): l-a învins pe jucătorul profesionist
Lee Sedol (martie 2016)
50Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
51
Jocuri. Satisfacerea constrângerilor
1. Tipuri de jocuri
2. Algorimul minimax
3. Retezarea alfa-beta
4. Jocuri nedeterministe
5. Formalizarea problemelor de satisfacere a constrângerilor
6. Backtracking
7. Euristici de optimizare
8. Concluzii
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
52
Satisfacerea constrângerilor
 engl. “Constraint Satisfaction Problems” (CSP)
 O mulțime de variabile { X1, X2, …, Xn }
 Fiecare variabilă Xi are un domeniu Di de valori
posibile
 De obicei, Di este finit
 O mulțime de constrângeri { C1, C2, …, Cp }
 Fiecare constrângere este definită pe o submulțime
de variabile și arată combinațiile valide ale valorilor
acestora
 Scop: atribuirea unei valori fiecărei variabile astfel
încât toate constrângerile să fie satisfăcute
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
53
 Variabile: WA, NT, Q, NSW, V, SA, T
 Domenii: Di = { roșu, verde, albastru }
 Constrângeri: regiunile adiacente trebuie să aibă culori diferite
 De ex. WA ≠ NT sau (WA,NT) {(roșu,verde),(roșu,albastru),
(verde,roșu),(verde,albastru),(albastru,roșu),(albastru,verde)}
Exemplu: colorarea unei hărți
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
54
 Soluțiile sunt atribuiri complete și consistente
 De exemplu: WA = roșu, NT = verde, Q = roșu,
NSW = verde, V = roșu, SA = albastru, T = verde
Soluție
respectă toate
constrângerile
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
55
Graful constrângerilor
 Probleme binare: fiecare constrângere este definită
pentru două variabile
 Graful constrângerilor: nodurile sunt variabile, arcele
sunt constrângeri
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
56
Tipuri de probleme
 Variabile discrete
 Domenii finite
 Satisfiabilitatea booleană (NP-completă): problema determinării
dacă variabilele unei formule booleene date pot lua valori astfel
încât formula să fie adevărată
 Domenii infinite
 Planificarea sarcinilor de lucru (engl. “job shop scheduling”):
variabilele sunt momentele de început/sfârșit ale fiecărei sarcini
 Variabile continue
 Momentele de început și sfârșit pentru observațiile unui
telescop (de exemplu Hubble)
 Constrângeri liniare
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
57
Tipuri de constrângeri
 Constrângerile unare implică o singură variabilă
 SA ≠ verde
 Constrângerile binare implică perechi de variabile
 SA ≠ WA
 Constrângerile de nivel înalt implică trei sau mai
multe variabile
 Probleme criptaritmetice
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
58
Probleme criptaritmetice
 Variabile: F T U W R O X1 X2 X3
 Domenii: { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
 Constrângeri:
 DiferiteToate (F, T, U, W, R, O)
 O + O = R + 10 · X1
 X1 + W + W = U + 10 · X2
 X2 + T + T = O + 10 · X3
 X3 = F, T ≠ 0, F ≠ 0
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
59
Probleme reale
 Problema orarului sau probleme de atribuire
 Ce curs este predat când și unde
 Cine predă ce obiect la ce clasă
 Planificarea transporturilor
 Planificarea în mediul industrial
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
60
Căutarea incrementală
standard
 Stările sunt definite de valorile atribuite până în prezent
 Starea inițială: atribuirea vidă { }
 Operatori: atribuirea unei valori unei variabile neatribuite
care nu intră în conflict cu atribuirea curentă
 Eșec dacă nu există atribuiri valide
 Scop: atribuirea curentă să fie completă
 Aceeași procedură pentru toate problemele de satisfacere
a constrângerilor
 Fiecare soluție apare la adâncimea n cu n variabile
 Se folosește căutarea în adâncime
 Calea este irelevantă
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
61
Jocuri. Satisfacerea constrângerilor
1. Tipuri de jocuri
2. Algorimul minimax
3. Retezarea alfa-beta
4. Jocuri nedeterministe
5. Formalizarea problemelor de satisfacere a constrângerilor
6. Backtracking
7. Euristici de optimizare
8. Concluzii
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
62
Rezolvarea PSC
 Căutare clasică: n variabile, d valori
 Arbore cu n!∙dn frunze
 Factorul de ramificare pe primul nivel este n∙ d, pe al doilea (n –1)∙d etc.
 Există doar dn atribuiri complete posibile
 În multe probleme, aceleași stări pot fi atinse
independent de ordinea în care se iau deciziile
 Acțiuni comutative
 În problemele de satisfacerea constrângerilor, stările 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://florinleon.byethost24.com/curs_ia.htm
63
Căutarea backtracking
 Comutativitatea atribuirilor
 (WA = roșu apoi NT = verde) este la fel cu
(NT = verde apoi WA = roșu)
 Căutarea backtracking este:
 Căutare în adâncime cu
 Atribuirea unei singure variabile într-un nod
 Poate rezolva problema reginelor cu n ≈ 25
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
64
Exemplu de backtracking
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
65
Căutarea neinformată și
backtracking-ul
65
vezi materialele demonstrative
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
66
Jocuri. Satisfacerea constrângerilor
1. Tipuri de jocuri
2. Algorimul minimax
3. Retezarea alfa-beta
4. Jocuri nedeterministe
5. Formalizarea problemelor de satisfacere a constrângerilor
6. Backtracking
7. Euristici de optimizare
8. Concluzii
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
67
Creșterea eficienței
algoritmului backtracking
 Metodele de optimizare dau creșteri
spectaculoase de viteză
 Ce variabilă să fie atribuită în pasul următor?
 În ce ordine să se încerce valorile?
 Se poate detecta eșecul mai devreme?
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
68
Cea mai constrângătoare
variabilă
 Se alege variabila cu cele mai multe
constrângeri asupra variabilelor rămase
 Utilă pentru decizii în caz de egalitate, de
exemplu în starea inițială
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
69
Cea mai constrânsă variabilă
 Se alege variabila cu cele mai puține valori
permise
 Se mai numește euristica celor mai puține
valori rămase
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
70
Cea mai puțin constrângătoare
valoare
 Pentru o variabilă, se alege valoarea care
elimină cele mai puține valori în variabilele
rămase
 Combinarea acestor euristici face posibilă
rezolvarea problemei reginelor cu n ≈ 1000
Permite 1 valoare pentru SA
Permite 0 valori pentru SA
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
71
Verificarea înainte
 engl. “forward checking”
 La început, pentru fiecare variabilă se memorează
mulțimea curentă de valori permise
 Când se atribuie o valoare în procesul de căutare,
se actualizează mulțimile de valori permise pentru
toate variabilele
 Dacă o mulțime devine vidă, se revine pe nivelul
anterior (se face backtracking)
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
72
Backtracking și
Verificarea înainte
72
vezi materialele demonstrative
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
Exemplu: 4 regine
1
3
2
4
32 41
X1
{1,2,3,4}
X3
{1,2,3,4}
X4
{1,2,3,4}
X2
{1,2,3,4}
73Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
Exemplu: 4 regine
1
3
2
4
32 41
X1
{1,2,3,4}
X3
{1,2,3,4}
X4
{1,2,3,4}
X2
{1,2,3,4}
74Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
Exemplu: 4 regine
1
3
2
4
32 41
X1
{1,2,3,4}
X3
{ ,2, ,4}
X4
{ ,2,3, }
X2
{ , ,3,4}
75Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
Exemplu: 4 regine
1
3
2
4
32 41
X1
{1,2,3,4}
X3
{ ,2, ,4}
X4
{ ,2,3, }
X2
{ , ,3,4}
76Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
Exemplu: 4 regine
1
3
2
4
32 41
X1
{1,2,3,4}
X3
{ , , , }
X4
{ ,2, , }
X2
{ , ,3,4}
77Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
Exemplu: 4 regine
1
3
2
4
32 41
X1
{1,2,3,4}
X3
{ ,2, ,4}
X4
{ ,2,3, }
X2
{ , , ,4}
78Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
Exemplu: 4 regine
1
3
2
4
32 41
X1
{1,2,3,4}
X3
{ ,2, , }
X4
{ , ,3, }
X2
{ , , ,4}
79Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
Exemplu: 4 regine
1
3
2
4
32 41
X1
{1,2,3,4}
X3
{ ,2, , }
X4
{ , ,3, }
X2
{ , , ,4}
80Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
Exemplu: 4 regine
1
3
2
4
32 41
X1
{1,2,3,4}
X3
{ ,2, , }
X4
{ , , , }
X2
{ , , ,4}
81Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
Exemplu: 4 regine
1
3
2
4
32 41
X1
{ ,2,3,4}
X3
{1,2,3,4}
X4
{1,2,3,4}
X2
{1,2,3,4}
82Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
Exemplu: 4 regine
1
3
2
4
32 41
X1
{ ,2,3,4}
X3
{1, ,3, }
X4
{1, ,3,4}
X2
{ , , ,4}
83Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
Exemplu: 4 regine
1
3
2
4
32 41
X1
{ ,2,3,4}
X3
{1, ,3, }
X4
{1, ,3,4}
X2
{ , , ,4}
84Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
Exemplu: 4 regine
1
3
2
4
32 41
X1
{ ,2,3,4}
X3
{1, , , }
X4
{1, ,3, }
X2
{ , , ,4}
85Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
Exemplu: 4 regine
1
3
2
4
32 41
X1
{ ,2,3,4}
X3
{1, , , }
X4
{1, ,3, }
X2
{ , , ,4}
86Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
Exemplu: 4 regine
1
3
2
4
32 41
X1
{ ,2,3,4}
X3
{1, , , }
X4
{ , ,3, }
X2
{ , , ,4}
87Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
Exemplu: 4 regine
1
3
2
4
32 41
X1
{ ,2,3,4}
X3
{1, , , }
X4
{ , ,3, }
X2
{ , , ,4}
88Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
89
Complexitatea de timp
 Există și alți algoritmi, de exemplu
propagarea constrângerilor, care reduc
și mai mult factorul de ramificare, însă
calculele suplimentare sunt laborioase
 Trebuie realizat un compromis între calculele
necesare rezolvării problemei propriu-zise și
calculele necesitate de euristici
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
90
Min-Conflicts
 Este o metodă de căutare locală
 Poate rezolva problema reginelor cu 1 milion de
regine în aproximativ 50 de pași
 A redus timpul de planificare al telescopului Hubble
pentru o săptămână de observații de la 3 săptămâni
la 10 minute
 Funcționează bine mai ales când soluțiile sunt dens
distribuite în spațiul stărilor
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
91
Min-Conflicts
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
Concluzii
 Jocurile ilustrează faptul că atunci când soluția
optimă este imposibil de găsit, aproximările sunt
deseori suficiente pentru a câștiga
 Metodele de satisfacere a constrângerilor se
aplică problemelor care pot fi exprimate printr-o
mulțime de variabile cu restricții asupra valorilor
pe care le pot lua
92Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

Jocuri. Satisfacerea constrangerilor

  • 1.
    Inteligență artificială 3. Jocuri.Satisfacerea constrângerilor Florin Leon Universitatea Tehnică „Gheorghe Asachi” din Iași Facultatea de Automatică și Calculatoare http://florinleon.byethost24.com/curs_ia.htm Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 2.
    2 Jocuri. Satisfacerea constrângerilor 1.Tipuri de jocuri 2. Algorimul minimax 3. Retezarea alfa-beta 4. Jocuri nedeterministe 5. Formalizarea problemelor de satisfacere a constrângerilor 6. Backtracking 7. Euristici de optimizare 8. Concluzii Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 3.
    3 Jocuri. Satisfacerea constrângerilor 1.Tipuri de jocuri 2. Algorimul minimax 3. Retezarea alfa-beta 4. Jocuri nedeterministe 5. Formalizarea problemelor de satisfacere a constrângerilor 6. Backtracking 7. Euristici de optimizare 8. Concluzii Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 4.
    4 Introducere  De-a lungultimpului, jocurile care necesită explorarea unor alternative au fost considerate provocări pentru inteligența umană  Dame (Mesopotamia, cc. 3000 î.Hr.)  Go (China, cc. 600 î.Hr.)  Șah (India, cc. 600 d.Hr.)  Jocurile sunt folosite deseori pentru a proiecta și testa algoritmi de inteligență artificială Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 5.
    5 Introducere  Unul dincele mai vechi subdomenii ale IA-ului (Zuse, Shannon, Wiener, Turing, anii 1950)  Forme abstracte și pure de competiție care necesită inteligență  Probleme dificile cu o structură inițială minimă de cunoștințe  Stări și acțiuni ușor de reprezentat  Puține cunoștințe necesare despre mediu  Jocurile sunt un caz particular al problemelor de căutare  Deseori au spații de căutare foarte mari  Sunt distractive  Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 6.
    6 Jocuri deterministe cu informațiiperfecte Șah Dame Go Othelo X și 0Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 7.
    7 Jocuri nedeterministe cu informațiiperfecte Table Monopoly Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 8.
    8 Jocuri nedeterministe cu informațiiimperfecte Bridge Scrabble Poker Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 9.
    9 Caracteristici  Jocurile potfi probleme de căutare foarte dificile, dar ușor de formalizat  Găsirea soluției optime poate fi nefezabilă  O soluție care învinge adversarul este acceptabilă  O soluție „inacceptabilă” nu numai că induce costuri mai mari, ci provoacă înfrângerea Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 10.
    10 Dimensiunea spațiului de căutare Șah („drosofila IA-ului”)  Factor de ramificare ≈ 35  ≈ 50 de mutări pe jucător  ≈ 35100 (10154) noduri  1040 stări distincte (dimensiunea grafului de căutare)  Go  Factorul de ramificare începe de la 361 (tablă 19 x 19)  ≈ 200 de mutări pe stare, 300 de niveluri  200300 (10690) noduri în arbore Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 11.
    11 Jocurile și căutarea Căutarea clasică: un singur agent care încearcă fără piedici să își atingă obiectivul  Jocurile: căutare în prezența unui adversar  Reprezentarea jocurilor ca probleme de căutare  Stări: configurațiile tablei de joc  Operatori: mutările permise  Starea inițială: configurația curentă a tablei  Starea scop: configurația câștigătoare Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 12.
    12 Noi tehnici necesare(I)  Spațiul de căutare este foarte mare  Nu cunoaștem mutarea adversarului  Algoritmii pentru jocuri:  Caută numai până la o anumită adâncime în arbore  Utilizează o funcție de evaluare la adâncimea respectivă  Propagă evaluările în sus spre rădăcină Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 13.
    13 Noi tehnici necesare(II)  Modalitatea de joc:  Se consideră toate mutările legale care se pot face  Fiecare mutare conduce către o nouă configurație (poziție)  Se evaluează fiecare poziție rezultată și se determină care este cea mai bună  Se face mutarea respectivă  Se așteaptă mutarea adversarului și se repetă algoritmul  Probleme cheie:  Reprezentarea tablei  Generarea tuturor configurațiilor următoare valide  Evaluarea unei poziții  Considerarea mai multor mutări în avans Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 14.
    14 Funcția de evaluare(I)  Evaluează valoarea unei poziții  Considerând funcțiile g și h de la căutarea clasică, aici contează numai h; g este irelevant  Este o funcție euristică și cuprinde cunoștințele expert despre domeniul problemei  Inteligența calculatorului depinde în mare măsură de funcția de evaluare Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 15.
    15 Funcția de evaluare(II)  Presupunem că jocul este de sumă nulă  Putem folosi o singură funcție de evaluare pentru ambii jucători  f(n) > 0: poziția n este bună pentru calculator și rea pentru adversar (om)  f(n) < 0: poziția n este rea pentru calculator și bună pentru adversar Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 16.
    16 Exemple: funcții deevaluare  X și 0:  f(n) = [numărul de direcții de 3 pătrățele deschise pentru calculator] – [numărul de direcții deschise pentru adversar]  Direcțiile sunt linii, coloane sau diagonale complete  Șah (funcția lui Turing):  f(n) = w(n) / b(n)  w(n) = suma punctelor pieselor albe  b(n) = suma punctelor pieselor negre  Pion = 1 punct, cal/nebun = 3 puncte, turn = 5 puncte, regină = 9 puncte Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 17.
    17 Exemple: funcții deevaluare  Majoritatea funcțiilor de evaluare sunt sume ponderate ale trăsăturilor unei poziții:  f(n) = w1 ∙ t1(n) + w2 ∙ t2(n) + ... + wk ∙ tk(n)  Trăsături pentru șah sunt numărul de piese, plasarea pe tablă a pieselor, pătrățele controlate etc.  Deep Blue avea în jur de 8000 de trăsături în funcția de evaluare  Pot exista combinații neliniare de trăsături  Nebunul valorează mai mult spre sfârșitul jocului decât la început  2 nebuni valorează mai mult decât dublul valorii unuia singur Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 18.
    18 3. Jocuri. Satisfacereaconstrângerilor 1. Tipuri de jocuri 2. Algorimul minimax 3. Retezarea alfa-beta 4. Jocuri nedeterministe 5. Formalizarea problemelor de satisfacere a constrângerilor 6. Backtracking 7. Euristici de optimizare 8. Concluzii Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 19.
    19 Minimax  Restricții:  Doijucători:  MAX (calculator)  MIN (adversar)  Joc determinist cu informații perfecte  Se selectează o limită de adâncime (de exemplu 2) și o funcție de evaluare MAX MIN MAX 2 5 3 1 4 4 3 Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 20.
    20 MAX MIN MAX - Se construieștearborele până la limita de adâncime - Se calculează funcția de evaluare pentru frunze 2 5 3 1 4 4 3 - Se propagă evaluarea în sus - selectând minimele în MIN 2 1 3 - selectând maximele în MAX 3 Alege mutarea Modul de funcționare Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 21.
    21 Initialize depth_bound Minimax (board,depth) := IF depth = depth_bound THEN return StaticEvaluation(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) Pseudocod Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 22.
    22 Jocuri cu maimulți jucători  Funcția de evaluare este vectorială și redă utilitățile tuturor jucătorilor Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 23.
    23 Alianțele  Alianțele potrezulta din aplicarea strategiilor optime individuale  Cooperarea poate rezulta din urmărirea comportamentului rațional individual (egoist) Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 24.
    24 Jocuri. Satisfacerea constrângerilor 1.Tipuri de jocuri 2. Algorimul minimax 3. Retezarea alfa-beta 4. Jocuri nedeterministe 5. Formalizarea problemelor de satisfacere a constrângerilor 6. Backtracking 7. Euristici de optimizare 8. Concluzii Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 25.
    25 Retezarea alfa-beta  engl.“alpha-beta pruning”, elagajul alfa-beta  Optimizare aplicată algoritmului minimax  Minimax  Creează mai întâi întregul arbore, până la limita de adâncime  Apoi realizează propagarea  Retezarea alfa-beta  Întrețese generarea arborelui cu propagarea valorilor  Motivație  Unele valori obținute în arbore furnizează informații privind redundanța altor părți, care nu mai trebuie generate Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 26.
    26 MIN MAX MAX 2 Ideea alfa-beta  Segenerează arborele în adâncime, de la stânga la dreapta  Se propagă valorile finale ale nodurilor ca estimări inițiale pentru părinții lor 2 5 =2 2 1 1 - Valoarea MIN (1) este deja mai mică decât valoarea MAX a părintelui (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 Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 27.
    27 Terminologie  Valorile (temporare)în nodurile MAX sunt valori alfa  Valorile (temporare) în nodurile MIN sunt valori beta Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 28.
    28 Principiile alfa-beta (I) Dacă valoarea alfa este mai mare sau egală decât valoarea beta a unui nod descendent, atunci se oprește generarea fiilor nodului descendent    Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 29.
    29 Principiile alfa-beta (II) Dacă valoarea beta este mai mică sau egală decât valoarea alfa a unui nod descendent, atunci se oprește generarea fiilor nodului descendent    Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 30.
    30 8 7 39 1 6 2 4 1 1 3 5 3 9 2 6 5 2 1 2 3 9 7 2 8 6 4 Exemplu: minimax cu alfa-beta 1 2 8 3 5= 8 4 6 8 7 8 9 9 11 13 17 19 21 24 26 28 32 34 36 10 2 12 4 14= 4 15= 4  4 16 18 1 20 3 22= 5 30= 5  5 23  5 31 25 3 27 9 29 6 33 1 35 2 37= 3  3 38 39= 5 MAX MIN MAX 11 evaluări evitateFlorin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 31.
    Retezare în adâncime Pentru arbori cu cel puțin 4 niveluri min/max, retezarea alfa-beta se aplică și pentru niveluri mai adânci 4  4  4  4  4 2  2 Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 32.
    32 Cazul cel maifavorabil: arbore perfect ordonat MAX MIN 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 7 21 24 27 12 15 18 3 6 9 21 12 3 21 Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 33.
    33 Cazul cel maifavorabil MAX MIN MAX - Când pe fiecare nivel cel mai bun nod este primul din stânga Doar ramurile îngroșate sunt explorateFlorin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 34.
    Reordonarea  De exemplu,pentru șah:  Mutările cele mai bune descoperite în căutarea anterioară  Capturile  Atacurile  Mutările înainte  Mutările înapoi 34Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 35.
    35 Cazul cel maifavorabil  Numărul de evaluări statice:  nes = 2·bd/2 – 1, dacă d este par  nes = b(d+1)/2 + b(d–1)/2 – 1, dacă d este impar  În exemplul anterior:  d = 3, b = 3  nes = 9 + 3 – 1 = 11 Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 36.
    36 Comparație între minimax șialfa-beta  Graficul are scară logaritmică  Retezarea alfa-beta are tot complexitate exponențială  Cazul cel mai defavorabil  Pentru unii arbori retezarea alfa-beta nu are niciun efect  Pentru unii arbori este imposibilă reordonarea pentru a permite retezarea  Cazul cel mai favorabil Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 37.
    37 Performanțele retezării alfa-beta Alfa-beta garantează calcularea aceleiași valori pentru rădăcină ca și minimax, cu o complexitate mai mică sau egală  Cazul cel mai defavorabil: nu se face nicio retezare, se examinează O(bd) noduri  Cazul mediu:  Cazul cel mai favorabil: O(bd/2)  Poate căuta pe o adâncime de două ori mai mare decât minimax  Când cea mai bună mutare este și prima alternativă generată  Î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://florinleon.byethost24.com/curs_ia.htm
  • 38.
    38 Efectul orizontului  Deciziadin dreapta pare mai bună decât cea din stânga, dar nu este. Alte mutări ar putea fi mai bune  Soluția: continuarea euristică Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 39.
    39 Continuarea euristică  Însituații strategice cruciale (regele în pericol, pierdere iminentă de piese, pion transformat în regină etc.), se extinde căutarea dincolo de limita de adâncime Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 40.
    40 Căutarea secundară  Uneorieste utilă verificarea unei mutări  De exemplu, dacă se face căutarea pe 6 niveluri (engl. “ply”) și s-a găsit cea mai bună mutare, se poate expanda numai acea poziție pentru încă 2 niveluri pentru a verifica dacă rămâne bună în continuare Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 41.
    41 Retezarea înainte  engl.“forward pruning”  Un jucător uman nu ia în calcul toate mutările posibile, ci doar pe cele care i se par utile  Se ignoră un sub-arbore  Când există mai multe mutări simetrice sau echivalente  Pentru mutări care par iraționale (care conduc în situații aparent defavorbile)  Numai la adâncimi mari în arbore  Nerecomandate în apropierea rădăcinii Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 42.
    42 Limite de timp Chiar și când există limite de adâncime, timpii pot varia mult  Soluție: căutarea iterativă în adâncime  În orice moment, este disponibilă o mutare  Calitatea mutării crește în timp Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 43.
    43 Efectul euristicilor: șahul Cu minimax putem căuta pe aproximativ 5 niveluri  Un jucător mediu analizează 6-8 niveluri  Cu reducerea alfa-beta putem căuta pe aproximativ 10 niveluri (reducerea alfa-beta face diferența)  Deep Blue  Căutare în medie pe 14 niveluri, maxim 40  Evaluarea a 30 de miliarde de poziții pe mutare  Bază de date cu 700.000 de jocuri  4000 de strategii de deschidere  Toate rezolvările pentru pozițiile cu 5 piese și multe pentru pozițiile cu 6 piese  Metodele euristice recente pot scădea factorul de ramificare de la 35 la aproximativ 3  De exemplu: mutarea nulă – oponentul mută de 2 ori la început Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 44.
    44 Jocuri. Satisfacerea constrângerilor 1.Tipuri de jocuri 2. Algorimul minimax 3. Retezarea alfa-beta 4. Jocuri nedeterministe 5. Formalizarea problemelor de satisfacere a constrângerilor 6. Backtracking 7. Euristici de optimizare 8. Concluzii Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 45.
    45 Jocuri nedeterministe  Includelemente probabilistice  Zaruri, cărți de joc  De exemplu: table  Albul a dat 6-5 și are 4 mutări valide:  5-10, 5-11  5-11, 19-24  5-10, apoi 10-16  5-11, apoi 11-16 Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 46.
    46 Arbori de joccu noduri-șansă  Nodurile șansă (cercurile) reprezintă evenimente aleatorii  Pentru un eveniment aleatoriu cu n rezultate posibile, fiecare nod-șansă are n fii distincți, iar fiecare fiu are asociată o probabilitate  Pentru 2 zaruri, sunt posibile 21 de rezultate Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 47.
    47 Arbori de joccu noduri-șansă  Se folosește minimax pentru a calcula valorile nodurilor MAX și MIN  Se folosesc valorile așteptate pentru nodurile-șansă  Pentru nodurile-șansă la un nod MIN  expectimin(A) = Σi(P(di) ∙ minvalue(i))  Pentru nodurile-șansă la un nod MAX  expectimax(B) = Σi(P(di) ∙ maxvalue(i)) Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 48.
    48 Exemplu Florin Leon, Inteligentaartificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 49.
    49 Performanțe  Complexitate: O(bmnm) n = numărul de posibilități distincte (de exemplu, pentru un zar, n = 6)  Pentru jocul de table, căutarea se poate face probabil pe maximum 3 niveluri  Se poate aplica reducerea alfa-beta estimând limitele superioare și inferioare ale valorilor  Pentru aproximarea valorilor, se poate folosi simularea Monte Carlo  Valoarea stării este probabilitatea de a câștiga din acea stare Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 50.
    Stadiul actual alprogramelor de jocuri  Dame (Chinook), Othello (Logistello): programele sunt mai bune decât oamenii  Table (TD-Gammon): învățare cu întărire și rețele neuronale, top 3 mondial  Bridge (GIB): campion mondial  Șah, Elo rating: Kasparov (cel mai bun înregistrat): 2851; Stockfish 7: 3229 (aprilie 2016)  Go (AlphaGo): l-a învins pe jucătorul profesionist Lee Sedol (martie 2016) 50Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 51.
    51 Jocuri. Satisfacerea constrângerilor 1.Tipuri de jocuri 2. Algorimul minimax 3. Retezarea alfa-beta 4. Jocuri nedeterministe 5. Formalizarea problemelor de satisfacere a constrângerilor 6. Backtracking 7. Euristici de optimizare 8. Concluzii Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 52.
    52 Satisfacerea constrângerilor  engl.“Constraint Satisfaction Problems” (CSP)  O mulțime de variabile { X1, X2, …, Xn }  Fiecare variabilă Xi are un domeniu Di de valori posibile  De obicei, Di este finit  O mulțime de constrângeri { C1, C2, …, Cp }  Fiecare constrângere este definită pe o submulțime de variabile și arată combinațiile valide ale valorilor acestora  Scop: atribuirea unei valori fiecărei variabile astfel încât toate constrângerile să fie satisfăcute Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 53.
    53  Variabile: WA,NT, Q, NSW, V, SA, T  Domenii: Di = { roșu, verde, albastru }  Constrângeri: regiunile adiacente trebuie să aibă culori diferite  De ex. WA ≠ NT sau (WA,NT) {(roșu,verde),(roșu,albastru), (verde,roșu),(verde,albastru),(albastru,roșu),(albastru,verde)} Exemplu: colorarea unei hărți Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 54.
    54  Soluțiile suntatribuiri complete și consistente  De exemplu: WA = roșu, NT = verde, Q = roșu, NSW = verde, V = roșu, SA = albastru, T = verde Soluție respectă toate constrângerile Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 55.
    55 Graful constrângerilor  Problemebinare: fiecare constrângere este definită pentru două variabile  Graful constrângerilor: nodurile sunt variabile, arcele sunt constrângeri Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 56.
    56 Tipuri de probleme Variabile discrete  Domenii finite  Satisfiabilitatea booleană (NP-completă): problema determinării dacă variabilele unei formule booleene date pot lua valori astfel încât formula să fie adevărată  Domenii infinite  Planificarea sarcinilor de lucru (engl. “job shop scheduling”): variabilele sunt momentele de început/sfârșit ale fiecărei sarcini  Variabile continue  Momentele de început și sfârșit pentru observațiile unui telescop (de exemplu Hubble)  Constrângeri liniare Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 57.
    57 Tipuri de constrângeri Constrângerile unare implică o singură variabilă  SA ≠ verde  Constrângerile binare implică perechi de variabile  SA ≠ WA  Constrângerile de nivel înalt implică trei sau mai multe variabile  Probleme criptaritmetice Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 58.
    58 Probleme criptaritmetice  Variabile:F T U W R O X1 X2 X3  Domenii: { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }  Constrângeri:  DiferiteToate (F, T, U, W, R, O)  O + O = R + 10 · X1  X1 + W + W = U + 10 · X2  X2 + T + T = O + 10 · X3  X3 = F, T ≠ 0, F ≠ 0 Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 59.
    59 Probleme reale  Problemaorarului sau probleme de atribuire  Ce curs este predat când și unde  Cine predă ce obiect la ce clasă  Planificarea transporturilor  Planificarea în mediul industrial Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 60.
    60 Căutarea incrementală standard  Stărilesunt definite de valorile atribuite până în prezent  Starea inițială: atribuirea vidă { }  Operatori: atribuirea unei valori unei variabile neatribuite care nu intră în conflict cu atribuirea curentă  Eșec dacă nu există atribuiri valide  Scop: atribuirea curentă să fie completă  Aceeași procedură pentru toate problemele de satisfacere a constrângerilor  Fiecare soluție apare la adâncimea n cu n variabile  Se folosește căutarea în adâncime  Calea este irelevantă Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 61.
    61 Jocuri. Satisfacerea constrângerilor 1.Tipuri de jocuri 2. Algorimul minimax 3. Retezarea alfa-beta 4. Jocuri nedeterministe 5. Formalizarea problemelor de satisfacere a constrângerilor 6. Backtracking 7. Euristici de optimizare 8. Concluzii Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 62.
    62 Rezolvarea PSC  Căutareclasică: n variabile, d valori  Arbore cu n!∙dn frunze  Factorul de ramificare pe primul nivel este n∙ d, pe al doilea (n –1)∙d etc.  Există doar dn atribuiri complete posibile  În multe probleme, aceleași stări pot fi atinse independent de ordinea în care se iau deciziile  Acțiuni comutative  În problemele de satisfacerea constrângerilor, stările 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://florinleon.byethost24.com/curs_ia.htm
  • 63.
    63 Căutarea backtracking  Comutativitateaatribuirilor  (WA = roșu apoi NT = verde) este la fel cu (NT = verde apoi WA = roșu)  Căutarea backtracking este:  Căutare în adâncime cu  Atribuirea unei singure variabile într-un nod  Poate rezolva problema reginelor cu n ≈ 25 Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 64.
    64 Exemplu de backtracking FlorinLeon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 65.
    65 Căutarea neinformată și backtracking-ul 65 vezimaterialele demonstrative Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 66.
    66 Jocuri. Satisfacerea constrângerilor 1.Tipuri de jocuri 2. Algorimul minimax 3. Retezarea alfa-beta 4. Jocuri nedeterministe 5. Formalizarea problemelor de satisfacere a constrângerilor 6. Backtracking 7. Euristici de optimizare 8. Concluzii Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 67.
    67 Creșterea eficienței algoritmului backtracking Metodele de optimizare dau creșteri spectaculoase de viteză  Ce variabilă să fie atribuită în pasul următor?  În ce ordine să se încerce valorile?  Se poate detecta eșecul mai devreme? Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 68.
    68 Cea mai constrângătoare variabilă Se alege variabila cu cele mai multe constrângeri asupra variabilelor rămase  Utilă pentru decizii în caz de egalitate, de exemplu în starea inițială Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 69.
    69 Cea mai constrânsăvariabilă  Se alege variabila cu cele mai puține valori permise  Se mai numește euristica celor mai puține valori rămase Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 70.
    70 Cea mai puținconstrângătoare valoare  Pentru o variabilă, se alege valoarea care elimină cele mai puține valori în variabilele rămase  Combinarea acestor euristici face posibilă rezolvarea problemei reginelor cu n ≈ 1000 Permite 1 valoare pentru SA Permite 0 valori pentru SA Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 71.
    71 Verificarea înainte  engl.“forward checking”  La început, pentru fiecare variabilă se memorează mulțimea curentă de valori permise  Când se atribuie o valoare în procesul de căutare, se actualizează mulțimile de valori permise pentru toate variabilele  Dacă o mulțime devine vidă, se revine pe nivelul anterior (se face backtracking) Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 72.
    72 Backtracking și Verificarea înainte 72 vezimaterialele demonstrative Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 73.
    Exemplu: 4 regine 1 3 2 4 3241 X1 {1,2,3,4} X3 {1,2,3,4} X4 {1,2,3,4} X2 {1,2,3,4} 73Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 74.
    Exemplu: 4 regine 1 3 2 4 3241 X1 {1,2,3,4} X3 {1,2,3,4} X4 {1,2,3,4} X2 {1,2,3,4} 74Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 75.
    Exemplu: 4 regine 1 3 2 4 3241 X1 {1,2,3,4} X3 { ,2, ,4} X4 { ,2,3, } X2 { , ,3,4} 75Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 76.
    Exemplu: 4 regine 1 3 2 4 3241 X1 {1,2,3,4} X3 { ,2, ,4} X4 { ,2,3, } X2 { , ,3,4} 76Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 77.
    Exemplu: 4 regine 1 3 2 4 3241 X1 {1,2,3,4} X3 { , , , } X4 { ,2, , } X2 { , ,3,4} 77Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 78.
    Exemplu: 4 regine 1 3 2 4 3241 X1 {1,2,3,4} X3 { ,2, ,4} X4 { ,2,3, } X2 { , , ,4} 78Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 79.
    Exemplu: 4 regine 1 3 2 4 3241 X1 {1,2,3,4} X3 { ,2, , } X4 { , ,3, } X2 { , , ,4} 79Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 80.
    Exemplu: 4 regine 1 3 2 4 3241 X1 {1,2,3,4} X3 { ,2, , } X4 { , ,3, } X2 { , , ,4} 80Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 81.
    Exemplu: 4 regine 1 3 2 4 3241 X1 {1,2,3,4} X3 { ,2, , } X4 { , , , } X2 { , , ,4} 81Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 82.
    Exemplu: 4 regine 1 3 2 4 3241 X1 { ,2,3,4} X3 {1,2,3,4} X4 {1,2,3,4} X2 {1,2,3,4} 82Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 83.
    Exemplu: 4 regine 1 3 2 4 3241 X1 { ,2,3,4} X3 {1, ,3, } X4 {1, ,3,4} X2 { , , ,4} 83Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 84.
    Exemplu: 4 regine 1 3 2 4 3241 X1 { ,2,3,4} X3 {1, ,3, } X4 {1, ,3,4} X2 { , , ,4} 84Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 85.
    Exemplu: 4 regine 1 3 2 4 3241 X1 { ,2,3,4} X3 {1, , , } X4 {1, ,3, } X2 { , , ,4} 85Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 86.
    Exemplu: 4 regine 1 3 2 4 3241 X1 { ,2,3,4} X3 {1, , , } X4 {1, ,3, } X2 { , , ,4} 86Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 87.
    Exemplu: 4 regine 1 3 2 4 3241 X1 { ,2,3,4} X3 {1, , , } X4 { , ,3, } X2 { , , ,4} 87Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 88.
    Exemplu: 4 regine 1 3 2 4 3241 X1 { ,2,3,4} X3 {1, , , } X4 { , ,3, } X2 { , , ,4} 88Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 89.
    89 Complexitatea de timp Există și alți algoritmi, de exemplu propagarea constrângerilor, care reduc și mai mult factorul de ramificare, însă calculele suplimentare sunt laborioase  Trebuie realizat un compromis între calculele necesare rezolvării problemei propriu-zise și calculele necesitate de euristici Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 90.
    90 Min-Conflicts  Este ometodă de căutare locală  Poate rezolva problema reginelor cu 1 milion de regine în aproximativ 50 de pași  A redus timpul de planificare al telescopului Hubble pentru o săptămână de observații de la 3 săptămâni la 10 minute  Funcționează bine mai ales când soluțiile sunt dens distribuite în spațiul stărilor Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 91.
    91 Min-Conflicts Florin Leon, Inteligentaartificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 92.
    Concluzii  Jocurile ilustreazăfaptul că atunci când soluția optimă este imposibil de găsit, aproximările sunt deseori suficiente pentru a câștiga  Metodele de satisfacere a constrângerilor se aplică problemelor care pot fi exprimate printr-o mulțime de variabile cu restricții asupra valorilor pe care le pot lua 92Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm