turing machines - a simulating simulatorelise/courses/cs6800/tm-sim.pdf · turing machines a...

121
Introduction Languages Self Replicating Machines Turing Machines A simulating simulator H. Saleh 1 M. Gul 2 J. Hussini CS6800 Advanced Theory of Computation Department of Computer Science Western Michigan University March 21, 2016 Hisham, Muaaz, Jahed Turing Machine Simulator

Upload: others

Post on 24-Oct-2019

17 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Turing MachinesA simulating simulator

H. Saleh1 M. Gul2 J. Hussini

CS6800 Advanced Theory of ComputationDepartment of Computer Science

Western Michigan University

March 21, 2016

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 2: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Outline

1 IntroductionWhat is a Turing MachineExecution

2 LanguagesRecursively Enumerable LanguagesChurch Turing Theses

3 Self Replicating MachinesDefinitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 3: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

DefinitionExecution

Outline

1 IntroductionWhat is a Turing MachineExecution

2 LanguagesRecursively Enumerable LanguagesChurch Turing Theses

3 Self Replicating MachinesDefinitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 4: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

DefinitionExecution

Definition of a Turing Machine

www.cs.cornell.edu/courses/cs4820/2012su/handouts/turingm.pdf

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 5: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

DefinitionExecution

Definition of a Turing Machinein English

Turing Machines are an abstract model of computation.They represent what it means for an algorithm to becomputable.Turing machine models have a few key features.

1 The internal state is finite.2 The tape has infinite capacity.3 A program has a specific finite set of instructions.4 A programming language is able to write an interpreter for

programs in that language (self reference).

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 6: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

DefinitionExecution

Question 1

What are the components of a Turing Machine? What is thesubset of these components required to describe aconfiguration of a specific machine?

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 7: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

DefinitionExecution

Components of a Turing Machine

A Turing machine is a 6-tuple M=(Q,Γ,Σ, δ, q0,B) whereQ is the finite set of states of the Turing machineΓ is the tape alphabetΣ ⊆ Γ is the input alphabetδ is the transition function such that Q x Γ→ Q x Γ x {L,R}q0 ∈ Q is the initial stateB ⊆ Γ − Σ is the blank symbol

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 8: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

DefinitionExecution

Components of a Turing Machine

A Turing machine is a 6-tuple M=(Q,Γ,Σ, δ, q0,B) whereQ is the finite set of states of the Turing machineΓ is the tape alphabetΣ ⊆ Γ is the input alphabetδ is the transition function such that Q x Γ→ Q x Γ x {L,R}q0 ∈ Q is the initial stateB ⊆ Γ − Σ is the blank symbol

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 9: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

DefinitionExecution

Components of a Turing Machine

A Turing machine is a 6-tuple M=(Q,Γ,Σ, δ, q0,B) whereQ is the finite set of states of the Turing machineΓ is the tape alphabetΣ ⊆ Γ is the input alphabetδ is the transition function such that Q x Γ→ Q x Γ x {L,R}q0 ∈ Q is the initial stateB ⊆ Γ − Σ is the blank symbol

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 10: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

DefinitionExecution

Components of a Turing Machine

A Turing machine is a 6-tuple M=(Q,Γ,Σ, δ, q0,B) whereQ is the finite set of states of the Turing machineΓ is the tape alphabetΣ ⊆ Γ is the input alphabetδ is the transition function such that Q x Γ→ Q x Γ x {L,R}q0 ∈ Q is the initial stateB ⊆ Γ − Σ is the blank symbol

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 11: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

DefinitionExecution

Components of a Turing Machine

A Turing machine is a 6-tuple M=(Q,Γ,Σ, δ, q0,B) whereQ is the finite set of states of the Turing machineΓ is the tape alphabetΣ ⊆ Γ is the input alphabetδ is the transition function such that Q x Γ→ Q x Γ x {L,R}q0 ∈ Q is the initial stateB ⊆ Γ − Σ is the blank symbol

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 12: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

DefinitionExecution

Components of a Turing Machine

A Turing machine is a 6-tuple M=(Q,Γ,Σ, δ, q0,B) whereQ is the finite set of states of the Turing machineΓ is the tape alphabetΣ ⊆ Γ is the input alphabetδ is the transition function such that Q x Γ→ Q x Γ x {L,R}q0 ∈ Q is the initial stateB ⊆ Γ − Σ is the blank symbol

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 13: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

DefinitionExecution

Turing Machine Configurations

The above components describe the entire Turing machine. Todescribe a certain configuration, you need to know three things:

1 The current state.2 Whatever’s on the tape.3 the current position of the reading head.

This is a three tuple derived from: Q x Γ∗ x (ε ∪ Γ∗(Γ− B))

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 14: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

DefinitionExecution

Turing Machine Configurations

The above components describe the entire Turing machine. Todescribe a certain configuration, you need to know three things:

1 The current state.2 Whatever’s on the tape.3 the current position of the reading head.

This is a three tuple derived from: Q x Γ∗ x (ε ∪ Γ∗(Γ− B))

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 15: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

DefinitionExecution

Turing Machine Configurations

The above components describe the entire Turing machine. Todescribe a certain configuration, you need to know three things:

