Veja o final deste post para obter alguns esclarecimentos sobre as definições de autômatos de min-heap.
Pode-se imaginar o uso de uma variedade de estruturas de dados para armazenar informações para uso por máquinas de estado. Por exemplo, autômatos push-down armazenam informações em uma pilha e as máquinas de Turing usam uma fita. As máquinas de estado que usam filas e aquelas que usam duas pilhas ou fitas múltiplas mostraram ser equivalentes em potência às máquinas de Turing.
Imagine uma máquina min-heap. Funciona exatamente como um autômato push-down, com as seguintes exceções:
- Em vez de examinar a última coisa que você adicionou ao heap, apenas o menor elemento (com a ordem definida por máquina) atualmente no heap.
- Em vez de remover a última coisa que você adicionou ao heap, você só pode remover um dos menores elementos (com a ordem definida por máquina) atualmente no heap.
- Em vez de adicionar um elemento à parte superior do heap, você pode adicionar apenas um elemento ao heap, com sua posição sendo determinada de acordo com os outros elementos no heap (com a ordem definida por máquina).
Esta máquina pode aceitar todos os idiomas comuns, simplesmente não usando o heap. Ele também pode aceitar o idioma adicionando 's ao heap, e remover 's da pilha quando lê 's. Pode aceitar uma variedade de outras linguagens sem contexto. No entanto, ele não pode aceitar, por exemplo, (declarado sem prova). EDIT: ou pode? Acho que não, mas já fiquei surpreso antes, e tenho certeza de que ficarei surpreso quando minhas suposições continuarem me fazendo um ... bem.
Ele pode aceitar qualquer linguagem sensível ao contexto ou completa de Turing?
De maneira mais geral, que pesquisa, se houver alguma, foi realizada nessa direção? Que resultados existem, se houver? Também estou interessado em outras variedades de máquinas de estado exóticas, possivelmente aquelas que usam outras estruturas de dados para armazenamento ou vários tipos de restrições de acesso (por exemplo, como os LBAs são TMs restritos). Referências são apreciadas. Peço desculpas antecipadamente se esta pergunta está demonstrando ignorância.
Definição formal:
Fornecemos aqui algumas definições mais detalhadas de autômatos de min-heap, a fim de esclarecer uma discussão mais aprofundada em questões que fazem referência a este material.
Definimos um autômato de heap não-determinístico tipo 1 como uma tupla de 7 que ...
- é um conjunto de estados finito e não vazio;
- é o estado inicial;
- é o conjunto de estados que aceitam;
- é um alfabeto de entrada finito e não vazio;
- γ ∈ Γ w ( γ ) ∈ N w ( γ 1 ) = w ( γ 2 ) é um alfabeto de entrada finito e não vazio, em que o peso de um símbolo , , é tal que ;
- é o símbolo especial da parte inferior da pilha;
- é a função de transição.
A função de transição funciona assumindo um heap inicialmente vazio que consiste apenas em . A função de transição pode adicionar à pilha uma coleção arbitrária (finita, mas possivelmente vazia ou com repetições) de elementos . Como alternativa, a função de transição pode remover uma instância do elemento com o menor peso de todos os elementos restantes na pilha (ou seja, o elemento na parte superior da pilha). A função de transição pode usar apenas a instância do símbolo mais alto (ou seja, de peso mínimo) para determinar qualquer transição.γ 1 , y 2 , . . . , γ k ∈ Γ γ w ( γ )
Além disso, defina um autômato min-heap determinístico do tipo 1 como um autômato min-heap não-determinístico do tipo 1 que satisfaça a seguinte propriedade: para todas as seqüências de caracteres modo que e , .| x | = n σ ∈ Σ | δ n + 1 ( q 0 , x σ y , Z 0 ) | ≤ 1
Defina também um autômato de pilha mínima não-determinística tipo 2 exatamente o mesmo que um autômato de pilha mínima não-determinística tipo 1, exceto as seguintes alterações:
- γ ∈ Γ w ( γ ) ∈ N w ( γ 1 ) = w ( γ 2 ) γ 1 = γ 2 é um alfabeto de entrada finito e não vazio, em que o peso de um símbolo , , é tal que não implica necessariamente ; em outras palavras, diferentes símbolos de heap podem ter o mesmo peso.
- Quando instâncias de símbolos de heap distintos com o mesmo peso são adicionadas ao heap, sua ordem relativa é preservada de acordo com uma ordem de pilha do tipo LIFO (último a entrar, primeiro a sair).
Agradecemos a Raphael por apontar essa definição mais natural, que captura (e amplia) as linguagens sem contexto.
Alguns resultados demonstrados até agora:
- O autômato de pilha mínima do tipo 1 reconhece um conjunto de idiomas que não é um subconjunto nem um superconjunto dos idiomas sem contexto. [ 1 , 2 ]
- Os autômatos de heap mínimo do tipo 2, por sua definição, reconhecem um conjunto de idiomas que é um superconjunto adequado das linguagens sem contexto, bem como um superconjunto adequado dos idiomas aceitos pelos autômatos de heap min do tipo 1.
- Os idiomas aceitos pelos autômatos de pilha mínima tipo 1 parecem estar fechados sob a união, concatenação e estrela Kleene, mas não sob complementação [ 1 ], interseção ou diferença;
- Os idiomas aceitos pelos autômatos de pilha mínima não-determinística do tipo 1 parecem ser um superconjunto adequado de idiomas aceitos pelos autômatos de pilha mínima determinística do tipo 1.
Pode haver alguns outros resultados que eu perdi. Mais resultados estão (possivelmente) a caminho.
Perguntas de acompanhamento
- Fechamento sob reversão? -- Abrir
- Encerramento sob complementação? -- Não!
- O não determinismo aumenta o poder? -- Sim?
- O do tipo 2? -- Abrir
- A adição de pilhas aumenta a potência do tipo 1? - para (?) k > 2
- A adição de uma pilha aumenta a potência do tipo 1? -- Abrir