Sunteți pe pagina 1din 73

Inteligen artificial

3. Jocuri. Satisfacerea constrngerilor


Florin Leon
Universitatea Tehnic Gh. Asachi Iai Facultatea de Automatic i Calculatoare http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm
Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

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://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

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://eureka.cs.tuiasi.ro/~fleon/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 par s necesite 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 Jocurile sunt interesante
Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

Jocurile i IA-ul
Tradiional, jocurile erau vzute formal, ca o extensie a algoritmilor de cutare Recent, tehnicile de IA au devenit mai importante n jocurile pe calculator
Personaje controlate de calculator Scenarii mai sofisticare Medii mai complexe Aspect general superior
Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

Jocuri deterministe cu informaii perfecte

ah

Dame

Go

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

Othelo

X i 0

Jocuri nedeterministe cu informaii perfecte

Table

Monopoly
7

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

Jocuri nedeterministe cu informaii imperfecte

Bridge

Poker Scrabble
Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

Jocurile i cutarea
Cutarea clasic: un singur agent, ncearc fr piedici s i ating obiectivul Jocurile: cutare n prezena unui adversar Reprezentarea jocurilor ca probleme de cutare
Stri: configuraiile tablei de joc Operatori: mutrile permise Starea iniial: configuraia curent a tablei Starea scop: configuraia ctigtoare
9

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/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 ne-acceptabil nu numai c induce costuri mai mari, dar provoac nfrngerea

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

10

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) 15 mutri posibile pe stare, 80 de niveluri 15 80 (1094) noduri n arbore 200 de mutri pe stare, 300 de niveluri 200300 (10 690) noduri n arbore
11

Go

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

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://eureka.cs.tuiasi.ro/~fleon/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://eureka.cs.tuiasi.ro/~fleon/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

Funcia de evaluare 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://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

14

Funcia de evaluare (II)


Presupunem c jocul este de sum 0
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 f(n) 0: poziia n este neutr
Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

15

Exemple
X i 0: ah (funcia lui Alan Turing):
f(n) = [numrul de direcii de 3 ptrele deschise pentru calculator] - [numrul de direcii deschise pentru adversar] Direciile sunt linii, coloane sau diagonale complete f(n) = w(n)/b(n) w(n) = suma punctelor pieselor albe; b(n) - negre

Majoritatea funciilor de evaluare sunt sume ponderate ale trsturilor unei poziii:
f(n) = w1* t1(n) + w2* t2(n) + ... + wk* tk(n) Trsturi pentru ah sunt numrul de piese, plasarea pe tabl a pieselor, ptrele controlate etc. 1 pion = 1 punct; 1 nebun = 3 puncte etc.

Deep Blue avea 8000 de trsturi n funcia de evaluare

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

16

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://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

17

Minimax
Restricii:
MAX

MIN

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

MAX

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


18

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

Modul de funcionare
MAX Alege mutarea

- Se construiete arborele pn la limita de adncime - Se calculeaz funcia de evaluare pentru frunze - Se propag evaluarea n sus - innd minimele n MIN - innd maximele n MAX

MIN

MAX

3
19

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

Pseudocod
Initialize depthbound; Minimax (board, depth) = IF depth = depthbound THEN return static_evaluation(board); ELSE IF maximizing_level(depth) THEN FOR EACH child c of board compute Minimax(c, depth+1); return maximum over all children; ELSE IF minimizing_level(depth) THEN FOR EACH child c of board compute Minimax(c, depth+1); return minimum over all children;

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

Apel: Minimax(current_board, 0)

20

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://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

21

Retezarea alfa-beta
Alpha-Beta Pruning, Elagajul alfa-beta Optimizare general aplicat algoritmului minimax Minimax
Creeaz mai nti ntregul arbore (pn la limita de adncime) Apoi realizeaz propagarea

Retezarea alfa-beta
ntreese generarea arborelui cu propagarea valorilor

Motivaie
Unele valori obinute n arbore furnizeaz informaii privind redundana altor pri care nu mai trebuie generate
22

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

