[ppt]languages and finite automata · web viewtitle languages and finite automata author costas...

79
1 Linguagens

Upload: dotu

Post on 26-May-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

1

Linguagens

2

Um alfabeto é um cojunto finito de símbolos

String (ou palavra): sequência de símbolos

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

Definida sobre um alfabeto:

Linguagens

zcba ,,,,

zcba ,,,,

3

Uma linguagem é um conjunto de strings sobre um determinado alfabeto

: Conjunto de todos os strings sobre o alfabeto

Linguagens

*

4

Alfabeto e StringsVamos usar alfabetos pequenos:

Strings

abbawbbbaaavabu

ba,

baaabbbaabababaabbaaba

5

Operações sobre Strings

m

nbbbvaaaw

21

21

bbbaaaabba

mn bbbaaawv 2121

Concatenação

abbabbbaaa

6

12aaaw nR

naaaw 21 ababaaabbb

Reverso

bbbaaababa

7

Comprimento de um String

Comprimento:

Exemplos:

naaaw 21

nw

124

aaaabba

8

Definição Recursiva de Comprimento

Para o string vazio:

Para qualquer string :

Exemplo:

9

Comprimento de Concatenação

Exemplo:

vuuv

8538

5,3,

vuuvaababaabuv

vabaabvuaabu

10

Prova de Comprimento de Concatenação

afirmação:

Prova: Indução Caso base:

11

Hipótese de Indução:

para

Passo Indutivo: vamos provar para

vuuv

vuuv

12

Passo IndutivoSeja onde

Da definição de length:

Da hipótese de indução:

Portanto:

13

String vazioString sem nenhuma letra:

Observações:

abbaabbaabba

www

0

14

SubstringSubstring de um string: subsequência de caracteres consecutivos

String Substring

bbabbabbaab

abbababbababbababbab

15

Prefixo e Sufixo

Prefixos Sufixosabbab

abbababbaabbaba

babbabbbababbab uvw

prefixosufixo

16

Outra Operação

Exemplo:

Definição:

n

n wwww

abbaabbaabba 2

0w

0abba

17

A Operação * : o conjunto de todos os possíveis strings

do alfabeto

*

,,,,,,,,,*,

aabaaabbbaabaababa

18

A Operação + : o conjunto de todos os possíveis strings do alfabeto exceto

,,,,,,,,,*,

aabaaabbbaabaababa

,,,,,,,, aabaaabbbaabaaba

19

LinguagemUma linguagem é qualquer subconjunto de

Exemplo:

Linguagens:

*

,,,,,,,,*,