1 The current state.2 Whatever’s on the tape.3 the current position of the reading head.

This is a three tuple derived from: Q x Γ∗ x (ε ∪ Γ∗(Γ− B))

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 16: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

DefinitionExecution

Turing Machine Configurations

The above components describe the entire Turing machine. Todescribe a certain configuration, you need to know three things:

1 The current state.2 Whatever’s on the tape.3 the current position of the reading head.

This is a three tuple derived from: Q x Γ∗ x (ε ∪ Γ∗(Γ− B))

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 17: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

DefinitionExecution

Outline

1 IntroductionWhat is a Turing MachineExecution

2 LanguagesRecursively Enumerable LanguagesChurch Turing Theses

3 Self Replicating MachinesDefinitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 18: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

DefinitionExecution

Execution steps of a Turing Machine

In the beginning, there is a string on the infinite tape. A stringfollowed by the blank symbols all the way to infinity.The head is positioned at the leftmost symbol on the tape.At each iteration, the machine will take the following actions:

head will read the symbol at its current positionhead will replace the read symbol with a symbol specifiedby the transition function.head will move one position left or right depending on thetransition function.the state of the Turing machine will change depending onthe transition function.

Note that a null change in the machine is still change (thathappens to do nothing).

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 19: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

DefinitionExecution

Execution steps of a Turing Machine

In the beginning, there is a string on the infinite tape. A stringfollowed by the blank symbols all the way to infinity.The head is positioned at the leftmost symbol on the tape.At each iteration, the machine will take the following actions:

head will read the symbol at its current positionhead will replace the read symbol with a symbol specifiedby the transition function.head will move one position left or right depending on thetransition function.the state of the Turing machine will change depending onthe transition function.

Note that a null change in the machine is still change (thathappens to do nothing).

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 20: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

DefinitionExecution

Execution steps of a Turing Machine

In the beginning, there is a string on the infinite tape. A stringfollowed by the blank symbols all the way to infinity.The head is positioned at the leftmost symbol on the tape.At each iteration, the machine will take the following actions:

head will read the symbol at its current positionhead will replace the read symbol with a symbol specifiedby the transition function.head will move one position left or right depending on thetransition function.the state of the Turing machine will change depending onthe transition function.

Note that a null change in the machine is still change (thathappens to do nothing).

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 21: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

DefinitionExecution

Execution steps of a Turing Machine

In the beginning, there is a string on the infinite tape. A stringfollowed by the blank symbols all the way to infinity.The head is positioned at the leftmost symbol on the tape.At each iteration, the machine will take the following actions:

head will read the symbol at its current positionhead will replace the read symbol with a symbol specifiedby the transition function.head will move one position left or right depending on thetransition function.the state of the Turing machine will change depending onthe transition function.

Note that a null change in the machine is still change (thathappens to do nothing).

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 22: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

DefinitionExecution

Execution steps of a Turing Machine

In the beginning, there is a string on the infinite tape. A stringfollowed by the blank symbols all the way to infinity.The head is positioned at the leftmost symbol on the tape.At each iteration, the machine will take the following actions:

head will read the symbol at its current positionhead will replace the read symbol with a symbol specifiedby the transition function.head will move one position left or right depending on thetransition function.the state of the Turing machine will change depending onthe transition function.

Note that a null change in the machine is still change (thathappens to do nothing).

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 23: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

DefinitionExecution

Execution steps of a Turing Machine

In the beginning, there is a string on the infinite tape. A stringfollowed by the blank symbols all the way to infinity.The head is positioned at the leftmost symbol on the tape.At each iteration, the machine will take the following actions:

head will read the symbol at its current positionhead will replace the read symbol with a symbol specifiedby the transition function.head will move one position left or right depending on thetransition function.the state of the Turing machine will change depending onthe transition function.

Note that a null change in the machine is still change (thathappens to do nothing).

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 24: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

DefinitionExecution

Execution steps of a Turing Machine

In the beginning, there is a string on the infinite tape. A stringfollowed by the blank symbols all the way to infinity.The head is positioned at the leftmost symbol on the tape.At each iteration, the machine will take the following actions:

head will read the symbol at its current positionhead will replace the read symbol with a symbol specifiedby the transition function.head will move one position left or right depending on thetransition function.the state of the Turing machine will change depending onthe transition function.

Note that a null change in the machine is still change (thathappens to do nothing).

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 25: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

DefinitionExecution

Execution steps of a Turing Machine

In the beginning, there is a string on the infinite tape. A stringfollowed by the blank symbols all the way to infinity.The head is positioned at the leftmost symbol on the tape.At each iteration, the machine will take the following actions:

head will read the symbol at its current positionhead will replace the read symbol with a symbol specifiedby the transition function.head will move one position left or right depending on thetransition function.the state of the Turing machine will change depending onthe transition function.

Note that a null change in the machine is still change (thathappens to do nothing).

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 26: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

DefinitionExecution

The Transition function and the derivation of transitions

The transition function determines how the machine will act onthe given input. Given a state q and a symbol b:

if δ( q , b ) = (q’, b’, R) then(q, α1, bα′2) `M (q’, α1b′, α′2)

if δ( q , b ) = (q’, b’, L) and α1 6= ε then(q, α′1a, bα′2) `M (q’,α′1, ab’α′2).

