Studying at the University of Verona

Here you can find information on the organisational aspects of the Programme, lecture timetables, learning activities and useful contact details for your time at the University, from enrolment to graduation.

This information is intended exclusively for students already enrolled in this course.
If you are a new student interested in enrolling, you can find information about the course of study on the course page:

Laurea magistrale in Ingegneria e scienze informatiche - Enrollment from 2025/2026

The Study Plan includes all modules, teaching and learning activities that each student will need to undertake during their time at the University.
Please select your Study Plan based on your enrollment year.

CURRICULUM TIPO:

1° Year 

ModulesCreditsTAFSSD
12
B
ING-INF/05
12
B
ING-INF/05
6
B
ING-INF/05

2° Year   activated in the A.Y. 2016/2017

ModulesCreditsTAFSSD
6
B
INF/01
6
B
ING-INF/05
Altre attivita' formative (taf f)
4
F
-
ModulesCreditsTAFSSD
12
B
ING-INF/05
12
B
ING-INF/05
6
B
ING-INF/05
activated in the A.Y. 2016/2017
ModulesCreditsTAFSSD
6
B
INF/01
6
B
ING-INF/05
Altre attivita' formative (taf f)
4
F
-
Modules Credits TAF SSD
Between the years: 1°- 2°

Legend | Type of training activity (TTA)

TAF (Type of Educational Activity) All courses and activities are classified into different types of educational activities, indicated by a letter.




S Placements in companies, public or private institutions and professional associations

Teaching code

4S02709

Credits

6

Language

Italian

Scientific Disciplinary Sector (SSD)

ING-INF/05 - INFORMATION PROCESSING SYSTEMS

Period

II semestre dal Mar 1, 2016 al Jun 10, 2016.

Location

VERONA

To show the organization of the course that includes this module, follow this link:  Course organization

Learning outcomes

The goal of this module is to introduce students to the main aspects of the computational complexity theory, and, in particular, to the NP-completeness theory and to the computational analysis of problems with respect to their approximability.

Recommended Prerequisites
-------------------------
To attend the course in a productive way, a student should be confident with the following topics:
1. Basic data structures as list, stack, queue, tree, heap.
2. Graph representation and fundamental graph algorithms:
2.1 Graph visit: BFS, DFS.
2.2 Topological ordering. Connected component.
2.3 Minimal spanning tree. Kruskal and Prim algorithm.
2.4 Single-source shortest path: Dijkstra algorithm and Bellman-Ford one.
2.5 All-pairs shortest path: Floyd-Warshall algorithm and Johnson one.
2.6 Max flow: Ford-Fulkerson algorithm.

A recommended book to revise the above topics is ``Introduction to Algorithms" di T. H. Cormen, C. E. Leiserson, R. L. Rivest e C. Stein (3 ed.).

Program

Computational models, computational resources, efficient algorithms and tractable problems.

Relationships among computational problems. Polynomial reductions of one problem into another. The classes P, NP, co-NP. Notion of completeness. Proofs od NP-completeness: Cook's theorem; proofs of completeness using appropriate reductions. Search and Decision Problems. Self-Reducibility of NP-complete problems and existence of non-selfreducible problems. Recap of basic notions of computability: Turing Machines and Diagonalization. Hierarchy theorems for time complexity classes. Separability of classes and the existence of intermediate problem under the hypothesis the P is not equal NP.

Space Complexity. Models and fundamental difference between the use of time resource and the space resource. The space complexity classes NL and L and their relationship with the time complexity class P. The centrality of the reachability problem for the study of space complexity. Completeness for space complexity classes: Log-space reductions; NL-completeness of reachability. Non-determinism and space complexity. Savitch theorem and Immelmann-Szelepcsenyi theorem. The classes PSPACE and NPSPACE. Examples of reductions to prove PSPACE-completeness.

Introduction to the approximation algorithms for optimisation problems. Examples of approximation algorithms. Classification of problems with respect to their approximabuility. The classes APX, PTAS, FPTAS. Notion of inapproximability; the gap technique to prove inapproximability results; examples of approximation preserving reductions.

Introduction to the use of randomisation for solving hard problems. Classification of problems with respect to their solvability by means of polynomial randomized algorithms. The classes RP, ZPP, BPP and their relationships. Example of relationships between randomized complexity classes and the classes in the polynomial hierarchy.

Examination Methods

The examination consists of a written test. The grade in this module is worth 1/2 of the grade in the Algorithms examination.

Students with disabilities or specific learning disorders (SLD), who intend to request the adaptation of the exam, must follow the instructions given HERE