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.
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 ) .
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 ).
cc.complexity-theory
polynomials
Slimton
fuente
fuente
Respuestas:
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 qF 2n F φ C p φ p φ 0 1 q p q está de acuerdo con } n .p y 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}n q φ .{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).φ q q F q F
fuente
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⃗ ) a⃗ C a⃗ b⃗ p bi k bi,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 MP⊆P/poly M .
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 CC M C 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 .Fp xp−1 1 0 p−1 f∧g f.g f∨g f+g−f.g ¬f 1−f
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 , kFp bi ∑0≤k≤p−1kbi,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 .Fp mod3 2x(x+1) 2x(x+2) x∈F3
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 .Fp C C
fuente