TOPIC C - Finite Automata
TOPIC C - Finite Automata
Omar Badreddin 1
Topic C : Finite Automata
Omar Badreddin 2
Topic C : Finite Automata
Omar Badreddin 3
Topic C : Finite Automata
Example: = {a,b} a b
states = {x,y,z} x y z
transitions:
start state : x y x z
final states: {z} z z z
aaba: x a y a x b z a z z is final;
aaba is accepted
Omar Badreddin 4
Topic C : Finite Automata
x a
Transition Diagram y
a b –
a
x y z
y x z b b
z z z
z
+
a b
Regular expression: (a+b)*b(a+b)*
aaaabba?
bbaabbbb?
Omar Badreddin 5
Topic C : Finite Automata
a x
a y
x a –
y x
– a
a y
– a
b
b b
b b b
z
z a +
+ b z b
a b + a
b b
a
bbaabbbb?
aaaabba?
Omar Badreddin 6
Topic C : Finite Automata
a a,b
– +
+ a,b
b
X(X)* = X+ (a+b)*
(a+b)(a+b)* = (a+b)+
Omar Badreddin 7
Topic C : Finite Automata
a a,b
– No final state
b
a,b
a,b a,b
– +
The middle state is not a final state and all transitions that go
into this state do not exit.
Omar Badreddin 8
Topic C : Finite Automata
Omar Badreddin 9
Topic C : Finite Automata
● Start state: 1
● Final state: 1
a b a,b
1 2 2 1+ 2
a,b
2 1 1
Omar Badreddin 10
Topic C : Finite Automata
y a,b
b
a(a+b)*
x
Not necessarily unique: – a
a,b
a,b z
+
b
–
a
a,b
+
a,b
+ Remark: 2 final states
Omar Badreddin 11
Topic C : Finite Automata
12
Topic C : Finite Automata
3. Add paths for words that contain a’s and b’s before or
Omar Badreddin 13
Topic C : Finite Automata
a,b
a
– a,b a,b
b
The third letter is b. a,b
+
(aab + abb + bab + bbb)(a+b)*
(a+b)(a+b)b(a+b)*
The regular expression is not unique.
Is there always at least one regular expression defining the
language accepted by an FA?
Omar Badreddin 15
Topic C : Finite Automata
b a a +
–
a b b a,b
a,b
Omar Badreddin 16
Topic C : Finite Automata
b a b a a +
+ –
a b b a,b
a,b
a,b
Omar Badreddin 17
Topic C : Finite Automata
a b
a,b b
a,b +
+
a
(a+b)*a +
Words that do not end in b.
b a b b
a a
– + – +
b a
(a+b)*a
Words that end in a.
Omar Badreddin 18
Topic C : Finite Automata
b b
a
– +
a
Omar Badreddin 19
Topic C : Finite Automata
b a,b
a a
– +
b
Words that contain a double a
(a+b)*aa(a+b)*
Start state: the previous letter (if there is one) was not an a.
Middle state: we have just seen an a that was not preceded
by an a.
Final state: we have seen a double a.
Omar Badreddin 20
Topic C : Finite Automata
a b
b
+
a a b
a
b
+
– a
a a b
b a a
– b
+
b
b aabbaabb
Omar Badreddin 21
Topic C : Finite Automata
a a a a
b
3 4
b
Omar Badreddin 22