Module: NP-Completeness

Complexity of problems. Problems as strings. Encoding of strings. Languages. Decision problems as language recognition. Turing Machines. NP-Hardness. NP-Completeness. Polynomial-time reductions. Cook-Levin Theorem. NPC problems. Approximations algorithms.

Learning Outcomes

Understand NP-Completeness and how to deal with NP-hard problems

You know how to

Readings

Experiential Learning