computer science fundamentals - turing machines

25
Computer Science Foundations Turing Machine Edition Jason Dew Geezeo / Catamorphic Labs

Upload: jasondew

Post on 11-May-2015

1.052 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Computer Science Fundamentals - Turing Machines

Computer Science FoundationsTuring Machine Edition

Jason DewGeezeo / Catamorphic Labs

Page 2: Computer Science Fundamentals - Turing Machines

AlanTuring

Page 3: Computer Science Fundamentals - Turing Machines

Entscheidungsproblem

DavidHilbert

Page 4: Computer Science Fundamentals - Turing Machines

Alphabetany set of symbols examples:● {a, b, c, d, ..., z}

● {0, 1, 2, 3, ..., 9}

● {0, 1}

Page 5: Computer Science Fundamentals - Turing Machines

Stringsequence of symbols from the alphabet examples:● foobar

● 0101001

● (empty string)

Page 6: Computer Science Fundamentals - Turing Machines

Formal Languageany set of strings over an alphabet examples:● {foo, bar, baz}

● {00, 01, 10, 11}

● {b, ab, aab, aaab, aaaab, ... }

Page 7: Computer Science Fundamentals - Turing Machines

DeterministicFinite Automata

http://15mmvsf.bagofmice.com/vsf/prev_robot.htm

Page 8: Computer Science Fundamentals - Turing Machines

Formal Definition● an alphabet

● a set of states○ one denoted as a "starting state"○ one or more denoted as "accepting states"

● a transition function○ takes a symbol and a state and returns a new state

Page 9: Computer Science Fundamentals - Turing Machines

DFA acceptingmultiples of 3

Page 10: Computer Science Fundamentals - Turing Machines

NondeterministicFinite Automata

Page 11: Computer Science Fundamentals - Turing Machines

Formal Definition● an alphabet

● a set of states○ one denoted as a "starting state"○ one or more denoted as "accepting states"

● a transition function○ takes a symbol and a state and returns

zero or more states

Page 12: Computer Science Fundamentals - Turing Machines

Example NFA

Page 13: Computer Science Fundamentals - Turing Machines

Theorem

Any NFA can be convertedinto an equivalent DFA.

Page 14: Computer Science Fundamentals - Turing Machines

Regular Language

Any language whichcan be recognized by

some finite automaton.

Page 15: Computer Science Fundamentals - Turing Machines

Regular Expressions

Page 16: Computer Science Fundamentals - Turing Machines

Theorem

A language is regularif and only if

some regular expression describes it.

Page 17: Computer Science Fundamentals - Turing Machines

Turing machines

Page 18: Computer Science Fundamentals - Turing Machines

Formal Definition (slightly simplified)

● two alphabets○ one for reading, the input alphabet○ one for writing, the output (or tape) alphabet

● a set of states○ one starting state○ one accepting state○ one rejecting state

● a transition functiontakes a symbol and a state and returns

a new state, a symbol to write, and Left or Right

Page 19: Computer Science Fundamentals - Turing Machines

Example TMLet's call it M It accepts strings whose length is a power of 2 Accepted strings: "0", "00", "0000" Rejected strings: "", "000", "000000"

Page 20: Computer Science Fundamentals - Turing Machines

A description of M

Attribution: Sipser, Figure 3.8

Page 21: Computer Science Fundamentals - Turing Machines

Running on "00"tape state

.00_ q1

_.0_ q2

_x._ q3

_.x_ q5

._x_ q5

_.x_ q2

_x._ q2

_x_. qaccept

Page 22: Computer Science Fundamentals - Turing Machines

Running on "0000"tape state

.0000_ q1

_.000_ q2

_x.00_ q3

_x0.0_ q4

_x0x._ q3

_x0.x_ q5

_x.0x_ q5

_.x0x_ q5

._x0x_ q5

tape state

_.x0x_ q2

_x.0x_ q2

_xx.x_ q3

_xxx._ q3

_xx.x_ q5

_x.xx_ q5

_.xxx_ q5

._xxx_ q5

tape state

_.xxx_ q2

_x.xx_ q2

_xx.x_ q2

_xxx._ q2

_xxx_. qaccept

Page 23: Computer Science Fundamentals - Turing Machines

Wrapping up

Why do we care about Turing machines?

Page 24: Computer Science Fundamentals - Turing Machines

ReferencesDeterministic finite automaton. (2012, March 11). Retrieved from http://en.wikipedia.org/wiki/Deterministic_finite_automaton Nondeterministic finite automaton. (2012, April 20). Retrieved from http://en.wikipedia.org/wiki/Nondeterministic_finite_automaton Petzold, C. (2008). The annotated turing. Indianapolis: Wiley Publishing, Inc. Sipser, M. (2006). Introduction to the theory of computation. (2nd ed.). Boston: Thompson Course Technology. Turing machine. (2012, April 17). Retrieved from http://en.wikipedia.org/wiki/Turing_machine

Page 25: Computer Science Fundamentals - Turing Machines

Come work with me!