SlideShare a Scribd company logo
1 of 92
Download to read offline
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

More Related Content

More from Florin Leon

More from Florin Leon (20)

Clasificarea bazata pe ansambluri. Selectia trasaturilor
Clasificarea bazata pe ansambluri. Selectia trasaturilorClasificarea bazata pe ansambluri. Selectia trasaturilor
Clasificarea bazata pe ansambluri. Selectia trasaturilor
 
Algoritmi de clasificare
Algoritmi de clasificareAlgoritmi de clasificare
Algoritmi de clasificare
 
Algoritmi de grupare (clustering)
Algoritmi de grupare (clustering)Algoritmi de grupare (clustering)
Algoritmi de grupare (clustering)
 
Arhitecturi de agenti (II)
Arhitecturi de agenti (II)Arhitecturi de agenti (II)
Arhitecturi de agenti (II)
 
Arhitecturi de agenti (I)
Arhitecturi de agenti (I)Arhitecturi de agenti (I)
Arhitecturi de agenti (I)
 
Introducere in domeniul agentilor
Introducere in domeniul agentilorIntroducere in domeniul agentilor
Introducere in domeniul agentilor
 
Faza de testare (I)
Faza de testare (I)Faza de testare (I)
Faza de testare (I)
 
Faza de implementare
Faza de implementareFaza de implementare
Faza de implementare
 
Sabloane de proiectare comportamentale (II)
Sabloane de proiectare comportamentale (II)Sabloane de proiectare comportamentale (II)
Sabloane de proiectare comportamentale (II)
 
Sabloane de proiectare comportamentale (Ib)
Sabloane de proiectare comportamentale (Ib)Sabloane de proiectare comportamentale (Ib)
Sabloane de proiectare comportamentale (Ib)
 
Sabloane de proiectare structurale (II)
Sabloane de proiectare structurale (II)Sabloane de proiectare structurale (II)
Sabloane de proiectare structurale (II)
 
Sabloane de proiectare structurale (I)
Sabloane de proiectare structurale (I)Sabloane de proiectare structurale (I)
Sabloane de proiectare structurale (I)
 
Sabloane de proiectare creationale (II)
Sabloane de proiectare creationale (II)Sabloane de proiectare creationale (II)
Sabloane de proiectare creationale (II)
 
Sabloane de proiectare creationale (I)
Sabloane de proiectare creationale (I)Sabloane de proiectare creationale (I)
Sabloane de proiectare creationale (I)
 
Faza de proiectare
Faza de proiectareFaza de proiectare
Faza de proiectare
 
Faza de analiza
Faza de analizaFaza de analiza
Faza de analiza
 
Limbaje de modelare. UML
Limbaje de modelare. UMLLimbaje de modelare. UML
Limbaje de modelare. UML
 
Introducere in ingineria programarii
Introducere in ingineria programariiIntroducere in ingineria programarii
Introducere in ingineria programarii
 
Complexitate si emergenta
Complexitate si emergentaComplexitate si emergenta
Complexitate si emergenta
 
Invatarea cu intarire
Invatarea cu intarireInvatarea cu intarire
Invatarea cu intarire
 

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 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
  • 7. 7 Jocuri nedeterministe cu informații perfecte Table Monopoly Florin 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
  • 30. 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
  • 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
  • 48. 48 Exemplu 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
  • 64. 64 Exemplu de backtracking Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 65. 65 Căutarea neinformată și backtracking-ul 65 vezi materialele 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ț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
  • 72. 72 Backtracking și Verificarea înainte 72 vezi materialele demonstrative Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 73. 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
  • 74. 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
  • 75. 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
  • 76. 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
  • 77. 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
  • 78. 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
  • 79. 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
  • 80. 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
  • 81. 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
  • 82. 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
  • 83. 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
  • 84. 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
  • 85. 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
  • 86. 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
  • 87. 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
  • 88. 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. 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
  • 91. 91 Min-Conflicts 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