Top Banner
Theory of Computation
88

Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Dec 22, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Theory of Computation

Page 2: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Computation

• Computation is a general term for any type of information processing that can be represented as an algorithm precisely (mathematically).

Page 3: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Computation

• Computation is a general term for any type of information processing that can be represented as an algorithm precisely (mathematically).Examples:• Adding two numbers in our brains, on a piece of

paper or using a calculator.

Page 4: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Computation

• Computation is a general term for any type of information processing that can be represented as an algorithm precisely. (mathematically)Examples:• Adding two numbers in our brains, on a piece of

paper or using a calculator.• Converting a decimal number to its binary

presentation or vise versa.

Page 5: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Computation

• Computation is a general term for any type of information processing that can be represented as an algorithm precisely (mathematically).Examples:• Adding two numbers in our brains, on a piece of paper

or using a calculator.• Converting a decimal number to its binary presentation

or vise versa.• Finding the greatest common divisors of two numbers.• …

Page 6: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Theory of Computation

• A very fundamental and traditional branch of Theory of Computation seeks:

Page 7: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Theory of Computation

• A very fundamental and traditional branch of Theory of Computation seeks: 1. A more tangible definition for the intuitive

notion of algorithm which results in a more concrete definition for computation.

Page 8: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Theory of Computation

• A very fundamental and traditional branch of Theory of Computation seeks: 1. A more tangible definition for the intuitive

notion of algorithm which results in a more concrete definition for computation.

2. Finding the boundaries (limitations) of computation.

Page 9: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Algorithm• A finite sequence of simple instructions that is

guaranteed to halt in a finite amount of time.

Page 10: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Algorithm• A finite sequence of simple instructions that is

guaranteed to halt in a finite amount of time.• This is a very abstract definition, since:– We didn’t specify the nature of this simple

instructions. • For example an instruction can be “increment a

number by one” or “Calculate the triple integral”

Page 11: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Algorithm• A finite sequence of simple instructions that is

guaranteed to halt in a finite amount of time.• This is a very abstract definition, since:– We didn’t specify the nature of this simple

instructions. • For example an instruction can be “increment a number by

one” or “Calculate the triple integral”

– We didn’t specify the entity which can execute these instructions.

Page 12: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Algorithm• A finite sequence of simple instructions that is

guaranteed to halt in a finite amount of time.• This is a very abstract definition, since:– We didn’t specify the nature of this simple instructions.

• For example an instruction can be “increment a number by one” or “Calculate the triple integral”

– We didn’t specify the entity which can execute these instructions.• For example is this entity a person, a computer, …• If it is a computer what is the processor type? How much memory

does it have? …. ?

Page 13: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

An Abstract Machine• To make a more solid definition of algorithm

we need to define an abstract (general) machine which can perform any algorithm that can be executed by any computer.

Page 14: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

An Abstract Machine• To make a more solid definition of algorithm

we need to define an abstract (general) machine which can perform any algorithm that can be executed by any computer.

• Then, We need to show that indeed this machine can run any algorithm that can be executed by any other computer. Then,

Page 15: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

An Abstract Machine• To make a more solid definition of algorithm we

need to define an abstract (general) machine which can perform any algorithm that can be executed by any computer.

• Then, We need to show that indeed this machine can run any algorithm that can be executed by any other computer. Then,– We can associate the notion of algorithm with this abstract

machine.– We can study this machine to find the limitations of computations.

(Problems with no computation available to solve.)

Page 16: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Turing Machine• A conceptual model for general purpose

computers proposed by Alan Turing in 1936.

Page 17: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Turing Machine• A conceptual model for general purpose

computers proposed by Alan Turing in 1936.• A Turing machine has an unlimited and

unrestricted amount of memory.

Page 18: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Turing Machine• A conceptual model for general purpose

computers proposed by Alan Turing in 1936.• A Turing machine has an unlimited and

unrestricted amount of memory.• A Turing machine can do everything a real

computer can do.

Page 19: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Turing Machine• A conceptual model for general purpose

computers proposed by Alan Turing in 1936.• A Turing machine has an unlimited and

unrestricted amount of memory.• A Turing machine can do everything a real

computer can do.• Nevertheless there are problems that a Turing

machine cannot solve.

Page 20: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Turing Machine• A conceptual model for general purpose computers

proposed by Alan Turing in 1936.• A Turing machine has an unlimited and unrestricted

amount of memory.• A Turing machine can do everything a real computer

can do.• Nevertheless there are problems that a Turing

machine cannot solve.• In a real sense, these problems are beyond the

theoretical limits of computations.

Page 21: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Turing Machine Specification

Components of Turing Machine:1. An unlimited length tape of discrete cells.

