Sunteți pe pagina 1din 56

UNIVERSITATEA BABE-BOLYAI CLUJ-NAPOCA

FACULTATEA DE MATEMATIC I INFORMATIC





LUCRARE DE DIPLOM
Teoria Jocurilor: nvare versus Minimax





Conductor tiinific
Conf. Dr. Gabriela erban
Absolvent
Budurlean Adrian


2008
2

Cuprins

1. Inteligena Artificial...........................................................................................................6
1.1 Ce este Inteligena Artificial? ......................................................................................6
1.2 Comportamentul uman. Testul Turing ...........................................................................7
1.3 Istoric al Inteligenei Artificiale .....................................................................................9
1.3.1 Antichitatea ................................................................................................................9
1.3.2 Renaterea ................................................................................................................ 10
1.3.3 Primele calculatoare .................................................................................................. 10
1.3.4 Reelele neuronale .................................................................................................... 11
1.3.5 Naterea Inteligenei Artificiale ............................................................................. 11
1.3.6 Anii 60 ................................................................................................................... 12
1.3.7 Generaia a treia de calculatoare ................................................................................ 12
1.3.8 Microprocesoarele. ntoarcerea reelelor neuronale ................................................... 13
1.3.9 Progrese recente ........................................................................................................ 13
1.4 Prezentul n Inteligena Artificial ............................................................................... 14
2. Teoria jocurilor.................................................................................................................. 15
2.1 Jocurile i Inteligena Artificial.................................................................................. 15
2.2 Jocuri n forma extins i jocuri n forma normalizat ................................................. 15
2.3 Clasificarea jocurilor ................................................................................................... 17
2.4 Strategie i funcie de ctig ........................................................................................ 18
2.4.1 Echilibrul Nash ......................................................................................................... 18
2.5 Evoluia jocurilor ........................................................................................................ 19
3. Metoda Minimax ............................................................................................................... 21
3.1 Jocul ca problem de cutare ....................................................................................... 21
3.1.1 Componentele unei probleme de cutare ................................................................... 21
3.2 Algoritmul Minimax ................................................................................................... 22
3.2.1 Tic-Tac-Toe .............................................................................................................. 23
3

3.2.2 Paii algoritmului Minimax ....................................................................................... 24
3.2.3 Proprieti ale algoritmului Minimax ........................................................................ 25
3.2.4 Funcia de evaluare ................................................................................................... 25
3.3 Minimax cu tietur alfa-beta ...................................................................................... 26
3.3.1 Descrierea algoritmului ............................................................................................. 27
3.3.2 Proprieti ................................................................................................................. 30
3.4 Alternative la Minimax ............................................................................................... 30
4. nvarea prin ntrire ........................................................................................................ 32
4.1 Introducere .................................................................................................................. 32
4.2 Concepte generale ....................................................................................................... 32
4.2.1 nvarea bazat pe Diferene Temporare .................................................................. 34
4.3 TD-Gammon ............................................................................................................... 34
4.3.1 Prezentarea jocului de table....................................................................................... 35
4.3.2 Modul de nvare ..................................................................................................... 36
4.3.3 Rezultate ................................................................................................................... 38
4.4 Concluzie .................................................................................................................... 39
5. Aplicaia X O .............................................................................................................. 41
5.1 Analiza ....................................................................................................................... 41
5.1.1 Importana subiectului............................................................................................... 41
5.1.2 Jocul Tic-Tac-Toe ..................................................................................................... 41
5.1.2 Tic-Tac-Toe, o alt abordare ..................................................................................... 43
5.1.3 Reprezentarea nvrii.............................................................................................. 46
5.2 Implementarea ............................................................................................................ 47
5.2.1 Mediul de programare ............................................................................................... 47
5.2.2 Minimax ................................................................................................................... 48
5.2.3 nvare prin ntrire i reea neuronal ..................................................................... 49
5.3 Manual de utilizare ..................................................................................................... 50
6. Concluzii ........................................................................................................................... 54
7. Bibliografie ....................................................................................................................... 55
4

INTRODUCERE

Jocurile sunt fascinante, iar scrierea de programe care s le joace este chiar i mai
fascinant. Se poate spune c teoria jocurilor este pentru Inteligena Artificial cum este Grand
Prix-ul pentru constructorii de motoare.
n lucrarea de fa ne-am propus s facem o prezentare a nvrii prin ntrire ca
alternativ la abordarea tradiional a rezolvrii jocurilor prin metoda Minimax.
Minimax este considerat la scar larg ca fiind algoritmul de baz n rezolvarea jocurilor,
ns vom vedea c are o sumedenie de deficiene. n primul rnd complexitatea lui este una
exponenial ceea ce-l face greu de adaptat unui joc cu multe stri cum ar fi ahul sau tablele. Un
alt dezavantaj este acela c Minimax pleac mereu de la premisa c adversarul su face cea mai
bun mutare posibil, ceea ce n multe cazuri nu se ntmpl.
Alternativa pe care o propunem acestei abordri tradiionale este nvarea prin ntrire
bazat pe diferena ntre estimrile unor sri ale jocului n diferite momente. Vom ncerca s
proiectm un agent inteligent care cunoscnd doar regulile de baz ale jocului, s nvee s joace
la un nivel expert, fr a fi supravegheat de un om. Ne-am oprit la jocul Tic-Tac-Toe, unul tipic
pentru abordarea Minimax, i vom ncerca s artm c nvarea este intr-adevr o alternativ
viabil, cu cerine minime.
Capitolul I, prezint pe scurt domeniul Inteligenei Artificiale ca o ramur a tiinei
aflat n plin expansiune. Se ncearc o definire a termenului de Inteligen Artificial i se face
o scurt incursiune n istoria acestui domeniu din perioada antichitii i pn n zilele noastre.
Capitolul II, prezint aspecte legate de teoria jocurilor, i o integrare a acesteia n
Inteligena Artificial. Sunt clasificate jocurile dup mai multe criterii i este fcut o prezentare
a evoluiei lor.
Capitolul III, descrie metoda de rezolvare a jocurilor Minimax. Se vorbete despre
reprezentarea jocurilor ca probleme de cutare i un studiu al complexitii acestora. Apoi sunt
5

prezentate proprietile i paii algoritmului Minimax, dar i mbuntiri care pot fi aduse:
tietura alfa-beta.
Capitolul IV, prezint concepte ale nvrii prin ntrire mai exact a nvrii bazate pe
diferene temporare. Este descris programul lui Gerald Tesauro TD-Gammon i se ncearc o
analiz a modului n care acesta nva.
Capitolul V, face o prezentare amnunit a aplicaiei X-O. Este fcut mai nti o
analiz a topicului i descriere a avantajelor nvrii fa de abordarea tradiional, iar apoi se
face o trecere n revist a modului n care au fost implementate aceste metode. Ultima parte a
capitolului este un manual de utilizare al aplicaiei.
6

1. Inteligena Artificial

1.1 Ce este Inteligena Artificial?

Omenirea s-a autodenumit homo sapiens omul nelept deoarece capacitile noastre
mentale sunt att de importante n viaa noastr de zi cu zi. Domeniul Inteligenei Artificiale, i
propune s neleag entitile inteligente, i unul dintre motivele studierii acestui domeniu este
acela de a nva mai multe despre noi nine. Inteligena Artificial este una dintre cele mai noi
discipline, a fost iniiat oficial in 1956, cnd numele a fost inventat. Dei la vremea respectiv
fusese subapreciat, odat cu genetica modern, a fost deseori numit de ctre oamenii de tiin
din alte domenii ca disciplina n care mi-ar plcea s lucrez.
Inteligena Artificial are o mare varietate de subdomenii, de la arii generale ca i
percepia, pana la teme specifice cum sunt jocul de ah, demonstrarea teoremelor matematice,
scrierea de poezii si diagnosticarea bolilor. De multe ori, cercettori din alte domenii, folosesc
Inteligena Artificial pentru a sistematiza i automatiza teme intelectuale la care au lucrat toat
viaa lor. Similar, cercettorii Inteligenei Artificiale pot sa aplice metodele lor fiecrei arii din
intelectul uman. Aadar, avem motive sa spunem c, ntr-adevr Inteligena Artificial este un
domeniu universal.
Tocmai datorit complexitii si universalitii acestui domeniu, este extrem de greu sa
formulm o definiie complet a Inteligenei Artificiale. Totui, de-a lungul anilor s-au ncercat
diferite definiii. Acestea variaz de-a lungul a dou dimensiuni principale: procese cognitive i
comportament. Aceste definiii pot fi grupate n 4 categorii:
1. Sisteme care gndesc ca i oamenii: Inteligena Artificial este studiul modului
n care calculatoarele pot fi fcute s gndeasc mainile care gndesc - (1).

2. Sisteme care gndesc raional: Inteligena Artificial este studiul modalitilor
de a face capabil un calculator s perceap, s raioneze i s acioneze inteligent
(2).
7


3. Sisteme care acioneaz ca oamenii: Inteligena Artificial este studiul modului
n care putem determina calculatoarele s fac lucruri la care, n prezent, omul
este mai bun (3).


Arta de a crea calculatoare capabile s efectueze aciuni ce necesit inteligen
atunci cnd sunt executate de oameni (4).

4. Sisteme care acioneaz raional: Inteligena Artificial este ramur a tiinei
calculatoarelor ce se ocup cu automatizarea comportamentului inteligent (5).

1.2 Comportamentul uman. Testul Turing

Putem spune c dac nu ar exista calculatoarele, astzi nu am discuta despre Inteligena
Artificial, deci, originea acestei ramuri a informaticii se ascunde prin anii construciei primelor
calculatoare electronice. Atunci a fost momentul n care omul i-a pus problema despre ct de
puternice pot fi aceste maini noi, capabile s efectueze calcule complicate? Pot fi fcute acestea
s gndeasc? Pot fi ele nzestrate cu inteligen uman? Rmne de vzut cum pot fi realizate
aceste manifestri i ceea ce este mai important Cum tim dac am reuit sau nu?.
Pornind de la ntrebarea aceasta, i ncercnd s o reformuleze n termeni oarecum
obiectivi, direct constatabili, matematicianul englez Alan Turing a imaginat testul care i poart
numele i care, odat satisfcut de o main, ar dovedi inteligena ei. Turing a plecat de la o
idee foarte naturala, aceea c dac nu putem s definim n termeni exaci inteligena, ns
spunem despre om c este inteligent, atunci am putea s spunem i despre o main c este
inteligent n cazul n care s-ar comporta ca o fiina uman. Rmne de vzut care aspecte ale
comportamentului uman sunt ntr-adevr relevante pentru inteligen.
Testul Turing pornete de la un joc creat tot de Turing jocul imitaiei cu trei juctori:
o main (A) i doi oamenii (B) i (C). A i B nu se gsesc n aceeai camer cu C. C nu tie care
8

