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