¿Existe un algoritmo eficiente para la equivalencia de expresión?


14

ej. ?xy+x+y=x+y(x+1)

Las expresiones son del álgebra ordinaria de la escuela secundaria, pero están restringidas a la suma y multiplicación aritmética (por ejemplo, ), sin inversos, restas o divisiones. Las letras son variables.2+2=4 4;2.3=6 6

Si ayuda, podemos prohibir cualquier expresión representable con valores numéricos distintos de ; es decir, no x 2 ni 3 x ni 4 :1X23X4 4

  • multilineal , no hay potencias distintas a : x + x y x 1 + x 1 y 1 está bien, pero no x 2 + x 3 y 4 , y nada que pueda representarse como eso, como en una expansión completa para sumar -de-productos, por ejemplo, no x ( x + y ) x 2 + y ; 1X+XyX1+X1y1X2+X3y4 4x(x+y)x2+y
  • todo uno , sin coeficientes que no sean : x + x y 1. x + 1. x y está bien, pero no 2 x + 3 x y , y no hay nada que pueda representarse como eso, como en una expansión completa para suma de productos, por ejemplo, no a ( x + y ) + x ( a + b ) 2 a x + a y + b x ; y 1x+xy1.x+1.xy2x+3xya(x+y)+x(a+b)2ax+ay+bx
  • sin constantes que no sean : nuevamente, en la suma de productos completamente expandida, por ejemplo, no ( a + 1 ) + ( b + 1 ) a + b + 21(a+1)+(b+1)a+b+2

¿Existe un algoritmo eficiente para determinar si dos expresiones son equivalentes?Q.


Para ilustrar, aquí hay un algoritmo de fuerza bruta ineficiente con tiempo exponencial:

expanda ambas expresiones completamente a la suma de productos , que pueden verificarse fácilmente para determinar la equivalencia (simplemente ignore el orden, ya que el cambio / asociado puede reordenarse).

ej.
a ( x + y ) + b ( x + y ) a x + a y + b x + b y(a+b)(x+y)ax+ay+bx+by
a(x+y)+b(x+y)ax+ay+bx+by


Este parece un problema bien conocido: incluso a los estudiantes de secundaria se les enseñan formas manuales de resolverlo. También se resuelve con probadores / verificadores de teoremas automatizados, pero se concentran en aspectos más sofisticados.

Aquí hay un probador de teoremas automatizado en línea que funciona: http://tryacl2.org/ , que muestra la equivalencia al encontrar una secuencia de conmutar / asociar / distribuir, etc.

? --- 188 pasos xy+x+y=x+y(x+1)
(thm (= (+ (* x y) x y) (+ x (* y (+ x 1))) ))

? --- 325 pasosy+x(y+1)=x+y(x+1)
(thm (= (+ y (* x (+ y 1))) (+ x (* y (+ x 1))) ))

Esta es mi primera pregunta aquí, así que avíseme si he elegido el lugar incorrecto, las etiquetas incorrectas, la forma incorrecta de describir / preguntar, etc. ¡Gracias!
NB: esta pregunta se ha reescrito en respuesta a los comentarios ¡
Gracias a todos los que respondieron! He aprendido mucho


3
La pregunta aquí necesita alguna aclaración. ¿Sobre qué campo estás operando? ¿Los objetos como " " y " b " en sus expresiones son elementos del campo o variables? ¿Es realmente un campo (es decir, la suma y la multiplicación tienen inversas)? Tenga en cuenta que la suma de productos no ayuda porque ( a 1 + b 1 ) ( a 2 + b 2 ) ( a n + b n ) tiene exponencialmente muchos términos. ab(a1+b1)(a2+b2)(an+bn)
David Richerby

44
Si los objetos son variables y se permite la resta, entonces esencialmente está preguntando acerca de la prueba de identidad polinómica, que tiene un algoritmo de tiempo polinómico aleatorio por el lema de Schwartz-Zippel . iff f ( x ) - g ( x ) = 0 y la idea básica es que un polinomio que no es idénticamente cero no tiene muchas raíces, por lo tanto, si comienza a adivinar raíces al azar y encontrar muchas raíces, hay una alta probabilidad de que su polinomio sea idénticamente cero. f(x)=g(x)f(x)g(x)=0
David Richerby

2
Me sorprende que nadie haya mencionado esto todavía, pero "si está en NP no tengo que preocuparme por encontrar un algoritmo polinomial" no tiene sentido. Todos los problemas en P también están en NP. Probablemente quisiste preguntar si el problema es NP-complete (o -hard).
Tom van der Zanden

2
Si tiene dificultades con lo básico, nuestras preguntas de referencia pueden serle útiles.
Raphael

2
@hyperpallium Antes de preguntar si un idioma (es decir, un problema de decisión) está en NP, es mejor si entendió lo que esto significa. Quizás las preguntas de referencia con las que Raphael se vinculó ayudarían.
Yuval Filmus

Respuestas:


9

Su problema se reduce a cero pruebas de polinomios multivariados, para los cuales existen algoritmos aleatorizados eficientes.

Sus expresiones son todos polinomios multivariados. Aparentemente, sus expresiones están formadas por las siguientes reglas: (a) si es una variable, entonces x es una expresión; (b) si c es una constante, entonces c es una expresión; (c) si e 1 , e 2 son expresiones, entonces e 1 + e 2 y e 1 e 2 son expresiones. Si eso es lo que pretendía, cada expresión es un polinomio multivariado sobre las variables.xxcce1,e2e1+e2e1e2

Ahora, quieres saber si dos expresiones son equivalentes. Esto equivale a probar si dos polinomios multivariados son equivalentes: dado y p 2 ( x 1 , ... , x n ) , desea saber si estos dos polinomios son equivalentes. Puede probar esto restándolos y verificando si el resultado es idénticamente cero: definap1(x1,,xn)p2(x1,,xn)

