1 / 32

CMPS 3223 Theory of Computation

CMPS 3223 Theory of Computation. Automata, Computability, & Complexity by Elaine Rich ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Slides provided by author Slides edited for use by MSU Department of Computer Science – R. Halverson. Chapter 6. Regular Expressions

coby
Download Presentation

CMPS 3223 Theory of Computation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CMPS 3223Theory of Computation Automata, Computability, & Complexity by Elaine Rich ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Slides provided by author Slides edited for use by MSU Department of Computer Science – R. Halverson

  2. Chapter 6 Regular Expressions LOTS of problems at end of chapter for you to practice!

  3. Regular Languages Regular Language L Regular Expression Accepts Finite State Machine

  4. What is a regular expression? • A method to describe a regular language. • Different from that of a FSM • Consists of set of symbols + a syntax • Symbols • Special symbols: ∅  U ( ) * + • Alphabet ∑: from which strings in language are made

  5. Regular Expressions The regular expressions over an alphabet  are all and only the strings that can be obtained as follows: 1.  is a regular expression. 2.  is a regular expression. 3. Every element of  is a regular expression. 4. If  ,  are regular expressions, then so is . 5. If  ,  are regular expressions, then so is . 6. If  is a regular expression, then so is *. 7. If  is a regular expression, then so is +. 8. If  is a regular expression, then so is (). Know this definition!

  6. Regular Expression Examples If  = {a, b}, the following are regular expressions:   a (ab)* abba b*(aabb)+ b

  7. Regular Expressions Define Languages Define L, a semantic interpretation function for regular expressions: 1. L() = . 2. L() = {}. 3. L(c), where c = {c}. 4. L() = L() L(). 5. L() = L() L(). 6. L(*) = (L())*. 7. L(+) = L(*) = L() (L())*. If L() is equal to , then L(+) is also equal to . Otherwise L(+) is language formed by concatenating together one or more strings drawn from L(). 8. L(()) = L().

  8. The Role of the Rules • Rules 1, 3, 4, 5 & 6 give the language its power to define sets. • Rule 8 has as its only role grouping other operators. • Rules 2 & 7 appear to add functionality to regular expression language, but don’t. 2.  is a regular expression. * =  this is like 50 = 1, 0 =  7.  is a regular expression, then so is +. + = *

  9. Analyzing a Regular ExpressionA formal view – but not what we will do L((ab)*b) = L((ab)*) L(b) = (L((ab)))* L(b) = (L(a) L(b))* L(b) = ({a}  {b})* {b} = {a, b}* {b}.

  10. Examples Convention dictates that omit the L( ) portion and use the expression to represent a language. Give a description. L(a*b*) = a*b* = {a}*{b}* L((a  b)*) = (a  b)* = {a,b}* L((a  b)*a*b*)=(a  b)* a*b*={a,b}*{a}*{b}* L((a  b)*abba(a  b)*) = (ab)*abba(ab)*) = {a,b}*abba{a,b}*

  11. Give a Regular Expression L = {w {a, b}*: |w| is even}

  12. Solution L = {w {a, b}*: |w| is even} (a b) (a  b))* OR (aa ab ba  bb)* Explain how this guarantees an even number of characters in each string that fits the pattern of the regular expression.

  13. Give a regular expression L = {w {a, b}*: w contains an odd number of a’s}

  14. Solution L = {w {a, b}*: w contains an odd number of a’s} b* (ab*ab*)* ab* b* ab* (ab*ab*)*

  15. More Regular Expression Examples L ( (aa*)  ) = L ( (a)* ) = L = {w {a, b}*: there is no more than one b in w} L = {w {a, b}* : no two consecutive letters in w are the same}

  16. Common Idioms What do these mean? () (ab)* (ab)+

  17. Operator Precedence in Regular Expressions Regular Arithmetic Expressions Expressions Highest Kleene star exponentiation concatenation multiplication Lowest union addition a b* c d* x y2 + i j2

  18. The Details Matter Explain the differences! These will be components of MANY of your regular expressions a* b*  (ab)*  (ab)* (ab)* a*b*

  19. The Details Matter L1 = {w {a, b}* : every a is immediately followed a b} A regular expression for L1: A FSM for L1: L2 = {w {a, b}* : every a has a matching b somewhere} A regular expression for L2: A FSM for L2:

  20. Power of a Methodology In this course… • We will make claims that 2 methodologies are equivalent. i.e. Have the same power. • We will also claim that one methodology is more powerful than another What does that mean? • Descriptive, Define

  21. 6.2 Kleene’sTheorem Finite state machines &regular expressions define the same class of languages. i.e. They are equivalent. i.e. They are equally powerful. To prove this, we must show: Theorem: Any language that can be defined with a regular expression can be accepted by some FSM and so is regular. Theorem: Every regular language (i.e., every language that can be accepted by some DFSM) can be defined with a regular expression.

  22. For Every Regular Expression There is a Corresponding FSM • We’ll show this by construction. • That is, for each of the components in the definition of a Regular Expression (page 128), we will develop a corresponding finite state machine. • The result will not necessarily be deterministic • The methods in the proof are not necessarily unique

  23. For Every Regular Expression There is a Corresponding FSM For the first 3 components: : A single element c of : = (*):

  24. Union of 2 Regular Expressionsexp1 U exp2 M1for Expression 1  M2 for Expression 2  Do any other states need to change? Minimal? S1 S S2

  25. Concatenation of 2 Regular Expressionsexp1exp2 M1for Expression 1  is this still F?  M2 for Expression 2 Do any other states need to change? Finals? S1 F S2

  26. Kleene Star of Regular Expressionexp1* M1for Expression 1   Do any other states need to change? Finals?  S1 F SF

  27. Kleene Star of Regular Expressionexp1* - alternate way M1for Expression 1   Do any other states need to change? Finals?  SF F

  28. Example 1 (b ab)* An FSM for b An FSM for a An FSM for b An FSM for ab: Note: This Example 6.5 page 136 is in error in text.

  29. Example 1 (b ab)* An FSM for (bab): Can we reduce it?

  30. Example 1 (b ab)* An FSM for (bab)*: Reduce?? Do Homework starting page 151.

  31. Simplifying Regular Expressions Regex’s describe sets: ● Union is commutative:  = . ● Union is associative: ()  =  (). ●  is the identity for union:  =  = . ● Union is idempotent:  = . Concatenation: ● Concatenation is associative: () = (). ●  is the identity for concatenation:  =  = . ●  is a zero for concatenation:  =  = . Concatenation distributes over union: ● ()  = ()  (). ●  () = ()  (). Kleene star: ● * = . ● * = . ●(*)* = *. ● ** = *. ●()* = (**)*.

  32. Chapter 6 Homework • End of Chapter – Page 161 + • Try all of the problems – Really!

More Related