¿Cuáles son algunos algoritmos eficientes para determinar si un polinomio multivariado cuadrático tiene una solución?


8

Sé que, en general, la satisfacción polinómica multivariada es equivalente a 3-SAT; Sin embargo, me pregunto si hay buenas técnicas en el caso cuadrático, específicamente si hay una solución de tiempo polinomial.

Supongo que la pregunta más general sería: ¿hay alguna clase de polinomios multivariados para los que el problema de la satisfacción se pueda resolver de manera eficiente?


1
¿Cuál es el problema de satisfacción de los polinomios?
Sasho Nikolov

Presumiblemente "¿Hay una asignación de valores a las variables que hace que el siguiente polinomio sea igual a cero?"
Jeffε

2
¿Qué puede decirnos sobre el rango típico de parámetros que le interesan? Los parámetros críticos incluyen nn (el número de variables) y FF (el campo en el que está trabajando). Si se le dan múltiples polinomios que todos deben cumplirse, eso también es relevante (cambia el problema).
DW

Agregó una solución para el problema sin restricciones sobre los reales. sin embargo, agregar incluso restricciones lineales hace que el problema sea NP-difícil y, como mencionó @DW, también importa cuál es el campo. por ejemplo, no sé cómo hacer que mi respuesta funcione en un campo finito, donde cosas como semidefinición positiva y SVD no tienen sentido.
Sasho Nikolov

Por satisfacción quiero decir lo que creo que se llama más comúnmente viabilidad, a saber, la cuestión de si un sistema de ecuaciones polinómicas tiene o no una solución sobre algún campo.
Nick

Respuestas:


9

Puede decidir si un polinomio cuadrático p : R nR tiene raíces reales con algo de álgebra lineal. Como observa, el caso general debería ser difícil.p:RnR

Observe primero que p ( x ) 0 para todo x R n si p ( x ) > 0 o p ( x ) < 0 para todo x (esto sigue por continuidad). Por lo tanto, es suficiente para poder decidir si p ( x ) > 0 para todas las x . En general, esto está relacionado con las versiones teóricas de la complejidad del problema número 17 de Hilbert: un polinomio p ( x )p(x)0xRnp(x)>0p(x)<0xp(x)>0xp(x)es positivo sobre los reales si y solo si puede escribir p como la suma de cuadrados de funciones racionales y una constante positiva c (este es un teorema de Artin). Encontrar esta descomposición o resolver el problema de decisión es muy difícil en general, pero el caso cuadrático es fácil, debido a la magia del teorema espectral. Para obtener más información sobre el caso general, consulte la encuesta de Devanur, Lipton, Vishnoi y Monique Laurent .pc

Escribamos p ( x ) = p 2 ( x ) + p 1 ( x ) + c donde p 2 es homogéneo de grado 2, p 1 es lineal y c es una constante. Definamos q ( x 0 , x ) = p 2 ( x ) + x 0 p 1 ( x ) + c x 2 0p(x)=p2(x)+p1(x)+cp2p1cq(x0,x)=p2(x)+x0p1(x)+cx20para ser la homogeneización de p , donde x 0 es una variable adicional.px0

Reclamo . p ( x ) > 0 x 00 : q ( x 0 , x ) > 0p(x)>0x00:q(x0,x)>0

La dirección "si" es fácil. En la dirección no trivial, suponga p ( x ) > 0 para todo x y suponga x 00 : q ( x 0 , x ) = x 2 0 q ( 1 , xp(x)>0xx00x 0 )=x20p(xx 0 )>0. QED

q(x0,x)=x20q(1,xx0)=x20p(xx0)>0.

Observe también que, dado que q ( x 0 , x ) es continuo, si p ( x ) > 0 para todo x, entonces q ( x 0 , x ) 0 para todo ( x 0 , x ) (incluido x 0 = 0 ) .q(x0,x)p(x)>0xq(x0,x)0(x0,x)x0=0