aaabbbaabaababa

},,,,,{,,

aaaaaaabaababaabbaaabaaa

20

Outro Exemplo

Uma linguagem infinita }0:{ nbaL nn

aaaaabbbbbaabbab

L Labb

21

Operações sobre LinguagensOperações usuais sobre conjuntos

Complemento:

aaaaaabbbaaaaaba

ababbbaaaaabaaaaabbabaabbbaaaaaba

,,,,}{,,,

},,,{,,,

LL *

,,,,,,, aaabbabaabbaa

22

Reverso

Definição:

Exemplos:

}:{ LwwL RR

ababbaabababaaabab R ,,,,

}0:{

}0:{

nabL

nbaL

nnR

nn

23

Concatenação

Definição:

Exemplo:

2121 ,: LyLxxyLL

baaabababaaabbaaaab

aabbaaba

,,,,,

,,,

24

Outra OperaçãoDefinição:

Caso epecial:

n

n LLLL

bbbbbababbaaabbabaaabaaa

babababa,,,,,,,

,,,, 3

0

0

,, aaabbaa

L

25

Mais Exemplos

}0:{ nbaL nn

}0,:{2 mnbabaL mmnn

2Laabbaaabbb

26

Fecho de Kleene *

Definição:

Exemplo:

210* LLLL

,,,,,,,,

,,,

*,

abbbbabbaaabbaaabbbbbbaabbaa

bbabba

27

Fecho Positivo

Definição:

*

21

LLLL

,,,,,,,,

,,,

abbbbabbaaabbaaabbbbbbaabbaa

bbabba

28

Autômato Finito

29

Autômato Finito

Entrada

String

Saída

String

AutômatoFinito

30

Aceitador Finito

Entrada

“Aceita” ou“Rejeita”

String

AutômatoFinito

Saída

31

Grafo deTransição

estadoinicial

estado final “aceita”estado

transição

Autômato Finito para abba

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

5q

a a bb

ba,

ba,

32

Configuração Inicial

1q 2q 3q 4qa b b a

5q

a a bb

ba,

String de Entradaa b b a

ba,0q

33

Lendo a Entrada

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

5q

a a bb

ba,

a b b a

ba,

34

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

5q

a a bb

ba,

a b b a

ba,

35

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

5q

a a bb

ba,

a b b a

ba,

36

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

5q

a a bb

ba,

a b b a

ba,

37

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

Saída: “aceita”

5q

a a bb

ba,

a b b a

ba,

38

Rejeição

1q 2q 3q 4qa b b a

5q

a a bb

ba,

a b a

ba,0q

39

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

5q

a a bb

ba,

a b a

ba,

40

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

5q

a a bb

ba,

a b a

ba,

41

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

5q

a a bb

ba,

a b a

ba,

42

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

5q

a a bb

ba,Saída:“rejeita”

a b a

ba,

43

Outro Exemplo

a

b ba,

ba,

0q 1q 2q

a ba

44

a

b ba,

ba,

0q 1q 2q

a ba

45

a

b ba,

ba,

0q 1q 2q

a ba

46

a

b ba,

ba,

0q 1q 2q

a ba

47

a

b ba,

ba,

0q 1q 2q

a ba

Saída: “aceita”

48

Rejeição

a

b ba,

ba,

0q 1q 2q

ab b

49

a

b ba,

ba,

0q 1q 2q

ab b

50

a

b ba,

ba,

0q 1q 2q

ab b

51

a

b ba,

ba,

0q 1q 2q

ab b

52

a

b ba,

ba,

0q 1q 2q

ab b

Saída: “rejeita”

53

FormalizaçãoAutômato Finito Determinista (DFA)

FqQM ,,,, 0

Q

0q

F

: conjunto de estados

: alfabeto de entrada

: função de transição

: estado inicial

: conjunto de estados finais

54

Alfabeto de Entrada

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

5q

a a bb

ba,

ba,

ba,

55

Conjunto de Estados

Q

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

5q

a a bb

ba,

543210 ,,,,, qqqqqqQ

ba,

56

Estado Inicial

0q

1q 2q 3q 4qa b b a

5q

a a bb

ba,

ba,0q

57

Conjunto de Estados Finais

F

0q 1q 2q 3qa b b a

5q

a a bb

ba,

4qF

ba,

4q

58

Função de Transição

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

5q

a a bb

ba,

QQ :

ba,

59

10 , qaq

2q 3q 4qa b b a

5q

a a bb

ba,

ba,0q 1q

60

50 , qbq

1q 2q 3q 4qa b b a

5q

a a bb

ba,

ba,0q

61

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

5q

a a bb

ba,

ba,

32 , qbq

62

Função deTransição

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

5q

a a bb

ba,

a b0q

1q

2q

3q

4q

5q

1q 5q

5q 2q

2q 3q

4q 5q

ba,5q5q5q5q

63

Função deTransição Extendida

*

QQ *:*

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

5q

a a bb

ba,

ba,

64

20 ,* qabq

3q 4qa b b a

5q

a a bb

ba,

ba,0q 1q 2q

65

40 ,* qabbaq

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

5q

a a bb

ba,

ba,

66

50 ,* qabbbaaq

1q 2q 3q 4qa b b a

5q

a a bb

ba,

ba,0q

67

50 ,* qabbbaaq

1q 2q 3q 4qa b b a

5q

a a bb

ba,

ba,0q

Observação: Existe um caminho de para com rótulo

0qabbbaa

68

Definição Recursiva

)),,(*(,*,*

awqwaqqq

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

5q

a a bb

ba,

ba,

69

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

5q

a a bb

ba,

ba,

2

10

00

0

,,,

,,,*),,(*

,*

qbq

baqbaq

baqabq

70

Linguagens Aceitas por DFAsSeja um DFA

Definição:A linguagem contém todos os strings aceitos por

= {strings que levam a um estado final }

M

MLM

M ML

71

Exemplo

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

5q

a a bb

ba,

ba,

abbaML M

aceita

72

Outro Exemplo

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

5q

a a bb

ba,

ba,

abbaabML ,, M

aceitaaceitaaceita

73

Formalmente

Dado um DFA

Linguagem aceita por :

FqQM ,,,, 0

M

FwqwML ,*:* 0

alfabeto função detransição

estadoinicial

estadosfinais

74

Observação Linguagem aceita por :

Linguagem rejeitada por :

FwqwML ,*:* 0

M

FwqwML ,*:* 0

M

75

Mais Exemplos

a

b ba,

ba,

0q 1q 2q

}0:{ nbaML n

aceita estado de erro

76

ML = { todos os strings com prefixo }

ab

a b

ba,

0q 1q 2q

aceita

ba,3q

ab

77

ML= { todos os strings que não contêm o substring }001

0 00 001

1

0

110

0 1,0

78

Linguagens Regulares

Uma linguagem é regular se existe um DFA tal que

O conjunto de todas as linguagens regulares constitui uma classe de linguagens

LM MLL

79

ExemploA linguagemé regular:

*,: bawawaL

a

b

ba,

a

b

ba

0q 2q 3q

4q