Avaliando a multilinearização de um circuito aritmético?


13

Deixe ser um polinómio de multi-variada com coeficientes de mais de um campo . A multilinearização de , denotada por , é o resultado da substituição repetida de cada x_i ^ d por d> 1 por x_i . O resultado é obviamente um polinômio multilinear.p(x1,…,xn)Fp x d i d > 1 x ipp^xidd>1xi

Considere o seguinte problema: dado um circuito aritmético C(x1,…,xn) sobre F e dados os elementos de campo a1,…,an , calcule C^(a1,…,an) .

Pergunta: Supondo que a aritmética de campo possa ser feita em tempo unitário, existe um algoritmo de tempo polinomial para isso? Adicionado mais tarde: eu também estaria interessado no caso especial em que C é realmente uma fórmula (um circuito de fan-out 1 ).


1
Por que seria equivalente a calcular a saída de um circuito fechado? O problema que estou enfrentando é que o circuito pode ter caminhos separados de uma entrada para vários nós de multiplicação internos, e avaliar cada um desses nós de multiplicação internos exigiria a substituição de por em um caminho e por no outro. Em um circuito com um número exponencial de caminhos, parece que há um número exponencial de casos para resolver. x i a i 1xixiai1
— #

2
@ Kaveh: Eu não entendo. Veja o circuito . Se você apenas substituir o nó de entrada por um nó com o valor de e avaliar de forma padrão você acaba voltando em vez de . Modelo de computação: tempo polinomial apenas normal em máquinas de Turing. Pense no campo como sendo para concretude, se desejar. x a a 2 a Z / 3 Z(x∗x)xaa2aZ/3Z
— slimton

2
@ Kaveh: Eu não entendo como esse algoritmo implica o que você diz, mas isso de fato contradiz uma hipótese comum na complexidade dos circuitos aritméticos: que o Permanent não possui circuitos aritméticos de tamanho poli (sobre campos diferentes de F_2). Considere o polinômio . A parte multilinear desse polinômio tem a propriedade de que sua parte de maior grau ( ) é apenas . Se houver um pequeno circuito aritmético computando , então pode-se mostrar que existe um pequeno circuito aritmético computando . q = 2 n R = Y 1 Y 2 ⋯ y n P e r ( x 11 , ... , x n n ) q rp=∏i(∑jxijyj)q=2nr=y1y2⋯ynPer(x11,…,xnn)qr
— Srikanth

1
@Srikanth: Eu não vi seu comentário antes de postar minha resposta (que acabou sendo a mesma construção que você deu em seu comentário). Desde então, excluí minha resposta e você deve postar seu comentário como resposta.
— 13139 Joshua Grochow

2
@ Josué: Eu não adicionei meu comentário como resposta, pois não entendo por que a construção da Kaveh funciona. Vejo que o circuito aritmético calcula um polinômio que concorda com a multilinearização em todas as entradas, mas não tenho certeza se calcula formalmente a multilinearização do polinômio fornecido (veja meus comentários após a resposta de Kaveh). Minha construção (e a sua) pressupõe que a multilinearização seja computada formalmente.
— Srikanth

Respostas:


12

No caso de o campo tamanho de pelo menos , acho que esse problema é difícil. Mais especificamente, acho que se o acima pode ser resolvido com eficiência para desse tamanho, o CNF-SAT possui algoritmos aleatórios eficientes. Digamos que recebemos uma fórmula CNF . Pode-se facilmente criar um circuito aritmético que calcula uma `` aritmetização '' de , onde o polinômio concorda com a fórmula nas entradas - . Considere a multilinearização de . Observe que2 N F φ C p φ p φ 0 1 q p q p φ { 0 , 1 } nF2nFφCpφpφ01qpqconcorda com portanto, em .pφ{0,1}n

Eu afirmo que é diferente de zero se for satisfatório. Claramente, se , então não pode ser satisfeito. Por outro lado, pode-se mostrar que qualquer polinômio multilinear diferente de zero não pode desaparecer em todos os . Isso implica que um diferente de zero (e, portanto, o correspondente ) não desaparece em alguma entrada em .φ q = 0 φ { 0 , 1 } n q φ { 0 , 1 } nqφq=0φ{0,1}nqφ{0,1}n

Portanto, verificar a satisfação de é equivalente a verificar se é diferente de zero. Digamos, agora, que poderíamos avaliar em um campo grandeq q q Fφqq . Então, usando o Lema de Schwartz-Zippel, poderíamos testar a identidadeusando um algoritmo aleatório eficiente e verificar se é o polinômio zero (o tamanho deé usado para limitar o erro no Lema de Schwartz-Zippel).FqF