Como q es homogéneo, podemos escribir q ( x 0 , x ) = y T Q y , donde Q es una matriz simétrica e y = ( x 0 , x ) . Por lo anterior, si p ( x ) > 0 para todo x , entonces Q es positivo semidefinido. Además, q ( x 0 , x ) > 0 para todo x 0qq(x0,x)=yTQyQy=(x0,x)p(x)>0xQq(x0,x)>00 si y solo si el núcleo de Q es un subconjunto del hiperplano { y = ( 0 , x ) : x R n } . Ambas condiciones pueden decidirse en tiempo polinómico mediante el cálculo de la SVD de Q .x00Q{y=(0,x):xRn}Q


Muchas gracias, Sasho. No estoy demasiado familiarizado con los polinomios como para haber inventado este método. Hay otra pregunta que hice en este sitio sobre detectar si una matriz de permutación se encuentra o no en un espacio vectorial en tiempo polinómico. Yo mismo reduje la pregunta a la resolución de este problema polinómico, por lo que, combinado con su respuesta, ahora hay un algoritmo de tiempo polinómico para hacer exactamente esto. Puede ver la pregunta en este enlace si está interesado
Nick

Nick, había visto la pregunta, y es interesante. Pero hasta donde recuerdo, su reducción allí (que ahora se ha ido, desafortunadamente) redujo su pregunta de matrices de permutación para resolver un polinomio cuadrático sujeto a restricciones de desigualdad lineal. Específicamente, necesitabas determinar el diámetro de un politopo. Creo que esto puede ser un problema difícil. Mi solución anterior no maneja las restricciones de desigualdad lineal por lo que puedo decir.
Sasho Nikolov

2

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 xx 2 + + c zz 2 + p ( x , , z )xp(,x,)x2p(x,,z)=cxx2++czz2+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,)=cx2+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 hagaqrccFx,y,z,

c x 2 + q ( y , z , ) x + r ( y , z , ) = 0.

