languages and finite automata - florida institute of ...ryan/cse4083/busch/class02.pdf · 2 a...

78
1 Languages

Upload: others

Post on 07-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

1

Languages

Page 2: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

2

A language is a set of strings

String: A sequence of letters

Examples: “cat”, “dog”, “house”, …

Defined over an alphabet:

Languages

zcba ,,,,

Page 3: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

3

Alphabets and Strings

We will use small alphabets:

Strings

abbaw

bbbaaav

abu

ba,

baaabbbaaba

baba

abba

ab

a

Page 4: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

4

String Operations

m

n

bbbv

aaaw

21

21

bbbaaa

abba

mn bbbaaawv 2121

Concatenation

abbabbbaaa

Page 5: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

5

12aaaw nR

naaaw 21 ababaaabbb

Reverse

bbbaaababa

Page 6: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

6

String Length

Length:

Examples:

naaaw 21

nw

1

2

4

a

aa

abba

Page 7: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

7

Recursive Definition of Length

For any letter:

For any string :

Example:

1a

1 wwawa

4

1111

111

11

1

a

ab

abbabba

Page 8: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

8

Length of Concatenation

Example:

vuuv

853

8

5,

3,

vuuv

aababaabuv

vabaabv

uaabu

Page 9: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

9

Proof of Concatenation Length

Claim:

Proof: By induction on the length

Induction basis:

From definition of length:

vuuv

v

1v

vuuuv 1

Page 10: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

10

Inductive hypothesis:

for

Inductive step: we will prove

for

vuuv

nv ,,2,1

1 nv

vuuv

Page 11: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

11

Inductive Step

Write , where

From definition of length:

From inductive hypothesis:

Thus:

wav 1, anw

1

1

wwa

uwuwauv

wuuw

vuwauwuuv 1

Page 12: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

12

Empty String

A string with no letters:

Observations:

abbaabbaabba

www

0

Page 13: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

13

Substring

Substring of string:

a subsequence of consecutive characters

String Substring

bbab

b

abba

ab

abbab

abbab

abbab

abbab

Page 14: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

14

Prefix and Suffix

Prefixes Suffixesabbab

abbab

abba

abb

ab

a

b

ab

bab

bbab

abbab uvw

prefix

suffix

Page 15: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

15

Another Operation

Example:

Definition:

n

n wwww

abbaabbaabba 2

0w

0abba

Page 16: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

16

The * Operation

: the set of all possible strings from

alphabet

*

,,,,,,,,,*

,

aabaaabbbaabaaba

ba

Page 17: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

17

The + Operation

: the set of all possible strings from

alphabet except

,,,,,,,,,*

,

aabaaabbbaabaaba

ba

*

,,,,,,,, aabaaabbbaabaaba

Page 18: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

18

Language

A language is any subset of

Example:

Languages:

*

,,,,,,,,*

,

aaabbbaabaaba