dintre ceilali doi juctori este maina, i nu poate s i vad sau s le vorbeasc direct.
Comunicarea se poate face n scris sau printr-un terminal. Scopul lui C este s deosebeasc
maina de om, pe baza rspunsurilor la orice fel de ntrebri. Dac C nu reuete, atunci maina
poate fi considerat inteligent.

Figura 1-1 Testul Turing

La vremea respectiv nici un calculator nu a reuit s treac Testul Turing, si n 1950,
anul n care a aprut primul articol despre acest test, autorul prezicea c n 50 de ani (aproximativ
anul 2000), va fi posibil s existe o main care s joace jocul imitaiei att de bine, nct ansa
lui C de a identifica omul sa fie mai mic de 70%, dup 5 minute de joc. Se pare c Turing s-a
nelat in privina acestei preziceri, mai mult, informaticienii din zilele noastre nu sunt la fel de
optimitii. Exista chiar, dou tabere unii care cred n posibilitatea de a satisface, cndva, Testul
Turing, i alii care sunt convini de contrariu.
Dei a suscitat multe discuii de-a lungul anilor, Testul Turing reprezint idealul pe
termen lung al Inteligenei Artificiale ca ramura a informaticii. Turing considera c cel mai bun
drum ctre realizarea unei maini care s treac testul su nu este programarea unui calculator
dotat cu o mulime fixa de cunotine, ci, mai degrab, educarea unei maini-copil, capabile s
9

nvee din experien i s foloseasc limbajul natural ca s-i mbogeasc cunotinele. Ea ar
putea s-i rezolve problemele proprii i s-i mplineasc propriile sale planuri, dnd dovad de
inteligen practic n viaa de zi cu zi. De fapt, fiecare dintre aceste trsturi ideale s-au
constituit n subdomenii ale inteligenei artificiale: nvarea automat, prelucrarea i nelegerea
limbajului natural, achiziia de cunotine, construirea i satisfacerea unor planuri (6).

1.3 Istoric al Inteligenei Artificiale

Dei poate prea oarecum bizar, urme ale preocuprilor pentru inteligena artificial, se
pot ntlni nc din cele mai vechi timpuri, cnd omul, nc nu descoperise ce nseamn
electricitatea, cu att mai puin putea sa-i imagineze calculatoarele i sistemele expert, care
astzi ne sunt la ndemn i ne nsoesc la tot pasul.

1.3.1 Antichitatea

In Iliada lui Homer, in laboratorul lui Hefaistos, zeul focului, sunt prezentate primele
maini inteligente. Acestea erau nite dispozitive, care se roteau in jurul caierului de ln,
ajutndu-o astfel pe Afrodita, soia zeului, la tors.
Primul sistem expert, se consider a fi un papirus egiptean, datnd din mileniul III .Hr.,
care consta in 48 de observaii asupra diagnosticrii i tratrii rnilor la cap. Cunotinele erau
organizate sub form de reguli: dac exist un anumit simptom, atunci se recomand un anumit
tratament. Pe acelai principiu se bazeaz i sistemele expert folosite astzi n medicin, pentru
depistarea cancerului i a altor boli. Trebuie menionat c aceast realizare se bazeaz pe o alt
invenie extraordinar a omului, scrisul, prin intermediul cruia obiectele fizice ale lumii reale
pot fi reprezentate i manipulate n mod simbolic (7).
10

O alt mare descoperire a antichitii este logica silogistic a lui Aristotel, care dateaz
din secolul IV .Hr., i este primul sistem formal de raionament deductiv. Astfel sunt
consacrate cele trei Principii ale gndirii:
Al identitii (A este A).
Al noncontradiciei (A nu poate fi simultan B i non-B).
Al terului exclus (A este B sau non-B).

Aceste principii au avut o influen uria asupra dezvoltrii tiinifice ulterioare a
societii umane, deoarece noi cunotine puteau fi adugate la fondul de cunoatere existent prin
demonstrarea de teoreme.

1.3.2 Renaterea

n secolul al XVII-lea, Blaise Pascal, pune bazele primului calculator mecanic, capabil s
efectueze adunri i scderi. Maina a fost perfecionata apoi de Gottfried Wilhelm Leibnitz,
astfel nct s realizeze nmuliri i mpriri. Interesant c, acest calculator nu s-a bucurat de
mare succes. Leibnitz a rmas cunoscut n special ca inventator al analizei matematice, dei la
vremea respectiv nu era la fel de celebru, fiind eclipsat de Newton.

1.3.3 Primele calculatoare

Primul calculator funcional programabil, numit Z3, a fost produs n Germania, n 1941,
de ctre Konrad Zuse. A fost distrus trei ani mai trziu n timpul celui de-al doilea rzboi
mondial si a fost reconstruit mai trziu ca pies de muzeu. n 1948, la Universitatea Manchester
din Marea Britanie s-a realizat Mark I, primul calculator valorificat din punct de vedere
comercial. Acesta a fost i primul calculator care a scris scrisori de dragoste. Att Z3, ct i
Mark I se bazau pe tehnologia tubului vidat (a lmpii electronice).
11

1.3.4 Reelele neuronale

n 1943, Warren McCulloch i Walter Pitts au propus o arhitectur inteligent bazat pe
reele neuronale artificiale, care ncearc s simuleze funcionarea creierului organismelor vii.
Ca element distinctiv de logic simbolic explicit, n aceast abordare cunotinele sunt
nmagazinate de conexiunile dintre neuroni. Una dintre trsturile de baza ale acestor reele
neuronale, este capacitatea de a nva.
ase ani mai trziu, n 1949, Donald Hebb formuleaz o lege bazat pe nvarea
neuronal: conexiunile dintre neuronii care se activeaz simultan se ntresc, iar cele dintre
neuronii care se activeaz n contratimp se slbesc. n 1958, Frank Rosenblatt propune un model
practic al acestei paradigme, si anume Perceptronul (neuronul cu mai multe starturi).

1.3.5 Naterea Inteligenei Artificiale

Momentul de natere al Inteligenei Artificiale este legat de anul 1956, cnd la reuniunea
de la Dartmouth College a fost prezentat programul de demonstrare a logicii propoziiilor Logic
Theorist de ctre Newell, Shaw i Simon. Acesta este considerat de muli ca fiind primul
program de Inteligen Artificial. Tot atunci s-au pus probleme legate de rezolvarea de jocuri,
de activiti care necesit raionament, de prelucrare a limbajului natural, de recunoatere a
modelelor .a. Dei este chiar conferina la care s-a lansat termenul de Inteligen Artificial, la
vremea ei, nu a fost considerat un succes. Totui n anii care au urmat au aprut tot mai multe
laboratoare de cercetare n domeniul Inteligenei Artificiale.
n anul 1958, John McCarthy anuna limbajul LISP, destinat programrii declarative.
Acest limbaj, cu unele modificri se folosete i azi, dup 50 de ani.



12

1.3.6 Anii 60

nceputul anilor 60 aduce o noutate tehnologic, apariia tranzistorului, un evident
progres, avnd n vedere c acesta nlocuia cam 40 de lmpi electronice. Tot n aceast perioad
apar i primii roboi industriali.
n 1962, Lotfi Zahed (nscut n Azerbaidjan) pune bazele logicii fuzzy, care contrazice
principiul terului exclus. Aceast teorie a fost ntmpinat cu scepticism i chiar ostilitate, ns
succesul aplicaiilor sale practice ulterioare este de necontestat.
Patru ani mai trziu, n 1966 Joseph Weizenbaum i Kenneth Colby creeaz programul
ELIZA, psihologul computerizat, care se va dovedi unul dintre cele mai celebre programe de
Inteligen Artificial create vreodat. El converseaz n limbaj natural, analizeaz frazele
interlocutorului pentru a extrage cuvinte-cheie, i apoi afieaz o replic, dintr-o mulime de
variante predefinite. De cele mai multe ori conversaia este una fluent, iar unii pacieni chiar
s-au ataat emoional de program, spre disperarea cercettorilor.

1.3.7 Generaia a treia de calculatoare

La sfritul anilor 60 are loc un nou salt tehnologic, dnd startul generaiei a treia de
calculatoare, bazat pe circuitele integrate (chip-uri semiconductoare). De la inventarea acestora,
numrul de tranzistoare de pe un chip s-a dublat la fiecare doi ani. n 1967, Richard Greenblatt
inventeaz primul program de ah care nvinge un juctor profesionist: MacHack.
n 1970, a luat fiina limbajul Prolog, ca rezultat al cercetrilor lui Alain Colmerauer, de
la Universitatea din Marsilia, legate de formalizarea logic, pentru punerea bazelor unui limbaj
de prelucrare a limbajului natural. Prolog este i astzi, cel mai utilizat limbaj de programare
logic i declarativ i este intens utilizat n special la construirea sistemelor expert.

13

1.3.8 Microprocesoarele. ntoarcerea reelelor neuronale

nceputul anilor 70, aduce pe lng, noiunea de algoritm genetic, introdus de John
Holland, i o nou etap tehnologic, cea a microprocesoarelor, care determin apariia
generaiei a patra de calculatoare, care continu pn n prezent.
Cercetrile n domeniul reelelor neuronale sunt revigorate la mijlocul anilor 80, cnd
devine cunoscut algoritmul delta generalizat (back-propagation). Aceast metod a fost propus
cu peste zece ani n urm, ns a fost practic ignorat, deoarece presupunea un volum de calcule
mult prea mare pentru perioada respectiv. Idee de baza este antrenarea percepronului multistrat,
prin gsirea minimului funciei de eroare n raport cu ponderile conexiunilor.

1.3.9 Progrese recente

