Em geral, sabemos que a complexidade de testar se uma função assume um valor específico em uma determinada entrada é mais fácil do que avaliar a função nessa entrada. Por exemplo:
Avaliar a permanente de uma matriz inteira não negativa é # P-difícil, mas dizer se essa permanente é zero ou diferente de zero está em P (correspondência bipartida)
Existem n números reais , de modo que o polinômio ∏ n i = 1 ( x - a i ) tenha as seguintes propriedades (na verdade, a maioria dos conjuntos de n números reais terá essas propriedades). Para uma entrada dada x , testar se esse polinômio é zero leva Θ ( log n ) multiplicações e comparações (pelo resultado de Ben-Or , pois o conjunto de zero tem ncomponentes), mas avaliar o polinômio acima leva pelo menos etapas, dePaterson-Stockmeyer.
A classificação requer etapas em uma árvore de comparação (também Ω ( n log n ) etapas em uma árvore de decisão algébrica real, novamente pelo resultado de Ben-Or), mas testar se uma lista é classificada usa apenas comparações n - 1 .
Existem condições gerais em um polinômio que são suficientes para sugerir que a complexidade (algébrica) de testar se o polinômio é zero ou não é equivalente à complexidade de avaliar o polinômio?
Estou procurando condições que não dependam de conhecer a complexidade dos problemas de antemão.
( Esclarecimento 27/10/2010 ) Para esclarecer, o polinômio não faz parte da entrada. O que isso significa é que, dada uma família fixa de funções (uma para cada tamanho de entrada (comprimento de bit ou número de entradas)), desejo comparar a complexidade do problema de linguagem / decisão { X : f n ( X ) = 0 onde n é o "tamanho" de X } com a complexidade de avaliar as funções { f n } .
Esclarecimento: Estou perguntando sobre a complexidade assintótica de avaliar / testar famílias de polinômios. Por exemplo, em um campo fixo (ou anel, como ) "a permanente" não é um único polinômio, mas uma família infinita { p e r m n : n ≥ 0 } em que p e r m n é a permanente de um n × n matriz sobre que campos (ou anel).
fonte
Respostas:
Em , teste para zero e avaliação são "quase" iguais no seguinte sentido: Suponha que você tenha uma árvore de decisão que teste se algum polinômio irredutível f é diferente de zero. Estamos trabalhando em C , portanto, só podemos testar a igualdade, mas não temos "<". Essa é a diferença importante para o segundo exemplo da questão! Agora siga o caminho típico, ou seja, o caminho seguido por quase todas as entradas (sempre seguimos a ramificação " ≠ "). Além disso, siga o caminho típico de todos os elementos da variedade V ( f ) . Seja v o nó no qual esses dois caminhos assumem uma ramificação diferente pela primeira vez. Let h 1 ,C f C ≠ V(f) v são os polinômios testados ao longo do prefixo comum dos dois caminhos. Como V ( f ) está fechado, todos os elementos que estão em V ( f ) e atingem v também estão em V ( h m ) . Assim, se f ( x ) = 0 , então um dos h i desaparece em x . Aplicamos a Nullstellensatz de Hilbert a h 1 ⋯ h m e obtemos que f g =h1,…,hm V(f) V(f) v V(hm) f(x)=0 hi x h1⋯hm para algum polinômio g que é coprime para f . Em suma, enquanto não estamos computando f , ao decidir se f ( x ) = 0 , temos que computar f g para algum coprime g .fg=h1⋯hm g f f f(x)=0 fg g
fonte
Os "usos algorítmicos do teorema de Feferman-Vaught" de Makowski são possivelmente relevantes. Ele define polinômios somando estruturas definidas pelo MSOL em gráficos e mostra que elas são tratáveis para avaliar quando os gráficos são delimitados pela largura da árvore.
Isso não diz muito sobre a diferença na complexidade dos testes / avaliações, além de ser o FPT. Testar um valor significa perguntar se existe uma configuração de variáveis que a fórmula do MSO2 dada no gráfico determinado seja verdadeira, enquanto a avaliação envolve enumerar atribuições que satisfaçam a fórmula do MSO2. Isso parece estar relacionado à questão de como a complexidade da contagem do SAT se relaciona à complexidade do SAT.
Editar 10/29 Outro conceito útil pode ser procurar a propriedade Uniform Difficult Point. Aparentemente, os polinômios com essa propriedade são fáceis de avaliar em todos os pontos ou difíceis de avaliar em quase todos os pontos. Makowski fornece algumas referências nos slides 46-52 - http://www.cs.technion.ac.il/admlogic/TR/2009/icla09-slides.pdf
fonte
Vou arriscar a ideia de que a avaliação de um polinômio em F p para o primeiro-fixo p (ou qualquer extensão campo finito dos mesmos, e com os coeficientes restritas ao mesmo campo) se encaixam no seu critério.q(x) Fp p
mais concretamente, vamos considerar um polinômio em . Sabemos que x 2 = x em F 2 , portanto, se assumirmos que qualquer polinômio já está em uma forma reduzida quando fornecida como uma entrada, resta apenas considerar um dos seguintes itens: 0 , 1 , x , x + 1 e avaliar adequadamente qualquer um desses polinômios em 0 ou 1 realiza no máximo 2 operações aritméticas.F2[x] x2=x F2 0,1,x,x+1 0 1
Acredito que uma declaração similar de "tempo constante via número fixo de operações aritméticas" se aplica mais geralmente a onde q = p n onde p é primo. Observe que, se n não for corrigido, essa instrução não será mais válidaFq q=pn p n
fonte
Não sei se entendi a pergunta corretamente, mas deixe-me tentar esclarecer um pouco.
Normalmente, avaliar um polinômio em determinados valores é mais fácil do que o teste de identidade, especialmente quando a representação do polinômio é por meio de um circuito (alguma representação sucinta). No entanto, existem muitos algoritmos de teste de identidade randomizados (o Schwarz-Zippel é o mais direto) que funciona apenas em avaliações.
Houve mais progressos nos algoritmos de teste de identidade de caixa preta. No momento, a maioria fica em circuitos restritos de profundidade 3 (soma dos produtos das somas das variáveis). (FWIW) Parte disso é mencionada em mais detalhes nos capítulos 3 e 4 da minha tese de mestrado . E houve outras melhorias por Saxena e Seshadri recentemente também.
fonte
fonte