Autômato de árvore infinita

Em ciência da computação e lógica matemática, um autômato de árvore infinita é uma máquina de estados que lida com estruturas de árvores infinitas. Pode ser visto como uma extensão de um autômato de árvore finita, que aceita apenas estruturas de árvores finitas. Também pode ser visto como uma extensão de alguns autômatos de palavras infinitas, como o autômato de Büchi e o autômato de Muller.

Um autômato finito que roda em uma árvore infinita foi usado pela primeira vez por Rabin[1][2] para provar a decidibilidade da lógica de segunda ordem monádica. Foi também observado que autômato de árvore e teorias lógicas estão intimamente ligados e permitem que problemas de decisão em lógica sejam reduzidos a problemas de decisão para autômato.

Definição editar

Um autômato de árvore infinita roda sobre uma árvore rotulada  . Há muitas formulações ligeiramente diferentes de autômato de árvore. Aqui uma das formulações é descrita. Um autômato de árvore infinita é uma tupla   onde,

  •   é um alfabeto.
  •   é um conjunto finito. Cada elemento de   é um grau permitido na árvore de entrada.
  •   é um conjunto finito de estados.
  •   é uma função de transição que mapeia um estado de um autômato  , um caracter de entrada  , e um grau   para um conjunto de d-tuplas de estados.
  •   é o estado inicial do autômato.
  •   é uma condição de aceitação.

Execução editar

Uma execução do autômato de árvore   sobre uma árvore    -rotulada é uma árvore    -rotulada. Suponhamos que o autômato de árvore está no estado   e chegou a um nó   marcado com   da árvore de entrada.   é o grau do nó  . Em seguida, o autômato continua selecionando uma tupla   do conjunto   e dividindo-se em   cópias de si mesmo. Para cada  , uma cópia entra no estado   e prossegue para o nó  . Este processo produz uma execução sobre uma árvore.

Formalmente, executando   na árvore de entrada satisfaz as seguintes duas condições:

  1.  
  2. Para todo   com  , existe um   tal que, para todo  , temos   e  

Condição de aceitação editar

Em uma execução  , um caminho infinito é marcado por uma sequência de estados. Esta sequência de estados forma uma palavra infinita sobre os estados. Se todas essas palavras infinitas pertencem a condição de aceitação  , então, a execução é de aceitação. As condições de aceitação interessantes são Büchi, Rabin, Streett e Muller. Se para uma árvore de entrada     -rotulada existe uma execução de aceitação, então, a árvore de entrada é aceita pelo autômato. O conjunto de todas as árvores aceitas  -rotuladas é chamado de linguagem da árvore   que é reconhecida pelo autômato de árvore  .

Observações editar

O conjunto   pode parecer estranho para algumas pessoas. Algumas vezes   é omitido da definição, quando é um conjunto singleton que significa que uma árvore de entrada tem ramificação fixa em cada nó. Por exemplo, se  , então a árvore de entrada tem que ser uma árvore binária completa.

Autômato de árvore infinita é determinístico se, para algum  ,   e   a função de transição   tem exatamente um elemento. Caso contrário, o autômato é não-determinístico.

Aceitando linguagens de árvores editar

As condições de aceitação de Muller, de paridade, de Rabin e de Streett em um autômato de árvore infinita reconhecem as mesmas linguagens de árvores.

Mas, a condição de aceitação de Büchi é estritamente mais fraca que outras condições de aceitação, por exemplo, existe uma linguagem de árvore, que pode ser reconhecida pela condição de aceitação de Muller em autômato de árvore infinita, mas que não pode ser reconhecida por nenhuma condição de aceitação de Büchi para algum autômato de árvore infinita.[3][4]

Linguagens de árvores, as quais são reconhecidas pelas condições de aceitação de Muller são fechadas sob união, interseção, projeção e complemento.

Referências editar