n anul 1986 vnzrile de hardware i software bazat pe Inteligen Artificial, n Statele
Unite ale Americii au ajuns la 425 milioane de dolari. Sistemele expert erau foarte cutate
datorit eficienei lor n diferite domenii. NASA propune un nou limbaj de programare declarativ
numit Clips.
La nceputul anilor 90, Gerry Tesauro demonstreaz c nvarea cu ntrire este
suficient de puternic, pentru a face ca un program care nva singur s nving juctori
profesioniti. Programul su, este un joc de table sugestiv denumit TD-Gammon, bazat pe teoria
diferenelor temporale pentru calcularea recompenselor la diferite momente de timp. Asupra
acestei idei fundamentale n teoria jocurilor, vom reveni ntr-unul din capitolele urmtoare.



14

1.4 Prezentul n Inteligena Artificial

n 1997, Deep Blue, un super-computer creat de firma IBM, l nvinge pe Garry
Kasparov, campionul mondial de ah la acea vreme. Tot n acelai an, are loc primul campionat
de fotbal cu roboi. Tehnici de Inteligen Artificial sunt folosite de programe de cutare pe
Internet pentru extragerea de cunotine dar i n domeniul militar, n operaiuni precum Furtun
n deert.
n 2000, se construiesc deja animale de cas robotizate interactive, cu mare succes
comercial, lideri n acest domeniu fiind firmele japoneze. Cynthia Breazeal coordoneaz
proiectul Kismet, care ncearc construirea unui robot cu o fa care exprim sentimente. Se
nregistreaz un progres i n sectorul mainilor inteligente autonome. Robotul Nomad
exploreaz regiuni ndeprtate din Antarctica n cutare de fragmente de meteorii. Ali roboi
transmit imagini de pe suprafaa planetei Marte i se cerceteaz posibilitile de cretere a
autonomiei vehiculelor spaiale (8).
15

2. Teoria jocurilor

2.1 Jocurile i Inteligena Artificial

Jocurile sunt fascinante, iar scrierea de programe care s le joace este chiar i mai
fascinant. Se poate spune c teoria jocurilor este pentru Inteligena Artificial cum este Grand
Prix-ul pentru constructorii de motoare.
Dezvoltarea jocurilor i a domeniului multimedia, n general, este n plin expansiune, o
afacere de sute de milioane de dolari. La ora actual nu se mai poate concepe un joc fr a avea
n structur elemente de Inteligena Artificial. Implementat corect, aceasta garanteaz un
produs bine vndut, deci profit i satisfacie oferit juctorilor (9).
Teoria jocurilor de strategie, poate fi, pe scurt, caracterizat ca aplicarea analizei
matematice asupra modelelor abstracte de situaii conflictuale. Primele astfel de modele n care a
fost aplicat aceast teorie, au fost jocurile de societate ca ah, poker sau bridge. Apoi s-au
aplicat aceleai modele n domenii ca economia, sociologia sau tiinele politice. Teoria jocurilor
este folosit, sau se afl n strns legtur cu arii ca programare liniar, decizii statistice,
managementul tiinei, cercetare sau strategi militare, dei, uneori corespondenta matematic a
teoriei nu este valabil.

2.2 Jocuri n forma extins i jocuri n forma normalizat

Participanii la un joc sunt numii juctori i n general sunt 2, dar exist i jocuri cu mai
muli. Exist de asemenea jocuri care implica elemente aleatoare numite i ans, care intervin
atunci cnd se arunc zarurile sau se extrage o carte. Toate aceste mutri sunt atribuite unui
juctor ans un juctor fictiv folosit doar pentru o bun abstractizare a jocului.
16

Spunem ca un joc este n forma extins, atunci cnd acesta este specificat de o list de
reguli. Pentru rezolvarea matematic a unui joc, avem ns nevoie de jocuri in forma
normalizat. Pentru aceasta este nevoie sa cunoatem o list complet cu toate combinaiile de
mutri legale posibile, pe care un juctor poate s le fac pentru fiecare situaie care apare pe
parcursul unui joc. Numrul acestor mutri poate fi astronomic, chiar i pentru un joc simplu
cum este Tic-Tac-Toe, deoarece aceasta list de mutri este mult mai mare dect ceea ce noi
numim strategie. Tocmai din acest motiv, aplicaiile teoriei jocurilor, chiar si pentru jocurile de
societate, sunt mult limitate de dificulti computaionale.
S presupunem acum c avem un joc, cu n juctori, fr juctorul ans, prezentat mai
sus. Notm cu s
1
, s
2
, , s
n
combinaiile de mutri posibile pentru toat durata jocului, specifice
juctorilor 1, 2, , n. Fiind date acestea, jocul trebuie jucat intr-un mod unic si va rezulta un
ctig unic. Fie P
i
(s
1
, s
2
, , s
n
) valoarea ctigului juctorului i pentru acest joc. Presupunem c
O
1
, O
2
, , O
k
sunt venituri n urma unui eveniment aleator (de ans), i presupunem n
continuare c probabilitile de apariie a acestora sunt p
1,
p
2
, , p
k
cu p
i
> 0 i p
1
+ p
2 +
+
p
k
=

1. Probabilitatea matematic a evenimentului de ans este suma E = p
1
O
1
+ p
2
O
2
+ .. +
p
k
O
k
.
Dac exist aceste mutri aleatoare (de ans) este uor de intuit c un set de combinaii
de mutri posibile pentru fiecare juctor, nu va determina un venit unic al jocului, ci un set de
posibile venituri. Aceste venituri se vor exclude reciproc, i probabilitatea lor de apariie va
depinde de mutrile aleatoare asociate cu ansa lor de apariie. Prin urmare putem spune c P
i
(s
1
,
s
2
, , s
n
) este ctigul ateptat pentru fiecare juctor i = 1, 2, , n.
Acum putem defini forma normalizat a jocului, ca lista tuturor ctigurilor ateptate
pentru fiecare juctor, pentru fiecare combinaie posibil de mutri legale, de-a lungul jocului.
Pentru jocurile de 2 juctori, cea mai simpl metod de stocare a acestora este folosind matrice
bidimensionale (10).


17

2.3 Clasificarea jocurilor

Dup ce am vorbit mai sus despre jocuri n forma extins i jocuri n forma normalizat,
vom prezenta n continuare o clasificare a jocurilor n raport cu diverse criterii:

a. Dup modul n care juctorii comunic intre ei:
- Jocuri cooperative, n care juctorii comunic intre ei nainte de luarea
deciziilor i pot face promisiuni, care vor fi respectate, nainte de
alegerea strategiilor.
- Jocuri necooperative. Juctorii nu comunic intre ei nainte de luarea
deciziilor.

b. n raport cu desfurarea n timp a jocurilor:
- Jocuri statice; deciziile se iau simultan, dup care jocul ia sfrit.
- Jocuri dinamice; deciziile juctorilor sunt secveniale, adic
evolueaz n timp.

c. Dup natura informaiei:
- Jocul n informaie complet, este tipul de joc n care toi juctorii
cunosc numrul celorlali juctori, strategiile fiecruia, funciile de
ctig ale fiecruia, precum i regulile jocului.
- Jocul n informaie incomplet, este jocul n care cel puin unul dintre
juctori nu cunoate una sau mai multe funcii de ctig ale celorlali
juctori.

d. n raport cu tipul informaiei, n cazul jocurilor dinamice:
- Joc dinamic n informaie perfect, este acel joc dinamic n care
fiecare dintre juctori cunoate regulile, numrul juctorilor, strategiile
acestora, precum i evoluia n timp a jocului (istoria jocului).
18

- Joc dinamic n informaie imperfect, este acel joc n care cel puin
unul dintre juctori nu cunoate istoria jocului, cunoscnd ns
celelalte elemente.

e. n raport cu structura ctigurilor:
- Jocul de sum nula, jocul n care suma ctigurilor este zero.
- Jocul de sum nenul, jocul n care suma ctigurilor este diferit de
zero.

f. Dup numrul de juctori:
- Jocuri cu doi juctori
- Jocuri multi-persoan
- Jocuri contra naturii (11)

2.4 Strategie i funcie de ctig

Numim strategie a unui juctor, o aciune realizabila pe care juctorul o poate alege n
cadrul jocului. Mulimea strategiilor tuturor juctorilor formeaz mulimea strategiilor jocului pe
care o notm: S = S
1
x S
2
x x S
n
, unde S
i
este strategia fiecruia din cei n juctori.
Funcie de ctig a jocului este funcia u = ( u
1
, u
2
, , u
n
) format din funciile de ctig
ale fiecrui juctor. Dac notm funcia de ctig a fiecrui juctor cu u
i
i funciile de ctig ale
celorlali juctori cu u
-i
, funcia de ctig a jocului va fi: u : S R, u = ( u
i
, u
-i
) (10).

2.4.1 Echilibrul Nash

Spunem c un joc merge spre un Echilibru Nash (nume preluat de la creatorul su John
Nash), dac strategiile ambilor juctori, i vor duce pe acetia la acelai ctig, innd cont de
strategia adversarului.
19

Echilibrul Nash mai poate fi definit i ca o mulime de strategii ( s
1
*, s
2
*
, ,
s
n
*

) care
respect condiia:
u
i
( s
1
*, s
2
*
, ,
s
i
*,
,
s
n
*) u
i
( s
1
*, s
2
*
, ,
s
i
*,
,
s
n
*) pentru i = 1, n
sau
u
i
( s
i
*, s
-i
*) u
i
( s
i
*, s
-i
*) pentru i = 1, n (12).

2.5 Evoluia jocurilor

Teoria jocurilor este unul dintre primele domenii ale Inteligenei Artificiale, astfel prin
1769 aprea deja, prima fraud odat cu apariia lui Turk, un presupus joc de ah automat,
despre care autorul spunea c ascunde un mic expert. Primele discuii serioase despre jocuri
inteligente au avut loc prin 1846, cnd Charles Babbage propunea proiectarea unui motor analitic
complet, care ar fi capabil s joace dame i ah. Babbage a proiectat i prima main care s
joace Tic-Tac-Toe, ns nu a reuit s o construiasc. Prima main pentru jocuri a fost proiectat
si realizat n 1890 de ctre Leonard Torres, i era capabil s joace sfritul unei partide de ah.
Tot n aceeai perioad, Ernest Zermelo venea cu ideea generrii ntregului arbore pentru jocul
de ah, in vederea gsirii unei strategii perfecte.
Totui, aceste cazuri au fost relativ izolate, adevratul nceput al jocurilor inteligente
avnd loc la mijlocul secolului XX, odat cu apariia primelor calculatoare electronice
programabile. Este perioada n care a fost prezentat teoria Minimax, de ctre von Neumann i
Morgenstern (1944). Pornind de la aceast idee s-au fcut mai multe ncercri de realizare a unui
program capabil s joace o partid ntreag de ah, la un nivel satisfctor.
n 1951, matematicianul englez Alan Turing, a scris primul program capabil s joace o
partid ntreag de ah. Publicat doar n 1953, programul nu a rulat pe un calculator, ci a fost
testat printr-o simulare manual mpotriva unui oponent uman slab, care l-a nvins. A urmat
dezvoltarea cutrii alfa-beta i odat cu ea dezvoltarea de alte programe dintre care
MacHack6, primul care concura cu succes mpotriva oamenilor. n 1982 Pearl a realizat o
20

