Download - Finite-State Machines with No Output Longin Jan Latecki Temple University

Transcript
Page 1: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Finite-State Machines with No Output Longin Jan Latecki Temple University

Based on Slides by Elsa L Gunter, NJIT,

and by Costas Busch

Page 2: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Kleene closure

• A and B are subsets of V*, where V is a vocabularyThe concatenation of A and B isAB={xy: x string in A and y string in B}

• Example: A={0, 11} and B={1, 10, 110}AB={01,010,0110,111,1110,11110}

• What is BA?• A0={λ}

An+1=AnA for n=0,1,2,…

Page 3: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Let A be any subset of V*.Kleene closure of A, denoted by A*, is

0

*

k

kAA

Examples:If C={11}, C*={12n: n=0,1,2,…}

If B={0,1}, B*=V*.

Page 4: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Regular Expressions

Regular expressions

describe regular languages

Example:

describes the language

*)( cba

,...,,,,,*, bcaabcaabcabca

Page 5: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Recursive Definition,,

1

1

21

21

*

r

r

rr

rr

Are regular expressions

Primitive regular expressions:

2r1rGiven regular expressions and

Page 6: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Examples

)(* ccbaA regular expression:

baNot a regular expression:

Page 7: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Languages of Regular Expressions

: language of regular expression

Example

rL r

,...,,,,,*)( bcaabcaabcacbaL

Page 8: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Definition

For primitive regular expressions:

aaL

L

L

Page 9: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Definition (continued)

For regular expressions and

1r 2r

2121 rLrLrrL

2121 rLrLrrL

** 11 rLrL

11 rLrL

Page 10: Finite-State Machines with No Output Longin Jan Latecki  Temple University

ExampleRegular expression: *aba

*abaL *aLbaL *aLbaL *aLbLaL

*aba ,...,,,, aaaaaaba

,...,,,...,,, baababaaaaaa

Page 11: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example

Regular expression bbabar *

,...,,,,, bbbbaabbaabbarL

Page 12: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example

Regular expression bbbaar **

}0,:{ 22 mnbbarL mn

Page 13: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example

Regular expression *)10(00*)10( r

)(rL = { all strings with at least two consecutive 0 }

Page 14: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example

Regular expression )0(*)011( r

)(rL = { all strings without two consecutive 0 }

Page 15: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Equivalent Regular Expressions

• Definition:

• Regular expressions and

• are equivalent if

1r 2r

)()( 21 rLrL

Page 16: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example

L= { all strings without two consecutive 0 }

)0(*)011(1 r

)0(*1)0(**)011*1(2 r

LrLrL )()( 211r 2rand

are equivalentregular expr.

Page 17: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example: Lexing

• Regular expressions good for describing lexemes (words) in a programming language– Identifier = (a b … z A B … Z) (a

b … z A B … Z 0 1 … 9 _ ‘ )*

– Digit = (0 1 … 9)

Page 18: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Implementing Regular Expressions

• Regular expressions, regular grammars reasonable way to generates strings in language

• Not so good for recognizing when a string is in language

• Regular expressions: which option to choose, how many repetitions to make

• Answer: finite state automata

Page 19: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Finite (State) Automata

• A FA is similar to a compiler in that: – A compiler recognizes legal programs in some (source) language.

– A finite-state machine recognizes legal strings in some language.

• Example: Pascal Identifiers– sequences of one or more letters or digits,

starting with a letter:

letterletter | digit

S A

Page 20: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Finite Automaton

• Input

“Accept” or“Reject”

String

FiniteAutomaton

Output

Page 21: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Finite State Automata

• A finite state automation over an alphabet is illustrated by a state diagram:

– a directed graph– edges are labeled with elements of alphabet,– some nodes (or states), marked as final– one node marked as start state

Page 22: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Transition Graph

initialstate

accepting state

statetransition

0q 1q 2q 3q 4qa b b a

5q

a a bb

ba,

ba,

Page 23: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Initial Configuration

1q 2q 3q 4qa b b a

5q

a a bb

ba,

Input Stringa b b a

ba,

0q

Page 24: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Reading the Input

0q 1q 2q 3q 4qa b b a

5q

a a bb

ba,

a b b a

ba,

Page 25: Finite-State Machines with No Output Longin Jan Latecki  Temple University

0q 1q 2q 3q 4qa b b a

5q

a a bb

ba,

a b b a

ba,

Page 26: Finite-State Machines with No Output Longin Jan Latecki  Temple University

0q 1q 2q 3q 4qa b b a

5q

a a bb

ba,

a b b a

ba,

Page 27: Finite-State Machines with No Output Longin Jan Latecki  Temple University

0q 1q 2q 3q 4qa b b a

5q

a a bb

ba,

a b b a

ba,

Page 28: Finite-State Machines with No Output Longin Jan Latecki  Temple University

0q 1q 2q 3q 4qa b b a

accept

5q

a a bb

ba,

a b b a

ba,

Input finished

Page 29: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Rejection

1q 2q 3q 4qa b b a

5q

a a bb

ba,

a b a

ba,

0q

Page 30: Finite-State Machines with No Output Longin Jan Latecki  Temple University

0q 1q 2q 3q 4qa b b a

5q

a a bb

ba,

a b a

ba,

Page 31: Finite-State Machines with No Output Longin Jan Latecki  Temple University

0q 1q 2q 3q 4qa b b a

5q

a a bb

ba,

a b a

ba,

Page 32: Finite-State Machines with No Output Longin Jan Latecki  Temple University

0q 1q 2q 3q 4qa b b a

5q

a a bb

ba,

a b a

ba,

Page 33: Finite-State Machines with No Output Longin Jan Latecki  Temple University

0q 1q 2q 3q 4qa b b a

5q

a a bb

ba,

reject

a b a

ba,

Input finished

Page 34: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Another Rejection

1q 2q 3q 4qa b b a

5q

a a bb

ba,

ba,

0q

Page 35: Finite-State Machines with No Output Longin Jan Latecki  Temple University

1q 2q 3q 4qa b b a

5q

a a bb

ba,

ba,

0q

reject

Page 36: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Another Example

a

b ba,

ba,

0q 1q 2q

a ba

Page 37: Finite-State Machines with No Output Longin Jan Latecki  Temple University

a

b ba,

ba,

0q 1q 2q

a ba

Page 38: Finite-State Machines with No Output Longin Jan Latecki  Temple University

a

b ba,

ba,

0q 1q 2q

a ba

Page 39: Finite-State Machines with No Output Longin Jan Latecki  Temple University

a

b ba,

ba,

0q 1q 2q

a ba

Page 40: Finite-State Machines with No Output Longin Jan Latecki  Temple University

a

b ba,

ba,

0q 1q 2q

a ba

accept

Input finished

Page 41: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Rejection Example

a

b ba,

ba,

0q 1q 2q

ab b

Page 42: Finite-State Machines with No Output Longin Jan Latecki  Temple University

a

b ba,

ba,

0q 1q 2q

ab b

Page 43: Finite-State Machines with No Output Longin Jan Latecki  Temple University

a

b ba,

ba,

0q 1q 2q

ab b

Page 44: Finite-State Machines with No Output Longin Jan Latecki  Temple University

a

b ba,

ba,

0q 1q 2q

ab b

Page 45: Finite-State Machines with No Output Longin Jan Latecki  Temple University

a

b ba,

ba,

0q 1q 2q

ab b

reject

Input finished

Page 46: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Finite State Automata

• A finite state automation M=(S,Σ,δ,s0,F) consists of

• a finite set S of states,

• a finite input alphabet Σ,

• a state transition function δ: S x Σ S,

• an initial state s0,

• F subset of S that represent the final states.

Page 47: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Finite Automata

• Transition

s1 a s2

• Is read ‘In state s1 on input “a” go to state s2’

• If end of input– If in accepting state => accept– Otherwise => reject

• If no transition possible (got stuck) => reject

• FSA = Finite State Automata

Page 48: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Input Alphabet

0q 1q 2q 3q 4qa b b a

5q

a a bb

ba,

ba,

ba,

Page 49: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Set of States

Q

0q 1q 2q 3q 4qa b b a

5q

a a bb

ba,

543210 ,,,,, qqqqqqQ

ba,

Page 50: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Initial State

0q

1q 2q 3q 4qa b b a

5q

a a bb

ba,

ba,

0q

Page 51: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Set of Accepting States

F

0q 1q 2q 3qa b b a

5q

a a bb

ba,

4qF

ba,

4q

Page 52: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Transition Function

0q 1q 2q 3q 4qa b b a

5q

a a bb

ba,

SS :

ba,

Page 53: Finite-State Machines with No Output Longin Jan Latecki  Temple University

10 , qaq

2q 3q 4qa b b a

5q

a a bb

ba,

ba,

0q 1q

Page 54: Finite-State Machines with No Output Longin Jan Latecki  Temple University

50 , qbq

1q 2q 3q 4qa b b a

5q

a a bb

ba,

ba,

0q

Page 55: Finite-State Machines with No Output Longin Jan Latecki  Temple University

0q 1q 2q 3q 4qa b b a

5q

a a bb

ba,

ba,

32 , qbq

Page 56: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Transition Function

0q 1q 2q 3q 4qa b b a

5q

a a bb

ba,

a b

0q

1q

2q

3q

4q

5q

1q 5q

5q 2q

5q 3q

4q 5q

ba,5q5q5q5q

Page 57: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Exercise

Construct the state diagram for M=(S,Σ,δ,s0,F), where S={s0, s1, s2, s3}, Σ={0,1}, F={s0, s3}and the transition function δ :state Input: 0 Input: 1

s0 s0 s1

s1 s0 s2

s2 s0 s0

s3 s2 s1

Page 58: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Language accepted by FSA

• The language accepted by a FSA is the set of strings accepted by the FSA.

• in the language of the FSM shown below: x, tmp2, XyZzy, position27.

• not in the language of the FSM shown below: • 123, a?, 13apples.

letterletter | digit

S A

Page 59: Finite-State Machines with No Output Longin Jan Latecki  Temple University

59

Example:• FSA that accepts three letter English words that begin with

p and end with d or t.• Here we use the convenient notation of making the state

name match the input that has to be on the edge leading to that state.

p

ta

o

u

d

i

Page 60: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example

0q 1q 2q 3q 4qa b b a

5q

a a bb

ba,

ba,

abbaML M

accept

Page 61: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example

0q 1q 2q 3q 4qa b b a

5q

a a bb

ba,

ba,

abbaabML ,, M

acceptacceptaccept

Page 62: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example•

a

b ba,

ba,

0q 1q 2q

}0:{ nbaML n

accept trap state

Page 63: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Extended Transition Function

*

QQ *:*

0q 1q 2q 3q 4qa b b a

5q

a a bb

ba,

ba,

Page 64: Finite-State Machines with No Output Longin Jan Latecki  Temple University

20 ,* qabq

3q 4qa b b a

5q

a a bb

ba,

ba,

0q 1q 2q

Page 65: Finite-State Machines with No Output Longin Jan Latecki  Temple University

40 ,* qabbaq

0q 1q 2q 3q 4qa b b a

5q

a a bb

ba,

ba,

Page 66: Finite-State Machines with No Output Longin Jan Latecki  Temple University

50 ,* qabbbaaq

1q 2q 3q 4qa b b a

5q

a a bb

ba,

ba,

0q

Page 67: Finite-State Machines with No Output Longin Jan Latecki  Temple University

qwq ,*

Observation: if there is a walk from to with label then

q qw

q qw

q qkw 21

1 2 k

Page 68: Finite-State Machines with No Output Longin Jan Latecki  Temple University

50 ,* qabbbaaq

1q 2q 3q 4qa b b a

5q

a a bb

ba,

ba,

0q

Example: There is a walk from to with label

0qabbbaa

5q

Page 69: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Recursive Definition )),,(*(,*

,*

wqwq

qq

q qw1q

qq

qwq

),(

,*

1

1

1

,*

),(,*

qwq

qwq

)),,(*(,* wqwq

Page 70: Finite-State Machines with No Output Longin Jan Latecki  Temple University

0q 1q 2q 3q 4qa b b a

5q

a a bb

ba,

ba,

2

1

0

0

0

0

,

,,

,,,*

),,(*

,*

q

bq

baq

baq

baq

abq

Page 71: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Language Accepted by FAs

• For a FA

• Language accepted by :

FqQM ,,,, 0

M

FwqwML ,*:* 0

0q qw Fq

Page 72: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Observation

• Language rejected by :

FwqwML ,*:* 0

M

0q qw Fq

Page 73: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example

• ML = { all strings with prefix }ab

a b

ba,

0q 1q 2q

accept

ba,3q

ab

Page 74: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example

• ML = { all strings without

substring }001

0 00 001

1

0

1

10

0 1,0

Page 75: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example

*,:)( bawawaML

a

b

ba,

a

b

ba

0q 2q 3q

4q

Page 76: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Deterministic FSA’s

• If FSA has for every state exactly one edge for each letter in alphabet then FSA is deterministic

• In general FSA in non-deterministic.

• Deterministic FSA special kind of non-deterministic FSA

Page 77: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example FSA

• Regular expression: (0 1)* 1

• Deterministic FSA

0 1

1

0

Page 78: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example DFSA

• Regular expression: (0 1)* 1

• Accepts string 0 1 1 0 1

0 1

1

0

Page 79: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example DFSA

• Regular expression: (0 1)* 1

• Accepts string 0 1 1 0 1

0 1

1

0

Page 80: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example DFSA

• Regular expression: (0 1)* 1

• Accepts string 0 1 1 0 1

0 1

1

0

Page 81: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example DFSA

• Regular expression: (0 1)* 1

• Accepts string 0 1 1 0 1

0 1

1

0

Page 82: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example DFSA

• Regular expression: (0 1)* 1

• Accepts string 0 1 1 0 1

0 1

1

0

Page 83: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example DFSA

• Regular expression: (0 1)* 1

• Accepts string 0 1 1 0 1

0 1

1

0

Page 84: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example DFSA

• Regular expression: (0 1)* 1

• Accepts string 0 1 1 0 1

0 1

1

0

Page 85: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example NFSA

• Regular expression: (0 1)* 1

• Non-deterministic FSA

0

1

1

Page 86: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example NFSA

• Regular expression: (0 1)* 1

• Accepts string 0 1 1 0 1

0

1

1

• Regular expression: (0 + 1)* 1

• Accepts string 0 1 1 0 1

Page 87: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example NFSA

• Regular expression: (0 1)* 1

• Accepts string 0 1 1 0 1

0

1

1

• Regular expression: (0 + 1)* 1

• Accepts string 0 1 1 0 1

Page 88: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example NFSA

• Regular expression: (0 1)* 1

• Accepts string 0 1 1 0 1

0

1

1

• Regular expression: (0 + 1)* 1

• Accepts string 0 1 1 0 1

Page 89: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example NFSA

• Regular expression: (0 1)* 1

• Accepts string 0 1 1 0 1

• Guess

0

1

1

• Regular expression: (0 + 1)* 1

• Accepts string 0 1 1 0 1

Page 90: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example NFSA

• Regular expression: (0 1)* 1

• Accepts string 0 1 1 0 1

• Backtrack

0

1

1

• Regular expression: (0 + 1)* 1

• Accepts string 0 1 1 0 1

Page 91: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example NFSA

• Regular expression: (0 1)* 1

• Accepts string 0 1 1 0 1

• Guess again

0

1

1

• Regular expression: (0 + 1)* 1

• Accepts string 0 1 1 0 1

Page 92: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example NFSA

• Regular expression: (0 + 1)* 1

• Accepts string 0 1 1 0 1

• Guess

0

1

1

• Regular expression: (0 + 1)* 1

• Accepts string 0 1 1 0 1

Page 93: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example NFSA

• Regular expression: (0 1)* 1

• Accepts string 0 1 1 0 1

• Backtrack

0

1

1

• Regular expression: (0 + 1)* 1

• Accepts string 0 1 1 0 1

Page 94: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example NFSA

• Regular expression: (0 1)* 1

• Accepts string 0 1 1 0 1

• Guess again

0

1

1

• Regular expression: (0 + 1)* 1

• Accepts string 0 1 1 0 1

Page 95: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example NFSA

• Regular expression: (0 1)* 1

• Accepts string 0 1 1 0 1

0

1

1

• Regular expression: (0 + 1)* 1

• Accepts string 0 1 1 0 1

Page 96: Finite-State Machines with No Output Longin Jan Latecki  Temple University

Example NFSA

• Regular expression: (0 1)* 1

• Accepts string 0 1 1 0 1

• Guess (Hurray!!)

0

1

1

• Regular expression: (0 + 1)* 1

• Accepts string 0 1 1 0 1

Page 97: Finite-State Machines with No Output Longin Jan Latecki  Temple University

If a language L is recognized by a nondeterministic FSA, then L is recognized by a deterministic FSA

Example 9, p. 763

Page 98: Finite-State Machines with No Output Longin Jan Latecki  Temple University

How to Implement an FSA

A table-driven approach:• table:

– one row for each state in the machine, and

– one column for each possible character.

• Table[j][k] – which state to go to from state j on character k,

– an empty entry corresponds to the machine getting stuck.

Page 99: Finite-State Machines with No Output Longin Jan Latecki  Temple University

The table-driven program for a Deterministic FSA

state = S // S is the start state

repeat {k = next character from the input

if (k == EOF) // the end of inputif state is a final state then acceptelse reject

state = T[state,k]

if state = empty then reject // got stuck

}