travelling salesman

Algoritmi e Strutture Dati II

Matricole Dispari

Prof. Giuseppe Persiano

Il corso inizia il 24 settembre 2009.
Il calendario del corso è disponibile a questo URL.

Finalità
Questo è un corso della Laurea Specialistica che intende approfondire lo studio degli algoritmi iniziato nel corso di Algoritmi e Strutture Dati della laurea triennale. Il concetto di algoritmo risulta essere centrale nell'Informatica, nello specifico, e nelle Scienze in generale (vedi questo saggio di Chazelle) ed in questo corso cercheremo di fornire evidenze a supporto sia della tesi specifica che della tesi generale. La Teoria della NP-completezza sarà lo strumento principale di tale sforzo.

La Teoria della NP-completezza fornisce un'interpretazione del fenomeno dell'apparente intrattabilità computazionale di importanti problemi decisionali e di ottimizzazione. Al tempo stesso, il problema aperto principale di questa teoria si interroga sulla natura del concetto di prova efficiente che è fondamentale alla Matematica e alle Scienze in generale. La teoria della NP-completezza è oggetto di uno dei 7 Millenium Problem considerati tra i più importanti e profondi problemi aperti della matematica contemporanea.
In classe saranno discussi i concetti di problema computazionale efficientemente riducibile e di problema computazionale la cui soluzione è verificabile efficientemente. Le nozioni riducibilità polinomiale tra problemi computazionali e di completezza saranno introdotte al fine di presentare il Teorema di Cook-Levin. A partire da questo risultato fondamentale saranno ottenuti risultati di completezza per altri problemi computazionali di particolare interesse quale CLIQUE, Colorabilità ed altri.
Una volta constatato che esistono problemi di ottimizzazione che sarebbe interessante risolvere ma per cui temiamo non esista alcun algoritmo efficiente, abbiamo due possibili modi di procedere: o decidiamo di rilassare il concetto di efficiente (e ci accontentiamo di progettare algoritmi superpolinomiali) o decidiamo di rilassare il concetto di risolvere un problema di ottimizzazione (e ci accontentiamo di algoritmi che calcolano soluzioni sub-ottimali). Quindi, dopo avere velocemente discusso il primo approccio, studieremo in profondità il secondo approccio che consiste nel risolvere problemi di ottimizzazione corrispondenti a linguaggi NP-completi in maniera approssimata.
Il corso discuterà anche il ruolo della casualità nel progetto degli algoritmi.

Sito dello scorso anno disponibile qui.

Orario delle lezioni
Martedì 9-11 aula P2 P11
Giovedì 9-11 aula P2 P11
Il corso inizia il 24 settembre, 2009.

Programma del corso

La lavagna dopo la prova del Teorema di Cook-Levin (grazie a Vincenzo Nigro).

La prima esercitazione con soluzioni.
La seconda esercitazione con soluzioni.
La terza esercitazione con soluzioni.

Ricevimento studenti
Il prof. G. Persiano riceve gli studenti presso il proprio studio (Stanza 3, Piano 4, Stecca 7, Campus di Fisciano) o presso il laboratorio Sistemi Globali (Stanza 1, Piano 2, Stecca 7, Campus di Fisciano) il martedì e il giovedì alle 11. Alternativamente, si può richiedere appuntamento (e-mail consigliata).

Impegno richiesto
Ogni ora di lezione frontale richiede due ore di studio individuale.

Prossimi appelli

Il giorno 30 Aprile, 2010 alle ore 15 nell'aula P8, si terrà un esame di recupero per gli studenti che si sono prenotati per l'ultimo appello di Febbraio. Gli studenti interessati devono inviare entro le 12 del giorno 28 aprile un messaggio di posta elettronica al docente specificando Nome, Cognome, Matricola, anno di immatricolazione e numero di esami mancanti al completamento degli studi. Il messaggio deve avere come subject la stringa "[ASD II -- Esame 30 Aprile 2010]".
Calendario orali.
La traccia era quella del 27 gennaio 2010.

Testi di riferimento

  1. Jon Kleinberg and Eva Tardos, Algorithm Design, Pearson Addison-Wesley.
  2. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein Introduction to algorithms, 2nd edition, MIT Press.
  3. Vijay V. Vazirani, Approximation Algorithms, Springer.

 

Documenti e link

  1. The P-versus-NP page by Gerhard Woeginger.
  2. L'articolo originario di Cook sulla Teoria dell'NP-completezza
  3. L'articolo di Karp che prova la completezza di diversi problemi.
  4. L'articolo di Edmonds in cui la nozione di algoritmo efficiente è esplicitamente discussa per la prima volta.
  5. Stephen Cook, The importance of the P versus NP Question
  6. Avi Wigderson, P, NP and Mathematics: A computational perspective
  7. Michael Sipser, The history and status of the P versus NP question

Blog su algoritmi

  1. in theory di Luca Trevisan
  2. Shtetl-Optimized di Scott Aaronson (in particolare questo articolo)