AUTOMATA COMPUTABILITY AND COMPLEXITY

Course objectives

General goals: The course introduces the students to some of the most important results in theoretical computer science: from the fundamental results in computability theory of the thirties, through the ones in automata theory of the fifties to the challenging open problem P versus NP, raised in the seventies. Specific goals: Students will understand that there are different models of computation and the reason for their different computational power. The students will become familiar with abstract concepts such as language classes, universal machines, reducibility and they will know that some problems are impossible to solve by computers and that others are difficult to solve, even so difficult to solve that they could be considered unsolvable. They will see today's use of some of these results. Knowledge and understanding: By the end of the course the students will get familiar with the basic methods and results of the Theory of Computability and Complexity and they will be able to apply them to evaluate the complexity of problems from various fields. In particular, they will be able to: prove the equivalence between different characterizations of regular languages prove the equivalence between different characterizations of context-free languages explain the concept of nondeterminism explain the existence of problems without algorithmic solutions or those which are intractable Applying knowledge and understanding: By the end of the course the students will be able to: build finite state automata by a formal or an informal specification of a language build stack automata by a formal or an informal specification of a language use reducibility between problems to prove either decidability or undecidability use polynomial reductions to prove the NP-hardness of problems. Critical and judgmental skills: Understand the right level of abstraction to solve problems, choose the more convenient computational model in an applicative context. Communication skills: describe problems that are undecidable, not provably intractable or intractable explain the meaning and the relevance of the question “P=NP?" Learning ability: The student will be able to learn other computational models, both really new or variations of the ones seen during the course. She/he will be able to understand new NP-completeness proofs or more generally completeness proofs for any complexity class.

Channel 1
DANIELE VENTURI Lecturers' profile

Program - Frequency - Exams

Course program
1) Finite Automata: Regular languages and finite state automata. Context-free languages and pushdown automata. 2) Computability Theory: Turing machines. Church-Turing thesis. Decidable problems: the halting problem. Mapping reductions. Examples of decidable and undecidable problems. 3) Complexity Theory: Time and space complexity for Turing machines. Complexity classes. P versus NP. Polynomial-time reductions and NP-completeness. Cook-Levin theorem. Savitch's theorem.
Prerequisites
No specific knowledge is required.
Books
Michael Sipser. Introduzione alla teoria della computazione. Maggioli Editore.
Teaching mode
The course consists of in-person frontal lessons taught by the lecturer on the blackboard.
Frequency
While in-person attendance is not mandatory, the latter is strongly recommended.
Exam mode
Exercises and questions on the contents of the course.
Bibliography
Sanjeev Arora and Boaz Barak. Computational Complexity: A Modern Approach. Cambridge University Press.
Lesson mode
The course consists of in-person frontal lessons taught by the lecturer on the blackboard.
DANIELE VENTURI Lecturers' profile

Program - Frequency - Exams

Course program
1) Finite Automata: Regular languages and finite state automata. Context-free languages and pushdown automata. 2) Computability Theory: Turing machines. Church-Turing thesis. Decidable problems: the halting problem. Mapping reductions. Examples of decidable and undecidable problems. 3) Complexity Theory: Time and space complexity for Turing machines. Complexity classes. P versus NP. Polynomial-time reductions and NP-completeness. Cook-Levin theorem. Savitch's theorem.
Prerequisites
No specific knowledge is required.
Books
Michael Sipser. Introduzione alla teoria della computazione. Maggioli Editore.
Teaching mode
The course consists of in-person frontal lessons taught by the lecturer on the blackboard.
Frequency
While in-person attendance is not mandatory, the latter is strongly recommended.
Exam mode
Exercises and questions on the contents of the course.
Bibliography
Sanjeev Arora and Boaz Barak. Computational Complexity: A Modern Approach. Cambridge University Press.
Lesson mode
The course consists of in-person frontal lessons taught by the lecturer on the blackboard.
  • Lesson code1041727
  • Academic year2024/2025
  • CourseInformatics
  • CurriculumMetodologico
  • Year3rd year
  • Semester1st semester
  • SSDINF/01
  • CFU6
  • Subject areaDiscipline Informatiche