Corso di Laurea Triennale in Informatica - 3° anno Codice e denominazione insegnamento E3101Q113 - Analisi e progetto di algoritmi N° cfu 8 Tipologia Attività Formativa (TAF) B - caratterizzante SSD semestre INF/01 1 Tipo insegnamento obbligatorio Contenuti: L'insegnamento intende introdurre le principali tecniche algoritmiche (programmazione dinamica, greedy), con particolare attenzione agli aspetti di efficienza degli algoritmi, con i relativi strumenti di analisi. Obiettivi formativi: Gli studenti acquisiranno la conoscenza delle principali tecniche di progetto e analisi degli algoritmi e la capacità di individuare le più idonee tecniche algoritmiche per la soluzione di specifici problemi computazionali. Prerequisiti: Algoritmi e strutture dati Docente responsabile dell'insegnamento: MAURI Giancarlo Turno Docenti e attività didattica docente Tipologia attività didattica assistita Lezione - turno unico MAURI Giancarlo Esercitazione - gruppo 1 DENNUNZIO Alberto Esercitazione - gruppo 2 ZANDRON Claudio Laboratorio - gruppo 1 DENNUNZIO Alberto Laboratorio - gruppo 2 ZANDRON Claudio totale N° cfu N° ore attività didattica assistita erogata 4 28 2 16 2 16 8 60 Metodi didattici Il corso consisterà di lezioni frontali, esercitazioni e progetti di laboratorio Testi di riferimento: Cormen, Leiserson, Rivest, Stein. Introduzione agli algoritmi e strutture dati, McGraw Hill Modalità di verifica dell'apprendimento Prova scritta e orale CV docente CV docente CV docente CV docente CV docente Programma esteso – a.a. 2013-2014 argomento • Crescita delle funzioni, notazioni asintotiche • Calcolo del tempo di esecuzione per algoritmi iterativi 1 • Richiami sulla ricorsione: calcolo del fattoriale • Ricorrenze e tempi di calcolo di algoritmi ricorsivi• Ricerca dicotomica, calcolo altezza di un albero binario Programmazione Dinamica • Verso la Programmazione Dinamica: introduzione del problema Weighted Interval Scheduling • Programmazione delle catene di montaggio 2 • Il problema della LCS • Catena di moltiplicazioni di matrici • Determinazione della ricorrenza di programmazione dinamica • Calcolo tabulare di m(i,j): programma, esecuzione manuale Algoritmi greedy • Elementi della strategia greedy 3 • Codici di Huffman • Matroidi e teorema di Rado tipologia attività didattica lezione frontale 2 esercitazione 2 laboratorio studio individuale 9 Lezione frontale 5 esercitazione 2 laboratorio 4 studio individuale 4 esercitazione 2 laboratorio 2 Alberi di copertura minimi • Algoritmi di Kruskal e Prim 3 esercitazione 2 laboratorio 2 18 Lezione frontale 4 esercitazione 2 laboratorio 2 studio individuale Problemi di cammino minimo • Algoritmo di rilassamento e proprietà 6 • Algoritmo di Dijkstra • Algoritmo di Bellman-Ford • Algoritmo di Floyd-Warshall 17 Lezione frontale studio individuale 5 26 Lezione frontale studio individuale Algoritmi di visita di grafi • Nomenclatura su grafi • Rappresentazione di grafi in memoria 4 • Algoritmo di visita in ampiezza (BFS) • Algoritmo di visita in profondità (DFS) ore 17 Lezione frontale 3 esercitazione 2 laboratorio 2 studio individuale 18 Lezione frontale 4 Reti di flusso esercitazione 2 • Algoritmo di Ford-Fulkerson laboratorio 2 7 • Introduzione alle reti di flusso studio individuale NP completezza e riducibilità • P verso NP 8 • Verifica in tempo polinomiale • Dimostrazioni di NP completezza • Problemi NP completi 17 Lezione frontale 3 esercitazione 2 laboratorio 2 studio individuale 18
© Copyright 2024 ExpyDoc