Algorithm design

Titolo insegnamento in inglese: Algorithm design

Lingua: italiano

Insegnamento: Algoritmi e Strutture Dati I

Anno di corso: II

CFU: 6

Semestre: 2

Docenti:

  • Massimo Benerecetti 

Insegnamenti propedeutici previsti

Algoritmi e strutture dati I, Laboratorio di Algoritmi e Strutture Dati

Obiettivi Formativi

Il corso intende fornire un'introduzione alle tecniche avanzate di progettazione degli algoritmi, alla complessità computazionale e alla trattabilità dei problemi. Vengono, in particolare, presentate le principali tecniche di dimostrazione di correttezza, esaminate le tecniche di progettazione greedy e di programmazione dinamica, con applicazioni alla soluzione di vari problemi di ottimizzazione, di compressione dei dati e problemi su grafi pesati. Vengono introdotte le classi di complessità P e NP e il concetto di NP-completezza e di riduzione tra problemi. Vengono infine presentate tecniche di progettazione ed analisi di algoritmi approssimati e di algoritmi randomizzati.

Contenuti

Il problema della correttezza degli algoritmi: dimostrazioni per induzione, dimostrazioni di correttezza di algoritmi ricorsivi.
 
Tecniche di progettazione di algoritmi: introduzione agli algoritmi greedy ed alla programmazione dinamica per la soluzione di problemi di ottimizzazione (ad es., problema dello zaino intero e frazionario, percorsi minimi su grafi pesati, i codici di Huffman, problemi di scheduling). Introduzione alla Teoria della Complessità: problemi trattabili e non trattabili, le principali classi di complessità (P e NP), il concetto di riduzione polinomiale tra problemi e il concetto di NP-completezza, esempi di problemi NPcompleti e dimostrazioni di NP-completezza. Introduzione all'intrattablita' computazionale. Introduzione agli algoritmi approssimati; fattore di approssimazione; esempi di algoritmi approssimati per problemi du grafi. Introduzione agli algoritmi randomizzati. Progettazione ed analisi di algoritmi randomizzati per problemi di scheduling e problemi su grafi.
 

Modalità didattiche

Lezioni frontali. Esercitazioni.

Modalità di esame

L'esame si articola in prova scritta e orale.

La prova scritta è a risposta libera.