q(x1,,xn)=p1(x1,,xn)p2(x1,,xn).

Ahora son equivalentes si y solo si q es el polinomio cero.p1,p2q

Probar si es idénticamente cero es el problema de prueba cero para polinomios multivariados. Hay algoritmos eficientes para eso. Por ejemplo, un algoritmo de ejemplo es evaluar q ( x 1 , ... , x n ) en muchos valores aleatorios de x 1 , ... , x n . Si encuentra un valor de x 1 , ... , x n tal que q ( x 1 , ... , x n ) , entonces sabe que qqq(x1,,xn)x1,,xnx1,,xnq(x1,,xn)qno es idénticamente cero, es decir, no son equivalentes. Si después de muchas pruebas todos son cero, entonces puede concluir que q es idénticamente cero (si q no es idénticamente cero, la probabilidad de que todas esas pruebas den cero puede hacerse exponencialmente baja). El número de iteraciones que necesita hacer está relacionado con el grado de q ; ver la literatura sobre pruebas de identidad polinomial para más detalles.p1,p2qqq

Por ejemplo, consulte https://en.wikipedia.org/wiki/Schwartz%E2%80%93Zippel_lemma y http://rjlipton.wordpress.com/2009/11/30/the-curious-history-of-the- schwartz-zippel-lemma /

Estos algoritmos se aplican si está trabajando sobre un campo finito. Usted no indicó en qué campo / anillo que se está trabajando, y si usted está está tratando estas expresiones como expresiones formales (por ejemplo, polinomios como objetos abstractos) o como funciones de . Si está trabajando sobre un campo finito, los métodos anteriores se aplican inmediatamente.FnF

Si está tratando las expresiones como objetos formales, entonces sus expresiones son equivalentes a polinomios multivariados con coeficientes enteros. Puede probar la equivalencia de las mismas por la elección de un primo grande aleatoria y la prueba de equivalencia módulo r , es decir, en el campo Z / r Z . Repita esto polinomialmente muchas veces, con diferentes valores aleatorios de r , y debería obtener un algoritmo aleatorio eficiente para probar la equivalencia de estas expresiones formales.rrZ/rZr


1
Por otro lado, sería difícil demostrar que para cada expresión idénticamente cero, hay una prueba no demasiado larga de que la expresión es idénticamente cero.

@RickyDemer, ¡gran punto! Buena observación Interpreté la pregunta como una pregunta sobre la prueba de equivalencia en lugar de probarla, pero esa es una observación muy agradable. (Si quisiera exhibir una prueba de equivalencia en la práctica, sospecho que es factible exhibir dicha prueba si está dispuesto a hacer suposiciones criptográficas, para alguna definición de "prueba", por ejemplo, un esquema que logre la solidez en el modelo de oráculo aleatorio.)
DW

1
¡Gracias! Los estoy tratando como objetos formales, sin inversos, división o resta (pero usando álgebra de la escuela secundaria para esta pregunta; parece más probable que ya esté resuelto). ¿Quiere decir, siga eligiendo grandes primos aleatorios , y esto es tratar las expresiones como si fueran campos finitos sobre el conjunto subyacente de enteros [ 0 .. r - 1 ] ? Ese enlace wiki dice que no hay un algoritmo determinista sub-exponencial conocido para esta prueba cero. ¿Sabes si eso se aplica a mi problema? r[0..r1]
hiperpallium

1
@hyperpallium, sí, eso es exactamente lo que quiero decir. Sí, creo que eso también se aplica a su problema. Es por eso que sugerí un algoritmo aleatorio: existen algoritmos aleatorios eficientes, a pesar de que no se conocen algoritmos deterministas eficientes.
DW

Como se señaló en un comentario anterior, el OP no está funcionando en un campo finito, sino más bien un semiremutativo conmutativo. Esto significa que no se garantiza que existan inversos aditivos, por lo que "restar" las expresiones para verificar la igualdad con cero no es una operación válida.
apnorton

0

Para hacer un seguimiento de las restricciones de una potencia , un coeficiente y una constante en la pregunta:

Estos definen un subconjunto del problema de la prueba de identidad polinómica. Claramente, se pueden resolver con una técnica que resuelva el problema general. La pregunta es si forman un subconjunto que se resuelve más fácilmente.

un coeficiente : en problemas sin esto, los términos pueden combinarse, lo que facilita el problema. Considere el teorema binomial / triángulo de Pascal para . Esto se puede expandir un factor a la vez, produciendo términos con órdenes superpuestas, por ejemplo ( a + b ) ( a + b ) = a a + a b + a b + b b = a a + 2 a b + b b(un+si)norte(un+si)(un+si)=unun+unsi+unsi+sisi=unun+2unsi+sisiLos menos términos facilitan la expansión con el siguiente factor: y nuevamente los términos se combinan, lo que hace que el problema sea más pequeño y simple. Esta combinación de términos es una forma de programación dinámica.(aa+2ab+bb)(a+b)=aaa+2aab+abb+aab+2abb+bbb=aaa+3aab+3abb+bbb

Es decir, la posibilidad de combinar términos, crear un coeficiente que no sea uno, hace que el problema sea más fácil y no más difícil.

(Aunque hay más trabajo en el cálculo para multiplicar coeficientes que no son uno)

las constantes que no son uno se incluyen en el argumento anterior al considerar las constantes como variables con exponente cero.

a4=a2a2=a1a3

Lo anterior no es un argumento formal o riguroso. Se basa en una suposición sobre lo que dificulta el problema. Pero me parece que combinar términos solo hace que sea un problema más fácil, por lo que evitar esto mediante la restricción de un coeficiente no facilitará el subconjunto.

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.