Sunteți pe pagina 1din 82

Inteligen artificial

3. Jocuri. Satisfacerea constrngerilor


Florin Leon
Universitatea Tehnic Gheorghe Asachi din Iai
Facultatea de Automatic i Calculatoare
http://florinleon.byethost24.com/curs_ia.htm
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

Jocuri. Satisfacerea constrngerilor


1.
2.
3.
4.
5.
6.
7.
8.

Tipuri de jocuri
Algorimul minimax
Retezarea alfa-beta
Jocuri nedeterministe
Formalizarea problemelor de satisfacere a constrngerilor
Backtracking
Euristici de optimizare
Concluzii

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

Jocuri. Satisfacerea constrngerilor


1.
2.
3.
4.
5.
6.
7.
8.

Tipuri de jocuri
Algorimul minimax
Retezarea alfa-beta
Jocuri nedeterministe
Formalizarea problemelor de satisfacere a constrngerilor
Backtracking
Euristici de optimizare
Concluzii

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

Cutarea i jocurile

De-a lungul timpului, jocurile care necesit


explorarea unor alternative au fost
considerate provocri pentru inteligena
uman

Dame (Mesopotamia, cc. 3000 .Hr.)


ah (India, sec. VI d.Hr.)
Go (China, sec. VI .Hr.)

IA-ul folosete deseori jocurile pentru a


proiecta i testa algoritmi
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

Jocuri

Unul din cele mai vechi subdomenii ale IA-ului


(Zuse, Shannon, Wiener, Turing, anii 1950)
Forme abstracte i pure de competiie care necesit
inteligen
Probleme dificile cu o structur iniial minim de
cunotine

Stri i aciuni uor de reprezentat


Puine cunotine necesare despre mediu

Jocurile sunt un caz particular al problemelor de cutare


Deseori au spaii de cutare foarte mari
Sunt interesante
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

Jocuri deterministe cu
informaii perfecte

ah

Dame

Go

X i 0

Othelo artificiala, http://florinleon.byethost24.com/curs_ia.htm


Florin Leon, Inteligenta

Jocuri nedeterministe cu
informaii perfecte

Table

Monopoly

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

Jocuri nedeterministe cu
informaii imperfecte

Bridge

Poker
Scrabble
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

Dificulti

Jocurile pot fi probleme de cutare foarte


dificile

Totui uor de formalizat

Gsirea soluiei optime poate fi nefezabil

O soluie care nvinge adversarul este acceptabil


O soluie inacceptabil nu numai c induce
costuri mai mari, ci provoac nfrngerea

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

Exemple: dimensiunea
spaiului de cutare

ah (drosofila IA-ului)

Factor de ramificare 35
50 de mutri pe juctor
35100 (10154) noduri
1040 noduri distincte (dimensiunea grafului de cutare)

Go

Factorul de ramificare ncepe de la 361 (tabl 19 x 19)


200 de mutri pe stare, 300 de niveluri
200300 (10690) noduri n arbore

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

10

Jocurile i cutarea

Cutarea clasic: un singur agent, ncearc


fr piedici s i ating obiectivul
Jocurile: cutare n prezena unui adversar
Reprezentarea jocurilor ca probleme de
cutare

Stri: configuraiile tablei de joc


Operatori: mutrile permise
Starea iniial: configuraia curent a tablei
Starea scop: configuraia ctigtoare

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

11

Noi tehnici necesare (I)

Spaiul de cutare este foarte mare

Nu cunoatem mutarea adversarului

Algoritmii pentru jocuri:

Caut numai pn la o anumit adncime n


arbore

Utilizeaz o funcie de evaluare la adncimea


respectiv
Propag evalurile n sus spre rdcin

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

12

Noi tehnici necesare (II)

Modalitatea de joc:

Se consider toate mutrile legale care se pot face


