Sunteți pe pagina 1din 23

Proiecte la disciplina Inteligen Artificial

Informatic 3, Sem. 2, anul 1999-2000


Exist dou tipuri de proiecte: individuale i colective. n plus, mai multe proiecte
(individuale ori colective) pot s fie integrate n grupuri de proiecte, deci orientate ctre o
funionalitate global de sistem. !rin aceasta se urmrete ca studenii s colabore"e n
vederea reali"rii unor aplicaii complexe. n cadrul unui grup, proiectele se vor reali"a n
ideea de a sc#imba informaii ntre ele. $r#itectura recomandat este aceea n care fiecare
modul reali"ea" o funcie dat, fiind cuplat n sistem prin intermediul a trei tipuri de
pori: de intrare, de ieire i de acces la resurse (v. %igura &).
igura 1: 'nterfaa unui modul cu sistemul
'ntrrile i ieirile vor fi compatibili"ate prin intermediul unor standarde care trebuiesc
preci"ate cu exactitate. (escrierea standardelor de intrare)resurse)ieire urmrete i
obinuirea studentului cu elaborarea documentaiei. !redarea fiecrui proiect va consta
din:
* o pre"entare a codului surs cu un dialog asupra soluiilor adoptate,
* documentaia care s descrie:
o intrrile)resursele)ieirile i standardele lor+
o funcionalitatea modulului+
o comentarea funciilor.
* demonstraia de funcionare.
%iecare proiect colectiv trebuie ,aprat- de fiecare membru al ec#ipei, pe "onele
contribuiei fiecruia. !restaia individual n momentul predrii este deci important, dv.
trebuind a convinge c ai avut o contribuie activ la reali"area lui. $cest lucru poate s
duc inclusiv la notri diferite a membrilor ec#ipei.
n plus, o component n notarea proiectelor ce snt integrate n grupuri o va constitui
funcionarea ansamblului. Este deci important ca dv. s abordai problema reali"rii
aplicaiei n ntregul ei, s v organi"ai, s v ntlnii i s discutai periodic pentru
re"olvarea problemelor de interfa dintre dv., iar n anumite ca"uri c#iar s dai o mn
de a.utor ec#ipelor care au dificulti.
modul
resurse
standarde
intrri
standarde
ieiri
ieiri intrri
!rupul de proiecte A"#$%A&' ndrumtor (an /ristea
A##$1 ( )arcator de e*presii
0r. studeni: 1
2ei scrie un program capabil a marca ntr*un format ca cel de mai .os, expresiile
cuprinse ntr*un text dat ce snt gsite dup diferite sc#eme de adnotare (criterii).
3arca.ele generate vor fi de forma:
4tag '(5ident ...6expresie4)tag6
unde: tag este o etic#et, ident este un identificator unic, iar expresie este expresia de
adnotat.
7e vor implementa dou sc#eme de adnotare:
* e*presii c+eie: se consider o list dat de expresii n limba rom8n.
3arcarea va trebui s nu fie sensibil la forma flexionar a cuvintelor (n ca"ul
cuvintelelor din list ce snt variabile). /mpul tag va fi n acest ca" cw (o
simplificare a sintagmei engle"e cue-word). n lista de atribute a marca.ului va
apare atributul type cu o valoare care este dat n lista iniial pentru fiecare
expresie n parte.
* Expresia de adnotat, printr*o perec#e de doi indeci (de nceput i de
sfrit) ai literelor din text, este dat de un un alt proces mpreun cu tag i
perec#ile atribut5valoare ce trebuiesc incluse n marca..
'ndicaii i bibliografie
2ei colabora cu proiectele: 3arcator de propo"iii, 3arcator interactiv de clau"e,
9perator de marca.e 7:3;.
<esursele vor fi constituite n acest ca" din lista de expresii i tipuri.
A##$2 ( )arcator de propo,iii
0r. studeni: 1
7e consider un text n limba rom8n n intrare. 7 se scrie un program capabil a gsi
graniele dintre propo"iii. 'eirea va fi constituit din textul iniial mbogit cu marca.e
(7:3;) de forma:
4seg '(5ident6propoziie4)seg6
unde ident este un identificator unic, iar propoziie este propo"iia de marcat. !rogramul
va trebui s implemente"e doar criteriile de adnotare, adnotarea propriu*"is fiind
reali"at de proiectul 3arcator de expresii, cu care vei colabora.
'ndicaii i bibliografie
3irela !etrea
A##$3 ( )arcator interacti- de clau,e
0r. studeni: 1
7e va scrie un program care va asista un proces manual de marcare a limitelor de clau"e
ntr*un text. 9 clau" este n general o propo"iie, dar poate fi i o construcie sub*
propo"iional n care exist un predicat. =tili"atorul va trebui s poat introduce, ntr*o
manier grafic atractiv, semne grafice care vor denota limite de clau"e, n locurile
indicate de el n text prin micri de mouse i click*uri. !rogramul va comunica cu
proiectul 3arcator de expresii pentru ca acesta s opere"e marcarea efectiv a clau"elor,
n maniera 7:3;:
4unit '(5ident6clauz4)unit6
unde ident este un identificator unic. >extul originar nu poate fi afectat n nici un fel, dar
programul va trebui s*i sugere"e utili"atorului pe ecran locurile unde aceste clau"e au
fost nscrise. !rogramul va trebui de asemena s ofere posibilitatea tergerii unor marca.e
de.a nscrise.
'ndicaii i bibliografie
A##$. ( $perator de marca/e S!)0
0r. studeni: 1
7e va scrie un program care s poat opera asupra unor texte marcate 7:3;. 9peraiile
ce vor trebui reali"ate snt:
* elimin toate marca.ele de tipul m+
* elimin toate segmentele de text marcate cu tipul m (operaie distructiv
asupra textului)+
* extrag ntr*o list, toate segmentele de text din textul original, marcate cu
tipul m+
* combin dou fiiere ce conin marca.e asupra aceluiai text original ntr*
unul singur. 3arca.ele re"ultate trebuie s satisfac condiia de ne*ncruciare. Ele
pot ns fi cuprinse unele n altele (ve"i figura). 3arca.ele care nu respect
condiia de nencruciare vor trebui semnalate. =tiili"atorul ar trebui s aib
controlul pentru a #otr modificrile ce trebuiesc reali"ate n marca.e pentru
corectarea acestor erori.
'ndicaii i bibliografie
!rogramul va trebui s comunice obligatoriu cu proiectul 3arcator de expresii pentru
stabilirea n comun a structurii fiierului de marca.e. 9rice operaii asupra marca.elor se
reali"ea" asupra unui fiier de acest tip i nu asupra textului original, care nu trebuie s
fie afectat n nici un fel.
!utei consulta: /ristea, (an+ 'de, 0anc?+ <omar?, ;aurent (&@@A). 3arBing*up 3ultiple
vieC of a text. (iscourse and <eference. 'n !roceedings of E;<$, :ranada (postcript file
and !oCer!oint presentation)
A##$1 ( 2n-are reguli de delimitare a clau,elor
0r. studeni: D
marca.e ncruciate * invalide
marca.e ncuibrite * valide
Evidenierea limitelor de clau"e se va face pe ba"a unor cuvinte*c#eie ce snt marcate n
text. Exemplele urmtoare pun n eviden cteva astfel de ca"uri:
(ei afar ploua, am plecat de acas fr umbrel.
/nd omul a a.uns pe fale", fiind ng#esuit de reporteri, a plecat n mare grab.
/u toate c ceasul arta c nu mai e timp pentru o interogare complet, totui, rumegnd
toat "iua o cale de a*l face pe EalBer s se dea de gol, /olombo i strecur subtil un
motiv care s*l fac s se gndeasc c o bnuial planea" asupra lui, astfel ajutndu*l s
fac o greeal.
n exemplele de mai sus cuvintele c#eie care a.ut la delimitarea clau"elor snt subliniate.
$lte indicatoare de limite de clau"e pot fi verbele la gerun"iu (marcate aici n italic) i
(uneori) semnele de punctuaie. 7 mai reinem c o clau" conine cel puin un verb la
un timp finit.
7 se scrie un program care, plecnd de la un text n care snt marcate expresii c#eie (dei,
cnd, cu toate c etc.), verbele (cu timpul la care apar), semnele de punctuaie, i limitele
de demarcare a clau"elor, nva reguli de gsire a acestor limite.
!entru experimentare se va folosi un text de o pagin de carte n care se vor marca n
7:3; toate elementele considerate importante pentru procesul de nvare. !rogramul va
trebui s se comporte la fel pe orice alt text marcat corespun"tor.
'ndicaii: $rticolele sunt disponibile aici.
!rupul de proiecte $P'&A3II P' A&4$&I ndrumtor (an /ristea
%&''1 ( Sti-a de ar5ori
0r. studeni: 1
7e consider o list coninnd un ir de simboluri i o stiv ale crei intrri snt arbori. =n
g#icitor dictea" la fiecare pas una din dou operaii de efectuat asupra listei i stivei:
* s#ift: simbolul curent din list este luat de acolo i introdus n stiv ca un
arbore trivial format dintr*un singur nod+
* reduce r: primele dou elemente din stiv snt scoase i un nou element
este introdus. $cesta este un arbore avnd ca nod rdcin simbolul r i ca fii pe cei
doi arbori eliminai din stiv.
!rogramul dumneavoastr trebuie s permit simularea unui proces de acest tip, pas cu
pas. =n anumit tip de g#icitor va trebui s fie generatorul de secvene s#ift*reduce, cu
care proiectul dv. va trebui s se poat interfaa. 'eirea programului dv. arborele
reali"at dup consumarea simbolurilor din list i a irului de operaii, va trebui s poat
fi folosit ca intrare de acelai program menionat.
'ndicaii i bibliografie
(aniel 3arcu (&@@@). $ (ecision*Fased $pproac# to <#etorical !arsing, 'n !roceedings
of $/; &@@@.
%&''2 ( !enerator de sec-ene shift-reduce
0r. studeni: 1
7e va scrie un program care, plecnd de la un arbore dat va genera irul unic de secvene
shift-reduce care poate duce la generarea arborelui (ve"i proiectul 7tiva de arbori). 'eirea
programului dv. trebuie s poat fi transmis ca intrare proiectului stivei de arbori, dup
cum arborele folosit n intrare trebuie s poat fi i unul furni"at de acelai proiect.
%&''3 ( Interfa -i,ual
0r. studeni: 1
2ei scrie un program capabil a vi"uali"a arbori ct i alte structuri de date (stive, co"i
etc.). $ceast interfa va fi cuplat cu simulatorul de stiv din proiectul 7tiva de arbori
pentru a urmri desfurarea unei simulri.
%&''. ( 6alculul e*presiilor ner-ur
0r. studeni: 1
=n arbore polari"at este unul n care fiecare nod este etic#etat 0 sau 7, dup cum este
considerat nucleu sau satelit. 0odurile frun" snt, n plus, numerotate n ordinea de la
stnga la dreapta. ;a orice nivel al arborelui, printre fiii unui nod printe exist cel puin
un nod nuclear.
7e va scrie un program care va ataa fiecrui nod al unui arbore binar polari"at dou
expresii, #ead i nervur, dup cum urmea".
Expresia +ead este o secven de etic#ete de noduri terminale, astfel:
&. expresia #ead a unui nod terminal este etic#eta sa+
1. expresia #ead a unui nod neterminal este concatenarea n ordinea apariiei lor de la
stnga la dreapta a expresiilor head ale descendenilor si nucleari.
Expresia ner-ur este secven de etic#ete de noduri terminale, astfel
&. nervura rdcinii este expresia sa head+
1. pentru fiecare nod nuclear al crui printe are nervura v, expresia nervurii este:
* dac nodul are un frate nenuclear n stnga de head h, atunci se!mark!h"# v", n
care: mark!" este o funcie care marc#ea" fiecare simbol din irul (de
exemplu, prin plasarea lui ntre parante"e, sau prim), iar se(# " este o funcie
de secveniere care ntoarce acea permutare a concatenrii simbolilor din i
dat de citirea de la stnga la dreapta a nodurilor corespun"toare simbolilor din
i pe frontiera terminal a arborelui. %uncia menine marca.ele asupra
simbolurilor, dac acestea exist i se!nil# " $ +
* altfel, v+
G. pentru fiecare nod nenuclear de head h al crui printe are nervura v, expresia
nervurii este:
* dac nodul este descendentul stng al printelui su, atunci se!h# v"+
* altfel, se!h# simpl!v"", unde simpl!" elimin toi simbolii marcai din expresia
argumentului .
7 observm c expresiile head se calculea" de .os n sus (bottom-up) n timp ce
expresiile nervur de sus n .os (top-down).
!rupul de proiecte &$4$ ndrumtor (an /ristea
7e are n vedere proiectarea unui sistem a crui comportare s fie similar cu activitatea
unui robot capabil a se orienta n spaiu. H<obotulH va primi o #art (cuprin"nd planul
unui eta. al unei cldiri), va fi plasat ntr*un anumit punct i i se va indica un alt punct n
care trebuie s a.ung. =n alt tip de activiti vi"ea" trasarea unor sarcini mai complexe,
ca de exemplu plasarea mai multor obiecte n diverse puncte ale cldirii i indicarea unei
configuraii finale a acestor obiecte. <obotul n acest ca" va trebui s*i planifice
micrile n vederea reali"rii planului, dup care va trece la execuia lui. (eplasarea
robotului va fi facilitat de existena unui radar plasat pe robot care*l va a.uta s
descopere configuraia locurilor pe care le vi"itea", pentru a le compara cu #arta i a*i
verifica astfel po"iia n plan la fiecare moment.
<esurs comun iniial dar actuali"abil:
* H#artaH repre"entnd planul cldirii.
<esurse comune permanent actuali"ate:
* HcldireaH o alt #art repre"entnd situaia real a cldirii. ntre H#artH i
HcldireH pot exista diferene datorate existenei unor obstacole (sau spargerii unor
ui)+
* Hpo"iiaH repre"entnd po"iia real a robotului n cldire.
/ele ce urmea" repre"int o descriere sumar i aproximativ a ar#itecturii acestui
sistem. /orecii pot oricnd fi operate de voi, cu condiia ca re"ultatul s fie superior celui
imaginat de mine, din cel puin unul din urmtoarele puncte de vedere: mai elegant, mai
general (adic permite luarea n calcul a mai multor posibiliti de comportament ale
robotului). 0u m interesea" o simplificare a ar#itecturii descrise care s duc la o
execuie mai eficient pentru un)unele ca"uri dar care s micore"e generalitatea.
mi imagine" acest sistem ca o ar#itectur avnt urmtoarele module i interaciuni n
comunicare ntre ele:
oc#i
picioare
comparare #art*teren
imagine virtual
imagine real
creier
planificator
evenimente externe
perspectiv oc#i
readucerea n plan
&$4$1 ( sistemul radar
0umr studeni: &
7e va construi un modul capabil a simula rspunsul radarului plasat pe robot, cnd robotul
se gsete n cldire ntr*un anumit loc i are o anumit orientare. 7imularea va avea la
ba" ,cldirea-, care este o #art a crei form va fi aproximativ egal cu cea memorat
de robot (,#arta-). ,/ldirea- va fi sursa rspunsurilor radarului la impulsurile emise
repre"entnd distana pn la cel mai apropiat obstacol n direcia HnainteH fa de
plasarea robotului. (iferenele care pot interveni ntre ,#art- i ,cldire- va repre"enta
diferena dintre plan i realitatea la acel moment. $ceste diferene snt generate de:
greeli de repre"entare pe ,#art-, obstacole ce se afl la un moment dat n calea
robotului, modificri n constituia cldirii.
3odulul va primi n intrare o po"iie n plan i o direcie i va ntoarce o distan (ce
repre"int rspunsul radarului la spotul de ra"e emis).
<9F9& va comunica cu comparatorul #art*cldire.
&$4$2 ( sistemul de comparare +art-cldire
0umr studeni: 1
7e va construi un modul capabil a lua deci"ii asupra configuraiei terenului comparativ cu
#arta memorat.
'ntrare: #arta memorat (,#arta-), o po"iie, o direcie repre"entnd orientarea spre
,nainte- a robotului
'eire: o deci"ie a ncadrrii n #art i a locului unde se afl robotul, respectiv a apariiei
unui obstacol.
/omportamentul sistemului de comparare poate fi diferit funcie de punctul n care se
afl robotul fa de un perete, sau de un obstacol aflat n cale. El trebuie s aplice euristici
car s decid c n anumite ca"uri diferenele constatate snt nesemnificate i pot proveni
din erori de apreciere ale radarului, ori aproximaii ale #rii, pe cnd n alte ca"uri, cnd
erorile snt mari ele pot provini din existena unor obstacole.
<9F91 va trebui s comunice cu radarul, creierul i sistemul de readucere n plan.
&$4$3 ( sistemul de generare a planului
0umr studeni: D
7e va construi un modul capabil a genera un plan de micare a robotului. !entru
generarea planulu pot fi luate n considerare mai multe strategii de cutare ntr*un spaiu
al strilor. n acest ca" fiecare membru al ec#ipei se poate ocupa de implementarea unei
strategii anume, putnd re"ulta astfel un numr de module de planificare interan.abile. 7e
pot folosi coduri reali"ate de studeni din anii precedeni.
'ntrri: punctul n cldire n care se afl robotul (7>$<>) i punctul n plan n care se
dorete el a a.unge (%'0'I).
'eiri: un plan, repre"entnd un ir de micri ce trebuiesc executate pentru deplasarea de
la 7>$<> la %'0'I.
<esurse: ,#arta- actuali"at de creier.
!lanificatorul comunic cu creierul i cu sistemul de readucere n plan.
'nformaii la $malia >odiracu.
&$4$. ( sistemul de readucere 7n plan
0umr studeni: 1
n ca"ul unui incident, care aici ar putea consta n apariia neateptat a unui obstacol pe
traseu, robotul ar trebui s fie capabil s plase"e din nou n plan starea curent sau, n
ca"uri extreme, s recalcule"e planul. 3odulul trebuie deci s implemente"e diagrama
triangular (v. cursul) pe care s decid dac noua stare se gsete n planul vec#i i deci
se sare n acea stare a vec#iului plan, sau nu exista n planul vec#i, ca" n care va apela la
planificator pentru calcularea unu nou plan.
/omunicaii: cu planificatorul i comparatorul #art*teren, de unde trebuie s primeasc
informaii despre obstacole.
&$4$1 ( sistemul mecanic
0umr studeni: &
$cest modul simulea" sistemul de naintare i de rotire al robotului. n principiu, robotul
naintea" astfel: tie c se afl ntr*un anumit punct i trebuie s execute o micare pe o
distan dat ntr*o anumit direcie, sau s execute o rotire de un anumit ung#i. /a
urmare el va face un numr de pai n acea direcie sau va executa o rotire. 7istemul
mecanic este cel care Hpropulsea"H robotul spre nainte cu un pas. $cest lucru se va
manifesta printr*o actuali"are a po"iiei reale a robotului n HcldireH dac comanda a
fost de micare nainte, sau a orientrii sale dac comanda a fost de rotire cu un anumit
ung#i.
/omunicaii: cu creierul, cu sistemul de vi"uali"are pe #art i cu sistemul de vi"uali"are
a ceea ce vede robotul.
&$4$8 ( sistemul de -i,uali,are a perspecti-ei de 9deasupra:
0umr studeni: 1
3odului va plasa ntr*o fereastr HcldireaH i po"iia robotului n ea, dintr*o perspectiv
de HdeasupraH. $ceasta repre"int situaia <E$;J.
9 alt fereastr, n aceeai perspectiv va figura H#artaH i po"iia robotului pe #art.
$ceasta repre"int situaia '3$:'0$>J de robot, proiecia n mintea robotului a
realitii i plasarea lui ntr*nsa.
n marea parte cele dou configuraii trebuie s coincid, dar din compararea celor dou
imagini un observator ar trebui s neleag motivele pentru care robotul se neal n
anumite ca"uri, prin luarea unor deci"ii greite, sau msura n care imaginea sa asupra
realitii difer de cea real.
9dat cu deplasarea sau rotirea robotului aceast imagine se va sc#imba corespun"tor.
/omunicri: cu creierul pentru proiectarea vi"iunii imaginare, cu sistemul de micare i
generatorul de evenimente externe pentru actuali"area imaginii reale.
&$4$; ( sistemul de -i,uali,are din perspecti-a oc+ilor ro5otului
0umr studeni: 1
3odului va plasa ntr*o fereastr ceea ce HvedeH robotul prin intermediul radarului su
ntr*un ung#i de : (parametru) grade stnga i dreapta fa de direcia HnainteH.
9dat cu deplasarea sau rotirea robotului aceast imagine se va sc#imba corespun"tor.
/omunicare: cu radarul, posibil i cu creierul.
&$4$< ( creierul
0umr studeni: D
H/reierulH este sistemul care integrea" informaiile primite de la diversele module pe
care le are la dispo"iie. El tie c se poate ba"a pe urmtoarele module:
* <9F91 : comparatorul #art)teren care i confirm sau infirm plasarea ntr*un
anumit punct, ct i existena unor obstacole (sau modificri ale configuraiei
cldirii). $cest sistem obine deci"iile prin folosirea lui <9F9&: oc#i sistemul
radar+
* <9F9G : un generator de plan (n realitate tot o parte a creierului, pe care
preferm s o vedem ca o component separat a sistemului)+
* <9F9K : picioare sistemul mecanic care propulsea" robotul nainte un pas, sau
l rotete ntr*o parte cu un anumit ung#i.
(ac la un anumit moment n faa robotului apare un obstacol, acesta trebuie s fie
capabil a*l ocoli. /a urmare HcreierulH va afla de la <9F91 c n fa are un obstacol i
va intra ntr*o fa" de scanare a terenului pentru a afla forma obstacolului. /nd
reali"ea" c are suficient informaie asupra formei i plasamentului obstacolului n
#art, va plasa obstacolul pe #art i va apela <9F9G pentru o actuali"are a planului.
H/reierulH trebuie gndit ca un fel de rege care acionea" legat la oc#i. El cere i obine
de la sclavii si orice informaie de care are nevoie, comand anumite sarcini i ateapt
re"ultatul execuiei lor, pentru ca pe ba"a corelrii tuturor acestor informaii s #otrasc
ce va face la fiecare moment n vederea reali"rii planului primordial. n anumite situaii
HcreierulH poate decide abandonarea temporar a planului curent pentru reali"area unui
plan auxiliar, care s a.ute reali"rii planului ma.or. (e exemplu, robotul poate intra ntr*
un subplan de HscanareH a unui obstacol, pe care apoi s*l plase"e pe #art.
H/reierulH actuali"ea" cu informaii Himaginea virtualH afiat de <9F9L. El nu poate
i nu trebuie s cunoasc Himaginea realH. !lasarea n realitate este o consecin a
interaciunilor mecanice ale robotului cu lumea, iar acestea repre"int un re"ultat al
repre"entrii lumii n mintea sa.
&$4$9 ( sistemul de generare a e-enimentelor e*terne
0umr studeni: 1
=tili"atorul trebuie s poat interveni n planul ,cldirii- pentru a face modificri,
constnd din plasarea de obstacole, sau desc#iderea unor ui. 3odificrile se fac
interactiv n fereastra care pre"int situaia din teren n perspectiva de deasupra.
/omunicri: cu modulul de afiare a perspectivei de deasupra (n fereastra situaiei
<E$;E).
!rupul de proiecte =$6>&I ( 7ndrumtor Amalia %odira?cu
!roiectele din acest grup vor utili"a algoritmul minimax sau alfa*beta. 7ursele ;'7! vor fi
disponibile aici. !entru fiecare proiect din acest grup, trebuie definite :
* strile problemei (starea iniial i starea final)+
* funcia de evaluare +
* eventual se va colabora cu autorul proiectului $lfa*beta probabilist.
(e asemenea, se va reali"a interfaa grafic, care s permit utili"atorului s .oace cu
calculatorul.
=$61 - %urn-a-5loc@
0r. studeni : &
7 se scrie un program care s .oace >urn*a*blocB cu calculatorul (se vor respecta
indicaiile de la nceputul seciunii). !e o tabla nxn (n5G..A) snt plasate n fiecare po"iie
piese albe i negre. %icare .uctor poate selecta o "on dreptung#iular (unul sau mai
multe ptrate), i n "ona selectat piesele i sc#imb culoarea.
7tare iniial
Mona selectat
<e"ultatul obinut
dup selecie
Nuctorul care reuete s obin toate piesele albe pe toat tabla ctig. 9 interfa
grafic va pre"enta evoluia .ocului.
'ndicaii despre .oc: #ttp:))CCC.rig#to.com).ava)turnablocB.#tml
=$62 - Stop-!ate
0r. studeni: &
7 se scrie un program care s .oace 7top*:ate cu calculatorul (se vor respecta indicaiile
de la nceputul seciunii). !e o tabl de a# AxA se vor folosi piese de domino, plasate pe
dou ptrate alturate. Ele nu pot fi plasate n diagonal.
!rimul .uctor va alege una din cele doua direcii acceptate, iar cellalt .uctor va plasa
toate piesele orientate invers. !ierde .uctorul care nu mai are loc pe tabl. 9 interfa
grafic pre"int evoluia .ocului.
'ndicaii despre .oc: #ttp:))CCC.cs.uida#o.edu)Ocase?@G&)conCa?)stopg.#tml

=$63 - .-in-linie
7tudeni: &
7 se scrie un program (se vor respecta indicaiile de la nceputul seciunii) care s .oace o
versiune modificat a .ocului tic*tac*toe. !e o tabl nxn, se vor utili"a doua feluri de
piese. (iferena fa de .ocul clasic este c fiecare .ucator ncearc s plase"e piesa pe
una din coloane, dar piesa va fi plasat automat pe prima linie pentru care celula
corespun"toare coloanei este liber. 7copul .ocului este de a obine D piese de acelai tip
pe linie, pe coloane sau pe diagonal.
9 interfa grafic pre"int evoluia .ocului.
=$6. -#eutron
0r. studeni: &
7 se scrie un program (se vor respecta indicaiile de la nceputul seciunii) care s .oace
0eutron cu calculatorul. !e o tabl KxK fiecare .uctor plasea" piesele n linie, iar
neutronul este n mi.loc. >oate piesele rmn n .oc. %iecare pies poate fi mutat pe linie,
pe coloana sau n diagonal n limita spaiului disponibil. %iecare .uctor mut mai inti
neutronul i apoi piesa. 7trategia pe care o aplic fiecare .uctor este de a*l mpiedica pe
adversar s mute neutronul.
7copul .ocului este ca neutronul s a.unga n cmpul su.
Nuctorul ncearc s plase"e piesa n coloana G
piesa va fi plasat pe prima linie liber
PQ * neutronul
R * piesele unui .ucator
9 * piesele celuilalt .ucator
9 interfa grafic pre"int evoluia .ocului.

********************************
S 9 S 9 S 9 S 9 S 9 S
********************************
S S S S S S
********************************
S S S PQ S S S
********************************
S S S S S S
********************************
S R S R S R S R S R S
********************************
=$61 - All AingBs +orses
0r. studeni: &
7 se scrie un program (se vor respecta indicaiile de la nceputul seciunii) care .oac $ll
TingUs #orses cu calculatorul. Nocul folosete o tabl de a# obinuit i un numr de
piese de acelai fel care vor fi caii. =n ptrat poate conine dou piese.
/ele D ptrate din colul stnga sus al tablei .oac rol de gra.d. 7copul .ocului este de a
plasa toi caii n gra.d. Nuctorul care pune ultimul cal n #ambar pierde.
!iesele se pot muta n felul urmtor:
* ntotdeauna direcia este spre gra.d+
* mutrile posibile snt cele posibile calului.
9 interfa grafic pre"int evoluia .ocului.
'ndicaii despre .oc: #ttp:))CCC.cs.uida#o.edu)Ocase?@G&)conCa?)#orse.#tml
=$68 - )onede
0r. studeni: &
7 se scrie un program (se vor respecta indicaiile de la nceputul seciunii) care .oac
urmtorul .oc cu calculatorul. 7e grupea" o serie de monede ca n figur:
**************************************************************************************
V VVVV VV VVV V V V
**************************************************************************************
=n exemplu de stare a problemei.
%iecare .uctor poate nlatura un grup format dintr*o singur moned sau poate nlatura o
singur pies dintr*un grup astfel nct s se forme"e dou alte grupuri mai mici. Nocul se
termin cnd un .uctor nltur ultimul grup i n acest ca" .uctorul pierde.
9 interfa grafic pre"int evoluia .ocului.
'ndicaii despre .oc: #ttp:))CCC.cs.uida#o.edu)Ocase?@G&)conCa?)Ba?les.#tml
=$6; - Alfa-5eta pro5a5ilist
0r. studeni:1
7 se implemente"e variante ale algoritmului minimax i alfa*beta astfel nct acesta s se
poat aplica unor .ocuri n care intervine parial ansa. =n exemplu de aplicaie al acestui
algoritm este .ocul de table.
'ndicaie : capitolele corespun"toare din crile W $rtificial 'ntelligence X * E.Tnig#t i
W $rtificial 'ntelligence $ 3odern $pproac#X * 7.<ussell i !.0orvig
!rupul de proiecte C Algoritmi de cutare 7n spaiul strilor S'A&6D
ndrumtor $malia >odiracu
$ceste proiecte folosesc un set de algoritmi de cutare descrii n LISP. 7e
cere s se descrie :
* strile problemei +
* regulile care se aplic pentru a trece dintr*o stare n alta.
S'A&6D1 - %este de inteligen E&ussellF#or-ig91G
0r. studeni: 1
>estele de inteligen conin adesea probleme de predicie a secvenelor. 'n acest tip de
probleme trebuie s se pre"ic care este numrul urmtor al secvenei, presupunnd c
numrul aflat pe po"iia n este generat prin aplicarea unei funcii secven s(n), unde
primul element al secvenei corespunde lui n5V. (e exemplu funcia s(n)51n generea"
secvena Y&,1,D,A,&L...Z.
7 se implemente"e un sistem capabil s re"olve acest tip de probleme. 7istemul va cuta
n spaiul funciilor posibile pn cnd se gsete una care s se potriveasc. 7paiul
funciilor posibile va fi alctuit din toate expresiile posibile formate cu operatorii [,),\ i
exponeni i numerele de la & la n. 7 se adapte"e unul dintre algoritmii de cutare
descrii la curs (ve"i indicaiile de la nceputul seciunii 7earc#).
S'A&6D2 - Studentul 7nt7r,7iat
0r. studeni: &
=n student oarecare de la o universitate $ are probleme colare din cau" c a.unge
mereu n ntr"iere la cursuri. El trebuie s treac n fiecare "i prin diferite puncte ale
campusului: la asociaia studeneasc, la laboratorul de informatic, la sala de sport, la
cantin pentru masa de prn", la bibliotec (pentru a citi articole), pe terenul de tenis, n
dormitor pentru a mnca seara. 7 se scrie un program care calculea" drumul ce trebuie
parcurs astfel nct distana pe care o parcurge studentul s fie minim (ve"i indicaiile de
la nceputul seciunii 7earc#).
S'A&6D3 - Pro5leme de satisfacere a restriciilor
0r. studeni: 1
7 se implemente"e un algoritm care s permit re"olvarea unor probleme de propagare a
restriciilor. 7 se aduca mbuntiri algoritmului de bacBtracBing obinuit pentru a se
aplica ntr*o astfel de problem particular (verificarea nodurilor care pot fi expandate,
propagarea restriciilor). =n exemplu pentru testarea acestui proiect este problema celor A
regine.
'ndicaie: s se studie"e capitolul corespun"ator din <ic#]Tnig#t sau din
<ussell]0orvig
S'A&6D. - 6ounselor
0r. studeni:1
%olosind algoritmul general de propagare a restriciilor, s se implemente"e un modul
counselor care a.ut studenii din primul an s i aleag cursurile opionale pentru cei D
ani de studiu. %iecare student trebuie s*i stabileasc ce cursuri i alege pentru fiecare
semestru. 2ariabilele snt repre"entate de fiecare curs, iar domeniul fiecrei variabile va
fi repre"entat de semestrele n care este posibil s fie programate, iar restriciile snt
urmtoarele:
* cerinele fiecrui curs (ce cursuri trebuie urmate n prealabil)+
* suprapunerile de cursuri+
* numrul total de ore pe semestru.
'ndicaie: sa se studie"e capitolul corespun"ator din <ic#]Tnig#t sau din
<ussell]0orvig
S'A&6D1 - $rar
0r. studeni: D
%olosind algoritmul general de propagare a restriciilor, s se implemente"e un program
care propune un orar al facultii. <estriciile care se aplic n acest ca" snt:
* restricii de sli (laboratoarele vor fi programate n sli ec#ipate cu calculatoare)+
* restricii de timp (anumii profesori nu vor fi disponibili la anumite ore, trebuie
prev"ut o pau" de prn" etc.).
!rupul de proiecte C Sisteme de reguli &>0'S ndrumtor $malia
>odiracu
&>0'S1 - Pro5lema lanurilorE&ussellF#or-ig91G
0r studeni: &
9 serie de lanuri de diferite lungimi trebuie reconfigurate pentru a obine noi
aran.amente. 9peraiile care pot sc#imba o stare pot nltura o "a sau pot aduga o "a. 'n
starea iniial avem D siruri, fiecare din acestea fiind formate din G "ale. 7tarea final
const dintr*un singur lan format din &1 "ale.
7tare iniial 7tare final
'ndicaie: se va implementa un algoritm de cutare n spaiul strilor (ve"i sectiunea
7earc#)
&>0'S2 - )angusta, ?arpele ?i ?oricelul
0r. studeni: &
2 aflai ntr*un campus universitar i sntei obligat s luai autobu"ul pn n ora.
7ntei nsoit de animalele preferate: o mangust, un arpe de cas i un oricel.
<egulamentul campusului inter"ice s luai autobu"ul fiind nsoit de mai mult de un
animal. 'n absena (vs., mangusta va mnca arpele, sau arpele va mnca oricelul.
7copul este s a.ungei n ora mpreun cu toate animalele favorite. 7 se formali"e"e
aceast problema ca un sistem de reguli i s se simule"e pas cu pas (interfaa grafic)
aplicarea algoritmului de cutare n spaiul strilor.
'ndicaie: se va folosi unul din algoritmii de cutare disponibili (ve"i sectiunea 7earc#).
&>0'S3 - 6eaiul indian
0r. studeni : &
'n ceremonia ceaiului la #indui particip un copil un servitor i un btrn. /ele D tasB*uri
care trebuiesc ndeplinite sunt : alimentarea focului, servirea pr.iturilor, strecurarea
ceaiului i citirea poe"iilor (n ordinea importanei acestora). ;a nceputul ceremoniei,
copilul reali"ea" toate tasB*urile. El le transfer pe rnd servitorului i btrnului astfel c
la sfritul ceremoniei btrnul le va face pe toate. >asB*urile se transfer una cte una i
nimeni nu poate face un tasB mai puin important dect cel pe care le are n sarcin. 7 se
descrie aceast problem cu a.utorul sistemelor de reguli, folosind unul din algoritmii de
cutare cunoscui (ve"i sectiunea 7earc#).
.
&>0'S. - &olling 6u5es
0r studeni: &
7 se scrie un program care s caute soluii, aplicnd algoritmi de cutare n spaiul
strilor (ve"i seciunea 7earc#) pentru .ocul <olling /ubes. <olling /ubes este o versiune
tridimensionala a .ocului A*pu""le. !e o tabl GxG snt plasate A piese, fiecare pies este
un cub vopsit pe .umtate n negru i pe .umtate n alb ca n figura:

7tarea iniial este:
7tarea final este:
9 stare intermediar:
9 interfa grafic pre"int evoluia .ocului.
'ndicaii despre .oc: #ttp:))CCC.rig#to.com).ava)rollingcubes.#tml
&>0'1 ( 6u-inte gresite
0r. 7tudenti: &
7a se scrie un program care corectea"a erorile ortografice aparute intr*un cuvint.
!roblema se va modela cu a.utorul sistemelor de reguli, o stare a sistemului este un
cuvint, starea finala este un cuvint care se gaseste intr*un dictionar, iar regulile de
transformare sunt urmatoarele: inserarea unei litere, inlocuirea unei litere cu o alta,
stergerea unei litere, inversarea a doua litere. 7e vor folosi algoritmii de cautare de la
7E$</^.
!rupul de proiecte Planificare P0A# ndrumtor $malia >odiracu
P0A#1 - &u5i@
0r. studeni: 1
7 se implemente"e reguli 7><'!7 aplicate cubului <ubiB. $cest proiect se va re"olva in
legatura cu proiectele <9F9 generarea planului, readucerea n plan dup incident, etc.
7 se reali"e"e o interfa grafic care s permit urmrirea desfurrii .ocului.
P0A#2 - Ierar+ii de planuri
0r. studeni: D
7 se modifice algoritmii de generare a planului i de readucere n plan dup incident n
urmtoarele ipote"e suplimentare:
a) regulile au asociate probabiliti+
b) formalismul 7><'!7 permite folosirea unor operatori speciali pentru nlocuirea unei
secvene de aciuni prea lungi cu operatorul dat. !e lng regulile date, sistemul poate
consulta o bibliotec de astfel de operatori.
Exemplu: move_car(R,`) 5 open_car(R,E,M), get_in_car(E,M), start_engine(E,M),
drive(E,M,`).
7 se implemente"e un algoritm de creare a unei ierar#ii de astfel de operatori, fiind dat
o mulime de perec#i 4stare_initiala, stare_finala6.
!rupul de proiecte C 0im5a/ natural 0# ndrumtor $malia >odiracu
0#1 - Interfa 7n lim5a/ natural
0r. studeni: D
7 se cree"e o interfa n limba. natural care s permita utili"atorului s descrie planuri
scurte n limba. natural pentru lumea blocurilor: Hmut blocul $ peste blocul /H, Hmut
blocul F pe masH. 7e va defini un sub*limba. care s aiba drept corespondent o regul
din lumea blocurilor. $nali"a comen"ii se face avnd la dispo"iie un mic dicionar de
corespondene 4cuvnt, regul)obiect6 i o colecie de pattern*uri posibile.
7e va obine o descriere n lumea blocurilor a comen"ii respective. 7e va aplica regula
respectiv i se urmresc efectele acesteia pentru starea dat (interfaa grafic).
!roblema se va re"olva n colaborare cu ec#ipele care implementea" algoritmul de
generare a planului si reducere dup un incident din grupul de proiecte <9F9.
(e asemenea, algoritmul de pattern-matching este disponibil.
0#2 - %&I'
0umar studeni: 1
7e d o colecie de pattern*uri (pattern*urile conin fie cuvinte, fie categorii lexicale, fie
variabile).
Exemple de pattern*uri:
(pe ?x <verb!
unde ?x este o variabil (poate fi nlocuit cu orice cuvnt sau categorie lexical).
2ariabilele ncep cu semnul ntrebrii.
<verb este o categorie lexical (partea de vorbire a cuvntului)
!attern*urile vor fi asociate cu un ir (secven de cuvinte sau categorii lexicale). Ele vor
fi identificate ntr*un ir de intrare, iar secvena de entiti din text care corespunde
pattern*ului va fi nlocuit cu irul asociat pattern*ului.
7 se construiasc o structur ><'E pentru repre"entarea mulimii de pattern*uri
(structura va fi folosit de proiectul 0#3). 9 structur ><'E permite pstrarea n mod
eficient a pattern*urilor disponibile.
><'E are nodul rdcin etic#etat cu irul vid. /nd se adaug un nou pattern n arbore se
caut dac urmtorul element al pattern*ului exist n structur ca nod fiu al nodului
curent (i dac exist nu se mai adaug n arbore, ci se trece la urmtorul element din
pattern). n plus, se definete o funcie eec, care corespunde situaiei n care o secven
de elemente componente ale pattern*ului pot fi identificate ntr*un ir de intrare i s*a
obinut o eroare. %uncia eec se poate calcula n momentul n care se adaug pattern*uri
noi n structur astfel:
* se caut dac elementul urmator al pattern*ului este nod fiu al nodului curent+
* se caut dac restul pattern*ului exist de.a n structur.
'*empluC $vem un pattern (a b d) si (b c). 'n sirul de intrare avem ababce-. !rimul
pattern nu coincide cu sirul de intrare. 'n sc#imb, am identificat elementul b si putem
continua cautarea din nodul b (si vom constata ca pattern*ul (b c) se potriveste peste sirul
de intrare).

!attern*urile (a b c))$& si (b c))$1 se repre"int ca n figura:
0#3 - Identificare pattern-matc+ing
#r. studeni C 2
%olosind o colecie de pattern*uri (n repre"entarea propus la proiectul ;01 * ><'E), s
se scrie un program care s nlocuiasc toate irurile de entiti care se potrivete pattern*
urilor cu irul asociat fiecrui pattern. 'ntrarea acestui program va fi un text adnotat cu
categorii lexicale (textul de intrare i colecia de pattern*uri vor fi obinute, n rom8n i
france" de la $malia >odiracu). 7e va folosi un algoritm de pattern matc#ing disponibil
aici.
'*emplu. !attern*ul (bx)4substantiv6 b?)4ad.ectiv6) are asociat irul Ybx b
?Z)4grup_nominativ6. 7ecvena din text care se potrivete cu pattern*ul se nlocuiete
cu textul asociat:
W /alul)4substantiv6 alb)4ad.ectiv6 alearg)4verb6 pe dealul)4substantiv6
verde)4ad.ectiv6X se transform W Ycalul albZ)4grup_nominativ6 alearg)4verb6 Ydealul
verdeZ)4grup_nominativ6X
0#. - %rigger Hords
0r. studeni : 1

a
a
a
a
a
a
a
b
a
a
a
c
a
a
a
%unctia esec
7e consider o list de cuvinte trigger care au asociate o serie de reguli de forma (pattern,
aciune), precum i o probabilitate de aplicare a regulii. =n cuvnt trigger face parte din
pattern*ul asociat. =n pattern conine cuvinte, variabile i fiecare cuvnt sau variabil
poate fi marcat cu informaie lexical i cu informaie semantic. !attern*urile sunt
formate din cuvinte, variabile i marc#eri lexicali i semantici. %iecare pattern are asociat
un ir de cuvinte, marc#eri i funcii.
Exemplu. !attern: (bx)4substantiv6)4concept&6 b?)4ad.ectiv6)4concept16)
$ciune: Ybx b?Z)combine(4concept&6, 4concept16)
combine(4concept&6, 4concept16) este o funcie care trebuie evaluat
3arc#eri lexicali: 4substantiv6, 4ad.ectiv6
3arc#eri semantici: 4concept&6, 4concept16
$ciunea asociat acestui pattern este aciunea de marca o secven de cuvinte cu
combinaia re"ultat prin gruparea marc#erilor (lexicali sau semantici) ale prilor
componente.
!rogramul primete la intrare un set de tuple de forma 4trigger_Cord, probabilitate,
(pattern, aciune)6 i un text adnotat cu marc#eri lexicali i semantici. =n trigger_Cord
este fie un cuvnt, fie un marc#er lexical sau semantic.
/nd un trigger_Cord_ex a fost identificat n text, atunci se extrage din mulimea de tuple
o list de tuple 4trigger_Cord_ex, _,_,_6, ordonat dup probabilitate.

!entru fiecare trigger_Cord_ex identificat n textul de intrare, se caut n vecintatea lui o
secven care se potrivete cu pattern*ul dat. (ac s*a identificat un pattern, atunci se
efectuea" aciunea corespun"toare (evalund funciile din aciune).
Exemplu. 7e identific trigger_Cord 5 4prepo"iie6.
=n tuplu asociat este (4prepo"itie6, V.L@,
(bx)4substantiv6)bconcept& b?)4prepo"itie6 b")4ad.ectiv6)bconcept1),
Ybx b? b"Z)combine(bconcept&, bconcept1))
Iirul de intrare este
!iticul)4substantiv6)4!'>'/6 din)4prepo"iie6 grdin)4ad.ectiv6)4:<$('0$6

bx 5 !iticul
bconcept& 5 4!'>'/6
b? 5 din
b" 5 grdin
bconcept1 5 4:<$('0$6
<e"ultatul evalurii funciei
combine(4!'>'/6, 4:<$('0$6) 5 (4!'>'/6 #as!lace 4:<$('0$6)
<e"ultatul aciunii este adnotarea textului cu
Y!iticul din grdinZ)(4!'>'/6 #as!lace 4:<$('0$6)
0#1 - '*tragerea unei ierar+ii de concepte
0r. 7tudeni : 1
7e consider texte n format R3; (Extended 3arBup ;anguage). R3; permite definirea
de marca.e utili"ator pentru structurarea anumitor poriuni din document. (efiniiile sunt
date ntr*un fiier separat (>( ((ocument >?pe (efiniton). %iecare document R3;
poate folosi unul sau mai multe fiiere (>(. 7e pot defini marca.e pentru identificarea
conceptelor din text.
=n exemplu de marca.e din (>(:
4 S$>>;'7> tag attribute t?pe definition 6
4SE0>'>` top6
4 S$>>;'7> person name /($>$ in#erited /($>$6
>ag*ul person are dou atribute: name i in#erited. >op este o entitate.
/orespun"tor acestei definiii n fiierul R3; vom ntlni marca.e:
4doctor name5-popescu- .ob5-doctor- in#erited5-person-6 dr. 'on !opescu4)doctor6
Exemple de fiiere R3; i (>( le vei cere la "malia #odiracu.
7 se scrie un modul care nva o ierar#ie de concepte i instanele acestora plecnd de la
un document R3; adnotat. 3odulul primete la intrare un text n format R3; adnotat
cu tag*uri definite de utili"ator care marc#ea" n text instane ale unor concepte.
(in exemplul de mai sus, algoritmul nva c 4doctor6 este un concept derivat din
4person6, avnd un atribut suplimentar 4.ob6 cu valoarea adoctor-.
0#8 - >n sistem de filtrare a mesa/elor
0r. 7tudeni:1
7 se implemente"e un algoritm de nvare care va fi destinat ac#i"iiei de cunotine n
vederea filtrrii mesa.elor electronice. 3esa.ele electronice sunt caracteri"ate de autor,
subiect, adresa electronic. 7ubiectul va fi format din cuvinte c#eie. $lgoritmul va primi
un set de exemple po"itive i negative i va putea extrage o mulime de caracteristici care
s i permit s filtre"e mesa.ele noi: cele care se ncadrea" n categoria mesa.elor
negative vor fi aruncate la co.

'ndicaii: algoritmi de nvare supervi"at <ussell]0orvig, ;uger ] 7tubblefield

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