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. Criticaland 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 GORLA Lecturers' profile

Program - Frequency - Exams

Course program
Automata and Languages: Regular languages, finite state automata and regular grammars. Context-free languages, context-free grammars and stack automata; Chomsky hierarchy. Calculability Theory: Turing Machines. Church-Turing thesis. Undecidable problems: the halting problem. Reduction between problems: a tool to demonstrate their indecidability or decidability. Examples of decidable and undecidable problems. Complexity Theory: Time and space complexity for Turing machines. Classes of complexity. Treatable problems and problems that are not proven to be intractable: the P and NP classes. Polynomial reductions and NP-completeness. Cook-Levin theorem and other NP-complete problems.
Prerequisites
Basic notions of algorithms, computational complexity (O notation), trees, graphs, first order logic
Books
M. Sipser, Introduction to the Theory of Computation, III edition. Engage Learning, 2012. A few topics are covered by chapter 9 of: J.E. Hopcroft, J.D. Ullman: Introduction to Automata Theory, Languages and Computation. Addison Wesley, 1979.
Teaching mode
Recording of classes, plus 6 webinars for clarifications and more explanations
Frequency
Attendance is strongly suggested, because of the complexity of the topics covered
Exam mode
A written exam on the automata part and on oral exam on all the theory presented (definitions and proofs)
Lesson mode
Prerecorded lessons and webinars
  • Lesson code1041727
  • Academic year2024/2025
  • CourseInformatics
  • CurriculumSingle curriculum
  • Year3rd year
  • Semester1st semester
  • SSDINF/01
  • CFU6
  • Subject areaDiscipline Informatiche