Page 22: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Turing Machine Specification

Components of Turing Machine:1. An unlimited length tape of discrete cells.2. A head which reads and writes on tape.

Page 23: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Turing Machine Specification

Components of Turing Machine:1. An unlimited length tape of discrete cells.2. A head which reads and writes on tape.3. A control device with a finite number of states

which can

Page 24: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Turing Machine Specification

Components of Turing Machine:1. An unlimited length tape of discrete cells.2. A head which reads and writes on tape.3. A control device with a finite number of states

which cana) Instruct the head to read the symbol on the tape

currently under head.

Page 25: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Turing Machine Specification

Components of Turing Machine:1. An unlimited length tape of discrete cells.2. A head which reads and writes on tape.3. A control device with a finite number of states

which cana) Instruct the head to read the symbol on the tape

currently under head.b) Instruct the head to write a symbol on the cell of the

tape currently under tape.

Page 26: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Turing Machine Specification

Components of Turing Machine:1. An unlimited length tape of discrete cells.2. A head which reads and writes on tape.3. A control device with a finite number of states

which cana) Instruct the head to read the symbol on the tape

currently under head.b) Instruct the head to write a symbol on the cell of the

tape currently under tape.c) Move the head one cell to left or right.

Page 27: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Turing Machine Specification

Components of Turing Machine:1. An unlimited length tape of discrete cells.2. A head which reads and writes on tape.3. A control device with a finite number of states which

cana) Instruct the head to read the symbol on the tape currently

under head.b) Instruct the head to write a symbol on the cell of the tape

currently under tape.c) Move the head one cell to left or right.d) Change its current state.

Page 28: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

A Turning Machine

Page 29: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Turing Machine Instructions

• Instructions of Turing Machine have the following format:

(Current State, Current Symbol, Write, Move L/R or No move, New State)