cx2+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,)24cr(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=0c0


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 xx 2 + + c zz 2 + p ( x , , z ) .

p(x,,z)=cxx2++czz2+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,ycx/cyFcx/cy=α2y=y+αx

( y ' ) 2 = ( y + α x ) 2 = y 2 + 2 α x y + α 2x 2 = y 2 + 2 α c d o t x y - c x / c yx 2 . PS(y)2=(y+αx)2=y2+2αxy+α2x2=y2+2αcdotxycx/cyx2.

Al conectar este cambio de variables a p , obtenemosp

p ( x , y , ) = c xx 2 + c yy 2 + 2 α c yx y - c y( c x / c y ) x 2 + ,

p(x,y,)=cxx2+cyy2+2αcyxycy(cx/cy)x2+,

es decir,

p ( x , y , ) = c yy 2 + 2 α c yx y +

p(x,y,)=cyy2+2αcyxy+

donde la parte omitida no contiene un término x 2 (ya que c xx 2 y αx2cxx2 2 c yx 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α2cyx2x2p(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 F1F , 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 - ccx/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 pcx/czcy/czcx/cz11p.) 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,)

  1. Elija aleatoriamente una variable para eliminar, digamos x .x

  2. Elija valores para y , z , ... al azar.y,z,

  3. 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

  4. 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á.Δ()


Esto parece correcto para p un polinomio multilineal, pero en general puede haber un término x 2 y la descomposición será x 2px2 + x q + r , donde q y r son como en su respuestax2+xq+rqr
Sasho Nikolov

Correcto. Gracias, @SashoNikolov. He agregado un algoritmo heurístico que puede funcionar para algunos polinomios que contienen un término x 2 , pero no todos. x2
DW

Creo que realmente tengo una solución sobre los reales, con algunos trucos conocidos.
Sasho Nikolov

1

Su pregunta no especifica el campo en el que está trabajando. Sasho Nikolov ha dado una excelente respuesta si está trabajando sobre R , pero no se extiende a campos finitos, por lo que creo que sigue siendo interesante observar su problema, para el caso de un campo finito F . No tengo una solución completa, pero aquí hay un algoritmo que funcionará para todos los polinomios cuadráticos multilineales, excepto para una clase específica de polinomios (que aún no sé cómo manejar). Se siente cerca: si pudiéramos encontrar alguna extensión para resolver este problema para todos los polinomios bivariados, las técnicas a continuación podrían encargarse del resto.RF


Si p es univariante, es decir, p ( x ) = a x 2p + b x + c , entonces el problema es fácil: simplemente prueba si b 2 - 4 un c es un cuadrado en F .p(x)=ax2+bx+cb24acF


Si p es bivariado, es decir, p ( x , y ) = a xp 2 + b y 2 + c x y + d x + e y + f , entonces podemos usar el siguiente procedimiento:p(x,y)=ax2+by2+cxy+dx+ey+f

Primero haremos algunas transformaciones para "forzar" a a cero, ya que esto es particularmente conveniente para lo siguiente:a

  • Si a = 0 ya, entonces no hay nada que hacer.a=0

  • Si b = 0 , podemos intercambiar el papel de x e y .b=0xy

  • Alternativamente, suponga que a 0 y b 0 . Sia0b0 - b / a no es un cuadrado en F , estoy jodido y no tengo una solución (en este caso me doy por vencido y me voy a casa). De lo contrario, aplique un cambio de variables x = b/aF- b / ax,y=x+yy definep(x,y)=p(x,y), notando quep(x,y)no tienex=b/axy=x+yp(x,y)=p(x,y)p(x,y)término x 2 (se cancela después de El cambio de variables). Observe que p es insatisfactorio con p (cualquier solución a p ( xx2pp, y ) puede traducirse inmediatamente a una solución a p ( x , y ) aplicando el cambio de variables, y viceversa).p(x,y)p(x,y)

Después de este paso, tenemos un polinomio sin término x 2 . Entonces, sin pérdida de generalidad, podemos asumir que a = 0 ( p ( x , y ) no tiene término x 2 ).x2a=0p(x,y)x2

Como p no tiene un término x 2 , podemos reescribirlo comopx2

p ( x , y ) = q ( y ) x + r ( y ) .

p(x,y)=q(y)x+r(y).

Convenientemente, esta es una función lineal de x . Entonces, podemos probar si hay una solución para p ( x , y ) = 0 , de la siguiente manera:xp(x,y)=0

  • Compruebe si existe y tal q ( y ) 0 . Convenientemente, las consideraciones de grado aseguran que q ( y ) sea ​​lineal / afín, por lo que esto es fácil de verificar.yq(y)0q(y)

    • En caso afirmativo, deje que y sea ​​cualquier valor tal que q ( y ) 0 . Ahora podemos dejar que x = - r ( y ) q ( y ) - 1 . Desde q (yq(y)0x=r(y)q(y)1 y ) 0 , lo inverso seguramente existirá, por lo que esto da una asignación x , y que hace que p seacero, y hemos terminado.q(y)0x,yp

    • Si no, entonces sabemos que p ( x , y ) = r ( y ) . Por consideraciones de grado, r debe ser un polinomio cuadrático. Por lo tanto, podemos aplicar recursivamente nuestro algoritmo a r (que tiene una variable menos). Habrá una solución para p ( x , y )p(x,y)=r(y)rr = 0 si y solo si hay una solución para r ( y ) = 0 .p(x,y)=0r(y)=0

Este algoritmo maneja todos los polinomios bivariados, excepto el desafortunado caso donde - b / a es un no cuadrado.b/a


Luego, supongamos que tenemos un polinomio cuadrático trivariado. Curiosamente, este caso es realmente más fácil.

p ( x , y , z ) = a x 2 + b y 2 + c z 2 + .

p(x,y,z)=ax2+by2+cz2+.

Si todo a , b , c no es cero, eliminaremos el término x 2 usando un lindo truco. Encuentre α , β F de modo que b β 2 + c γ 2 = - a (p. Ej., Utilizando el algoritmo aquí ; siempre se garantiza que tales β , γ existen). Ahora aplique la transformación de cambio de variable x = x , y = β x +a,b,cx2α,βFbβ2+cγ2=aβ,γx=xy , z ' = γ x + z , produciendo el polinomio x , y , z ) no tienetérmino x 2 .y=βx+yz=γx+zp ( x , y , z ) = p ( x , y , z ) . Tenga en cuenta que, gracias a la cuidadosa elección de la transformación, p (p(x,y,z)=p(x,y,z)p(x,y,z)x2

Desde aquí es fácil navegar. Podemos escribir

p ( x , y , z ) = q ( y , z )x + r ( y , z ) ,

p(x,y,z)=q(y,z)x+r(y,z),

donde q es lineal yr es cuadrática. Si q es idénticamente cero, recurrimos en r . De lo contrario, podemos elegir cualquier valor de y , z que haga q ( y , z ) 0 y luego resolver inmediatamente para x , como antes.qrqry,zq(y,z)0x

(¿No es interesante que el caso de 2 variables parece ser más difícil que el caso de 3 variables o 1 variable?)

Estoy seguro de que puede ver cómo extender estas ideas a un polinomio cuadrático multivariado con más de tres variables.


Este algoritmo se ejecuta en tiempo polinómico. Desafortunadamente, hay una clase de polinomios desafortunados donde estoy jodido y me veo obligado a rendirme. ¿Alguien puede ver cómo manejar la clase restante de polinomios cuadráticos bivariados?


0

Esto no da una respuesta completa a la pregunta, pero proporciona una forma interesante de comprender el espacio de soluciones potenciales para un polinomio cuadrático multivariado.

Sea x T A x + b T x + c = 0 una ecuación polinómica cuadrática multivariada. Tenga en cuenta que ( D x + h ) T ( D x + h ) = x T D T D x + x T D T h + h T D x + h T h . Si D es una matriz diagonal, esto da:xTAx+bTx+c=0(Dx+h)T(Dx+h)=xTDTDx+xTDTh+hTDx+hTh

( D x + h ) T ( D x + h ) = x T D 2 x + 2 h T D x + h T h

(Dx+h)T(Dx+h)=xTD2x+2hTDx+hTh

Volviendo a nuestra ecuación original, x T A x + b T x + c = 0 , tenga en cuenta que sin pérdida de generalidad podemos suponer que A es simétrica, entonces tiene una raíz cuadrada definida positiva única que puede calcularse en tiempo polinomial. Llame a esta raíz D , entonces tenemos:xTAx+bTx+c=0AD

x T A x + b T x + c = 0x T D T D x + b T x + b T ( D - 1 ) 2 b4 =bT(D-1)2b4 -c

xTAx+bTx+c=0xTDTDx+bTx+bT(D1)2b4=bT(D1)2b4c

Por lo tanto,

( D x + b T D - 12 )T(Dx+bTD - 12 )=b T ( D - 1 ) 2 b4 -c

(Dx+bTD12)T(Dx+bTD12)=bT(D1)2b4c

Entonces, las soluciones x se pueden obtener aplicando una transformación afín a los vectores de la norma xb T ( D - 1 ) 2 b4 -c=b T A - 1 b4 -c.


¿No puede ser D un valor complejo?
Sasho Nikolov

Ese es un buen punto, parece que no lo pensé lo suficiente. Pero me gusta el hecho de que puede resolver soluciones tan explícitamente.
Nick

pero si D es complejo, entonces solo sabe que existe una solución compleja, y esa solución siempre existe (debido al teorema fundamental del álgebra). así que no estoy seguro de que realmente estés aprendiendo algo aquí
Sasho Nikolov

De acuerdo, realmente solo da una descripción del espacio de solución como una transformación afín aplicada a alguna esfera. Quizás eso pueda proporcionar un punto de partida para otras formas de resolver el problema.
Nick
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.