021-RegularExpressions FiniteAutomata (1)
Transcript of 021-RegularExpressions FiniteAutomata (1)
Regular LanguagesA language is regular over if it can be built from ;, { }, and { a } for every a 2 , using operators union ( [ ), concatenation ( . ) and Kleene star ( * ).
Example : ( { a } [ { b } )* { a } { a } ( { a } [ { b } )* [ ( { a } [ { b } )* { b } { b } ( { a } [ { b } )*
[Section 3.1]
Regular LanguagesA language is regular over if it can be built from ;, { }, and { a } for every a 2 , using operators union ( [ ), concatenation ( . ) and Kleene star ( * ).
Example : ( { a } [ { b } )* { a } { a } ( { a } [ { b } )* [ ( { a } [ { b } )* { b } { b } ( { a } [ { b } )*
Simplify as :
[Section 3.1]
A language is regular over if it can be built from ;, { }, and { a } for every a 2 , using operators union ( [ ), concatenation ( . ) and Kleene star ( * ).
Recursive definition of regular languages over :
[Section 3.1]Regular Languages
Recursive definition of regular expressions over :
1) ;, { }, and { a } for every a 2 are regular languages
represented by regular expressions __, __, __, respectively.
2) If L1, L2 are regular languages represented by regularexpressions r1 and r2, then L1 [ L2, L1L2, and L1
* areregular languages represented by regular expressions
_____,_____, _____, respectively.
3) No other expressions are regular expressions.
[Section 3.1]Regular Expressions
Regular ExpressionsComments :- For convenience, we will also use r+ and ri for i 2 N.- The priority of operators in decreasing order : Kleene’s star, concatenation, union.
Parenthesize : a + b*c a + bc*
[Section 3.1]
Regular ExpressionsSimplify the following regular expressions :- a*(a+)- a*a*
- (a*b*)*
- (a+b)*ab(a+b)* + a*b*
[Section 3.1]
Regular ExpressionsGive a regular expression for each of the following : - the language of all strings over {a,b} of even length,
- the language of all strings over {a,b,c} in which all a’s precede all b’s,
- the language of all strings over {a,b} with length greater than 3,
- the language of all odd-length strings over {a,b} containing the string bb,
- the language of all strings over {a,b} that do not contain the string aaa.
Is the language { akbk | k 2 N } regular ?
[Section 3.1]
Finite AutomataOur simplest model of computation :- has a tape with input, read once from left to right- has only a single memory register with the state
[Sections 3.2, 3.3]
Finite AutomataExample : the language of all strings over {a,b} with an even number of a’s.
[Sections 3.2, 3.3]
Finite AutomataMore examples :- Language of strings over {a,b} with at least 3 a’s.- Language of strings over {a,b} containing substring aaba.- Language of strings over {a,b} not containing substring aaba.- Language of strings over {a,b} with even number of a’s and odd number of b’s.
[Sections 3.2, 3.3]
Finite AutomataA (deterministic) finite automaton (FA, in some books also abbreviated as DFA) is a 5-tuple (Q,,q0,A,) where- Q is a finite set of states- is a finite alphabet (input symbols)- qo 2 Q is the initial state- A µ Q is a set of accepting states- : Q£ Q is the transition function
[Sections 3.2, 3.3]
Finite AutomataComment : We saw that we can represent a finite automaton by a transition diagram.Draw the transition diagram for ( {qa,qb}, {a,b}, qa, {qb}, ) where is given by the following table (qa,a) qa
(qa,b) qb
(qb,a) qa
(qb,b) qb
Which strings does this FA accept ?
[Sections 3.2, 3.3]
Finite AutomataDefining the computation of an FA M=(Q,,q0,A,).
Extended transition function * : Q£* Q :1) For every q 2 Q, let *(q,) = 2) For every q 2 Q, y 2 *, and 2 , let *(q,y) =
We say that a string x 2 * is accepted by M if __________.A string which is not accepted by M is rejected by M.The language accepted by M, denoted by L(M) is the set of all strings accepted by M.
[Sections 3.2, 3.3]
Finite AutomataKleene’s Thm: A language L over is regular iff there exists a finite automaton that accepts L.
Recall L = { akbk | k ¸ 0 }. Is it regular ?
[Section 3.4]
Operations on Finite AutomataLet M1 = (Q1,,q1,A1,1) and M2 = (Q2,,q2,A2,2) be two FA’s.
Union:We know that L(M1) [ L(M2) is regular. Construct an FA M such that L(M) = L(M1) [ L(M2).
[Section 3.5]
Operations on Finite AutomataLet M1 = (Q1,,q1,A1,1) and M2 = (Q2,,q2,A2,2) be two FA’s.
Intersection:Is L(M1) Å L(M2) is regular ? Construct an FA M such that L(M) = L(M1) Å L(M2).
[Section 3.5]
Operations on Finite AutomataLet M1 = (Q1,,q1,A1,1) be an FA.
Complement:Is L(M1)’ regular ? Construct an FA M such that L(M) = L(M1)’.
[Section 3.5]
Operations on Finite AutomataLet M1 = (Q1,,q1,A1,1) and M2 = (Q2,,q2,A2,2) be two FA’s.
Difference:Construct an FA M such that L(M) = L(M1) - L(M2).
[Section 3.5]
Closure PropertiesWe just saw that the class of regular languages is closed under union, intersection, complement, and difference.
Let L = { x2{a,b}* | x has the same number of a’s and b’s }.
Is L regular ?
[Section 3.5]