Computational complexity

Course objectives

General outcomes- The course focuses on: (1) a modern approach to the study of computational complexity, (2) the acquisition of the notion of algorithmic computations under limited computational resources; (3) classification of mathematical problems according to the computational resources and sufficient and necessary to algorithmically solve them. One of the aims of the course is to introduce to foundational problems such as P vs NP and similar problems for other classes. The main focus of the course is the study of intractability and the acquisition of the mathematical tools to show that certain problems cannot be solved using limited computational resources. Specific outcomes. Knowledge and understanding: Classification of mathematical problems according to the computational resources necessary to solve them efficiently: running time; memory space; randomness, non-determinismi, parallelism. Mathematical proof techniques for the solution of intractability problems. Applying knowledge and understanding: Give the students the ability of problem solving for computational problems mainly under two aspects: (1) Thinking and describing at a high level the solution of a computational problem showing the main ideas to solve it and the reasons and the effectiveness of these ideas towards the solution of the problema; (2) Being able to write and describe correctly at a detailed mathematical level solutions of problems described at a high level. Making judgements: Ability of evaluating quality and correctness of the solutions to problems of computational nature. Communication skills: Ability to describe and communicate problems of computational nature and their mathematical solution in various settings: (1) short presentations under 30 minutes; (2) longer and detailed blackboard presentations between one and two hours; (3) scientific writings of a report with the mathematical solution of a problem. Learning skills: The course stimulates the students to autonomously learn some of its topics; especially the lab activities encourages working in groups and applying the ideas and techniques learned.

Channel 1
NICOLA GALESI Lecturers' profile

Program - Frequency - Exams

Course program
1. Basic on Complexity Classes [2 weeks] 1.1 Theoretical models of computations and time and space resources 1.2 Time and space complexity classes 1.3 The P = NP problem 1.4 NP and NP-completeness 1.5 Unfeasible problems when resources are bounded 1.6 Computational Classes: L, NL, P, NP, PSPACE, BPP, RP, #P, IP, 1.7 Main Results 2. Diagonalization [1 week] 3. Hierarchies Theorems for time, space, deterministic and non deterministic computations [1 week] 4. Barriers Results I: Diagonalization is not sufficient to prove P different from NP [1 week] 5. Space Complexity [2 weeks] 5.1 Shamir Theorem: PSPACE = IP 5.2 Immerman-Szelepcsényi Theorem: NL=coNL, 6. Boolean Circuits [2 weeks] 6.1 Basic definitions and efficient circuits 6.2 Bounded depth circuits: NC and AC hierarchies. 6.3 Hastad-Razborov-Smolensky Theorem: Parity requires exponential size bounded depth circuits. 6.4 Monotone Circuits 7. Polynomial Hierarchy and its basic theorems [1 week] 8. Barriers Results - II [1 week, optional, if time allows] 8.1 Rudich-Razborov Theorem: "Natural proofs" are not sufficient to separate P from NP (unless crypto fails) 9. Other boolean models of computations and their limit: [1 week] 9.1 Decision trees 9.2 Branching programs. 10. Introduction to Proof Complexity [2 weeks] 10.1. Logical proof systems: Resolution 10.2 Geometric proof systems: Chvatal's cuts 10.3 Algebraic proof system: Polynomial Calculus 10.4 Semialgebraic proof systems: Sherali-Adams and Sum-of-Squares 10.5 Exponential lower bounds for Resolution and Cutting planes: Ben-Sasson-Wigdeson width method and Interpolation
Prerequisites
Basic notions of discrete mathematics (counting, graphs, permutations, ) [important] Notion of algorithm and data structure (Stack, queue, trees)[important] Efficient algorithms exploiting data information (for instance, binary search)[important] Basic notions of propositional logic [important] Notion of Relation of generic arity[important] Notion of universal and existential Quantification[important] Concetto di Relazione di arità generica[important] Basic notions of first order Logic[important] Advanced Notions on Languages [important] Computational models [important] Basic Notions of Complexity Theory [importante]
Books
S. Arora B. Barak: Computational Complexity: A Modern Approach Cambridge University Press, 2007 O. Goldreich. P, NP, and NP-Completeness: The Basics of Computational Complexity Cambridge University Press 2010 O. Goldreich. Computational Complexity: A Conceptual Perspective Cambridge University Press 2008. A. Wigderson. Mathematics and Computation. Princeton University Press. In press C. Papadimitriou. Computational Complexity. Pearsons. 1994. S. Jukna. Boolean Function Complexity. Springer. 2012 H. Vollmer. Introduction to Circuit Complexity: an uniform approach, Springer. 2013 J. Krajicek. Proof Complexity. Cambridge. 2019.
Frequency
not mandatory
Exam mode
To pass the exam the student must obtain a final mark that must be greater than or equal to 18/30. To obtain the minimal mark the student must effectively shown a sufficient knowledge covering all the topics treated along the lectures and he must be able to connect to each other all the topics covered. To obtain the full mark of 30/30 e lode it is necessary to show to have reached an outstanding knowledge of all the topics covered in the lectures. Furthermore the student must give proof of evidence to be able to logically connect all the topics. The following aspects will be considered towards the final evaluation of the exam: (1) the logic followed by the student for the solution of the problems; (2) the correctness and the soundness of the solutions of the problems; (3) how compatible are the solutions to the problems of the exams in accordance to the knowledge and the ability the student has received along all the lectures. (4) the ability to write correctly in Italian (or English if the exam is in English) We will consider also the following aspects: (1) the ability to elaborate a correct and clear answer to the questions raised and (2) the readiness of the student in answering the questions (3) How the student is able to infer genuine new knowledge from the topics covered during the lectures.
Lesson mode
The teaching model used is that of blackboard lectures integrated if possible with the following (1) lab classes, which includes solution of concrete problems raising form the theory (2) group works (3) flipped-classroom when the students receive homework to be presented during the lectures (4) Oral questions asked to the students during the lectures by the teacher. Hardware and software (for example Menti Meter) tools will be used if possible to stimulate the learning process of the student and to make clearer to the student the evolution of his learning process of the topics covered during the lectures. Materials (slide, communications, videoclasses, problems, solutions etc.) and the management of the course is done weekly on the E-Learning page (Sapienza) of the course that each year is provided by the teacher
  • Lesson code10612389
  • Academic year2025/2026
  • CourseEngineering in Computer Science and Artificial Intelligence
  • CurriculumSingle curriculum
  • Year1st year
  • Semester2nd semester
  • SSDING-INF/05
  • CFU6