Alterne entre tempo e complexidade da consulta

18

Trabalhar diretamente com complexidade de tempo ou limitar os limites inferiores do circuito é assustador. Por isso, desenvolvemos ferramentas como complexidade da consulta (ou complexidade da árvore de decisão) para lidar com limites inferiores. Como cada consulta executa pelo menos uma etapa da unidade e os cálculos entre as consultas são contados como livres, a complexidade do tempo é tão alta quanto a complexidade da consulta. No entanto, podemos dizer algo sobre as separações?

Estou curioso sobre o trabalho na literatura clássica ou quântica, mas forneço exemplos do CQ, pois sou mais familiar.

Alguns algoritmos famosos, como a pesquisa de Grover e a descoberta de períodos de Shor, a complexidade do tempo está dentro dos fatores poliolarítmicos da complexidade da consulta. Para outros, como o Problema do subgrupo oculto, temos complexidade de consulta polinomial , mas os algoritmos de tempo polinomial não são conhecidos.

Como existe uma lacuna potencialmente entre o tempo e a complexidade da consulta, não está claro que um algoritmo de complexidade do tempo ideal precise ter a mesma complexidade de consulta que o algoritmo de complexidade da consulta ideal.

Existem exemplos de trade-offs entre tempo e complexidade da consulta?

Existem problemas em que o algoritmo de complexidade de tempo mais conhecido tem uma complexidade de consulta diferente do algoritmo de complexidade de consulta mais conhecido? Em outras palavras, podemos realizar mais consultas para facilitar as operações entre consultas?

Ou existe um argumento que mostra que sempre existe uma versão de um algoritmo de consulta assintoticamente ideal com uma implementação com a melhor complexidade de tempo assintoticamente?

Artem Kaznatcheev
fonte
Você quer um problema natural ou é um problema artificial também?
22611 Robin Ontário
2
Os problemas naturais são preferidos, mas os problemas artificiais são melhores do que nenhuma resposta.
Artem Kaznatcheev

Respostas:

9

Aqui está uma tentativa de criar uma função artificial com a seguinte propriedade:

  • O problema pode ser resolvido com consultas, mas requer tempo.exp ( n )O(logn)exp(n)
  • O problema pode ser resolvido com o tempo mas isso requer consultasO ( n )O(n)O(n)

Deixe o tamanho da entrada ser . Deixe os primeiros bits (vamos chamar essa cadeia x) codificar a entrada para um problema completo para o EEXP. Os próximos bits (vamos chamar essa string de y) têm a propriedade de que todos são zero se e somente se x for uma instância NO do problema de EEXP-complete.log n nn+lognlognn

Em palavras, os primeiros bits codificam um problema difícil e os próximos bits fornecem uma pista sobre a solução do problema. No entanto, para descobrir a solução, observe a seqüência de bits que você faz consultas .n n Ω ( n )lognnnΩ(n)

Portanto, esse problema pode ser resolvido lendo apenas os primeiros bits e gastando o tempo exp (n) ou lendo bits e usando apenas o tempo linear.nlognn

A mesma função passa pela complexidade da consulta quântica. Insira sinais de raiz quadrada sempre que necessário.

Robin Kothari
fonte
7

Uma versão mais extrema do exemplo de Robin:

Deixe o tamanho da entrada ser , com os primeiros bits (chame essa sequência ) codificando uma máquina de Turing . Corrija alguma função . Deixe o último bit da string ser se a máquina de Turing em menos de etapas. O problema é determinar se pára em menos de etapas e a paridade de é par.n - 1nn1T x f ( n ) 1 T x f ( n ) T x f ( n ) xxTxf(n)1Txf(n)Txf(n)x

Assim, fazendo consultas, o problema pode ser resolvido no tempo , enquanto fazendo consultas, o problema pode ser resolvido no tempo .O ( f ( n ) ) nn1O(f(n))nO(n)

