computabilty jeanine.meyer@purchase.edu computability finite state machine. regular languages....
Post on 02-Jan-2016
213 Views
Preview:
TRANSCRIPT
Computabilty jeanine.meyer@purchase.edu
Computability
Finite State Machine. Regular Languages.Homework: Finish Craps.
Next Week: On your own: videos + classwork/homework on FSMs
Computabilty jeanine.meyer@purchase.edu
Overview
• Define different types of machines.– abstract machines
• Machines are fed (my term) strings in a specified alphabet.
• Machines scan the strings and say yes or no (accept or reject)
• Each machine accepts strings in a certain pattern. We call the set of strings in that pattern a language.
Computabilty jeanine.meyer@purchase.edu
Overview
• Repeat: a language is a set of strings.
• This set may be finite or infinite.
Computabilty jeanine.meyer@purchase.edu
Example
• The [written, formal] English language is an infinite set of sentences made up of valid words, spaces and punctuation.
• Why infinite?
Computabilty jeanine.meyer@purchase.edu
Example
• The set of all legal (acceptable, no syntax errors) Processing programs is a language.
• It also is infinite.
Computabilty jeanine.meyer@purchase.edu
Overview, cont.
• Each machine a language
• Each type of machine set of languages
• Presumably, more powerful machines (machines with more capability) could accept a larger set of languages.
• It will turn out that some changes are less powerful than you would think…
Computabilty jeanine.meyer@purchase.edu
Aside
• When we get to Turing Machines, we also will talk about machines computing functions:– get input, produce output: an answer.
• For now, the input is a string of symbols in a fixed alphabet. The output is yes or no – or some other indication of yes, this is a string
in the language; or no it is not.
Computabilty jeanine.meyer@purchase.edu
Alphabets• 2 symbols 0 and 1or• abcdefghijklmnopqrstuvwxyzor• subset of the alphabet, say {a, b, c}or• all symbols used in languages such as
JavaScript, Processing, etc.
• It will turn out that alphabets can be represented by strings of 0 and 1…
Computabilty jeanine.meyer@purchase.edu
Finite State Machine
• also called finite state automaton. Plural is automata.
• A FSM has a finite number of states!– express by writing out s0, s1, s2, etc. or
drawing circles.– One state is specified as the initial state.– One or MORE states are specified as Final or
Accepting states.
Computabilty jeanine.meyer@purchase.edu
FSM, cont.
• For each state, there is a state transition table: for each symbol in the alphabet, there is a switch to another state or to stay in the same state.
• Draw this by a graph: representing the states by nodes and the edges by the state transition table.
Computabilty jeanine.meyer@purchase.edu
Exercise
• Draw the graph– Initial state s0: 0 go to s1, 1 go to s2– s1: 0 go to s1, 1 go to s3– s2: 0 go to s3, 1 go to s2– s3: 0 go to s3, 1 go to s3– s1 and s2 are accepting states.
• What strings does it accept?
Computabilty jeanine.meyer@purchase.edu
Problem
• Let's design a FSM that will accept strings over {0,1} of length 3 and nothing else.
Computabilty jeanine.meyer@purchase.edu
Approach
Take problem and think about different conditions that could arise and you need to keep track of… These will be the different states, or at least a first guess at the different states.
• For the "length 3" problem– start– length 1– length 2– length 3– more than length 3
Computabilty jeanine.meyer@purchase.edu
Problem
• Alphabet {a, b, c, d}. Language is all strings with at least one instance inside the string of abc.
• What are possible states?
Computabilty jeanine.meyer@purchase.edu
Start of approach for abc
States• start• a• ab• abc• a and then something not a b. But maybe that
can put us back at the start.• ab and then something not a c. But maybe that
can put us back at the start• abc and anything else. But that can just keep us
at the abc stage.
Computabilty jeanine.meyer@purchase.edu
Finish the problem
• For the language containing all strings that have at least one abc inside.
• States:– start– a– ab– abc
What are the accepting state(s)? What are the edges?
Computabilty jeanine.meyer@purchase.edu
Your turn
• Each student draw a FSM over {0,1}
• Find a partner and try each other's FSM on sample strings.
Computabilty jeanine.meyer@purchase.edu
Tricky but important
• The empty string is a string!
• Some languages may contain it, some may not.
• Design a FSM that accepts the empty string and only the empty string.
Computabilty jeanine.meyer@purchase.edu
Approach
• What are the states?
• starting state
• state after any symbol scanned.
• What are edges? What is the accepting state?
Computabilty jeanine.meyer@purchase.edu
Looking ahead
• The empty string, sometimes written kind of like the Euro €
Extra credit opportunity for anyone who finds a better symbol…
Some languages include the empty string and some don't.
For the empty string to be in the language the starting state must be an accepting state!
Computabilty jeanine.meyer@purchase.edu
Caution
• Empty set is not the empty string.
• The set consisting of one string, the empty string, is NOT empty.
• The set with no members, that is, consists of no strings, is a regular language.
• What is a FSM for this language?
Computabilty jeanine.meyer@purchase.edu
Definition
• A language is called a regular language if there is a finite state automaton that accepts it.– feed in a string in the language L and the FSM
ends in an accepting state.– feed in a string that is NOT in the language
and the FSM ends in a non-accepting state.
• You will need to check both things.
Computabilty jeanine.meyer@purchase.edu
Preview• We will develop an alternative definition of
regular languages and show they are equivalent.– Any language defined by regular expressions (to be
defined later) is a regular language (can be accepted by a FSM).
• We will show a way of proving that certain languages are not regular. We will prove that no FSM exists that would accept that language.– It is possible (sometimes) to prove a negative…
Computabilty jeanine.meyer@purchase.edu
Preview: Regular operations
• Suppose we have 2 languages A and B– remember these are sets.
• Consider the following languages– A union B: all strings in either A or B– A concatenate B: all strings made up of a
string in A followed by a string in B. Note: may include all of A and/or all of B depending on whether or not the empty string is in A or in B
– A star: finite strings in A, concatenated together
Computabilty jeanine.meyer@purchase.edu
Preview
• We can (and will) prove that if A and B are regular languages, then so are A union B, AB, and A*
• From the machine M that accepts A and N that accepts B, build/design/specify machines for those 3 languages.
Computabilty jeanine.meyer@purchase.edu
Game of crap
Some of you remember from Programming Games• The dice game (craps) had 2 states.
– first turn– follow-up turn
• You start the game in the state of being a first turn. If you roll, – 7, 11, you win and you stay in 'first turn'. – 2, 3, 12, you lose and you stay in 'first turn'– Otherwise, you go to follow-up (remembering the value of your
roll as 'the point'.• Followup:
– point: you win. (Go back to first turn.)– 7: you lose. (Go back to first turn.)
Computabilty jeanine.meyer@purchase.edu
Exercise
• Construct a FSM-like machine for the craps game.– Finishing states labeled win– Finishing states labeled lose
Computabilty jeanine.meyer@purchase.edu
Next class
• Monday is Labor Day• Thursday, I will be away for Rosh Hashanah.• I have identified a video lecture series with 4 ten-
minute segments and created questions. You should come to class and view and do as a group if you are not observing the holiday.– input using moodle Q&A forums.
• People observing the holiday should do on their own over BEFORE the next class on Monday, 9/13.
top related