Aquí hay un enfoque que funcionará para algunos polinomios, pero no se garantiza que funcione para todos ellos.
Se garantiza que funciona para todos los polinomios cuadráticos multilineales. También se garantiza que funcione si hay alguna variable x tal que p ( ⋯ , x , ⋯ ) no contenga un término x 2 . Sin embargo, para polinomios de la forma p ( x , ⋯ , z ) = c x ⋅ x 2 + ⋯ + c z ⋅ z 2 + p ′ ( x , ⋯ , z )xp(⋯,x,⋯)x2p(x,⋯,z)=cx⋅x2+⋯+cz⋅z2+p′(x,⋯,z)donde p ' es un polinomio cuadrático multilineal (es decir, polinomios donde cada variable aparece al cuadrado), solo puedo presentar una heurística. La heurística a menudo funciona bien en la práctica, pero no tengo pruebas.p′
(Siento que debe haber una solución más limpia al acecho en alguna parte ...)
Deje F ser un campo. Supongamos que p ( x , y , z , ⋯ ) ∈ F [ x , y , z , ⋯ ] es un polinomio cuadrático multivariante con coeficientes en el campo F . Factoriza factores de x , para obtenerFp(x,y,z,⋯)∈F[x,y,z,⋯]Fx
p ( x , y , z , ⋯ ) = c ⋅ x 2 + q ( y , z , ⋯ ) ⋅ x + r ( y , z , ⋯ ) .
p(x,y,z,⋯)=c⋅x2+q(y,z,⋯)⋅x+r(y,z,⋯).
Tenga en cuenta que q debe ser lineal / afín, r debe ser cuadrático y c debe ser una constante ( c ∈ F ). Queremos encontrar una asignación de valores a x , y , z , ⋯ que hagaqrcc∈Fx,y,z,⋯
c ⋅ x 2 + q ( y , z , ⋯ ) ⋅ x + r ( y , z , ⋯ ) = 0.
c⋅x2+q(y,z,⋯)⋅x+r(y,z,⋯)=0.
Ahora, Δ denota el discriminante de esta ecuación cuadrática (en x ), es decir,Δx
Δ ( y , z , ⋯ ) = q ( y , z , ⋯ ) 2 - 4 c ⋅ r ( y , z , ⋯ ) .
Δ(y,z,⋯)=q(y,z,⋯)2−4c⋅r(y,z,⋯).
El polinomio original es satisfiable si y sólo si se puede encontrar una asignación de valores a y , z , ⋯ que hace Δ ( y , z , ⋯ ) sea un cuadrado (es decir, un residuo cuadrático) en F . Observe que Δ ( y , z , ⋯ ) es en sí mismo un polinomio cuadrático multivariado (ya que q es afín y r es cuadrático).y,z,⋯Δ(y,z,⋯)FΔ(y,z,⋯)qr
En este punto, nuestro enfoque de solución se ramificará, en función de si c = 0 (un caso fácil) o c ≠ 0 (el caso más difícil).c=0c≠0
Si c = 0 , resolver esta ecuación es fácil: es básicamente una ecuación lineal (es lineal en x , una vez que arregla todas las demás variables).c=0x
Como resultado, hay una clase especial de polinomios donde este problema es especialmente fácil de resolver: cualquier polinomio p donde exista una variable, por simplicidad, lo llamaremos x , de modo que x 2 no aparezca en p . Para esa clase, tendrá c = 0 arriba, y luego el siguiente algoritmo es suficiente para resolver el problema:pxx2pc=0
Compruebe si q tiene alguna asignación de valores a y , z , ⋯ que haga q ( y , z , ⋯ ) ≠ 0 . Como q es lineal, esto es fácil de verificar.qy,z,⋯q(y,z,⋯)≠0q
En caso afirmativo, elija cualquier asignación de valores y , z , ⋯ . Luego, establezca x = - r ( y , z , ⋯ ) q ( y , z , ⋯ ) - 1 . Por definición, q ( y , z , ⋯ ) ≠ 0 , entonces q ( y , z , ⋯ ) tiene un inverso (ya que estamos trabajando en un campo), por lo que tal valor de xy,z,⋯x=−r(y,z,⋯)q(y,z,⋯)−1q(y,z,⋯)≠0q(y,z,⋯)xexiste Esto produce inmediatamente una asignación de valores a x , y , z , ⋯ que hace que p sea cero, y hemos terminado.x,y,z,⋯p
Si no, entonces sabemos p ( x , y , z , ⋯ ) = r ( y , z , ⋯ ) para todas las posibles asignaciones de valores a las variables de p . Efectivamente, p nunca dependió de x en primer lugar, por lo que fue un error pensar en ello como una función de x . O, dicho de otra manera, hemos eliminado una variable de p , y obtenemos una nueva instancia del problema original. Aplicar recursivamente nuestros métodos a r ( y , z ,p(x,y,z,⋯)=r(y,z,⋯)ppxxp⋯ ) . Excepción: si p era una función de una sola variable (es decir, p ( x ) ), entonces en este caso puede concluir que p no es satisfactoria (es idénticamente cero para todos los valores posibles de sus variables).r(y,z,⋯)pp(x)p
Este algoritmo maneja el caso fácil: a saber, polinomios donde existe al menos una variable x que aparece en p pero donde x 2 no aparece en p . Para este caso, el algoritmo se ejecuta en tiempo polinómico y determina si existe una asignación de valores a las variables que hace que el polinomio sea igual a cero.xpx2p
Ahora de vuelta al caso duro. Si no entra en el caso fácil, entonces debemos tener
p ( x , ⋯ , z ) = c x ⋅ x 2 + ⋯ + c z ⋅ z 2 + p ′ ( x , ⋯ , z ) .
p(x,⋯,z)=cx⋅x2+⋯+cz⋅z2+p′(x,⋯,z).
donde p ′ ( x , ⋯ , z ) no tiene términos cuadrados (es multilineal). Veamos qué métodos podemos usar para este caso.p′(x,⋯,z)
Bueno, aquí hay una situación en la que podemos resolver esto. Supongamos que existe un par de variables x , y tal que - c x / c y es un cuadrado (un residuo cuadrático) en F , digamos, - c x / c y = α 2 . Entonces podemos aplicar el cambio de variables y ′ = y + α x . Convenientemente, tenemosx,y−cx/cyF−cx/cy=α2y′=y+αx
( y ' ) 2 = ( y + α x ) 2 = y 2 + 2 α ⋅ x y + α 2 ⋅ x 2 = y 2 + 2 α c d o t x y - c x / c y ⋅ x 2 . PS(y′)2=(y+αx)2=y2+2α⋅xy+α2⋅x2=y2+2αcdotxy−cx/cy⋅x2.
Al conectar este cambio de variables a p , obtenemosp
p ( x , y ′ , ⋯ ) = c x ⋅ x 2 + c y ⋅ y 2 + 2 α c y ⋅ x y - c y ⋅ ( c x / c y ) ⋅ x 2 + … ,
p(x,y′,⋯)=cx⋅x2+cy⋅y2+2αcy⋅xy−cy⋅(cx/cy)⋅x2+…,
es decir,
p ( x , y ′ , ⋯ ) = c y ⋅ y 2 + 2 α c y ⋅ x y + …
p(x,y′,⋯)=cy⋅y2+2αcy⋅xy+…
donde la parte omitida no contiene un término x 2 (ya que c x ⋅ x 2 y αx2cx⋅x2 2 c y ⋅ x 2 se cancelan). Efectivamente, hemos eliminado eltérmino x 2 , por lo que ahora podemos aplicar el método anterior a p ( x , y ' , ⋯ ) . Observe que p ( x , y ′ , ⋯ ) = 0 es satisfactoria si y solo si p ( xα2cy⋅x2x2p(x,y′,⋯)p(x,y′,⋯)=0, y , ⋯ ) = 0 es. Cuando encontramos una solución que hace que este sea cero, podemos hacer una resolución inversa para y , y obtenemos una asignación a x , y , z , ⋯ que hace que p ( x , y , z , ⋯ ) = 0 .p(x,y,⋯)=0yx,y,z,⋯p(x,y,z,⋯)=0
¿Es posible que ningún par de variables nos permita eliminar un término al cuadrado? Si - 1 es un residuo cuadrático (un cuadrado) en F−1F , y si tenemos al menos 3 variables, entonces eso no es posible: - c x / c z = ( - 1 ) × ( - c x / c y ) × ( - c y / c z ) , y dado que el producto de un no residuo cuadrático y un no residuo cuadrático es un residuo cuadrático, se garantiza que al menos uno de - c−cx/cz=(−1)×(−cx/cy)×(−cy/cz)x / c z , - c y / c z , o - c x / c z es un residuo cuadrático, por lo que al menos uno de los términos al cuadrado puede cancelarse. Sin embargo, si - 1 es un no residuo cuadrático, o tenemos solo 1 o 2 variables, entonces podría no ser posible eliminar un término al cuadrado. Ese es el caso difícil restante. (La situación con solo 1 o 2 variables no es difícil de manejar, por lo que realmente el caso difícil es donde - 1 es un no residuo cuadrático, y donde cada variable aparece al cuadrado en p−cx/cz−cy/cz−cx/cz−1−1p.) No tengo una solución general para este difícil caso.
Sin embargo, puedo sugerir una heurística que a menudo puede funcionar, incluso para este caso difícil.
En cualquier campo F , aproximadamente la mitad de todos los elementos de campo son cuadrados (residuos cuadráticos); si tienes que elegir un elemento de campo al azar, será un cuadrado con una probabilidad de aproximadamente 1 / 2F1/2 . Por lo tanto, si tomamos los valores de y , z , ... al azar, podemos predecir que (heurísticamente) Δ ( y , z , ⋯ ) debe ser un cuadrado con una probabilidad de 1 / 2 , si Δ ( y , z , ⋯ ) actúa como Una función aleatoria. Esto sugiere el siguiente algoritmo heurístico:y,z,…Δ(y,z,⋯)1/2Δ(y,z,⋯)
Elija aleatoriamente una variable para eliminar, digamos x .x
Elija valores para y , z , ... al azar.y,z,…
Si Δ ( y , z , ⋯ ) es un cuadrado en FΔ(y,z,⋯)F , entonces la ecuación p ( x , y , z , ⋯ ) = 0 tiene una solución para x , es decir, x = ( - q ( y , z , ⋯ ) ± √p(x,y,z,⋯)=0xΔ ( y , z , ⋯ ) ) / ( 2 c ) (suponiendo que F no tiene la característica 2). Esto nos da una asignación a las variables x , y , z , ... que hace que p ( x , y , z , ⋯ ) = 0 , así que hemos terminado.x=(−q(y,z,⋯)±Δ(y,z,⋯)−−−−−−−−−√)/(2c)Fx,y,z,…p(x,y,z,⋯)=0
Si Δ ( y , z , ⋯ ) no es un cuadrado, regrese al paso 1.Δ(y,z,⋯)
Si después de muchos pasos, no encuentra ninguna solución, entonces puede adivinar que la ecuación no es satisfactoria (pero esto es heurístico, por lo que su suposición podría estar equivocada).
Este algoritmo podría funcionar bien para muchos de los polinomios difíciles restantes, pero no tengo pruebas de que siempre funcione. En particular, existe el riesgo de que todos los polinomios discriminantes posibles Δ ( ⋯ ) puedan tener la propiedad de que sus valores son siempre no cuadrados (no residuos cuadráticos), en cuyo caso el algoritmo anterior fallará.Δ(⋯)