S - Cs Mwsu - Department of Computer Science

advertisement
CMPS 3223
Theory of Computation
Automata, Computability, & Complexity
by Elaine Rich
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Slides provided by author
Slides edited for use by MSU Department of
Computer Science – R. Halverson
1
Finite State Machines
& Regular Languages
Chapter 5B
Pages 72 - ??
2
Sections to Omit from Study
• P. 73 – A simulation algorithm
• 5.4 – Will use method discussed in
class, not Theorem 5.3
• 5.5, 5.6 – Omit
• 5.7 – Omit
• 5.7.1 – Learn definitions only
• 5.8 - 5.12 - Omit
3
Epsilon Transitions ()
• An Epsilon Transition is a transition that
allows movement from one state to another
without consuming a character of input
string
• Epsilon Closure: eps(q) = set of states
accessible from state q by epsilons
• eps(q) = {p  K : (q, w) |-*M (p, w)}
4
Epsilon Closure Example
eps(S) = {q3}
eps(q1) = {q2}
eps(q2) = { }
eps(q3) = { }

q1
a
S
b
q2

b
q3
5
Epsilon Transitions ()
• Simple epsilon closure has limited use
• Need an expanded closure…
eps(q,a) = {p  K : (q, aw) |-*M (p, w)}
= set of all states accessible from
state q by consuming only character a
6
Expanded Epsilon Closure

q1
a
S
b
q2

b
eps(S,a) = {q1,q2,q3}
eps(q2,a) = { }
eps(q1,a) = { }
eps(q3,a) = { }
eps(S,b) = {q2}
eps(q2,b) = { }
eps(q1,b) = { }
eps(q3,b) = {q2}
q3
7
An Example of eps
eps(q0) =
eps(q1) =
eps(q2) =
eps(q3) =
8
Algorithm Simulating a NDFSM
But why do this??
Convert NDFSM to DFSM
ndfsmsimulate(M: NDFSM, w: string) =
1. current-state = eps(s).
2. While any input symbols in w remain to be read do:
1. c = get-next-symbol(w).
2. next-state = .
3. For each state q in current-state do:
For each state p such that (q, c, p)   do:
next-state = next-state  eps(p).
4. current-state = next-state.
3. If current-state contains any states in A, accept. Else reject.
9
5.4.4 Nondeterministic and
Deterministic FSMs
Clearly:
{Languages accepted by a DFSM} 
{Languages accepted by a NDFSM}
More interestingly:
Theorem:
For each NDFSM, there is an equivalent DFSM.
What is meant by “proof by construction”?
10
Nondeterministic to
Deterministic FSM
Theorem: For each NDFSM, there is an
equivalent DFSM.
Proof: By construction:
Given a NDFSM M = (K, , , s, A),
we construct M' = (K', , ', s', A'), where
K' = P(K)
s' = eps(s)
A' = {Q  K : Q  A  }
'(Q, a) =
{eps(p): p  K and
(q, a, p)   for some q  Q}
11
An Algorithm for Constructing
DFSM from NDFSM
1. Create a table with
1. A row for each state [s]
2. A column for each alphabet character [c]
2. Fill in body of table with eps(s,c)
3. If table contains any new combined states,
create a new row for each & repeat step 2,
until no new states are created.
4. Draw DFSM from table starting with state S
and using only accessible states
1. Final states in NDFSM will be final in DFSM
12
Expanded Epsilon Closure
a
b
S

q1
q1
q2
a
q3
S
b
q2q2

b
q3
13
Expanded Epsilon Closure

q1
a
S
b
q2
q2
a
b
S
1,2
2
1
~
~
2
~
~
3
~
2
1,2
~
~

b
q3
14
Expanded Epsilon Closure
Are the machines
equivalent? Is the new
DFSM Efficient?
Minimal?

q1
a
b
S
1,2
2
1
~
~
2
~
~
3
~
2
1,2
~
~
a
S
b
12
12
q2
q2
a

