CM52038: Computational complexity
[Page last updated: 22 April 2025]
Academic Year: | 2025/26 |
Owning Department/School: | Department of Computer Science |
Credits: | 5 [equivalent to 10 CATS credits] |
Notional Study Hours: | 100 |
Level: | Masters UG & PG (FHEQ level 7) |
Period: |
|
Assessment Summary: | EXCB 100% |
Assessment Detail: |
|
Supplementary Assessment: |
|
Requisites: |
In taking this module you cannot take CM32025 OR take CM30073
Before taking this module you must take CM22008 AND ( take CM12006 OR take MA12013 ) OR ( take CM20254 AND take CM20217 AND take CM10312 ) |
Learning Outcomes: |
1. To recognize NP-hard problems and prove the appropriate reductions.
2. To cope with NP-complete problems.
3. To know some fundamental methods of proving lower complexity bounds.
4. To understand the basics of quantum computing.
5. To be able to read, understand, critically evaluate and report instances of modern literature on the subject of the unit. |
Synopsis: | "You will explore the key concepts and mathematical techniques of computational complexity. You will learn to recognize and prove that problems are NP-hard, including the central concept of NP completeness, and consider a range of examples of NP-complete problems.
You will learn to prove complexity lower bounds for some models of computations (e.g., algebraic computation trees).
You will explore the basics of quantum computing. " |
Content: | Complexity: deterministic and non-deterministic Turing machines, the complexity class NP, versions of reducibility, NP-hardness and NP-completeness, examples of NP-complete problems (such as the satisfiability problem for Boolean formulae, clique, vertex cover, travelling salesman, subgraph isomorphism), polynomial-time approximation algorithms for NP-complete graph problems such as travelling salesman, lower complexity bounds, algebraic computation trees and their complexities, introduction to quantum computing (definitions, Deutsch and Deutsch-Jozsa algorithms). |
Course availability: |
CM52038 is Optional on the following courses:Department of Computer Science
|
Notes:
|