analiz efectiv a factorului de ramificare i complexitii lui alfa-beta, artnd c este algoritmul
de cutare optimal pentru jocuri.
De-a lungul anilor, programele pentru jocuri s-au mbuntit gradual, ajungnd ca n
zilele noastre s concureze cu succes campionii mondiali. Cel mai elocvent exemplu este cel din
1997, n care campionul Garry Kasparov a fost ntrecut de un super-computer, Deep Blue, creat
de firma IBM. Obinut n ase partide, aceast victorie a nsemnat trecerea liniei Inteligenei
Artificiale dincolo de ce s-a realizat pn n acel moment. Din studiile efectuate, a reieit c n
creierul uman se afl aproximativ 100 miliarde de neuroni, fiecare capabil de 1000 de operaii pe
secund. n jur de 30 de miliarde de neuroni formeaz "materia cenuie", cea care gndete,
restul de 70 de miliarde constituind "materia alb", cea care face legtura ntre neuronii din
"materia cenuie". n contrast, Deep Blue coninea 480 de procesoare create special pentru jocul
de ah, fiecare dintre ele fiind capabil s gndeasc aproximativ 2 milioane de poziii pe secund.
Un computer actual poate realiza 10 la puterea 17 operaii pe secund (o operaie n timpul n
care lumina ar strbate un atom de hidrogen).
Este clar c viteza aparine mainii. i atunci ne punem ntrebarea: Ce atu mai are omul
? Cel mai important pare a fi elementul surpriz, omul este imprevizibil, gndirea sa nu respect
ntotdeauna un algoritm, aa cum l tie maina (9).

21

3. Metoda Minimax

3.1 Jocul ca problem de cutare

Pentru a putea fi implementat, un joc, trebuie codificat aa nct s fie pe nelesul
calculatorului. De aceea un joc poate fi gndit ca un arbore a tuturor strilor viitoare ale jocului.
Spre exemplu, n cazul jocului de ah, starea jocului poate fi definit ca aranjamentul pieselor pe
tabl, precum i cine este la rnd s fac urmtoarea mutare
Starea iniial a jocului este rdcina arborelui. n general, acest nod, are numeroi fii,
acetia fiind toate mutrile posibile, legale, pe care le poate face juctorul al crui rnd este, i
aa mai departe. Fiecare dintre aceste noduri reprezint starea jocului dup fiecare mutare a
oponentului, i are la rndul lui fii corespunztori celei de-a doua mutri a juctorului curent i
aa mai departe. Frunzele arborelui sunt strile finale ale jocului, din care nici o mutare nu mai
poate fi fcut pentru c unul dintre juctori a ctigat, sau jocul s-a ncheiat cu o remiz.
De fapt, arborele este un graf, deoarece pot fi mai multe mutri posibile dintr-o anumit
stare a jocului, ntr-o alt stare particular.

3.1.1 Componentele unei probleme de cutare

Un joc poate fi definit formal, ca o problem de cutare cu urmtoarele componente:
Starea iniial, include poziiile pe tabla de joc i cine este la mutare.
Mulime de aciuni, care definesc mutrile admise pe care le poate
efectua un juctor.
Stare terminal, care determin cnd se sfrete jocul. Strile n care
jocul se ncheie se numesc stri terminale.
22

Funcie de utilitate, care ntoarce o valoare numeric pentru rezultatul
jocului. De ex. n ah posibilitile sunt 1 pentru victorie, 0 pentru egalitate
i -1 pentru nfrngere.

3.2 Algoritmul Minimax

Algoritmul Minimax este un algoritm de cutare ntr-un arbore. Acest algoritm urmrete
selectarea celei mai bune mutri pentru calculator, ntr-un joc cu doi juctori. Mai nti se
construiete arborele de joc cu toate mutrile posibile pentru ambii juctori, dup metoda
descris mai sus.
Acest algoritm este denumit Minimax, deoarece calculatorul face mutarea care-i ofer
ctigul maxim, n acelai timp asigurndu-se c oponentul face mutarea cea mai defavorabil
calculatorului. Deoarece mutrile alterneaz, i algoritmul alterneaz maximiznd i minimiznd
nivelele arborelui n mod recursiv.
ntruct, chiar i n cazul unui joc simplu, numrul mutrilor posibile crete exponenial,
i deoarece memoria unui calculator este limitat, de regul, algoritmul Minimax face cutarea
numai pe o adncime fix.
n continuare vom considera cazul unui joc simplu cu dou persoane, pe care le vom
numi sugestiv MAX i MIN. Primul care mut primul este MAX, apoi mut pe rnd, pn la
sfritul jocului, cnd unul este premiat iar cellalt penalizat.
MAX trebuie s gseasc o strategie care s l aduc la o stare terminal n care el este
ctigtorul, indiferent de mutrile pe care le face MIN. Strategia presupune c MAX face
mutrile corecte, indiferent de mutrile lui MIN. Ideea este de a arta cum se gsete o strategie
optim, chiar dac nu este timp suficient s o gsim (13).


23

3.2.1 Tic-Tac-Toe


Figura 3-1 Arborele de cutare pentru Tic-Tac-Toe

n Figura 3-1 de mai sus este reprezentat jocul Tic-Tac-Toe(X i 0), sub form de arbore.
De la starea iniial, MAX are posibilitatea de a alege din 9 mutri posibile. Juctorii alterneaz
punnd X i 0 pn se ajunge la o stare terminal stare n care un juctor are 3 elemente pe o
linie, coloan sau diagonal, sau toate csuele au fost completate(egalitate). Numrul ataat
fiecrei frunze reprezint utilitatea strii terminale din punctul de vedere a lui MAX. Valorile
mari sunt considerate bune pentru MAX i proste pentru MIN, reciproca fiind valabil, de aici i
numele celor doi.
Sarcina lui MAX este s foloseasc acest arbore de cutare, i innd cont de utilitatea
strilor finale s determine cele mai bune mutri.
24

3.2.2 Paii algoritmului Minimax

Algoritmul Minimax, care determin strategia optim pentru juctorul MAX, const n 5
pai:
1. Genereaz arborele de joc pn la strile terminale
2. Aplic funcia de utilitate pentru fiecare stare terminal, pentru a i determina
valoarea.
3. Folosete utilitatea strilor terminale pentru a determina utilitatea strilor de la un
nivel superior al arborelui.
4. Continu evaluarea utilitii nodurilor pn ajunge la rdcin.
5. Cnd se ajunge la rdcin, MAX alege nodul de pe nivelul inferior cu valoarea cea
mai mare.

n Figura 3-2 de mai jos este prezentat un exemplu pentru stabilirea utilitii din pasul 3
al algoritmului. Am luat n calcul un joc care se termin dup numai dou mutri (una MAX i
una MIN). Pentru MAX mutrile posibile sunt A1, A2 i A3, iar pentru MIN: A11, A12 etc., iar
valorile strilor terminale sunt ntre 2 i 14.

Figura 3-2 Aplicarea funciei de utilitate

25

Alegerea pe care o va face MIN pentru nodul de deasupra va fi valoarea cea mai mic,
adic cea mai bun din punctul su de vedere. MAX va avea de ales ntre nodurile evaluate la 3,
2 i 2, de unde evident va opta pentru valoarea maxim.

3.2.3 Proprieti ale algoritmului Minimax

Optimal ? Da (mpotriva unui adversar optimal).
Complexitate temporara ? O(b
m
).
Complexitate spaial ? O(bm).
b factorul de ramificare
m adncimea arborelui

3.2.4 Funcia de evaluare

Este bine de tiut c pentru un joc cum este ahul, factorul de ramificare este b 35, iar
adncimea arborelui m 100. Prin urmare algoritmul ar avea o complexitatea temporara uriaa
O(35
100
), iar noi am plecat de la presupunerea c programul are timp s caute pn la strile
terminale, ceea ce este impractic.
Shannon propunea ca n loc s se mearg pn la strile terminale i s se foloseasc
funcia de utilitate, cutarea s fie oprit mai devreme i s se aplice o funcie de evaluare
euristic noilor frunze ale arborelui.
Funcia de evaluare, ntoarce o estimare a utilitii ateptate pentru joc dintr-o stare dat.
Spre exemplu, n jocul de ah, aceast funcie se poate referi la valoarea material a fiecrei
piese: pion 1, nebun 3, tura 5, regina 9. Pe lng acestea ar fi bine s inem cont i de alte aspecte
cum ar fi aranjarea pionilor sau modul n care este protejat regele. Performana unui program
pentru jocuri depinde n mare msur de funcia de evaluare aleas. Dac aceasta nu este bine
definit, poate ghida programul spre stri care aparent sunt bune dar de fapt sunt dezastruoase.
26

Funcia de evaluare trebuie s corespund cu funcia de utilitatea aplicat strilor terminale i n
acelai timp nu trebuie s necesite foarte mult timp.
n concluzie, n elaborarea funciei de evaluare, trebuie fcut un compromis ntre
acurateea funciei i costul de timp. De asemenea, aceast funcie trebuie s reflecte in mod
foarte corect ansele reale de a ctiga.
Funcia de evaluare, bazat pe valoarea material, n jocul de ah este liniar i ponderat,
i poate fi dat ca:
Eval(s) = w
1
f
1
(s) + w
2
f
2
(s) + + w
n
f
n
(s)
Unde w
i
este pondere, iar f
i
(s) este numrul de piese i, care sunt n plus fa de adversar.
Exemplu:
w
2
= 5 (pentru ture)
f
2
(s) = (numrul de ture ale lui MAX) (numrul de ture ale lui MIN)
Cea mai simpl metod de a controla ct de adnc s mearg cutarea este folosirea unei
limite de cutare n adncime. Reducerea se va face n acest caz la toate nodurile pn la
adncimea d, ales n aa fel nct s nu se depeasc timpul alocat pentru o mutare. O alt
posibilitate, chiar mai bun, ar fi s considerm cutarea iterativ n adncime. Astfel programul
pornete o cutare complet n arbore, iar cnd nu mai este timp, ntoarce mutarea cea mai bun
pn la adncimea la care a ajuns (14).

