Você está na página 1de 98

Teoria da Computao e

Linguagens Formais
Prof. Reginaldo Gotardo - gotardo.uniseb@gmail.com
Roteiro
Linguagens Regulares
Sistema de Estados Finitos
Composicao Sequencial, Concorrente e Nao-
Determinista
Automato Finito
Automato Finito Nao-Deterministico
Automato Finito com Movimentos Vazios
Expressao Regular
Gramatica Regular
2
Linguagens Regulares 3
Linguagens Regulares
Linguagens Regulares ou Tipo 3 formalismos
Automato Finito
Formalismo operacional ou reconhecedor
Basicamente, um sistema de estados finitos
Expressao Regular
Formalismo denotacional ou gerador
Conjuntos (linguagens) basicos + concatenacao e uniao
Gramatica Regular
Formalismo axiomatico ou gerador
Gramatica com restricoes na forma das regras de producao
4
Linguagens Regulares
Hierarquia de Chomsky
Classe de linguagens mais simples
Algoritmos de reconhecimento, geracao ou conversao entre
formalismos
Pouca complexidade
Grande efciencia
Facil implementacao
Fortes limitacoes de expressividade
Exemplo: duplo balanceamento nao e regular
Linguagens de programacao em geral: nao-regulares
5
Linguagens Regulares
Complexidade de algoritmos - automatos finitos
Classe de algoritmos mais eficientes (tempo de
processamento)
Supondo determinada condicao
Qualquer automato finito e igualmente eficiente
Qualquer solucao e otima
A menos de eventual redundancia de estados
Redundancia de estados
Nao influi no tempo
Pode ser facilmente eliminada: Automato Finito Minimo
6
Linguagens Regulares
Importantes propriedades: podem ser usadas para
Construir novas linguagens regulares
A partir de linguagens regulares conhecidas
Definindo uma algebra
Provar propriedades
Construir algoritmos
Se um problema tiver uma solucao regular
Considerar preferencialmente a qualquer outra nao-regular
Propriedades da Classe
Efciencia e simplicidade dos algoritmos
7
Linguagens Regulares
Universo de aplicacoes das linguagens regulares
Muito grande
Constantemente ampliado
Exemplo tpico e simples
Analise lexica
Exemplos mais recentes
Sistemas de animacao
Hipertextos
Hipermidias
8
Sistema de Estados
Finitos
Sistema de Estados Finitos
Modelo matematico de sistema com entradas e saidas
discretas
Numero finito e predefinido de estados
Podem ser definidos antes de iniciar o processamento
Estado
Somente informacoes do passado
Necessarias para determinar as acoes para a proxima
entrada
9
Sistema de Estados
Finitos
Motivacional
Associados a diversos tipos de sistemas naturais e construidos
Exemplo: Elevador
Nao memoriza as requisicoes anteriores
Estado: andar corrente e direcao de movimento
Entrada: requisicoes pendentes
Exemplo: Analisador Lexico, Processador de Texto
Estado: memoriza a estrutura do prefixo da palavra em analise
Entrada: texto
10
Sistema de Estados
Finitos
Restricao
Nem todos os sistemas de estados finitos
Sao adequados para serem estudados por esta abordagem
Exemplo: Cerebro humano
Neuronio: numero finito de bits
Cerebro: cerca de 2
35
celulas
Abordagem pouco eficiente
Explosao de estados
11
Sistema de Estados
Finitos
Exemplo: Computador
Processadores e memorias: sistema de estados finitos
Estudo da computabilidade
Exige uma memoria sem limite predefinido
Maquina de Turing
Mais adequado ao estudo da computabilidade
Computabilidade e solucionabilidade de problemas
Apenas introduzido
Questoes tratadas na Teoria da Computacao
12
Composicao Sequencial,
Concorrente e Nao-Determinista
Construcao composicional de sistema
Construido a partir de sistemas conhecidos
E assim sucessivamente
Ate chegar ao nivel mais elementar
Como uma acao atomica
Composicao
Sequencial
Concorrente
Nao-Determinista
13
Nao-Determinista
Proxima componente: escolha entre diversas alternativas
Em oposicao a determinista
Para as mesmas condicoes
Proxima componente e sempre a mesma
Nao-determinismo pode ser
Interno: sistema escolhe aleatoriamente
Externo: escolha externa ao sistema
Em sistemas reais as tres formas de composicao sao comuns
14
Composicao Sequencial,
Concorrente e Nao-Determinista
Exemplo: Banco
Sequencial
Fila: proximo cliente depende do atendimento do anterior
Pagamento de uma conta depende do fornecimento de um valor
Concorrente
Diversos caixas atendem independentemente diversos clientes
Clientes nos caixas: acoes independentemente dos clientes na fila
Nao-determinista
Dois ou mais caixas disponiveis ao mesmo tempo
Proximo cliente pode escolher o caixa
Caminhar de um individuo: perna esquerda ou direita
15
Linguagens Formais
Sequencial e nao-determinimo
Semantica do nao-determinismo adotada
A usual para Linguagens Formais, Teoria da Computacao
Nao-determinismo interno
Objetivo: determinar a capacidade de reconhecer linguagens e
de solucionar problemas
Difere da adotada no estudo dos Modelos para
Concorrencia
Exemplo: Sistemas Operacionais
Pode causar confusao com a semantica da concorrencia
16
Composicao Sequencial,
Concorrente e Nao-Determinista
Autmato Finito
Autmato Finito: sistema de estados finitos
Nmero finito e predefinido de estados
Modelo computacional comum em diversos estudos
terico-formais
Linguagens Formais
Compiladores
Semntica Formal
Modelos para Concorrncia
17
Autmato Finito
Formalismo operacional/reconhecedor
Determinstico
Dependendo do estado corrente e do smbolo lido pode assumir
umnico estado
No-determinstico
Dependendo do estado corrente e do smbolo lido pode assumir
um conjunto de estados alternativos
Com movimentos vazios
Dependendo do estado corrente e sem ler qualquer smbolo pode
assumir um conjunto de estados
Portanto no-determinstico
18
Autmato Finito
Movimento vazio
Pode ser visto como transies encapsuladas
Excetuando-se por uma eventual mudana de estado nada
mais pode ser observado
Anlogo ao encapsulamento das linguagens orientadas a
objetos
Trs tipos de autmatos
Equivalentes em termos de poder computacional
19
Autmato Finito
Determinstico
AFD mquina constituda por
Fita
Dispositivo de entrada
Contm informao a ser processada
Unidade de Controle
Reflete o estado corrente da mquina
Possui unidade de leitura (cabea da fita)
Acessa uma clula da fita de cada vez
Movimenta-se exclusivamente para a direita
Programa, Funo Programa ou Funo de Transio
Comanda as leituras
Define o estado da mquina
20
Autmato Finito
Determinstico
Fita finita
Dividida em clulas
Cada clula armazena um smbolo
Smbolos pertencem a um alfabeto de entrada
No possvel gravar sobre a fita
No existe memria auxiliar
Palavra a ser processada ocupa toda a fita
21
Autmato Finito
Determinstico
Unidade de controle
Nmero finito e predefinido de estados
Origem do termo controle finito
Leitura
L o smbolo de uma clula de cada vez
Move a cabea da fita uma clula para a direita
Posio inicial da cabea a clula mais esquerda da fita
22
Autmato Finito
Determinstico
Programa: funo parcial
Dependendo do estado corrente e do smbolo lido
Determina o novo estado do autmato
23
-> delta
Autmato Finito
Determinstico
Definio: Autmato Finito (Determinstico) ou AFD
um alfabeto de smbolos de entrada
Q um conjunto de estados possveis do autmato (finito)
uma (funo) programa ou funo de transio (funo
parcial)
: Q x Q
Transio do autmato: (p, a) = q
q
0
um elemento distinguido de Q: estado inicial
F um subconjunto de Q: conjunto de estados finais
24
M = (, Q, , q
0
, F)
Autmato Finito
Determinstico
AF como um diagrama
25
(p, a) = q
Autmato Finito
Determinstico
Funo programa como uma tabela de dupla entrada
26
(p, a) = q a ...
p q ...
q ... ...
Autmato Finito
Determinstico
Computao de um AF
Sucessiva aplicao da funo programa
Para cada smbolo da entrada
Da esquerda para a direita
At ocorrer uma condio de parada
Lembre-se que um AF
No possui memria de trabalho
Para armazenar as informaes passadas deve-se usar o
conceito de estado
27
Autmato Finito
Determinstico
Exemplo
AF: aa ou bb como subpalavra
AF
28
L
1
= { w | w possui aa ou bb como subpalavra }
M
1
= ({ a, b }, { q
0
, q
1
, q
2
, q
f
},
1
, q
0
, { q
f
})

