week 14 friday n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
CS322 PowerPoint Presentation
Download Presentation
CS322

Loading in 2 Seconds...

play fullscreen
1 / 39

CS322 - PowerPoint PPT Presentation


  • 137 Views
  • Uploaded on

Week 14 - Friday. CS322. Last time. What did we talk about last time? Exam 3 post mortem Finite state automata Equivalence with regular expressions. Questions?. Logical warmup. U2 has 17 minutes to cross a bridge for a concert Plan a way to get them across in the darkness

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'CS322' - krysta


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
last time
Last time
  • What did we talk about last time?
  • Exam 3 post mortem
  • Finite state automata
    • Equivalence with regular expressions
logical warmup
Logical warmup
  • U2 has 17 minutes to cross a bridge for a concert
  • Plan a way to get them across in the darkness
  • They have one flashlight
  • A maximum of two people can cross the bridge at one time, and one of them must have the flashlight
  • The flashlight must be walked back and forth
  • Each band member walks at a different speed
    • Bono: 1 minute to cross
    • The Edge: 2 minutes to cross
    • Adam: 5 minutes to cross
    • Larry: 10 minutes to cross
  • A pair must walk together at the rate of the slower man's pace
simplifying fsa s
Simplifying FSA's

Student Lecture

comparison
Comparison
  • List strings accepted by the FSA A
  • List strings accepted by the FSA B

A

B

0

0

1

s0

s1

0

0

1

s0

s1

1

1

1

s3

s2

1

0

0

equivalence
*-equivalence
  • 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 iffN*(s,w) and N*(t,w) are both accepting states or both not
  • It turns out that *-equivalence defines an equivalence relation
k equivalence
k-equivalence
  • *-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 iffN*(s,w) and N*(t,w) are both accepting states or both not, for all strings w of length k or less
facts about k equivalence
Facts about k-equivalence
  • 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
k equivalence theorems
k-equivalence theorems
  • Let A be an FSA with next-state function N
  • Given any states s and t in A:
    • s is 0-equivalent to tiff either s and t are both accepting states or they are both nonaccepting states
    • For every integer k ≥ 1, s is k-equivalent to tiffs 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
k equivalence examples
k-equivalence examples
  • Find the 0-equivalence classes, the 1-equivalence classes, and the 2-equivalence classes for the following FSA:

1

1

0

s0

s1

s2

1

0

1

1

0

0

s4

s3

0

finding the equivalence classes
Finding the *-equivalence classes
  • 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
the quotient automaton
The quotient automaton
  • 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 automatonA', and is defined from an FSA A with states S, input symbols I, and next-state function N as follows:
    • The set of states S' of A' is the set of *-equivalent classes of states of A
    • The set of input symbols I' of A' equals I
    • The initial state of A' is [s0] where so is the initial state of A
    • The accepting states of A' are the states of the form [s] where s is an accepting state of A
    • 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)]

constructing a quotient automaton
Constructing a quotient automaton
  • Let A be an FSA with states S, input symbols I, and next-state function N
  • To build A':
    • Find the set of 0-equivalence classes of S
    • 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
    • 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
quotient automaton example
Quotient automaton example
  • Find the quotient automaton for the following FSA

1

1

0

s0

s1

s2

1

0

1

1

0

0

s4

s3

0

equivalent automata
Equivalent automata
  • Two automata A1 and A2 are equivalent iffL(A1) = L(A2)
  • Proving the languages accepted by two automata can be difficult
  • However, the quotient automata for both A1 and A2 will be the same (except for labeling) if A1 is equivalent to A2
proving equivalence
Proving equivalence
  • Prove that the following two automata are equivalent by finding their quotient automata

s2

s1'

0, 1

0

1

1

0

0

1

1

s0

s0'

s2'

s1

0

0

0

1

1

1

s3

s3'

0

context free languages1
Context free languages
  • A context free language is one that can be described by a context free grammar
  • Every regular language is context free, but there are context free languages that are not regular
  • Classic examples:
    • Strings of k 0's followed by k 1's
    • Palindromes made up of a's and b's
    • Legally nested parentheses
  • All of these involve counting arbitrary numbers of characters
    • Regular expressions can't count
context free grammars
Context free grammars
  • Instead of using regular expressions, a context free language is often described with a grammar
  • A grammar is a formal system of rewriting rules consisting of
    • Terminals: symbols of the alphabet
    • Non-terminals: symbols that produce other sequences of terminals and non-terminals
  • Grammars often start with the non-terminal starting symbol S
  • Any string that can be derived from S through some sequence of rule rewrites is a string in the language
