Вы находитесь на странице: 1из 47

Finite Automata

Muhammad Fawad Nasim


Fawad.nasim@superior.edu.pk
Why FAs ?
• Recognition
Is string x in language L?

2
Deterministic Finite Automaton (DFA)

Input Tape
String
Output
“Accept”
Finite
or
Automaton
“Reject”
11 1
0
0,1
1
0111 111 1
0 0

The machine accepts a string if the


process ends in a double circle
Steven Rudich:
www.cs.cmu.edu/~rudich
rudich0123456789
Anatomy of a Deterministic Finite
Automaton 1
0
0,1
states accept states (F)
1
q1

0 0

q0 q12

The machine accepts a string if the


start state (q0) ends in
process q3a double circle
states
Steven Rudich:
www.cs.cmu.edu/~rudich
rudich0123456789
Steven Rudich:
www.cs.cmu.edu/~rudich
rudich0123456789
Anatomy of a Deterministic Finite
Automaton

q1 1
0
0,1
1
q0 q2

0 0
The alphabet of a finite automaton is the set
where the symbols come from: 1{0,1}
q3
The language of a finite automaton is the set
of strings that it accepts
Steven Rudich:
www.cs.cmu.edu/~rudich
rudich0123456789
q0 0,1

 strings of 0s and 1s
L(M) = All

The Language of Machine M

Steven Rudich:
www.cs.cmu.edu/~rudich
rudich0123456789
Transition Graph
a, b

q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4

initial accepting
state state
transition
state
Fall 2006 Costas Busch - RPI 9
Alphabet   {a , b }
a, b

q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4

For every state, there is a transition


for every symbol in the alphabet

10
head Initial Configuration
Input Tape
a b b a
Input String
a, b

q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4

Initial state
Fall 2006 Costas Busch - RPI 11
Scanning the Input

a b b a

a, b

q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4

Fall 2006 Costas Busch - RPI 12


a b b a

a, b

q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4

Fall 2006 Costas Busch - RPI 13


a b b a

a, b

q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4

Fall 2006 Costas Busch - RPI 14


Input finished

a b b a

a, b

q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4

accept
Fall 2006 Costas Busch - RPI 15
A Rejection Case

a b a
Input String
a, b

q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4

Fall 2006 Costas Busch - RPI 16


a b a

a, b

q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4

Fall 2006 Costas Busch - RPI 17


a b a

a, b

q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4

Fall 2006 Costas Busch - RPI 18


Input finished

a b a

a, b

reject
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4

Fall 2006 Costas Busch - RPI 19


Another Rejection Case

Tape is empty
( )

Input Finished
a, b

q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4

reject
Fall 2006 Costas Busch - RPI 20
Language Accepted: L  abba 

a, b

q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4

Fall 2006 Costas Busch - RPI 21


To accept a string:
all the input string is scanned
and the last state is accepting

To reject a string:
all the input string is scanned
and the last state is non-accepting

Fall 2006 Costas Busch - RPI 22


Another Example

L  , ab , abba 
a, b

q5
b a a a, b
b
q0 a q1 b q2 b q3 a q4
Accept Accept Accept
state state state
Fall 2006 Costas Busch - RPI 23
Empty Tape
( )

Input Finished a, b

q5
b a a a, b
b
q0 a q1 b q2 b q3 a q4

accept
Fall 2006 Costas Busch - RPI 24
Another Example

a a, b

b a, b
q0 q1 q2

Accept trap state


state
Fall 2006 Costas Busch - RPI 25
a a b
Input String
a a, b

b a, b
q0 q1 q2

Fall 2006 Costas Busch - RPI 26


a a b

a a, b

b a, b
q0 q1 q2

Fall 2006 Costas Busch - RPI 27


a a b

a a, b

b a, b
q0 q1 q2

Fall 2006 Costas Busch - RPI 28


Input finished

a a b

a a, b
accept

b a, b
q0 q1 q2

Fall 2006 Costas Busch - RPI 29


A rejection case

b a b
Input String
a a, b

b a, b
q0 q1 q2

Fall 2006 Costas Busch - RPI 30


b a b

a a, b

b a, b
q0 q1 q2

Fall 2006 Costas Busch - RPI 31


b a b

a a, b

b a, b
q0 q1 q2

Fall 2006 Costas Busch - RPI 32


Input finished

b a b

a a, b

b a, b
q0 q1 q2

reject

33
Language Accepted: L  {a b : n  0 }
n

a a, b

b a, b
q0 q1 q2

34
Another Example
Alphabet:   {1}
1

q0 q1
1
Language Accepted:

EVEN  {x : x   and x is even}


*

 { , 11, 1111, 111111, }


Transition Table for 
symbols
 a b
q0 q1 q5
q1 q5 q2
q2 q5 q3
a, b
q3 q4 q5
q4 q5 q5
q5
q5 q5 q5 a, b
b a a b
q0 a q1 b q2 b q3 a q4
All binary strings containing substring 001

0,1
1 0
1

 0 0 00 1 001
0
Construct DFA to accept (0+1)*

1
Identify following DFA??

0
0 0

1 1
1

0 1

00(0+1)*
(0+1)*00(0+1)*

1 0

0 0

1
1
(0+1)*00

0
1

0 0

1
(0+1)*(00+01)

1 0

0 0

1 1
0
1
(a+b)*abb
Exercise
1. ab(a+b)*
2. a(a+b)*
3. (a+b)*a
4. (a+b)*aa (a+b)*
5. Exactly two strings baa and ab
6. (a+b)*(aa+bb) (a+b)*
7. (a+b) (a+b)b(a+b)*
8. all words containing aaa or bbb
9. (a*ba*ba*ba*)*
a, b

q0 a q1 b q2

b a accept

q3 a, b
Find language?
a, b

a, b
q1 q2

Вам также может понравиться