Sie sind auf Seite 1von 23

Os Autmatos Finitos 2.

1 Introduo O conceito de autmato finito fornecer uma primeiro proposta da noo de procedimento efetivo (a escolha final para procedimento efetivo sero as maquinas de Turing) Os autmatos finitos correspondem a uma ferramenta importante na resoluo de vrios problemas em computao (e engenharia). Ex: Busca de string de carter num texto e analise lxica em compilao

Como funciona um programa executado num computador? O computador composto de: - um processador : conjunto de registradores inclusive um contador de instrues (program counter = PC) - uma memria onde se encontra o programa (se for um programa embutido a memria pode ser morta = ROM) - uma memria viva para estocar dados de entrado e de processamento

Como representar de modo abstrato os ciclos de execuo? A execuo de uma instruo pode ser vista como a transformao do contedo da memria e dos registradores. O contedo da memria e dos registradores chamado de ESTADO do programa. Cada ciclo de execuo transforma o estado presente num novo estado. Tal transformao pode ser vista como uma funo cujo conjunto origem o conjunto dos estados e cujo conjunto destino tambm o conjunto dos estados. Tal funo chamada de funo de transio. A partir da definio da funo de transio e do estado inicial do programa, podemos saber exatamente a evoluo futura do programa (comportamento deterministico)

O conceito de estado de um sistema (em computao ou engenharia) correspondera um conceito bastante genrico. O estado de um sistema num momento especifico corresponde ento a toda informao necessria para prever a evoluo futura do sistema. Por exemplo, em mecnica, sabendo da posio e velocidade de um slido podemos prever a trajetria futura do objeto. Em particular, no necessrio saber a seqncia de passos que levaram ao estado presente para prever o futuro (hiptese Markoviano no caso dos processos estocasticos) Para um programa especifico rodando num computador especifico, o nmero de estados ser ento muito grande mas FINITO! Ex: um computador de 8Mbytes de memria com 16 registradores de 32 bits tem um nmero de estados igual a :

Um programa executado por um computador pode ser formalmente representado (modelado) ento por: - um conjunto finito de estados (discretos) - uma funo de transio definida sobre o conjunto dos estados discretos - um estado inicial A execuo de um programa por um computador formalmente obtida pela aplicao sucessiva da funo de transio a partir do estado inicial.

Em vez de supor que os dados de entrada se encontram inicialmente na memria do computador, podemos considerar que tais dados so fornecidos ao programa carter por carter. Neste caso precisa-se acrescentar no modelo do programa um dispositivo de leitura de carter. Se o tempo entre duas leitura sucessivo de carter maior que o tempo de execuo de um ciclo de funcionamento do programa, podemos supor que um ciclo de funcionamento ficar travado at a prxima leitura do prximo carter a ser lido. Considerando um ciclo de execuo do programa + o dispositivo de leitura de carter, podemos imaginar uma primeira descrio de um modelo de procedimento efetivo (chamado autmato finito)

2.2 Representao informal do autmatos finitos Um autmato finito determinstico composto dos seguintes elementos: - uma fita de entrada infinita para armazenar o dado de entrada (uma palavra) assim como um dispositivo de leitura - um conjunto finito de estados com em particular: * um estado inicial * estados de aceitao que representam os casos onde as palavras de entrada so aceitas (resposta sim do problema binrio correspondente) - uma funo de transio que a partir do estado presente e do smbolo lido vai produzir um estado seguinte

Inicialmente o programa se encontra no estado inicial e a cabea de leitura se encontra no primeiro smbolo da palavra de entrada. A cada etapa de execuo, o autmato l um smbolo da fita, determina o prximo estado (baseando se na funo de transio) e movimenta a cabea de leitura de uma posio para a direita. O autmato pra quando toda palavra de entrada foi lida e a palavra aceita pelo autmato se o estado final um dos estados de aceitao.

Como qualquer maquina, existe a noo de configurao do autmato que representa toda informao necessria para determinar a evoluo futura da maquina. A configurao representada pelo estado do autmato e pela parte da palavra de entrada que no foi lida ainda. um elemento dado por (Q,w) Qx* Cada etapa da execuo de um autmato modifica ento a configurao do autmato.

Def: A configurao (q',w') derivvel numa nica etapa a partir da configurao (q,w) pela maquina M se: - w = w' (o primeiro carter de w ) - q' = (q,) (q' o resultado da aplicao da funo de transio)

Def: A configurao (q',w') derivvel a partir da configurao (q,w) pela maquina M se existe k 0 e as configuraes (qi,wi) com 0 i k tais que: - (q,w) = (qo,wo) - (q',w') = (qk,wk) - para todo o i k, (qi,wi) |- (qi+1,wi+1)

Def: a execuo de um autmato sobre uma w a seqncia de configuraes: (S,w) |- (q1,w1) |- (q2,w2) |- ... |- (qn,) onde s o estado inicial e a palavra vazia Def: Uma palavra w aceita pelo autmato M se

Def: A linguagem aceita pelo autmato M o conjunto das palavras L(M) tais que:

Na pratica, um autmato representado por um grafo (grafo das transies/estados) onde os estados so representados por vrtices e as transies por arcos. O estado inicial apontado por uma seta e os estados de aceitao so representados por um circulo duplo. Ex1: Representar o autmato que aceita as palavras que terminam pela letra b com ={a,b} Ex2: Representar o autmato que aceita a linguagem dada por {w | w no tem 2 a's consecutivos} Dar exemplos de seqncias de configuraes para os autmatos correspondentes.

Das könnte Ihnen auch gefallen