Download presentation
Presentation is loading. Please wait.
Published byShana Norris Modified over 8 years ago
1
Week 13 - Friday
2
What did we talk about last time? Regular expressions
4
You are paddling a canoe around a perfectly circular pond Enjoying yourself immensely, you fail to notice that a goblin has crept up to the shore You remember four things from your old lessons on goblin lore Goblins can't swim Goblins are always hungry for human flesh Goblins can run four times as fast as people can paddle canoes People can run faster than goblins The goblin always assumes that you are making for the closest point on the shore and is always trying to cut you off If you can get to the shore, you can escape, provided that the goblin isn't waiting for you (you need a little margin) What's your escape strategy?
5
Let Σ = {0, 1} Find regular expressions for the following languages: The language of all strings of 0's and 1's that have even length and in which the 0's and 1's alternate The language consisting of all strings of 0's and 1's with an even number of 1's The language consisting of all strings of 0's and 1's that do not contain two consecutive 1's The language that gives all binary numbers written in normal form (that is, without leading zeroes, and the empty string is not allowed)
6
Regular expressions are used in some programming languages (notably Perl) and in grep and other find and replace tools The notation is generally extended to make it a little easier, as in the following: [ A – C] means any character in that range, [A – C] means ( A | B | C ) [0 – 9] means ( 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 ) [ABC] means (A | B | C ) ABC means the concatenation of A, B, and C A dot stands for any letter: A.C could match AxC, A&C, ABC ^ means NOT, thus [^D – Z] means not the characters D through Z Repetitions: R? means 0 or 1 repetitions of R R* means 0 or more repetitions of R R+ means 1 or more repetitions of R Notations vary and have considerable complexity Use this notation to describe the regular expression for legal C++ identifiers
7
Student Lecture
9
A finite-state automaton is an idealized machine composed of five objects: 1. A finite set I, called the input alphabet, of input symbols 2. A set S of states the automaton can be in 3. A designated state s 0 called the initial state 4. A designed set of states called the set of accepting states 5. A next-state function N: S x I S that maps a current state with current input to the next state
10
FSA's are often described with a state transition diagram The starting state has an arrow The accepting states are marked with circles Each rule is represented by a labeled transition arrow The following FSA represents a vending machine 0¢ 25¢ 75¢ 50¢ $1 $1.25 half-dollar quarter half-dollar quarter half-dollar quarter
11
Consider this FSA: What are its states? What are its input symbols? What is the initial state of A? What are the accepting states of A? What is N(s 1, 1)? What's a verbal description for the strings accepted? s0s0 s0s0 s1s1 s1s1 s2s2 s2s2 1 1 0 0 1 0
12
Consider the same FSA: We can also describe an FSA using an annotated next-state table A next-state table gives shows what the transition is for each state for all possible input An annotated next-state table also marks the initial state and accepting states Find the annotated next-state table for this FSA s0s0 s0s0 s1s1 s1s1 s2s2 s2s2 1 1 0 0 1 0
13
Consider the following annotated next-state table marks initial state marks accepting states): Draw the corresponding transition state diagram abc UZYY VVVV YZVY ZZZZ
14
Consider this FSA again: Which state will be reached on the following inputs: i. 01 ii. 0011 iii. 0101100 iv. 10101 What's a verbal description for the strings accepted? s0s0 s0s0 s1s1 s1s1 s2s2 s2s2 1 1 0 0 1 0
15
Let A be a FSA with a set of states S, set of input symbols I, and next-state function N: X x I S Let I * be the set of all strings over I The eventual-state function N * : S x I * S is the following N * (s,w) = the state that A goes to if the symbols of w are input to A in sequence, starting with A in state s All of this is just a notational convenience so that we have a way of talking about the state that a string will transition an FSA to We say that w is accepted by A iff N * (s 0, w) is an accepting state of A The language of A, L(A) = { w I * | w is accepted by A }
16
Design a finite-state automaton that accepts the set of all strings of 0's and 1's such that the number of 1's in the string is divisible by 3 Make a regular expression for this language Design a finite-state automaton that accepts the set of all strings of 0's and 1's that contain exactly one 1 Make a regular expression for this language
17
Kleene's Theorem shows that Finite-State Automata are equivalent to regular expressions That is, for every finite-state automaton there is some equivalent regular expression, and vice versa We won't prove it, but it should be intuitively clear because there are algorithms for building FSA's from regular expressions and vice versa
18
Languages that can be expressed as an FSA or a regular expression are called regular Some languages are not regular For example, the language consisting of strings a k b k, meaning all strings that have a positive number of a's followed by the same number of b's, is not regular Prove it (by contradiction) Hint: We use the pigeonhole principle to show that more than one sequence of a p and a q must end up the in the same state
20
List strings accepted by the FSA A List strings accepted by the FSA B s0s0 s0s0 s1s1 s1s1 s2s2 s2s2 1 0 0 1 0 s3s3 s3s3 1 1 0 A s1s1 s1s1 1 00 1 s0s0 s0s0 B
21
Two states of a finite-state automaton are *- equivalent if any string accepted by the automaton when it starts from one state is accepted when starting from the other Given an automaton A with eventual-state function N *, we can formally say: States s and t in A are*-equivalent iff N * (s,w) and N * (t,w) are both accepting states or both not It turns out that *-equivalence defines an equivalence relation
22
*-equivalence is hard to demonstrate directly Instead, we'll focus on equivalence after k or fewer inputs Given an automaton A with eventual-state function N *, we can formally say: States s and t in A are k-equivalent iff N * (s,w) and N * (t,w) are both accepting states or both not, for all strings w of length k or less
23
For k ≥ 0, k-equivalence is an equivalence relation For k ≥ 0, the k-equivalence classes partition the set of all states of the automaton into a union of mutually disjoint subsets For k ≥ 1, if two states are k-equivalent, they are also (k-1)-equivalent For k ≥ 1, each k-equivalence class is a subset of a (k-1)-equivalence class Any two states that are k-equivalent for all integers k ≥ 0 are *-equivalent
24
Let A be an FSA with next-state function N Given any states s and t in A: 1. s is 0-equivalent to t iff either s and t are both accepting states or they are both nonaccepting states 2. For every integer k ≥ 1, s is k-equivalent to t iff s and t are (k-1)-equivalent and for any input symbol m, N(s,m) and N(t,m) are also (k-1)-equivalent These theorems essentially allow us to create a recursive definition for testing k-equivalence
25
Find the 0-equivalence classes, the 1- equivalence classes, and the 2-equivalence classes for the following FSA: s1s1 s1s1 s2s2 s2s2 s3s3 s3s3 0 0 1 1 s4s4 s4s4 0 0 s0s0 s0s0 1 1 0 0 1
26
Keep finding k-equivalence classes for larger and larger values of k If you ever find that the set of k-equivalence classes is equal to the set of (k+1)-equivalence classes, that is the set of *-equivalence classes This is known as a fixed point in mathematics
27
We can build a new FSA from the *-equivalence classes Recall that [s] means the equivalence class of s This FSA is called the quotient automaton A', and is defined from an FSA A with states S, input symbols I, and next-state function N as follows: 1. The set of states S' of A' is the set of *-equivalent classes of states of A 2. The set of input symbols I' of A' equals I 3. The initial state of A' is [s 0 ] where s o is the initial state of A 4. The accepting states of A' are the states of the form [s] where s is an accepting state of A 5. The next-state function N': S' x I S' is: For all states [s] in S' and input symbols m, N'([s], m) = [N(s,m)]
28
Let A be an FSA with states S, input symbols I, and next-state function N To build A': 1. Find the set of 0-equivalence classes of S 2. For each integer k ≥ 1, find the k-equivalence classes of S until the k-equivalence classes are the same as the (k-1)-equivalence classes 3. Build a quotient automaton whose states are the equivalence classes given above with transition function N'([s],m) = [N(s,m)] for any input symbol m
29
Find the quotient automaton for the following FSA s1s1 s1s1 s2s2 s2s2 s3s3 s3s3 0 1 1 s4s4 s4s4 0 0 s0s0 s0s0 1 1 0 0 1
30
Two automata A 1 and A 2 are equivalent iff L(A 1 ) = L(A 2 ) Proving the languages accepted by two automata can be difficult However, the quotient automata for both A 1 and A 2 will be the same (except for labeling) if A 1 is equivalent to A 2
31
Prove that the following two automata are equivalent by finding their quotient automata s0s0 s0s0 s2s2 s2s2 s1s1 s1s1 0 1 1 s3s3 s3s3 0 0 1 1 0 s0's0' s0's0' s1's1' s1's1' s2's2' s2's2' 0, 1 0 1 s3's3' s3's3' 0 0 1 1
34
Simplifying finite state automata Context free languages Push down automata
35
Keep reading Chapter 12 Work on Assignment 10 Due Friday, April 22 before midnight
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.