This preview shows pages 1–15. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentThis preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentThis preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentThis preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentThis preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentThis preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentThis preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
Unformatted text preview: 1 Module 11 • Proving more specific problems are not solvable • Input transformation technique – Use subroutine theme to show that if one problem is unsolvable, so is a second problem – Need to clearly differentiate between • use of program as a subroutine and • a program being an input to another program 2 Basic Idea/Technique 3 Proving a problem L is unsolvable • Assume P L is a procedure that solves problem L – We have no idea how P L solves L • Construct a program P H that solves H using P L as a subroutine – We use P L as a black box – (We could use any unsolvable problem in place of H) • Argue P H solves H – But we know H is unsolvable • Conclude that L is unsolvable – Otherwise P L would exist and then H would be solvable 4 Focusing on H • In this module, we will typically use H, the Halting Problem, as our known unsolvable problem • The technique generalizes to using any unsolvable problem L’ in place of H. – You would need to change the proofs to work with L’ instead of H, but in general it can be done • The technique also can be applied to solvable problems to derive alternative consequences • We focus on H to simplify the explanation 5 Constructing P H using P L Answerpreserving input transformations and Program P T 6 P H has two subroutines • There are many ways to construct P H using program P L that solves L • We focus on one method in which P H consists of two subroutines – Procedure P L that solves L – Procedure P T which computes a function f that I call an answerpreserving (or answerreversing) input transformation • More about this in a moment 7 Two Representations of P H * P H P,y Yes/No P L Y/N P T P T (P,y) bool P H (Program P, unsigned y) { return P L (P T (P,y)); } 8 Answerpreserving input transformation P T • Input – An input to H • Output – An input to L such that • yes inputs of H map to yes inputs of L • no inputs of H map to no inputs of L • Note, P T must not loop when given any legal input to H 9 Why this works * P H P L P T yes input to H yes input to L yes no input to H no input to L no We have assumed that P L solves L bool P H (Program P, unsigned y) { return P L (P T (P,y)); } 10 Answerreversing input transformation P T • Input – An input to H • Output – An input to L such that • yes inputs of H map to no inputs of L • no inputs of H map to yes inputs of L • Note, P T must not loop when given any legal input to H 11 Why this works P H P L P T yes input to H no input to L yes no input to H yes input to L no We have assumed that P L solves L no yes bool P H (unsigned x) { return complement(P L (P T (P,y))); } 12 Yes→Yes and No→No Domain of H Yes inputs for H No inputs for H Yes inputs for L No inputs for L Domain of L P L P T P H x P T (x) Yes/No 13 Notation and Terminology • If there is such an answerpreserving (or answerreversing) input transformation f (and the corresponding program P T ), we say that H transforms to (manyone reduces to) L • Notation H ≤ L Domain of H Yes inputs No inputs Yes inputs No inputs Domain of L 14 Examples not involving the Halting Problem 15...
View
Full
Document
This note was uploaded on 07/25/2008 for the course CSE 460 taught by Professor Torng during the Fall '07 term at Michigan State University.
 Fall '07
 TORNG

Click to edit the document details