P ≟ NP

This one is a really beautiful puzzle requiring some background in complexity theory.

Warm Up

Prove that if P = NP, not only can you determine whether a 3SAT formula has a satisfying assignment in polynomial time, but you can actually find a satisfying assignment in polynomial time.

The Puzzle

Write an explicit algorithm, such that if P = NP your algorithm solves an NP complete problem (e.g. determines whether a 3SAT formula has a satisfying assignment) in polynomial time. By explicit algorithm I mean that your algorithm must not call a function that you assume to exist if P = NP, but rather an actual complete program that you can run right now!

Basically by solving this puzzle, you will have at your fingertips the polynomial algorithm for solving all NP complete problems, in case P = NP turns out to be true!




Share this story