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 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. 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. 6
Jocuri deterministe cu
informații perfecte
Șah Dame Go
Othelo X și 0Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
8. 8
Jocuri nedeterministe cu
informații imperfecte
Bridge
Scrabble
Poker
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
9. 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. 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 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. 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. 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. 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. 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. 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 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. 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. 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
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. 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
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 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. 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
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 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. 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. 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
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. 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. 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. 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
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. 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. 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
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 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. 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 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. 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. 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
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. 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. 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ă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. 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
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ț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. 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
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 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
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