90 likes | 329 Views
ALGORITMICA. Curs: Daniela Zaharie cab 047 (parter) e-mail: dzaharie@info.uvt.ro www.info.uvt.ro/~dzaharie -> Algorithms (in Romanian) (materiale pentru curs si seminar) Seminarii si laboratoare: Flavia Micota (lab + seminar) – cab 050B; zflavia@info.uvt.ro
E N D
ALGORITMICA Curs: Daniela Zaharie • cab 047 (parter) • e-mail: dzaharie@info.uvt.ro • www.info.uvt.ro/~dzaharie -> Algorithms (in Romanian) (materiale pentru curs si seminar) Seminarii si laboratoare: Flavia Micota (lab + seminar) – cab 050B; zflavia@info.uvt.ro Marian Neagul (lab) – cab 050B; marian@info.uvt.ro Algoritmica - Introducere
Despre ce este acest curs ? • Aproape zilnic: • Folosim un motor de cautare (ex: Google) • Beneficiem de un filtru anti-spam • Aflam informatii despre prieteni prin intermediul unei retele de socializare (e.g. Facebook) • Ce se afla in spatele acestor instrumente ? • Algoritmi de cautare, potrivire dupa cuvinte cheie, sortare, calcul frecvente de aparitie, identificare corelatii etc. Exemple: PageRank (Google) EdgeRank (Facebook) Algoritmica - Introducere
Despre ce este acest curs ? PageRank – algoritm folosit de catre motoarele de cautare pentru ierarhizarea paginilor web [Larry Page, 1997] Idee: rang(P0)=(1-d)+d*(rang(P1)+…rang(Pk)) P0– pagina al carui rang se calculeaza P1,…, Pk – pagini care contin link-uri catre P0 d in (0,1) – coeficient de “damping” (modeleaza impactul trecerii timpului) Web = graf Criterii de ierarhizare = scorprobabilist Calcul rang = prinalgoritmiterativsauprincalculalgebric (rezolvareaunuisistemliniar) Algoritmica - Introducere
Despre ce este acest curs ? EdgeRank – algoritm folosit in Facebook pentru a realiza selectia noutatilor postate pe “wall” (News Feed) Idee: • Interactiunea dintre un utilizator si un obiect din News Feed defineste o muchie (edge) • Fiecare muchie este caracterizata prin 3 factori care determina importanta unei muchii: afinitate, pondere, vechime • Cu cat importanta unei muchii e mai mare cu atat e mai probabil sa apara in News • Directii de cercetare: • “Algorithmic game theory” • “Algorithms around social networks” • “Search algorithms” Algoritmica - Introducere
Despre ce este acest curs ? • Cursul de algoritmicaestedespre: • proiectareasianalizaalgoritmilor • Implica: • gandireabstracta • abilitati de rezolvare a problemelor • Acest curs nu este: • Despre un limbaj de programare (totusialgoritmiivorfiimplementati la laborator – limbajul de programarefolositeste: Python) • Un curs de matematica (totusisuntnecesareunelecunostinte de matematica: notiunifundamentale: multime, functie, sir etc. metode de demonstrare: reducere la absurd, inductiematematica ) Algoritmica - Introducere
Structura 1. Introducere in rezolvarea algoritmica a problemelor 2. Descrierea algoritmilor 3. Verificarea corectitudinii algoritmilor 4. Analiza eficientei algoritmilor 5. Analiza algoritmilor de sortare 6. Tehnici de rezolvare algoritmica a problemelor: • reducere • divizare • alegere local optimala • programare dinamica • cautare sistematica in spatiul solutiilor Algoritmica - Introducere
Bibliografie • T.H. Cormen, C.E. Leiserson, R.R. Rivest – Introducere in algoritmi, trad. Ed. Teora • D. Knuth – Arta programarii calculatoarelor, vol. 1, 2 • V. Cretu – Structuri de date si algoritmi, Ed. Orizonturi universitare, 2000 • D. Zaharie – Introducere in proiectarea si analiza algoritmilor, Ed. Eubeea, 2008 Algoritmica - Introducere
Evaluare Examen final (scris + proba practica) – 45% Lucrare pe parcurs (scris) - 20% (la seminarul 4 = saptamanile 7 - 8) Test laborator (practic) – 20% (la laboratorul 5 = saptamanile 9-10) Activitate individuala (teme seminar/laborator+ activitate la seminar/laborator + activitate curs) - 15% Algoritmica - Introducere
Reguli • Termen de predareteme: douasaptamani de la data enuntului (pana la seminarul/laboratorulurmator) • Intarzierile in predareatemelorsuntpenalizate cu 0.2 pcte / saptamana • Temelesuntindividuale - temeleidentice nu vorfiluate in considerareiarautoriivorfipenalizati • Absente nemotivate de la seminar/laborator: maxim 2 /semestru Algoritmica - Introducere