FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0...

32
FINITE STATE MACHINES (AUTOMATA)

Transcript of FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0...

Page 1: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

FINITE STATE MACHINES

(AUTOMATA)

Page 2: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

Switch Example 1

Think about the On/Off button

Page 3: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

Off OnPush

Switch Example 1

The corresponding Automaton

Off On

Push

Push Push Push PushInput:

Page 4: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

Vending Machine Example 2

Vending machine dispenses Cola for $0.45

Page 5: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

Vending Machine Example 2

Input: D Q Q D

Input Accepted

is final state45

Page 6: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

00,1

00

1

1

0111 111

11

1

Example 3

0

1

The machine accepts a string if the process ends in a final state

Page 7: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

00,1

00

1

1

statesq1

final states (F)Input Symbols

Example 3

0

1

The machine accepts a string if the process ends in a final state states

q0 q2

q3start state (q0)

Page 8: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

An alphabet Σ is a finite set of symbols (in Ex3, Σ = {0,1})

A string over Σ is a finite sequence of elements of Σ (e.g. 0111)

Definitions

For a string s, |s| is the length of s

The unique string of length 0 will be denoted by λ and will be called the empty string

The reversal of a string u is denoted by uR.

Example: (banana)R = ananab

Page 9: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

The concatenation of two strings is the string resulting from putting them together from left to right. Given strings u and v, denote the concatenation by u .v, or just uv.

Example: jap . an = japan, QQ . DD = QQDD

Definitions

The + operator on strings

|u .v | = |u |+|v |

jap . an = japan, QQ . DD = QQDD

Q1: What’s the Java equivalent of concatenation?

Q2: Find a formula for |u .v |?

Page 10: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

If Σ is an alphabet,

Σ * denotes the set of all strings over Σ.

A language over Σ is a subset of Σ *

Definitions

A language over Σ is a subset of Σ *

i.e. a set of strings each consisting of sequences of symbols in Σ.

Page 11: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

Example1: in our vending machine we have

Σ = { Σ = { Σ = { Σ = { D, Q }}}}

ΣΣΣΣ∗ ∗ ∗ ∗ = {= {= {= {λλλλ,

D, Q,

DD, DQ, QD, QQ,

DDD, DDQ, DQD, DQQ, QDD, QDQ, QQD, QQQ,

DDDD, DDDQ, … }}}}

L = { { { { u∈∈∈∈ΣΣΣΣ∗ ∗ ∗ ∗ | u successfully vends }}}}

Examples

L = { { { { u∈∈∈∈ΣΣΣΣ∗ ∗ ∗ ∗ | u successfully vends }}}}

Example2: in our switch example we have

Σ = { Σ = { Σ = { Σ = { Push}}}}

ΣΣΣΣ∗ ∗ ∗ ∗ = {= {= {= {λλλλ,,,,

Push,

Push Push,

Push Push Push,

Push Push Push Push, … }}}}

L = { Pushn | n is odd }

Page 12: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

Q is the set of states

Σ is the alphabet

A finite automaton is a 5-tuple M = (Q, Σ, δδδδ, q0, F)

Definitions

δδδδ is the transition function

q0 ∈∈∈∈ Q is the start state

F ⊆⊆⊆⊆ Q is the set of final states

L(M) = the language of machine M= set of all strings machine M accepts

Page 13: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

δδδδ a b

q q qq2q0 q1

ab

b

a

Definitions

State Diagram and Table

q0 q0 q1

q1 q0 q2