3.3 Minimax cu tietur alfa-beta

Marele handicap al algoritmului Minimax este complexitatea, care-l face s nu fie optim.
Spre exemplu, pentru jocul de ah, un program bine scris poate cuta aproximativ 100 de poziii
pe secund. In turneele de ah, timpul pentru mutare este de 150 de secunde, deci programul ar
putea cuta 150 000 de poziii. Cum factorul de ramificare este de 35, programul va fi capabil s
27

mearg n avans cu doar 3-4 mutri, ceea ce l-ar face s joace la un nivel de nceptor. Chiar i
un juctor mediu poate vedea 6-7 mutri nainte, ceea ce l face pe program s fie uor de btut.

3.3.1 Descrierea algoritmului

Aceast problem a complexitii, prezent mai sus, poate fi, din fericire, ajustat. Este
posibil a se calcula decizia Minimax fr a vizita fiecare nod din arborele de cutare. Procesul
const n retezarea unor ramuri ale arborelui i presupune neluarea n considerarea a acelor
ramuri. Aceast tehnic de reducere a arborelui se numete tietur . Atunci cnd se aplic
unui arbore, ea va ntoarce aceeai mutare ca i Minimax, ns elimin ramuri care nu pot
influena decizia final.

Figura 3-3 Tietura alfa-beta

este valoarea celei mai bune alegeri gsite pn la momentul curent, la orice punct de-a
lungul unui drum, pentru MAX. Daca v este mai prost dect , MAX l va evita, prin eliminarea
acelei ramuri.
este definit n mod similar pentru MIN, adic cea mai mic valoare gsit de-a lungul
unui drum, pentru MIN.
Figurile 3-4, 3-5, 3-6, 3-7 i 3-8 reprezint o exemplificarea a modului n care tietura
se aplic unui arbore.
28



Figura 3-4 Aplicarea tieturii alfa-beta




Figura 3-5 Aplicarea tieturii alfa-beta

29


Figura 3-6 Aplicarea tieturii alfa-beta


Figura 3-7 Aplicarea tieturii alfa-beta

Figura 3-8
30

3.3.2 Proprieti

n continuare vom prezenta cteva dintre trsturile de baz ale algoritmului Minimax cu
tietur :
Reducerea nu afecteaz rezultatul final.
O bun ordonare a mutrilor mbuntete algoritmul de reducere.
Dac succesori sunt pui perfect n ordine (cei mai buni se afl primii), atunci
complexitatea temporar ar fi O(b
d/2
), n loc de O(b
d
) ct are Minimax.
o Deci , poate cuta de dou ori mai mult dect Minimax.
o Pentru jocul de ah, de exemplu, programul ar putea s se uite nainte 8
mutri n loc de 4.

Tratnd cu mare atenie calculele care afecteaz decizia, putem transforma un
program de nivel nceptor n expert (14).

3.4 Alternative la Minimax

Minimax are cteva aspecte care, chiar cu mbuntirile descrise, sunt problematice.
Spre exemplu, se bazeaz ntotdeauna pe premisa c adversarul va selecta cea mai bun mutare.
Aceast presupunere este acceptabil n situaii de ctig, n care poate fi gsit o situaie bun
pentru noi. Dar n situaiile de nfrngere ar putea fi mai bine s ne asumm riscul c adversarul
va face o greeal.
De exemplu, s presupunem c avem de ales ntre dou mutri, ambele conducnd la
situaii foarte proaste dac adversarul joac perfect, dar una dintre ele este mai puin proast
dect cealalt. S presupunem n continuare, c mutarea mai puin promitoare ar putea conduce
la o situaie foarte bun pentru noi dac adversarul ar face o singur greeal. Dei procedura
Minimax ar selecta mutarea mai bun, ar trebui s alegem cealalt mutare, care este probabil mai
proast, dar posibil mult mai bun. Pentru a putea lua astfel de decizii n cunotin de cauz
31

trebuie s avem acces la modelul stilului de joc al adversarului, astfel nct s poat fi estimat
posibilitatea apariiei diferitelor greeli. Dar o astfel de analiz este foarte greu de realizat (15).


32

4. nvarea prin ntrire

4.1 Introducere

nc de la proiectul lui Shannon privind un algoritm pentru jocul de ah i programul lui
Samuel care nva s joace dame, domeniul jocurilor pe table complexe de joc ca: GO, ah,
dame, Othello sau table a fost pe scar larg privit ca un mediu ideal pentru testarea i explorarea
unei largi varieti de concepte i idei n Inteligena Artificial in general, i n domeniul
mainilor auto-instruibile, n special. Aceste jocuri pe table ne ofer provocarea unei
complexiti uriae i a unui rafinament desvrit necesar pentru a juca la un nivel de expert. n
acelai timp, datele de intrare i factorii de performan sunt clar i bine definite, iar mediul
jocului este automatizat, astfel nct este uor de simulat tabla de joc, regulile de joc i
determinarea ctigului, n momentul n care jocul se termin.
Putem spune c printele nvrii prin ntrire(reinforcement learning) este Gerald
Tesauro care a iniiat aceast idee n programul numit TD-Gammon. Acest program are la baz
o reea neuronal care se autoinstruiete s joace table, jucnd mpotriva ei nii i nvnd din
rezultate. Dei TD-Gammon i-a surclasat toi adversarii n materie de table, nu acesta a fost
motivul pentru care a fost dezvoltat. Tesauro a dorit, mai degrab, s exploreze cteva noi idei i
abordri ale problemelor tradiionale, folosind nvarea prin ntrire (16).

4.2 Concepte generale

Idee de baz a nvrii prin ntrire este urmtoarea: agentul care nva observ nite
date sau un model de intrare, i produce un semnal de ieire (numit i aciune sau semnal de
control). Imediat, agentul primete de la mediu o recompens sau un feed-back de ntrire, care
i arat ct de bun sau ct de ru a fost semnalul de ieire. Scopul nvrii este de a genera cele
mai bune aciuni care duc la un ctig maxim. De multe ori aceast recompens este ntrziat, ea
vine la sfritul unei lungi secvene de intrri i ieiri. Astfel cel care nva, trebuie s figureze
33

modul n care distribuie ctigul i penalizrile pentru diferitele intrri, ieirile conducnd spre
semnalul final de recompens.

Figura 4-1 Interaciunea dintre agent i mediu

nvarea prin ntrire poate fi vzut ca un microcosmos pentru toate problemele de
Inteligen Artificial. Un agent primete nite percepii de la mediul n care se afl, le
marcheaz ca fiind utiliti pozitive sau negative i apoi se decide ce aciune s execute (Figura
4-1).
La fiecare pas de timp t, agentul primete informaii despre starea n care se afl, s
t


S,
unde S este mulimea strilor posibile, i pe baza acestei informaii selecteaz aciunea a
t


A(s
t
)
unde A(s
t
) este mulimea de aciuni disponibile din starea s
t
. La urmtorul pas, n parte ca o
consecin a aciunii efectuate, agentul primete o recompens numeric r
t+1
R, i se afl ntr-o
nou stare s
t+1
(17).
nvarea prin ntrire a atras de-a lungul timpului un foarte mare interes datorit acestei
paradigme a agentului inteligent care nva singur din propria experien, fr ajutorul unui
profesor inteligent. n contrast, pentru nvarea supervizat, este nevoie de un profesor, care
pentru fiecare set de date de intrare, sa-i explice agentului care este output-ul corect.
34

Din pcate, cu toat atenia care a fost acordat acestui tip de nvare de-a lungul anilor,
pn acum s-au realizat destul de puine succese practice n rezolvarea la scar larg a
problemelor complexe din lumea real. Una dintre deficiene a fost aceea c n cazul nvrii
prin ntrire cu ntrziere, problema distribuirii ctigului temporal a rmas extrem de dificil. O
alt problem ar fi aceea c cele mai multe abordrii ale nvrii prin ntrire au fost limitate s
nvee folosind tabele de cutare sau funcii liniare de evaluare, nici una dintre acestea ne fiind
adecvate pentru cele mai multe clase de probleme din lumea real.

4.2.1 nvarea bazat pe Diferene Temporare

n ultimii ani s-au iniiat mai multe concepte menite s ntmpine deficienele descrise
mai sus. Unul dintre acestea a fost prezentat de Sutton i denumit Temporal Difference learning
- bazat pe Diferene Temporare (sau simplu TD). Ideea principal a metodei TD este nvarea
pe baza diferenei ntre prediciile temporale succesive. Cu alte cuvinte, scopul nvrii este de a
aduce predicia curent a agentului, pentru datele de intrare curente, ct mai aproape de
urmtoarea predicie, de la urmtorul pas.
Cea mai recent astfel de metod, este un algoritm conceput pentru a antrena reele
neuronale cu mai multe straturi, i este denumit TD(lambda). Acesta are la baz un semnal
euristic de eroare pentru fiecare pas, calculat ca diferena dintre dou predicii succesive, care
deviaz nvarea. Apoi, dup ce o eroare de predicie a fost gsit la un anumit pas (de timp), se
ia n calcul deprecierea exponenial pe care eroarea o produce n timp, i estimrile precedente,
pentru strile precedente sunt corectate. Durata de timp a deprecierii exponeniale este ajustat de
parametrul lambda (18).

4.3 TD-Gammon

Dac n materie de ah, Deep Blue este considerat naul maetrilor, fiind primul
program care a nvins un campion mondial, n materie de table meritul i revine programului TD-
35

Gammon. Prima versiune a acestui program a fost realizat n anul 1991 de ctre Gerald Tesauro,
care civa ani mai trziu, a participat i la proiectarea lui Deep Blue. TD-Gammon a fost
conceput ca o cale de a explora capabilitatea unei reele neuronale multistrat antrenat cu
TD(lambda), de a nva funcii complexe neliniare. A fost de asemenea conceput pentru a
realiza o comparaie detaliat ntre conceptul de nvare bazat pe diferene temporare i
alternativa acestei idei: nvarea supervizat pe un set de exemple provenite de la maetri .

