You are on page 1of 107

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.html

v2022.1
Jocuri. Satisfacerea constrângerilor
1. Jocuri
1.1. Tipuri de jocuri
1.2. Algorimul minimax
1.3. Retezarea alfa-beta
1.4. Căutarea pe arbori Monte Carlo
2. Probleme de satisfacere a constrângerilor
2.1. Formalizare
2.2. Algoritmul backtracking
2.3. Euristici de optimizare
3. Concluzii

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


Jocuri. Satisfacerea constrângerilor
1. Jocuri
1.1. Tipuri de jocuri
1.2. Algorimul minimax
1.3. Retezarea alfa-beta
1.4. Căutarea pe arbori Monte Carlo
2. Probleme de satisfacere a constrângerilor
2.1. Formalizare
2.2. Algoritmul backtracking
2.3. Euristici de optimizare
3. Concluzii

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


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.html 4


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.html 5


Jocuri deterministe cu
informații perfecte

Șah Dame Go

Florin Leon, Inteligenta


X și 0
Otheloartificiala, http://florinleon.byethost24.com/curs_ia.html 6
Jocuri nedeterministe cu
informații perfecte

Table Monopoly

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


Jocuri nedeterministe cu
informații imperfecte

Bridge

Poker

Scrabble
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.html 8
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
 Se estimează că numărul de atomi din universul observabil
este 1082

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


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/acțiuni: 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.html 10


Metode de rezolvare pentru jocuri
 Modalitatea de joc:
 Se consideră toate mutările legale care se pot face
 Fiecare mutare conduce către o nouă configurație (set de poziții,
aspect al tablei de joc)
 Se evaluează fiecare configuraț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 de joc
 Generarea tuturor configurațiilor următoare valide
 Evaluarea unei configurații
 Considerarea mai multor mutări în avans
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.html 11
Funcția de evaluare
 Evaluează valoarea unei configuraț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.html 12


Funcția de evaluare
 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.html 13


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.html 14


Exemple: funcții de evaluare
 Majoritatea funcțiilor de evaluare sunt sume
ponderate ale trăsăturilor unei configuraț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.html 15


Jocuri. Satisfacerea constrângerilor
1. Jocuri
1.1. Tipuri de jocuri
1.2. Algorimul minimax
1.3. Retezarea alfa-beta
1.4. Căutarea pe arbori Monte Carlo
2. Probleme de satisfacere a constrângerilor
2.1. Formalizare
2.2. Algoritmul backtracking
2.3. Euristici de optimizare
3. Concluzii

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


Minimax
 Doi jucători:
 MAX (calculator)
MAX  MIN (adversar)
 Joc determinist cu
informații perfecte
MIN  Se selectează o limită
de adâncime (de ex. 2)
și o funcție de evaluare
MAX
2 5 3 1 4 4 3

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


Modul de funcționare

- Se construiește arborele
MAX Alege până la limita de adâncime
3 mutarea
- Se calculează funcția de
evaluare pentru frunze
MIN
2 1 3 - Se propagă evaluarea în sus
- selectând minimele în MIN
- selectând maximele în MAX
MAX
2 5 3 1 4 4 3

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


Structura de date

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


Pseudocod

20
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.html
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.html 21


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.html 22


Jocuri. Satisfacerea constrângerilor
1. Jocuri
1.1. Tipuri de jocuri
1.2. Algorimul minimax
1.3. Retezarea alfa-beta
1.4. Căutarea pe arbori Monte Carlo
2. Probleme de satisfacere a constrângerilor
2.1. Formalizare
2.2. Algoritmul backtracking
2.3. Euristici de optimizare
3. Concluzii

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


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
 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.html 24


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

MAX 2 - Valoarea MIN (1) este deja


mai mică decât valoarea MAX
a părintelui (2)
- Valoarea MIN poate doar să
descrească în continuare
MIN 2 =2 1
- Valoarea MAX poate doar
să crească
- Nu are sens să mergem
mai jos sub acest nod
MAX
2 5 1
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.html 25
Terminologie
 Valorile (temporare) din nodurile MAX sunt valori alfa
 Valorile (temporare) din nodurile MIN sunt valori beta

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


Regulile retezării alfa-beta
 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.html 27


Regulile retezării alfa-beta
 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.html 28


Exemplu: minimax cu alfa-beta
 4 16  5 31 = 5 39
MAX
8 6  5 23
= 4 15 = 5 30  3 38
MIN

8 2  2 10  1 18  1 33
 4 12  3 20  3 25  2 35
