Vous êtes sur la page 1sur 10

ALGORITMI si STRUCTURI de

DATE
Curs: Daniela Zaharie
cab 046B (parter)
e-mail: dzaharie@info.uvt.ro
web.info.uvt.ro/~dzaharie -> Fall 2015 -> Algorithms & Data
Structures (in Romanian) (materiale pentru curs)
moodle.e-uvt.ro -> Algoritmi si structuri de date
Activitate laborator:
Mdlina Eracu cab F109; merascu@info.uvt.ro
Flavia Micota cab 050B; zflavia@info.uvt.ro
Marian Neagul cab 049; marian@info.uvt.ro
Liviu Mafteiu-Scai cab 049; lscai@info.uvt.ro
Materiale pentru laborator: http://web.info.uvt.ro/wiki/Algoritmica
Algoritmi si structuri de date Introducere

Motivaie
Aproape zilnic:
Folosim un motor de cutare (ex: Google)
Beneficiem de un filtru anti-spam i/sau un antivirus
Aflm informaii despre prieteni i colaboratori prin intermediul
unei reele de socializare (ex: Facebook, LinkedIn,
ResearchGate)
Ce se afl in spatele acestor instrumente ?
Algoritmi de cutare, potrivire dup cuvinte cheie, sortare,
calcul frecvene de apariie, identificare corelaii, clasificare
aplicai asupra unor volume mari de date organizate dup
anumite reguli etc.
Exemple: PageRank (Google)
EdgeRank (Facebook)
Algoritmi si structuri de date Introducere

Motivaie
PageRank algoritm folosit de ctre
motoarele de cutare pentru ierarhizarea
paginilor web [Page & Brin, 1997]
Idee:
rang(P0)=(1-d)+d*(rang(P1)/L1+rang(Pk)/Lk) Web = graf
Criterii de ierarhizare = scor
probabilist
P0 pagina al crui rang se calculeaz
P1,, Pk pagini care conin link-uri ctre P0 Calcul rang = prin algoritm
iterativ sau prin calcul
Li - numrul de link-uri ce pleac din Pi
algebric (rezolvarea unui
d din (0,1) coeficient de damping
sistem liniar)
http://www.google.com/insidesearch/howsearchworks/algorithms.html
Algoritmi si structuri de date Introducere

Motivaie
EdgeRank algoritm folosit iniial de ctre
Facebook pentru a realiza selecia
noutilor postate pe wall (News Feed)
- la ora actual sunt folosii
algoritmi care iau n calcul un numr foarte
mare de factori
Idee:
Interaciunea dintre un utilizator i un
obiect din News Feed definete o muchie
(edge)
Fiecare muchie (e) este caracterizat prin
3 factori care determin importana sa:
afinitate (a), pondere (w), vechime (d)
Cu ct importana unei muchii e mai mare
cu att e mai probabil s apar in News
Algoritmi si structuri de date Introducere

Despre ce este acest curs ?


Scop:
proiectarea i analiza algoritmilor
identificarea structurilor de date, descrierea si analiza
prelucrarilor efectuate asupra lor
Implic:
gndire abstract
abiliti de rezolvare a problemelor
Acest curs nu este:
Despre un limbaj de programare
(totui algoritmii vor fi implementai limbajul de programare
folosit este: Python - http://www.python.org/ )
Un curs de matematic
(totui sunt necesare unele cunotine de matematic: noiuni
fundamentale: mulime, funcie, ir, matrice etc.
metode de demonstrare: reducere la absurd, inducie
matematic ) Algoritmi si structuri de date 5
Introducere

Structura
1.
2.
3.
4.
5.
6.

Introducere n rezolvarea algoritmic a problemelor si utilizarea structurilor


de date fundamentale (sem 1: C1)
Descrierea algoritmilor. Pseudocod/Python (sem 1: C2)
Analiza algoritmilor: verificarea corectitudinii, analiza eficienei (sem 1: C35)
Structuri liniare de date (tablouri i liste nlnuite). Stive. Cozi. (sem 1: C6C8)
Algoritmi de cutare i sortare (sem 1: C9)
Tehnici de rezolvare algoritmic a problemelor:

7.
8.

reducere si divizare (recursivitate, quicksort, mergesort) (sem 1: C10-C12)


alegere local optimal (greedy) (sem 1: C13)
cutare sistematic n spaiul soluiilor (backtracking) (sem 2)
programare dinamic (sem 2)

Structuri arborescente. Structuri eficiente de stocare i cutare (arbori


binari de cutare, cozi cu prioriti, heaps, tabele de dispersie etc) (sem 2)
Structuri de date i algoritmi specifici unor probleme (ex: procesare texte)
(sem 2)
Algoritmi si structuri de date Introducere

Bibliografie
1.

M.T. Goodrich, R. Tamassia, M.H. Goldwasser Data Structures & Algorithms


in Python, Wiley 2013
2.
S. Skiena The Algorithm Design Manual, second edition, 2008
3.
T.H. Cormen, C.E. Leiserson, R.R. Rivest Introducere in algoritmi, trad. Ed.
Teora
4.
D. Lucanu, M. Craus Proiectarea algoritmilor, Ed. Polirom, 2008
5.
V. Cretu Structuri de date si algoritmi, Ed. Orizonturi universitare, 2000
6.
D. Zaharie Introducere n proiectarea i analiza algoritmilor, Ed. Eubeea,
2008
Alte resurse:
(Leiserson) http://ocw.mit.edu/courses/electrical-engineering-and-computerscience/6-046j-introduction-to-algorithms-sma-5503-fall-2005/video-lectures/
(Skiena) http://www.cs.sunysb.edu/~algorith/video-lectures/
http://www.coursera.org
Algoritmi si structuri de date Introducere

Evaluare
Examen final (scris + prob practic) 50%
Test laborator (scris + practic) 30%
(in cadrul laboratorului 10)
Activitate individual (teme de casa + activitate la laborator +
activitate curs) (10%+5%+5%)
Submitere teme:
http://moodle.e-uvt.ro

Algoritmi si structuri de date Introducere

Reguli
Termen de predare teme: 2 sptmni de la data enunrii temei
Intrzierile n predarea temelor sunt penalizate cu 0.5 pcte /
sptmn
Temele se pot rezolva n echipe de cte 2 studeni (echipele se
formeaz n primele dou sptmni i se anun cadrul didactic
responsabil cu activitatea de laborator)
Prezena curs: minim 50%
Prezena laborator: 100%
Absene de la laborator: maxim 2 absene nemotivate/semestru
Laboratoarele la care se absenteaz trebuie recuperate
Laboratorul poate fi recuperat doar mpreun cu una dintre celelalte
subgrupe
Cu condiia s anunai cadrul didactic i s obinei acordul acestuia
Algoritmi si structuri de date Introducere

Alte informaii
Dac avei ntrebri/ neclariti:
Intrebai n timpul/ la sfritul cursului/laboratorului
Trimitei un e-mail cadrului didactic
Mergei la biroul cadrului didactic n orele de consultaii
Ore consultaii
Zaharie (cab 046B:

LUNI 13:00-14:30
JOI 18:00-19:30

- Coordonatorii activitii de laborator: vezi avizier

Algoritmi si structuri de date Introducere

10

Vous aimerez peut-être aussi