meljun cortes automata15

36
(MSCS) Theory of Automata & Formal Languages Turing Machines Fall 2008 MELJUN P. CORTES, MELJUN P. CORTES, MBA,MPA,BSCS,ACS MBA,MPA,BSCS,ACS MELJUN CORTES MELJUN CORTES

Upload: meljun-cortes

Post on 15-Jul-2015

61 views

Category:

Technology


0 download

TRANSCRIPT

(MSCS) Theory of Automata & Formal Languages

Turing Machines

Fall 2008

MELJUN P. CORTES, MELJUN P. CORTES, MBA,MPA,BSCS,ACSMBA,MPA,BSCS,ACS

MELJUN CORTESMELJUN CORTES

What is a computer?What is a computer?

A computer is a machine that manipulates data according to a list of instructions.

computerinput data

instructions(program)

output data

Are DFAs and PDAs Are DFAs and PDAs computers?computers?

0, ε / a

#, ε / ε ε, Z0 / ε

1, a / ε0

1

0, 1

A computer is a machine that manipulates data according to a list of instructions.

yes no!

A short history of computing A short history of computing devicesdevices

Leibniz calculator (1670s)

slide rule (1600s)

abacus (Babylon 500BC, China 1300)

Babbage’s mechanical

engine(1820s)

A brief history of computing A brief history of computing devicesdevices

Z3 (Germany, 1941) ENIAC (Pennsylvania, 1945)

PC (1980) MacBook Air (2008)

Which of these are “real” Which of these are “real” computers?computers?

not programmable

programmable

Computation is universalComputation is universal

In principle, all these computers have the same problem-solving ability

C++ java python LISP

The Turing MachineThe Turing Machine

C++ java python LISP

Turing Machine

The Turing MachineThe Turing Machine

The Turing Machine is an The Turing Machine is an abstract abstract automatonautomaton that is that ismeant to model meant to model any physically realizable any physically realizable computercomputer Using any technology (mechanical, electrical, Using any technology (mechanical, electrical,

nano, bio)nano, bio) Under any physical laws (gravity, quantum, Under any physical laws (gravity, quantum,

E&M)E&M) At any scale (human, quantum, cosmological)At any scale (human, quantum, cosmological)

How come there is How come there is one model one model that can that can capture allcapture allthese vastly different settings?these vastly different settings?

Why do we need an abstract model of a Why do we need an abstract model of a computer?computer?

Computation and mathematical Computation and mathematical proofsproofs

Prove that...Prove that...√2 is irrational.

The equation xn + yn = zn, n ≥ 2has no integer solutions.

G = (L, R) has a perfect matching iff |Γ(S)| ≥ |S| for every L ⊆ S.

L {1}* ⊆ is regular iff L = L0 ∪ Lq1,r ... ∪ ∪ Lqk,r

The language 0n1n is not regular.

Math is hard, let’s go shopping!

(Archimedes’ Theorem)

(Fermat-Wiles Theorem)

(Hall’s Theorem)

Hilbert’s list of 23 problemsHilbert’s list of 23 problems

Leading mathematician in the Leading mathematician in the 1900s1900s

At the 1900 International At the 1900 International CongressCongressof Mathematicians, proposed of Mathematicians, proposed a list ofa list of23 problems for the 2023 problems for the 20 thth centurycentury

Hilbert’s 10Hilbert’s 10 thth problem: problem:

David Hilbert(1862-1943)

Find a method for telling if an equation like xyz – 3xy + 6xz + 2 = 0 has integer solutions

Automated theorem-provingAutomated theorem-proving

computerinput data

instructions

output

√2 is irrational.

The equation xn + yn = zn, n ≥ 2has no integer solutions.

G = (L, R) has a perfect matching

iff |Γ(S)| ≥ |S| for every L ⊆ S. The language 0 n1 n

is not regular.

check ifthey are true!

xyz – 3xy + 6xz + 2 = 0 has integer solutions.

true / false

Automated theorem provingAutomated theorem proving

How could automated theorem proving How could automated theorem proving work?work?

Let’s look at a typical proof:Let’s look at a typical proof:√2 is irrational.

