Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of...
Transcript of Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of...
![Page 1: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/1.jpg)
Finite AutomataPart One
![Page 2: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/2.jpg)
Computability Theory
![Page 3: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/3.jpg)
What problems can we solve with a computer?
What kind of computer?
![Page 4: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/4.jpg)
Computers are Messy
http://www.intel.com/design/intarch/prodbref/272713.htm
![Page 5: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/5.jpg)
We need a simpler way of discussing computing machines.
![Page 6: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/6.jpg)
An automaton (plural: automata) is a mathematical model of a computing device.
![Page 7: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/7.jpg)
Why Build Models?
● Mathematical simplicity.● It is significantly easier to manipulate our
abstract models of computers than it is to manipulate actual computers.
● Intellectual robustness.● If we pick our models correctly, we can make
broad, sweeping claims about huge classes of real computers by arguing that they're just special cases of our more general models.
![Page 8: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/8.jpg)
Why Build Models?
● The models of computation we will explore in this class correspond to different conceptions of what a computer could do.
● Finite automata (next two weeks) are an abstraction of computers with finite resource constraints.● Provide upper bounds for the computing machines
that we can actually build.
● Turing machines (later) are an abstraction of computers with unbounded resources.● Provide upper bounds for what we could ever hope to
accomplish.
![Page 9: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/9.jpg)
What problems can we solve with a computer?
What is a “problem?”
![Page 10: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/10.jpg)
Problems with Problems
● Before we can talk about what problems we can solve, we need a formal definition of a “problem.”
● We want a definition that● corresponds to the problems we want to solve,● captures a large class of problems, and● is mathematically simple to reason about.
● No one definition has all three properties.
![Page 11: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/11.jpg)
Formal Language Theory
![Page 12: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/12.jpg)
Strings
● An alphabet is a finite set of symbols called characters.
● Typically, we use the symbol Σ to refer to an alphabet.
● A string over an alphabet Σ is a finite sequence of characters drawn from Σ.
● Example: If Σ = {a, b}, some valid strings over Σ include
a
aabaaabbabaaabaaaabbb
abbababba
● The empty string contains no characters and is denoted ε.
![Page 13: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/13.jpg)
Languages
● A formal language is a set of strings.● We say that L is a language over Σ if it is a
set of strings over Σ.● Example: The language of palindromes over
Σ = {a, b, c} is the set
{ε, a, b, c, aa, bb, cc, aaa, aba, aca, bab, … }
● The set of all strings composed from letters in Σ is denoted Σ*.
● Formally, we say that L is a language over Σ if L ⊆ Σ*.
![Page 14: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/14.jpg)
The Model
● Fundamental Question: Given an alphabet Σ and a language L over Σ, in what cases can we build an automaton that determines which strings are in L?
● The answer depends on both the choice of L and the choice of automaton.
● The entire rest of the quarter will be dedicated to answering these questions.
![Page 15: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/15.jpg)
To Summarize
● An automaton is an idealized mathematical computing machine.
● A language is a set of strings.● The automata we will study will accept as
input a string and (attempt to) determine whether that string is contained in a particular language.
![Page 16: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/16.jpg)
What problems can we solve with a computer?
![Page 17: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/17.jpg)
Finite Automata
![Page 18: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/18.jpg)
A finite automaton is a simple type of mathematical machine for determining
whether a string is contained within somelanguage.
![Page 19: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/19.jpg)
Each finite automaton consists of a setof states connected by transitions.
![Page 20: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/20.jpg)
A Simple Finite Automaton
q0 q1
q2q3
0
1
0
1
0
1 1
0
start
Each circle represents a state of the automaton.
Each circle represents a state of the automaton.
![Page 21: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/21.jpg)
A Simple Finite Automaton
q0 q1
q2q3
0
1
0
1
0
1 1
0
start
q2
One special state is designated as the
start state.
One special state is designated as the
start state.
q1
q3 q2
![Page 22: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/22.jpg)
A Simple Finite Automaton
q0 q1
q2q3
0
1
0
1
0
1 1
0
start
q2
0 1 0 1 1 0
The automaton is run on an input
string and answers “yes” or “no.”
The automaton is run on an input
string and answers “yes” or “no.”
0 1 0 1 1 0
q1
q3 q2
![Page 23: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/23.jpg)
A Simple Finite Automaton
q0 q1
q2q3
0
1
0
1
0
1 1
0
start
q2
0 1 0 1 1 0
The automaton can be in one state at a time. It begins in the start state.
The automaton can be in one state at a time. It begins in the start state.
0 1 0 1 1 0
q1
q2
![Page 24: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/24.jpg)
A Simple Finite Automaton
q0 q1
q2q3
0
1
0
1
0
1 1
0
start
q2
0 1 0 1 1 00 1 0 1 1 0
The automaton now begins processing characters in the
order in which they appear.
The automaton now begins processing characters in the
order in which they appear.
q1
q2
![Page 25: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/25.jpg)
A Simple Finite Automaton
q0 q1
q2q3
0
1
0
1
0
1 1
0
start
q2
0 1 0 1 1 00 1 0 1 1 0
Each arrow in this diagram represents a transition. The automaton always
follows the transition corresponding to the current symbol being
read.
Each arrow in this diagram represents a transition. The automaton always
follows the transition corresponding to the current symbol being
read.
q1
q3
![Page 26: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/26.jpg)
A Simple Finite Automaton
q0 q1
q2q3
0
1
0
1
0
1 1
0
start
q2
0 1 0 1 1 0
After transitioning, the automaton
considers the next symbol in the
input.
After transitioning, the automaton
considers the next symbol in the
input.
0 1 0 1 1 0
q3 q2
![Page 27: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/27.jpg)
A Simple Finite Automaton
q0 q1
q2q3
0
1
0
1
0
1 1
0
start
0 1 0 1 1 0
Now that the automaton has
looked at all this input, it can decide whether to say “yes”
or “no.”
Now that the automaton has
looked at all this input, it can decide whether to say “yes”
or “no.”
The double circle indicates that this
state is an accepting state, so the automaton outputs “yes.”
The double circle indicates that this
state is an accepting state, so the automaton outputs “yes.”
![Page 28: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/28.jpg)
A Simple Finite Automaton
q0 q1
q2q3
0
1
0
1
0
1 1
0
start
q2
1 0 1 0 0 0
q1
q3 q2
![Page 29: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/29.jpg)
A Simple Finite Automaton
q0 q1
q2q3
0
1
0
1
0
1 1
0
start
q2
1 0 1 0 0 0
This state is not an accepting state, so the automaton
says “no.”
This state is not an accepting state, so the automaton
says “no.”
q1
q3 q2
![Page 30: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/30.jpg)
A Simple Finite Automaton
q0 q1
q3
0
1
0
1
0
1 1
0
start
q2
1 1 0 1 1 1 0 0
Try it yourself! Does the
automaton accept (say yes) or
reject (say no)?
Try it yourself! Does the
automaton accept (say yes) or
reject (say no)?
![Page 31: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/31.jpg)
The Story So Far
● A finite automaton is a collection of states joined by transitions.
● Some state is designated as the start state.
● Some states are designated as accepting states.
● The automaton processes a string by beginning in the start state and following the indicated transitions.
● If the automaton ends in an accepting state, it accepts the input.
● Otherwise, the automaton rejects the input.
![Page 32: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/32.jpg)
Time-Out For Announcements!
![Page 33: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/33.jpg)
Problem Set Logistics
● Problem Set Four checkpoint was due at 12:50PM today.
● We'll return graded PS3's and graded PS4 checkpoints by Wednesday at 12:50PM.
● Remainder of PS4 is due a week from today at the start of class.
![Page 34: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/34.jpg)
Midterm Logistics
● Midterm is this Thursday from 7PM – 10PM. Locations divvied up by last (family) name:● Aba – Mes: Go to Annenberg Auditorium.● Mex – Zoc: Go to Cubberly Auditorium.
● Closed-book, closed-computer, open one double-sided 8.5” × 11” sheet of notes.
● Covers material up through and including graphs (Lectures 00 – 08) and material from PS1 – PS3.
![Page 35: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/35.jpg)
Practice Midterm Exam
● Practice midterm exam is tonight from 7PM – 10PM in Annenberg Auditorium.
● Highly recommended!● Can't make it? No worries! We'll post the
practice exam on the course website.● Solutions will be available at the practice
exam and in hardcopy in the solutions filing cabinet.
![Page 36: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/36.jpg)
Even More Practice Problems
● We've released a new set of practice problems (based on the popular topics from Google Moderator) on the course website.
● Solutions will be released on Wednesday.● Solutions to the practice problems from
Friday are now available in hardcopy.
![Page 37: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/37.jpg)
Your Questions
![Page 38: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/38.jpg)
“What would be the most useful study strategy for our midterm? Crank through a ton of practice problems? Read the course reader? Review the lecture slides? I know "all of the above" is best, but if we had to
prioritize?”
My recommendation is to quickly figure out what your strengths and weaknesses are and focus your studying efforts on the areas in which you need improvement. Take the practice exam to identify where you could use some extra practice. Review the slides to make sure you get the definitions, then do lots of practice problems. If you need more
practice, read the course notes.
My recommendation is to quickly figure out what your strengths and weaknesses are and focus your studying efforts on the areas in which you need improvement. Take the practice exam to identify where you could use some extra practice. Review the slides to make sure you get the definitions, then do lots of practice problems. If you need more
practice, read the course notes.
![Page 39: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/39.jpg)
“What sorts of proof-formatting, formulas, definitions, etc. would you suggest we put
on our cheat-sheet for the midterm Thursday?”
Everyone's different. Again, figure out what your own strengths and weaknesses are. Is there something you keep forgetting? Are there terms that you get confused? Are
there particular proofs you like that you're worried you're going to forget? Put that kind of information on your notes sheet.
Everyone's different. Again, figure out what your own strengths and weaknesses are. Is there something you keep forgetting? Are there terms that you get confused? Are
there particular proofs you like that you're worried you're going to forget? Put that kind of information on your notes sheet.
![Page 40: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/40.jpg)
“Why are the answers to problem sets and checkpoint problems only available in hard copy? There have been many times when I know I and many others could have found the answers useful but didn't get a copy in
lecture and couldn't make it to Gates.”
This one has a long answer.
This one has a long answer.
![Page 41: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/41.jpg)
“why”
why notwhy not
![Page 42: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/42.jpg)
Back to CS103!
![Page 43: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/43.jpg)
A finite automaton does not accept assoon as it enters an accepting state.
A finite automaton accepts if it ends inan accepting state.
![Page 44: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/44.jpg)
What Does This Accept?
q0
q2
0
start
q4
0
0
q1
q3
1
1
1
0
1
0 1
No matter where we start in the automaton, after seeing two 1's, we
end up in accepting state q3.
No matter where we start in the automaton, after seeing two 1's, we
end up in accepting state q3.
![Page 45: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/45.jpg)
What Does This Accept?
q0
q2
0
start
q4
0
0
q1
q3
1
1
1
0
1
0 1
No matter where we start in the automaton, after seeing two 0's, we end up in accepting
state q5.
No matter where we start in the automaton, after seeing two 0's, we end up in accepting
state q5.
![Page 46: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/46.jpg)
What Does This Accept?
q0
q2
0
start
q4
0
0
q1
q3
1
1
1
0
1
0 1
This automaton accepts a string iff the string ends in 00
or 11.
This automaton accepts a string iff the string ends in 00
or 11.
![Page 47: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/47.jpg)
The language of an automaton is the set of strings that it accepts.
If D is an automaton, we denote the language of D as ℒ(D).
ℒ(D) = { w ∈ Σ* | D accepts w }
![Page 48: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/48.jpg)
A Small Problem
q0
q1
0
start
q2 1
0 0 1 1 0
![Page 49: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/49.jpg)
Another Small Problem
q0
q2
0, 1start
0 0 0
q1
0
0, 1
0, 1
![Page 50: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/50.jpg)
The Need for Formalism
● In order to reason about the limits of what finite automata can and cannot do, we need to formally specify their behavior in all cases.
● All of the following need to be defined or disallowed:● What happens if there is no transition out of
a state on some input?● What happens if there are multiple
transitions out of a state on some input?
![Page 51: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/51.jpg)
DFAs
● A DFA is a● Deterministic● Finite● Automaton
● DFAs are the simplest type of automaton that we will see in this course.
![Page 52: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/52.jpg)
DFAs, Informally
● A DFA is defined relative to some alphabet Σ.
● For each state in the DFA, there must be exactly one transition defined for each symbol in Σ.● This is the “deterministic” part of DFA.
● There is a unique start state.● There are zero or more accepting states.
![Page 53: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/53.jpg)
Is this a DFA over {0, 1}?
q0 q1
q2q3
0
1
0
1
0
1 1
0
start
q2
![Page 54: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/54.jpg)
Is this a DFA over {0, 1}?
q0
q2
0
start
q4
0
0
q1
q3
1
1
1
0
1
0 1
![Page 55: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/55.jpg)
Is this a DFA over {0, 1}?
q0
q1
0
start
q2 1
0
![Page 56: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/56.jpg)
Is this a DFA over {0, 1}?
q0 q10, 1start
q3
0, 10, 1
q20, 1
![Page 57: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/57.jpg)
Is this a DFA over {0, 1}?
q0
q2
0, 1startq1
0
0, 1
0, 1
![Page 58: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/58.jpg)
Designing DFAs
● At each point in its execution, the DFA can only remember what state it is in.
● DFA Design Tip: Build each state to correspond to some piece of information you need to remember.● Each state acts as a “memento” of what
you're supposed to do next.● Only finitely many different states ≈ only
finitely many different things the machine can remember.
![Page 59: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/59.jpg)
Recognizing Languages with DFAs
L = { w ∈ {0, 1}* | w contains 00 as a substring }
q0
startq1 q2
0 0
1
1
Σ
![Page 60: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/60.jpg)
Recognizing Languages with DFAs
L = { w ∈ {0, 1}*| every other character of w, starting with the first character, is 0 }
q0
startq1
q2
0
1 Σ
Σ
q0 q1
![Page 61: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/61.jpg)
More Elaborate DFAsL = { w | w is a C-style comment }
Suppose the alphabet is
Σ = { a, *, / }
Try designing a DFA for comments!
Some test cases:
ACCEPTED REJECTED /*a*/ /**
/**/ /**/a/*aa*/ /***/ aaa/**/ /*aaa*aaa*/ /*/
![Page 62: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/62.jpg)
More Elaborate DFAsL = { w | w is a C-style comment }
q1
startq2
* q3
*q4
/q0/
q5
a, / *a
a, *
/, a
Σ
Σ
![Page 63: Finite Automata - Stanford UniversityFinite automata (next two weeks) are an abstraction of computers with finite resource constraints. Provide upper bounds for the computing machines](https://reader033.fdocuments.us/reader033/viewer/2022042014/5e7348d9e79f1050f61464fe/html5/thumbnails/63.jpg)
Next Time
● Regular Languages● What is the expressive power of DFAs?
● NFAs● Automata with Magic Superpowers!
● Nondeterminism● Nondeterminisic computation.● Intuitions for nondeterminism.● Programming with nondeterminism.