Ideea alfa-beta
Se genereaz arborele n adncime, de la stnga la dreapta Se propag valorile finale ale nodurilor ca estimri iniiale pentru prinii lor
MAX

MIN

=2

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

MAX

1
23

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

Terminologie
Valorile (temporare) n nodurile MAX sunt valori ALFA Valorile (temporare) n nodurile MIN sunt valori BETA

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

24

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://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

25

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://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

26

Exemplu: minimax cu alfa-beta


4 16 8 6
= 4 15

5 31 = 5 39 3 38

MAX

5 23
= 5 30

MIN

8 2
=85

9 8

2 10 1 18 4 12 3 20
= 4 14 = 5 22

3 25 9 27 6 29 = 3 37

1 33 2 35
MAX

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

9 11 13

17 19 21 24 26

1 3 5 3 9 2 6 5 2
28

32 34 36

1 2 3 9 7 2 8 6 4
27

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

11 evaluri evitate

Retezare n adncime
Pentru arbori cu cel puin 4 niveluri Min/Max, regulile Alfa - Beta se aplic i pentru niveluri mai adnci
4 4 4 4 2

2
28

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

Cazul cel mai favorabil: arbore perfect ordonat


21

MAX
3

21

12

MIN

21

24

27

12

15

18

MAX

21 20 19 24 23 22 27 26 25

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

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

Cazul cel mai favorabil


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

MIN

MAX

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

Doar ramurile ngroate sunt explorate

30

Profitul
Pentru cazul cel mai favorabil alfa-beta
Numrul de evaluri statice =
2 bd/2 - 1, dac d este par b(d+1)/2 + b(d-1)/2 - 1, dac d este impar

n exemplul anterior:
d=3, b=3 9+3-1=11

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

31

Comparaie: minimax alpha-beta


Cazul cel mai favorabil

Graficul are scar logaritmic


Alfa-beta are tot complexitate exponenial

Cazul cel mai defavorabil


Pentru unii arbori alfa-beta nu are niciun efect Pentru unii arbori este imposibil reordonarea pentru a permite retezarea
Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

32

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 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://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

33

Efectul orizontului

Datorit limitei de adncime, se prefer ntrzierea dezastrelor, dei nu se previn Soluia: continuarea euristic
Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

34

Continuarea euristic
n situaii strategice cruciale (regele n pericol, pierdere iminent de piese, pion transformast n regin etc.), se extinde cutarea dincolo de limita de adncime

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

35

Cutarea secundar
Uneori este util verificarea unei mutri De ex., dac se face cutarea pe 6 niveluri (engl. ply) i am gsit cea mai bun mutare, putem expanda numai acea poziie pentru nc 2 niveluri pentru a verifica dac rmne bun n continuare
Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

36

Limite de timp
Chiar i cnd avem limite de adncime, timpii pot varia mult Soluie: cutarea iterativ n adncime
La orice moment este disponibil o mutare Calitatea mutrii crete n timp

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

37

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://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

38

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-10, 5-11, 5-11 19-24 apoi 10-16 apoi 11-16
39

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

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://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

40

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 ex. 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://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

41

Exemplu
A1 este cea mai bun mutare 2 rezultate cu prob. {0.9, 0.1} A2 este cea mai bun mutare

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

42

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://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

43

Satisfacerea constrngerilor
Constraint Satisfaction Problems (CSP) n multe probleme, aceleai stri pot fi atinse independent de ordinea n care se iau deciziile (aciuni comutative) n problemele de satisfacerea constrngerilor (PSC), strile au o structur standard iar algoritmii pot profita de aceasta
Se pot aplica algoritmi generali, nu doar euristici specifice unei probleme
Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

44

Formalizarea unei PSC


O mulime de variabile {X1, X2, , Xn} Fiecare variabil Xi are un domeniu Di de valori posibile 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
De obicei, Di este finit

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

45

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://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

46

Soluie

Soluiile sunt atribuiri complete i consistente De ex. WA = rou, NT = verde, Q = rou, NSW = verde, V = rou, SA = albastru, T = verde
Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

