190 likes | 444 Views
Explore the concept of regular languages and expressions through definitions, examples, and simplification exercises to enhance your understanding. Learn about finite automata and their operations on regular languages.
E N D
[Section 3.1] Regular Languages A 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 Languages A 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] Regular Languages 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 Expressions 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 regular Expressions r1 and r2, then L1[ L2, L1L2, and L1* are regular languages represented by regular expressions _____, _____, _____, respectively. 3) No other expressions are regular expressions.
[Section 3.1] Regular Expressions • Comments : • 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 Expressions • Simplify the following regular expressions : • a*(a+) • a*a* • (a*b*)* • (a+b)*ab(a+b)* + a*b*
[Section 3.1] Regular Expressions • Give 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 ?
[Sections 3.2, 3.3] Finite Automata • Our 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 Automata Example : the language of all strings over {a,b} with an even number of a’s.
[Sections 3.2, 3.3] Finite Automata • More 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 Automata • A (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) • qo2 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 Automata Comment : 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 Automata Defining 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.
[Section 3.4] Finite Automata Kleene’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.5] Operations on Finite Automata Let 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 Automata Let 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 Automata Let 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 Automata Let 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 Properties We 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 ?