=85 9 8  9 27  6 29 = 3 37
= 4 14 = 5 22
MAX

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
1 3 4 7 9 11 13 17 19 21 24 26 28 32 34 36
29
11 evaluări evitate
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.html
Pseudocod

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


31
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.html
32
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.html
Retezare în adâncime
 Pentru arbori cu cel 4
puțin 4 niveluri
min/max, retezarea 4
alfa-beta se aplică și
pentru niveluri mai 4
adânci
4 2

4 2

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


Cazul cel mai favorabil:
arbore perfect ordonat
21 MAX

21 12 3 MIN

21 24 27 12 15 18 3 6 9
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 347
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.html
Cazul cel mai favorabil
- Când pe fiecare nivel cel mai bun nod este primul din stânga

MAX

MIN

MAX

Doar ramurile îngroșate sunt explorate


Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.html 35
Reordonarea
 De exemplu, pentru șah:
 Mutările cele mai bune descoperite în căutarea
anterioară
 Capturile
 Atacurile
 Mutările înainte
 Mutările înapoi

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


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.html 37


Comparație între
minimax și alfa-beta
 Cazul cel mai
favorabil

 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
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.html 38
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.html 39


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 (de exemplu,
pierderea unui cal)
 Soluția: continuarea euristică
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.html 40
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.html 41


Căutarea secundară
 Uneori, este utilă verificarea unei mutări
 De exemplu, dacă se face căutarea pe 6 niveluri
(plies) și se găsește 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.html 42


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.html 43


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.html 44


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 două ori la început și
se face o căutare alfa-beta pe un număr redus de niveluri

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


Jocuri nedeterministe
 Arborii includ noduri-șansă (cercurile
din figură), care 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
 De exemplu, pentru 2 zaruri sunt
posibile 21 de rezultate

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


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.html 47


Exemplu

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


Jocuri. Satisfacerea constrângerilor
1. Jocuri
1.1. Tipuri de jocuri
1.2. Algorimul minimax
1.3. Retezarea alfa-beta
1.4. Căutarea pe arbori Monte Carlo
2. Probleme de satisfacere a constrângerilor
2.1. Formalizare
2.2. Algoritmul backtracking
2.3. Euristici de optimizare
3. Concluzii

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


Căutarea pe arbori Monte Carlo
 Căutarea pe arbori Monte Carlo (Monte Carlo Tree
Search, MCTS) este o metodă stohastică de căutare
a soluțiilor în jocuri cu factori mari de ramificare
 A fost folosită cu succes de Google DeepMind pentru
AlphaGo, în combinație cu rețele neuronale profunde
și metode de învățare cu întărire

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


Faza 1. Selecția
 Culorile nodurilor din figură reprezintă cei
doi jucători
 Se presupune că algoritmul s-a aplicat
deja de câteva ori
 Fiecare nod conține numărul de victorii
supra numărul de jocuri în care s-a trecut
prin el
 Mutările selectate de algoritmul UCB1
(vezi slide-ul următor) sunt marcate cu
linii îngroșate
 Selecția se aplică până în nodurile în care
nu există statistici pentru toți copiii

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


Selecția UCB1
 engl. “Upper Confidence Bound”
 Din nodul curent, se selectează acțiunea (nodul fiu) i care
maximizează următoarea expresie:

 unde: wi este numărul de victorii în fiul i, ni este numărul de


simulări în fiul i, iar n este numărul de simulări în nodul curent
 Primul termen reprezintă exploatarea, al doilea explorarea
 MCTS cu selecția acțiunii UCB1 descoperă secvența optimă de
mutări
 În loc de 2, poate fi altă valoare; astfel se ponderează
explorarea și exploatarea
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.html 52
Exemplu: selecția UCB1

 Nodul 2/3:

 Nodul 1/3:

 Nodul 0/2:

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


Noduri terminale
 Selecția poate alege un nod care reprezintă deja o
stare terminală
 Dacă starea reprezintă o înfrângere, nodului i se
poate da o valoare foarte mică (sau -∞), pentru a nu
mai fi ales data viitoare
 Dacă starea reprezintă o victorie, nodului i se poate
da o valoare foarte mare (sau +∞), iar părintelui său
imediat o valoare foarte mică (sau -∞)

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


Faza 2. Expandarea
 Expandarea se aplică atunci când nu se
mai poate aplica selecția
 Este selectat în mod aleatoriu un nod
frunză încă nevizitat și se adaugă câte o
nouă înregistrare de statistici (0/0) pentru
fiecare fiu
 Nodurile cu 0/0 vor fi selectate când se
