Aula 6- AFND
Aula 6- AFND
Aula 6- AFND
Aula 6
Autômatos Finitos
Não Determinísticos
Docente:
Golda Kangunga
04/11/2024
Sumário:
• Linguagens Regulares
• Autômatos Finitos Não Determnísticos
Linguagens Regulares
Uma linguagem L é dita uma Linguagem Regular se existe pelo menos um AF que
aceita L. Então, temos que L(M4)=∅ e L(M5)=∑ ∗ 𝑠ã𝑜 𝐿𝑖𝑛𝑔𝑢𝑎𝑔𝑒𝑛𝑠 𝑅𝑒𝑔𝑢𝑙𝑎𝑟𝑒𝑠
q0 A,b L(M4)=∅
q0 A,b
L(M5)=∑∗
Linguagens Regulares
• Diferentes autómatos fiitos podem aceitar uma mesma
mensagem.
• M1 e M2 são Autômatos Finitos Equivalentes se e somente se:
L(M1)=L(M2)
Linguagens Regulares
Na teoria da ciência da computação e teoria formal de
linguagem, uma linguagem regular é uma linguagem
formal que pode ser expressa usando expressões
regulares, ou seja, uma linguagem produzida utilizando as
operações de concatenação, união e fecho de Kleene sobre
os elementos de um alfabeto. De acordo com a hierarquia
de Chomsky, linguagens regulares são aquelas geradas por
gramática regulares.
Linguagens Regulares
As linguagens regulares são utilizadas para descrever
dispositivos que realizam computações simples, como os
autômatos finitos, pois representam a linguagem mais
elementar classificada pela hierarquia de Chomsky que não
requer muita memória para ser reconhecida.
Linguagens Regulares
A colecção de linguagens regulares sobre um alfabeto Σ qualquer é
definida recursivamente seguindo as regras abaixo:
• A linguagem vazia (L = Ø) é uma linguagem regular.
• Se x é um elemento qualquer do alfabeto Σ, a linguagem formado pelo
conjunto desse elemento (L = {x}) é uma linguagem regular.
• Se A e B são linguagens regulares, então as linguagens formadas pela
união (L = A ∪ B), concatenação (L = A • B) e fecho de Kleene (L = A* ou L
= B*) desses conjuntos também são linguagens regulares.
• Nenhuma outra linguagem sobre o alfabeto Σ é regular.
Linguagens Regulares
Todas as linguagens finitas são regulares, em particular a
linguagem composta unicamente pela cadeia vazia (L = {ε}
= Ø*) é regular.
Considerando o alfabeto Σ = {a, b}, é possível descrever
linguagens regulares como "todas cadeias que contenham
um número par de 'a' ou "todas cadeias formadas por uma
quantidade qualquer de 'a' seguido de uma quantidade
qualquer de 'b'" e assim por diante.
Linguagens Regulares
Não podemos considerar uma linguagem regular aquelas
linguagens que requerem a actuação de uma memória para
estruturar os elementos de suas cadeias, isto é, quando a
frequência de um elemento da cadeia determina a
frequência de outro elemento da mesma cadeia. Portanto,
linguagens como "todas cadeias de 'a' seguido de 'b', onde
o número de 'a' é igual ao de 'b'", não são regulares pois o
número de 'a' determina o número de 'b'.
Uma linguagem regular satisfaz as seguintes
propriedades que são equivalentes:
• ela é a linguagem descrita por uma expressão regular.
• ela pode ser aceita por um autômato finito
determinístico.
• ela pode ser aceita por um autômato finito não
determinístico.
• ela pode ser aceita por um autômato finito alternado.
• ela pode ser gerada por uma gramática regular.
• ela pode ser gerada por uma gramática de prefixos.
• ela pode ser aceita por uma Máquina de Turing que apenas
faz leituras.
• ela pode ser definida em um monádico da lógica de segunda
ordem.
• ela é reconhecida por algum Monoide finito.
Hierarquia de Chomsky
Tipos de linguagens:
Autômatos Finitos Não-Determinísticos
Um AF é aquele que permite zero, uma ou mais transições de
um estado p, com o mesmo símbolo a ∈ ∑.
𝛿 𝑝, 𝑎 = (𝑞1, 𝑞2, … 𝑞𝑟)
Quando uma máquina está num dado estado e lê o próximo
símbolo de entrada, sabemos que estado será o próximo.
Chamamos isso de computação determinística. Em uma máquina
não determinística, várias escolhas podem existir para cada
próximo estado em qualquer ponto.
Autômatos Finitos Não-Determinísticos
W=00101
AFD -> AFN: Não precisa ser provado, basta 𝛿 D(q,a)= p-> 𝛿 N (q, a)={p}
AFN->AFD: prova por construção
Equivalência entre AFD e AFN
Vamos definir o AFD equivalente M=(QD, ∑, 𝛿 D, 𝑞, 𝐹 ), tal que:
Equivalência entre AFD e AFN
• QD = 2𝑄 , todos os subconjuntos de Q;
• -qij…k ∈ QD representa o conjunto {qi, qj,…, qk}
• q’0 = q0 é o estado inicial;
• FD é o conjunto de estados que contém um estado final do AFN
N
Equivalência entre AFD e AFN
Equivalência entre AFD e AFN
Muitos estados no AFD equivalente não são acessíveos a partir
de q0: devemos inserir apenas estados acessíveis partindo de q0
criando apenas estados alcançáveis.
Equivalência entre AFD e AFN
Equivalência entre AFD e AFN
Próxima Aula
• Exercícios: AFD e AFN
• Autômatos Finitos com Movimentos Vazios (AFNe)
• Definição formal de um AFNe
Exercícios
1. Defina um autômato finito determinístico (AFD) que reconheça
a linguagem composta por todas as cadeias que contêm um
número par de 0s.
2. Desenhe o diagrama de estados de um autômato que aceita a
linguagem de cadeias que terminam com a letra "a".
3. Construa a tabela de transição para um autômato que aceita
cadeias formadas apenas por 0s e 1s, que contenham pelo
menos um 1.
Exercícios
Dado o autômato A definido pelas seguintes transições:
• Estado Inicial: q0q0q0
• Estado de Aceitação: q1q1q1
Estado q0: 0 → q0, 1 → q1
Estado q1: 0 → q2, 1 → q1
Estado q2: 0 → q2, 1 → q2
Testar as cadeias: "010", "111", "100".
Exercícios
1. Minimização de Autômato-> Problema: Dado um autômato com os
estados {q0, q1, q2} e as transições:
• q0 —0→ q1
• q0 —1→ q0
• q1 —0→ q1
• q1 —1→ q2
• q2 —0→ q1
• q2 —1→ q0
Referências Bibliograficas