¿Evaluar la multilinealización de un circuito aritmético?

13

Deje que un polinomio multivariable con coeficientes más de un campo F . El multilinearization de p , denotada por p , es el resultado de sustituir repetidamente cada x d i con d > 1 por x i . El resultado es obviamente un polinomio multilineal.p(x1,,xn)Fpp^xidd>1xi

Considere el siguiente problema: dado un circuito aritmético más de F y de campo dado elementos un 1 , ... , un n , calcular C ( un 1 , ... , un n ) .C(x1,,xn)Fa1,,anC^(a1,,an)

Pregunta: Suponiendo que la aritmética de campo se pueda hacer en unidad de tiempo, ¿existe un algoritmo de tiempo polinómico para esto? Más adelante: también me interesaría el caso especial en el que es en realidad una fórmula (un circuito de abanico 1 ).C1

Slimton
fuente
1
¿Por qué sería equivalente a calcular la salida de un circuito cerrado? El problema al que me enfrento es que el circuito puede tener rutas disjuntas desde una entrada a varios nodos de multiplicación internos, y evaluar cada uno de esos nodos de multiplicación internos requeriría reemplazar x i por a i en una ruta y por 1 en la otra . En un circuito con un número exponencial de rutas, parece que hay un número exponencial de casos para atender. xixiai1
Slimton
2
@Kaveh: No lo entiendo. Mira el circuito . Si simplemente reemplaza el nodo de entrada x por un nodo con valor a y evalúa de la manera estándar, terminará devolviendo un 2 en lugar de a . Modelo de computación: solo tiempo polinómico normal en máquinas Turing. Piense en el campo como Z / 3 Z para la concreción, si lo desea. (xx)xaa2aZ/3Z
slimton
2
@Kaveh: No entiendo cómo un algoritmo de este tipo implica lo que usted dice, pero esto en realidad contradice una hipótesis común en la complejidad del circuito aritmético: que el permanente no tiene circuitos aritméticos de tamaño polivinílico (sobre campos que no sean F_2). Considere el polinomio . La parte multilineal q de este polinomio tiene la propiedad de que su parte de mayor grado ( = 2 n ) es solo r = y 1 y 2y n P e r ( xp=i(jxijyj)q=2n. Si hay un pequeño circuito aritmético que computaq, entonces se puede demostrar que hay un pequeño circuito aritmético que computar. r=y1y2ynPer(x11,,xnn)qr
Srikanth
1
@Srikanth: No vi su comentario antes de publicar mi respuesta (que resultó ser la misma construcción que dio en su comentario). Desde entonces he eliminado mi respuesta, y debes publicar tu comentario como respuesta.
Joshua Grochow
2
@ Joshua: No he agregado mi comentario como respuesta ya que no entiendo por qué funciona la construcción de Kaveh. Veo que el circuito aritmético calcula un polinomio que está de acuerdo con la multilinearización en todas las entradas, pero no estoy seguro de que calcule formalmente la multilinearización del polinomio dado (vea mis comentarios después de la respuesta de Kaveh). Mi construcción (y la suya) supone que la multilinealización se calcula formalmente.
Srikanth el

Respuestas:

12

En el caso de que el campo tenga un tamaño de al menos 2 n , creo que este problema es difícil. Más específicamente, creo que si lo anterior se puede resolver de manera eficiente para F tan grande, entonces CNF-SAT tiene algoritmos aleatorios eficientes. Digamos que se nos da una fórmula CNF φ . Uno puede fácilmente llegar a un circuito aritmético C que calcula un `` aritmetización '' p de φ , donde el polinomio p está de acuerdo con la fórmula φ en 0 - 1 entradas. Considere la q multilinealización de p . Tenga en cuenta que qF2nFφCpφpφ01qpqestá de acuerdo con } n .py por lo tanto en { 0 , 1φ{0,1}n

Afirmo que no es cero si f φ es satisfactoria. Claramente, si q = 0 , entonces φ no puede ser satisfecho. Por el contrario, se puede demostrar que cualquier polinomio multilineal distinto de cero no puede desaparecer en todos los { 0 , 1 } n . Esto implica que un q distinto de cero (y, por lo tanto, el correspondiente φ ) no desaparece en alguna entrada en { 0 , 1qφq=0φ{0,1}nqφ .{0,1}n

Por lo tanto, verificar la satisfacción de es equivalente a verificar si q no es cero. Por ejemplo, ahora, que podría evaluar q lo largo de un gran campo F . Luego, usando el Lema de Schwartz-Zippel, podríamos probar la identidad q usando un algoritmo aleatorio eficiente y verificar si es el polinomio cero (el tamaño de F se usa para el límite superior del error en el Lema de Schwartz-Zippel).φqqFqF

Srikanth
fuente
Me parece que F es un campo fijo porque no hay nada en la entrada que especifique F. También tenga en cuenta que la pregunta supone que las operaciones de campo toman tiempo unitario.
Kaveh
Gracias Srikanth Como Kaveh supuso que estaba realmente interesado en el caso de campo finito fijo, pero esta respuesta que me dio me ayuda a entender la pregunta un poco mejor.
Slimton
3

Suponga que hay un algoritmo de polytime que dado y a calculó el resultado de la linealización múltiple de C en a . (wlog Asumiré que la salida b será un vector de números binarios de p bits b i es k si f b i , k es uno).C(x)F(x)aCabpbikbi,k

Dado que , existe un circuito booleano polisizado que, dada la codificación del circuito aritmético, y los valores de las variables calculan la multilinealización del circuito aritmético en las entradas. Llamemos a este circuito MPP/polyM .

Sea un circuito aritmético arbitrario. Arregle las variables del circuito booleano M que describen el circuito aritmético, por lo que tenemos un circuito booleano que calcula la multilinealización de CCMC en entradas dadas.

Podemos convertir este circuito en un circuito aritmético sobre al observar que x p - 1 es 1 para todos los valores, pero 0, por lo que primero eleva todas las entradas a la potencia p - 1 . Reemplazar cada f g puerta por multiplicación f . g , cada puerta f g por f + g - f . g y cada ¬ f puerta por 1 - f .Fpxp110p1fgf.gfgf+gf.g¬f1f

Por el supuesto que hicimos anteriormente sobre el formato de la salida, podemos convertir la salida de binario a valores sobre . Tome la salida para b i y combínelos para obtener 0 k p - 1 k b i , kFpbi0kp1kbi,k .

También podemos convertir la entrada dada como valores sobre en forma binaria ya que hay polinomios que pasan por cualquier número finito de puntos. Por ejemplo, si estamos trabajando en mod 3 , considere los polinomios 2 x ( x + 1 ) y 2 x ( x + 2 ) que dan el primer y el segundo bit de la entrada x F 3 .Fpmod32x(x+1)2x(x+2)xF3

La combinación de estos tenemos un circuito aritmético sobre cálculo de la multi-linealización de C con polynomail tamaño en el tamaño de C .FpCC

Kaveh
fuente
2
It is not clear to me why the arithmetic circuit you have described computes the multilinearization of C, or indeed even a multilinear polynomial. I am only able to see that the arithmetic circuit computes some polynomial that agrees with the multilinearization of C on 0-1 inputs.
Srikanth
@Srikanth: the arithmetic version of the boolean circuit M (with some inputs fixed) computes the multilinear version of C, it doesn't need to be a multilinear. Then the only problem is that input/output are in binary not values over Fp, so I just need to fix the encoding for input/output from binary to original input and output values. The resulting circuit is an arithmetic circuit that gets the values for variables of C, encodes them in binary, computes the value of the multilinearization of C over those inputs and output the answer in binary, and then translate them back to Fp.
Kaveh
[continued] The result it is an arithmetic circuit with the same variables that C has, and with the same outputs, and it is computing the multilinearization of C.
Kaveh
2
@Kaveh: Have you assumed that the input to the boolean circuit M is of the same form as the output of M? In any case, I am still not convinced. It is perfectly possible for an arithmetic circuit to compute a polynomial f that agrees with a polynomial g at all inputs from the field and yet fg. For example, the polynomial xp agrees with x at all inputs, and yet they are not equal as polynomials. How do you know that the circuit M is not simply computing a non-multilinear polynomial that agrees with the multilinearization of C at all inputs?
Srikanth
@Srikanth: I have described the form of input and output in my answer. The input to M is in binary, the output of M is in the form stated above. I haven't said that it is multilinear, I have only said that it computes the multilinearization of the C.
Kaveh