Studiare

In questa sezione è possibile reperire le informazioni riguardanti l'organizzazione pratica del corso, lo svolgimento delle attività didattiche, le opportunità formative e i contatti utili durante tutto il percorso di studi, fino al conseguimento del titolo finale.

Queste informazioni sono destinate esclusivamente agli studenti e alle studentesse già iscritti a questo corso.
Se sei un nuovo studente interessato all'immatricolazione, trovi le informazioni sul percorso di studi alla pagina del corso:

Laurea magistrale in Ingegneria e scienze informatiche - Immatricolazione dal 2025/2026

Il piano didattico è l'elenco degli insegnamenti e delle altre attività formative che devono essere sostenute nel corso della propria carriera universitaria.
Selezionare il piano didattico in base all'anno accademico di iscrizione.

CURRICULUM TIPO:

1° Anno 

InsegnamentiCreditiTAFSSD
12
B
ING-INF/05
12
B
INF/01
12
B
ING-INF/05

2° Anno   Attivato nell'A.A. 2013/2014

InsegnamentiCreditiTAFSSD
6
B
INF/01
Altre attivita' formative
4
F
-
InsegnamentiCreditiTAFSSD
12
B
ING-INF/05
12
B
INF/01
12
B
ING-INF/05
Attivato nell'A.A. 2013/2014
InsegnamentiCreditiTAFSSD
6
B
INF/01
Altre attivita' formative
4
F
-
Insegnamenti Crediti TAF SSD

Legenda | Tipo Attività Formativa (TAF)

TAF (Tipologia Attività Formativa) Tutti gli insegnamenti e le attività sono classificate in diversi tipi di attività formativa, indicati da una lettera.




S Stage e tirocini presso imprese, enti pubblici o privati, ordini professionali

Codice insegnamento

4S02709

Crediti

6

Lingua di erogazione

Italiano

Settore Scientifico Disciplinare (SSD)

ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

Periodo

I semestre dal 1 ott 2012 al 31 gen 2013.

Per visualizzare la struttura dell’insegnamento a cui questo modulo appartiene, consultare:  organizzazione dell'insegnamento

Obiettivi formativi

Il corso è costituito da un'introduzione alla complessità strutturale con particolare attenzione alla teoria del NP-completezza e da un'introduzione alla analisi di complessità dei problemi rispetto alla loro approssimabilità computazionale.

Scopo di tale introduzione è fornire agli studenti gli strumenti necessari per comprendere e affrontare la difficoltà nel risolvere alcuni problemi comuni da un punto di vista computazionale.


Prerequisiti raccomandati
-------------------------
Per seguire con profitto l'insegnamento è raccomandato che lo studente abbia già acquisito competenze in:
1. Comuni strutture dati astratte come lista, stack, code, alberi, heap.
2. Rappresentazione di grafi e principali algoritmi sui grafi:
2.1 Visita di grafi: BFS, DFS.
2.2 Ordinamento topologico. Componenti connesse.
2.3 Alberi di copertura di costo minimo. Algoritmi di Kruskal e Prim.
2.4 Cammini minimi da singola sorgente: Algoritmi di Dijkstra e Bellman-Ford.
2.5 Cammini minimi per tutte le coppie: Algoritmi di Floyd-Warshall e Johnson.
2.6 Flusso massimo. Algoritmo di Ford-Fulkerson.
Un testo consigliato per rivedere tali concetti è "Introduction to Algorithms" di T. H. Cormen, C. E. Leiserson, R. L. Rivest e C. Stein (3 ed.).

Programma

Introduzione
Concetto di modello di calcolo, risorsa computazionale, algoritmo efficiente e problema trattabile.

Modelli di calcolo
Macchina di Turing (MdT): definizione, funzionamento, concetto di configurazione, produzione e di computazione. Esempio di MdT. MdT e linguaggi: differenza tra accettare e decidere un linguaggio. Estensione della MdT: MdT a più nastri (k-MdT).

Complessità in tempo
La risorsa computazionale tempo. Classe di complessità TIME(). Teorema di relazione polinomiale tra le computazioni delle macchine k-MdT e MdT (idea della dimostrazione).
Introduzione al modello di calcolo "Macchina ad accesso casuale" (RAM = Random Access Machine): concetti di configurazione, programma e computazione. Macchina ad accesso casuale (RAM): tempo di computazione secondo il criterio di costo uniforme e costo logaritmico. Ipotesi necessarie per poter utilizzare il criterio del costo uniforme.
Esempio di programma RAM per calcolare il prodotto di due interi.
Teorema sul costo di simulazione di una MdT mediante un programma RAM (idea della dimostrazione).
Teorema sul costo di simulazione di un programma RAM mediante una MdT (solo enunciato).
Tesi del calcolo sequenziale e sue conseguenze.
Teorema dell'accelerazione lineare (linear speed-up) e sue conseguenze.
La classe di complessità P.
Esempio di problemi della classe P: PATH, MAX FLOW, con analisi dei possibili algoritmi di risoluzione per MAX FLOW, ACCOPPIAMENTO PERFETTO (PERFECT MATCHING).

