2-Finite Automata
2-Finite Automata
FINITE AUTOMATA
Vietnamese-German University
Ngoc Tran, Ph.D.
[email protected]
Content
• Deterministic Finite Accepters (DFA).
• Nondeterministic Finite Accepters (NFA).
• Equivalence between DFA vs NFA.
• Reduction of the Number of States in Finite Automata.
2
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
3
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
4
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
q0 = q-nought
5
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
6
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
7
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
(q2, 0) = q2, (3) (q2, 1) = q1, (6) As q1 is a final state, dfa accepts w.
• Transition Graph: 0 0
1 1
q0 q1 q2
0 1
9
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
0 1
11
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
13
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
14
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
15
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
16
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
a b a a, b
q0 q0 q1
b a, b
q1 q2 q2 q0 q1 q2
q2 q2 q2
17
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
19
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
23
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
26
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
28
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
cout << "Enter numbers of rows and columns of Transition Table: " << endl;
cin >> m >> n;
29
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
string s;
cout << "Input string s: ";
cin >> s;
int *arEdgeVal;
int sizeE;
// Input sizeE and arEdgeVal
……
30
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
31
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
32
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
q1 a q2 a 1
a q3
q0 q1 0, 1 q
q0 0 2
a
a q4
q5
a
(a) (b)
34
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
35
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
39
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
0 1
• *(q0, ) = q0 q0 q1 q2
• *(q0, 0) = q0, 0) = {q0, q1}
• *(q0, 00) = q0, 0) q1, 0) = {q0, q1}
• *(q0, 001) = q0, 1) q1, 1) = {q0} {q2} = {q0, q2}
• *(q0, 0010) = q0, 0) q2, 0) = {q0, q1} = {q0, q1}
• *(q0, 00101) = q0, 1) q1, 1) = {q0} {q2} = {q0, q2}
43
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
Let move(q, a), move(T, a), -closure(q), -closure(T) be (q, a), (T, a),
*(q, ), *(T, ).
• *(q, a) = -closure(move(-closure(q), a))
• *(T, a) = -closure(move(-closure(T), a))
44
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
2. Find a) δ*(q0, a) and b) δ*(q1, λ) in the below figure.
a
q0 q1 q2
49
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
In words, the language consists of all strings w for which there is a walk
labeled w from the initial vertex of the transition graph to some final
vertex.
1 0, 1
q0 0 q1 q2
53
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
58
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
dfa
0
nfa
62
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
63
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
64
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
*(q0, ) = {q0}
b a b
*({q0}, a) = {q1, q2}
a q0 q1
q0 q1 q2 *({q0}, b) =
q1 q1 q2
*({q1, q2}, a) = {q1, q2}
a q2 q0
*({q1, q2}, b) = {q0}
67
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
68
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
69
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Equivalence between DFA vs NFA
• N*(q0, ) = {q0, q3, q4}
• N*({q0, q3, q4}, a) = {q1, q2, q4}
a b
• N*({q0, q3, q4}, b) = {q1, q2, q3, q4}
q0 q1 q1 q3
• N*({q1, q2, q4}, a) = {q0, q1, q2, q3, q4}
q1 q0 q2
• N*({q1, q2, q4}, b) = {q3, q4}
q2 q1, q2
• N*({q1, q2, q3, q4}, a) = {q0, q1, q2, q3, q4}
q3 q4 q3 q4
• N*({q1, q2, q3, q4}, b) = {q3, q4}
q4 q3
• N*({q0, q1, q2, q3, q4}, a) = {q0, q1, q2, q3, q4}
• N*({q0, q1, q2, q3, q4}, b) = {q1, q2, q3, q4}
• N*({q3, q4}, a) = {q4} N*({q3, q4}, b) = {q3, q4}
• N*({q4}, a) = N*({q4}, b) = {q3, q4}
70
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
71
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
73
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
74
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
75
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
76
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
77
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
78
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
79
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
80
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
81
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
82
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
83
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
84
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
Example
• Reduce the number of the states of the below dfa:
q1 0 1
0 0 1 0,1
0 q0 q1 q3
1 q1 q2 q4
q0 q2 q4
0 q2 q1 q4
1 1
q3 q3 q2 q4
q4 q4 q4
85
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
0 1
q0 q1 q3
(q0, q1)1 (q0, q3)1 (q1, q2) (q1, q4)0 (q2, q4)0 q1 q2 q4
(q0, q2)1 (q0, q4)0 (q1, q3) (q2, q3) (q3, q4)0 q2 q1 q4
q3 q2 q4
0 q4 q4 q4
0 0, 1
1,2,3 0,1 1
0 123 4
4
86
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
88
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
90
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
0 1
q0 q1 q2
(q0, q1)0 (q1, q2)1 (q2, q4) (q4, q5)0
q1 q3 q4
(q0, q2)0 (q1, q3) (q2, q5)0 (q4, q6)0
q2 q5 q5
(q0, q3)0 (q1, q4)1 (q2, q6)0 (q5, q6)
q3 q3 q4
(q0, q4)0 (q1, q5)0 (q3, q4)1
q4 q5 q5
(q0, q5)1 (q1, q6)0 (q3, q5)0
q5 q6 q5
(q0, q6)1 (q2, q3)1 (q3, q6)0
q6 q6 q6
1,3 0
0 1
2,4 1,3 1 2,4
0,1
5,6
0 0,1
5,6
92
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
95
Theoretical Computer Science Lecturer: Ngoc Tran, Ph.D.
Vietnamese-German University
References
1. Peter Linz: An Introduction to Formal Languages and Automata,
Fifth edition, Jones & Bartelett learning, 2012.
2. Bài giảng môn Lý thuyết Automat và Ngôn ngữ Hình Thức, Hồ Văn
Quân, Đại học Kỹ Thuật TPHCM.
96
Module 10: Theoretical Computer Science