Registro dell'insegnamento di Algoritmi Avanzati

Corso di Laurea Specialistica in Informatica

Anno Accademico 2007/08

Obiettivi formativi

Acquisire un'adeguata conoscenza dei principali paradigmi avanzati di algoritmi per problemi di ottimizzazione combinatorica con particolare attenzione per i paradigmi che permettono di determinare soluzione approssimate per problemi di ottimizzazione NP-difficili.

Attività formative

Il corso viene svolto in 40 ore di lezione frontale.

Programma del corso

Il programma è diviso in lezioni. La colonna Rif. indica i paragrafi o i capitoli dei libri adottati per il corso.

N. Data
Luogo
N. ore Argomento Rif. Firma
1 08/04/08
Aula I
2 Introduzione al corso
Presentazione del corso: programma, testi di riferimento e modalità d'esame.
Richiamo dei principali concetti inerenti ai problemi computazionali: descrizione, istanze, modelli precisi e modelli approssimati. Problemi computazionali di ottimizzazione. Problemi nel continuo e problemi nel discreto. Versioni dei problemi di ottimizzazione. Esempi di problemi computazionali.
Roberto Posenato
2 09/04/08
Aula I
2 Richiamo dei principali concetti inerenti agli algoritmi: risorse computazionali, codifica dell'input, dimensione dell'input, definizione di tempo computazionale. Analisi caso peggiore e caso medio. Tempo di calcolo e ordini di grandezza: possibili insidie. Tempi di calcolo e miglioramenti hardware: relazioni principali. Algoritmi efficienti e problemi trattabili.
Paradigma divide et impera
Richiamo struttura.
Roberto Posenato
3 10/04/08
Aula I
1 Analisi complessità. Esempi di applicazione: prodotto tra due numeri e prodotto fra due matrici. Cormen et al., Dasgupta et al. cap. 2 Roberto Posenato
4 15/04/08
Aula I
2 Prodotto fra due polinomi: schema divide et impera e sua implementazione mediante la trasformata veloce di Fourier (FFT). Cormen et al. cap. 30 Roberto Posenato
5 16/04/08
Aula I
2 Introduzione al problema della mediana e, generalizzazione, al problema della selezione. Risoluzione del problema della selezione.
Paradigma greedy
Richiamo struttura. Esempio di applicazione per il problema dell'albero minimo di ricoprimento. Esempio di applicazione per il problema dei cammini minimi da sorgente singola (algoritmo di Dijkstra).
Dasgupta et al. cap.5,
Bertossi, cap. 13
Roberto Posenato
6 17/04/08
Aula I
1 Introduzione ai matroidi: definizione, proprietà fondamentali. Problema del Massimo di un matroide pesato. Dimostrazione che la tecnica greedy determina sempre la soluzione ottima per il problema del Massimo di un matroide pesato. Cormen et al. cap. 16 Roberto Posenato
7 22/04/08
Aula I
2 Uso dei matroidi per la risoluzione del problema di programmazione di task unitari su singolo processore. Limiti della rappresentazione con i matroidi. Esempi di problemi risolvibili con tecnica greedy che non sono rappresentabili da matroidi.
Tecnica backtracking
Introduzione. Schema generale. Aspetti cruciali.
Roberto Posenato
8 23/04/08
Aula I
2 Applicazione della tecnica al problema dello zaino con ripetizione. Analisi correttezza e complessità.
Introduzione uso della tecnica al problema dell'inviluppo convesso: algoritmo di Graham.
Bertossi cap. 12 Roberto Posenato
9 24/04/08
Aula I
1 Esercizi sulla tecnica dividi et impera e sul greedy. Roberto Posenato
10 29/04/08
Aula I
2 Uso della tecnica backtracking al problema del string matching: algoritmo di Knuth, Morris & Pratt.
Tecnica branch & bound
Introduzione. Schema generale. Aspetti cruciali. Scelta ordine di visita dei figli: strategia hill climbing. Tecnica come nuova tecnica ricerca in un albero: strategia best-first.
Applicazione della tecnica al problema dell'assegnamento
Cormen et al. cap. 32.5,
Lee et al. cap. 5
Roberto Posenato
11 30/04/08
Aula I
2 Applicazione della tecnica branch & bound al problema dello zaino. Applicazione della tecnica al problema del commesso viaggiatore come esempio di funzione lower bound non banale.
Esercizi sulle equazioni di ricorrenza.
Roberto Posenato
12 06/05/08
Aula I
2 Paradigma programmazione dinamica
Introduzione. Schema generale. Aspetti cruciali.
Bertossi cap. 14,
Cormen et al. cap. 15,
Dasgupta et al. cap. 6
Roberto Posenato
13 07/05/08
Aula I
2 Applicazione della tecnica al problema della massima sottosequenza crescente. Roberto Posenato
14 08/05/08
Aula I
1 Esercizi sulla tecnica divide et impera. Roberto Posenato
15 13/05/08
Aula I
2 Applicazione della tecnica al problema del string matching approssimato e al problema dello zaino.
Analisi di esempi di applicazione. Pattern ricorrenti per la determinazione di sottoproblemi.
Tecnica memoization (annotazione)
Introduzione e analisi vantaggi svantaggi.
Roberto Posenato
16 14/05/08
Aula I
2 Algoritmi probabilistici
Definizione. Algoritmi probabilistici numerici con esempio: Buffon's needle.
Brassard e Bratley, cap. 10
Bertossi cap. 20
Roberto Posenato
17 15/05/08
Aula I
1 Esercizi sugli algoritmi greedy. Roberto Posenato
18 20/05/08
Aula I
2 Algoritmi di Monte Carlo con esempio: test di primalità.
Algoritmi di Las Vegas con esempio: universal hashing.
Roberto Posenato
19 22/05/08
Aula I
1 Esercizi sugli algoritmi greedy. Roberto Posenato
20 27/05/08
Aula I
2 Tecnica ricerca locale
Introduzione e studio caso applicazione al problema dell'albero minimo di ricoprimento.
Risoluzione del problema dell'ordinamento mediante tecnica di ricerca locale: ordinamento per inserimento e ShellSort.
Simulated annealing: introduzione alla tecnica.
Bertossi cap. 15 Roberto Posenato
21 28/05/08
Aula I
2 Esempio di algoritmo di simulated annealing applicato al problema SAT: Algoritmo di Spears.
Introduzione alla Tabu search. Tipi di proibizioni: fissa, casuale e reattiva.
Esempio di algoritmo tabu search con proibizione fissa: Algoritmo per BISEZIONE.
Bertossi cap. 24 Roberto Posenato
22 29/05/08
Aula I
1 Esempio di tabu search con proibizione casuale e reattiva: algoritmo per BISEZIONE. Roberto Posenato
23 03/06/08
Aula I
2 Introduzione ai problemi di vincoli temporali (Temporal Constraint Problems): definizione e principali tecniche risolutive. Roberto Posenato
24 04/06/08
Aula I
2 Algoritmi di approssimazione
Classi NPO e PO. Errore relativo e indice di performance. Algoritmo r-approssimante. Problema r-approssimabile.
Studio dell'approssimabilità del problema Min Vertex Cover: dall'algoritmo greedy all'algoritmo pseudo-casuale.
Cormen et al. cap. 35,
Brassard e Bratley cap. 13,
Bertossi cap. 22
Roberto Posenato
25 05/06/08
Aula I
1 Esercizi. Roberto Posenato
Totale ore 42

Verona, 05 giugno 2008

Roberto Posenato