# CMPS 3223 Theory of Computation

## Presentation on theme: "CMPS 3223 Theory of Computation"— Presentation transcript:

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

Finite State Machines & Regular Languages
Chapter 5B Pages 72 - ??

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 Omit

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)}

Epsilon Closure Example
eps(S) = {q3} eps(q2) = { } eps(q1) = {q2} eps(q3) = { } q1 a b q2 S b q3

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

Expanded Epsilon Closure
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} q1 a b q2 S b q3

An Example of eps eps(q0) = eps(q1) = eps(q2) = eps(q3) =

Algorithm Simulating a NDFSM But why do this?? Convert NDFSM to DFSM
ndfsmsimulate(M: NDFSM, w: string) = current-state = eps(s). While any input symbols in w remain to be read do: c = get-next-symbol(w). next-state = . For each state q in current-state do: For each state p such that (q, c, p)   do: next-state = next-state  eps(p). current-state = next-state. If current-state contains any states in A, accept. Else reject.

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”?

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}

An Algorithm for Constructing DFSM from NDFSM
Create a table with A row for each state [s] A column for each alphabet character [c] Fill in body of table with eps(s,c) If table contains any new combined states, create a new row for each & repeat step 2, until no new states are created. Draw DFSM from table starting with state S and using only accessible states Final states in NDFSM will be final in DFSM

Expanded Epsilon Closure
b S q1 q2 q3 q1 a b q2 S q2 b q3

Expanded Epsilon Closure
b S 1,2 2 1 ~ 3 q1 a b q2 q2 S b q3

Expanded Epsilon Closure
Are the machines equivalent? Is the new DFSM Efficient? Minimal? a b S 1,2 2 1 ~ 3 q1 a 12 12 b q2 S q2 a s b q3 2 2 b

An Example Compare our table method to that of the author’s on page 76+

Another Example L = {w  {a, b}* :
the fourth character from the end is a}

What Happens if the Original FSM is Already Deterministic ?

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.

Deterministic FSMs as Algorithms
L = {w  {a, b,c}* : w contains at most one b}

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 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

Time Complexity Explain!! Length of Program: |K|  (|| + 2)
Time required to analyze string w: O(|w|  ||) Explain!!

Simulator for DFSM Section 5.6
Could we develop one? What would it entail?

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?

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

Collapsing States 1 a b 2 The front part of the machine c 3 d 4
Do you agree that we could combine states 1 & 4 and also states 2 & 3?

Collapsing States 14 a d b The front part of the machine 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.

Another Collapse Example
12 a s 2 b q1 a b q2 a,b S q2 s 1 b q3

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 

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

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???

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.

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?

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.

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?

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.

Similar presentations