Unit-4: Regular properties
- B. Srivathsan
Chennai Mathematical Institute
NPTEL-course July - November 2015
1/26
Unit-4: Regular properties B. Srivathsan Chennai Mathematical - - PowerPoint PPT Presentation
Unit-4: Regular properties B. Srivathsan Chennai Mathematical Institute NPTEL-course July - November 2015 1 / 26 Module 2: A gentle introduction to automata 2 / 26 { p 1 } { p 1 , p 2 } request=1 request=1 ready busy request=0 request=0
NPTEL-course July - November 2015
1/26
2/26
{ p1 } { p1,p2 } { p2 } {}
request=1 ready request=1 busy request=0 ready request=0 busy
3/26
Goal: Need finite descriptions of properties
4/26
Goal: Need finite descriptions of properties Here: Finite state automata to describe sets of words
4/26
Goal: Need finite descriptions of properties Here: Finite state automata to describe sets of finite words
4/26
Alphabet: { a,b }
5/26
Alphabet: { a,b } L1 = { ab, abab, ababab, ...}
5/26
Alphabet: { a,b } L1 = { ab, abab, ababab, ...} Design a TS with actions { a,b } and mark some states as accepting so that the set of all paths from an initial state to an accepting state equals L1
5/26
Alphabet: { a,b } L1 = { ab, abab, ababab, ...} Design a TS with actions { a,b } and mark some states as accepting so that the set of all paths from an initial state to an accepting state equals L1 q0 q1 q2 q3 q4
5/26
Alphabet: { a,b } L1 = { ab, abab, ababab, ...} Design a TS with actions { a,b } and mark some states as accepting so that the set of all paths from an initial state to an accepting state equals L1 q0 q1 q2 q3 q4 a b
5/26
Alphabet: { a,b } L1 = { ab, abab, ababab, ...} Design a TS with actions { a,b } and mark some states as accepting so that the set of all paths from an initial state to an accepting state equals L1 q0 q1 q2 q3 q4 a b b a
5/26
Alphabet: { a,b } L1 = { ab, abab, ababab, ...} Design a TS with actions { a,b } and mark some states as accepting so that the set of all paths from an initial state to an accepting state equals L1 q0 q1 q2 q3 q4 a b b a a b
5/26
Alphabet: { a,b } L1 = { ab, abab, ababab, ...} Design a TS with actions { a,b } and mark some states as accepting so that the set of all paths from an initial state to an accepting state equals L1 q0 q1 q2 q3 q4 a b b a a b b a
5/26
Alphabet: { a,b } L1 = { ab, abab, ababab, ...} Design a TS with actions { a,b } and mark some states as accepting so that the set of all paths from an initial state to an accepting state equals L1 q0 q1 q2 q3 q4 a b b a a b b a a,b
5/26
Alphabet: { a,b } L2 = { a, aa, ab, aaa, aab, aba, abb , ...}
L2 is the set of all words starting with a
6/26
Alphabet: { a,b } L2 = { a, aa, ab, aaa, aab, aba, abb , ...}
L2 is the set of all words starting with a
Design a TS with actions { a,b } and mark some states as accepting so that the set of all paths from an initial state to an accepting state equals L2
6/26
Alphabet: { a,b } L2 = { a, aa, ab, aaa, aab, aba, abb , ...}
L2 is the set of all words starting with a
Design a TS with actions { a,b } and mark some states as accepting so that the set of all paths from an initial state to an accepting state equals L2 q0 q1 q2 a b a,b a,b
6/26
Alphabet: { a,b } L2 = { a, aa, ab, aaa, aab, aba, abb , ...}
L2 is the set of all words starting with a
Design a TS with actions { a,b } and mark some states as accepting so that the set of all paths from an initial state to an accepting state equals L2 q0 q1 q2 a b a,b a,b
6/26
7/26
Alphabet
Σ = { a, b }
8/26
Alphabet
Σ = { a, b } Σ · Σ = { a, b } · { a, b }
8/26
Alphabet
Σ = { a, b } Σ · Σ = { a, b } · { a, b } = { aa, ab, ba, bb }
8/26
Alphabet
Σ = { a, b } Σ · Σ = { a, b } · { a, b } = { aa, ab, ba, bb } Σ1 = words of length 1 Σ2 = words of length 2
8/26
Alphabet
Σ = { a, b } Σ · Σ = { a, b } · { a, b } = { aa, ab, ba, bb } Σ1 = words of length 1 Σ2 = words of length 2 Σ3 = words of length 3
8/26
Alphabet
Σ = { a, b } Σ · Σ = { a, b } · { a, b } = { aa, ab, ba, bb } Σ1 = words of length 1 Σ2 = words of length 2 Σ3 = words of length 3 Σk = words of length k
8/26
Alphabet
Σ = { a, b } Σ · Σ = { a, b } · { a, b } = { aa, ab, ba, bb } Σ0 = { ε } (empty word, with length 0) Σ1 = words of length 1 Σ2 = words of length 2 Σ3 = words of length 3 Σk = words of length k
aba · ε
= aba
ε · bbb
= bbb
w · ε
= w
ε · w
= w
8/26
Alphabet
Σ = { a, b } Σ · Σ = { a, b } · { a, b } = { aa, ab, ba, bb } Σ0 = { ε } (empty word, with length 0) Σ1 = words of length 1 Σ2 = words of length 2 Σ3 = words of length 3 Σk = words of length k
Σ∗ =
= set of all finite length words
aba · ε
= aba
ε · bbb
= bbb
w · ε
= w
ε · w
= w
8/26
Σ∗ = set of all words over Σ
9/26
Σ∗ = set of all words over Σ
Any set of words is called a language
9/26
Σ∗ = set of all words over Σ
Any set of words is called a language { ab, abab, ababab, ...} words starting with an a words starting with a b { ε, b, bb, bbb, ...} { ε, ab, abab, ababab, ...} { ε, bbb, bbbbbb, (bbb)3, ...} words starting and ending with an a { ε, ab, aabb, aaabbb,a4b4 ...}
9/26
Σ∗ = set of all words over Σ
Any set of words is called a language { ab, abab, ababab, ...} words starting with an a aΣ∗ words starting with a b { ε, b, bb, bbb, ...} { ε, ab, abab, ababab, ...} { ε, bbb, bbbbbb, (bbb)3, ...} words starting and ending with an a { ε, ab, aabb, aaabbb,a4b4 ...}
9/26
Σ∗ = set of all words over Σ
Any set of words is called a language { ab, abab, ababab, ...} words starting with an a aΣ∗ words starting with a b bΣ∗ { ε, b, bb, bbb, ...} { ε, ab, abab, ababab, ...} { ε, bbb, bbbbbb, (bbb)3, ...} words starting and ending with an a { ε, ab, aabb, aaabbb,a4b4 ...}
9/26
Σ∗ = set of all words over Σ
Any set of words is called a language { ab, abab, ababab, ...} words starting with an a aΣ∗ words starting with a b bΣ∗ { ε, b, bb, bbb, ...} b∗ { ε, ab, abab, ababab, ...} { ε, bbb, bbbbbb, (bbb)3, ...} words starting and ending with an a { ε, ab, aabb, aaabbb,a4b4 ...}
9/26
Σ∗ = set of all words over Σ
Any set of words is called a language { ab, abab, ababab, ...} words starting with an a aΣ∗ words starting with a b bΣ∗ { ε, b, bb, bbb, ...} b∗ { ε, ab, abab, ababab, ...}
(ab)∗
{ ε, bbb, bbbbbb, (bbb)3, ...} words starting and ending with an a { ε, ab, aabb, aaabbb,a4b4 ...}
9/26
Σ∗ = set of all words over Σ
Any set of words is called a language { ab, abab, ababab, ...} words starting with an a aΣ∗ words starting with a b bΣ∗ { ε, b, bb, bbb, ...} b∗ { ε, ab, abab, ababab, ...}
(ab)∗
{ ε, bbb, bbbbbb, (bbb)3, ...}
(bbb)∗
words starting and ending with an a { ε, ab, aabb, aaabbb,a4b4 ...}
9/26
Σ∗ = set of all words over Σ
Any set of words is called a language { ab, abab, ababab, ...} words starting with an a aΣ∗ words starting with a b bΣ∗ { ε, b, bb, bbb, ...} b∗ { ε, ab, abab, ababab, ...}
(ab)∗
{ ε, bbb, bbbbbb, (bbb)3, ...}
(bbb)∗
words starting and ending with an a aΣ∗a { ε, ab, aabb, aaabbb,a4b4 ...}
9/26
10/26
11/26
Alphabet: { a,b } L1 = { ab, abab, ababab, ...} Design a Finite automaton for L1 q0 q1 q2 q3 q4 a b b a a b b a a,b
12/26
Alphabet: { a,b } L3 = { ε, ab, abab, ababab, ...} Design a Finite automaton for L3 q0 q1 q2 a b b a a,b
13/26
Alphabet: { a,b }
Σ∗ = { ε, a, b, aa, ab, ba, bb ...}
Design a Finite automaton for Σ∗ q0 a,b
14/26
Alphabet: { a,b } a∗ = { ε, a, aa, aaa, aaaa, a5, ...}
a∗ is the set of all words having only a
Design a Finite automaton for a∗
15/26
Alphabet: { a,b } a∗ = { ε, a, aa, aaa, aaaa, a5, ...}
a∗ is the set of all words having only a
Design a Finite automaton for a∗ q0 a
15/26
Alphabet: { a,b } a∗ = { ε, a, aa, aaa, aaaa, a5, ...}
a∗ is the set of all words having only a
Design a Finite automaton for a∗ q0 a Non-deterministic automaton
15/26
Single initial state and
Multiple initial states
s r s r1 r2 rm
a a a a
16/26
Single initial state and
Multiple initial states
s r s r1 r2 rm
a a a a
Same applies in the case of Finite Automata
16/26
Alphabet: { a,b } ab∗ = { a, ab, ab2, ab3, ab4, ...} Design a Finite automaton for ab∗
17/26
Alphabet: { a,b } ab∗ = { a, ab, ab2, ab3, ab4, ...} Design a Finite automaton for ab∗ q0 q1 a b
17/26
Alphabet: { a,b } ab∗ = { a, ab, ab2, ab3, ab4, ...} Design a Finite automaton for ab∗ q0 q1 a b Non-deterministic automaton
17/26
Alphabet: { a,b } ab∗ = { a, ab, ab2, ab3, ab4, ...} ba∗ = { b, ba, ba2, ba3, ba4, ...} Design a Finite automaton for ab∗ ∪ ba∗
18/26
Alphabet: { a,b } ab∗ = { a, ab, ab2, ab3, ab4, ...} ba∗ = { b, ba, ba2, ba3, ba4, ...} Design a Finite automaton for ab∗ ∪ ba∗ q0 q1 q2 a b a b
18/26
Alphabet: { a,b } ab∗ = { a, ab, ab2, ab3, ab4, ...} ba∗ = { b, ba, ba2, ba3, ba4, ...} Design a Finite automaton for ab∗ ∪ ba∗ q0 q1 q2 a b a b Non-deterministic automaton
18/26
Alphabet: { a,b } ab∗ = { a, ab, ab2, ab3, ab4, ...} ba∗ = { b, ba, ba2, ba3, ba4, ...} Design a Finite automaton for ab∗ ∪ ba∗
19/26
Alphabet: { a,b } ab∗ = { a, ab, ab2, ab3, ab4, ...} ba∗ = { b, ba, ba2, ba3, ba4, ...} Design a Finite automaton for ab∗ ∪ ba∗ q0 q1 q3 q2 a b b a
19/26
Alphabet: { a,b } ab∗ = { a, ab, ab2, ab3, ab4, ...} ba∗ = { b, ba, ba2, ba3, ba4, ...} Design a Finite automaton for ab∗ ∪ ba∗ q0 q1 q3 q2 a b b a Multiple initial states: non-deterministic automaton
19/26
What is the language of the following automaton? q0 q1 q2 a a,b a
20/26
What is the language of the following automaton? q0 q1 q2 a a,b a Answer: a Σ∗a words starting and ending with a
20/26
What is the language of the following automaton? q0 q1 q2 a,b a b a,b
21/26
What is the language of the following automaton? q0 q1 q2 a,b a b a,b Answer: Σ∗ab Σ∗ words containing ab
21/26
What is the language of the following automaton? q0 q1 q2 a,b a b a,b a,b
22/26
What is the language of the following automaton? q0 q1 q2 a,b a b a,b a,b Answer: Σ∗a Σ∗ b Σ∗ words where there exists an a followed by a b after sometime
22/26
What is the language of the following automaton? q0 q1 q2 a,b,c a c a,b,c b
23/26
What is the language of the following automaton? q0 q1 q2 a,b,c a c a,b,c b Answer: Σ∗a b∗ c Σ∗ (Σ = { a, b, c })
words where there exists an a followed by only b’s and after sometime a c occurs
23/26
Alphabet: { a,b } L = { ε, ab, aabb, aaabbb, ..., aibi, ...} Can we design a Finite automaton for L?
24/26
Alphabet: { a,b } L = { ε, ab, aabb, aaabbb, ..., aibi, ...} Can we design a Finite automaton for L? Need infinitely many states to remember the number of a’s
24/26
Alphabet: { a,b } L = { ε, ab, aabb, aaabbb, ..., aibi, ...} Can we design a Finite automaton for L? Need infinitely many states to remember the number of a’s Cannot construct finite automaton for this language
24/26
Languages { anbn | n ≥ 0} Regular languages
Σ∗, a∗, ab∗, etc.
L′ L
25/26
Deterministic (DFA) Non-deterministic (NFA) Regular languages
26/26
Deterministic (DFA) Non-deterministic (NFA) Regular languages Next module: Are DFA and NFA equivalent?
26/26