Transcript Chapter 8

CS 345: Chapter 8
Noncomputability and
Undecidability
Or
Sometimes You Can’t Get It Done At
All
Some Background
• At one time, mathematics was used as the
model of “Truth”.
• Plato’s Theory of Forms
• Natural Law Theory
• Blaise Pascal (1623-1662)
Georg Cantor (1845-1918)
• Cantor developed the Theory of Sets
• Out of this theory came several paradoxes
– Infinity comes in different sizes
– There is some set that is bigger than the
universal set.
• These results, along with others such as
non-Euclidean Geometry, left
mathematicians feeling “uneasy”.
David Hilbert (1862-1943)
• Wanted all of mathematics characterized by
precise definitions, explicit axioms, and
rigorous proofs.
• Felt that this would make the Cantor
paradoxes go away.
• Wanted to find methods that would enable
humans to construct proofs of all the true
statements in mathematics.
Hilbert 2
• Hilbert wanted a precise routine for
producing results, something formulaic: an
algorithm.
• Hilbert wanted to develop algorithms for
solving various types of mathematical
problems, perhaps even one algorithm that
could solve all mathematical problems in a
finite number of steps.
• David Hilbert
– Mathematics is consistent: We cannot prove
both a statement and its opposite. We cannot
prove something like 1 = 2.
– Mathematics is complete: Every true
mathematical statement can be proven. Every
mathematical assertion can be either proved or
disproved.
– Mathematics is decidable: For every type of
mathematical problem, there is an algorithm
that, in theory, will give a solution
• In 1930, Kurt Gödel shocked the world by
proving that the first two are not both true.
This was his Incompleteness Theorem.
Today, most people hope that it is the
second point that is not true.
• In 1936, Alonzo Church, Stephen Kleene,
Emil Post, and Alan Mathison Turing
showed that the third point is false.
• In the previous chapter, we divided
problems into 2 categories: tractable
(problems with reasonable solutions) and
intractable (problems with no reasonable
solution).
• In this chapter, we add a third category:
noncomputable.
• These are problems that have no solution at
all.
• If the problem is a decision problem, it is
called undecidable.
Some Examples
• Your textbook presents several sample
problems: The Tiling Problem, The Domino
Snake Problem, The Word Correspondence
Problem, and The Program Verification
Problem.
• The best known example, however, is The
Halting Problem.
The Halting Problem
• An Example: Input is integer X
(1) while X 1 do
(1.1) if (X is even) X = X/2
(1.2) else X = 3*X + 1
(2) halt
• Does this halt for all integers X?
• The Halting Problem asks:
Given a sufficiently high level programming
language, L, can a program, Q, be written
in L that will take for input any program, P,
written L together with a legal input, X, for
P such that Q can determine if P will halt
on input X?
Proving the Undecidability of the
Halting Problem
• Outline of a proof given by Marvin Minsky
• Outline of a proof using diagonalization.
This technique was “invented” by Georg
Cantor
Proving Problems Are
Undecidable
• A problem can be shown to be undecidable
by reducing a known undecidable problem
to it.
• This is similar to showing a problem is NPcomplete. However, there is no restriction
that the reduction must be polynomial.
Oracle
• If problem P reduces to problem Q, then P
can be decided by an algorithm that
transforms an input for P to an input for Q
and asks Q for an answer.
• This type of algorithm is called an oracle.
• The existence of an oracle means that P’s
decidability cannot be any worse than Q’s
decidability
Reducing the Halting problem to
Algorithmic Verification
• The first undecidable problem was the
Halting Problem.
• This is analogous to SAT and NPC
• There is a simple reduction from the
Halting Problem to the Verification
Problem.
Certificates for Undecidable
Problems
• Just as an NP-complete problem has a
polynomial-sized certificate, so too an
undecidable problem can have a certificate.
• However, certificates for undecidable
problems only need to be finite in length.
They can be unreasonably long provided
they are finite.
• If an undecidable problem has a certificate,
it can be only a 1-way certificate: either a
yes-certificate or a no-certificate.
• An undecidable problem that has a 1-way
certificate is termed a partially decidable
problem.
• If the 1-way certificate is a yes certificate,
the problem is called recursively
enumerable (r.e.).
Problems That Are Less
Decidable
• The Halting Problem reduces to the
Verification Problem; however, the
converse is not true.
• In some sense, verification is less decidable
than halting.
• Just as there is a hierarchy of complexity
classes for tractability, there is a hierarchy
of classes for decidability
Levels of Algorithmic Behavior
Highly Undecidable
Recurring Dominos
Undecidable
Unbounded Dominos
Intractable
Bounded Dominoes
Tractable
Fixed-Width
Bounded Dominos
Figure 8.11, Page 213
Computability: Good and Bad
Highly Undecidable
Highly Undecidable
Undecidable
Undecidable
Intractable
Intractable
Tractable
Tractable
In Principle
In Practice