Upload
sharon-lynne-wright
View
217
Download
0
Embed Size (px)
Citation preview
Summary of Previous Lectures
• The Halting problem is undecidable:
– HALT = {<M,w> | M is a Turing machine, w *, M halts on input w}
• The proof involved a paradox
Proving that Other Problems are Undecidable
• We use the reductions method
– A is reduced into B (written: A ≤red B)
– Implies: deciding B is at least as hard as as deciding A
• This method requires that we know at least one problem to be undecidable
• Reductions are also used to prove intractability– E.g., NP-completeness
Intuition
• A ≤red B if I can use a decider for B (assuming one exists) to construct a decider for A• Implies: deciding B is at least as hard as as deciding A
Intuition
• A ≤red B if I can use a decider for B (assuming one exists) to construct a decider for A• Implies: deciding B is at least as hard as as deciding A
• Example?
Intuition
• A ≤red B if I can use a decider for B (assuming one exists) to construct a decider for A• Implies: deciding B is at least as hard as as deciding A
• Example 1: when we use software libraries to solve a problem A
SolutionA() {
}
Software library
solutionB1()
solutionB2()
solutionB3()
Intuition
• A ≤red B if I can use a decider for B (assuming one exists) to construct a decider for A• Implies: deciding B is at least as hard as as deciding A
• Example 1: when we use software libraries to solve a problem A
SolutionA() {
… solutionB2()….}
Software library
solutionB1()
solutionB2()
solutionB3()
Intuition
• A ≤red B if I can use a decider for B (assuming one exists) to construct a decider for A• Implies: deciding B is at least as hard as as deciding A
• Example 2: How to use a solution of B to solve A if:
– A = “find the largest number among an array of integers array[1..n]”
– B = “find the smallest number among an array of integers array[1..n]”
Intuition
• A ≤red B if I can use a decider for B (assuming one exists) to construct a decider for A• Implies: deciding B is at least as hard as as deciding A
• Example 3: How to use a solution of B to solve A if:
– A = “find if there is a zero in an array of integers array[1..n]”
– B = “determine the product of all numbers in an array of integers array[1..n]” (e.g., if array[…] contains 2, 3, 7 then the result will be 42.
Intuition
• A ≤red B if I can use a decider for B (assuming one exists) to construct a decider for A• Implies: deciding B is at least as hard as as deciding A
• Relations:• Assume A is undecidable, is B undecidable?• Assume A is decidable, is B decidable?• Assume B is decidable, is A decidable?• Assume B is undecidable, is A undecidable?
Intuition
• A ≤red B if I can use a decider for B (assuming one exists) to construct a decider for A• Implies: deciding B is at least as hard as as deciding A
If B is decidableThen A is decidable
Intuition
• A ≤red B if I can use a decider for B (assuming one exists) to construct a decider for A• Implies: deciding B is at least as hard as as deciding A
If B is decidableThen A is decidable If A is undecidable
Then B is undecidable
Example: Dead-Code Problem
• Given a program P, an input w for P, and a line of code i in P, will P ever execute line I when running with input w?
Example: Dead-Code Problem
• Given a program P, an input w for P, and a line of code i in P, will P ever execute line I when running with input w?
P(w){ if (w == 1) then println(“yes”) else printlin(“no”)}
Example: Dead-Code Problem
• Given a program P, an input w for P, and a line of code i in P, will P ever execute line I when running with input w?
P(w){ Foo() if (w == 1) then println(“yes”) else printlin(“no”)}
Foo()
Example: Dead-Code Problem
• We are going to show HALT ≤red DEAD-Code
• Hence, DEAD-Code is undecidable
• Lets construct a decider MH for HALT assuming a decider MD for DEAD-Code is available
Example: Do-Nothing Problem
• Given a program P, will P reject every input w?
P(w){ Foo() return accept}
Foo()
Example: Do-Nothing Problem
• We are going to show HALT ≤red Do-Nothing
• Hence, Do-Nothing is undecidable
• Lets construct a decider MH for HALT assuming a decider MDN for Do-Nothing is available
Summary of the Previous Lecture (I)
• A ≤red B if I can use a decider for B (assuming one exists) to construct a decider for A• Implies: deciding B is at least as hard as as deciding A
If B is decidableThen A is decidable If A is undecidable
Then B is undecidable
Summary of the Previous Lecture (II)
• A ≤red B if I can use a decider for B (assuming one exists) to construct a decider for A• Implies: deciding B is at least as hard as as deciding A
• We proved:
• HALT ≤red DEAD-Code
• HALT ≤red Do-Nothing
• Hence, DEAD-Code and Do-Nothing are undecidable
Observations
• HALT is recognizable
• Dead-Code is recognizable
• We can easily proof this
• Is there a problem that is not recognizable?
Equivalence
• Given two programs P, P’ are they equivalent?– For every input w, P(w) = P(w’)
– For example, if P and P’ return either true or false then: For every input w, P(w) is true iff P(w’) is true
Equivalence• Given two programs P, P’ are they equivalent?
– For every input w, P(w) = P’(w)• The following 2 programs receive as input an array of
integers (a[1..n] in the left and A[0..MAXDIN] in the right). Are they equivalent?
Equivalence• Given two programs P, P’ are they equivalent?
– For every input w, P(w) = P(w’)
• So what you think is Equivalence decidable?
Equivalence• Given two programs P, P’ are they equivalent?
– For every input w, P(w) = P(w’)
• We can prove that HALT ≤red Equivalence
• Lets construct a decider MH for HALT assuming a decider ME for Equivalence is available
• Hence, Equivalence is not decidable• As it turns out Equivalence is not even recognizable
HALT ≤red Equivalence
MH :- on input <M,w>
Maux1 :- on input x
1. reject
Maux2 :- on input x
1. Run M on input w
2. reject
1. Run ME on <Maux1,Maux2>
2. if accept then accept
else reject
Informally
• Can we construct a machine that exhibits “human level” intelligence?
We Certainly Have Come a Long Way
• Many AI paradigms are constructed from our understanding of how humans think– E.g., case-based reasoning: recall past experiences– Neural networks: simulate connectionism of brain
cells
34
Example of AI: The Case Base Reasoning Cycle
RETRIEVE
REUSE
SuggestedSolution
REVISE
ConfirmedSolution
RETAIN
previouscases
General Knowledge
NewCase
Problem
RetrievedCase New
Case
SolvedCase
Tested/RepairedCase
LearnedCase
Jerry’sKnowledge
DrivingCases
Allentown to NYC?
(Allentown, NYC)
(Allentown,Jersey City)(Allentown,
NYC)
(Allentown,Jersey City,
NYC)
(Allentown,most of the way to JC,using by pass highway,
NYC)
(Allentown,most of the way to JC,using bypass highway,
NYC)
Driving fromAllentown to NYC?
We Certainly Have seen Impressive Examples of Machine’s Capabilities
Impressive But…
• Could humans “solve” HALT?– E.g., “Crowdsourcing”
• Humans have been able to solve problems that are difficult for computers