Every valid configuration ck can be generated from c0 using thetransitions above.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 27: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

DefinitionExecution

The Transition function and the derivation of transitions

The transition function determines how the machine will act onthe given input. Given a state q and a symbol b:

if δ( q , b ) = (q’, b’, R) then(q, α1, bα′2) `M (q’, α1b′, α′2)

if δ( q , b ) = (q’, b’, L) and α1 6= ε then(q, α′1a, bα′2) `M (q’,α′1, ab’α′2).

Every valid configuration ck can be generated from c0 using thetransitions above.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 28: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

DefinitionExecution

The Transition function and the derivation of transitions

The transition function determines how the machine will act onthe given input. Given a state q and a symbol b:

if δ( q , b ) = (q’, b’, R) then(q, α1, bα′2) `M (q’, α1b′, α′2)

if δ( q , b ) = (q’, b’, L) and α1 6= ε then(q, α′1a, bα′2) `M (q’,α′1, ab’α′2).

Every valid configuration ck can be generated from c0 using thetransitions above.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 29: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Outline

1 IntroductionWhat is a Turing MachineExecution

2 LanguagesRecursively Enumerable LanguagesChurch Turing Theses

3 Self Replicating MachinesDefinitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 30: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Question 2

Define, in relatively formal language, the relationship betweenTuring machines and languages. Explain the differencebetween recursively enumberable and recursive languages.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 31: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Turing Machines and relation to languages

Turing Machines can be used as language acceptors. Given atransition table δ and a set of states Q, a Turing Machine candetermine whether a string is part of the language. Formally:

let M=(Q,Σ, Γ, δ, q0, B,F) be a Turing machine.A string u ε Σ∗ is accepted by final state if the computationof M with input u halts in a final state.A computation the terminates abnormally rejects the inputregardless of the state in which the machine halts.The language of M, denoted by L(M) is the set of all stringsaccepted by M.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 32: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Turing Machines and relation to languages

Turing Machines can be used as language acceptors. Given atransition table δ and a set of states Q, a Turing Machine candetermine whether a string is part of the language. Formally:

let M=(Q,Σ, Γ, δ, q0, B,F) be a Turing machine.A string u ε Σ∗ is accepted by final state if the computationof M with input u halts in a final state.A computation the terminates abnormally rejects the inputregardless of the state in which the machine halts.The language of M, denoted by L(M) is the set of all stringsaccepted by M.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 33: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Turing Machines and relation to languages

Turing Machines can be used as language acceptors. Given atransition table δ and a set of states Q, a Turing Machine candetermine whether a string is part of the language. Formally:

let M=(Q,Σ, Γ, δ, q0, B,F) be a Turing machine.A string u ε Σ∗ is accepted by final state if the computationof M with input u halts in a final state.A computation the terminates abnormally rejects the inputregardless of the state in which the machine halts.The language of M, denoted by L(M) is the set of all stringsaccepted by M.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 34: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Turing Machines and relation to languages

Turing Machines can be used as language acceptors. Given atransition table δ and a set of states Q, a Turing Machine candetermine whether a string is part of the language. Formally:

let M=(Q,Σ, Γ, δ, q0, B,F) be a Turing machine.A string u ε Σ∗ is accepted by final state if the computationof M with input u halts in a final state.A computation the terminates abnormally rejects the inputregardless of the state in which the machine halts.The language of M, denoted by L(M) is the set of all stringsaccepted by M.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 35: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Turing Machines and relation to languages

Turing Machines can be used as language acceptors. Given atransition table δ and a set of states Q, a Turing Machine candetermine whether a string is part of the language. Formally:

let M=(Q,Σ, Γ, δ, q0, B,F) be a Turing machine.A string u ε Σ∗ is accepted by final state if the computationof M with input u halts in a final state.A computation the terminates abnormally rejects the inputregardless of the state in which the machine halts.The language of M, denoted by L(M) is the set of all stringsaccepted by M.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 36: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Turing Machines and relation to languages

Turing Machines can be used as language acceptors. Given atransition table δ and a set of states Q, a Turing Machine candetermine whether a string is part of the language. Formally:

let M=(Q,Σ, Γ, δ, q0, B,F) be a Turing machine.A string u ε Σ∗ is accepted by final state if the computationof M with input u halts in a final state.A computation the terminates abnormally rejects the inputregardless of the state in which the machine halts.The language of M, denoted by L(M) is the set of all stringsaccepted by M.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 37: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Turing Machines and relation to languages

Turing Machines can be used as language acceptors. Given atransition table δ and a set of states Q, a Turing Machine candetermine whether a string is part of the language. Formally:

let M=(Q,Σ, Γ, δ, q0, B,F) be a Turing machine.A string u ε Σ∗ is accepted by final state if the computationof M with input u halts in a final state.A computation the terminates abnormally rejects the inputregardless of the state in which the machine halts.The language of M, denoted by L(M) is the set of all stringsaccepted by M.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 38: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Recursive languages

