Top Banner
Costas Busch - RPI 1 Finite Automata
57

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

Dec 22, 2015

Download

Documents

Heather Farmer
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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: