Computer Science Fundamentals - Turing Machines

Post on 11-May-2015

1048 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

Transcript

Computer Science FoundationsTuring Machine Edition

Jason DewGeezeo / Catamorphic Labs

AlanTuring

Entscheidungsproblem

DavidHilbert

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

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

● {0, 1}

Stringsequence of symbols from the alphabet examples:● foobar

● 0101001

● (empty string)

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

● {00, 01, 10, 11}

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

DeterministicFinite Automata

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

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

DFA acceptingmultiples of 3

NondeterministicFinite Automata

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

Example NFA

Theorem

Any NFA can be convertedinto an equivalent DFA.

Regular Language

Any language whichcan be recognized by

some finite automaton.

Regular Expressions

Theorem

A language is regularif and only if

some regular expression describes it.

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

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"

A description of M

Attribution: Sipser, Figure 3.8

Running on "00"tape state

.00_ q1

_.0_ q2

_x._ q3

_.x_ q5

._x_ q5

_.x_ q2

_x._ q2

_x_. qaccept

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

Wrapping up

Why do we care about 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

Come work with me!

top related