Corso di Algoritmi Avanzati
Prof. R. De Prisco
Annunci
Il corso inizia il 22/09/2025.
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