Fiecare mutare conduce ctre o nou configuraie (poziie)
Se evalueaz fiecare poziie rezultat i se determin care este cea
mai bun
Se face mutarea respectiv
Se ateapt mutarea adversarului i se repet algoritmul

Probleme cheie:

Reprezentarea tablei
Generarea tuturor configuraiilor urmtoare valide
Evaluarea unei poziii
Considerarea mai multor mutri n avans

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

13

Funcia de evaluare (I)

Evalueaz valoarea unei poziii

Considernd funciile g i h de la cutarea clasic,


aici conteaz numai h; g este irelevant

Este o funcie euristic i cuprinde


cunotinele expert despre domeniu

Inteligena calculatorului depinde n mare


msur de funcia de evaluare

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

14

Funcia de evaluare (II)

Presupunem c jocul este de sum zero

Putem folosi o singur funcie de evaluare pentru


ambii juctori

f(n) > 0: poziia n este bun pentru calculator


i rea pentru adversar (om)
f(n) < 0: poziia n este rea pentru calculator
i bun pentru adversar

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

15

Exemple

X i 0:

f(n) = [numrul de direcii de 3 ptrele deschise pentru


calculator] [numrul de direcii deschise pentru adversar]
Direciile sunt linii, coloane sau diagonale complete

ah (funcia lui Alan 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

16

Exemple

Majoritatea funciilor de evaluare sunt sume


ponderate ale trsturilor unei poziii:

f(n) = w1 t1(n) + w2 t2(n) + ... + wk tk(n)


Trsturi pentru ah sunt numrul de piese, plasarea pe
tabl a pieselor, ptrele controlate etc.

Deep Blue avea 8000 de trsturi n funcia de


evaluare
Pot exista combinaii neliniare de trsturi

Nebunul valoreaz mai mult spre sfritul jocului dect la


nceput
2 nebuni valoreaz mai mult dect dublul valorii unuia singur

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

17

3. Jocuri. Satisfacerea constrngerilor


1.
2.
3.
4.
5.
6.
7.
8.

Tipuri de jocuri
Algorimul minimax
Retezarea alfa-beta
Jocuri nedeterministe
Formalizarea problemelor de satisfacere a constrngerilor
Backtracking
Euristici de optimizare
Concluzii

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

18

Minimax

Restricii:

MAX

MIN

MAX

2 juctori: MAX
(calculator) i MIN
(adversar)
Determinist,
informaii perfecte

Se selecteaz o
limit de adncime
(de exemplu 2) i o
funcie de evaluare

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

19

Modul de funcionare
MAX

Alege
mutarea

MIN

2
MAX

- Se calculeaz funcia de
evaluare pentru frunze

- Se propag evaluarea n sus


- innd minimele n MIN
- innd maximele n MAX

- Se construiete arborele
pn la limita de adncime

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

20

Pseudocod
Initialize depthbound;
Minimax (board, depth) =
IF depth = depthbound
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)
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

21

Jocuri cu mai muli juctori

Funcia de evaluare este vectorial i red


utilitile tuturor juctorilor

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

22

Alianele

Alianele pot rezulta din aplicarea strategiilor


optime individuale
Cooperarea poate rezulta din urmrirea
comportamentului raional individual (egoist)

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

23

Jocuri. Satisfacerea constrngerilor


1.
2.
3.
4.
5.
6.
7.
8.

Tipuri de jocuri
Algorimul minimax
Retezarea alfa-beta
Jocuri nedeterministe
Formalizarea problemelor de satisfacere a constrngerilor
Backtracking
Euristici de optimizare
Concluzii

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

24

Retezarea alfa-beta

engl. alpha-beta pruning, elagajul alfa-beta


Optimizare general aplicat algoritmului minimax
Minimax

Retezarea alfa-beta

Creeaz mai nti ntregul arbore (pn la limita de


adncime)
Apoi realizeaz propagarea
ntreese generarea arborelui cu propagarea valorilor

Motivaie

Unele valori obinute n arbore furnizeaz informaii privind


