08/10/2014
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 Martedì (14:00-16:00) lezione frontale Aula 3A
o Giovedì (14:00-16:00) lezione frontale Aula 3A
• 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. Problemi di scheduling.
Scheduling ad intervallo. Scheduling su più macchine (Interval Partition):
Lower bound e ottimalità dell’algoritmo greedy. Minimizzazione del ritardo
nello scheduling (Scheduling to Minimizing Lateness). Problema della
gestione della cache. Caching offline.
o Compressione dei dati: codici prefissi e codice di Huffman: Descrizione e
complessità.
Algoritmi e strutture di dati 2
• Tecniche algoritmiche:
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 (Lucidi).
Sotto-sequenza 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
3
4
1
08/10/2014
Programma
Programma
• Analisi Ammortizzata: Tecniche di analisi ammortizzata.
Problema giocattolo: incremento di un contatore. Metodo dei
crediti: Array dinamici. Metodo di aggregazione: Unione e
appartenenza di insiemi disgiunti. Metodo del potenziale.
• 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 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.
• Dizionari: Definizione dei dizionari. Realizzazione tramite
tabelle hash. Indirizzamento diretto. Proprietà delle
funzioni hash e hash perfetto. Liste di trabocco,
indirizzamento aperto, teorema del costo ammortizzata.
Balls and bins. Paradosso del compleanno. Problema del
collezionista. Numero massimo di palline in un cestello.
Hashing universale. Implementazione randomizzata dei
dizionari.
• 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
Programma
6
Testi e Materiale didattico
• 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à.
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. Classi di approssimabilità: APX,
PTAS e FPTAS e relazioni fra di esse.
• Crescenzi - Gambosi - Grossi - Rossi –
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
Algoritmi e strutture di dati 2
7
8
2
08/10/2014
Esame
Prerequisiti
• Algoritmi e strutture dati di base (corso di Algoritmi
e strutture dati 1)
• Programmazioen con Laboratorio
Algoritmi e strutture di dati 2
• La prova d’esame consiste:
• Prova orale: Tutto il programma comprese le
dimostrazioni
• Eventualmente una tesina di approfondimento per
migliorare la votazione (inutile per chi sceglie
l’esame come idoneità)
Algoritmi e strutture di dati 2
9
10
3