UNIVERSIDADE FEDERAL DE PELOTAS PROGRAMA DE PÓS-GRADUAÇÃO EM COMPUTAÇÃO DISCIPLINA DE TEORIA DA COMPUTAÇÃO PROFESSORA SIMONE COSTA AUTÔMATOS FINITOS NÃO DETERMINÍSTICOS E AUTÔMATOS FINITOS NÃO DETERMINÍSTICOS COM MOVIMENTO VAZIO LEONARDO CAMPOS SOARES WAGNER ISHIZAKA PENNY ABRIL, 2014.
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
UNIVERSIDADE FEDERAL DE PELOTAS
PROGRAMA DE PÓS-GRADUAÇÃO EM COMPUTAÇÃO
DISCIPLINA DE TEORIA DA COMPUTAÇÃO
PROFESSORA SIMONE COSTA
AUTÔMATOS FINITOS NÃO DETERMINÍSTICOS E
AUTÔMATOS FINITOS NÃO DETERMINÍSTICOS COM
MOVIMENTO VAZIO
LEONARDO CAMPOS SOARES
WAGNER ISHIZAKA PENNY
ABRIL, 2014.
PPGC-UFPel Teoria da Computação
Autômatos Finitos não determinísticos
1 INTRODUÇÃO
Uma máquina de estados finitos, ou autômato finito, é um sistema capaz de
receber entradas e produzir saídas discretas, podendo assumir um número
finito e pré-definido de estados, no qual cada estado possui somente as
informações necessárias para determinar qual o estado seguinte.
Os autômatos finitos são capazes de descrever as linguagens da classe
regular, e seu controle pode ser determinístico, no qual o autômato não pode
assumir mais de um estado em qualquer instante, ou não determinístico, no
qual o autômato pode estar em vários estados ao mesmo tempo, sendo este
uma generalização do determinismo. Uma linguagem é dita regular se um
autômato finito a reconhece.
O não determinismo não expande as linguagens que podem ser aceitas por
autômatos finitos determinísticos, mas em alguns casos é muito mais eficiente
para a descrição e compreensão da função do autômato. Na prática, um
autômato finito não determinístico permite que utilizemos linguagens de alto
nível na descrição de um problema e, tendo a capacidade de processar a
mesma classe de linguagens que os autômatos finitos determinísticos, pode
ser convertido para este tipo e então ser processado por um computador
convencional. Sendo uma característica não essencial dos autômatos finitos, o
não determinismo pode ser remodelado a qualquer momento para um AFD
para ser processado pela linguagem de baixo nível dos autômatos.
Para correto entendimento da teoria dos autômatos é necessária a
compreensão dos conceitos a seguir.
• Alfabeto: Conjunto não vazio e finito de símbolos, representado por ∑.
• Potência de um alfabeto: ∑k = conjunto de palavras de tamanho K
formadas a partir de ∑.
• String: Sequência finita de símbolos formada a partir de um alfabeto.
• Comprimento de uma string: número de posições para símbolos em
uma palavra. O comprimento da string w é |w|.
• Linguagem: conjunto de strings, os quais escolhem seus símbolos a
partir de um alfabeto único.
• Linguagem Regular: uma linguagem é dita regular se um autômato
finito a reconhece.
PPGC-UFPel Teoria da Computação
Autômatos Finitos não determinísticos
Além disso existem também outras definições importantes:
• Estado inicial: estado inicial do autômato, na representação por grafos é
indicado por uma seta sem origem;
• Estado de aceitação: é o estado final do autômato, na representação por
grafos é indicado por um círculo duplo (estados simples usam círculos
simples);
• Transição – passagem de um estado para outro, no grafo é
representada pela seta que interliga dois estados;
• Função de transição – função que define, a partir do estado atual e do
símbolo de entrada, para qual estado o sistema irá se deslocar.
Os autômatos finitos não determinísticos são especialmente mais simples de
especificar nos casos a seguir:
• Modelagem de algoritmos com seleção;
• Definição de linguagens compostas por conjuntos bastante diferentes.
Adequado para descrever de forma concisa linguagens complexas.
2 Autômatos Finitos não determinísticos
Autômato finito não determinístico (AFN ou AFND) é aquele que possui a
capacidade de estar em mais de um estado ao mesmo tempo. É como se o
autômato tivesse a capacidade de adivinhar informações a respeito da entrada.
Um exemplo disto é a busca por determinadas sequências de caracteres em
um longo string de texto, em que é útil “adivinhar” que se está no início de um
string destes.
De um modo informal podemos dizer que um AFN é um autômato que possui,
da mesma forma que os AFD, um conjunto finito de estados, um conjunto finito
de símbolos de entrada, um estado inicial e um conjunto de estados de
aceitação. Também possui uma função de transição, mas ao contrário dos AFD
PPGC-UFPel Teoria da Computação
Autômatos Finitos não determinísticos
que retornam apenas um estado, nos AFN pode retornar um conjunto de zero,
um ou mais estados.
O autômato finito não determinístico é uma generalização dos autômatos finitos
determinísticos, ou seja, toda linguagem que é reconhecida por um AFN
também pode ser reconhecida por um AFD. Dessa forma pode-se escrever um
AFN como um AFD, entretanto muitas vezes o AFD obtido possui uma
quantidade muito maior de estados que o sistema não determinístico, se Q é a
quantidade de estados do AFN, a quantidade de estados do AFD será Q’ = 2Q.
2.1 Definição formal de um AFN
Pode-se definir um autômato finito não determinístico de maneira formal como
uma quíntupla M (Q, ∑, δ, q0, F), onde:
– Q é um conjunto finito de estados,
– ∑ é um alfabeto,
– q0 ϵ Q é o estado inicial,
– F ⊆ Q é o conjunto de estados finais (aceitação),
– δ: Q x ∑ � P(Q) é a função de transição.
Além desta definição formal através da tupla de cinco elementos, um AFN pode
ser descrito ainda de duas formas:
- Diagrama de transições através de grafos: grafo definido de modo que
para estado exista apenas um nó correspondente; haja conexão entre nós
chamada de transição e definida pelo estado atual e pelo símbolo de entrada;
existe uma seta no estado inicial q0 identificada como Início, a qual não se
origina em nenhum outro nó; estados em estado de aceitação possuem círculo
duplo e em estado de não aceitação possuem círculo simples.
- Tabela de transições que tabula a função δ: representação
convencional e tabular de uma função δ que recebe dois argumentos e retorna
um conjunto de valores (AFN) ou um valor (AFD). As linhas da tabela
correspondem aos estados e as colunas correspondem às entradas.
PPGC-UFPel Teoria da Computação
Autômatos Finitos não determinísticos
Exemplo 1: Dado o AFN descrito pelo grafo a seguir, encontre a tabela de
transição de estados e resolva de forma que sejam aceitas apenas strings com
final 01, dada a sequência de entrada 00101.
De maneira formal este grafo pode ser representado por:
({q0,q1,q2}, {0,1}, δ, q0, {q2})
Onde a função δ é dada pela seguinte tabela de transições:
TABELA DE TRANSIÇÃO DE ESTADOS
0 1
� q0 {q0, q1} {q0}
q1 Ø {q2}
*q2 Ø Ø
Na tabela o estado inicial recebe uma seta e o estado de aceitação é marcado
com um asterisco. Quando não existe nenhuma transição de um dado estado
sobre um dado símbolo de entrada o resultado adequado é o conjunto vazio.
Para a sequência dada o autômato está no seu estado inicial. Ao ler a entrada
0 ele pode ir para dois estados: q0 e q1. Neste caso o autômato encontra-se
nos estados q0 e q1 ao mesmo tempo. A próxima entrada é 0, a partir de q1
não existe qualquer ação com entrada 0, então este ramo “morre” na análise.
Já o ramo em q0 vai para q0 e q1 novamente. A próxima entrada é 1, assim o
estado q1 vai para q2 e a entrada 001 é aceita e o estado do ramo q0 vai para
q0. Entretanto a entrada não está encerrada. A quarta entrada é 0, a partir de
q2 não existe qualquer ação com entrada 0, então este ramo “morre” na
análise. O ramo que estava em q0 vai para q0 e q1. A última entrada, um 1, faz
com que q1 vá para q2 e q0 vá para q0, dessa forma atinge-se novamente o
estado de aceitação e a entrada 00101 é aceita.
PPGC-UFPel Teoria da Computação
Autômatos Finitos não determinísticos
Nesta figura consta a maneira pela qual o AFN processa as entradas.
3 Autômato Finito não determinístico com movimento vazio
(AFND-ε)
Um autômato finito não determinístico com movimento vazio, ou com ԑ-
transições, é uma generalização dos AFND, que não expande a classe de
linguagens aceita por estes, mas que acrescenta uma desejável conveniência
de programação ao permitir a mudança de um estado para outro sem que seja
feita a leitura de um caractere da fita de entrada. Como generalização de um
AFND, pode ser simulado por este, e também por um AFD.
Um movimento vazio, ou ε-transição, consiste em uma mudança interna no
estado do autômato. A mudança ocorre sem a leitura de qualquer dado na fita
de entrada. A não ser por uma eventual mudança de estado, nenhuma outra
ação pode ser observada em um movimento vazio.
Os AFND-ε podem ser definidos da mesma forma que um AFND, mas a
função de transição deve acrescentar o {ԑ} para permitir as operações de
mudança de estado sobre a string vazia. Um autômato finito não-determinístico
com movimento vazio é uma quíntupla M=(Q, ∑, δ, q0, F) onde:
– Q é um conjunto finito de estados
– ∑ é um alfabeto,
– q0 ϵ Q é o estado inicial
– F ⊆ Q é o conjunto de estados finais
– δ é a função de transição δ: Q x ∑ԑ � P(Q), onde ∑ԑ = ∑ U {ԑ}
PPGC-UFPel
Autômatos Finitos não
Podemos representar um
estados ou através de um diagrama de estados. A tabela conterá linhas com os
estados possíveis de serem assumidos, e as colunas terão as entradas
possíveis, enquanto os diagramas terão
aceitação), representado
Teoria da Computação
Autômatos Finitos não determinísticos
Podemos representar um AFND-ε através de uma tabela de transição
estados ou através de um diagrama de estados. A tabela conterá linhas com os
estados possíveis de serem assumidos, e as colunas terão as entradas
possíveis, enquanto os diagramas terão estados inicial, intermediário
representados de forma distinta, e setas representam as transições.
Teoria da Computação
através de uma tabela de transição de
estados ou através de um diagrama de estados. A tabela conterá linhas com os
estados possíveis de serem assumidos, e as colunas terão as entradas
estados inicial, intermediário e final (de
s de forma distinta, e setas representam as transições.
PPGC-UFPel Teoria da Computação
Autômatos Finitos não determinísticos
- Função Fecho-ԑ (também conhecida como Fecho-Vazio e ECLOSE)
Pode ser definida informalmente como a função que recebe um estado q e
retorna o conjunto de estados composto por q e todos os estados em que é
possível chegar a partir de q seguindo transições rotuladas por ε.