0% found this document useful (0 votes)
64 views77 pages

Lesson 03 Introduction To Languages (DFA and RL)

The document discusses deterministic finite automata (DFA) and regular languages. It provides examples of DFAs with different states, transitions, and accepting/rejecting strings. A DFA is formally defined as a 5-tuple (Q, Σ, δ, q0, F) where Q is a finite set of states, Σ is a finite input alphabet, δ is the transition function, q0 is the initial state, and F is the set of final/accepting states. The DFA reads inputs letter-by-letter and transitions between states according to the transition function to either accept or reject the input string.

Uploaded by

Hussain Hbs
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
64 views77 pages

Lesson 03 Introduction To Languages (DFA and RL)

The document discusses deterministic finite automata (DFA) and regular languages. It provides examples of DFAs with different states, transitions, and accepting/rejecting strings. A DFA is formally defined as a 5-tuple (Q, Σ, δ, q0, F) where Q is a finite set of states, Σ is a finite input alphabet, δ is the transition function, q0 is the initial state, and F is the set of final/accepting states. The DFA reads inputs letter-by-letter and transitions between states according to the transition function to either accept or reject the input string.

Uploaded by

Hussain Hbs
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 77

Deterministic

Finite Automata

And Regular Languages


Deterministic

Finite Automata
Simple Automaton

Introduction to Automata Theory, Languages, and Computation, Second Edition 3


Complex Automaton

Introduction to Automata Theory, Languages, and Computation, Second Edition 4


Complex Automaton (cont..)

Introduction to Automata Theory, Languages, and Computation, Second Edition 5


Complex Automaton (cont..)

Introduction to Automata Theory, Languages, and Computation, Second Edition 6


Complex Automaton (cont..)

Introduction to Automata Theory, Languages, and Computation, Second Edition 7


Finite Accepter

Input
String
Output
“Accept”
Finite
or
Automaton “Reject”

Courtesy Costas Busch - RPI 8


Transition Graph
abba -Finite Accepter a, b

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

initial final
state state
transition
state “accept”

Courtesy Costas Busch - RPI 9


Alphabet   {a , b }
a, b

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

For every state, there is a transition for


every symbol in the alphabet

Courtesy Costas Busch - RPI 10


Initial Configuration
Input String
a b b a

a, b

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

Courtesy Costas Busch - RPI 11


Reading the Input

a b b a

a, b

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

Courtesy Costas Busch - RPI 12


a b b a

a, b

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

Courtesy Costas Busch - RPI 13


a b b a

a, b

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

Courtesy Costas Busch - RPI 14


a b b a

a, b

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

Courtesy Costas Busch - RPI 15


Input finished

a b b a

a, b

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

Output: “accept”
Courtesy Costas Busch - RPI 16
Rejection

a b a

a, b

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

Courtesy Costas Busch - RPI 17


a b a

a, b

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

Courtesy Costas Busch - RPI 18


a b a

a, b

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

Courtesy Costas Busch - RPI 19


a b a

a, b

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

Courtesy Costas Busch - RPI 20


Input finished

a b a

a, b
Output:
q5 “reject”
a a, b
b a b
q0 a q1 b q2 b q3 a q4

Courtesy Costas Busch - RPI 21


Another Rejection

a, b

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

Courtesy Costas Busch - RPI 22


Input

Input Finished (no symbol read)
a, b

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

Output:
“reject” Courtesy Costas Busch - RPI 23
Another Example

a a b

a a, b

q0 b q1 a, b q2

Courtesy Costas Busch - RPI 24


a a b

a a, b

q0 b q1 a, b q2

Courtesy Costas Busch - RPI 25


a a b

a a, b

q0 b q1 a, b q2

Courtesy Costas Busch - RPI 26


a a b

a a, b

q0 b q1 a, b q2

Courtesy Costas Busch - RPI 27


Input finished

a a b

a a, b
Output: “accept”

q0 b q1 a, b q2

Courtesy Costas Busch - RPI 28


Rejection

b a b

a a, b

q0 b q1 a, b q2

Courtesy Costas Busch - RPI 29


b a b

a a, b