redundana altor pri, care nu mai trebuie generate

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

25

Ideea alfa-beta

Se genereaz arborele n adncime, de la stnga la dreapta


Se propag valorile finale ale nodurilor ca estimri
iniiale pentru prinii lor

MAX

MIN

MAX

=2

- Valoarea MIN (1) este deja


mai mic dect valoarea MAX
a printelui (2)
- Valoarea MIN poate doar s
descreasc n continuare
- Valoarea MAX poate doar
s creasc
- Nu are sens s mergem
mai jos sub acest nod

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

26

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

27

Principiile alfa-beta (I)

Dac valoarea alfa este mai mare sau egal dect valoarea
beta a unui nod descendent
Atunci se oprete generarea fiilor nodului descendent

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

28

Principiile alfa-beta (II)

Dac valoarea beta este mai mic sau egal dect valoarea
alfa a unui nod descendent
Atunci se oprete generarea fiilor nodului descendent

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

29

Exemplu: minimax cu alfa-beta


4 16
8 6

5 23

= 4 15

8 2
=85

9 8

= 5 30

2 10 1 18
4 12 3 20

= 4 14 = 5 22

8 7 3 9 1 6 2 4
1 3 4 7

5 31 = 5 39

9 11 13

MAX

3 38

1 33
2 35

3 25
9 27 6 29 = 3 37

1 3 5 3 9 2 6 5 2
17 19 21 24 26

MIN

28

MAX

1 2 3 9 7 2 8 6 4
32 34 36

11 evaluri evitate

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

30

Retezare n adncime

Pentru arbori cu cel


puin 4 niveluri
min/max, retezarea
alfa-beta se aplic i
pentru niveluri mai
adnci

4
4
4

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

31

Cazul cel mai favorabil:


arbore perfect ordonat
MAX

21

21

21

24

12

27

21 20 19 24 23 22 27 26 25

12

15

18

MIN

MAX

12 11 10 15 14 13 18 17 16 3 2 1 6 5 4 9 8 327

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

Cazul cel mai favorabil


- Cnd pe fiecare nivel cel mai bun nod este primul din stnga
MAX

MIN

MAX

Doar ramurile ngroate sunt explorate

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

33

Cazul cel mai favorabil

Numrul de evaluri statice:

nes = 2 bd/2 1, dac d este par

nes = b(d+1)/2 + b(d1)/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

34

Comparaie ntre
minimax i alfa-beta
Cazul cel mai
favorabil

Graficul are scar logaritmic

Retezarea alfa-beta are tot complexitate exponenial

Cazul cel mai defavorabil

Pentru unii arbori retezarea alfa-beta nu are niciun efect


Pentru unii arbori este imposibil reordonarea pentru a permite
retezarea
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

35

Performanele retezrii alfa-beta

Alfa-beta garanteaz calcularea aceleiai valori pentru rdcin


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 cuta pe o adncime de dou ori mai mare dect minimax


Cnd 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

36

Efectul orizontului

Datorit limitei de adncime, se prefer ntrzierea


dezastrelor, dei acestea nu se previn
Soluia: continuarea euristic
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

37

Continuarea euristic

n situaii strategice cruciale (regele n pericol,


pierdere iminent de piese, pion transformat n
regin etc.), se extinde cutarea dincolo de limita de
adncime

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

38

Cutarea secundar

Uneori este util verificarea unei mutri


De exemplu, dac se face cutarea pe
6 niveluri (engl. ply) i s-a gsit cea mai
bun mutare, se poate expanda numai acea
poziie pentru nc 2 niveluri pentru a verifica
dac rmne bun n continuare

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

39

Retezarea nainte

engl. forward pruning


Un juctor uman nu ia n calcul toate mutrile
posibile, ci doar pe cele care i se par utile
Se renun la un sub-arbore

Cnd exist mai multe mutri simetrice sau


echivalente
Pentru mutri care par iraionale (care conduc n
situaii aparent defavorbile)

