Академический Документы
Профессиональный Документы
Культура Документы
2
, onde
i
e (V T)*, e A V. Estas
gramticas, assim como as de Tipo 0, so reconhecidas pela mquina de Turing com fita
limitada.
Uma gramtica sensvel ao contexto uma gramtica formal no livre de contexto em
que os lados esquerdo e direito de qualquer regra de produo podem ser cercados por um
contexto de smbolo terminal e smbolo no terminal (varivel).
As gramticas de Tipo 2 (gramticas livres de contexto) so as que possuem regras de
produo na forma V w, onde V uma varivel (no terminal) e w uma cadeia de
terminais e/ou variveis; w tambm pode ser uma cadeia vazia. Independente dos smbolos
que antecedem o V, V sempre ir gerar w. Estas gramticas so reconhecidas por autmatos de
pilha.
Este tipo de gramtica proporciona um mecanismo matemtico simples e preciso para
descrever os mtodos em que algumas linguagens naturais so construdas a partir de blocos
menores, capturando a "estrutura de bloco" das sentenas de uma maneira natural.
As gramticas de Tipo 2 so muito utilizadas para correes sintticas de expresses
algbricas na forma infixa.
Tipo 3 ou Gramticas Regulares so as gramticas em que a regra de produo tem a
forma ABw ou AwB , sendo A V e B T*. Elas possuem algumas regras de restrio.
Estas gramticas so reconhecidas por autmatos finitos.
As gramticas acima mencionadas possuem uma estreita relao com os autmatos
abstratos e servem atualmente como a base de componentes muito importantes de diversos
softwares, incluindo algumas partes dos compiladores e analisadores sintticos.
4 Autmatos
A teoria dos autmatos o estudo dos dispositivos de computao abstratos, ou
mquinas (HOPCROFT; ULLMAN; MOTWANI. 2002).
Antes de existir computadores como hoje, mais precisamente em 1930, Alan Turing
estudava mquinas abstratas que possuiam as caractersticas, no que se refere a capacidade de
efetuar clculos, dos modernos computadores com o objetivo de descrever os limites reais do
que era possvel e do que era impossvel a uma mquina computacional. As concluses
obtidas por ele so aplicadas ainda hoje nos computadores.
Alguns importantes componentes de um software fazem uso dos conceitos de
autmatos finitos e de certos tipos de gramticas formais ou metalinguagens.
A teoria dos autmatos est intrinsecamente relacionada teoria das linguagens
formais. Um autmato pode ser visto como uma representao finita de uma linguagem
formal que pode ser um conjunto infinito.
Um autmato deve rodar aps a entrada de uma cadeia. Ele deve fazer o
processamento smbolo a smbolo at o fim da cadeia, onde este smbolo deve pertencer ao
alfabeto do autmato. A cada processamento o autmato faz uma transio a outro estado.
Esta transio obedece alguns parmetros. A depender do estado final, o autmato pode
aceitar ou rejeitar a cadeia (palavra) de entrada.
Um autmato possui um subconjunto de estado denominados de estados de aceitao.
Se o estado final (ltimo estado de uma cadeia) for tambm um estado de aceitao, ento a
palavra aceita; caso contrrio, rejeitada.
As linguagens reconhecidas por um autmato o conjunto de todas as palavras que
so aceitas pelo autmato; j as linguagens reconhecveis so o conjunto de linguagens que
so reconhecidas por um autmato.
Os autmatos so utilizados principalmente na elaborao de compiladores, parsing e
na rea de verificao formal.
As principais entradas, tipos de estados e condies de aceitao esto relatadas
abaixo:
A. Entradas
Entrada finita: Autmato aceita apenas uma sequncia finita de smbolos.
Entrada infinita: O autmato aceita cadeias infinitas (-cadeias).
B. Tipos de Estado
Estado finito: O autmato possui um nmero finito de estados.
Estado infinito: Um autmato que no pode ter um nmero finito de estados e muitas
vezes sem ser possvel numera-los.
Pilha de memria: Autmatos com a memria baseada no formato de pilha.
C. Condies de Aceitao
Aceitao de palavras finitas: Se o ltimo estado processado for um estado de
aceitao, a cadeia ser aceita.
Aceitao de palavras infinitas: No h estados de aceitao em um -autmato. A
aceitao ocorre aps anlise das sequncias infinitas dos estados visitados durante a
execuo.
Aceitao probabilstica: No ocorre a aceitao ou rejeio de uma cadeia. O
autmato pode entrar com uma probabilidade entre zero e um.
Nos aprofundaremos mais um pouco nos autmatos finitos determinsticos e no
determinsticos.
4.1 Autmatos Finitos
Autmatos finitos so linguagens regulares, ele possui um conjunto de estados. O
controle do estado se desloca indo de estado a estado como forma de resposta a entradas
externas.
Um autmato finito pode ser dividido, quanto a forma de controle dos estados, em
autmatos finitos deterministicos que so aqueles que no podem estar em mais de um
estado simultaneamente e em autmatos finitos no-determinsticos aqueles que tornam
possvel a possibilidade de estar em mais de um estado simultaneamente.
So os autmatos tidos como no-deterministicos que nos permite programar
solues para problemas diversos fazendo o uso de uma linguagem de alto nvel.
A. Autmatos finitos determinsticos
O autmatos finitos determinsticos so aqueles que se encontram em somente um
estado aps a leitura de uma entrada. por este motivo que d-se o nome de determinstico,
pois a cada entrada existe apenas um estado ao qual o autmato poder transitar em relao ao
seu estado atual.
Os autmatos finitos determinsticos so 5-uplas compostas por:
Um conjunto finito de estados, o qual comumente denotado por Q;
Um conjunto finito de smbolos de entrada alfabeto. Denotado por sigma ( );
Uma funo de transio que possui como argumentos um estado e um smbolo de
entrada. Seu retorno um estado i. Sendo q um estado e um smbolo de entrada, a
notao de uma funo de transio dada por (q, ).
Um estado inicial que representado por q
0
. (q
0
Q).
Um conjunto de estados finais ou de aceitao (F Q).
M = ( , Q, , q
0
, F )
Um autmato finito determinstico (AFD) aceita uma cadeia de smbolos como
entrada e faz a verificao de smbolo a smbolo, indo de estado a estado, iniciando a
verificao pelo estado q
0
e indo at ao ltimo estado, ou seja, q
n
. Seja a
1
a
2
...a
n
a cadeia de
entrada, o AFD inicia a verificao com a funo de transio (q
0
, a
1
) = q
1
; aps a
verificao, ocorre a trasio do programa para o prximo estado; passando assim a prxima
verificao a ser (q
1
, a
2
) = q
2
; novamente ocorre o mesmo processo da verificao anterior;
aps a verificao, ocorre a trasio para o prximo estado, e assim por diante, encontrando
os estados q
1
q
2
...q
n
. Se q
n
um elemento de F, ento a cadeia de entrada aceita pelo
autmato; caso contrrio, rejeitada.
Se aps passar o ltimo smbolo da cadeia, o Autmato Finito determinstico assumir
um estado final (tambm chamado de aceitao), o autmato para e a cadeia de entrada
aceita; porm, se aps processar o ltimo elemento da cadeia o AFD assumir um estado no
final, o autmato tambm ir parar, mas a cadeia de entrada ser rejeitada (MENEZES, 2000).
Exemplo 4.1A Seja {w | w possui a forma x01y, onde x e y podem assumir strings compostas
somente por 0s e 1s}.
So exemplos de cadeias aceitas por este autmato: 01011, 01011, 00001011,
111101011, 110101100, 1111010110000, 01011000, 1010110. No se incluem no conjunto
de strings aceitas pelo AFD cadeias como , 0, 1111, 0000, 1100, 10.
Supondo que a cadeia de entrada seja 001101, a verificao de validade desta string
por parte do AFD ocorre da seguinte forma:
Premissas
I Um autmato finito verifica smbolo a smbolo, ou seja, caractere a caractere at o
fim da string;
II O alfabeto de entrada deste autmato = {0, 1};
III O estado inicial dado por q
0
;
IV No pode haver mais de um estado ocorrendo simultaneamente.
Estados
Este autmato possui 3 estados possveis, so eles:
q
0
Estado inicial, o estado pelo qual a verificao ir iniciar. Ao iniciar a
verificao, esperado que o primeiro smbolo de entrada seja o 0, pois assim o autmato
estar prximo de obter a substring 01 que obrigatria cadeia de entrada. Se o primeiro
smbolo de entrada for 1, ento ele no estar prximo de obter 01; ento a transio ocorre
de q
0
para q
0
, ou seja, o prximo smbolo deve ser comparado novamente com q
0
; (q
0
, 1) =
q
0
. Se a entrada for 0, o autmato estar mais prximo de encontrar 01, assim ocorre a
transio para q
1
; (q
0
, 0) = q
1
.
q
1
Se 0 entrada, o autmato no estar mais prximo de 01, ento deve-se
permanecer em q
1
. Isto , (q
1
, 0) = q
1
; porm, se a entrada for 1, a substring 01 obtida
substring dada como obrigatria uma cadeia por este autmato ento possvel seguir ao
estado de de aceitao, onde, neste caso, a ordem dos smbolos no mais importa. Ou seja,
(q
1
, 1) = q
2
.
q
2
Chegando ao estado final, a ordem no mais importa, visto que j foi encontrado a
substring 01; ento, seja 0 ou 1 a entrada, a transio ocorrer da mesma forma: ela se
manter em q2. A transio de q2 para entrada 0 ou 1 (q
2
, 1) = (q
1
, 0) = q
2
.
Resoluo
I Tendo a cadeia 001101 como entrada, deve-se analisar elemento a elemento para
saber se a cadeia ser aceita pelo autmato, a verificao se inicia pelo elemento 0 (1
elemento da cadeia).
II (q
0
, 0) = q
1
. Como a entrada foi 0, a verificao passar ao estado q
1
.
III Testando o segundo elemento da cadeia, que tambm 0, temos que o controle
permanece em q
1
. J que a verificao do estado q
1
para 0 (q
1
, 0) = q
1
.
IV O teste nesse momento ocorrer com o terceiro elemento da cadeia, que um 1.
A verificao de q
1
para 1 (q
1
, 1) = q
2
. Logo, a funo de transio passa ao estado q2.
O qual um estado pertencente a F, ou seja, um estado final, ou de aceitao.
V A funo de transio de q
2
dada por (q
2
, 0) = (q
2
, 1) = q
2
. Logo, uma vez
neste estado de aceitao, o programa (ou controle) sempre ir ficar neste estado de
aceitao at o fim da cadeia. Concluimos ento que o autmato ir aceitar essa cadeia.
O autmato acima pode ser especificado como: A = ({q
0
, q
1
, q
2
}, {0, 1}, , q
0
, {q
2
});
porm h formas mais simplificadas de fazer a demonstrao deste autmato, como o caso
de um diagrama de trasio.
O diagrama de transio uma representao grfica de um autmato. Os estados e as
transies so representadas como na imagem abaixo:
Figura 3. Representaes dos estados e da transio de um autmato finito.
Quando um estado tiver como resultado de uma funo de transio a si prprio, um
arco sair dele e retornar a ele. Isto , o estado tem-se como origem e destino de uma
transio.
Tendo conhecimento das representaes grficas dos elementos de um autmato, h a
possibilidade de representar o autmato do exemplo anterior por meios de grafos, ficando
como resultado o esquema abaixo:
Figura 4. Autmato do exemplo Exemplo 4.1 representado por grafos
Quando o estado q
0
receber o smbolo 1 como entrada, ele ir se auto-referenciar na
funo de transio; porm, se receber o smbolo 0 como entrada, ocorrer a transio para q
1
.
No estado q
1
, se a entrada for 0, ele ir se auto-referenciar na funo de transio, ou seja, a
transio ocorrer para o prprio q
1
; entretanto, se o smbolo de entrada for 1, haver a
transio para q
2
. Como q
2
o nico estado final (ou de aceitao) e ele se auto-referencia
tanto para as entradas 0 como para as entradas 1, o programa que uma vez estiver nele,
dele no sair. Assim, a cadeia que findar no estado de aceitao q
2
ser aceita pelo autmato;
porm, a cadeia que no terminar no estado de aceitao q2 ser rejeitada pelo autmato.
Alm da representao grfica (diagrama de transio), ainda podemos fazer uso da
tabela de transio, que uma representao tabular de uma funo de transio que recebe
dois argumentos e retorna um valor. As linhas da tabela correspondem aos estados, e as
colunas correspondem s entradas.
0 1
q
0
q
1
q
0
q
1
q
1
q
2
*q
2
q
2
q
2
Tabela 1. Tabela de transies para o DFA do exemplo "Exemplo 4.1A".
B. Autmatos finitos no-determinsticos.
Um autmato finito no-determinstico (AFND) possui a capacidade de estar em
vrios estados de forma simultnea.
Assim como um AFD, um AFND possui um conjunto finito de estados, um conjunto
de smbolos de entrada, um estado inicial, um conjunto de estados de aceitao e funes de
transio. A diferena entre os dois tipos de autmatos est no retorno da funo de transio
do AFND, que pode retornar zero, um ou mais estados, enquando a funo de transio de um
AFD retorna exclusivamente um estado (HOPCROFT; ULLMAN; MOTWANI. 2002).
Uma sequncia de entrada a
1
a
2
...a
n
aceita por um autmato finito no determinstico
se existe uma sequncia de transies correspondendo a sequncia de entrada, que leva do
estado inicial a algum dos estados finais (OLIVEIRA, 2011).
Exemplo 4.1B Seja {w | w possui forma x10, onde x pode assumir qualquer cadeia composta
somente por 0s e 1s}, verificar se a cadeia de entrada 0110 ser ou no aceita pelo autmato.
Este autmato tem a tarefa de aceitar toda cadeia binria que tenham 10 como seus
dois ltimos smbolos. Pelo diagrama de transio temos o seguinte grafo:
Figura 5. Grafo do autmato
A funo de transio do estado q
0
(q
0
, 0) = q
0
e (q
0
, 1) = {q
0,
q
1
}. J a funo de
transio de q
1
(q
1
, 0) = q
2
. O estado q
2
o estado de aceitao e no possui funo de
transio.
Resoluo:
Seja a cadeia de entrada 0110, verificar se ela ser ou no aceita pelo autmato finito
no determinstico.
I Assim como ocorre nos autmatos finitos determinsticos, a funo de verificao
verifica smbolo a smbolo, iniciando com o primeiro smbolo da cadeia de entrada, que neste
caso o 0 e indo at o ltimo smbolo da cadeia. Sendo (q
0
, 0) = q
0
, o programa continua
apenas em q
0
.
II Verificar o segundo smbolo da cadeia (1). Sendo (q
0
, 1) = {q
0,
q
1
} a funo de
transio de q
0
para o valor de entrada 1, o controle passar a estar simultaneamente em
dois estados: em q
0
e em q
1
.
III Agora a verificao do terceiro smbolo de entrada ocorrer tanto em q
0
como em
q
1
. Sendo 1 o smbolo de entrada, e sendo (q
0
, 1) = {q
0,
q
1
} a funo de transio de q
0
para entrada 1, mais dois estados estaro em uso simultneo na verificao do quarto e
ltimo elemento da cadeia de entrada. Sendo que a funo de transio de q
1
para entrada
igual a 1 inexistente, este ramo do autmato fica paralisado.
IV Sendo 0 o ltimo smbolo da cadeia de entrada e sendo que h estados em
funcionamento simultneo (q
0
e q
1
), a verificao ocorrer para ambos. A funo de transio
de q
0
para smbolo de entrada igual a 0 (q
0
, 0) = q
0
; como o estado final q
2
, a cadeia no
foi aceita por este ramo do autmato. Agora efetua-se o teste para q
1
; (q
1
, 0) = q
2
. Como este
o ltimo smbolo da cadeia de entrada, e necessrio que apenas um ramo termine no
estado final para que a cadeia seja aceita, e sendo que por este ramo do autmato a cadeia
findou no estado final (ou de aceitao), a cadeia aceita pelo autmato.
A resoluo feita acima pode ser visualizada no diagrama abaixo, veja:
Figura 6. Diagrama da resoluo do exemplo "Exemplo 4.1B"
Os autmatos finitos no determinsticos so muito utilizados para advinhar palavras
a partir de uma subtring que j foi dada como entrada.
5 Consideraes Finais
Aps ter o conhecimento destes fatores, possvel concluir que a teoria dos autmatos
foi e continua sendo uma importante teoria rea da cincia da computao. Onde com uma
entrada temos uma determinada quantidade de sadas em funo dos parmetros da funo de
transio presente em cada estado do autmato.
A constituio dos autmatos nos permite elaborar tcnicas de segurana e de
inteligncia artificial bem configuradas (j que alguns importantes componentes de um
software ou at mesmo todo um software - fazem uso dos conceitos de autmatos finitos e
de certos tipos de gramticas formais) os quais sem sua utilizao para estes fins tornaria esta
tarefa muito mais difcil, e s vezes at mesmo impossvel.
Referncias
HOPCROFT, John E.; ULLMAN, Jeffrey D.; MOTWANI, Rajeev. Introduo teoria de
autmatos, linguagens e computao. 2 ed. 9 reimpr. Rio de Janeiro: Elsevier, 2002.
MENEZES, Paulo. Linguagens Formais e Autmatos. 3 ed. Porto Alegre: Editora Sagral
Luzzatto, 2000.
RAMOS, Marcus. Linguagens Formais e Autmatos. Disponvel em <
http://www.univasf.edu.br/~marcus.ramos/lfa-2008-1/Apostila.pdf>. Acesso em 05/05/2014
s 15:52.
OLIVEIRA, Eduardo. Linguagens Formais. Disponvel em <
https://docs.google.com/file/d/0Byl0QsKzHhtOOTRiYTNkMTQtYjE0MS00ZTgzLWFkNDI
tNGU4YzU5ZDU5YjY4/edit >. Acessado em 09/05/2014.
Bibliografia Consultada
SANTOS, Edmar. Obteno de Gramticas L-systems a Partir de Cadeiras de
Caracteres. Disponvel em <
https://www.unimep.br/phpg/bibdig/pdfs/2006/WJETMILTOISG.pdf >. Acesso em
08/05/2014 s 14:51.
UFPE. Hierarquia de Chomsky. Disponvel em
<http://www.cin.ufpe.br/~if114/Monografias/Automatos%20Probabilisticos/chomsky.htm>.
Acessado em 07/05/2014 s 15:26.
AGUIAR, Laura. Introduo a Teoria de Conjuntos. Disponvel em: <
http://www.ufjf.br/cursinho/files/2012/05/pag-01.121.pdf>. Acesso em 09/05/2014.