Relação entre complexidade de algoritmos e classe de autômatos


8

Não consegui encontrar um gráfico representando ou respondendo à seguinte pergunta: Existe uma relação direta entre a complexidade de um algoritmo (como o melhor / pior caso de classificação rápida) e a classe de autômatos que podem implementar o algoritmo. Por exemplo, existe uma variedade de complexidade que os autômatos podem expressar? Se a resposta for afirmativa à pergunta, existe um recurso que represente o relacionamento? Obrigado!


1
"classe de autômatos que podem implementar o algoritmo" - de qual conjunto? Normalmente não haverá um único tipo. Além disso, o Google "Complex Zoo".
Raphael

Respostas:


7

Sim, existem relacionamentos em muitos casos!

Por exemplo, sabe-se que qualquer idioma aceito por máquinas de balcão com limite de reversão está em P(veja aqui ).

Da mesma forma, sabemos que todos os idiomas regulares estão em P, já que existe um algoritmo de tempo polinomial para determinar se um NFA aceita uma determinada palavra.

Há muitos para enumerar aqui, mas, em geral, modelos de computação mais limitados estão em classes de complexidade mais fáceis.


1
Além disso, linguagem livre de contexto são em P ( CYK algoritmo )
vonbrand

9

Aqui estão alguns resultados conhecidos:

  1. REG=DSPACE(1)=NSPACE(1)=DSPACE(o(loglogn))=NSPACE(o(loglogn)), Onde REGé o conjunto de idiomas regulares. Para provas, consulte a página da Wikipedia emDSPACE.

  2. DCFLSC, Onde DCFL é o conjunto de linguagens determinísticas livres de contexto e SCé a aula de Steve . Veja a página da Wikipedia emDCFL.

  3. NLLOGCFLAC1, Onde LOGCFLé o conjunto de idiomas reduzidos pelo espaço de log para um idioma livre de contexto. Veja a página da Wikipedia emLOGCFL, que também fornece alguns idiomas completos para LOGCFL sob reduções de espaço de log.

  4. CSL=NSPACE(n), Onde CSLé o conjunto de linguagens sensíveis ao contexto. Veja a página da Wikipedia emCSL.

  5. A classe de idiomas aceitos pelos PDAs determinantes não-auditivos é DSPACE(nlogn), e a classe de idiomas aceitos por PDAs não deterministas e não determinantes é NSPACE(n2). Veja a página da Wikipedia em PDAs .

  6. Autômatos de duas pilhas são equivalentes em potência às máquinas de Turing, mas restringir os autômatos resulta em modelos mais fracos. Veja um relatório técnico da San Pietro.


3

Existe uma relação direta entre a complexidade de um algoritmo (como o melhor / pior caso de classificação rápida) e a classe de autômatos que podem implementar o algoritmo.

A questão de qual classe de autômatos pode implementar um determinado algoritmo, como a classificação rápida, é complicada, porque não está claro o que seria considerado uma implementação desse algoritmo. Para uma classificação rápida, as comparações realizadas certamente devem ser as mesmas, mas a ordem na qual as comparações ocorrem também deve ser a mesma? E a ordem dos acessos de leitura a elementos específicos da entrada? A ordem de copiar, mover e trocar operações por elementos específicos?

Você precisaria especificar vários oráculos para as operações que são importantes para você, mas então você já está em uma situação muito específica baseada no algoritmo e muito longe das classes gerais de estudos de autômatos comumente. A maneira de contornar esse dilema é falar sobre problemas, em vez de algoritmos, e formalizar problemas falando sobre linguagens.

Por exemplo, existe uma variedade de complexidade que os autômatos podem expressar?

Na verdade, não, porque um autômato push-down pode ler sua entrada apenas uma vez e somente na direção direta. No entanto, se você dividir a máquina em uma peça com permissão para ler a entrada para frente e para trás como desejar, e manter um número finito de ponteiros para posições de entrada específicas (NL) e uma peça que é um autômato push-down que recebe sua entrada da outra parte, você obtém a classe de complexidade LOGCFL , que é igual ao SAC 1 (uma classe de circuito).

Se você não separar as duas partes e apenas adicionar uma pilha para NL, então você obtém a classe de autômatos AuxPDA , que é igual à classe de complexidade P . Porém, se você decidir limitar o tempo de execução desse autômato (com pilha e armazenamento auxiliar logarítmico) ao tempo polinomial, obterá o NAuxPDA P , que é novamente igual ao LOGCFL. (E se você insistir no tempo de execução polinomial determinístico, descarte a pilha, mas permita o armazenamento auxiliar polilogarítmico, obterá SC .)

Por outro lado, se você mantiver a restrição de que os autômatos podem ler sua entrada apenas uma vez e somente na direção direta e exigir adicionalmente que ele possa usar sua pilha apenas de uma maneira muito determinística diretamente com base na entrada (ou seja, o símbolo de entrada determina se esse autômato empurra algo na pilha, retira algo da pilha ou deixa a pilha intocada), então você acaba com um autômato de empilhamento visível, que reconhece exatamente as linguagens de palavras aninhadas , que também podem ser reconhecidas no espaço logarítmico determinístico .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.