Formal Languages, Automata and Computability
Formal Languages, Automata and Computability
FORMAL LANGUAGES,
AUTOMATA AND
COMPUTABILITY
FIRST HOMEWORK IS DUE
Thursday, January 22
NON-DETERMINISM
THURSDAY JAN 18
M = (Q, Σ, , q0, F) where Q = {q0, q1, q2, q3}
Σ = {0,1}
: Q Σ → Q transition function *
q0 Q is start state
F = {q1, q2} Q accept states
q1 1
0
0,1 * q0
0
q0
1
q1
1
q0
q1 q2 q2
M q2
q2 q3 q2
0 0
q3 q0 q2
1
q3
deterministic DFA
A ^ finite automaton ^ is a 5-tuple M = (Q, Σ, , q0, F)
Q is the set of states (finite)
Σ is the alphabet (finite)
: Q Σ → Q is the transition function
q0 Q is the start state
F Q is the set of accept states
Intersection THEOREM
In other words,
if L is regular than so is L,
where L= { w Σ* | w L }
Proof ?
THE REGULAR OPERATIONS
Union: A B = { w | w A or w B }
Intersection: A B = { w | w A and w B }
Negation: A = { w Σ* | w A }
Concatenation: A B = { vw | v A and w B }
0 0 1
1
NON-DETERMINISM
1 0,1
0
0 0 1
1
0,1
0,1
0,ε 0
ε 0
0
L(M)={1,00}
A non-deterministic finite automaton (NFA)
is a 5-tuple N = (Q, Σ, , Q0, F)
1. r0 Q0
2. ri+1 (ri, wi+1 ) for i = 0, ..., n-1, and
3. rn F
0
N = (Q, Σ, , Q0, F)
ε
q3 Q = {q1, q2, q3, q4}
0 Σ = {0,1}
Q0 = {q1, q2}
q1
F = {q4} Q
(q2,1) = {q4}
00 L(N)? (q3,1) =
01 L(N)? (q1,0) = { q3}
Deterministic Non-Deterministic
Computation Computation
reject
ε ε
ε
UNION THEOREM FOR NFAs
0 0
1
0
1
NFAs ARE SIMPLER THAN DFAs
An NFA that recognizes the language {1}:
1 0,1
Theorem: Every NFA has an equivalent* DFA
Q = 2Q
: Q Σ → Q
(R,) = ε( (r,) ) *
rR
q0 = ε(Q0)
* F = { R Q | f R for some f F }
N
1
a
a b
ε
a,b
2 3
ε({1}) = {1,3}
N = ( Q, Σ, , Q0, F )
Given: NFA N = ( {1,2,3}, {a,b}, , {1}, {1} )
Construct: equivalent DFA M = (Q, Σ, , q0, F)
N a b
1
a {1}
a b
ε {2}
{3}
2 a, b 3
ε({1}) = {1,3}
N = ( Q, Σ, , Q0, F )
Given: NFA N = ( {1,2,3}, {a,b}, , {1}, {1} )
Construct: equivalent DFA M = (Q, Σ, , q0, F)
N a b
1
a {1}
a b
ε {2}
{3}
a, b {1,2}
2 3
{1,3}
{2,3}
q0 = ε({1}) = {1,3}
{1,2,3}
N = ( Q, Σ, , Q0, F )
Given: NFA N = ( {1,2,3}, {a,b}, , {1}, {1} )
Construct: equivalent DFA M = (Q, Σ, , q0, F)
N a b
1
a {1}
a b
ε {2}
{3}
2 a, b {1,2}
3
{1,3}
q0 = ε({1}) = {1,3} {2,3}
{1,2,3}
N = ( Q, Σ, , Q0, F )
Given: NFA N = ( {1,2,3}, {a,b}, , {1}, {1} )
Construct: equivalent DFA M = (Q, Σ, , q0, F)
N a b
1
a {1}
a b
ε {2}
{3}
a, b {1,2}
2 3
{1,3}
{2,3}
q0 = ε({1}) = {1,3}
{1,2,3}
N = ( Q, Σ, , Q0, F )
Given: NFA N = ( {1,2,3}, {a,b}, , {1}, {1} )
Construct: equivalent DFA M = (Q, Σ, , q0, F)
N a b
1
a {1} {2}
a b
ε {2}
{3}
a, b {1,2}
2 3
{1,3}
{2,3}
q0 = ε({1}) = {1,3}
{1,2,3}
N = ( Q, Σ, , Q0, F )
Given: NFA N = ( {1,2,3}, {a,b}, , {1}, {1} )
Construct: equivalent DFA M = (Q, Σ, , q0, F)
N a b
1
a {1} {2}
a b
ε {2} {2,3} {3}
{3}
a, b {1,2}
2 3
{1,3}
{2,3}
q0 = ε({1}) = {1,3}
{1,2,3}
N = ( Q, Σ, , Q0, F )
Given: NFA N = ( {1,2,3}, {a,b}, , {1}, {1} )
Construct: equivalent DFA M = (Q, Σ, , q0, F)
N a b
1
a {1} {2}
a b
ε {2} {2,3} {3}
{3} {1,3}
a, b {1,2} {2,3} {2,3}
2 3
{1,3} {1,3} {2}
{2,3} {1,2,3} {3}
q0 = ε({1}) = {1,3} {1,2,3}
{1,2,3} {2,3}
N = ( Q, Σ, , Q0, F )
Given: NFA N = ( {1,2,3}, {a,b}, , {1}, {1} )
Construct: equivalent DFA M = (Q, Σ, , q0, F)
N a b
1
a {1} {2}
a b
ε {2} {2,3} {3}
{3} {1,3}
a, b {1,2} {2,3} {2,3}
2 3
{1,3} {1,3} {2}
{2,3} {1,2,3} {3}
q0 = ε({1}) = {1,3} {1,2,3}
{1,2,3} {2,3}
REGULAR LANGUAGES CLOSED
UNDER CONCATENATION
ε 1
0 0
1 ε
Formally:
Input: M = (Q, Σ, , q1, F)
Output: N = (Q, Σ, , {q0}, F)
Q = Q {q0}
F = F {q0}
{(q,a)} if q Q and a ≠ ε
{q1} if q F and a = ε
(q,a) = {q1} if q = q0 and a = ε
if q = q0 and a ≠ ε
else
L(N) = L*
Assume w = w1…wk is in L*, where w1,…,wk L
We show N accepts w by induction on k
Base Cases:
k=0
k=1
Inductive Step:
Assume N accepts all strings v = v1…vk L*, vi L,
and let u = u1…ukuk+1 L*, uj L,
Since N accepts u1…uk and M accepts uk+1,
N must accept u
Assume w is accepted by N, we show w L*
If w = ε, then w L*
If w ≠ ε
ε
L*
L*
accept
REGULAR LANGUAGES ARE COLSED
UNDER REGULAR OPERATIONS
Union: A B = { w | w A or w B }
Intersection: A B = { w | w A and w B }
Negation: A = { w Σ* | w A }
Concatenation: A B = { vw | v A and w B }
…
q0 qi qj q|w|