Numai la adncimi mari n arbore


Nerecomandate n apropierea rdcinii

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

40

Limite de timp

Chiar i cnd exist limite de adncime,


timpii pot varia mult
Soluie: cutarea iterativ n adncime

La orice moment este disponibil o mutare

Calitatea mutrii crete n timp

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

41

Efectul euristicilor: ahul

Cu minimax putem cuta pe aproximativ 5 niveluri


Un juctor mediu analizeaz 6-8 niveluri
Cu reducerea alfa-beta putem cuta pe aproximativ 10 niveluri
(reducerea alfa-beta face diferena)
Deep Blue

Cutare n medie pe 14 niveluri, maxim 40


Evaluarea a 30 de miliarde de poziii pe mutare
Baz de date cu 700.000 de jocuri
4000 de strategii de deschidere
Toate rezolvrile pentru poziiile cu 5 piese i multe pentru poziiile
cu 6 piese

Metodele euristice recente pot scdea factorul de ramificare de


la 35 la aproximativ 3

De exemplu: null move oponentul mut de 2 ori la nceput

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

42

Jocuri. Satisfacerea constrngerilor


1.
2.
3.
4.
5.
6.
7.
8.

Tipuri de jocuri
Algorimul minimax
Retezarea alfa-beta
Jocuri nedeterministe
Formalizarea problemelor de satisfacere a constrngerilor
Backtracking
Euristici de optimizare
Concluzii

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

43

Jocuri nedeterministe

Includ elemente
probabilistice

Zaruri, cri de joc

De exemplu: table
Albul a dat 6-5 i are 4
mutri 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

44

Arbori de joc cu noduri-ans

Nodurile ans (cercurile)


reprezint evenimente aleatorii
Pentru un eveniment aleatoriu cu
n rezultate posibile, fiecare nodans are n fii distinci; fiecare
are asociat o probabilitate
Pentru 2 zaruri, sunt posibile 21
de rezultate

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

45

Arbori de joc cu noduri-ans

Se folosete minimax pentru a


calcula valorile nodurilor MAX i MIN
Se folosesc valorile ateptate
pentru nodurile-ans
Pentru nodurile-ans la un
nod MAX (de exemplu C):

expectimax(C) = i(P(di) * maxvalue(i))

Pentru nodurile-ans la un nod MIN:

expectimin(X) = i(P(di) * minvalue(i))

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

46

Exemplu

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

47

Performane

Complexitate: O(bmnm)

n = numrul de posibiliti distincte (de exemplu, pentru un


zar, n = 6)

Pentru jocul de table, cutarea se poate face probabil


pe maximum 3 niveluri
Se poate aplica reducerea alfa-beta estimnd limitele
superioare i inferioare ale valorilor
Pentru aproximarea valorilor se poate folosi simularea
Monte Carlo

Valoarea strii este probabilitatea de a ctiga din acea stare

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

48

Stadiul actual al programelor


de jocuri

Dame (Chinook), Othello (Logistello): programele


sunt mai bune dect oamenii
Table (TD-Gammon): nvare cu ntrire i reele
neuronale, top 3 mondial
ah Elo rating : Hydra 2850-3000, Kasparov (cel
mai bun nregistrat): 2851

Go (Goemate, Go4++): nivel master pentru tabl


9 x 9, nceptor pentru 19 x 19
Bridge (GIB): campion mondial
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

49

Jocuri. Satisfacerea constrngerilor


1.
2.
3.
4.
5.
6.
7.
8.

Tipuri de jocuri
Algorimul minimax
Retezarea alfa-beta
Jocuri nedeterministe
Formalizarea problemelor de satisfacere a constrngerilor
Backtracking
Euristici de optimizare
Concluzii

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

50

Satisfacerea constrngerilor

engl. Constraint Satisfaction Problems (CSP)


O mulime de variabile {X1, X2, , Xn}
Fiecare variabil Xi are un domeniu Di de valori
posibile

De obicei, Di este finit

O mulime de constrngeri {C1, C2, , Cp}


Fiecare constrngere este definit pe o submulime
de variabile i arat combinaiile valide ale valorilor
acestora
Scopul: atribuirea unei valori fiecrei variabile astfel
nct toate constrngerile s fie satisfcute
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

51

Exemplu: colorarea unei hri

Variabile: WA, NT, Q, NSW, V, SA, T


Domenii: Di = { rou, verde, albastru }
Constrngeri: regiunile adiacente trebuie s aib culori diferite
De ex. WA NT, sau (WA,NT) {(rou,verde), (rou,albastru),
(verde,rou), (verde,albastru),(albastru,rou),(albastru,verde)}
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

52

Soluie

respect toate
constrngerile

Soluiile sunt atribuiri complete i consistente


De exemplu: WA = rou, NT = verde, Q = rou,
NSW = verde, V = rou, SA = albastru, T = verde
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

53

Graful constrngerilor

Probleme binare: fiecare constrngere este definit


pe 2 variabile
Graful constrngerilor: nodurile sunt variabile, arcele
sunt constrngeri

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

54

Tipuri de PSC

Variabile discrete

Domenii finite

Domenii infinite

Boolean satisfiability (NP-complet): problema determinrii


dac variabilele unei formule booleene date pot lua valori astfel
nct formula s fie adevrat
Planificarea sarcinilor de lucru (job shop scheduling):
variabilele sunt momentele de nceput/sfrit ale fiecrei sarcini

Variabile continue

Momentele de nceput/sfrit pentru observaiile telescopului


Hubble
Constrngeri liniare

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

55

Tipuri de constrngeri

Constrngerile unare implic o singur variabil

Constrngerile binare implic perechi de variabile

SA verde

SA WA

Constrngerile de nivel nalt implic 3 sau mai multe


variabile

Probleme criptaritmetice

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

56

Probleme criptaritmetice