Ex: (2, 0, 1, L, 3) (3, 1, blank, N, 4) (1, #, 0, R, 7)

Page 30: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Turing Machine Instructions

• The interpretation of the TM (Turing Machine) instructions: (2, 0, 1, L, 3)– When Turing machine (the control unit of TM)

is at state 2 and the current tape symbol is 0, write symbol 1 at current tape cell and go to state 3.

Page 31: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Visualization of TM instruction (2, 0, 1, L, 3)

Page 32: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Visualization of TM instruction (2, 0, 1, L, 3)

Page 33: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

TM Conventions

• We always use state 1 as the initial state. (That is the execution of the algorithm or program begins with stating of the TM being 1.

Page 34: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

TM Conventions

• We always use state 1 as the initial state. (That is the execution of the algorithm or program begins with stating of the TM being 1.

• The tape is used for recording input and output, one symbol per cell. Initially, the string to serve as input to our computation is recorded beginning from the leftmost tape cell.

Page 35: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

TM Conventions

• We always use state 1 as the initial state. (That is the execution of the algorithm or program begins with stating of the TM being 1.

• The tape is used for recording input and output, one symbol per cell. Initially, the string to serve as input to our computation is recorded beginning from the leftmost tape cell.

• Initially, the position of head is at left most cell.

Page 36: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Initial Configuration of TM

Page 37: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

The Output of TM

• The output of a TM program or algorithm is the sequence of symbols on the tape when the TM halts on that program.

Page 38: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

TM Programs

• A Turing machine program is a set of TM instructions.

Page 39: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

TM Programs

• A Turing machine program is a set of TM instructions.

• Turing machine halts on a program if there is no instruction in the program which its current state is the current state of the machine and its current symbol is the current symbol of the tape of the machine (symbol under head of the machine).

Page 40: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 1

{ (1, 1, 1, R, 2), (2, 1, 1, R, 2), (2, blank, blank, R, 3), (3, 1, blank, L, 4), (4, blank, 1, R, 2) }

Page 41: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 1

{ (1, 1, 1, R, 2), (2, 1, 1, R, 2), (2, blank, blank, R, 3), (3, 1, blank, L, 4), (4, blank, 1, R, 2) }• This program outputs the sum of two integers

m and n given as input.

Page 42: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 1

{ (1, 1, 1, R, 2), (2, 1, 1, R, 2), (2, blank, blank, R, 3), (3, 1, blank, L, 4), (4, blank, 1, R, 2) }• This program outputs the sum of two integers

m and n given as input.• The numbers are in base 1 (unary notation).

Page 43: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 1

{ (1, 1, 1, R, 2), (2, 1, 1, R, 2), (2, blank, blank, R, 3), (3, 1, blank, L, 4), (4, blank, 1, R, 2) }• This program outputs the sum of two integers m and n

given as input.• The numbers are in base 1 (unary notation).• Examples of integers in unary notation: 1 = 1 2 = 11 3 = 111 4 = 1111 …. number n = n number of 1s.

Page 44: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 1

The input on tape (the initial configuration): 1 1 b 1 1 1 1 b b b … state = 1 ^Inputs : operands 2 and 4.

Page 45: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 1

The input on tape (the initial configuration): 1 1 b 1 1 1 1 b b b … state = 1 ^Inputs : operands 2 and 4.The output on tape (when the program halts): 1 1 1 1 1 1 b b b … state = 3 output : 6b stands for blank.

Page 46: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 1

• Executing the program:

Page 47: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 1

1 1 b 1 1 1 1 b b … state = 1 ^Instruction which is going to be executed: (1, 1, 1, R, 2)

Page 48: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 1

1 1 b 1 1 1 1 b b … state = 2 ^Instruction which is going to be executed: (2, 1, 1, R, 2)

Page 49: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 1

1 1 b 1 1 1 1 b b … state = 2 ^Instruction which is going to be executed:(2, blank, blank, R, 3)

Page 50: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 1

1 1 b 1 1 1 1 b b … state = 3 ^Instruction which is going to be executed:(3, 1, blank, L, 4)

Page 51: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 1

1 1 b b 1 1 1 b b … state = 4 ^Instruction which is going to be executed:(4, blank, 1, R, 2)

Page 52: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 1

1 1 1 b 1 1 1 b b … state = 2 ^Instruction which is going to be executed:(2, blank, blank, R, 3),

Page 53: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 1

1 1 1 b 1 1 1 b b … state = 3 ^Instruction which is going to be executed:(3, 1, blank, L, 4)

Page 54: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 1

1 1 1 b b 1 1 b b … state = 4 ^Instruction which is going to be executed:(4, blank, 1, R, 2)

Page 55: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 1

1 1 1 1 b 1 1 b b … state = 2 ^Instruction which is going to be executed:(2, blank, blank, R, 3)

Page 56: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 1

1 1 1 1 b 1 1 b b … state = 3 ^Instruction which is going to be executed:(3, 1, blank, L, 4)

Page 57: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 1

1 1 1 1 b b 1 b b … state = 4 ^Instruction which is going to be executed:(4, blank, 1, R, 2)

Page 58: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 1

1 1 1 1 1 b 1 b b … state = 2 ^Instruction which is going to be executed:(2, blank, blank, R, 3)

Page 59: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 1

1 1 1 1 1 b 1 b b … state = 3 ^Instruction which is going to be executed:(3, 1, blank, L, 4)

Page 60: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 1

1 1 1 1 1 b b b b … state = 4 ^Instruction which is going to be executed:(4, blank, 1, R, 2)

Page 61: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 1

1 1 1 1 1 1 b b b … state = 2 ^Instruction which is going to be executed:(2, blank, blank, R, 3)

Page 62: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 1

1 1 1 1 1 1 b b b … state = 3 ^There is no instruction starting with:(3 ,blank , …. ) => HALT

Output : 1 1 1 1 1 1 b b b …

Page 63: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 1

1 1 1 1 1 1 b b b … state = 3 ^There is no instruction starting with:(3 ,blank , …. ) => HALT

Output : 1 1 1 1 1 1 b b b …What is the function computed by this TM prorgram?

Page 64: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 2

{(1, 0, 0, R, 2), (1, 1, 1, R, 2), (2, 0, 0, R, 2), (2, 1, 1, R, 2), (2, blank, 0, R, 3), (3, blank, 0, R, 4 )}

Number of states: 4Used alphabet : 0, 1

Page 65: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 2

1 1 0 0 1 0 1 1 b b b … state = 1 ^

(1, 0, 0, R, 2) > (1, 1, 1, R, 2) (2, 0, 0, R, 2) (2, 1, 1, R, 2) (2, blank, 0, R, 3) (3, blank, 0, R, 4 )

Page 66: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 2

1 1 0 0 1 0 1 1 b b b … state = 2 ^

(1, 0, 0, R, 2) (1, 1, 1, R, 2) (2, 0, 0, R, 2) > (2, 1, 1, R, 2) (2, blank, 0, R, 3) (3, blank, 0, R, 4 )

Page 67: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 2

1 1 0 0 1 0 1 1 b b b … state = 2 ^

(1, 0, 0, R, 2) (1, 1, 1, R, 2) > (2, 0, 0, R, 2) (2, 1, 1, R, 2) (2, blank, 0, R, 3) (3, blank, 0, R, 4 )

Page 68: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 2

1 1 0 0 1 0 1 1 b b b … state = 2 ^

(1, 0, 0, R, 2) (1, 1, 1, R, 2) > (2, 0, 0, R, 2) (2, 1, 1, R, 2) (2, blank, 0, R, 3) (3, blank, 0, R, 4 )

Page 69: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 2

1 1 0 0 1 0 1 1 b b b … state = 2 ^

(1, 0, 0, R, 2) (1, 1, 1, R, 2) (2, 0, 0, R, 2) > (2, 1, 1, R, 2) (2, blank, 0, R, 3) (3, blank, 0, R, 4 )

Page 70: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 2

1 1 0 0 1 0 1 1 b b b … state = 2 ^

(1, 0, 0, R, 2) (1, 1, 1, R, 2) > (2, 0, 0, R, 2) (2, 1, 1, R, 2) (2, blank, 0, R, 3) (3, blank, 0, R, 4 )

Page 71: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 2

1 1 0 0 1 0 1 1 b b b … state = 2 ^

(1, 0, 0, R, 2) (1, 1, 1, R, 2) (2, 0, 0, R, 2) > (2, 1, 1, R, 2) (2, blank, 0, R, 3) (3, blank, 0, R, 4 )

Page 72: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 2

1 1 0 0 1 0 1 1 b b b … state = 2 ^

(1, 0, 0, R, 2) (1, 1, 1, R, 2) (2, 0, 0, R, 2) > (2, 1, 1, R, 2) (2, blank, 0, R, 3) (3, blank, 0, R, 4 )

Page 73: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 2

1 1 0 0 1 0 1 1 b b b … state = 2 ^

(1, 0, 0, R, 2) (1, 1, 1, R, 2) (2, 0, 0, R, 2) (2, 1, 1, R, 2) > (2, blank, 0, R, 3) (3, blank, 0, R, 4 )

Page 74: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 2

1 1 0 0 1 0 1 1 0 b b … state = 3 ^

(1, 0, 0, R, 2) (1, 1, 1, R, 2) (2, 0, 0, R, 2) (2, 1, 1, R, 2) (2, blank, 0, R, 3) > (3, blank, 0, R, 4 )

Page 75: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 2

1 1 0 0 1 0 1 1 0 0 b … state = 4 ^

(1, 0, 0, R, 2) (1, 1, 1, R, 2) (2, 0, 0, R, 2) (2, 1, 1, R, 2) (2, blank, 0, R, 3) (3, blank, 0, R, 4 )

Page 76: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 2

HALT. Output: 1 1 0 0 1 0 1 1 0 0 b … state = 4 ^ INPUT: 11001011 What is the function that is being computed by this

program?

Page 77: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 2

OUTPUT: 1100101100INPUT: 11001011 Input is base-2 presentation of number203 and output is the base-2presentation of number 812.

Page 78: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Example 2

OUTPUT: 1100101100INPUT: 11001011 Input is base-2 presentation of number203 and output is the base-2presentation of number 812.Thus, f(x) = 4x

Page 79: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

The definition of Algorithm

• We have reasons to believe (Although we will not provide the reasoning here in this course) that for any algorithm (finite sequence of steps which stops in a finite amount of time) that can be executed on any machine, there is a TM algorithm (program) which can be executed on TM and performs the same action.

Page 80: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Conclusion

Intuitive notion of Turing machine algorithm equals algorithm

The Church-Turing Thesis

Page 81: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Decidable Problems

• Problems, for which we can’t find an algorithm that answer all possible instances of the problem.

Page 82: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Decidable Problems

• Problems, for which we can’t find an algorithm that answer all possible instances of the problem.

• That is there is no TM program which answer all possible instances of the problem in a finite amount of time.

Page 83: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Decidable Problems

• For a decidable problem there is a program such that if an instance of the problem has solution, the program eventually halts with answer. But if there is no solution for that instance, the program will not ever halt.

Page 84: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Decidable Problems

• For a decidable problem there is a program such that if an instance of the problem has solution, the program eventually halts with answer. But if there is no solution for that instance, the program will not ever halt.

• Can we consider such programs as algorithms?

Page 85: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Decidable Problems

• For a decidable problem there is a program such that if an instance of the problem has solution, the program eventually halts with answer. But if there is no solution for that instance, the program will not ever halt.

• Can we consider such programs as algorithms?

• Answer: No, because they might not halt.

Page 86: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

An Un-decidable Problem

• The problem of finding an integral solution for a collection of multi-variable polynomial equations, is not decidable.

For example consider the following two instances of problem:

Page 87: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Examples

Page 88: Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.

Examples

Assume, we have a program which assigns all possible combination of 3 integers to variables x, y and z. For the first case there is at least one solution (x = 2, y = 1, z =5). Thus, the program will eventually stops. But for the second case we don’t know if this system has a solution. If there is no solution for the second system, then the program never stops.