q2 q2 q2

}{

},{

},,{

2

210

qF

ba

qqqQ

=

=

q2q0 q1

a

b

b

Page 14: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

FINITE STATE MACHINES

(AUTOMATA)

Deterministic Finite Automata (DFA)

Non-Deterministic Finite Automata with empty move (λ-NFA)

Non-Deterministic Finite Automata (NFA)

Page 15: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

A

B

C

E

HA

B

C

E

H

Deterministic & Nondeterministic

Deterministic Non-Deterministic

C

DF

G

E

G

I

C

DF

G

E

G

I

One choice Multi choice ���� Backtrack

Page 16: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

Deterministic & Nondeterministic

Deterministic Non-Deterministic

A C

B

A Ca

a

a

One choice Multi choice

A C

D

A Ca

a

From ONE state machine can go to another ONE state on one input

From ONE state machine can go to MANY states on one input

Page 17: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

DeterministicComputation

Non-DeterministicComputation

reject

accept or reject accept

reject

Page 18: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

DETERMINISTIC FINITE AUTOMATA

(DFA)

Page 19: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

Q is the set of states

Σ is the alphabet

δδδδ : Q ×××× Σ → Q is the transition function

A DFA is a 5-tuple M = (Q, Σ, δδδδ, q0, F)

Definitions

δδδδ : Q ×××× Σ → Q is the transition function

q0 ∈∈∈∈ Q is the start state

F ⊆⊆⊆⊆ Q is the set of accept states

L(M) = the language of machine M= set of all strings machine M accepts

Page 20: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

0

0

Example 1

0

Deterministic Finite Automata (DFA)

1

1

1 1 0 0 1

01

Input Rejected

is not final state

Page 21: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

0

1

0

1

01

Example 1

Deterministic Finite Automata (DFA)

1

Q: What kinds of bit-strings are accepted?

A: Bit-strings that represent binary even

numbers.

Page 22: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

q1 q2 q3

1 0

0 1Example 2

Deterministic Finite Automata (DFA)

01011010100100100100 010000010010λλλλ

0,1

reject

accept

accept

reject

reject

Page 23: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

0,1q0

L(M) = {0,1}*∅∅∅∅

Exercise

L(M) = {0,1}*∅∅∅∅

Page 24: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

q0 q1

0 0

1

1

Exercise

L(M) = { w | w has an even number of 1s}

Page 25: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

1 00,1

Build an automaton that accepts all and only those strings that contain 001

Exercise

q q00

1

q0 q001

0 0 1

Page 26: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

Strings over {a,b} containing even number of a’s and odd number of b’s.

Σ*

Even(a) Odd(a)

Even(b) Odd(b) Odd(b)Even(b)

Exercise

q0 = Even(a).Even(b)

q1 = Even(a).Odd(b) q3 = Odd(a).Odd(b)

q2 = Odd(a).Even(b)

bb

b

b

aaa

a

q0 q1

q2q3

Page 27: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

Σ*

valid prefix invalid prefix

End(a) End(b) End(c)

Strings over {a,b,c} that has the form (ab)*c

Exercise

q0 = End(b)

q1 = End(a) q3 = Error

q2 = End(c)

a

bb

a,b,c

a,cc

a,b,c

q0 q1

q2q3

Page 28: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

Design with a friend a machine that tells

us when a base-10 number is divisible by 3.

Exercise

What should your alphabet be?

How can you tell when a number is divisible

by 3?

Page 29: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

0 mod 3

1 mod 3

0,3,6,9

1,4,7

2,5,8

Answer

0 mod 3

2 mod 30,3,6,9

0,3,6,9

1,4,7

1,4,7

2,5,82,5,8

2,5,8

Page 30: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

0 mod 3 1 mod 3

0,3,6,9

0,3,6,9

1,4,7

2,5,8 2,5,8

2,5,8

Exercise

2 mod 3

0,3,6,9

0,3,6,9

1,4,71,4,7

2,5,8 2,5,8

Find the formal description of this automaton.

Page 31: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

Answer

Q = { 0 mod 3, 1 mod 3, 2 mod 3 } ( rename: {q0, q1, q2} )

Σ = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }

q0 = 0 mod 3

F = { 0 mod 3 }

?),(δ:Question

.)5,(δ,)3,(δ ,)7,(δ

,)2,(δ,)9,(δ ,)2,(δ

122221

010020

=

===

===

→Σ×

jq

qqqqqq

qqqqqq

QQ

i

3 mod )(),(δ jii qjq +=

Page 32: FINITE STATE MACHINES (AUTOMATA)web-ext.u-aizu.ac.jp/~hamada/AF/L3-FA.pdfState Diagram and Table 0 0 1 q1 q0 q2 q2 q2 q2 {} { , } { , , } 2 0 1 2 F q ab Q q q q = Σ= = a b FINITE

Carved watermelons