47

Graful constrngerilor
PSC binare: fiecare constrngere este definit pe 2 variabile Graful constrngerilor: nodurile sunt variabile, arcele sunt constrngeri

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

48

Tipuri de PSC
Variabile discrete
Domenii finite
De ex. Boolean satisfiability (NP-complet)

Domenii infinite
De ex. planificarea sarcinilor de lucru, variabilele sunt momentele de nceput/sfrit al fiecrei sarcini

Variabile continue
De ex. momentele de nceput/sfrit pentru observaiile telescopului Hubble Constrngeri liniare

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

49

Tipuri de constrngeri
Constrngerile unare implic o singur variabil
De ex. SA verde

Constrangerile binare implic perechi de variabile


De ex. SA WA

Constrngerile de nivel nalt implic 3 sau mai multe variabile


De ex. probleme criptaritmetice

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

50

Probleme criptaritmetice

Variabile: F T U W R O X1 X2 X3 Domenii: {0,1,2,3,4,5,6,7,8,9} Constrngeri: Alldiff (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://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

51

Probleme reale
Probleme de atribuire
De ex. cine pred ce curs la ce clas

Problema orarului
De ex. ce curs este predat cnd i unde

Planificarea transporturilor Planificarea n mediul industrial

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

52

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

Scopul: Atribuirea curent este complet Aceeai procedur pentru toate PSC

Fiecare soluie apare la adncimea n cu n variabile Se folosete cutarea n adncime Calea este irelevant
53

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

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://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

54

Cutarea backtracking
Atribuirile sunt comutative
(WA = rou apoi NT = verde) este la fel cu (NT = verde apoi WA = rou)

Cutarea backtracking este:


Cutarea n adncime cu Atribuirea unei singure variabile ntr-un nod

Poate rezolva problema reginelor cu n 25

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

55

Exemplu de backtracking

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

56

Exemplu de backtracking

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

57

Exemplu de backtracking

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

58

Exemplu de backtracking

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

59

Cutarea neinformat i backtracking-ul

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

60

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://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

61

Creterea eficienei backtracking-ului


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://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

62

Cea mai constrns variabil


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://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

63

Cea mai constrngtoare variabil


Alegere la egalitate ntre cele mai constrnse variabile Cea mai constrngtoare variabil:
Se alege variabila cu cele mai multe constrngeri pe variabilele rmase

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

64

Cea mai puin constrngtoare valoare


Pentru o variabil:
Se alege valoarea care elimin cele mai puine valori n variabilele rmase

Combinarea acestor euristici face posibil rezolvarea problemei reginelor cu n = 1000 65


Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

Verificarea nainte
Forward Checking La nceput, pentru fiecare variabil se memoreaz mulimea curent de valori permise Cnd se atribuie o valoare n procesul de cutare, se actualizeaz mulimile de valori permise pentru toate variabilele Dac o mulime devine vid, se face backracking
Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

66

Backtracking i Verificarea nainte

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

67

Propagarea constrngerilor
Constraint Propagation Verificarea nainte calculeaz domeniul fiecrei variabile independent la nceput, i actualizeaz aceste domenii numai cnd se fac atribuiri ce influeneaz direct variabila curent Propagarea constrngerilor duce verificarea mai departe:
Cnd se terge o valoare din domeniul variabilei X, se verific toate variabilele conectate la X Dac aceste variabile se modific, se terg toate valorile inconsistente conectate la ele .a.m.d.

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

68

Propagarea constrngerilor

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

69

Verificarea nainte i Propagarea constrngerilor

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

70

Propagarea constrngerilor cu euristici

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

71

Min-Conflicts

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

72

Concluzii
Jocurile ilustreaz faptul c perfeciunea este deseori de neatins, aproximrile sunt suficiente Tehnicile de satisfacere a constrngerilor sunt utile cnd:
Problema poate fi exprimat printr-o mulime de variabile cu constrngeri asupra valorilor lor Constrngerile sunt relativ simple (de ex. binare)

Florin Leon, Inteligenta artificiala, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm

73