Teoria da Computação Transformação de Autômatos Finitos Não-Determinísticos em...

Post on 15-Jan-2016

47 views 3 download

description

- PowerPoint PPT Presentation

Transcript of Teoria da Computação Transformação de Autômatos Finitos Não-Determinísticos em...

Prof. André Luis Roland TancredoEngenheiro da Computação e Pesquisador em Desenvolvimento Tecnológico para Semicondutores pelo CNPqEspecialista em Microeletrônica

Professor do grupo Anhanguera Educacional nos cursos de Engenharia da Computação e Tecnologia e Análise em Desenvolvimento de Sistemas nas disciplinas Arquitetura Avançada de Computadores, Programação Estruturada II e Teoria da Computação FA5 – Unidade Limeira/SP

Teoria da Computação

Transformação de Autômatos Finitos Não-Determinísticos em Determinísticos

Setembro 2009

Vamos ilustrar o procedimento de converter um AFN para um AFD usando uma das máquinas (AFN) apresentadas na aula anterior. A descrição formal desta máquina é (Q, {a,b}, δ, 1, {1}), o conjunto de estados Q é {1,2,3} como mostrado na figura abaixo:

Transformação de AFNs em AFDs

Prof. André Luis Roland Tancredo Setembro 2009

Teoria da Computação AFNs em AFDs

Para construir um AFD D que é equivalente ao AFN anterior, primeiro determinamos os estados de D. O AFN tem três estados, {1,2,3}, portanto construímos D com oito estados, um para cada subconjunto dos estados do AFN dado. Rotulamos cada um dos estados de D com o subconjunto correspondente. Por conseguinte o conjunto de estados de D é

{ ,{1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3}}

Transformação de AFNs em AFDs

Prof. André Luis Roland Tancredo Setembro 2009

Teoria da Computação AFNs em AFDs

A seguir, determinamos os estados inicial e de aceitação (final) de D. O estado inicial é E ({1}), o conjunto de estados que são atingíveis a partir de 1 viajando por setas , mais o próprio 1. Uma seta vai de 1 para 3, portanto E ({1}) = {1,3}. Os novos estados de aceitação são aqueles contendo o estado de aceitação do AFN original; por conseguinte {{1}, {1,2}, {1,3}, {1,2,3}}.

Transformação de AFNs em AFDs

Prof. André Luis Roland Tancredo Setembro 2009

Teoria da Computação AFNs em AFDs

Finalmente, determinamos a função de transição de D. Cada um dos estados de D vai para um lugar sobre a entrada a, e um lugar para a entrada b. Exemplos:

. Em D, o estado {2} vai para {2,3} sobre a entrada a, porque no AFN original o estado 2 vai tanto para 2 quanto para 3 sobre a entrada a e não podemos ir além de 2 ou 3 ao longo de setas . O estado {2} vai para o estado {3} sobre a entrada b, porque no AFN original o estado 2 vai somente para o estado 3 sobre a entrada b e não podemos ir além de 3 ao longo de setas .

. O estado {1} vai para sobre a, porque nenhuma seta a sai dele. Ele vai para {2} sobre b.

Transformação de AFNs em AFDs

Prof. André Luis Roland Tancredo Setembro 2009

Teoria da Computação AFNs em AFDs

(cont.)

.O estado {3} vai para {1,3} sobre a, porque no AFN original o estado 3 vai para 1 sobre a e 1 por sua vez vai para 3 com uma seta . O estado {3} sobre b vai para .

. O estado {1,2} sobre a vai para {2,3} porque 1 não aponta para nenhum estado com setas a e 2 aponta tanto para 2 quanto para 3 com setas a e nenhum aponta para lugar nenhum com set as . O estado {1,2} sobre b vai para {2,3}.

Transformação de AFNs em AFDs

Prof. André Luis Roland Tancredo Setembro 2009

Teoria da Computação AFNs em AFDs

Transformação de AFNs em AFDs

Prof. André Luis Roland Tancredo Setembro 2009

Teoria da Computação AFNs em AFDs

Podemos simplificar essa máquina observando que nenhuma seta aponta para os estados {1} e {1,2}, portanto eles podem ser removidos sem afetar o desempenho da máquina.

Transformação de AFNs em AFDs

Prof. André Luis Roland Tancredo Setembro 2009

Teoria da Computação AFNs em AFDs