En general, sabemos que la complejidad de probar si una función toma un valor particular en una entrada dada es más fácil que evaluar la función en esa entrada. Por ejemplo:
Evaluar el permanente de una matriz entera no negativa es # P-hard, pero determinar si dicho permanente es cero o no está en P (coincidencia bipartita)
Hay n números reales , de modo que el polinomio tiene las siguientes propiedades (de hecho, la mayoría de los conjuntos de números reales tendrán estas propiedades) . Para la entrada dada , probar si este polinomio es cero toma multiplicaciones y comparaciones de (por el resultado de Ben-Or , ya que el conjunto cero tiene componentes), pero evaluar el polinomio anterior toma al menos pasos, por Paterson-Stockmeyer .∏ n i = 1 ( x - a i )
La clasificación requiere pasos de en un árbol de comparación (también pasos de en un árbol de decisión algebraico real, nuevamente por el resultado de Ben-Or), pero probar si una lista está ordenada solo usa comparaciones.Ω ( n log n ) n - 1
¿Existen condiciones generales en un polinomio que sean suficientes para implicar que la complejidad (algebraica) de probar si el polinomio es cero o no es equivalente a la complejidad de evaluar el polinomio?
Estoy buscando condiciones que no dependan de conocer de antemano la complejidad de los problemas.
( Aclaración 27/10/2010 ) Para ser claros, el polinomio no es parte de la entrada. Lo que eso significa es que, dada una familia fija de funciones (una para cada tamaño de entrada (longitud de bit o número de entradas)), quiero comparar la complejidad del problema de lenguaje / decisión con la complejidad de evaluar las funciones .{ X : f n ( X ) = 0 donde n es el "tamaño" de X } { f n }
Aclaración: estoy preguntando sobre la complejidad asintótica de evaluar / probar familias de polinomios. Por ejemplo, sobre un campo fijo (o anillo, como ) "el permanente" no es un polinomio único, sino una familia infinita donde es el permanente de una matriz sobre ese campo (o anillo). { p e r m n : n ≥ 0 } p e r m n n × n
fuente
Respuestas:
Sobre , la prueba de cero y la evaluación son "casi" lo mismo en el siguiente sentido: suponga que tiene un árbol de decisión que prueba si algún polinomio irreducible es distinto de cero. Estamos trabajando sobre , por lo tanto, solo podemos probar la igualdad, pero no tenemos "<". ¡Esa es la diferencia importante con el segundo ejemplo en la pregunta! Ahora tome la ruta típica, es decir, la ruta tomada por casi todas las entradas (siempre seguimos el " " -branch). Además, tome la ruta típica de todos los elementos en la variedad . Sea el nodo en el que estas dos rutas toman una rama diferente por primera vez. Deje f C ≠ V ( f ) v h 1 , … , h m V ( f ) V ( f ) v V ( h m ) f ( x ) = 0 h i x h 1 ⋯ h m f g = h 1 ⋯ h m g f f f ( x ) = 0do F do ≠ V( f) v h1, ... , hmetro sean los polinomios que se prueban a lo largo del prefijo común de las dos rutas. Como está cerrado, todos los elementos que se encuentran en y alcanzan también se encuentran en . Por lo tanto, si , entonces uno de los desaparece en . Aplicamos el Nullstellensatz de Hilbert a y obtenemos para algún polinomio que es coprimo a . En resumen, aunque no estamos calculando , al decidir si , tenemos que calcular para algún coprimoV( f) V( f) v V( hmetro) F(x ) = 0 hyo X h1⋯ hmetro Fsol= h1⋯ hmetro sol F F F( x ) = 0 gFsol sol .
fuente
"Usos algorítmicos del teorema de Feferman-Vaught" de Makowski es posiblemente relevante. Define polinomios al sumar sobre estructuras definibles por MSOL en gráficos y muestra que son manejables para evaluar cuándo los gráficos están delimitados por el ancho de los árboles.
Esto no dice mucho sobre la diferencia en la complejidad de la prueba / evaluación más allá de ser FPT. Probar un valor significa preguntar si existe una configuración de variables tales que la fórmula MSO2 dada en el gráfico dado se evalúa como verdadera, mientras que la evaluación implica enumerar sobre las asignaciones satisfactorias de la fórmula MSO2. Esto parece estar relacionado con la cuestión de cómo la complejidad de contar SAT se relaciona con la complejidad de SAT.
Editar 10/29 Otro concepto útil podría ser buscar en la Propiedad Uniforme de Punto Difícil. Aparentemente, los polinomios con esta propiedad son fáciles de evaluar en todos los puntos o difíciles de evaluar en casi todos los puntos. Makowski da algunas referencias en las diapositivas 46-52 - http://www.cs.technion.ac.il/admlogic/TR/2009/icla09-slides.pdf
fuente
Voy a aventurar la idea de que evaluar un polinomio en para primo fijo (o cualquier extensión de campo finita del mismo, y con los coeficientes restringidos al mismo campo) se ajustará a su criterio.F p pq( x ) Fpags pags
más concretamente, consideremos un polinomio en . Sabemos que en , por lo que si suponemos que cualquier polinomio ya está en una forma reducida cuando se da como entrada, nos queda simplemente considerando uno de: y en consecuencia, evaluar cualquiera de estos polinomios en o toma como máximo 2 operaciones aritméticas. x 2 =x F 2 0,1,x,x+101F2[ x ] X2= x F2 0 , 1 , x , x + 1 0 0 1
Creo que una declaración similar de "tiempo constante a través de un número fijo de operaciones aritméticas" se aplica más generalmente para donde donde es primo. tenga en cuenta que si no es fijo, esta declaración ya no es válida q= p n pnFq q= pnorte pags norte
fuente
No estoy seguro si entiendo la pregunta correctamente, pero déjame intentar arrojar algo de luz.
Típicamente, evaluar un polinomio a ciertos valores es más fácil que la prueba de identidad, especialmente cuando la representación del polinomio es a través de un circuito (alguna representación sucinta). Sin embargo, hay muchos algoritmos aleatorios de prueba de identidad ( Schwarz-Zippel es el más directo) que funciona en evaluaciones justas.
En ciertos casos especiales, tenemos pruebas de 'recuadro negro' para pruebas de identidad donde puede probar si un polinomio es cero o no simplemente evaluándolo en un conjunto predefinido de puntos. Un ejemplo simple de esto es si el polinomio es 'disperso' (solo tiene monomios). Para simplificar la exposición, supongamos que el polinomio es multilineal (cada monomio es un producto de distintas variables).nO(1)
Una forma natural de enviar un polinomio multivariado multilineal a univariado es mediante la sustitución . El polinomio resultante es say . Esto podría ser un polinomio de grado exponencial, por supuesto, pero vamos al módulo para un pequeño rango de 's. Ahora un sería "malo" para un par de monomios si y se asignan al mismo módulo monomial . O en otras palabras, divide . Por lo tanto, siempre que no divida ∑ i ∈ S α i y a i y r - 1 r r y a y b y r - 1 r a - b r ∏ i , j ∈ S ( a i - a j ) rxi↦y2i ∑i∈Sαiyai yr−1 r r ya yb yr−1 r a−b r ∏i,j∈S(ai−aj) , esto no sucedería Por lo tanto, es suficiente correr sobre un rango polinómico de 's. Por lo tanto, es suficiente evaluar el polinomio en algunas raíces de las unidades y podemos deducir que el polinomio es cero o no.r
Ha habido más progreso en los algoritmos de prueba de identidad de caja negra. En este momento, la mayoría de ellos se encuentran a 3 circuitos de profundidad restringida (suma de productos de sumas de variables). (FWIW) Algo de esto se menciona con más detalles en los capítulos 3 y 4 de mi tesis de maestría . Y también ha habido nuevas mejoras por parte de Saxena y Seshadri recientemente.
fuente
Cualquier problema #P, o incluso # P / poly, se puede escribir como un polinomio: haga un circuito con compuertas NAND, escríbalos como donde x e y son enteros con valor 0-1, y sume todas las entradas . Esto da un polinomio en Z [ x 1 , . . . , x n ] para entradas de tamaño n . El problema de decisión es probar si esto es 0.1−xy x y Z[x1,...,xn] n
fuente