Parece-me que F é um campo fixo porque não há nada na entrada que especifique F. Observe também que a pergunta assume que as operações de campo levam tempo unitário.
— Kaveh

Obrigado Srikanth. Como Kaveh adivinhou, eu estava realmente interessado no caso de campo finito fixo, mas essa resposta que você deu me ajuda a entender um pouco melhor a pergunta.
— #

3

Suponha que exista um algoritmo polytime que forneceu e → a calculou o resultado da multi-linearização de C em → a . (wlog, assumirei que a saída → b será um vetor de números binários p- bits b i é k se b i , k for um.)C(x→)∈F(x→)a→Ca→b→pbikbi,k

Desde , existe um circuito booleano polysize que dada a codificação do circuito aritmético e os valores para as variáveis calcula a multi-linearização do circuito aritmético nas entradas. Vamos chamar esse circuito M .P⊆P/polyM

Seja um circuito aritmético arbitrário. Corrija as variáveis ​​do circuito booleano M que descrevem o circuito aritmético, para que tenhamos um circuito booleano que calcula a multi-linearização de C em determinadas entradas.CMC

Nós podemos transformar este circuito para um circuito aritmético sobre notando que x p - 1 é 1 para todos os valores, mas 0 de maneira que primeiro levantar todas as entradas para a alimentação p - 1 . Substituir cada f ∧ g portão por multiplicação f . g , cada f ∨ g portão por f + g - f . g e cada ¬ f gate por 1 - f .Fpxp−110p−1f∧gf.gf∨gf+g−f.g¬f1−f

Pela suposição que fizemos acima sobre o formato da saída, podemos transformar a saída de binária em valores acima de . Tome a saída para b i e combine-os para obter ∑ 0 ≤ k ≤ p - 1 k b i , k .Fpbi∑0≤k≤p−1kbi,k

Também podemos converter a entrada fornecida como valores acima de para a forma binária, pois existem polinômios passando por qualquer número finito de pontos. Por exemplo, se estamos trabalhando no mod 3 , considere os polinômios 2 x ( x + 1 ) e 2 x ( x + 2 ) que fornecem o primeiro e o segundo bits da entrada x ∈ F 3 .Fpmod32x(x+1)2x(x+2)x∈F3

Combinando estes temos um circuito aritmético sobre computar a multi-linearização de C com tamanho polynomail no tamanho de C .FpCC


2
Não está claro para mim por que o circuito aritmético que você descreveu calcula a multilinearização de , ou mesmo um polinômio multilinear. Eu só consigo ver que o circuito aritmético calcula algum polinômio que concorda com a multilinearização de C nas entradas 0 - 1 . CC01
— Srikanth

@ Krikanth: a versão aritmética do circuito booleano (com algumas entradas fixas) calcula a versão multilinear de C , não precisa ser multilinear. Em seguida, o único problema é que a entrada / saída estão em binário não os valores superiores a F p , então eu só preciso para corrigir a codificação para entrada / saída de binário para originais valores de entrada e saída. O circuito resultante é um circuito aritmético que obtém os valores para variáveis ​​de C , codifica-os em binário, calcula o valor da multilinearização de C sobre essas entradas e gera a resposta em binário e depois converte-os novamente em F p . MCFpCCFp
— Kaveh

[continuou] O resultado é um circuito aritmético com as mesmas variáveis que tem, e com os mesmos resultados, e é computar o multilinearization de C . CC
— Kaveh

2
@ Kaveh: Você assumiu que a entrada para o circuito booleano é da mesma forma que a saída de M ? De qualquer forma, ainda não estou convencido. É perfeitamente possível que um circuito aritmético calcule um polinômio f que concorda com um polinômio g em todas as entradas do campo e ainda assim f ≠ g . Por exemplo, o polinômio x p concorda com x em todas as entradas e, no entanto, elas não são iguais a polinômios. Como você sabe que o circuito M não está simplesmente computando um polinômio não multilinear que concorda com a multilinearização de C em todas as entradas?MMfgf≠gxpxMC
— Srikanth

@ Krikanth: descrevi a forma de entrada e saída na minha resposta. A entrada para está em binário, a saída de M está na forma declarada acima. Eu não disse que é multilinear, eu só disse que ele calcula a multilinearization do C . MMC
— Kaveh
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.