va ajunge la ele în viitor, deoarece se
consideră că au valoarea UCB1 infinită

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


Faza 3. Simularea
 După expandare, începe simularea Monte
Carlo, în care se aleg mutări în mod
aleatoriu până se ajunge într-o stare
terminală (de exemplu, victorie sau
înfrângere)
 O astfel de simulare se mai numește
rollout sau playout
 Uneori, în locul căutării pur aleatorii, se
pot folosi euristici de ponderare care să
aleagă mutări considerate mai bune

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


Faza 4. Actualizarea
(sau retro-propagarea)
 După terminarea simulării, pentru toate
pozițiile vizitate se incrementează
numărul de jocuri și, dacă e cazul,
numărul de victorii
 Victoria se incrementează numai la
nodurile de pe nivelurile jucătorului
câștigător
 Nu se actualizează nodurile parcurse în
jos în simulare, ci doar cele pornind în sus
de la nodul selectat (în exemplul
considerat, noul nod expandat și toți
predecesorii lui)

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


Algoritmul MCTS

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


Alegerea mutării
 După aplicarea algoritmului (în mod repetat), se
alege mutarea cu cel mai mare număr de vizite
(ni în wi / ni), deoarece valoarea sa este cel mai bine
estimată
 Întrucât a fost explorată cel mai mult, și valoarea sa
propriu-zisă (wi / ni) ar trebui să fie mare

 După ce calculatorul și adversarul (omul) fac câte o


mutare, la căutarea următoare se pot refolosi valorile
din subarborele corespunzător ca valori inițiale

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


MCTS vs. minimax
 MCTS nu are nevoie de euristici
 Căutarea MCTS este asimetrică: explorarea arborelui
converge către mutările mai bune
 MCTS este un algoritm anytime: la orice moment de
timp, poate produce o estimare a mutării optime

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


Stadiul actual al programelor
de jocuri
 Table (TD-Gammon): învățare cu întărire și rețele neuronale, top 3
mondial (1992)
 Dame (Chinook, 1995), Othello (Logistello, 1997): programele sunt mai
bune decât oamenii
 Bridge (GIB): campion mondial (1998)
 Go (AlphaGo): l-a învins pe Ke Jie, cel mai bun jucător de go din lume
(2017), variante: AlphaGo Zero, Alpha Zero
 Poker (Libratus): a învins patru dintre cei mai buni jucători din lume
(2017)
 StarCraft (AlphaStar): a învins unul din cei mai buni jucători
profesioniști (2019)
 Șah (Stockfish 15): 3600+ puncte Elo (2022), Magnus Carlsen, cel mai
mare punctaj uman: 2882

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


Jocuri. Satisfacerea constrângerilor
1. Jocuri
1.1. Tipuri de jocuri
1.2. Algorimul minimax
1.3. Retezarea alfa-beta
1.4. Căutarea pe arbori Monte Carlo
2. Probleme de satisfacere a constrângerilor (restricțiilor)
2.1. Formalizare
2.2. Algoritmul backtracking
2.3. Euristici de optimizare
3. Concluzii

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


Satisfacerea constrângerilor
(sau restricțiilor)
 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.html 63


Exemplu: colorarea unei hărți

 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)}
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.html 64
Soluție

respectă toate
constrângerile

 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

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


