“Complexity”
P=NP? Who knows? Who cares?
•
Let’s revisit some questions from last
time
–
How many
pairwise
comparisons do I
need to do to check if a sequence of n

numbers is sorted?
–
If I have a procedure for checking
whether a sequence is sorted, is it
reasonable to sort a sequence of
numbers by generating permutations
and testing if any of them are sorted?
–
What major CS theorem did someone
claimed to have proved recently?
Intelligence is putting the
“test” part of
Generate&Test
into generate part…
Exactly when do we say an algorithm is
“slow”?
•
We kind of felt that O(N! * N) is a bit much
complexity
•
How about O(N
2
)? O(N
10
)? Where do we draw
the line?
–
Meet the Computer Scientist Nightmare
–
So “Polynomial” ~ “easy” & “exponential” ~ “hard”
–
2
n
eventually overtakes
any
n
k
however large k is..
•
How do we know if a problem is “really” hard to
solve or it is just that I am dumb and didn’t know
how to do better?
2
n
Classes P and NP
Class P
•
If a problem can be solved
in time polynomial in the
size of the input it is
considered an “easy”
problem
–
Note that
your
failure to solve
a problem in polynomial time
doesn’t mean it is not
polynomial (you could come
up with O(N* N!) algorithm
for sorting, after all
Class NP
•
Technically “if a problem can
be solved in polynomial time
by a non

deterministic
turing
machine, then it is in class NP”
•
Informally, if you can check the
correctness of a solution in
polynomial time, then it is in
class NP
–
Are there problems where even
checking the solution is hard?
Tower of Hanoi (or Brahma)
•
Shift the disks from the left
peg to the right peg
–
You can lift one disk at a
time
–
You can use the middle
peg to “park” disks
–
You can never ever have a
larger disk on top of a
smaller disk (or KABOOM)
•
How many moves to solve
a 2

disk version? A 3

disk
one? An n

disk one?
–
How long does it take (in
terms of input size), to
check if you have a
correct solution?
How to explain to your boss as to why
your program is so slow…
I can't find an efficient algorithm, I guess I'm just too dumb.
I can't find an efficient algorithm,
because no such algorithm is possible.
I can't find an efficient algorithm, but neither
can all these famous people.
The P=NP question
•
Clearly, all polynomial problems
are also NP problems
•
Do we know for sure that there
are NP problems that are
not
polynomial?
•
If we assume this, then we are
assuming P != NP
•
If P = NP, then some smarter
person can still solve a problem
that we thought can’t be solved
in
polytime
–
Can imply more than a loss of
face… For example, factorization
is known to be an NP

Complete
problem; and forms the basis for
all of cryptography.. If P=NP, then
all the cryptography standards
can be broken!
NP

Complete: “hardest” problems
in class NP
EVERY problem in class NP can
be reduced to an NP

Complete
problem in polynomial time

So you can solve that problem
by using an algorithm that solves
the NP

complete problem
Academic Integrity
•
What it means
•
Typical ASU policy
–
Homeworks
–
Exams
•
Take

Home Exams
–
Term papers
Scholarship Opportunities
•
General Scholarships
•
The FURI program
•
NSF
REU program
Is exponential complexity the worst?
•
After all, we can have 2
2
More fundamental question:
Can every computational
problem be solved in finite
time?
“Decidability”

Unfortunately not
guaranteed
[and Hilbert
turns in his grave]
2
n
Some Decidability Challenges
•
In First Order Logic, inference
(proving theorems) is
semi

decidable
–
If the theorem is true, you can show
that in finite time; if it is false you may
never be able to show it
•
In First Order Logic +
Peano
Arithmatic
, inference is
undecidable
–
There may be theorems that are
true
but you can’t prove them [
Godel
]
Reducing Problems…
Mathematician
reduces “mattress
on fire” problem
Make
Rao
Happy
Make Everyone in
ASU Happy
Make Little
Tommy Happy
Make his entire
family happy
General NP

problem
Boolean
Satisfiability
Problem
3

SAT
Practical Implications of Intractability
•
A class of problems is said to
be NP

hard as long as the
class contains at least one
instance that will take
exponential time..
•
What if 99% of the instances
are actually easy to solved?

Where then are the wild
things?
Satisfiability
problem
•
Given a set of propositions P
1
P
2
…
P
n
•
..and a set of “clauses” that the propositions must
satisfy
–
Clauses are of the form P
1
V P
7
VP
9
V P
12
V ~P
35
–
Size of a clause is the number of propositions it
mentions; size can be
anywhere from 1 to n
•
Find a T/F assignment to the propositions that respects
all clauses
•
Is it in class NP? How many “potential” solutions?
Canonical NP

Complete Problem.
•
3

SAT is where all clauses are of length 3
Example of a SAT problem
•
P,Q,R are propositions
•
Clauses
–
P V ~Q V R
–
Q V ~R V ~P
•
Is P=False, Q=True, R=False as solution?
•
Is Boolean SAT in NP?
Hardness of 3

sat as a function of
#clauses/#variables
#clauses/#variables
Probability that
there is a satisfying
assignment
Cost of solving
(either by finding
a solution or showing
there ain’t one)
p=0.5
You would
expect this
This
is what
happens!
~4.3
Phase Transition!
Phase Transition in SAT
Theoretically we only know that phase transition ratio
occurs between 3.26 and 4.596.
Experimentally, it seems to be close to 4.3
(We also have a proof that 3

SAT has sharp threshold)
Comments 0
Log in to post a comment