Vous êtes sur la page 1sur 10

ALGORITMI si STRUCTURI de

DATE
Curs: Daniela Zaharie
cab 046B (parter)
e-mail: daniela.zaharie@e-uvt.ro
elearning.e-uvt.ro -> Algoritmi si structuri de date
web.info.uvt.ro/~dzaharie -> Fall 2016 -> Algorithms & Data
Structures (in Romanian) (materiale pentru curs)

Laborator:
Mdlina Eracu cab F109; madalina.erascu@e-uvt.ro
Flavia Micota cab 046B; flavia.micota@e-uvt.ro
Marian Neagul cab 049; marian.neagul@e-uvt.ro
Liviu Mafteiu-Scai cab 046A; liviu.mafteiu@e-uvt.ro
Materiale pentru laborator: http://web.info.uvt.ro/wiki/Algoritmica
Algoritmi si structuri de date - 1
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/unor 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 etc.
care sunt aplicai asupra unor volume mari de date organizate
dup anumite reguli
Exemple: PageRank (Google)
EdgeRank (Facebook)
Algoritmi si structuri de date - 2
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
P0 pagina al crui rang se calculeaz probabilist
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 - 3
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 adaptivi 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 - 4
Introducere
Despre ce este acest curs ?
Scop:
proiectarea i analiza algoritmilor
identificarea structurilor de date adecvate n rezolvarea unei
probleme, 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. Introducere n rezolvarea algoritmic a problemelor si utilizarea structurilor
de date fundamentale (sem 1: C1)
2. Descrierea algoritmilor. Pseudocod/Python (sem 1: C2)
3. Analiza algoritmilor: verificarea corectitudinii, analiza eficienei (sem 1: C3-
5)
4. Algoritmi de cutare i sortare (sem 1: C6)
5. Structuri liniare de date (tablouri i liste nlnuite). Stive. Cozi. (sem 1: C7-
C8)
6. Tehnici de rezolvare algoritmic a problemelor:
reducere si divizare (recursivitate, quicksort, mergesort) (sem 1: C9-C11)
alegere local optimal (greedy) (sem 1: C12)
cutare sistematic n spaiul soluiilor (backtracking) (sem 1: C13)
programare dinamic (sem 2)
7. Structuri arborescente. Structuri eficiente de stocare i cutare (arbori
binari de cutare, cozi cu prioriti, heaps, tabele de dispersie etc) (sem 2)
8. Structuri de date i algoritmi specifici unor probleme (ex: procesare texte)
(sem 2)
Algoritmi si structuri de date - 6
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-computer-
science/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 - 7


Introducere
Evaluare
Examen final (scris + prob practic) 55%

Test laborator (scris + practic) 30%


(in cadrul laboratorului 8 - sptmna 21-25.11.2016)

Activitate individual (teme de cas + activitate la laborator +


activitate curs) (15%)

Submitere teme:
http://elearning.e-uvt.ro

Tema 1: enunt sptmna 7 predare sptmna 10


Tema 2: enunt sptmna 10 predare sptmna 12
Tema 3: enunt sptmna 12 predare sptmna 13

Algoritmi si structuri de date - 8


Introducere
Reguli
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% (minim 7 cursuri)

Prezena laborator: minim 70% (minim 10 laboratoare)

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 - 9


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): MARTI 18:00-19:30 046B


JOI 14:40-16:10 - F207

- Coordonatorii activitii de laborator: vezi avizier

Algoritmi si structuri de date - 10


Introducere

Vous aimerez peut-être aussi