[PPT]Languages and Finite Automata · Web viewTitle Languages and Finite Automata Author Costas Busch Last modified by luciliacf Created Date 8/31/2000 1:12:33 AM Document presentation
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
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