COMP2521
Data Structures & Algorithms
Week 7.1
P, NP
Author: Hayden Smith 2021
In this lecture
Why?
- We want to be able to generalise different categories of algorithms to understand how feasible they are to solve for a given problem.
What?
- P
- NP
- NP-Complete
Solving vs Verifying
When it comes to problems we have to solve in computing, there are two key ways we can look at the difficult of the problem:
- Solving: How hard is it to find or guess the correct answer?
- Verifying: Given an answer, how hard is it to verify if it is correct?
Solving vs Verifying
| Problem to solve | Solving | Verifying |
|---|---|---|
| Sudoku | Hard | Easy |
| Hamiltonian Path | Hard | Easy |
| Euler Path | Easy | Easy |
| Traveling Salesman (H.P) | Hard | Easy |
| Spanning Tree | Easy | Easy |
| Sorting a list | Easy O(n^2) | Easy O(n) |
| Combination Lock | Hard O(k^n) | Easy O(n) |
Hard problems
Problems that are hard to solve often take a ridiculous amount of time to solve with standard computers we all use on this planet.
Most of these problems have time complexities of O(n!) or O(k^n) or worse - essentially exponential-like problems that require extreme amounts of time and processing to get the right answer for large values of n.
These problems generally can't be solved by large data sets.
Hard problems
These problems generally can't be solved by large data sets by standard computers. We describe the algorithms required to solve hard problems as a non-deterministic polynomial time problem.
Problems that are easy we say is a polynomial time problem.
These problems can only be solved in a reasonable amount of time by some theoretical computer (that doesn't exist) that can simulate many-to-all possibilities at the same time, or guess the correct answer perfectly right away.
P v NP vs NP-Complete
Problems we solve can generally be described in one of some categories of problems:
-
P: Polynomial
- Can be solved in polynomial time
- Can be verified in polynomial time
-
NP: Non-deterministic polynomial
- Can be solved in non-deterministic polynomial time
- Can be verified in polynomial time
-
NP-Complete:
- Can be solved only in non-deterministic polynomial time
- Can be verified in polynomial time
NP
P
NP-Complete
Polynomial Time
-
Polynomial time algorithms are typically in the form: n^x + .....
- E.G. n, n^2, n^4, sqrt(n), log(n)
- E.G. Breadth-first-search, binary search
-
Non-determinstic polynomial time algorithms are others:
- E.G. n!, k^n
- E.G. Hamiltonian Paths, combination locks
Feedback

COMP2521 21T2 - 7.1 - P, NP
By haydensmith
COMP2521 21T2 - 7.1 - P, NP
- 939