4.3.1 Prezentarea jocului de table

Table este un joc antic, pentru doi juctori, care fascineaz datorit faptului c implic
ansa. ntre dou mutri fiecare juctor trebuie s arunce zarurile. Nu vom insista n cele ce
urmeaz asupra detaliilor de joc, ci ne vom referi mai degrab la problemele pe care le implic
implementarea unui astfel de joc.
De-a lungul anilor s-a dovedit extrem de dificil realizarea unui program care s joace
table la nivel de expert. Dac privim o reprezentare simpl doar a finalului de joc, este posibil s
concepem un program care pe baza unei cutri s joace perfect. Oricum, aceast abordare nu
poate fi adaptat la ntregul joc, datorit numrului imens de stri posibile (aproximativ 10
20
).
Mai mult, fora brut a cutrii n adncime, care a dat rezultate foarte bune pentru jocuri ca ah,
dame sau Othello, nu este mai este posibil datorit factorului uria de ramificare, provocat de
implicarea zarurilor. Pentru fiecare mutare, sunt 21 de combinaii posibile de zaruri, fiecare
dintre acestea putnd fi jucat n aproximativ 20 de moduri, rezultnd astfel o rat de ramificare
de ordinul sutelor. Aceasta este mult mai mare dect la dame sau ah ( n general pentru aceste
jocuri factorul este 8-10 pentru dame i 30-40 pentru ah), i mult prea mare pentru a atinge o
adncime semnificativ chiar i cu cele mai rapide super-computere existente.
n absena unei cutri n adncime, programele de table trebuie s se bazeze pe o analiz
a poziionrii pieselor. Abordarea tipic a acestei probleme a constat n a lucra ndeaproape cu
experi umani o lung perioad de timp, i a ncerca conceperea unei funcii de evaluare euristice
care s imite ct se poate de bine poziionarea, cunotinele i judecata experilor. Folosind
aceast tehnic s-au obinut rezultate bune (programul Neurogammon al lui Tesauro), dar a
36

rmas i un decalaj serios ntre modul de joc al celor mai buni oameni, i abilitatea
programatorilor de a ncapsula judecata uman ntr-o funcie de evaluare.
O alt problem este faptul c expertiza uman care este emulat, nu este infailibil. n
jocuri ca Othello sau table, n ultimii 20 de ani, s-a produs o schimbare substanial asupra
modului n care experii evalueaz poziiile. Referitor la multe convingeri ale trecutului, despre
care experii aveau o prere unanim, se crede astzi c sunt cu siguran greite, i innd cont
de aceasta, programatorii nu sunt ferm convini s accepte nici actualele preri.

4.3.2 Modul de nvare

TD-Gammon reprezint o abordare radical diferit asupra implementrii unui program
capabil de o sofisticat analiz a poziionrii pieselor. Contrar ncercrii de a imita oamenii, TD-
Gammon folosete propriu mod de joc, nvnd din experienele jocului mpotriva lui nii.
Dei pare un evident handicap, lipsa tutelajului unui maestru uman, i ofer libertate, n sensul c
nu este influenat de anumite prejudecai umane, care pot fi greite sau nesigure.
La baza lui TD-Gammon este o reea neuronal, ilustrat n Figura 4-2, organizat ca o
arhitectur standard de perceptron multistrat (MLP) (19). Aceast arhitectur, folosit de
asemenea n algoritmul de propagare napoi (backpropagation) pentru nvarea supervizat,
poate fi privit ca un aproximator generic de funcii neliniare. Fiecare neuron din stratul de
neuronal de intrare are o valoare de activare care reprezint un stimul extern. Acesta trimite
valoarea de activare fiecrui neuron din stratul ascuns cu care este conectat. Fiecare neuron al
stratului ascuns calculeaz propria sa valoare de activare, depinznd de valorile de activare pe
care le primete de la neuronii de intrare. Acest semnal este apoi trimis neuronilor din stratul de
ieire sau urmtorului strat ascuns, de neuroni, n cazul n care exist mai multe straturi ascunse.
Aceti neuroni din stratul ascuns calculeaz valorile de activare n acelai fel i le trimit mai
departe vecinilor. n cele din urm semnalul provenit de la neuronii de intrare se propag prin
reea pentru a determina valorile de activare pentru toi neuronii de ieire (17).

37



Figura 4-2 Structura reelei neuronale cu trei straturi

Procedura de nvare pentru TD-Gammon este urmtoarea: reeaua observ o secven
de poziii ale tablei de joc, ncepnd cu poziia de start i terminnd cu poziia final, n care unul
dintre juctori i-a scos toate piesele. Poziiile sunt reprezentate ca vectori x[1], x[2], , x[f],
date de intrare pentru reeaua neuronal. La fiecare pas de timp din secven corespunde unei
mutri fcute de unul dintre juctori. Pentru fiecare vector de intrare x[t] exist un vector de
ieire Y[t] care reprezint o estimare a calitii acestuia. Pentru acest joc, Y[t] este un vector cu 4
componente corespunztor celor 4 posibile rezultate: ctig Albul, ctig Negrul, victorie
normal sau mar.
La fiecare pas de timp este aplicat algoritmul TD(lambda) pentru a schimba ponderile
reelei, dup urmtoarea formul:
38

+1

=
+1

=1


Alfa este o constant cu valoare mic numit de obicei coeficient de nvare, w este
vectorul ponderilor care parametrizeaz reeaua i

este gradientul ieirii reelei.


Lambda este un parametru euristic menit s controleze ct de departe s mearg
recalcularea estimrilor precedente, n urma gsirii unei erori la un anumit pas de timp. La
sfritul fiecrui joc, se d o recompens final z (n forma descris mai sus). Ecuaia precedent
este folosit pentru schimbarea ponderilor, excepie fcnd diferena (z Y[f]) n locul diferenei
(Y[t+1] Y[t]) (16).

4.3.3 Rezultate

n primele experimente, datele de intrare introduse cuprindeau numai informaii despre
tabla de joc (numrul pieselor albe i negre din fiecare locaie) i nu conineau nici o informaie
adiional despre modul de joc cum ar fi tria unui blocaj sau probabilitatea de a fi scos.
n timpul antrenrii, reeaua neuronal este folosit pentru a selecta mutri pentru ambele
pri (Alb i Negru). La fiecare pas de-a lungul unei partide, reeaua ncearc fiecare mutare
posibil. Va alege mutarea care aduce cel mai mare ctig pentru partea care trebuie s fac
mutarea. Cu alte cuvinte, reeaua nva din rezultatele jocului mpotriva ei nii. Aceast idee
este folosit chiar i la nceputul jocului cnd ponderile reelei sunt luate aleator i chiar i
strategia folosit este una aleatoare. Iniial aceast metod pare s nu produc nici cea mai
sensibil nvare, pentru c strategia aleatoare este una extrem de rea, i jocurile dureaz extrem
de mult: cu mutri ntmpltoare de ambele pri, partidele au nevoie zeci sau chiar sute de
mutri. n contrast, n mod normal o partid are maximum 50-60 de mutri.
De-a lungul primelor cteva mii de jocuri de antrenament, reeaua a nvat cteva
strategii i tactici elementare ca scoaterea adversarului sau practicarea unui joc sigur. Strategii
39

mai sofisticate au aprut dup cteva zeci de mii de jocuri. ncurajator a fost faptul c odat cu
creterea numrului de jocuri de antrenament se mbuntete si performana.
Cele mai bune rezultate au fost obinute cu o reea neuronal cu 40 de neuroni n startul
ascuns, care a fost antrenat 200 000 de partide. n aceste programul era capabil s joace foarte
bine la un nivel intermediar, ns foarte interesant s-a dovedit a fi organizarea spaial a
ponderilor reelei neuronale cu valori pozitive i negative (16).
Aceast prim versiune TD-Gammon 1.0 aprut n 1991, s-a dovedit a fi cel mai bun
program de table conceput pn la aceea dat, mai mult, era capabil s surclaseze toate
programele concurente. Programul a mai fost mbuntit n urmtorii ani, prin creterea
numrului de jocuri de nvare i adugarea unor strategii auxiliare, ajungnd sa joace de la egal
la egal cu maetri umani.
Programul Jocuri de antrenament Adversari Rezultate
TDG 1.0 300 000 Robertie, Davis,
Magriel
+13 puncte / 51de jocuri
(-0.25 ppj)
TDG 2.0 800 000 Goulding, Woolsey,
Snellings, Russell,
Sylvester
-7 puncte / 38 de jocuri
(-0.18 ppj)
TDG 2.1 1 500 000 Robertie -1 punct / 40 de jocuri
(-0.02 ppj)
Tabel 4-1

4.4 Concluzie

nvarea prin ntrire este o nou exprimare a problemelor de Inteligen Artificial. Un
agent ntr-un mediu primete semnale, le ataeaz unor utiliti pozitive sau negative i apoi se
decide ce aciune s aleag. Sarcina de nvare poate varia n funcie de anumite situaii:
Mediul care poate fi accesibil i inaccesibil.
40

Agentul poate ncepe cu o anumit cunoatere despre mediu sau va trebui s
nvee singur.
Recompensele pot fi recepionate doar n stri finale sau i n stri intermediare.
Recompensele pot fi valori numerice ale funciei de utilitatea sau pot fi doar
sugestii (mutare bun, mutare rea).
Agentul poate s fie pasiv(doar observ mediul i nva utilitatea strilor) sau
activ(acioneaz conform cu informaiei ce a nvat-o i poate sugera explorarea
unor pri necunoscute din mediu ).

Sunt multe aplicaii care aplic nvarea prin ntrire, din afara domeniului jocurilor,
cum ar fi controlul roboilor sau strategii financiare. Totui pentru acest tip de aplicaii pierdem
un mare avantaj pe care l avem n jocuri i anume posibilitatea de a genera i simula ntregul
mediu (17).

41

5. Aplicaia X O

5.1 Analiza

5.1.1 Importana subiectului