A language is said to be recuresively enumerable if there isa Turing Machine that accepts it.A machine M recognizes L if it accepts string in thelanguage L. It is not always the case that it will always haltfor any input.A language is said to be recursive if and only if there is aTuring machine that accepts the language and halts for allinputs.Because a recursive language has a Turing machine that isguaranteed to always halt, the problem of langugemembership is decidable for recursive languages.A Turing Machine decides a recursive language.

All recursive languages are necessarily recursivelyenumerable, but recursively enumerable languages are not allnecessarily recursive

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 39: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Recursive languages

A language is said to be recuresively enumerable if there isa Turing Machine that accepts it.A machine M recognizes L if it accepts string in thelanguage L. It is not always the case that it will always haltfor any input.A language is said to be recursive if and only if there is aTuring machine that accepts the language and halts for allinputs.Because a recursive language has a Turing machine that isguaranteed to always halt, the problem of langugemembership is decidable for recursive languages.A Turing Machine decides a recursive language.

All recursive languages are necessarily recursivelyenumerable, but recursively enumerable languages are not allnecessarily recursive

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 40: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Recursive languages

A language is said to be recuresively enumerable if there isa Turing Machine that accepts it.A machine M recognizes L if it accepts string in thelanguage L. It is not always the case that it will always haltfor any input.A language is said to be recursive if and only if there is aTuring machine that accepts the language and halts for allinputs.Because a recursive language has a Turing machine that isguaranteed to always halt, the problem of langugemembership is decidable for recursive languages.A Turing Machine decides a recursive language.

All recursive languages are necessarily recursivelyenumerable, but recursively enumerable languages are not allnecessarily recursive

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 41: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Recursive languages

A language is said to be recuresively enumerable if there isa Turing Machine that accepts it.A machine M recognizes L if it accepts string in thelanguage L. It is not always the case that it will always haltfor any input.A language is said to be recursive if and only if there is aTuring machine that accepts the language and halts for allinputs.Because a recursive language has a Turing machine that isguaranteed to always halt, the problem of langugemembership is decidable for recursive languages.A Turing Machine decides a recursive language.

All recursive languages are necessarily recursivelyenumerable, but recursively enumerable languages are not allnecessarily recursive

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 42: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Recursive languages

A language is said to be recuresively enumerable if there isa Turing Machine that accepts it.A machine M recognizes L if it accepts string in thelanguage L. It is not always the case that it will always haltfor any input.A language is said to be recursive if and only if there is aTuring machine that accepts the language and halts for allinputs.Because a recursive language has a Turing machine that isguaranteed to always halt, the problem of langugemembership is decidable for recursive languages.A Turing Machine decides a recursive language.

All recursive languages are necessarily recursivelyenumerable, but recursively enumerable languages are not allnecessarily recursive

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 43: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Recursive languages

A language is said to be recuresively enumerable if there isa Turing Machine that accepts it.A machine M recognizes L if it accepts string in thelanguage L. It is not always the case that it will always haltfor any input.A language is said to be recursive if and only if there is aTuring machine that accepts the language and halts for allinputs.Because a recursive language has a Turing machine that isguaranteed to always halt, the problem of langugemembership is decidable for recursive languages.A Turing Machine decides a recursive language.

All recursive languages are necessarily recursivelyenumerable, but recursively enumerable languages are not allnecessarily recursive

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 44: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Example

Figure: Example from : http://www.montefiore.ulg.ac.be/Hisham, Muaaz, Jahed Turing Machine Simulator

Page 45: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Question 3

Given the above 6-tuple:1 Draw the Turing machine for the transition table2 Determine the language accepted by this machine.3 Choose a 6 letter string within the language show the

derivations for this string.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 46: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Question 3

Given the above 6-tuple:1 Draw the Turing machine for the transition table2 Determine the language accepted by this machine.3 Choose a 6 letter string within the language show the

derivations for this string.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 47: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Question 3

Given the above 6-tuple:1 Draw the Turing machine for the transition table2 Determine the language accepted by this machine.3 Choose a 6 letter string within the language show the

derivations for this string.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 48: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Question 3

Given the above 6-tuple:1 Draw the Turing machine for the transition table2 Determine the language accepted by this machine.3 Choose a 6 letter string within the language show the

derivations for this string.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 49: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Question 4

Compared to a normal a finite state machine, what is theproperty that makes Turing machines so much more powerful?How can we (theoretically speaking) simulate a Turing machineon it?

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 50: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Question 4 solution

what makes a Turing machine so much more powerful thana finite state machine is its ability to write to the tape.A turing machine can remember the results of previouscomputationsFor example, a the language anbn can be easily definedusing a Turing machine.a state machine that cannot remember previouscomputations will have to use infinitely many states toremember how many a symbols it has seen. i.e. state1represents a, state 2 represents aa, and so on.

Contrary to what first graders believe, counting is immenselyuseful!

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 51: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Question 4 solution

what makes a Turing machine so much more powerful thana finite state machine is its ability to write to the tape.A turing machine can remember the results of previouscomputationsFor example, a the language anbn can be easily definedusing a Turing machine.a state machine that cannot remember previouscomputations will have to use infinitely many states toremember how many a symbols it has seen. i.e. state1represents a, state 2 represents aa, and so on.

Contrary to what first graders believe, counting is immenselyuseful!

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 52: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Question 4 solution

