Programma del corso di Algoritmi (ord. l. 270) Prof.ssa Anselmo (in vigore dall’a.a. 2009/10) Ore di Lezioni frontali: 48 1. Introduzione al concetto di algoritmo e all’analisi asintotica (parr. 1.2, 2.1, 2.4 di [KT]). 2. La tecnica di progetto di algoritmi Divide et Impera e relativi esempi di applicazione: Mergesort, Quicksort, Moltiplicazione di interi. Ricorrenze. (parr. 5.1, 5.2, 5.5). 3. La tecnica di progetto di algoritmi della Programmazione Dinamica e relativi esempi di applicazione: Calcolo di numeri di Fibonacci, Combinazioni, Problemi di ottimizzazione: Scheduling di risorse, Somma di sottoinsiemi, Zaino intero, Problemi su stringhe: allineamento di sequenze e struttura secondaria dell’RNA (parr. 6.1, 6.2, 6.4, 6.5). 4. La tecnica di progetto di algoritmi Greedy e relativi esempi di applicazione: Scheduling di intervalli, Scheduling che minimizza il ritardo, Compressione Dati e Codici di Huffman. (parr. 4.1, 4.2, 4.8). 5. Algoritmi su grafi. Connettività e visita di grafi. DAG e ordinamento topologico. Calcolo di Cammini Minimi (algoritmo di Dijkstra e algoritmo di programmazione dinamica). Calcolo di alberi ricoprenti minimi (algoritmi di Prim, Kruskal e Reverse-Delete). Clustering. (parr. 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 4.4, 6.8 senza l’implementazione dell’algoritmo di Prim). 6. Calcolo di flusso su grafi e applicazione al problema del matching di grafi bipartiti. (parr. 7.1, 7.2, 7.5). Testo di riferimento: [KT] Kleinberg, Tardos. Algorithm Design. Pearson Addison Wesley. Testi di consultazione: [CLR1] T. H. Cormen, C. E. Leiserson, R. L. Rivest, Introduzione agli Algoritmi, prima edizione, McGraw Hill. [CLRS2] T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein, Introduzione agli Algoritmi, seconda edizione, McGraw Hill. [DFI]C. Demetrescu, I. Finocchi, G.F. Italiano, Algoritmi e Strutture Dati , Mc-Graw Hill, 2004. [CGG]P. Crescenzi, G. Gambosi, R. Grossi, Strutture di dati e algoritmi, Pearson, Addison Wesley Si veda anche il materiale disponibile su http://www.dia.unisa.it/professori/anselmo/algo0910.htm