Abilitatea de a juca jocuri este foarte important pentru managementul sistemelor
informatice. nvarea prin ntrire te nva ce s faci cum s asociezi situaii spre aciuni
astfel nct s maximizezi o recompens numeric. Elevului nu i se spune ce aciune s fac,
precum n cele mai multe forme de instruire a mainilor, dar n schimb, el trebuie s descopere
care aciuni i aduc cea mai mare recompens, ncercndu-le pe toate (18).

5.1.2 Jocul Tic-Tac-Toe

Aplicaia X O, propune o ilustrare a ideii generale de nvare prin ntrire aplicat
teoriei jocurilor, n contrast cu abordarea tradiionala: Minimax.
Pentru aceasta am folosit cunoscutul joc Tic-Tac-Toe (cunoscut si ca X O). Doi
juctori mut pe rnd folosind o tabla de joc de dimensiune 3 x 3. Unul dintre ei joac cu X, iar
cellalt cu O, pn cnd unul dintre ei ctig, reuind s plaseze trei semne de-ale sale pe o
linie, coloan sau diagonal. Dac nici un juctor nu reuete aceasta i toat tabla este
completat, jocul se ncheie la egalitate.
42


Figura 5-1 Tabla de joc


Figura 5-2 X a ctigat


Figura 5-3 Remiz



43

5.1.2 Tic-Tac-Toe, o alt abordare

Un bun juctor va reui mereu s nu piard la Tic-Tac-Toe, dar s presupunem c avem
de a face cu un juctor imperfect, care uneori joac greit, permindu-ne astfel s ctigm.
Pentru moment s considerm c victoriile i remizele sunt la fel de rele pentru noi. Cum am
putea construi un juctor care s gseasc imperfeciunile din jocul adversarului su i astfel s
nvee s-i maximizeze ansele de a ctiga ?
n ciuda faptului c exemplul de fa este o problem foarte simpl, ea nu poate fi cu
adevrat rezolvat ntr-un mod satisfctor, folosind tehnicile tradiionale. De exemplu, clasicul
Minimax, nu este corect n aceast situaie, deoarece el presupune un anumit mod de joc din
partea adversarului. De exemplu, un juctor Minimax, nu va atinge niciodat o stare a jocului din
care ar putea s piard, chiar dac, de fapt, el ctig mereu din acea stare, datorit jocului
incorect al adversarului. Optimizrile clasice pentru problemele cu decizii secveniale, precum
programarea dinamic, pot calcula o soluie optim pentru orice adversar, dar pentru aceasta
trebuie s cunoasc o specificaie complet despre adversar, incluznd probabilit atea cu care
acesta face fiecare mutare din orice stare a tablei de joc. Presupunem n continuare c nu deinem
aceste informaii sau c nu sunt o prioritate pentru noi, aa cum nu sunt o prioritate pentru
majoritatea problemelor practice. Dar pe de alt parte, acest tip de informaii pot fi obinute din
experien, n acest caz jucnd multe partide mpotriva adversarului din care sa-i nvm
comportamentul.
O abordare evolutiv a acestei probleme se poate baza pe cutarea n spaiul tacticilor
posibile, a uneia cu probabilitatea cea mai mare de a ctiga mpotriva adversarului. n acest
context, tactica este o regul care i spune juctorului ce mutare s fac pentru fiecare stare a
jocului. Pentru fiecare tactic analizat, o estimare a anselor ei de victorie, poate fi obinut
jucnd un numr de partide mpotriva adversarului. Aceast evaluare, ne va arta apoi care
tactic sau care tactici s fie analizate n continuare. Pentru a mbuntii tactica, se pot aplica
sute de metode de optimizare cum ar fi Hill-climbing sau un algoritmi genetici. Cutnd direct
n spaiul tacticilor, nseamn c toate tacticile sunt propuse i comparate pe baza unor evaluri
scalare.
44

n continuare vom prezenta cum problema Tic-Tac-Toe poate fi abordat folosind
nvarea prin ntrire i funcii de aproximare. Fiecrei stri posibile n care poate ajunge jocul,
i este atribuit o valoare reprezentnd probabilitatea de a ctiga din acea poziie. Starea A este
considerat mai bun dect starea B, dac probabilitatea de a ctiga din A este mai mare dect
cea din B. Presupunnd c jucm cu X, atunci pentru toate strile n care acest semn apare de
trei ori pe o linie, coloan sau diagonal (Figura 5-2), probabilitatea de a ctiga este 1, pentru
c am ctigat deja. Similar pentru strile n care O apare de trei ori pe o linie, coloan sau
diagonal probabilitatea de a ctiga este 0, pentru c nu mai putem ctiga din acea stare. Pentru
nceput vom seta valorile iniiale ale strilor cu 0.5(sau o valoare aleatoare), aceasta nsemnnd
c estimarea de a ctiga din fiecare stare este de 50 %.
Aadar, procesul de nvare se bazeaz pe recompensele primite la finalul fiecrui joc de
antrenament. Pentru a selecta mutrile pe care s le facem, vom examina fiecare dintre strile n
care putem ajunge, pentru fiecare dintre mutrile noastre posibile. n cele mai multe cazuri vom
muta dup metoda greedy, adic selectnd mutarea care ne duce n starea cu ceam mai mare
probabilitate de ctig. Uneori, vom selecta mutri n mod aleatoriu; acestea se numesc mutri de
explorare pentru c le folosim pentru a ajunge n stri n care, poate, altfel nu am ajunge
niciodat.
n Figura 5-4 este reprezentat o succesiune de mutri. Liniile continue reprezint
mutrile fcute n timpul jocului; liniile ntrerupte reprezint mutrile pe care le-am analizat ns
nu le-am fcut. Cea de-a doua mutare a noastr din figur este o mutare de explorare, pentru c a
fost fcut dei exista o mutare mai bun care ne-ar fi dus n starea e
*
, cotat mai bine. Mutrile
de explorare nu afecteaz nvarea aa cum fac celelalte mutri, producnd backup-uri precum
cele reprezentate de liniile curbe n figur i descrise n continuare.

45


Figura 5-4 Secven de mutri Tic-Tac-Toe

n timp ce jucm, schimbm valorile strilor n care ne aflm, ncercnd s facem nite
estimri ct mai precise asupra anselor de ctig din acele poziii. Pentru aceasta, facem un
back up al valorii strii dup fiecare mutare (mai puin cele de explorare), asupra strii
precedente ca n Figura 5-4. Mai precis, valoarea curent a strii precedente este ajustat s fie
ct mai apropiat de valoarea strii urmtoare. Aceast operaie se poate realiza schimbnd
valoarea strii anterioare cu o fracie din distana spre starea curent, ca n formula urmtoare:
+
unde s este starea curent, s este starea precedent, P(s) este estimarea valorii strii s, iar este
coeficientul de nvare.
46

Aceast regul de update este un exemplu de nvare bazat pe diferene temporare
(4.2.1), pentru c schimbrile se bazeaz pe diferena dintre estimri fcute n
dou momente de timp diferite. Dac coeficientul de nvare este redus corespunztor pe
parcursul jocurilor, metoda converge spre valorile corecte ale fiecrei stri, producnd astfel un
joc optim din partea juctorului nostru (18).

5.1.3 Reprezentarea nvrii

n elaborarea acestei aplicaii ne-am bazat pe ideile prezentate mai sus mbinate cu o reea
neuronal dup modelul lui Tesauro [] prezentat n (4.3.2). Aceast reea neuronal folosete o
arhitectur standard de perceptron cu straturi multiple, i poate fi privit ca un generator de
aproximri pentru funcii neliniare.
Datele de intrare pentru reeaua neuronal sunt de forma unui vector cu 6 componente
dup modelul:
1. Numrul de linii, coloane sau diagonale pe care juctorul are 1 X i poate ctiga
2. Numrul de linii, coloane sau diagonale pe care juctorul are 2 X i poate ctiga
3. Numrul de linii, coloane sau diagonale pe care juctorul are 3 X
4. - Numrul de linii, coloane sau diagonale pe care adversarul are 1 O i poate ctiga
5. - Numrul de linii, coloane sau diagonale pe care adversarul are 2 O i poate ctiga
6. - Numrul de linii, coloane sau diagonale pe care adversarul are 3 O
n timpul antrenamentului, reeaua primete cte o succesiune de astfel de input-uri
fiecare reprezentnd cte o stare a jocului ncepnd cu starea de start i terminnd cu cea final
cnd una dintre pri ctig sau jocul se termin la egalitate. Reeaua returneaz un output care
reprezint o estimare a valorii input-ului primit. n funcie de rezultat se primete o recompens:
1 pentru victorie, 0 pentru remiz i -1 pentru nfrngere. Aceast recompens este mai apoi
redistribuit pentru a schimba valorile ponderilor dintre straturile reelei (la nceputul nvrii au
fost iniializate cu valori mici aleatoare). Modificarea ponderilor se face dup fiecare pas prin
aplicarea algoritmului TD(lambda), descris n 4.2.1, dup formula:
47

+1

=
+1

=1



Pentru jocurile de antrenament reeaua neuronal joac mpotriva ei nii. Pentru o
mutare joac din perspectiva lui X, iar pentru urmtoarea din perspectiva lui O. n timpul acestor
partide 10% dintre mutri sunt de explorare, iar coeficientul de nvare este setat la valoarea
iniial = 0.1.
Dup cteva mii de jocuri de antrenament, reeaua ajunge la un nivel ridicat de joc,
ajungnd s fie nvins numai n situaii izolate. Este de asemenea interesant de vzut cum
decurge nvarea dup un numr mai mic de jocuri sau schimbnd coeficientul de nvare.

5.2 Implementarea

5.2.1 Mediul de programare

Aplicaia X-O este realizat n limbajul de programare C# i platforma .Net 2.0.
Interfaa grafic a fost realizat folosind componentele grafice ale platformei, direct din
namespace-ul System.Windows.Forms.
Tabla de joc este format din 9 csue, fiecare dintre ele fiind implementat folosind
clasa Ptrat, care motenete System.Windows.Forms.UserControl. Metoda principal a acestei
clase este protected override void OnPaint(PaintEventArgs pea), care suprascrie metoda
OnPaint, fiind cea care deseneaz pe tabla de joc X sau O n urma unei mutri.
Aplicaia are la baz doi algoritmi, folosii n jocul Tic-Tac-Toe, pe de o parte algoritmul
Minimax, iar pe de alt parte, nvarea prin ntrire mbinat cu o reea neuronal.

48

5.2.2 Minimax