1
a b
q
0
q
1
q
2
q
1
q
f
q
2
q
2
q
1
q
f
q
f
q
f
q
f
29
30
q
1
: smbolo anterior a
q
2
: smbolo anterior b
Qual a informao memorizada por q
0
e q
f
aps
identificar aa ou bb
q
f
(final): varre o sufixo da entrada
Terminar o processamento
31
Autmato Finito
AF sempre para
Como
Qualquer palavra finita
Novo smbolo lido a cada aplicao da funo programa
No existe a possibilidade de ciclo (loop) infinito
Parada do processamento
Aceita a entrada
Aps processar o ltimo smbolo, assume um estado final
Rejeita a entrada
Duas possibilidades
Aps processar o ltimo smbolo, assume um estado no-final
Programa indefinido para argumento (estado e smbolo)
32
Autmato Finito x Grafo
Finito Direto
Qual a diferena entre um autmato finito e um grafo
finito direto?
Qualquer AF pode ser visto como um grafo finito direto
Podem existir arcos paralelos
Mesmos ns de origem e de destino
Dois ou mais arcos podem ser identificados com a mesma
etiqueta (smbolo do alfabeto)
Existe um n distinguido: estado inicial
Existe um conjunto de ns distinguidos: estados finais
33
Autmato Finito x Grafo
Finito Direto
Usual considerar um AF como grafo finito direto especial
Herda resultados da Teoria dos Grafos
34
Autmato Finito
Definio formal do comportamento de um AF
Dar semntica sintaxe
Necessrio estender a funo programa
Argumento
Estado e palavra
35
Autmato Finito
Definio da Funo Programa Estendida
AFD
estendido para palavras
36
M = (, Q, , q
0
, F) *: Q x * Q
: Q x Q
*(q, ) = q
*(q, aw) = *((q, a), w)
Autmato Finito
Definio da Funo Programa Estendida
Sucessiva aplicao da funo programa
Para cada smbolo da palavra
A partir de um dado estado
Se a entrada for vazia, fica parado
Aceita/rejeita
Funo programa estendida a partir do estado inicial
37
*(q
0
, abaa) =
*((q
0
, a), baa) =
*(q
1
, baa) =
*((q
1
, b), aa) =
*(q
2
, aa) =
*((q
2
, a), a) =
*(q
1
, a) =
*((q
1
, a), ) =
*(q
f
, ) = q
f
funo estendida sobre abaa
processa abaa
funo estendida sobre baa
processa baa
funo estendida sobre aa
processa aa
funo estendida sobre a
processa a
funo estendida sobre :
fim da induo; ACEITA
Autmato Finito
Definio de Linguagem Aceita, Linguagem Rejeitada
AFD
Linguagem Aceita ou Linguagem Reconhecida por M
Linguagem Rejeitada por M
39
M = (, Q, , q
0
, F)
L(M) = ACEITA(M) = { w | *(q
0
, w) F }
REJEITA(M) = { w | *(q
0
, w) F ou *(q
0
, w) indefinida }
Autmato Finito
Supondo que * e o conjunto universo
40
ACEITA(M) REJEITA(M) =
ACEITA(M) REJEITA(M) = *
~ACEITA(M) = REJEITA(M)
~REJEITA(M) = ACEITA(M)
Autmato Finito
Cada AF M sobre
Induz uma partio de * em duas classes de equivalncia
E se um dos dois conjuntos for vazio?
41
Autmato Finito
Diferentes AF podem aceitar uma mesma linguagem
Definio de Autmatos Finitos Equivalentes
M
1
e M
2
so Autmatos Finitos Equivalentes se e somente
se
42
ACEITA(M
1
) = ACEITA(M
2
)
Autmato Finito
Definio de Linguagem Regular, Linguagem Tipo 3
L uma Linguagem Regular ou Linguagem Tipo 3
Se existe pelo menos um autmato finito determinstico que
aceita L
43
Autmato Finito
Exemplo
Linguagens Vazia e Todas as Palavras
Linguagens sobre o alfabeto { a, b }
44
L
2
= L
3
= *
Autmato Finito
Exemplo
Linguagens Vazia e Todas as Palavras
Diferenca entre
2
e
3
?
O que, exatamente, diferencia M
2
de M
3
?
45
L
2
= L
3
= *

