Complexity Classes
- a complexity class contains a set of problems that take a similar range of time and space to solve
- for example, a problem that belongs in the NP complexity class but not in the P complexity class CANNOT be solved with any algorithm whose time complexity is polynomial-time bounded
Complexity Classes - Components
A complexity class is defined by the following components:
- Type of Computational Problem - e.g. decision problems, optimization problems, etc
- Model of Computation - e.g. Deterministic Turing Machine, Non-Deterministic Turing Machine, etc
- Bounded Resource Type(s) - either TIME or MEMORY/SPACE
- Bound(s) - a specified asymptotic complexity (e.g. linear, polynomial, exponential, etc)
Complexity Classes - Families and Types
|
Complexity Class Family |
Computational Problem Type |
Complexity Class Type |
Diagram | |||
|---|---|---|---|---|---|---|
|
DTIME(𝑓(𝑛)) |
DECISION |
Time / Search-Space |
𝑂(𝑓(𝑛)) |
| ||
|
NTIME(𝑓(𝑛)) |
DECISION |
Time / Search-Space |
𝑂(𝑓(𝑛)) | |||
|
DSPACE(𝑓(𝑛)) |
DECISION |
Memory / Space |
𝑂(𝑓(𝑛)) | |||
|
NSPACE(𝑓(𝑛)) |
DECISION |
Memory / Space |
𝑂(𝑓(𝑛)) | |||
|
PTIME(𝑓(𝑛)) |
DECISION |
Time / Search-Space |
𝑂(𝑓(𝑛)) |
| ||
|
QTIME(𝑓(𝑛)) |
DECISION |
Time / Search-Space |
𝑂(𝑓(𝑛)) |
|