Datorit faptului c jocul are o complexitate relativ redus, am reuit implementarea unui
algoritm care s poat cuta n adncime pn n strile terminale, astfel nemaiavnd nevoie de o
funcie de evaluare. Pentru strile finale am folosit o funcie de utilitate care ofer recompensa 1
pentru victorie, 0 pentru egalitate i -1 pentru nfrngere. n continuare vom ilustra procedura
recursiv, care gsete cea mai bun mutare pentru juctorul Minimax:
private MMove GetCeaMaiBunaMutare(MTabla tabla, int JucatorCurent)
{
MMove best = null;
int MutariPosibile = tabla.PozitiiLibere;
int i = r.Next(3); //incepem pe o pozitie aleatoare
int j = r.Next(3);

while (MutariPosibile > 0)
{
do
{
if (i < 2)
i++;
else
if (j < 2)
{
i = 0;
j++;
}
else
{
i = 0;
j = 0;
}
}
while (tabla.Table[i][j] != 0);

MMove noua = new MMove(i, j);
MutariPosibile--;


MTabla NewTabla = new MTabla(tabla);
NewTabla.FaMutare(JucatorCurent, noua);
NewTabla.VerificCastigator();

if (NewTabla.Stare == 2)//joc in progres
{
MMove temp = GetCeaMaiBunaMutare(NewTabla, -
JucatorCurent, alfa, beta);
noua.valoare = temp.valoare;
}
else //joc in stare finala
49

{
noua.valoare = NewTabla.Stare;
}
//daca e noua cea mai buna mutare de pana acum
if (best == null || (JucatorCurent == pc && noua.valoare <
best.valoare) ||
(JucatorCurent == om && noua.valoare > best.valoare))
{
best = noua;
}
}

return best;
}

5.2.3 nvare prin ntrire i reea neuronal

n elaborarea acestei pri a aplicaiei am folosit mai multe clase, dintre care, cele mai
importante ar fi urmtoarele: ReeaNeuronal, Joc, AgentInteligent, JuctorOm. Tabla de joc a
fost codificat intr-o matrice de 3 x 3 iniializat cu valoarea 0. Pe parcursul jocului se
completeaz cu valori: -1 pentru X i 1 pentru O.
Vom prezenta n continuare procedura care st la baza antrenrii reelei neuronale:
public void trainNet(int Player)
{
int[][] table = new int[3][];
for (int i = 0; i < 3; i++)
table[i] = new int[3];

int[][] BestTable = new int[3][];
for (int i = 0; i < 3; i++)
BestTable[i] = new int[3];

double Recompensa = 0.0;
int MoveNum = 0;
bool MuatreDeExplorare;

while (true)
{
MuatreDeExplorare = getBestTable(table, BestTable, Player,
true);
copyTable(BestTable, table);
if (win(table)) //jocul s-a terminat cu victorie
{
Recompensa = Player * -1;
}
else
50

{
Recompensa = 0.0;
}
if (!MuatreDeExplorare) //daca nu e mutare de explorare
{
ReteaN.updateWeights(0.0, (double[])prepareInputVector(-
1, table).Clone());
}
if (Recompensa != 0)
{
break;
}
else if (MoveNum == 8)
{
break;
}
MoveNum++;
Player *= -1; // schimba jucatorul
}

ReteaN.finishUpdateWeights(reward); //face update la ponderile
retelei
NrJocuri++;
}

5.3 Manual de utilizare

Pentru rularea aplicaia X-O avem nevoie de un computer echipat cu un sistem de operare
Microsoft Windows i .Net Framework 2.0. La lansarea n execuie apare tabla de joc, i implicit
este pornit un joc mpotriva lui Minimax (Figura 5-5). Apoi juctorul (uman) poate da click pe
una dintre csuele libere pentru a o marca. Imediat calculatorul va rspunde cu o mutare i cei
doi i succed mutrile pn cnd jocul se ncheie, cu remiz sau victoria unuia dintre ei. n
Figura 5-6 este ilustrat tabla de joc dup terminarea partidei, n acest caz fiind egalitate ntre
juctorul uman i Minimax. Titlul iniial al ferestrei a fost OM vs PC(Minimax), iar la
ncheierea partidei se va schimba n funcie de rezultat. n cazul de fa va deveni Remiz !
(Figura 5-6).
51


Figura 5-5 Tabl de joc goal


Figura 5-6 Joc terminat la egalitate

52

Meniul aplicaiei are urmtoarele componente:
1. Fiier, cu urmtoarele opiuni (Figura 5-7):
a. Joc nou, cu opiunile de a ncepe un joc nou mpotriva lui Minimax, sau
mpotriva reelei neuronale instruit cu TD. n cazul n care este selectat cea
de-a doua opiune, va mai aprea o fereastr de unde se pot selecta detalii
despre modul de nvare: valoarea coeficientului alfa i numrul de jocuri de
antrenament. Opiunea de joc nou poate fi accesat n orice moment, chiar
dac un joc se afl deja n desfurare.
b. Ieire, se produce nchiderea aplicaiei, fr a mai fi solicitat nici un mesaj de
confirmare. Se poate apela i prin combinaia de taste CTRL+I.

2. Opiuni, cu urmtoarele componente (Figura 5-8):
a. Omul mut primul, seteaz ca juctorul care face prima mutare s fie omul.
b. PC mut primul, ca juctorul care face prima mutare s fie computerul.
Opiunile a i b autoexclud n mod reciproc.
c. Omul e cu X, juctorul uman este cel care folosete X.
d. PC e cu X, computerul este cel acre folosete X.
Opiunile c i d autoexclud n mod reciproc.
Acest sub meniu este funcionabil numai dup terminarea jocului n curs.
Modificrile fcute n timpul unui joc nu sunt luate n calcul.
53


Figura 5-7 Meniu Fiier


Figura 5-8 Meniu Opiuni

54

6. Concluzii

n lucrarea de fa, ne-am propus s prezentm nvarea prin ntrire, mai exact nvarea
bazat pe diferene temporare, ca o alternativ la abordarea tradiionala a jocurilor, folosind
metoda Minimax.
Mai nti am prezentat abordarea tradiional a jocului Tic-Tac-Toe, folosind metoda
Minimax. Juctorul inteligent rezultat joac ntr-adevr perfect acest joc (nu pierde niciodat),
dar folosete o cutare n adncime costisitoare din punct de vedere al complexitii. Pentru un
joc mai complex cum ar fi tablele sau ahul, folosind Minimax nu am reui s construim un
juctor inteligent imbatabil, ci cel mult unul de nivel mediu.
n paralel, am reuit realizarea unui sistem avnd la baz o reea neuronal care nva s
joace Tic-Tac-Toe, fr a avea nici un fel de cunotine iniiale. Reeaua se autoinstruiete jucnd
un set de jocuri mpotriva ei nii i acordndu-i recompense dup fiecare partid. Este practic
o nvare din interaciunea cu mediul, reprezentat n acest caz de oponent. Dup cteva mii de
jocuri de antrenament ajunge s joace la un nivel foarte bun, fiind un adversar veritabil pentru
juctorul uman.
n jocurile de instruire, am pus reeaua s joace mpotriva ei nii, dar ar fi interesant de
vzut cum decurge nvarea dac partenerul de antrenament este juctorul Minimax. De
asemenea, pstrndu-i structura, acest sistem ar putea fi extins s joace table sau orice alt joc care
se desfoar pe o tabl.
Exemplul prezentat este destul de simplu i d impresia c nvarea prin ntrire este
limitat, ceea ce este departe de a fi adevrat. Ea poate fi aplicat nu numai n jocuri ci i ntr-o
mulime de alte domenii ale Inteligenei Artificiale, n rezolvarea multor probleme din lumea
real pentru care nc nu avem soluii concrete.

55

7. Bibliografie

1. Haugeland, John. Artificial Intelligence: The Very Idea. s.l. : MIT Press, 1989.
2. Winston, Patrick Henry. Artificial intelligence (3rd ed.). Boston : Addison-Wesley Longman
Publishing Co., Inc , 1992.
3. Rich, Elaine i Knight, Kevin. Artificial intelligence 2nd ed. New York : McGraw-Hill,
1991.
4. Kurzweil, Ray. The Age of Intelligent Machines. Cambridge : MIT Press, 1990.
5. Luger, G.F i Stubbliefeld, W.A. rtificial Intelligence : Structures and Strategies for
Complex Problem Solving. Redwood City : s.n., 1993.
6. Inteligena Artificial. Vasilescu, Raluca. 1996.
7. Dumitrescu, Dan. Principiile Inteligenei Artificiale. Cluj-Napoca : Ed. Albastr, 1999.
8. Glea, Dan i Leon, Florin. Curs de Inteligen Artificial: Universitatea Tehnic Gh.
Asachi Iai. [Interactiv] http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm.
9. Ghionea, Ionu. Inteligena Artificial. [Interactiv] http://www.catia.ro/articole/ai/ai.htm.
10. Wiens, Elmer G. Operations Research - Game Theory . [Interactiv]
http://www.egwald.ca/operationsresearch/gameintroduction.php.
11. Weiss, Adrienne J. Educational board game . s.l. : Buchanan Ingersoll Professional Corp. ,
1998.
12. Rosenthal, R. W. A class of games possessing pure-strategy, Nash equilibrium. s.l. :
International Jounal of Game Theory 2, 1973.
13. Minimax reference point approach and its application for multiobjective optimisation .
Yang, Jian-Bo. 3, Manchester : European Journal of Operational Research Manchester School
of Management, 2000, Vol. 126.
56

14. Stoean, Ctlin. Teoria Jocurilor. [Interactiv] http://inf.ucv.ro/~cstoean.
15. Pop, Horia F. i erban, Gabriela. Inteligena Artificial. Cluj-Napoca : UBB Cluj-
Napoca, 2004.
16. Temporal Difference Learning and TD-Gammon. Tesauro, Gerald. 3, s.l. : Communications
of the ACM, 1995, Vol. 38.
17. erban, Gabriela. Sisteme multiagent n Inteligena Artificial distribuit. Cluj-Napoca :
Editura Risoprint, 2006.
18. Sutton, Richard i Barto, Andrew. Reinforcement Learning: An Introduction. s.l. : MIT
Press, 1998.
19. Dumitrescu, Dan. Reele neuronale. Teorii i aplicaii. Bucureti : Teora, 1996.

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