Estensione della MdT: MdT non deterministica (NMdT).
La risorsa tempo nelle NMdT a k-nastri. Classe di complessità NTIME().
Esempio di algoritmo non deterministico computabile da una NMdT: algoritmo per SODDISFACIBILITÀ (SAT).
Relazione tra NMdT e MdT.
La classe di complessità NP.
Relazione tra NP e P. Esempio di problema in NP: problema del COMMESSO VIAGGIATORE (TSP).
Caratterizzazione alternativa della classe NP: verificatori polinomiali.
La classe di complessità EXP.

Complessità in spazio
Concetto di complessità spaziale. Macchina di Turing con input e output. Classi di complessità SPACE() e NSPACE().
Teorema di compressione (solo enunciato, dimostrazione per esercizio).
Classi di complessità L e NL.
Esempi di problemi: PALINDROME ∈ L e PATH ∈ NL.

Teoremi di relazione tra spazio e tempo di computazione per una MdT con I/O.
Relazioni tra classi di complessità
Concetto di funzione propria ed esempi di funzioni.
Il teorema del gap di Borodin (solo enunciato).

Il metodo di raggiungibilità. Teorema di inclusione tra classi in tempo e in spazio: NTIME(f(n)) ⊆ SPACE(f(n)), NSPACE(f(n)) ⊆ TIME(k(log n+f(n))).
Concetto di Macchina di Turing Universale.
L'insieme Hf.
Lemma 1 e 2 per il teorema di gerarchia temporale.
Teorema di gerarchia in tempo: versione lasca e versione stretta. Corollario P ⊂ EXP.
Teorema di gerarchia spaziale (solo enunciato). Corollario L ⊂ PSPACE.
Teorema di Savitch. Corollario SPACE(f(n))=SPACE(f(n)^2). Corollario PSPACE=NPSPACE.

Riduzioni e completezza
Concetto di riduzione e di riduzione logaritmica in spazio.
Esempio di riduzione: HAMILTON PATH ≤log SAT, PATH ≤log CIRCUIT VALUE, CIRCUIT SAT ≤log SAT.
Esempio di riduzione per generalizzazione.
Proprietà delle riduzioni: transitiva e riflessiva.
Concetto di completezza di un linguaggio.
Concetto di chiusura rispetto alla riduzione. Chiusura delle classi L, NL, P, NP, PSPACE e EXP.
Concetto di tabella di computazione.
Dimostrazione che CIRCUIT VALUE è P-completo.
Dimostrazione alternativa del teorema di Cook: CIRCUIT SAT è NP-completo.
Esempi di problemi NP-completo e loro riduzioni: SAT e sue varianti (3SAT, 3SAT con vincoli). Il caso 2SAT.
Concetto di gadget e dimostrazione della completezza del problema dell'INSIEME DI INDIPENDENZA (INDEPENDENT SET).
Problemi collegati: CRICCA (CLIQUE) e RICOPRIMENTO DI VERTICI (VERTEX COVER). Cenni sulla completezza dei problemi: MASSIMO TAGLIO, K-COLORABILITÀ, CIRCUITO HAMILTONIANO, COMMESSO VIAGGIATORE, ACCOPPIAMENTO TRIDIMENSIONALE, MIN SET COVER, SET PACKING.

Cenni sulla completezza della PROGRAMMAZIONE LINEARE INTERA, ZAINO e RIEMPIMENTO DEI CESTINI (BIN PACKING). Concetto di algoritmo pseudo polinomiale. Problemi fortemente NP-completi.


Algoritmi di approssimazione e classi di complessità approssimate.
Concetto di soluzione approssimata e di algoritmo approssimante.
Concetto di classificazione dei problemi in base alla loro approssimabilità computazionale. Principali classi di approssimazione computazionale: FPTAS, PTAS, APX, NPO. Esempi di problemi approssimabili e non approssimabili.

Testi di riferimento
Autore Titolo Casa editrice Anno ISBN Note
Christos H. Papadimitriou Computational complexity Addison Wesley 1994 0201530821
S. Arora, B. Barak Computational Complexity. A modern approach (Edizione 1) Cambridge University Press 2009 9780521424264

Modalità d'esame

L'esame consiste in una prova scritta. Il voto di questo modulo vale 1/2 del voto finale.

Le/gli studentesse/studenti con disabilità o disturbi specifici di apprendimento (DSA), che intendano richiedere l'adattamento della prova d'esame, devono seguire le indicazioni riportate QUI