q0 b q1 a, b q2

Courtesy Costas Busch - RPI 30


b a b

a a, b

q0 b q1 a, b q2

Courtesy Costas Busch - RPI 31


b a b

a a, b

q0 b q1 a, b q2

Courtesy Costas Busch - RPI 32


Input finished

b a b

a a, b

q0 b q1 a, b q2

Output: “reject”

Courtesy Costas Busch - RPI 33


Formal Definition
Deterministic Finite Automaton (DFA)

M  Q, ,  , q0 , F 
Q : finite set of states
 : finite set of input alphabet
 : transition function
q0 : initial state q0  Q
F : set of final states F  Q
Courtesy Costas Busch - RPI 34
Input Alphabet 

  :the input alphabet never contains 


  a, b
a, b

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

Courtesy Costas Busch - RPI 35


Set of States Q
Q  q0 , q1, q2 , q3 , q4 , q5 

a, b

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

Courtesy Costas Busch - RPI 36


Initial State q0

a, b

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

Courtesy Costas Busch - RPI 37


Set of Final States F

F  q4  F Q

a, b

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

Courtesy Costas Busch - RPI 38


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

qfinal  F

To reject a string:
all the input string is scanned
and the last state (qlast) is non-accepting
qlast  F qlast  (Q  F )
Courtesy Costas Busch - RPI 39
Transition Function  :Q  Q

 (q , x )  q 
x q
q

Describes the result of a transition


from state q with symbol x

Courtesy Costas Busch - RPI 40


 q0 , a   q1

a, b

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

Courtesy Costas Busch - RPI 41


 q0 , b   q5

a, b

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

Courtesy Costas Busch - RPI 42


 q2 , b   q3

a, b

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

Courtesy Costas Busch - RPI 43


Transition Function 
 a b
q0 q1 q5
q1 q5 q2
q2 q5 q3
q3 q4 q5 a, b
q4 q5 q5
q5 q5 q5 q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4

Courtesy Costas Busch - RPI 44


Extended Transition Function
 :Q   Q
* *

 (q ,w )  q 
*

Describes the resulting state


after scanning string w from state q

Courtesy Costas Busch - RPI 45


 * q0 , ab   q2

a, b

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

Courtesy Costas Busch - RPI 46


 * q0 , abba   q4

a, b

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

Courtesy Costas Busch - RPI 47


 * q0 , abbbaa   q5

a, b

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

Courtesy Costas Busch - RPI 48


Special case:

for any state q

 q ,    q
*

Courtesy Costas Busch - RPI 49


Observation: There is a walk from q to q
with label w

 * q, w  q

q w q

states may be repeated

w  1 2  k
1 2 k
q q

Courtesy Costas Busch - RPI 50


Example: There is a walk from q0 to q5
with label abbbaa

 * q0 , abbbaa   q5
a, b

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

Courtesy Costas Busch - RPI 51


Inductive Definition
Basis  * q ,    q
Induction  * q, w    ( * (q, w), )

q w q1  q

 *  q , w   q
 * q, w    (q1, )
 (q1, )  q
 * q, w    ( * (q, w), )
 * q, w  q1

Courtesy Costas Busch - RPI 52


 a b  * q0 , ab  
q0 q1 q5   * (q0 , a ), b  
q1 q5 q2    * q0 ,  , a , b  
q2 q5 q3   q0 , a , b  
q3 q4 q5  q1 , b  
q4 q5 q5 q2
q5 q5 q5 a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 53
 a b  * q0 , ab  
q0 q1 q5   * (q0 , a ), b  
q1 q5 q2  * q ,    q    * q0 ,  , a , b  
q2 q5 q3   q0 , a , b  
q3 q4 q5  q1 , b  
q4 q5 q5 q2
q5 q5 q5 a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 54
 a b  * q0 , ab  
q0 q1 q5   * (q0 , a ), b  
q1 q5 q2    * q0 ,  , a , b  
q2 q5 q3   q0 , a , b  
q3 q4 q5  q1 , b  
q4 q5 q5 q2
q5 q5 q5 a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 55
 a b  * q0 , ab  