Variabile: F T U W R O X1 X2 X3
Domenii: { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
Constrngeri: 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

57

Probleme reale

Probleme de atribuire

Cine pred ce obiect la ce clas

Problema orarului

Ce curs este predat cnd i unde

Planificarea transporturilor

Planificarea n mediul industrial

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

58

Cutarea incremental
standard

Strile sunt definite de valorile atribuite pn n prezent


Starea iniial: atribuirea vid { }
Operatori: atribuirea unei valori unei variabile neatribuite
care nu intr n conflict cu atribuirea curent

Eec dac nu exist atribuiri valide

Scop: atribuirea curent s fie complet


Aceeai procedur pentru toate problemele de satisfacere
a constrngerilor

Fiecare soluie apare la adncimea n cu n variabile

Se folosete cutarea n adncime

Calea este irelevant

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

59

Jocuri. Satisfacerea constrngerilor


1.
2.
3.
4.
5.
6.
7.
8.

Tipuri de jocuri
Algorimul minimax
Retezarea alfa-beta
Jocuri nedeterministe
Formalizarea problemelor de satisfacere a constrngerilor
Backtracking
Euristici de optimizare
Concluzii

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

60

Rezolvarea PSC

Cutare clasic: n variabile, d valori

Arbore cu n! dn frunze

Exist doar dn atribuiri complete posibile

n multe probleme, aceleai stri pot fi atinse


independent de ordinea n care se iau deciziile

Factorul de ramificare pe primul nivel este n d, pe al doilea (n - 1) d etc.

Aciuni comutative

n problemele de satisfacerea constrngerilor, strile au


o structur standard iar algoritmii pot profita de aceasta

Se pot aplica algoritmi generali, nu doar euristici specifice unei


probleme
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

61

Cutarea backtracking

Comutativitatea atribuirilor

Cutarea backtracking este:

(WA = rou apoi NT = verde) este la fel cu


(NT = verde apoi WA = rou)

Cutare n adncime 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

62

Exemplu de backtracking

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

63

Exemplu de backtracking

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

Exemplu de backtracking

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

66

Cutarea neinformat i
backtracking-ul

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

67

Jocuri. Satisfacerea constrngerilor


1.
2.
3.
4.
5.
6.
7.
8.

Tipuri de jocuri
Algorimul minimax
Retezarea alfa-beta
Jocuri nedeterministe
Formalizarea problemelor de satisfacere a constrngerilor
Backtracking
Euristici de optimizare
Concluzii

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

68

Creterea eficienei
algoritmului backtracking

Metodele de optimizare dau creteri


spectaculoase de vitez

Ce variabil s fie atribuit n pasul urmtor?

n ce ordine s se ncerce valorile?

Se poate detecta eecul mai devreme?

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

69

Cea mai constrngtoare


variabil

Se alege variabila cu cele mai multe


constrngeri asupra variabilelor rmase

Util pentru decizii n caz de egalitate, de


exemplu n starea iniial
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

70

Cea mai constrns variabil

Se alege variabila cu cele mai puine valori


permise

Se mai numete euristica celor mai puine


valori rmase
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

71

Cea mai puin constrngtoare


valoare

Pentru o variabil se alege valoarea care


elimin cele mai puine valori n variabilele
rmase
Permite 1 valoare pentru SA

Permite 0 valori pentru SA

Combinarea acestor euristici face posibil


rezolvarea problemei reginelor cu n 1000
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

72

Verificarea nainte

engl. forward checking


La nceput, pentru fiecare variabil se
memoreaz mulimea curent de valori
permise
Cnd se atribuie o valoare n procesul de
cutare, se actualizeaz mulimile de valori
permise pentru toate variabilele
Dac o mulime devine vid, se revine
(se face backtracking)
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

73

Backtracking i
Verificarea nainte

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

74

Propagarea constrngerilor

engl. constraint propagation


Verificarea nainte calculeaz domeniul fiecrei
variabile independent la nceput i actualizeaz un
domeniu numai cnd se fac atribuiri ce influeneaz
direct variabila respectiv
Propagarea constrngerilor duce verificarea mai
departe:

Cnd se terge o valoare din domeniul variabilei X, se


verific toate variabilele conectate la X
Dac aceste variabile se modific, se terg toate valorile
inconsistente conectate la ele .a.m.d.

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

75

Propagarea constrngerilor

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

76

Verificarea nainte i
Propagarea constrngerilor

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

77

Propagarea constrngerilor
cu euristici

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

78

Complexitatea de timp

Trebuie realizat un compromis ntre calculele


necesare rezolvrii problemei propriu-zise i
calculele necesitate de euristici
Propagarea constrngerilor reduce foarte mult
factorul de ramificare (uneori rezolvarea este aproape
liniar), ns calculele suplimentare sunt laborioase
Pentru majoritatea problemelor uzuale, este
suficient verificarea nainte cu euristicile de
ordonare

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

79

Min-Conflicts

Este o metod de cutare local


Poate rezolva problema reginelor cu 1 milion de
regine n aproximativ 50 de pai

A redus timpul de planificare al telescopului Hubble


pentru o sptmn de observaii de la 3 sptmni
la 10 minute
Funcioneaz bine mai ales cnd soluiile sunt dens
distribuite n spaiul strilor

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

80

Min-Conflicts

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

81

Concluzii

Jocurile ilustreaz faptul c perfeciunea este


deseori de neatins, ns aproximrile sunt
suficiente

Nu avem nevoie ntotdeauna de soluii optime din punct


de vedere teoretic, ci de soluii prin care ctigm

Tehnicile de satisfacere a constrngerilor sunt


utile cnd:

Problema poate fi exprimat printr-o mulime de


variabile cu constrngeri asupra valorilor lor
Constrngerile sunt relativ simple (de exemplu binare)
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm

82

S-ar putea să vă placă și