Autômato de árvore infinita

Origem: Wikipédia, a enciclopédia livre.

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 | editar código-fonte]

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 | editar código-fonte]

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. Para todo  com , existe um tal que, para todo , temos e

Condição de aceitação[editar | editar código-fonte]

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 | editar código-fonte]

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 | editar código-fonte]

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 | editar código-fonte]