Académique Documents
Professionnel Documents
Culture Documents
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
Submitere teme:
http://elearning.e-uvt.ro
Ore consultaii