Tipuri de probleme
 Variabile discrete
 Domenii finite
 Realizabilitatea booleană (Boolean satisfiability, 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 (job shop scheduling): variabilele
sunt momentele de început/sfârșit ale fiecărei sarcini
 Variabile continue
 De exemplu, momentele de început și sfârșit pentru
observațiile telescopului Hubble
 Constrângeri liniare

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


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.html 67


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.html 68


Jocuri. Satisfacerea constrângerilor
1. Jocuri
1.1. Tipuri de jocuri
1.2. Algorimul minimax
1.3. Retezarea alfa-beta
1.4. Căutarea pe arbori Monte Carlo
2. Probleme de satisfacere a constrângerilor
2.1. Formalizare
2.2. Algoritmul backtracking
2.3. Euristici de optimizare
3. Concluzii

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


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.html 70
Algoritmul backtracking
 Comutativitatea atribuirilor
 (WA = roșu apoi NT = verde) este la fel cu (NT = verde apoi WA = roșu)
 Algoritmul backtracking se bazează pe:
 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.html 71


Structuri de date

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


Structuri de date

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


Pseudocod

74
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.html
Căutarea neinformată vs.
backtracking

vezi materialele demonstrative 75


Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.html
75
Jocuri. Satisfacerea constrângerilor
1. Jocuri
1.1. Tipuri de jocuri
1.2. Algorimul minimax
1.3. Retezarea alfa-beta
1.4. Căutarea pe arbori Monte Carlo
2. Probleme de satisfacere a constrângerilor
2.1. Formalizare
2.2. Algoritmul backtracking
2.3. Euristici de optimizare
3. Concluzii

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


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.html 77


Cea mai constrângătoare
variabilă (E1)
 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.html 78


Pseudocod

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


Cea mai constrânsă variabilă
(E2)
 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.html 80


Pseudocod

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


Cea mai puțin constrângătoare
valoare (E3)
 Pentru o variabilă, se alege valoarea care elimină cele
mai puține valori în variabilele rămase

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.html 82
Pseudocod

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


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.html 84


Backtracking vs.
verificarea înainte

vezi materialele demonstrative 85


Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.html
85
Exemplu: 4 regine
X1 X2
1 2 3 4 {1,2,3,4} {1,2,3,4}
1
2
3
4
X3 X4
{1,2,3,4} {1,2,3,4}

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


Exemplu: 4 regine
X1 X2
1 2 3 4 {1,2,3,4} {1,2,3,4}
1
2
3
4
X3 X4
{1,2,3,4} {1,2,3,4}

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


Exemplu: 4 regine
X1 X2
1 2 3 4 {1,2,3,4} { , ,3,4}
1
2
3
4
X3 X4
{ ,2, ,4} { ,2,3, }

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


Exemplu: 4 regine
X1 X2
1 2 3 4 {1,2,3,4} { , ,3,4}
1
2
3
4
X3 X4
{ ,2, ,4} { ,2,3, }

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


Exemplu: 4 regine
X1 X2
1 2 3 4 {1,2,3,4} { , ,3,4}
1
2
3
4
X3 X4
{ , , , } { ,2, , }

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


Exemplu: 4 regine
X1 X2
1 2 3 4 {1,2,3,4} { , , ,4}
1
2
3
4
X3 X4
{ ,2, ,4} { ,2,3, }

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


Exemplu: 4 regine
X1 X2
1 2 3 4 {1,2,3,4} { , , ,4}
1
2
3
4
X3 X4
{ ,2, , } { , ,3, }

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


Exemplu: 4 regine
X1 X2
1 2 3 4 {1,2,3,4} { , , ,4}
1
2
3
4
X3 X4
{ ,2, , } { , ,3, }

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


Exemplu: 4 regine
X1 X2
1 2 3 4 {1,2,3,4} { , , ,4}
1
2
3
4
X3 X4
{ ,2, , } { , , , }

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


Exemplu: 4 regine
X1 X2
1 2 3 4 { ,2,3,4} {1,2,3,4}
1
2
3
4
X3 X4
{1,2,3,4} {1,2,3,4}

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


Exemplu: 4 regine
X1 X2
1 2 3 4 { ,2,3,4} { , , ,4}
1
2
3
4
X3 X4
{1, ,3, } {1, ,3,4}

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


Exemplu: 4 regine
X1 X2
1 2 3 4 { ,2,3,4} { , , ,4}
1
2
3
4
X3 X4
{1, ,3, } {1, ,3,4}

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


Exemplu: 4 regine
X1 X2
1 2 3 4 { ,2,3,4} { , , ,4}
1
2
3
4
X3 X4
{1, , , } {1, ,3, }

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


Exemplu: 4 regine
X1 X2
1 2 3 4 { ,2,3,4} { , , ,4}
1
2
3
4
X3 X4
{1, , , } {1, ,3, }

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


Exemplu: 4 regine
X1 X2
1 2 3 4 { ,2,3,4} { , , ,4}
1
2
3
4
X3 X4
{1, , , } { , ,3, }

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


Exemplu: 4 regine
X1 X2
1 2 3 4 { ,2,3,4} { , , ,4}
1
2
3
4
X3 X4
{1, , , } { , ,3, }

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


Pseudocod

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


103
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.html
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
mai complexe
 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.html 104


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.html 105


Min-Conflicts

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


Concluzii
 Minimax este un algoritm recursiv care determină mutarea
optimă a unui jucător, dată fiind o anumită adâncime de
căutare în arborele jocului
 Retezarea alfa-beta este o optimizare des utilizată pentru
algoritmul minimax
 Verificarea înainte este un algoritm pentru problemele de
satisfacere a constrângerilor mai eficient decât algoritmul
backtracking, dar presupune un efort de calcul mai mare
 Există euristici pentru ordonarea variabilelor și valorilor,
care pot accelera căutarea

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

You might also like