what makes a Turing machine so much more powerful thana finite state machine is its ability to write to the tape.A turing machine can remember the results of previouscomputationsFor example, a the language anbn can be easily definedusing a Turing machine.a state machine that cannot remember previouscomputations will have to use infinitely many states toremember how many a symbols it has seen. i.e. state1represents a, state 2 represents aa, and so on.

Contrary to what first graders believe, counting is immenselyuseful!

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 53: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Question 4 solution

what makes a Turing machine so much more powerful thana finite state machine is its ability to write to the tape.A turing machine can remember the results of previouscomputationsFor example, a the language anbn can be easily definedusing a Turing machine.a state machine that cannot remember previouscomputations will have to use infinitely many states toremember how many a symbols it has seen. i.e. state1represents a, state 2 represents aa, and so on.

Contrary to what first graders believe, counting is immenselyuseful!

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 54: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Question 4 solution

what makes a Turing machine so much more powerful thana finite state machine is its ability to write to the tape.A turing machine can remember the results of previouscomputationsFor example, a the language anbn can be easily definedusing a Turing machine.a state machine that cannot remember previouscomputations will have to use infinitely many states toremember how many a symbols it has seen. i.e. state1represents a, state 2 represents aa, and so on.

Contrary to what first graders believe, counting is immenselyuseful!

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 55: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Outline

1 IntroductionWhat is a Turing MachineExecution

2 LanguagesRecursively Enumerable LanguagesChurch Turing Theses

3 Self Replicating MachinesDefinitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 56: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Church Turing

The Church-Turing Theses are a set of important notions thathave shaped how computer scientists think about computationin general. There are three distinct definitions:

1 The Church Turing Thesis for Decision Problems2 The Church Turing Thesis for Recognition Problems3 The Church Turing Thesis for Computable Functions

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 57: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Question 5

Define the Church Turing Thesis for Decision Problems. Give aformal definition and explain it’s meaning.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 58: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Decision Problems

Definition: There is an effective procedure to solve a decisionproblem if and only if there is a Turing machine that halts for allinput strings.

A solution to a decision problem must halt, or return ananswer, for every instance of the problem. (the solutiondecides the problem completely)A solution that halts only when the answer is affirmative issaid to be a partial solution. (the solution recognizes yesinstances)A complete solution to a decision problem is equivalent toa the membership problem of whether a string is in arecursive language.A partial solution is equivalent to the problem of whether astring is in a recursively enumerable language.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 59: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Decision Problems

Definition: There is an effective procedure to solve a decisionproblem if and only if there is a Turing machine that halts for allinput strings.

A solution to a decision problem must halt, or return ananswer, for every instance of the problem. (the solutiondecides the problem completely)A solution that halts only when the answer is affirmative issaid to be a partial solution. (the solution recognizes yesinstances)A complete solution to a decision problem is equivalent toa the membership problem of whether a string is in arecursive language.A partial solution is equivalent to the problem of whether astring is in a recursively enumerable language.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 60: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Decision Problems

Definition: There is an effective procedure to solve a decisionproblem if and only if there is a Turing machine that halts for allinput strings.

A solution to a decision problem must halt, or return ananswer, for every instance of the problem. (the solutiondecides the problem completely)A solution that halts only when the answer is affirmative issaid to be a partial solution. (the solution recognizes yesinstances)A complete solution to a decision problem is equivalent toa the membership problem of whether a string is in arecursive language.A partial solution is equivalent to the problem of whether astring is in a recursively enumerable language.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 61: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Decision Problems

Definition: There is an effective procedure to solve a decisionproblem if and only if there is a Turing machine that halts for allinput strings.

A solution to a decision problem must halt, or return ananswer, for every instance of the problem. (the solutiondecides the problem completely)A solution that halts only when the answer is affirmative issaid to be a partial solution. (the solution recognizes yesinstances)A complete solution to a decision problem is equivalent toa the membership problem of whether a string is in arecursive language.A partial solution is equivalent to the problem of whether astring is in a recursively enumerable language.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 62: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Decision Problems

Definition: There is an effective procedure to solve a decisionproblem if and only if there is a Turing machine that halts for allinput strings.

A solution to a decision problem must halt, or return ananswer, for every instance of the problem. (the solutiondecides the problem completely)A solution that halts only when the answer is affirmative issaid to be a partial solution. (the solution recognizes yesinstances)A complete solution to a decision problem is equivalent toa the membership problem of whether a string is in arecursive language.A partial solution is equivalent to the problem of whether astring is in a recursively enumerable language.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 63: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Recognition Problems

Definition: A decision problem is partially solvable if and only ifthere is a Turing machine that accepts precisely the instancesof P whose answer is yes.Based on the last two points in the previous slide, a partialsolution solves the problem of whether a string is in an RElanguage while a full solution solves the problem of whether astring is in a Recursive language.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 64: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Recognition Problems

Definition: A decision problem is partially solvable if and only ifthere is a Turing machine that accepts precisely the instancesof P whose answer is yes.Based on the last two points in the previous slide, a partialsolution solves the problem of whether a string is in an RElanguage while a full solution solves the problem of whether astring is in a Recursive language.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 65: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Computable Functions

Definition: A function f is effectively computable if and only ifthere is a Turing machine that computes f.