2
a b
q
0
q
0
q
0

3
a b
q
0
q
0
q
0
Autmato Finito
Exemplo
Autmato Finito: nmero par de cada smbolo
46
L
4
= { w | w possui um nmero par de a e um nmero par de b }
Autmato Finito
Como seria para aceitar um nmero mpar de cada
smbolo?
47
Exerccio!!!
Autmato Finito
Funo Programa x Funo Programa Estendida
Objetivando simplificar a notao
e a sua correspondente extenso *
Podem ser ambas denotadas por
Computaes x Caminhos de um Grafo
Conjunto de arcos: computaes possveis
Subconjunto de arcos
Com origem no estado inicial
Destino em algum estado final
Linguagem aceita
48
Autmato Finito
Computaes x Caminhos de um Grafo
49
Automato Finito Nao-
Deterministico 50
Automato Finito Nao-
Deterministico
No-determinismo
Importante generalizao dos modelos de mquinas
Fundamental no estudo
Modelos para Concorrncia
Teoria da Computao
Linguagens Formais
Semntica de no-determinismo adotada
Usual no estudo das Linguagens Formais
Objetiva determinar a capacidade de
Reconhecer linguagens
Solucionar problemas
Pode causar alguma confuso com semntica da concorrncia
51
Automato Finito Nao-
Deterministico
Nem sempre no-determinismo aumenta o poder
Reconhecimento de linguagens de uma classe de
autmatos
Qualquer autmato finito no-determinstico pode ser
simulado por um autmato finito determinstico
52
Automato Finito Nao-
Deterministico
No-determinismo no programa, uma funo parcial
Dependendo do estado corrente e do smbolo lido,
determina um conjunto de estados do autmato
Assume um conjunto de estados alternativos
Como uma multiplicao da unidade de controle
Uma para cada alternativa
Processando independentemente
Sem compartilhar recursos
53
Automato Finito Nao-
Deterministico
Definio: Autmato Finito No-Determinstico (AFN)
um alfabeto de smbolos de entrada
Q um conjunto de estados possveis do autmato (finito)
uma (funo) programa ou funo de transio (funo
parcial)
: Q x 2
Q
Transio do autmato: (p, a) = {q
1
, q
2
, ..., q
n
}
q
0
um elemento distinguido de Q: estado inicial
F um subconjunto de Q: conjunto de estados finais
54
M = (, Q, , q
0
, F)
Automato Finito Nao-
Deterministico
Automato como diagrama
55
(p, a) = { q
1
, q
2
, , q
n
}
Automato Finito Nao-
Deterministico
Computao de um autmato finito no-determinstico
Sucessiva aplicao da funo programa
Para cada smbolo da entrada (da esquerda para a direita)
At ocorrer uma condio de parada
Argumentos: computao/funo programa estendida
Conjunto finito de estados e uma palavra
56
Automato Finito Nao-
Deterministico
Definio da Funo Programa Estendida
AFN
Indutivamente definida
Transio estendida (a um conjunto de estados)
57
M = (, Q, , q
0
, F) *: 2
Q
x * 2
Q
*(P, ) = P
*(P, aw) = *(
qP
(q, a), w)
*({ q
1
, q
2
, , q
n
}, a) = (q
1
, a)(q
2
, a)(q
n
, a)
Automato Finito Nao-
Deterministico
Parada do processamento
Aceita a entrada
Aps processar o ltimo smbolo da fita
Existe pelo menos um estado final pertencente ao conjunto de
estados alternativos atingidos
Rejeita a entrada
Duas possibilidades
Aps processar o ltimo smbolo da fita, todos os estados alternativos
atingidos so no-finais
Programa indefinido para o argumento
Conjunto de estados e smbolo
58
Automato Finito Nao-
Deterministico
Definio de Linguagem Aceita, Linguagem Rejeitada
AFN
Linguagem Aceita ou Linguagem Reconhecida por M
Linguagem Rejeitada por M
59
M = (, Q, , q
0
, F)
L(M) = ACEITA(M) = { w | *({q
0
}, w) F }
REJEITA(M) = { w | *({q
0
}, w)F = ou *({q
0
}, w) indefinida }
Automato Finito Nao-
Deterministico
Exemplo
Linguagem aa ou bb como subpalavra
AFN
60
L
5
= { w | w possui aa ou bb como subpalavra }
M
5
= ({ a, b }, { q
0
, q
1
, q
2
, q
f
},
5
, q
0
, { q
f
})
61
62
O ciclo em q
0
realiza uma varredura em toda a entrada
O caminho q
0
/q
1
/q
f
garante a ocorrncia de aa
O caminho q
0
/q
2
/q
f
garante a ocorrncia de bb
63