Joe Fitzsimons
fonte
Você provavelmente quis dizer que o último bit é tal que a paridade de x é ainda que a máquina de Turing pare no tempo (caso contrário, a pergunta requer apenas uma consulta;)). Isso é legal e pode ser modificado para oferecer qualquer tipo de separação que desejamos entre tempo e consulta. Considere qualquer função e , em seguida, permitir que o primeiro bits de ser uma descrição de uma máquina de giro. Seja o outro de bits tal que a paridade de seja uniforme se em menos de etapas. Então temos consultas versus ao custo deg ( n ) < n g ( n ) x n - g ( n ) x x T x f ( n ) > n g ( n ) n Θ ( f ( ng(n)=ω(1)g(n)<ng(n)xng(n)xxTxf(n)>ng(n)nΘ(f(n)) versus no tempo. n
Artem Kaznatcheev
Desconsidere a primeira frase do meu comentário anterior.
Artem Kaznatcheev
7

Gosto da resposta de Robin Kothari e da modificação de Joe Fitzsimons. Em uma extensão óbvia de suas respostas, eles podem atingir qualquer taxa de separação (exceto constante versus não constante) entre a complexidade da consulta cada vez menor e maior e a complexidade do tempo cada vez menor. No entanto, não há maneira óbvia de tornar suas funções não parciais. Quero apontar um problema natural em que temos uma separação e mostrar que grandes separações são mais difíceis para funções totais.


Um problema natural

Ben Reichardt apontou por e-mail o problema de avaliação da fórmula. A complexidade da consulta quântica para avaliar uma fórmula geral AND-OR de leitura única em variáveis ​​é . No entanto, o algoritmo de consulta economiza tempo. Aqui , o algoritmo conhecido mais rápido é mostrado para fazer consultas e executar no tempo polilogaritmicamente pior. Assim, temos um problema total natural onde existe uma separação conhecida. Embora não haja provas de que essa separação tenha que existir.nΘ(n)O(n)O(nlogn)

Total de funções são mais difíceis de separar?

Para mim, parece mais difícil encontrar funções totais com separações prováveis. Para mostrar que o caso de funções totais e parciais é diferente, apresentarei um argumento sobre a maior separação entre as complexidades da consulta dos algoritmos de consulta ótima e ótima para uma função total.

Usando o limite inferior [1] de Simon, podemos ver que se uma função depende de de suas variáveis, precisaremos consultar pelo menos deles. Por outro lado, o máximo que poderíamos consultar é . Observe que não há razão para consultar todas as variáveis, porque a saída é independente de delas (chame esses bits mortos) e, para uma função total, nenhuma estrutura secreta será revelada observando esses bits mortos. Assim, mesmo o algoritmo mais otimizado no tempo para uma função total pode ser modificado para usar no máximo consultas, assumindo simplesmente que os bits mortos são todos .mΩ(logm)mnnmm0

Portanto, se escrevermos , obteremos uma função total, considerando o algoritmo ideal para consultas com complexidade , existe um algoritmo de tempo-óptima com complexidade com e . Em outras palavras, não podemos ter mais do que uma separação exponencial na complexidade da consulta entre os algoritmos de consulta ideal e de tempo ótimo para funções totais. Eu não ficaria surpreso se esses limites realmente frouxos pudessem ser melhorados.( q 1 ( n ) , t 1 ( n ) ) ( q 2 ( n ) , t 2 ( n ) ) q 2 ( n ) f ( q 1 ( n ) ) f ( n ) = O ( 2 n )(query complexity,time complexity)(q1(n),t1(n))(q2(n),t2(n))q2(n)f(q1(n))f(n)=O(2n)

[1] HU Simon, "Um limite apertado de Z (loglogn) na hora em que RAMs paralelas calculam funções booleanas não degeneradas", em: Symp. em Fundamentos da Teoria da Computação, Lecture Notes in Computer Science, vol. 158, Springer, Berlim, 1983, pp. 439-444.

Artem Kaznatcheev
fonte