Complexidades no Teorema de Kleene

Teorema de Kleene:Para uma dada linguagem, são equivalentes

  1. Ela é reconhecida por um autômato determinístico (AD)

  2. Ela é reconhecida por um autômato não determinístico (AND)

  3. Ela é descrita por uma expressão regular (ER)

A demonstração é por uma série de algoritmos que transformam a descrição de um tipo em descrição de outro tipo. Esta página é um guia para a complexidade desses algoritmos. Antes, é preciso definir o tamanho dos vários objetos, sugerido pelas estruturas de dados naturais:

AD: com n estados e k letras, o tamanho é nk

AND: com n estados, k letras e d transições, o tamanho é n+k+d. Entretanto, a não ser em casos patológicos, d é maior que n e k, e podemos tomar d como tamanho.

ER: existem dois tamanhos naturais para uma ER e: alf(e) é o número de ocorrências de letras do alfabeto em e; stl(e) adiciona a esse número o de ocorrências de * . Claro que alf(e) <= stl(e). Por outro lado, é sempre possível simplificar um pouco uma ER para uma forma em que stl(e) <= 2alf(e).



Vamos às transformações:


Arnaldo Mandel <am@ime.usp.br>

Última modificação: Mon Oct 5 17:58:06 BRT 2009 por am