5
a b
q
0
{q
0
, q
1
} {q
0
, q
2
}
q
1
{q
f
} -
q
2
- {q
f
}
q
f
{q
f
} {q
f
}
Automato Finito Nao-
Deterministico
Exemplo
Linguagem aaa como sufixo
AFN
64
L
6
= { w | w possui aaa como sufixo }
M
6
= ({ a, b }, { q
0
, q
1
, q
2
, q
f
},
6
, q
0
, { q
f
})
Automato Finito Nao-
Deterministico
No-determinismo
Aparentemente, um significativo acrscimo ao poder
computacional autmato finito
Na realidade no aumenta seu poder computacional
Teorema
Equivalncia entre AFD e AFN
Classe dos Autmatos Finitos Determinsticos equivalente
Classe dos Autmatos Finitos No-Determinsticos
65
Equivalncia entre AFD e
AFN
Prova: (por induo)
Mostrar que
A partir de um AFN Mqualquer
Construir um AFD M
D
que realiza as mesmas computaes
M
D
simula M
AFN AFD
Estados de M
D
simulam combinaes de estados alternativos de
M
Prova da simulao: por induo
AFD AFN
No necessita ser mostrado: decorre trivialmente das definies
66
Equivalncia entre AFD e
AFN
Seja um AFN qualquer
AFD construdo
Q
D
Todas as combinaes, sem repeties, de estados de Q
Notao <q
1
q
2
q
n
>
Ordem no distingue combinaes: <q
u
q
v
> = <q
v
q
u
>
Imagem de todos os estados alternativos de M
67
M = (, Q, , q
0
, F)
M
D
= (, Q
D
,
D
, <q
0
>, F
D
)
Equivalncia entre AFD e
AFN
<q
0
>
Estado inicial
F
D
Conjunto de estados <q
1
q
2
...q
n
> pertencentes a Q
D
Alguma componente q
i
pertence a F, para i em {1, 2, , n}
68