Interesting fact: there is no proof for the Church-Turing Thesis.All you have to do to disprove it is find an effective procedurethat cannot be computed by a TM.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 66: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Recursively Enumerable LanguagesChurch Turing Theses

Computable Functions

Definition: A function f is effectively computable if and only ifthere is a Turing machine that computes f.

Interesting fact: there is no proof for the Church-Turing Thesis.All you have to do to disprove it is find an effective procedurethat cannot be computed by a TM.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 67: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Outline

1 IntroductionWhat is a Turing MachineExecution

2 LanguagesRecursively Enumerable LanguagesChurch Turing Theses

3 Self Replicating MachinesDefinitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 68: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Life

Human beings have the natural ability of detecting patternsin nature.One process which long eluded them, is the understandingof life.How each life form is not only able to replicate itself but isable to evolve.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 69: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Life

Human beings have the natural ability of detecting patternsin nature.One process which long eluded them, is the understandingof life.How each life form is not only able to replicate itself but isable to evolve.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 70: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Life

Human beings have the natural ability of detecting patternsin nature.One process which long eluded them, is the understandingof life.How each life form is not only able to replicate itself but isable to evolve.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 71: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Life

Human beings have the natural ability of detecting patternsin nature.One process which long eluded them, is the understandingof life.How each life form is not only able to replicate itself but isable to evolve.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 72: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Some Hypotheses

French philosopher, Henry Bergson put forth the conceptof “Élan Vital” in his book Creative Evolution.He discussed life as a very organized and mechanisticprocess but very complex.Later Darwin gave similar views, explaining life as amiraculous self sustaining process, with the ability toevolve.Is fire a self replicating entity as well ?

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 73: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Some Hypotheses

French philosopher, Henry Bergson put forth the conceptof “Élan Vital” in his book Creative Evolution.He discussed life as a very organized and mechanisticprocess but very complex.Later Darwin gave similar views, explaining life as amiraculous self sustaining process, with the ability toevolve.Is fire a self replicating entity as well ?

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 74: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Some Hypotheses

French philosopher, Henry Bergson put forth the conceptof “Élan Vital” in his book Creative Evolution.He discussed life as a very organized and mechanisticprocess but very complex.Later Darwin gave similar views, explaining life as amiraculous self sustaining process, with the ability toevolve.Is fire a self replicating entity as well ?

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 75: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Some Hypotheses

French philosopher, Henry Bergson put forth the conceptof “Élan Vital” in his book Creative Evolution.He discussed life as a very organized and mechanisticprocess but very complex.Later Darwin gave similar views, explaining life as amiraculous self sustaining process, with the ability toevolve.Is fire a self replicating entity as well ?

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 76: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Some Hypotheses

French philosopher, Henry Bergson put forth the conceptof “Élan Vital” in his book Creative Evolution.He discussed life as a very organized and mechanisticprocess but very complex.Later Darwin gave similar views, explaining life as amiraculous self sustaining process, with the ability toevolve.Is fire a self replicating entity as well ?

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 77: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Some Questions about a self replicating entity

Can an entity build a replica of itself?If it can, where does it find the ability of “self reference”?If it can build it self from a “self reference”, contained initself, how can it evolve into a better form?

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 78: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Some Questions about a self replicating entity

Can an entity build a replica of itself?If it can, where does it find the ability of “self reference”?If it can build it self from a “self reference”, contained initself, how can it evolve into a better form?

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 79: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Some Questions about a self replicating entity

Can an entity build a replica of itself?If it can, where does it find the ability of “self reference”?If it can build it self from a “self reference”, contained initself, how can it evolve into a better form?

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 80: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Some Questions about a self replicating entity

Can an entity build a replica of itself?If it can, where does it find the ability of “self reference”?If it can build it self from a “self reference”, contained initself, how can it evolve into a better form?

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 81: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

So What is A Self Replicating Entity

It can replicate itselfIt can replicate itself and contains a self reference.It can replicate it self and contains a self reference, alsocopies the self reference into its offspring thus impartingthe ability of self replicating.On top of all that, it can also evolve. (Terminator?).

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 82: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

So What is A Self Replicating Entity

It can replicate itselfIt can replicate itself and contains a self reference.It can replicate it self and contains a self reference, alsocopies the self reference into its offspring thus impartingthe ability of self replicating.On top of all that, it can also evolve. (Terminator?).

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 83: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

So What is A Self Replicating Entity

It can replicate itselfIt can replicate itself and contains a self reference.It can replicate it self and contains a self reference, alsocopies the self reference into its offspring thus impartingthe ability of self replicating.On top of all that, it can also evolve. (Terminator?).

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 84: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

So What is A Self Replicating Entity

It can replicate itselfIt can replicate itself and contains a self reference.It can replicate it self and contains a self reference, alsocopies the self reference into its offspring thus impartingthe ability of self replicating.On top of all that, it can also evolve. (Terminator?).

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 85: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

So What is A Self Replicating Entity

It can replicate itselfIt can replicate itself and contains a self reference.It can replicate it self and contains a self reference, alsocopies the self reference into its offspring thus impartingthe ability of self replicating.On top of all that, it can also evolve. (Terminator?).

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 86: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Outline

