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

8
Prof. André Luis Roland Tancredo Engenheiro da Computação e Pesquisador em Desenvolvimento Tecnológico para Semicondutores pelo CNPq Especialista 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

description

- PowerPoint PPT Presentation

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

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

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

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

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

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

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

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

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

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

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

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

(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

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

Transformação de AFNs em AFDs

Prof. André Luis Roland Tancredo Setembro 2009

Teoria da Computação AFNs em AFDs

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

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