D
: Q
D
x Q
D

D
(<q
1
q
n
>, a) = <p
1
p
m
> *({q
1
, , q
n
}, a) = {p
1
, , p
m
}

Equivalncia entre AFD e


AFN
AFD M
D
simula as computaes do AFN M ???
Induo no tamanho da palavra
Mostrar que
Base da induo
Verdadeiro, por definio de computao
69

D
*(<q
0
>, w) = <q
1
q
u
> *({q
0
}, w) = {q
1
, , q
u
}

D
*(<q
0
>, ) = <q
0
>
*({q
0
}, ) = {q
0
}

Equivalncia entre AFD e


AFN
Hiptese de induo
|w| = n e n 1
Suponha que
Passo de induo
Equivale (hiptese de induo)
Verdadeiro, por definio de
D
70

D
*(<q
0
>, w) = <q
1
q
u
> *({q
0
}, w) = {q
1
, , q
u
}

D
*(<q
0
>, wa) = <p
1
p
v
>
*({q
0
}, wa) = {p
1
, , p
v
}

D
(<q
1
q
u
>, a) = <p
1
p
v
> *({q
1
, , q
u
}, a) = {p
1
, , p
v
}
Equivalncia entre AFD e
AFN
Logo, M
D
simula Mpara qualquer entrada w pertencente
a *
71
Automato Finito Nao-
Deterministico
Portanto, linguagem aceita por AFN
Linguagem Regular ou Tipo 3
72
Automato Finito Nao-
Deterministico
Determinismo x No-Determinismo
Muitas vezes mais fcil desenvolver um AFN do que um AFD
Exemplo
Soluo determinista: no trivial
Nmero grande de estados
Soluo no-determinista: bem simples
Poucos estados
Alternativa para construir um AFD
Desenvolver inicialmente AFN
Aplicar o algoritmo apresentado na prova
73
{ w | o quinto smbolo da direita para a esquerda de w a }
Automato Finito Nao-
Deterministico
Exemplo
AFN AFD
74
M
6
= ({ a, b }, { q
0
, q
1
, q
2
, q
f
},
6
, q
0
, { q
f
})
M
6D
= ({ a, b }, Q
D
,
6D
, <q
0
>, F
D
)
Q
D
= { <q
0
>, <q
1
>, <q
2
>, <q
f
>, <q
0
q
1
>, <q
0
q
2
>, , <q
0
q
1
q
2
q>
f
}
F
D
= { <q
f
>, <q
0
q
f
>, <q
1
q
f
>, , <q
0
q
1
q
2
q
f
> }
75

