regular expressions cs 130: theory of computation hmu textbook, chapter 3
DESCRIPTION
Regular expressions defined The simplest regular expressions are The empty set Φ The empty string A symbol a from an alphabet Given that R 1 and R 2 are regular expressions, regular expressions are built from the following operations Union: R 1 +R 2 Concatenation: R 1 R 2 Closure: R 1 * Parentheses (to enforce precedence): (R 1 ) Nothing else is a regular expression unless it is built from the above rulesTRANSCRIPT
![Page 1: Regular Expressions CS 130: Theory of Computation HMU textbook, Chapter 3](https://reader036.vdocuments.site/reader036/viewer/2022082802/5a4d1bfa7f8b9ab0599eb5e4/html5/thumbnails/1.jpg)
Regular Expressions
CS 130: Theory of Computation
HMU textbook, Chapter 3
![Page 2: Regular Expressions CS 130: Theory of Computation HMU textbook, Chapter 3](https://reader036.vdocuments.site/reader036/viewer/2022082802/5a4d1bfa7f8b9ab0599eb5e4/html5/thumbnails/2.jpg)
Machines versus expressions Finite automata are machine-like
descriptions of languages Alternative: declarative description
Specifying a language using expressions and operations
Example: 01* + 10* defines the language containing strings such as 01111, 100, 0, 1000000; * and + are operators in this “algebra”
![Page 3: Regular Expressions CS 130: Theory of Computation HMU textbook, Chapter 3](https://reader036.vdocuments.site/reader036/viewer/2022082802/5a4d1bfa7f8b9ab0599eb5e4/html5/thumbnails/3.jpg)
Regular expressions defined The simplest regular expressions are
The empty set Φ The empty string A symbol a from an alphabet
Given that R1 and R2 are regular expressions, regular expressions are built from the following operations
Union: R1+R2 Concatenation: R1R2 Closure: R1* Parentheses (to enforce precedence): (R1)
Nothing else is a regular expression unless it is built from the above rules
![Page 4: Regular Expressions CS 130: Theory of Computation HMU textbook, Chapter 3](https://reader036.vdocuments.site/reader036/viewer/2022082802/5a4d1bfa7f8b9ab0599eb5e4/html5/thumbnails/4.jpg)
Examples 1 + (ab)* + (ba)* (0+1+2+3+4+5+6+7+8+9)*(0+5) (x+y)*x(x+y)* (01)* 0(1*) 01* equivalent to 0(1*)
![Page 5: Regular Expressions CS 130: Theory of Computation HMU textbook, Chapter 3](https://reader036.vdocuments.site/reader036/viewer/2022082802/5a4d1bfa7f8b9ab0599eb5e4/html5/thumbnails/5.jpg)
Equivalence between regular expressions and finite automataStrategy: Convert regular expression to an -
NFA Convert a DFA to a regular
expression
![Page 6: Regular Expressions CS 130: Theory of Computation HMU textbook, Chapter 3](https://reader036.vdocuments.site/reader036/viewer/2022082802/5a4d1bfa7f8b9ab0599eb5e4/html5/thumbnails/6.jpg)
Regular Expression to -NFA Recursive construction Base cases follow base case definitions of
regular expressions : -NFA that accepts the empty string –
a single state that is the start and end state a: -NFA that accepts {a} – two-state
machine (start and final state) with an a-transition
Note: technically, we also need an -NFA for the empty language {} – easy
![Page 7: Regular Expressions CS 130: Theory of Computation HMU textbook, Chapter 3](https://reader036.vdocuments.site/reader036/viewer/2022082802/5a4d1bfa7f8b9ab0599eb5e4/html5/thumbnails/7.jpg)
Regular Expression to -NFA Recursive step: build -NFA from smaller -
NFAs that correspond to the operand regular expressions
To simplify construction, we may ensure the following characteristics for the automata we build Only one final state, with no outgoing transitions No transitions into the start state Note: the base cases satisfy these
characteristics
![Page 8: Regular Expressions CS 130: Theory of Computation HMU textbook, Chapter 3](https://reader036.vdocuments.site/reader036/viewer/2022082802/5a4d1bfa7f8b9ab0599eb5e4/html5/thumbnails/8.jpg)
Regular Expression to -NFA Suppose -NFA1 and -NFA2 are the automata for
R1 and R2 Three operations to worry about: union
R1 + R2, concatenation R1R2), closure R1* With -transitions, construction is straightforward
Union: create a new start state, with -transitions into the start states of -NFA1 and -NFA2; create a new final state, with -transitions from the two final states of -NFA1 and -NFA2
Concatenation: -transition from final state of -NFA1 to the start state of -NFA2
Closure: closure can be supported by an -transition from final to start state; need a few more -transitions (why?)
![Page 9: Regular Expressions CS 130: Theory of Computation HMU textbook, Chapter 3](https://reader036.vdocuments.site/reader036/viewer/2022082802/5a4d1bfa7f8b9ab0599eb5e4/html5/thumbnails/9.jpg)
DFA to Regular Expression More difficult construction Build the regular expression “bottom
up” starting with simpler strings that are acceptable using a subset of states in the DFA
Define Rki,j as the expression for strings
that have an admissible state sequence from state i to state j with no intermediate states greater than k Assume no states are numbered 0, but k
can be 0
![Page 10: Regular Expressions CS 130: Theory of Computation HMU textbook, Chapter 3](https://reader036.vdocuments.site/reader036/viewer/2022082802/5a4d1bfa7f8b9ab0599eb5e4/html5/thumbnails/10.jpg)
R0i,j
Observe that R0i,j describes strings of length
1 or 0: {a1, a2, a3, … }, where, for each ax, (i,ax) = j Add to the set if i = j R0
i,j is the union (+) of applicable symbols in Σ (and perhaps )
The 0 in R0i,j means no intermediate states
are allowed, so either no transition is made (just stay in state i to accept if i = j) or make a single transition from state i to state j
These are the base cases in our construction
![Page 11: Regular Expressions CS 130: Theory of Computation HMU textbook, Chapter 3](https://reader036.vdocuments.site/reader036/viewer/2022082802/5a4d1bfa7f8b9ab0599eb5e4/html5/thumbnails/11.jpg)
Rki,j
Recursive step: for each k, we can build Rk
i,j as follows:Rk
i,j = Rk-1i,j + Rk-1
i,k (Rk-1k,k)* Rk-1
k,j Intuition: since the accepting sequence
contains one or more visits to state k, break the path into pieces that first goes from i to its first k-visit (Rk-1
i,k) followed by zero or more revisits to k (Rk-1
k,k) followed by a path from k to j (Rk-1
k,j )
![Page 12: Regular Expressions CS 130: Theory of Computation HMU textbook, Chapter 3](https://reader036.vdocuments.site/reader036/viewer/2022082802/5a4d1bfa7f8b9ab0599eb5e4/html5/thumbnails/12.jpg)
And finally… We get the regular expression(s) that
represent all strings with admissible sequences that start with the initial state (state 1) and end with a final state
Resulting regular expression built from the DFA: the union of all Rn
1,f where f is a final state Note: n is the number of states in the DFA
meaning there are no more restrictions for intermediate states in the accepting sequence
![Page 13: Regular Expressions CS 130: Theory of Computation HMU textbook, Chapter 3](https://reader036.vdocuments.site/reader036/viewer/2022082802/5a4d1bfa7f8b9ab0599eb5e4/html5/thumbnails/13.jpg)
Example
31 2
a a a,b
b b
Describes strings with at least 2 b’s
![Page 14: Regular Expressions CS 130: Theory of Computation HMU textbook, Chapter 3](https://reader036.vdocuments.site/reader036/viewer/2022082802/5a4d1bfa7f8b9ab0599eb5e4/html5/thumbnails/14.jpg)
31 2
a a a,b
b b
i \ j 1 2 31 + a b Φ2 Φ + a b3 Φ Φ + a +
b
R0i,j
![Page 15: Regular Expressions CS 130: Theory of Computation HMU textbook, Chapter 3](https://reader036.vdocuments.site/reader036/viewer/2022082802/5a4d1bfa7f8b9ab0599eb5e4/html5/thumbnails/15.jpg)
31 2
a a a,b
b b
i \ j 1 2 31 a* a*b Φ2 Φ + a b3 Φ Φ + a +
b
R1i,j
![Page 16: Regular Expressions CS 130: Theory of Computation HMU textbook, Chapter 3](https://reader036.vdocuments.site/reader036/viewer/2022082802/5a4d1bfa7f8b9ab0599eb5e4/html5/thumbnails/16.jpg)
31 2
a a a,b
b b
i \ j 1 2 31 a* a*ba* a*ba*b2 Φ a* a*b3 Φ Φ + a +
b
R2i,j
![Page 17: Regular Expressions CS 130: Theory of Computation HMU textbook, Chapter 3](https://reader036.vdocuments.site/reader036/viewer/2022082802/5a4d1bfa7f8b9ab0599eb5e4/html5/thumbnails/17.jpg)
31 2
a a a,b
b b
i \ j 1 2 31 a* a*ba* a*ba*b(a+b)
*2 Φ a* a*b(a+b)*3 Φ Φ (a+b)*
R3i,j
![Page 18: Regular Expressions CS 130: Theory of Computation HMU textbook, Chapter 3](https://reader036.vdocuments.site/reader036/viewer/2022082802/5a4d1bfa7f8b9ab0599eb5e4/html5/thumbnails/18.jpg)
31 2
a a a,b
b b
i \ j 1 2 31 a* a*ba* a*ba*b(a+b)
*2 Φ a* a*b(a+b)*3 Φ Φ (a+b)*
Final answer: R31,3