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