INE 5317 Linguagens Formais e Compiladores Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: [email protected]URL: www.inf.ufsc.br/~silveira AULA 6: Propriedades das Linguagens Regulares baseado em material produzido pelo prof Paulo Bauth Menezes e pelo prof Olinto José Varela Furtado
46
Embed
INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos
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.
baseado em material produzido pelo prof Paulo Bauth Menezes e pelo prof Olinto José Varela Furtado
06/30/06 Ricardo Silveira 2
Propriedades das LR● LR podem ser representadas por formalismos
– pouca complexidade– grande eficiência– fácil implementação
● Entretanto, por ser uma classe relativamente simples– é restrita e limitada– fácil definir linguagens não-regulares
06/30/06 Ricardo Silveira 3
Questões de interesse● como determinar se uma linguagem é regular?● é fechada para operações de união,
concatenação e intersecção?● como verificar se uma LR é infinita, finita ou
vazia?● é possível analisar duas LR e concluir se são
iguais ou diferentes?
06/30/06 Ricardo Silveira 4
Análise de cada propriedade● desenvolvida para um dos formalismos
estudados para os demais: é suficiente traduzi-los
06/30/06 Ricardo Silveira 5
Autômatos finitos X
complexidade de algoritmos● Autômatos finitos pertencem à classe de algoritmos
– mais eficientes em termos de tempo de processamento– supondo que toda a entrada necessita ser lida
● Qq autômato finito que solucione um problema é igualmente eficiente– a menos de eventual redundância de estados– não influi no tempo de processamento
● Redundância de estados pode ser facilmente eliminada– Autômato Finito (Determinístico) Mínimo
06/30/06 Ricardo Silveira 6
Bombeamento para as LR● Lema do Bombeamento
– útil no estudo das propriedades das LR● Idéia básica
– se uma linguagem é regular, então● é aceita por um AFD com n estados
– se o autômato reconhece w de comprimento maior ou igual a n
● assume algum estado q mais de uma vez● existe um ciclo na função programa que passa por q
06/30/06 Ricardo Silveira 7
Bombeamento para as LR● w pode ser dividida em três subpalavras w = uvz tal que
– | uv | ≤ n, | v | ≥ 1– v é a parte de w reconhecida pelo ciclo, que pode ser
executado (bombeado) zero ou mais vezes– Portanto
● para qualquer i ≥ 0, uviz, é aceita pelo autômato
06/30/06 Ricardo Silveira 8
Lema do bombeamento para as LR
● Se L é LR, então:– existe uma constante n tal que,
● para qualquer palavra w de L onde | w | ≥ n,● w pode ser definida como w = uvz
– | uv | ≤ n,– | v | ≥ 1
– sendo que, para todo i ≥ 0, uviz é palavra de L● Prova (direta):
● Se L é uma LR, então existe um AFD M = (Σ, Q, δ, q0, F) tal que ACEITA(M) = L
06/30/06 Ricardo Silveira 9
Prova
06/30/06 Ricardo Silveira 10
Prova
06/30/06 Ricardo Silveira 11
Exemplo de bombeamento
06/30/06 Ricardo Silveira 12
Investigar se uma linguagem é regular ou não
● ◆ Mostrar que é LR– representar usando um dos formalismos regulares
● ◆ Mostrar que não é LR– Utilizar o Lema do Bombeamento
06/30/06 Ricardo Silveira 13
Exemplo: Prove que L não é Regular
● L = { w | w possui o mesmo número de símbolos a e b }– Por absurdo. Suponha que L é regular
● existe AFD M com n estados que aceita L– Seja w = anbn sendo | w | = 2n ≥ n. Logo w = uvz tq
● | uv | ≤ n● | v | ≥ 1● para todo i ≥ 0, u vi z é palavra de L
– Absurdo !!! Como | uv | ≤ n– • uv é composta exclusivamente por símbolos a– • uv2z não pertence a L (número de a será maior que o de
b)
06/30/06 Ricardo Silveira 14
Operações fechadas sobre LR● Operações sobre LR podem ser usadas para
– álgebra de LR● construir novas linguagens a partir de linguagens
– existe um algoritmo para verificar se uma LR é vazia
06/30/06 Ricardo Silveira 23
Minimização de AFD● Complexidade de algoritmos
– autômatos finitos pertencem à classe de algoritmos mais eficientes
● em termos de tempo de processamento● supondo que toda a fita de entrada necessita ser lida
● Tempo de processamento– não depende do autômato considerado– qualquer AFD
● que reconheça a linguagem● terá a mesma eficiência
● Otimização possível– minimização do número de estados
06/30/06 Ricardo Silveira 24
Minimização de AFD● Definição: Um A.F.D. é mínimo se:
● Não possui estados inacessíveis;● Não possui estados mortos;● Não possui estados equivalentes.
– Um estado q ∈ K é inacessível (ou inalcançável) quando não existe w1 tal que a partir de qo, q seja alcançado; ou seja, não existe w
1 | δ (qo, w
1) = q,
onde w1 é uma sentença ou parte dela.
– Um estado q ∈ K é morto se ele ∉ F ∧ ∃ w1 | δ (q, w1) = p, onde p ∈ F ∧
w1 é uma sentença ou parte dela, ou seja, q é morto se ele não é final e a
partir dele nenhum estado final pode ser alcançado
06/30/06 Ricardo Silveira 25
Minimização de AFD● Estados Equivalentes:
– Um conjunto de estados q1, q2, ..., qj são equivalentes entre sí, se eles pertencem a uma mesma classe de equivalência.
● Classes de Equivalência (CE):– Um conjunto de estados q1, q2, ..., qj está em uma
mesma CE se δ(q1, a), δ(q2, a), ..., δ(qj, a), para cada a ∈ Σ, resultam respectivamente nos estados qi, qi+1, ..., qn, e estes pertencem a uma mesma CE.
06/30/06 Ricardo Silveira 26
Algoritmo para Construção das Classes de Equivalência
1.Crie, se necessário, um estado ∅ para representar as indefinições;
2.Divida K em duas CE, uma contendo F e outra contendo K-F;
3.Divida as CE existentes, formando novas CE (de acordo com a definição – lei de formação das CE), até que nenhuma nova CE seja formada.
06/30/06 Ricardo Silveira 27
Algoritmo para construção do A.F. Mínimo
● Entrada: Um A.F.D. M = (K, Σ, δ, qo, F);● Saída: Um A.F.D. Mínimo M’ = (K’, Σ, δ’, qo’, F’) | M’ ≡ M;● Método:
1.Elimine os estados Inacessíveis;2.Elimine os estados Mortos;3.Construa todas as possíveis Classes de equivalência de M.4.Construa M’, como segue:
a)K’ - é o conjunto de CE obtidas;b)qo’ - é a CE que contem qo;c)F’ - é o conjunto das CE que contenham pelo menos um
elemento ∈ F; ou seja : {[q] | ∃ p ∈ F em [q], onde [q] é uma CE};d) δ’ - δ’([p], a) = [q] ⇔ δ(p1, a) = q1 é uma transição de M ∧ p1 e
q1 são elementos de [p] e [q] respectivamente.
06/30/06 Ricardo Silveira 28
Exemplo
06/30/06 Ricardo Silveira 29
Exemplo● Classes de equivalência
06/30/06 Ricardo Silveira 30
Exemplo
06/30/06 Ricardo Silveira 31
Minimização de AFD● AFD Mínimo ou Autômato Finito Mínimo
– AFD equivalente, com o menor número de estados possível
● Autômato finito mínimo é único– diferenciando-se, eventualmente, na identificação dos
estados
06/30/06 Ricardo Silveira 32
Algoritmo de minimizaçãp● unifica os estados equivalentes
– Estados equivalentes● processamento de uma entrada qualquer a partir de estados
equivalentes resulta na mesma condição de aceita/● Definição formal:
● M = (Σ, Q, δ, q0, F) AFD qualquer
● q e p de Q são Estados Equivalentes sse, para qualquer w ∈Σ*
● δ(q, w) e δ(p, w)● resultam simultaneamente em estados finais, ou não-finais
06/30/06 Ricardo Silveira 33
AFD mínimo● Seja L uma linguagem regular, O Autômato Finito Mínimo
é um AFD– Mm = (Σ, Qm, δm, q0m, Fm)
● tal que– ACEITA(Mm) = L– para qualquer AFD M = (Σ, Q, δ, q0, F) tal que
ACEITA(M) = L– #Q ≥ #Qm
06/30/06 Ricardo Silveira 34
Pré-requisitos● Deve ser determinístico● Todos os estados devem ser alcançáveis a partir do estado
inicial● A função programa deve ser total● Caso não satisfaça algum dos pré-requisitos
– gerar um autômato determinístico equivalente– eliminar estados inacessíveis (e transições): exercício– Transformar a função programa em total
● introduzir um estado não-final d● incluir transições não-previstas, tendo d como estado
destino● incluir um ciclo em d para todos os símbolos do alfabeto
06/30/06 Ricardo Silveira 35
Algoritmo de minimização● identifica os estados equivalentes por exclusão
– tabela de estados● marca estados não-equivalentes● entradas não-marcadas: estados equivalentes