construção do autômato finito não

5
Construção do autômato finito não-determinístico Na seqüência, apresenta-se o Algoritmo de Thompson para a construção de um autômato finito para reconhecer uma dada expressão regular. Esse procedimento determina como construir um autômato finito não- determinístico para reconhecer sentenças de uma gramática regular. Posteriormente, apresenta-se o procedimento para converter esse autômato para uma máquina determinística. O primeiro passo do procedimento é decompor a expressão regular que define as sentenças que deverão ser reconhecidas em termos de suas relações elementares: um símbolo do alfabeto da linguagem; concatenação, ; alternativa, ; repetição, . Uma vez que a expressão regular tenha sido estruturada em termos das relações elementares, é preciso construir um autômato para reconhecer cada uma das partes da expressão. Para cada relação elementar, a estrutura de um autômato correspondente é determinada. Para reconhecer um símbolo do alfabeto da linguagem , o autômato correspondente é composto simplesmente por um estado inicial que atinge um estado final através de uma transição pela ocorrência do símbolo (Figura 3.3 a). [Reconhecimento de um símbolo] [Concatenação] [Alternativa] [Repetição]

Upload: vinicius-mattos

Post on 28-Dec-2015

20 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Construção Do Autômato Finito Não

Construção do autômato finito não-determinístico

Na seqüência, apresenta-se o Algoritmo de Thompson para a construção de

um autômato finito para reconhecer uma dada expressão regular. Esse

procedimento determina como construir um autômato finito não-

determinístico para reconhecer sentenças de uma gramática regular.

Posteriormente, apresenta-se o procedimento para converter esse autômato

para uma máquina determinística.

O primeiro passo do procedimento é decompor a expressão regular que define

as sentenças que deverão ser reconhecidas em termos de suas relações

elementares:

um símbolo do alfabeto da linguagem;

concatenação, ;

alternativa, ;

repetição, .

Uma vez que a expressão regular tenha sido estruturada em termos das

relações elementares, é preciso construir um autômato para reconhecer cada

uma das partes da expressão. Para cada relação elementar, a estrutura de um

autômato correspondente é determinada.

Para reconhecer um símbolo do alfabeto da linguagem , o autômato

correspondente é composto simplesmente por um estado inicial que atinge um

estado final através de uma transição pela ocorrência do símbolo

(Figura 3.3a).

[Reconhecimento de um símbolo]

[Concatenação]

[Alternativa]

[Repetição]

Page 2: Construção Do Autômato Finito Não

Figura: Autômatos elementares para a construção de Thompson.

Se a relação elementar for a concatenação de duas expressões regulares, ,

é preciso compor as duas máquinas e que reconhecem e ,

respectivamente. Para a máquina composta, o estado final de é

combinado com o estado inicial de (Figura 3.3b).

Para reconhecer a relação elementar que estabelece a alternativa entre duas

expressões regulares, , a forma de compor as duas respectivas

máquinas e é através da introdução de um novo estado inicial. Este

estado tem transições para os estados iniciais de cada uma das máquinas

e através da string vazia. Similarmente, um novo estado final é

introduzido, o qual pode ser atingido com transições pela string vazia a partir

dos estados finais das duas máquinas originais (Figura 3.3c).

A última relação elementar a ser considerada é a repetição, , cuja máquina

de reconhecimento deve ser derivada da máquina que reconhece .

Também neste caso novos estados inicial e final são introduzidos. Para

reconhecer zero ocorrências de , há uma transição pela string vazia direta

do novo estado inicial para o novo estado final. Para reconhecer uma

ocorrência de , há transições pelastring vazia entre o novo estado inicial e o

estado inicial original, assim como entre o estado final original e o novo

estado final. Finalmente, o reconhecimento de várias ocorrências de dá-se

através de uma transição pela string vazia do estado final para o estado inicial

da máquina original (Figura 3.3d).

A título de exemplo, considere a construção de um um autômato finito não-

determinístico para reconhecer sentenças descritas pela expressão

regular . O primeiro passo é decompor a expressão em termos

de suas relações elementares:

Page 3: Construção Do Autômato Finito Não

Uma vez determinadas as expressões regulares elementares que compõem a

expressão regular sob análise, é possível construir os autômatos que

reconhecem cada uma dessas expressões elementares.

Para reconhecer a expressão , constrói-se a máquina que reconhece o

símbolo , usando a construção apresentada na Figura 3.3a:

Similarmente, para reconhecer , constrói-se a máquina que reconhece

o símbolo :

A expressão regular é a composição pela alternativa das expressões

e . O autômato para reconhecer é construído pela combinação das

máquinas e conforme a estratégia apresentada na Figura 3.3c:

Neste caso, os estados 5 e 6 são os novos estados introduzidos

respectivamente como o estado inicial e o estado final da nova máquina .

O reconhecimento da expressão regular é feito pelo autômato que

reconhece zero ou mais ocorrências de , ou seja, a máquina é

construída a partir da máquina conforme a estratégia apresentada na

Figura 3.3d:

Page 4: Construção Do Autômato Finito Não

Observe-se que os novos estados inicial e final de passam a ser os

estados 7 e 8, respectivamente.

Como a expressão é formada pela concatenação de com , a

máquina deve combinar a máquina com uma nova instância da

máquina segundo a estratégia apresentada na Figura 3.3b:

Observe que o estado inicial da nova máquina , , foi combinado com o

estado final da máquina , enquanto que o estado final de , , passou

a ser o estado final de .

Similarmente, é uma concatenação de e . Combinando a

máquina com uma nova instância da máquina que reconhece , obtém-

se para a máquina :

Page 5: Construção Do Autômato Finito Não

Finalmente, a expressão completa é uma concatenação de com .

Combinando com uma máquina obtém-se a máquina que reconhece

a expressão regular completa, que é apresentada na Figura 3.4. Para essa

máquina, o estado inicial é o estado inicial de , ou seja, o estado 7, e o

estado final é o estado final de , o estado .

Figura: Autômato não-determinístico que reconhece