simple context free grammars
Simple context free grammars
  • The following is a grammar that produces the language of strings of 1s and 0s that end in a 1
    • SA1
    • A 1 | 0 | A1 | A0
  • This language is regular and is equivalent to (0 | 1)* 1
  • The following is a grammar that produces the language of akbk where k ≥ 1 (which is not regular
    • SA
    • Aab| aAb
cfg examples
CFG examples
  • Write a grammar that legal nesting of parentheses and braces in Java
    • Don't worry about the stuff that goes inside
  • Write a grammar for legal mathematical expressions in Java using variables and integers, +, -, *, /, and parentheses
  • Write a grammar that corresponds to the same language defined by the regular expression ab* (a | bb) (ba)*
pushdown automata
Pushdown automata
  • As you know, regular languages can be expressed by regular expressions and finite state automata
    • Thus, regular expressions are equal to FSAs in power
  • Context free languages can be expressed by context free grammars
  • There is also a class of automata called pushdown automata that correspond to context free languages
pushdown automata1
Pushdown automata
  • A pushdown automaton is an idealized machine with seven objects:
    • Q a finite set of states
    • Σ the finite input alphabet
    • Γ the finite stack alphabet
    • δ is a finite subset of Q x (Σ  ε) x Γ x Q x Γ*which gives a set of transition rules
    • q0is the start state
    • Z Γ is the initial stack symbol
    • F Q is the set of accepting states
  • All of this looks totally insane, but it's really just adding a stack to finite state automata
pushdown automaton example
Pushdown automaton example
  • To make the PDA for the language 0k1k, k ≥ 1, we have the following:
  • In this case, the notation X/Ymeans that if X is on the top of the stack, replace it with Y
  • The top of the stack is Z
  • Notation is not well standardized for PDAs
    • It's awkward keeping track of the stack

1: A/A

1: Z/Z

s0

s1

s2

0: Z/AZ

0: A/AA

1: A/ε

chomsky hierarchy
Chomsky hierarchy
  • Noam Chomsky is a brilliant linguist who has recently focused mostly on political activism
  • Remember that a grammar consists of terminals (alphabet symbols), non-terminals, production rules, and a start symbol
  • He noted that grammars can be divided into four levels in terms of expressiveness:
    • Type-0 (Unrestricted grammars)
    • Type-1 (Context sensitive grammars)
    • Type-2 (Context free grammars)
    • Type-3 (Regular grammars)
rules for grammars
Rules for grammars
  • Each grammar has rules for what is a legal production rule
  • Let α, β, and γbe any combinations of terminals and non-terminals, where γ is non-empty
  • Unrestricted grammars
    • αβ(anything to anything)
  • Context-sensitive grammars
    • αAβαγβ(non-terminal in a particular context to anything)
  • Context-free grammars
    • A γ(a single non-terminal to anything)
  • Regular grammars
    • Aa and A aB(a single non-terminal to a single terminal or a terminal and a single non-terminal on the right side)
languages broken down
Languages broken down
  • Every kind of language has a particular kind of machine associated with it
fun facts about formal languages
Fun facts about formal languages
  • Each set of languages in the hierarchy strictly contains the sets beneath it
  • Regular languages
    • Can be accepted by nondeterministic or deterministic finite automata (or a read-0nly Turing machine)
    • Are closed under union, intersection, complement, concatenation, and Kleene star
  • Context-free languages
    • Are defined by those languages accepted by nondeterministic pushdown automata
    • Are closed under union, concatenation, and Kleene star (but not under intersection or complement)
    • Deciding whether a string is in a context-free language can be determined in polynomial time
    • Deciding whether a language is empty is decidable
  • Context-sensitive languages
    • Are very rarely used
    • Are closed under union, intersection, complement, and Kleene star
    • Deciding whether a string is in a context-sensitive language is a PSPACE-complete problem
turing machine
Turing machine
  • A Turing machine is a mathematical model for computation
  • It consists of a head, an infinitely long tape, a set of possible states, and an alphabet of characters that can be written on the tape
  • A list of rules saying what it should write and should it move left or right given the current symbol and state

A

turing machine example
Turing machine example
  • You can specify a Turing machine with a table giving its behavior for a specific configuration
  • Turing's first example machine printed an infinite sequence of alternating 1s and 0s, separated by spaces:
church turing thesis
Church-Turing thesis
  • If an algorithm exists, a Turing machine can perform that algorithm
  • In essence, a Turing machine is the most powerful model we have of computation
  • Power, in this sense, means the ability to compute some function, not the speed associated with its computation
  • Do you own a Turing machine?
halting problem
Halting problem
  • Given a Turing machine and input x, does it reach the halt state?
  • As you know, there is no algorithm to determine this
  • If you had a Turing machine that could solve the halting problem, it would cause a logical contradiction
other undecidable problems
Other undecidable problems
  • Are two context-free languages the same?
  • Is the intersection of two context-free languages empty?
  • Is a context-free language equal to Σ*
  • Is a context-free language a subset of another context-free language?
  • Post correspondence problem:
    • You have lists a1, a2, … an and b1, b2, … bn, where ai and bj are strings of some alphabet Σ with at least 2 symbols
    • Is there a value k ≥ 1 such that some sequence of k strings from the a list concatenated is equal to some sequence of k strings from the b list concatenated?
  • Is a given statement of first-order logic provable from a starting set of axioms?
  • Given a set of matrices, is there some sequence that they can be multiplied in (perhaps with repetitions) that will yield the zero matrix?
next time
Next time…
  • Review first third of the course
reminders
Reminders
  • Review chapters 2 - 6
  • Finish Assignment 10
    • Due tonight before midnight