1 IntroductionWhat is a Turing MachineExecution

2 LanguagesRecursively Enumerable LanguagesChurch Turing Theses

3 Self Replicating MachinesDefinitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 87: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

von Neumann’s Kinematic Model

In late 1940s, mathematician Jon von Neumann presenteda kinematic model.It was a theoretical concept of how a self replicatingmachine can be built and discussed its various high levelparts.Later he also presented the model of von Neumann’sUniversal Constructor, which was yet another concept selfreplicating machine utilizing the Cellular Automata.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 88: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

von Neumann’s Kinematic Model

In late 1940s, mathematician Jon von Neumann presenteda kinematic model.It was a theoretical concept of how a self replicatingmachine can be built and discussed its various high levelparts.Later he also presented the model of von Neumann’sUniversal Constructor, which was yet another concept selfreplicating machine utilizing the Cellular Automata.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 89: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

von Neumann’s Kinematic Model

In late 1940s, mathematician Jon von Neumann presenteda kinematic model.It was a theoretical concept of how a self replicatingmachine can be built and discussed its various high levelparts.Later he also presented the model of von Neumann’sUniversal Constructor, which was yet another concept selfreplicating machine utilizing the Cellular Automata.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 90: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

von Neumann’s Kinematic Model

In late 1940s, mathematician Jon von Neumann presenteda kinematic model.It was a theoretical concept of how a self replicatingmachine can be built and discussed its various high levelparts.Later he also presented the model of von Neumann’sUniversal Constructor, which was yet another concept selfreplicating machine utilizing the Cellular Automata.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 91: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Question 6

Discuss major components of von Neumann’s kinematic model.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 92: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

von Neumann’s Kinematic Model

The kinematic model put forth essential parts of a selfreplicating machine as:

Blue Print Instructions, for creating the machine.A Blue Print copier.A ControllerA Constructor

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 93: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

von Neumann’s Kinematic Model

The kinematic model put forth essential parts of a selfreplicating machine as:

Blue Print Instructions, for creating the machine.A Blue Print copier.A ControllerA Constructor

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 94: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

von Neumann’s Kinematic Model

The kinematic model put forth essential parts of a selfreplicating machine as:

Blue Print Instructions, for creating the machine.A Blue Print copier.A ControllerA Constructor

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 95: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

von Neumann’s Kinematic Model

The kinematic model put forth essential parts of a selfreplicating machine as:

Blue Print Instructions, for creating the machine.A Blue Print copier.A ControllerA Constructor

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 96: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

von Neumann’s Kinematic Model

Figure: image from : https://www.youtube.com/user/HowieInTheUK

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 97: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Question 7

What conditions qualify a phenomenon/machine as selfreplicating? Is human being self replicating?

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 98: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

von Neumann’s Kinematic Model

The model presented the two basic steps of self replication as :

Reading the instruction and constructing a copy of itself(translation)Copying the “self reference” information to the newlycreated machine (transcription)

Years later, we can correctly verify human beings as selfreplicating machines.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 99: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

von Neumann’s Kinematic Model

The model presented the two basic steps of self replication as :

Reading the instruction and constructing a copy of itself(translation)Copying the “self reference” information to the newlycreated machine (transcription)

Years later, we can correctly verify human beings as selfreplicating machines.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 100: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

von Neumann’s Kinematic Model

The model presented the two basic steps of self replication as :

Reading the instruction and constructing a copy of itself(translation)Copying the “self reference” information to the newlycreated machine (transcription)

Years later, we can correctly verify human beings as selfreplicating machines.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 101: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Outline

1 IntroductionWhat is a Turing MachineExecution

2 LanguagesRecursively Enumerable LanguagesChurch Turing Theses

3 Self Replicating MachinesDefinitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 102: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

von Neumann’s Universal Constructor

Yet another self replicating machine designed by vonNeumann and Arthur Burkes.It is based on cellular automata and is able to fulfill all therequirements put forth by von Neumann previously.This is considered as the first theoretical model of selfreplicating machine.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 103: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

von Neumann’s Universal Constructor

Yet another self replicating machine designed by vonNeumann and Arthur Burkes.It is based on cellular automata and is able to fulfill all therequirements put forth by von Neumann previously.This is considered as the first theoretical model of selfreplicating machine.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 104: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

von Neumann’s Universal Constructor

Yet another self replicating machine designed by vonNeumann and Arthur Burkes.It is based on cellular automata and is able to fulfill all therequirements put forth by von Neumann previously.This is considered as the first theoretical model of selfreplicating machine.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 105: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

von Neumann’s Universal Constructor

Yet another self replicating machine designed by vonNeumann and Arthur Burkes.It is based on cellular automata and is able to fulfill all therequirements put forth by von Neumann previously.This is considered as the first theoretical model of selfreplicating machine.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 106: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

von Neumann’s Universal Constructor

Figure: image from :https://en.wikipedia.org/wiki/Von_Neumann_universal_constructor

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 107: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Quines

A computer program which does not accept any input andproduces a copy of itself at output such that the newprogram is able to replicate it self.Use of modern libraries and programing techniques, thiscan be easily achieved.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 108: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Quines