Assume not.Then √2 = m/n.Then m2 = 2n2

But m2 has an even number of prime factors and 2n2 has an odd number of prime factors.Contradiction.

Theorem:

Proof:

First idea of automated theorem First idea of automated theorem provingproving

Checking that a proof is correct is much Checking that a proof is correct is much easier than easier than coming up with the proofcoming up with the proof

Proof:

... if we write out the proof in sufficient detail

√2 = m/n both sides ×n(√2)n = m square

(√2)2n2 = m2 def of sqrt

2n2 = m2

First idea of automated theorem First idea of automated theorem provingproving

Checking that a proof is correct is much Checking that a proof is correct is much easier than easier than coming up with the proofcoming up with the proof

In principle this is uncontroversialIn principle this is uncontroversial In practice, it is hard to do because writing In practice, it is hard to do because writing

proofs inproofs indetail sometimes requires a lot of workdetail sometimes requires a lot of work

A proof, if written out in sufficient detail, canbe checked mechanically

Second idea of automated Second idea of automated theorem provingtheorem proving

To find if statement is true, why don’t we To find if statement is true, why don’t we try try allallpossible proofspossible proofs

After all, a proof is just After all, a proof is just a sequence of a sequence of symbols symbols (over (over alphabet alphabet {0, 1, 2, {0, 1, 2, mm, , nn, , √, √, 22, etc.}, etc.}))

If statement is true, it has a proof of If statement is true, it has a proof of finite length, say finite length, say kk

To find it, let’s just try To find it, let’s just try all possible all possible proofsproofs of length of length 11, , 22, up to , up to kk

√2 = m/n(√2)n = m

(√2)2n2 = m2

2n2 = m2

...

Königsberg, 1930Königsberg, 1930

David Hilbert(1862-1943)

Kurt Gödel(1906-1978)

September 8: Hilbert gives a famous lecture“Logic and the understanding of nature”

Königsberg, 1930Königsberg, 1930

David Hilbert(1862-1943)

Kurt Gödel(1906-1978)

John von Neumann(1903-1957)

I reached the conclusion that in any reasonable formal system in which provability in it can be expressed as a property of certain sentences, there must be propositions which are undecidable in it.

It is all over!

What did Gödel say?What did Gödel say?

To find if statement is true, why don’t we To find if statement is true, why don’t we try try allallpossible proofspossible proofs

After all, a proof is just After all, a proof is just a sequence of a sequence of symbols symbols (over (over alphabet alphabet {0, 1, 2, {0, 1, 2, mm, , nn, , √, √, 22, etc.}, etc.}))

If statement is true, it has a proof of If statement is true, it has a proof of finite length, say finite length, say kk

To find it, let’s just try To find it, let’s just try all possible all possible proofsproofs of length of length 11, , 22, up to , up to kk

NO!

Gödel’s incompleteness Gödel’s incompleteness theoremtheorem

Some mathematical statementsare true but not provable.

What are they?

Example of incompletenessExample of incompleteness

Recall Hilbert’s 10Recall Hilbert’s 10 thth problem: problem:

Matyashievich showed in 1970 that there Matyashievich showed in 1970 that there exists aexists apolynomial polynomial pp such that such that

Find a method for telling if an equation like xyz – 3xy + 6xz + 2 = 0 has integer solutions

p(x1, ..., xk) = 0 has no integer solutions, butthis cannot be proved

Another example of Another example of incompletenessincompleteness

Recall Recall ambiguousambiguous context free grammars context free grammars

We did exercises of the typeWe did exercises of the type

“Show that “Show that GG is ambiguous” is ambiguous”

However there exists a CFG However there exists a CFG GG such that such thatG is unambiguous, but this cannot be proved

Gödel’s incompleteness Gödel’s incompleteness theoremtheorem

Some mathematical statementsare true but not provable.

What does this have to do with computer science?

The father of modern computer The father of modern computer sciencescienceInvented the Invented the Turing TestTuring Test to tellto tellhumans and computers humans and computers apartapart

Broke German encryption Broke German encryption codescodesduring World War IIduring World War II

The The Turing AwardTuring Award is the is the “Nobel“Nobelprize of Computer prize of Computer Science”Science”

Alan Turing (1912-1954)

“On Computable Numbers, with an Application to the Entscheidungsproblem”

1936:

Turing’s angle on Turing’s angle on incompletenessincompleteness

computerinput data

instructionsoutput

check if true! true / false

mathematical statement

Gödel’s theorem says that a computer cannot determine the truth of mathematical statements

But there are many other things!

Computer program analysisComputer program analysispublic static void main(String args[]) { System.out.println("Hello World!"); }

What does this program do?

How about this one?

public static void main(String args[]) { int i = 0; for (j = 1; j < 10; j++) { i += j; if (i == 28) { System.out.println("Hello World!"); } } }

Computers cannot analyze Computers cannot analyze programs!programs!

computerinput data

instructionsoutput

does it printHello, world!

java program

The essence of Gödel’s theorem is thatcomputers cannot analyze computer programs

How do you argue things like How do you argue things like that?that?

To argue what computers cannot do,we need to have a precise definitionof what a computer is.

“On Computable Numbers, with an Application to the Entscheidungsproblem”

1936:

Section 1. Computing Machines

Turing MachinesTuring Machines

state control

A Turing Machine is a finite automaton with a A Turing Machine is a finite automaton with a two-way accesstwo-way access to an to an infinite tapeinfinite tape

Initially, the first few cells contain the input, and Initially, the first few cells contain the input, and the the other cells are blankother cells are blank

infinite tape0 1 0

input

Turing MachinesTuring Machines

state control

At each point in the computation, the machine At each point in the computation, the machine seesseesits current state and the symbol at the headits current state and the symbol at the head

It can It can replace the symbol replace the symbol on the tape, on the tape, change change statestate,,and and move the headmove the head left or right left or right

0 1 a 0

head

ExampleExample

…0 1 a 0q1 q2

a/bL

Replace a with b, and move head left

current state

…0 1 b 0q1 q2

a/bL

current state

Formal DefinitionFormal Definition

A Turing Machine is A Turing Machine is (Q, (Q, ΣΣ,, ΓΓ, , δδ, q, q00, q, qaccacc, q, qrejrej)):: QQ is a finite set of is a finite set of statesstates;; ΣΣ is the is the input alphabetinput alphabet;; ΓΓ is the is the tape alphabettape alphabet ( (ΣΣ ⊆⊆ ΓΓ) including the ) including the

blank symbol blank symbol ☐☐ qq00 in in QQ is the is the initial stateinitial state;;

qqaccacc, q, qrejrej inin Q Q are the are the acceptingaccepting and and rejecting rejecting

statestate;; δδ is the transition functionis the transition function

δ: (Q – {qacc, qrej}) × Γ → Q × Γ × {L, R}

Turing Machines are deterministic

Language of a Turing MachineLanguage of a Turing Machine

The The language recognized by a TM language recognized by a TM is the is the set of all set of all inputs that make it reach inputs that make it reach qqaccacc

Something strange can happen in a Something strange can happen in a Turing Machine:Turing Machine:q0

qacc

qrej

Σ = {0, 1}

input: ε☐/☐R

0/0R

1/1RThis machinenever halts

Looping behaviorLooping behavior

Inputs can be divided into three types:Inputs can be divided into three types: 1. Reach the state 1. Reach the state qqaccacc and halt and halt

2. Reach the state 2. Reach the state qqrejrej and halt and halt 3. Loop forever3. Loop forever

The language recognized by a TM = type The language recognized by a TM = type 1 inputs1 inputs

The Church-Turing ThesisThe Church-Turing Thesis

Turing Machinequantum computing

DNA computing

cosmic computing

The Church-Turing ThesisThe Church-Turing Thesis

“On Computable Numbers, with an Application to the Entscheidungsproblem”

1936:

Section 9. The extent of the computable numbers

All arguments [for the CT Thesis] which can be given are bound to be, fundamentally, appeals to intuition, and for this reason rather unsatisfactory mathematically.

The arguments which I shall use are of three kinds:

1. A direct appeal to intuition 2. A proof of the equivalence of two definitions (In case the new definition has greater intuitive appeal) 3. Giving examples of large classes of numbers which are computable.