s
b
q3
b
22
15
An Example
Compare our table method to that of the author’s
on page 76+
16
Another Example
L = {w  {a, b}* :
the fourth character from the end is a}
17
What Happens if the Original FSM is
Already Deterministic ?
18
The Real Meaning of “Determinism”
Let M =
Is M deterministic?
An FSM is deterministic, in the most general
definition of determinism, if, for each input and
state, there is at most one possible transition.
• DFSMs are always deterministic. Why?
• NDFSMs can be deterministic (even with -transitions and implicit
dead states), but the formalism allows nondeterminism, in general.
• Determinism implies uniquely defined machine behavior.
19
Deterministic FSMs as Algorithms
L = {w  {a, b,c}* : w contains at most one b}
20
Deterministic FSMs as Algorithms
until accept or reject do:
S: s = get-next-symbol
if s = end-of-file then accept
else if s = a then go to S
else if s = b then go to T
T: s = get-next-symbol
if s = end-of-file then accept
else if s = a then go to T
else if s = b then reject
end
But you have to
write a new
program for
each different
machine
21
Time Complexity
• Length of Program: |K|  (|| + 2)
• Time required to analyze string w: O(|w|  ||)
• Explain!!
22
Simulator for DFSM
Section 5.6
• Could we develop one?
• What would it entail?
23
Simulator for DFSM
What would it entail?
2 Parts
• Read in the graph
– How to represent the DFSM (graph)?
– Build the table
• Read in the string
– How to systematically process a string?
24
Minimal DFSM
Section 5.7.1
• Minimal DFSM: a DFSM is minimal iff
there is no other DFSM which accepts the
same language and has fewer states
– Minimal refers to number of states
– Relates to equivalence classes of strings &
substrings
25
Collapsing States
1
a
b
The front
part of the
machine
2
c
3
d
4
Do you agree that we could combine states 1 & 4 and also states 2 & 3?
26
Collapsing States
14
a
d
The front
part of the
machine
b
c
23
You can ALSO collapse states at the initial end of the arrows.
BUT, we need a clear strategy for determining which states can be collapsed.
27
Another Collapse Example
12
a
s

q1
2
b
a
S
b
q2
q2
a,b
s

1
b
q3
28
Minimal DFSM
Section 5.7.1
• Theorem 5.5: There exists a unique
minimal DFSM for every regular language
– There is no smaller machine (# of states)
– If there is another machine with same
number of states, the machines are
equivalent except for names of states
• There is an algorithm for developing the
minimal DFSM.
– First convert to deterministic, remove

29
Algorithm Overview for Minimizing
• Group all states into 2 sets
–Accepting & Rejecting
–Process each set and split as
necessary
–Continue until no sets can be split
• A set of one state is finished
30
Building of Regular Languages
Fact: For every regular language, there
exists a DFSM.
Questions: If L & K are regular languages
• Is L U K a regular language?
• Is LK a regular language?
• Is L* a regular language?
• Is L+ a regular language?
Can you prove it???
31
Is L U K a regular language?
• Since L & M are a regular languages, there
exist DFSMs M(L) & M(K) that recognize L &
K.
• Each has a distinct Start State, SL & SK.
• Create a new state S & -transition from S to
SL & SK.
• The resulting machine is a NDFSM for L U K.
• THUS, L U K is a regular language.
32
Is LK a regular language?
• Since L & M are a regular languages, there exist
DFSMs M(L) & M(K) that recognize L & K.
• Each has a distinct Start State, SL & SK and
each has at least one final state F.
• Create -transition from all final states in L to SK.
• Convert all final states in L to non-final states
• The resulting machine is a NDFSM for LK.
• THUS, LK is a regular language.
• What if epsilon is in L or in K?
33
Is L* a regular language?
• Since L is a regular language, there exists
DFSM M(L) that recognizes L.
• M(L) has a distinct Start State, and at least one
final state F.
• If S is not a final state, make it a final state.
• Create -transition from each final state (except
S) to S. (or create a new final state as before)
• The resulting machine is a NDFSM for L*.
• THUS, L* is a regular language.
34
Is L+ a regular language?
• Since L is a regular language, there exists
DFSM M(L) that recognizes L.
• M(L) has a distinct Start State, and at least one
final state F.
• Create -transition from each final state to S.
• The resulting machine is a NDFSM for L+.
• THUS, L+ is a regular language.
• Why not make S a final state?
35
Homework for 5B
Page 123+
Problems 7 - 12
8 - can draw NDFSM & convert if you need to
9 – use method discussed in class
11 – Draw DFSM – minimize if necessary
See posted handout for minimization problems.
36
Download