06/10/2015 Corso • Docente Algoritmi e strutture di dati 2 o Paola Vocca o Orario di ricevimento: • Dopo le lezioni • Su appuntamento o Indirizzo e-mail: [email protected] • Orario o Lunedì (9:00-11:00) lezione frontale Aula 3A o Mercoledì (11:00-13:00) lezione frontale Aula8 • Corso Paola Vocca Lezione 0: Presentazione o 6cr, o 8 ore credito di lezione o 48 ore – 24 lezioni-12 settimane Algoritmi e strutture di dati 2 Algoritmi e strutture di dati 2 1 2 Programma Programma • Tecniche algoritmiche: o Divide et impera: : Ricorrenze. Metodi risolutivi. Teorema fondamentale. Dimostrazione. Case study: Moltiplicazione veloce di interi, moltiplicazione fra matrici, Il problema della coppia più vicina. o Tecnica greedy: Struttura delle tecniche greedy. Scheduling ad intervallo. Problema della gestione della cache. Caching offline. o Programmazione dinamica: : Paradigma della programmazione dinamica. Successione di Fibonacci. Complessità dell'algoritmo ricorsivo. Versione in programmazione dinamica dell'algoritmo e complessità. Problema del resto. Algoritmo greedy per il problema del resto ed esempi di ottimalità e non ottimalità. Sequenza ottima di moltiplicazioni . Sottosequenza comune più lunga. Partizione di un insieme di interi. Problema della bisaccia e della bisaccia rilassato. Pseudo polinomialità e programmazione dinamica. Struttura secondaria dell’RNA. o Allineamento di sequenze: Confronto fra sequenze. Allineamento globale. Allineamento di sequenze in spazio lineare. Allineamento locale e penalità di gap. Algoritmi e strutture di dati 2 • Analisi Ammortizzata: Tecniche di analisi ammortizzata. Problema giocattolo: incremento di un contatore. Metodo dei crediti: Array dinamici. Metodo di aggregazione: • Union-Find: definizione del problema: QuickFind, QuickUnion, algoritmi di bilanciamento per gli algoritmi di QuickFind e QuickUnion e analisi ammortizzata con il metodo dell'aggregazione • Algoritmi on-line e analisi competitiva. Definizione. Ski-rental, Compravendita di azioni. Liste ad auto-organizzazione, algoritmo MTF. Algoritmi TRANS (transpose FC (frequency count). Problema del paging. Algoritmo LRU (Last Recentely Used) Analisi e ottimalità. Algoritmi e strutture di dati 2 3 4 1 06/10/2015 Programma Programma • Algoritmi approssimati e schemi di approssimazione: Definizione, rapporto di approssimazione e errore relativo, algoritmi r-approssimanti. Algoritmi di approssimazione per Max-Sat. Problemi approssimabili e non approssimabili. Problema del commesso viaggiatore: NP completezza e non approssimabilità. Tecnica del gap e risultati di non approssimabilità. TSP Euclideo. Algoritmo di Christofides. Vertex Cover: definizione; algoritmo di approssimazione basato su una tecnica greedy con rapporto di approssimazione logaritmico; algoritmo di approssimazione con rapporto di approssimazione. • Schemi di approssimazione PTAS e FPTAS. Partition : Esempio di schema di approssimazione. polinomiale. Esempio di schema di approssimazione pienamente polinomiale: Knapsack. [Lucidi] • Classi di approssimabilità: APX, PTAS e FPTAS e relazioni fra di esse. • Algoritmi probabilistici: Definizioni e proprietà. Quicksort randomizzato: descrizione ed analisi. Selezione randomizzata: descrizione e analisi. Risoluzione dei conflitti in un sistema distribuito: analisi di un protocollo randomizzato. Taglio minimo: descrizione ed analisi dell’algoritmo randomizzato. Problema 2-sat: Algoritmo polinomiale e algoritmo deterministico .Algoritmo probabilistico per 2-sat: descrizione ed analisi. Passeggiate aleatorie; algoritmi Las Vegas e Montecarlo. • NP-completezza e Complessità di problemi di ottimizzazione. Problemi intrattabili. Classi P e NP. Certificati polinomiali. Problemi NP-completi. Riducibilità polinomiale. NP completezza. Definizione dei problemi di ottimizzazione. Relazione fra i problemi di decisione. Classe PO e NPO. Algoritmi e strutture di dati 2 Algoritmi e strutture di dati 2 5 6 Testi e Materiale didattico Prerequisiti • Crescenzi - Gambosi - Grossi - Rossi – • Algoritmi e strutture dati di base (corso di Algoritmi e strutture dati 1) • Programmazione con Laboratorio STRUTTURE DI DATI E ALGORITMI (Progettazione, analisi e programmazione ) PEARSON EDUCATION ITALIA -2012 • Kleinberg- Tardos – Algoritm Design PEARSON International Edition-2006 • Appunti e dispense Tutto il materiale del corso è sulla pagina del corso, dove troverete anche informazioni ed avvisi. Algoritmi e strutture di dati 2 7 Algoritmi e strutture di dati 2 8 2 06/10/2015 Esame • La prova d’esame consiste: o Prova orale: Tutto il programma comprese le dimostrazioni o Eventualmente una tesina di approfondimento per migliorare la votazione (inutile per chi sceglie l’esame come idoneità) Algoritmi e strutture di dati 2 9 3