Corso di Algoritmi Avanzati
Prof. R. De Prisco
Riferimenti
Non c'è uno specifico libro di testo per il corso. Gli argomenti
sono tratti da varie fonti, fra le quali le più importanti sono:
- [KT] Algorithm Design, Kleinberg, Tardos. Editore: Pearson, 2014.
- [CLRS] Introduction to Algorithms, Cormen, Leiserson, Rivest, Stein. Editore: MIT Press, 2009.
- [DPV] Algorithms, Dasgupta, Papadimitriou, Vazirani. Editore: McGrawHill, 2006.
- [GJ] Computers and intractability, Garey e Johnson. Editore: Freeman and Company, 1979.
- [L] Distributed Algorithms, N. Lynch. Editore: Morgan Kaufmman, 1996.
- [B] Bitcoin and Cryptocurrency Technologies, Narayanan et al., Princeton University Press, 2016.
Programma
Programma di massima; verrà aggiornato durante il corso.
- Problemi difficili
(Rif.: [KT,CLRS,GJ])
- Introduzione
- Problemi decisionali
- Riduzioni
- IndependentSet e VertexCover
- SetCover
- SetPacking
- SAT e 3SAT
- Classi P e NP
- Problemi NP-completi
- Soddisfacibilità di un circuito
- Cicli hamiltoniani
- Commesso viaggiatore
- Colorazione di grafi
- Problemi NP-hard
- Co-NP e PSPACE
- Ricerca esaustiva
(Rif.: [DPV])
- Backtracking
- SAT
- Sudoku
- Branch-and-bound
- TSP
- Algoritmi di approssimazione
(Rif.: [KT] capitolo Approximation Algorithms)
- Introduzione
- Approccio greedy
- Load balancing
- Selezione dei centri
- Metodo dei pagamenti
- Programmazione lineare
- Vertex Cover con programmazione lineare
- Programmazione dinamica
- Algoritmi randomizzati
(Rif.: [KT] capitolo Randomized Algorithms)
- Introduzione
- Taglio minimo globale
- MAX 3-SAT
- Mediana
- Quicksort
- Algoritmi online
(Rif.: Note del corso)
- Il problema dell'affitto degli sci
- Problema del paging (algoritmi LRU, FIFO, LIFO, ottimalità)
- Aggiornamento di liste (Strategia MTF, limite competitività)
- Problema load balancing
- Problema Bin Packing
- Analisi probabilistica
- Algoritmi distribuiti
(Rif.: [L,B])
- Introduzione
- Definizione di sistema distribuito
- Formalisimi per la descrizione e misure per l'analisi
- Sistemi sincroni
- Problema del consenso
- Consenso con perdita di messaggi
- Consenso con perdita di messaggi randomizzato
- Consenso con guasti stop
- Consenso con guasti bizantini
- Consenso in sistemi asincroni
- Registri distribuiti e blockchain
- Criptovalute, Bitcoin
Codice
Dispensa