q0 q1 q5   * (q0 , a ), b  
q1 q5 q2    * q0 ,  , a , b  
q2 q5 q3   q0 , a , b  
q3 q4 q5  q1 , b  
q4 q5 q5 q2
q5 q5 q5 a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 56
 a b  * q0 , ab  
q0 q1 q5   * (q0 , a ), b  
q1 q5 q2    * q0 ,  , a , b  
q2 q5 q3   q0 , a , b  
q3 q4 q5  q1 , b  
q4 q5 q5 q2
q5 q5 q5 a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 57
 a b  * q0 , ab  
q0 q1 q5   * (q0 , a ), b  
q1 q5 q2    * q0 ,  , a , b  
q2 q5 q3   q0 , a , b  
q3 q4 q5  q1 , b  
q4 q5 q5 q2
q5 q5 q5 a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 58
 a b  * q0 , ab  
q0 q1 q5   * (q0 , a ), b  
q1 q5 q2    * q0 ,  , a , b  
q2 q5 q3   q0 , a , b  
q3 q4 q5  q1 , b  
q4 q5 q5 q2
q5 q5 q5 a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 59
Languages Accepted by DFAs
Take DFA M

Definition:
The language LM  contains
all input strings accepted by M

LM  = { strings that drive M to a final state}

Courtesy Costas Busch - RPI 60


Example # 1
LM   abba M

a, b

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

accept

Courtesy Costas Busch - RPI 61


Activity
Time
LM    , abba
This automaton accepts only one string

Language Accepted: L  abba 

a, b

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

Make it to accept two strings L   , abba


Courtesy Costas Busch - RPI 63
Example # 2
Alphabet:   {1}
1

q0 q1
1

Language Accepted:

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


*

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


Courtesy Costas Busch - RPI 64
Example # 3
LM    , ab, abba M

a, b

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

accept accept accept

Courtesy Costas Busch - RPI 65


Languages Accepted by DFAs
Take DFA M

Definition:
The language LM  contains
all input strings accepted by M

LM  = { strings that drive M to a final state}

Courtesy Costas Busch - RPI 66


Formally
For a DFA M  Q, ,  , q0 , F 

Language accepted by M :
LM   w  * :  * q0 , w  F 

q0 w q q  F

Courtesy Costas Busch - RPI 67


Observation
Language rejected by M :

LM   w  * :  * q0 , w  F 

q0 w q q  F

Courtesy Costas Busch - RPI 68


Regular Languages
Definition:
A language L is regular if there is
a DFA M that accepts it ( L(M )  L )

The languages accepted by all DFAs


form the family of regular languages

Courtesy Costas Busch - RPI 69


Activity # 1

LM   {a b : n  0}
n

a a, b

q0 b q1 a, b q2

accept trap state

Courtesy Costas Busch - RPI 70


Activity # 2
The language L  awa : w  a, b*
is regular:
a
b
L  LM  b
q0 a q2 q3

b a
q4

a, b
Courtesy Costas Busch - RPI 71
Activity # 3
LM  = { all strings with prefix ab }
a, b

q0 a q1 b q2

b a accept

q3 a, b

Courtesy Costas Busch - RPI 72


Activity # 4
LM  = { all binary strings containing
substring 001 }

0,1
1 0
1

 0 0 00 1 001
0

Courtesy Costas Busch - RPI 73


Activity # 5
LM  = { all binary strings without
substring 001 }

1 0 0,1
1

 0 1
0 00 001

0
Courtesy Costas Busch - RPI 74
Activity # 6 & 7
  {a , b }
a, b
a, b

q0 q0

L(M )  { } L(M )   *

Empty language All strings


Courtesy Costas Busch - RPI 75
Activity # 8
  {a , b }

a, b

q0 a, b q0

L(M )  { }
Language of the empty string
Courtesy Costas Busch - RPI 76
There exist languages which are not Regular:

L {a b : n  0}
n n

ADDITION  {x  y  z : x  1 , y  1 , z  1 , n m k

nm k}

There are no DFAs that accept these languages

(we will prove this in a later class)


Courtesy Costas Busch - RPI 77

You might also like