6D
a b
<q
0
> <q
0
q
1
> <q
0
>
<q
0
q
1
> <q
0
q
1
q
2
> <q
0
>
<q
0
q
1
q
2
> <q
0
q
1
q
2
q
f
> <q
0
>
<q
0
q
1
q
2
q
f
> <q
0
q
1
q
2
q
f
> <q
0
>
AFN
AFD
76

6D
a b
p
0
= <q
0
> <q
0
q
1
> <q
0
>
p
1
= <q
0
q
1
> <q
0
q
1
q
2
> <q
0
>
p
2
= <q
0
q
1
q
2
> <q
0
q
1
q
2
q
f
> <q
0
>
p
f
= <q
0
q
1
q
2
q
f
> <q
0
q
1
q
2
q
f
> <q
0
>
AF com Movimentos
Vazios
Movimentos vazios
Generalizam os movimentos no-determinsticos
Movimento vazio
Transio sem leitura de smbolo algum da fita
Interpretado como um no-determinismo interno ao
autmato
Transio encapsulada
Excetuando-se por uma eventual mudana de estados
Nada mais pode ser observado
77
AF com Movimentos
Vazios
Algumas vantagens
Facilita algumas construes e demonstraes
Poder computacional para autmatos finitos
No aumenta o poder de reconhecimento de linguagens
Qualquer AFN pode ser simulado por um AFD
78
AF com Movimentos
Vazios
Definicao: Automato Finito com Movimentos Vazios (AFN)
um alfabeto de smbolos de entrada
Q um conjunto de estados possveis do autmato (finito)
uma (funo) programa ou funo de transio (funo
parcial)
: Q x ({}) 2
Q
Transio do autmato: (p, ) = {q
1
, q
2
, ..., q
n
}
q
0
um elemento distinguido de Q: estado inicial
F um subconjunto de Q: conjunto de estados finais
79
M = (, Q, , q
0
, F)
AF com Movimentos
Vazios
Autmato como diagrama
80
(q, ) = { p
0
} (q, a
1
) = { p
1
} (q, a
n
) = { p
n
}
AF com Movimentos
Vazios
Computacao de um AFN
Anloga de um AFN
Processamento de uma transio vazia
No-determinstico
Assume simultaneamente os estados destino e origem
Origem de um movimento vazio
Caminho alternativo
81
AF com Movimentos
Vazios
Exemplo de AFN: as antecedem bs
82
M
7
= ({ a, b }, { q
0
, q
f
},
7
, q
0
, { q
f
})