ba

},,,,,{

,,

aaaaaaabaababaabba

aabaaa

Page 19: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

19

Another Example

An infinite language }0:{ nbaL nn

aaaaabbbbb

aabb

ab

L Labb

Page 20: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

20

Operations on Languages

The usual set operations

Complement:

aaaaaabbbaaaaaba

ababbbaaaaaba

aaaabbabaabbbaaaaaba

,,,,

}{,,,

},,,{,,,

LL *

,,,,,,, aaabbabaabbaa

Page 21: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

21

Reverse

Definition:

Examples:

}:{ LwwL RR

ababbaabababaaabab R ,,,,

}0:{

}0:{

nabL

nbaL

nnR

nn

Page 22: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

22

Concatenation

Definition:

Example:

2121 ,: LyLxxyLL

baaabababaaabbaaaab

aabbaaba

,,,,,

,,,

Page 23: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

23

Another Operation

Definition:

Special case:

n

n LLLL

bbbbbababbaaabbabaaabaaa

babababa

,,,,,,,

,,,, 3

0

0

,, aaabbaa

L

Page 24: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

24

More Examples

}0:{ nbaL nn

}0,:{2 mnbabaL mmnn

2Laabbaaabbb

Page 25: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

25

Star-Closure (Kleene *)

Definition:

Example:

210* LLLL

,,,,

,,,,

,,

,

*,

abbbbabbaaabbaaa

bbbbbbaabbaa

bbabba

Page 26: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

26

Positive Closure

Definition:

*

21

L

LLL

,,,,

,,,,

,,

,

abbbbabbaaabbaaa

bbbbbbaabbaa

bba

bba

Page 27: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

27

Finite Automata

Page 28: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

28

Finite Automaton

Input

String

Output

String

Finite

Automaton

Page 29: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

29

Finite Accepter

Input

“Accept”

or

“Reject”

String

Finite

Automaton

Output

Page 30: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

30

Transition Graph

initial

state

final

state

“accept”statetransition

Abba -Finite Accepter

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

5q

a a bb

ba,

ba,

Page 31: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

31

Initial Configuration

1q 2q 3q 4qa b b a

5q

a a bb

ba,

Input Stringa b b a

ba,

0q

Page 32: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

32

Reading the Input

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

5q

a a bb

ba,

a b b a

ba,

Page 33: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

33

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

5q

a a bb

ba,

a b b a

ba,

Page 34: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

34

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

5q

a a bb

ba,

a b b a

ba,

Page 35: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

35

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

5q

a a bb

ba,

a b b a

ba,

Page 36: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

36

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

Output: “accept”

5q

a a bb

ba,

a b b a

ba,

Input finished

Page 37: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

37

Rejection

1q 2q 3q 4qa b b a

5q

a a bb

ba,

a b a

ba,

0q

Page 38: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

38

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

5q

a a bb

ba,

a b a

ba,

Page 39: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

39

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

5q

a a bb

ba,

a b a

ba,

Page 40: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

40

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

5q

a a bb

ba,

a b a

ba,

Page 41: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

41

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

5q

a a bb

ba,

Output:

“reject”

a b a

ba,

Input finished

Page 42: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

42

Another Example

a

b ba,

ba,

0q 1q 2q

a ba

Page 43: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

43

a

b ba,

ba,

0q 1q 2q

a ba

Page 44: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

44

a

b ba,

ba,

0q 1q 2q

a ba

Page 45: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

45

a

b ba,

ba,

0q 1q 2q

a ba

Page 46: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

46

a

b ba,

ba,

0q 1q 2q

a ba

Output: “accept”

Input finished

Page 47: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

47

Rejection

a

b ba,

ba,

0q 1q 2q

ab b

Page 48: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

48

a

b ba,

ba,

0q 1q 2q

ab b

Page 49: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

49

a

b ba,

ba,

0q 1q 2q

ab b

Page 50: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

50

a

b ba,

ba,

0q 1q 2q

ab b

Page 51: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

51

a

b ba,

ba,

0q 1q 2q

ab b

Output: “reject”

Input finished

Page 52: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

52

Formalities

Deterministic Finite Accepter (DFA)

FqQM ,,,, 0

Q

0q

F

: set of states

: input alphabet

: transition function

: initial state

: set of final states

Page 53: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

53

Input Alphabet

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

5q

a a bb

ba,

ba,

ba,

Page 54: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

54

Set of States Q

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

5q

a a bb

ba,

543210 ,,,,, qqqqqqQ

ba,

Page 55: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

55

Initial State 0q

1q 2q 3q 4qa b b a

5q

a a bb

ba,

ba,

0q

Page 56: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

56

Set of Final States F

0q 1q 2q 3qa b b a

5q

a a bb

ba,

4qF

ba,

4q

Page 57: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

57

Transition Function

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

5q

a a bb

ba,

QQ :

ba,

Page 58: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

58

10, qaq

2q 3q 4qa b b a

5q

a a bb

ba,

ba,

0q 1q

Page 59: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

59

50, qbq

1q 2q 3q 4qa b b a

5q

a a bb

ba,

ba,

0q

Page 60: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

60

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

5q

a a bb

ba,

ba,

32, qbq

Page 61: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

61

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

2q 3q

4q 5q

ba,5q5q5q5q

Page 62: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

62

Extended Transition Function *

QQ *:*

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

5q

a a bb

ba,

ba,

Page 63: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

63

20,* qabq

3q 4qa b b a

5q

a a bb

ba,

ba,

0q 1q 2q

Page 64: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

64

40,* qabbaq

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

5q

a a bb

ba,

ba,

Page 65: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

65

50,* qabbbaaq

1q 2q 3q 4qa b b a

5q

a a bb

ba,

ba,

0q

Page 66: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

66

50,* qabbbaaq

1q 2q 3q 4qa b b a

5q

a a bb

ba,

ba,

0q

Observation: There is a walk from to

with label0q

abbbaa1q

Page 67: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

67

Recursive Definition

)),,(*(,*

,*

awqwaq

qq

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

5q

a a bb

ba,

ba,

Page 68: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

68

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

5q

a a bb

ba,

ba,

2

1

0

0

0

0

,

,,

,,,*

),,(*

,*

qbq

baq

baq

baq

abq

Page 69: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

69

Languages Accepted by DFAs

Take DFA

Definition:

The language contains

all input strings accepted by

= { strings that drive to a final state}

M

ML

M

M ML

Page 70: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

70

Example

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

5q

a a bb

ba,

ba,

abbaML M

accept

Page 71: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

71

Another Example

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

5q

a a bb

ba,

ba,

abbaabML ,, M

acceptacceptaccept

Page 72: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

72

Formally

For a DFA

Language accepted by :

FqQM ,,,, 0

M

FwqwML ,*:* 0

alphabet transition

function

initial

state

final

states

Page 73: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

73

Observation

Language accepted by :

Language rejected by :

FwqwML ,*:* 0

M

FwqwML ,*:* 0

M

Page 74: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

74

More Examples

a

b ba,

ba,

0q 1q 2q

}0:{ nbaML n

accept trap state

Page 75: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

75

ML = { all substrings with prefix }ab

a b

ba,

0q 1q 2q

accept

ba,3q

ab

Page 76: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

76

ML = { all strings without

substring }001

0 00 001

1

0

1

10

0 1,0

Page 77: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

77

Regular Languages

A language is regular if there is

a DFA such that

All regular languages form a language family

LM MLL

Page 78: Languages and Finite Automata - Florida Institute of ...ryan/cse4083/busch/class02.pdf · 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”,

78

Example

The language

is regular: *,: bawawaL

a

b

ba,

a

b

ba

0q 2q 3q

4q