170 likes | 424 Views
Finite Automata. Course: Theory of Computation Date: Nov 16 th , 2011 Lin Liu lliu AT cs.kent.edu. Why finite automata are important?. Many real applications elevators coke machines train track switches complier design and parsing. Outline. A Classic Riddle Man, Wolf, Goat and Cabbage
E N D
Finite Automata Course: Theory of Computation Date: Nov 16th, 2011 Lin Liu lliu AT cs.kent.edu
Why finite automata are important? Many real applications • elevators • coke machines • train track switches • complier design and parsing
Outline • A Classic Riddle Man, Wolf, Goat and Cabbage • Definition for Finite Automata (FA) The 5-Tuple • The Language Accepted by FA Definition Examples
A Classic Riddle • A man travels with wolf, goat and cabbage and wants to cross a river from east to west. • A rowboat is available, but only large enough for the man plus one possession. • Wolf eats goat if left alone together. • Goat eats cabbage if left alone together. • How can the man cross without loss?
Solutions As Strings • Four moves can be encoded as four symbols: • Man crosses with wolf (w) • Man crosses with goat (g) • Man crosses with cabbage (c) • Man crosses with nothing (n) • Then a sequence of moves is a string, such as the solution gnwgcng: • First cross with goat, then cross back with nothing, then cross with wolf, …
Transition Diagram • Showing all legal moves • All reachable states • Start state and goal state
The Language Of Solutions • Every path gives some x {w,g,c,n}* • The diagram defines the language of solutions to the problem: {x {w,g,c,n}* | starting in the start state and following the transitions of x ends up in the goal state} • This is an infinite language • (The two shortest strings in the language are gnwgcng and gncgwng)
Definition for Finite Automaton A finite automaton is a 5-tuple (Q, , , q0, F), where • Q is a finite set called the states; • is a finite set called the alphabet; • : Q x Q is the transition function; • q0 Q is the start state; • F Q is the set of accepting states.
One finite automaton start state accepting state transition state
After reading a string s… • FA accepts the string s, if after reading the last symbol of s, FA ends up in an accepting state; • FA rejects the string s, if after reading the last symbol of s, FA ends up in a non-accepting state; • FA crashes, if FA fails during reading s.
Input strings Results abba Accept aabb Reject abbc Crash
The language accepted by FA L = {x * | FA accepts x}, where • * = 0 + 1 + 2 + … • k = All length k strings over the alphabet .
Accepted language examples What is the language accepted by this FA? a, b L = {a,b}* = all finite strings of a’s and b’s
What language is accepted by this machine? a, b a, b L=all even length strings containing a’s and b’s
What language is accepted by this machine? b a, b a L = All strings in {a, b}* with at least one a.
References • www.cs.cmu.edu/afs/cs.cmu.edu/academic/class/.../automata.ppt • Michael Sipser. Introduction to the Theory of Computation, first edition, December 1996 • http://en.wikipedia.org/wiki/Automata_theory • www.webber-labs.com/fl/lectures/ppt-slides/02.ppt