021-RegularExpressions FiniteAutomata (1)

19
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]

Transcript of 021-RegularExpressions FiniteAutomata (1)

Page 1: 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]

Page 2: 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 } )*

Simplify as :

[Section 3.1]

Page 3: 021-RegularExpressions FiniteAutomata (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

Page 4: 021-RegularExpressions FiniteAutomata (1)

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

Page 5: 021-RegularExpressions FiniteAutomata (1)

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]

Page 6: 021-RegularExpressions FiniteAutomata (1)

Regular ExpressionsSimplify the following regular expressions :- a*(a+)- a*a*

- (a*b*)*

- (a+b)*ab(a+b)* + a*b*

[Section 3.1]

Page 7: 021-RegularExpressions FiniteAutomata (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]

Page 8: 021-RegularExpressions FiniteAutomata (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]

Page 9: 021-RegularExpressions FiniteAutomata (1)

Finite AutomataExample : the language of all strings over {a,b} with an even number of a’s.

[Sections 3.2, 3.3]

Page 10: 021-RegularExpressions FiniteAutomata (1)

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]

Page 11: 021-RegularExpressions FiniteAutomata (1)

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]

Page 12: 021-RegularExpressions FiniteAutomata (1)

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]

Page 13: 021-RegularExpressions FiniteAutomata (1)

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]

Page 14: 021-RegularExpressions FiniteAutomata (1)

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]

Page 15: 021-RegularExpressions FiniteAutomata (1)

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]

Page 16: 021-RegularExpressions FiniteAutomata (1)

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]

Page 17: 021-RegularExpressions FiniteAutomata (1)

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]

Page 18: 021-RegularExpressions FiniteAutomata (1)

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]

Page 19: 021-RegularExpressions FiniteAutomata (1)

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]