A computer program which does not accept any input andproduces a copy of itself at output such that the newprogram is able to replicate it self.Use of modern libraries and programing techniques, thiscan be easily achieved.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 109: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Quines

A computer program which does not accept any input andproduces a copy of itself at output such that the newprogram is able to replicate it self.Use of modern libraries and programing techniques, thiscan be easily achieved.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 110: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

A real world example?

Modern day 3D printers are able to satisfy the conditions of selfreplicating machines partially but the time where we will have a3D printer, which could produce a 3D printer out of thin air is yetto come.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 111: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Self Replicating Turing Machine

A Turing machine just like CA, can be used for constructinga self replicating machine.However as we already have enough theoretical models ofa self replicating machine, so not much effort has been puthere.Self-Replicating Turing Machines andComputer Viruses, Elise de Doncker, discusses abouta viral set and how TMs have been used for constructingthem.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 112: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Self Replicating Turing Machine

A Turing machine just like CA, can be used for constructinga self replicating machine.However as we already have enough theoretical models ofa self replicating machine, so not much effort has been puthere.Self-Replicating Turing Machines andComputer Viruses, Elise de Doncker, discusses abouta viral set and how TMs have been used for constructingthem.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 113: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Self Replicating Turing Machine

A Turing machine just like CA, can be used for constructinga self replicating machine.However as we already have enough theoretical models ofa self replicating machine, so not much effort has been puthere.Self-Replicating Turing Machines andComputer Viruses, Elise de Doncker, discusses abouta viral set and how TMs have been used for constructingthem.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 114: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Self Replicating Turing Machine

A Turing machine just like CA, can be used for constructinga self replicating machine.However as we already have enough theoretical models ofa self replicating machine, so not much effort has been puthere.Self-Replicating Turing Machines andComputer Viruses, Elise de Doncker, discusses abouta viral set and how TMs have been used for constructingthem.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 115: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Our Approach

Rather then constructing a whole self replicating TuringMachine, we are utilizing a copy machine to emulate a selfreplicating Turing machine.Such a machine almost fulfills both the requirements of vonNeumann’s Kinematic model.As any real world self replicating machine would face theshortage of space, so would ours. Hence we limit itsfunctionality, just to show how it replicates up till 2nd or 3rdgeneration.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 116: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Our Approach

Rather then constructing a whole self replicating TuringMachine, we are utilizing a copy machine to emulate a selfreplicating Turing machine.Such a machine almost fulfills both the requirements of vonNeumann’s Kinematic model.As any real world self replicating machine would face theshortage of space, so would ours. Hence we limit itsfunctionality, just to show how it replicates up till 2nd or 3rdgeneration.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 117: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Our Approach

Rather then constructing a whole self replicating TuringMachine, we are utilizing a copy machine to emulate a selfreplicating Turing machine.Such a machine almost fulfills both the requirements of vonNeumann’s Kinematic model.As any real world self replicating machine would face theshortage of space, so would ours. Hence we limit itsfunctionality, just to show how it replicates up till 2nd or 3rdgeneration.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 118: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Our Approach

Rather then constructing a whole self replicating TuringMachine, we are utilizing a copy machine to emulate a selfreplicating Turing machine.Such a machine almost fulfills both the requirements of vonNeumann’s Kinematic model.As any real world self replicating machine would face theshortage of space, so would ours. Hence we limit itsfunctionality, just to show how it replicates up till 2nd or 3rdgeneration.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 119: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

Question 8

Give an example of a self replicating machine from modernworld, or if you can imagine a hypothetical machine from future.Also tell why your machine is self replicating, in view of vonNeumann’s kinematic model.

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 120: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

References

Pesavento, Umberto. "An implementation of vonNeumann’s self-reproducing machine." Artificial Life 2.4(1995): 337-354.Restrepo, Hector Fabio, Gianluca Tempesti, and DanielMange.Implementation of a self-replicating universal Turingmachine. Springer Berlin Heidelberg, 2004.de Doncker, Elise. "Self-Replicating Turing Machines andComputer Viruses.“Bratley, Paul; Millo, Jean (1972). "Computer Recreations:Self-Reproducing Automata". Software Practice andSchiff, J. L. "Introduction to cellular automata." (2005):79-81.https://www.youtube.com/user/HowieInTheUK

Hisham, Muaaz, Jahed Turing Machine Simulator

Page 121: Turing Machines - A simulating simulatorelise/courses/cs6800/TM-sim.pdf · Turing Machines A simulating simulator H. Saleh1 M. Gul2 J. Hussini CS6800 Advanced Theory of Computation

IntroductionLanguages

Self Replicating Machines

Definitionvon Neumann’s Kinematic Modelvon Neumann’s Universal Constructor

More References

Sudkamp, Thomas. “Languages and Machines” PearsonEducation, 2006

http://www.cs.cornell.edu/courses/cs4820/2012su/handouts/turingm.pdfhttp://plato.stanford.edu/entries/turing-machine/

http://www.montefiore.ulg.ac.be/ pw/cours/psfiles/calc-chap5.pdf

http://web.stanford.edu/class/archive/cs/cs103/cs103.1142/lectures/18/Small18.pdf

Hisham, Muaaz, Jahed Turing Machine Simulator