Essa pode ser uma pergunta subjetiva, e não uma resposta concreta, mas de qualquer maneira.
Na teoria da complexidade estudamos a noção de cálculos eficientes. Existem classes como significa tempo polinomial e significa espaço no log . Ambos são considerados representados como uma espécie de "eficiência" e capturam muito bem as dificuldades de alguns problemas.L
Mas há uma diferença entre e : enquanto o tempo polinomial, , é definido como a união de problemas que são executados no tempo para qualquer constante , isso é,L P O ( n k ) k
,
o espaço do log, , é definido como . Se imitarmos a definição de , torna-seS P A C E [ log n ] P
,
onde é chamado de classe de espaço polylog . Minha pergunta é:
Por que usamos o espaço de log como a noção de computação eficiente, em vez do espaço polylog?
Uma questão principal pode ser sobre os conjuntos completos de problemas. No espaço de registro, muitas reduções de uma, e têm problemas completos. Por outro lado, se tiver problemas completos com essas reduções, teríamos contraditado o teorema da hierarquia espacial. Mas e se mudarmos para as reduções do polilog? Podemos evitar esses problemas? Em geral, se tentarmos encaixar na noção de eficiência e (se necessário) modificar algumas das definições para obter todas as boas propriedades que uma classe "boa" deve ter, até onde podemos ir?L P o l y L P o l y L
Existe alguma razão teórica e / ou prática para usar o espaço do log em vez do espaço polylog?
fonte
Respostas:
A menor classe que contém tempo linear e fechada em sub-rotinas é P. A menor classe que contém espaço em log e fechada em sub-rotinas ainda é espaço em log. Portanto, P e L são as menores classes robustas de tempo e espaço, respectivamente, e é por isso que elas se sentem bem ao modelar computação eficiente.
fonte
Um problema é que não se sabe se . Isso praticamente mata a noção de eficiência. Em outra nota, determinar se a interseção dos idiomas reconhecidos pelos autômatos não está vazia é sob reduções do espaço de log [Lange-Rossmanith] . Talvez haja alguns problemas semelhantes para o espaço polilogístico determinístico.SPACE[log2n]⊆P logk−1(n) NSPACE [logkn] -complete
A classe foi estudada no passado. [Cook] provou isso . Conforme observado por Derrick Stolee, essa classe agora é conhecida como e foi generalizada para . Mais informações aqui .PLOSS=⋃kTISP[nk,klog2n] DCFL⊆PLOSS SC2 SCk
fonte
O espaço de log garante tempo polinomial, uma vez que existem no máximo de uma determinada máquina de Turing para espaço de log. Os problemas completos de Alcance Indireto e Alcance Direcionado (para L e NL, respectivamente) são muito "legais" de se pensar.2O(logn)=poly(n)
Observe que sua definição de PolyL também fornece PolyL = NPolyL, pelo teorema de Savitch, uma vez que .NSPACE[logkn]⊆SPACE[log2kn]
Quando o espaço polilog é considerado, o trabalho foi feito para considerar o espaço polilogial com tempo polinomial simultâneo, fornecendo à hierarquia SC: .SCk=TISP[poly(n),logkn]
fonte
Eu acho que todas as outras respostas são muito boas; Vou tentar dar uma perspectiva diferente sobre o assunto.
Não sei até que ponto P modela a computação "eficiente" no mundo real, mas gostamos da classe por causa de suas boas propriedades de fechamento e outras razões matemáticas. Da mesma forma, L também é uma boa aula devido a algumas das razões mencionadas acima.
No entanto, como você comentou, se relaxarmos nossa definição de "eficiente" para um tempo quase polinomial, então o PolyL também será eficiente. Poderíamos discutir a teoria da complexidade em que permitimos que as classes definidas com um limite logarítmico em algum recurso usem recursos de polilog. Da mesma forma, também relaxaríamos nossas definições de NC, NL etc. para permitir circuitos de tamanho quase polinomial. Se fizermos isso, NC 1 , L, NL e NC todos coincidem com a classe PolyL. Nesse sentido, PolyL é uma classe robusta, pois muitas classes naturais coincidem com ela. Para obter mais informações sobre a teoria da complexidade com log -> polylog e polynomial -> quase-polinomial, consulte Classes de circuitos de tamanho quasipolinomial de Barrington.
Outro motivo para estudar classes poliL ou similares como quase-AC 0 é que, embora uma separação oráculo entre (digamos) ParityP e PH implique que PARITY não esteja contida em AC 0 , a implicação inversa não é conhecida como verdadeira. Por outro lado, PARITY não está contido em quase-AC 0 se e somente se houver uma separação do oráculo entre ParityP e PH. Da mesma forma, as classes quase-TC 0 e quase-AC 0 são diferentes se e somente se houver uma separação oráculo entre CH e PH. Portanto, as classes de complexidade usuais, como PH, ModPH, CH etc., quando reduzidas por um exponencial para provar os resultados do oráculo, se transformam em versões quase polinomiais das classes usuais AC 0 , ACC 0 e TC0 respectivamente. Da mesma forma, o argumento usado no teorema de Toda (PH está contido em P PP ) pode ser usado para mostrar que quase-AC 0 está contido na profundidade 3 quase-TC 0 . (Não sei se a mesma conclusão é conhecida para as versões usuais dessas classes. Vi isso listado como um problema em aberto em alguns artigos.)
fonte