7
a b
q
0
{q
0
} - {q
f
}
q
f
- {q
f
} -
AF com Movimentos
Vazios
Antes de definir computao
Computao de transies vazias a partir de um estado
Um conjunto finito de estados
83
AF com Movimentos
Vazios
Definio de Computao Vazia
Computacao Vazia ou Funcao Fecho Vazio (um estado)
Indutivamente definida
(q) = {q}, se (q, ) e indefinida
(q) = {q}(q, )(
p(q, )
(p)), caso contrario
84
: Q 2
Q
M = (, Q, , q
0
, F)
AF com Movimentos
Vazios
Definio de Computao Vazia
Computacao Vazia ou Funcao Fecho Vazio (conjunto de
estados)
85
*: 2
Q
2
Q
M = (, Q, , q
0
, F)
*(P) =
qP
(q)
AF com Movimentos
Vazios
Por simplicidade, e *
Ambas denotadas por
86
AF com Movimentos
Vazios
Exemplo de computao vazia
(q
0
) = { q
0
, q
f
}
(q
f
) = { q
f
}
({ q
0
, q
f
}) = { q
0
, q
f
}
87
AF com Movimentos
Vazios
Computao de um AFN para uma entrada w
Sucessiva aplicao da funo programa
Para cada smbolo de w (da esquerda para a direita)
Cada passo de aplicao intercalado com computaes vazias
At ocorrer uma condio de parada
Assim, antes de processar a prxima transio
Determinar
Todos os demais estados atingveis
Exclusivamente por movimentos vazios
88
AF com Movimentos
Vazios
Definio de Funo Programa Estendia
Seja um AFN
Indutivamente definida
*(P, ) = (P)
*(P, wa) = (R) onde R={r|r(s, a) e s*(P, w)}
89
: Q 2
Q
M = (, Q, , q
0
, F)
AF com Movimentos
Vazios
Parada do processamento, Linguagem Aceita/Rejeitada
Anloga do autmato finito no-determinstico
90
AF com Movimentos
Vazios
Exemplo de Computao Vazia
91
M
8
= ({ a, b, c }, { q
0
, q
1
, q
2
, q
3
, q
4
, q
5
, q
6
, q
f
},
8
, q
0
, { q
f
})
L
8
= { w | w possui como sufixo a ou bb ou ccc }
92
*({q
0
}, abb) = ({r|r(s, b) e s*({q
0
}, ab)}) (1)
*({q
0
}, ab) = ({r|r(s, b) e s*({q
0
}, a)}) (2)
*({q
0
}, a) = ({r|r(s, a) e s*({q
0
}, )}) (3)
Como
*({q
0
}, )} = ({q
0
}) = {q
0
, q
1
, q
2
, q
4
} considerado em (3)
*({q
0
}, a) = {q
0
, q
1
, q
2
, q
4
, q
f
} considerado em (2)
*({q
0
}, ab) = {q
0
, q
1
, q
2
, q
3
, q
4
} considerado em (1)
Resulta na computao: *({q
0
}, abb) = {q
0
, q
1
, q
2
, q
3
, q
4
, q
f
}
AF com Movimentos
Vazios
Teorema: Equivalncia entre AFN e AFN
Classe dos AFN e equivalente a Classe dos AFN
94
AF com Movimentos
Vazios
Portanto, linguagem aceita por AFN
Linguagem Regular ou Tipo 3
95
AF com Movimentos
Vazios
Construcao de um de um AFD a partir de um AFN
Aplicar o mesmo algoritmo para converter um AFN em AFD
Especial ateno com o estado inicial do AFD
E(q
0
)
o conjunto de estados que sao alcancados pelos arcos , mais o
prprio q
0
96
97
AFN - M
9
= ({ a, b }, { q
0
, q
1
, q
2
},
9
, q
0
, { q
2
})

8
a b
q
0
{q
0
} - {q
1
}
q
1
- {q
1
} {q
2
}
q
2
{q
2
} - -
Material Sugerido
MENEZES, P. B. Linguagens Formais e Autmatos. 4. ed.
Porto Alegre: Sagra-Luzzato, 2000. 165p.
Captulo 2: Linguagens Regulares
98

Você também pode gostar