costas busch - rpi1 finite automata. costas busch - rpi2 finite automaton input string output string...

57
Costas Busch - RPI 1 Finite Automata

Upload: heather-farmer

Post on 22-Dec-2015

229 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 1

Finite Automata

Page 2: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 2

Finite Automaton

Input

String

Output

String

FiniteAutomaton

Page 3: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 3

Finite Accepter

Input

“Accept” or“Reject”

String

FiniteAutomaton

Output

Page 4: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 4

Transition Graph

initialstate

final state“accept”state

transition

Abba -Finite Accepter

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

5q

a a bb

ba,

ba,

Page 5: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 5

Initial Configuration

1q 2q 3q 4qa b b a

5q

a a bb

ba,

Input Stringa b b a

ba,

0q

Page 6: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 6

Reading the Input

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

5q

a a bb

ba,

a b b a

ba,

Page 7: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 7

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

5q

a a bb

ba,

a b b a

ba,

Page 8: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 8

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

5q

a a bb

ba,

a b b a

ba,

Page 9: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 9

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

5q

a a bb

ba,

a b b a

ba,

Page 10: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 10

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

Output: “accept”

5q

a a bb

ba,

a b b a

ba,

Input finished

Page 11: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 11

Rejection

1q 2q 3q 4qa b b a

5q

a a bb

ba,

a b a

ba,

0q

Page 12: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 12

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

5q

a a bb

ba,

a b a

ba,

Page 13: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 13

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

5q

a a bb

ba,

a b a

ba,

Page 14: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 14

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

5q

a a bb

ba,

a b a

ba,

Page 15: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 15

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

5q

a a bb

ba,

Output:“reject”

a b a

ba,

Input finished

Page 16: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 16

Another Rejection

1q 2q 3q 4qa b b a

5q

a a bb

ba,

ba,

0q

Page 17: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 17

1q 2q 3q 4qa b b a

5q

a a bb

ba,

ba,

0q

Output:“reject”

Page 18: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 18

Another Example

a

b ba,

ba,

0q 1q 2q

a ba

Page 19: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 19

a

b ba,

ba,

0q 1q 2q

a ba

Page 20: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 20

a

b ba,

ba,

0q 1q 2q

a ba

Page 21: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 21

a

b ba,

ba,

0q 1q 2q

a ba

Page 22: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 22

a

b ba,

ba,

0q 1q 2q

a ba

Output: “accept”

Input finished

Page 23: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 23

Rejection

a

b ba,

ba,

0q 1q 2q

ab b

Page 24: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 24

a

b ba,

ba,

0q 1q 2q

ab b

Page 25: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 25

a

b ba,

ba,

0q 1q 2q

ab b

Page 26: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 26

a

b ba,

ba,

0q 1q 2q

ab b

Page 27: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 27

a

b ba,

ba,

0q 1q 2q

ab b

Output: “reject”

Input finished

Page 28: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 28

FormalitiesDeterministic Finite Accepter (DFA)

FqQM ,,,, 0

Q

0q

F

: set of states

: input alphabet

: transition function

: initial state

: set of final states

Page 29: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 29

Input Alphabet

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

5q

a a bb

ba,

ba,

ba,

Page 30: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 30

Set of States

Q

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

5q

a a bb

ba,

543210 ,,,,, qqqqqqQ

ba,

Page 31: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 31

Initial State

0q

1q 2q 3q 4qa b b a

5q

a a bb

ba,

ba,

0q

Page 32: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 32

Set of Final States

F

0q 1q 2q 3qa b b a

5q

a a bb

ba,

4qF

ba,

4q

Page 33: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 33

Transition Function

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

5q

a a bb

ba,

QQ :

ba,

Page 34: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 34

10 , qaq

2q 3q 4qa b b a

5q

a a bb

ba,

ba,

0q 1q

Page 35: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 35

50 , qbq

1q 2q 3q 4qa b b a

5q

a a bb

ba,

ba,

0q

Page 36: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 36

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

5q

a a bb

ba,

ba,

32 , qbq

Page 37: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 37

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 38: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 38

Extended Transition Function

*

QQ *:*

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

5q

a a bb

ba,

ba,

Page 39: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 39

20 ,* qabq

3q 4qa b b a

5q

a a bb

ba,

ba,

0q 1q 2q

Page 40: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 40

40 ,* qabbaq

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

5q

a a bb

ba,

ba,

Page 41: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 41

50 ,* qabbbaaq

1q 2q 3q 4qa b b a

5q

a a bb

ba,

ba,

0q

Page 42: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 42

qwq ,*

Observation: There is a walk from to with label

q qw

q qw

q qkw 21

1 2 k

Page 43: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 43

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 44: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 44

Recursive Definition )),,(*(,*

,*

wqwq

qq

q qw1q

qq

qwq

),(

,*

1

1

1

,*

),(,*

qwq

qwq

)),,(*(,* wqwq

Page 45: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 45

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 46: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 46

Languages Accepted by DFAsTake DFA

Definition:The language contains all input strings accepted by

= { strings that drive to a final state}

M

MLM

M ML

Page 47: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 47

Example

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

5q

a a bb

ba,

ba,

abbaML M

accept

Page 48: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 48

Another Example

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

5q

a a bb

ba,

ba,

abbaabML ,, M

acceptacceptaccept

Page 49: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 49

Formally

For a DFA

Language accepted by :

FqQM ,,,, 0

M

FwqwML ,*:* 0

0q qw Fq

Page 50: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 50

ObservationLanguage rejected by :

FwqwML ,*:* 0

M

0q qw Fq

Page 51: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 51

More Examples

a

b ba,

ba,

0q 1q 2q

}0:{ nbaML n

accept trap state

Page 52: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 52

ML = { all strings with prefix }ab

a b

ba,

0q 1q 2q

accept

ba,3q

ab

Page 53: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 53

ML = { all strings without substring }001

0 00 001

1

0

1

10

0 1,0

Page 54: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 54

Regular Languages

A language is regular if there is a DFA such that

All regular languages form a language family

LM MLL

Page 55: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 55

abba abbaab,, }0:{ nban

{ all strings with prefix }ab

{ all strings with prefix }ab

{ all strings without substring }001

Examples of regular languages:

There exist automata that accept theseLanguages (see previous slides).

Page 56: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 56

Another ExampleThe languageis regular:

*,: bawawaL

a

b

ba,

a

b

ba

0q 2q 3q

4q

MLL

Page 57: Costas Busch - RPI1 Finite Automata. Costas Busch - RPI2 Finite Automaton Input String Output String Finite Automaton

Costas Busch - RPI 57

There exist languages which are not Regular:

}0:{ nbaL nn

There is no DFA that accepts such a language

(we will prove this later in the class)

Example: