Supongamos que tengo un (multivariante) polinomio con coeficientes en $\mathbb Z$ o $\mathbb Q$, dado completamente en forma expandida. ¿Cómo puedo simplificar este fin de reducir el número de operaciones elementales (suma, resta, multiplicación) que se utilizan en su representación (y por lo tanto la evaluación una vez que se sustituye los valores de la indeterminates)? Yo no estoy interesado en el caso de que el polinomio como un todo factorizes, sino que estoy buscando una forma inteligente para factorizar partes de la misma.
Ejemplo: ¿cómo se puede activar
$$x^{2} y - x y^{2} - 2 y^{3} + x^{2} - x y - 2 y^{2} - x + 2 y + 1$$
en
$$((x+y)(1+y)-1)(x-2y)+1$$
o algo relativamente sencilla? La primera forma tiene 20 elementales operaciones, 12 multiplicaciones, 3 adiciones y 5 sustracciones. La segunda forma tiene 3 multiplicaciones, 3 adiciones y 2 sustracciones, para un total de 8 de las operaciones. No estoy seguro de que esta es la óptima, pero sin duda es mucho mejor que el totalmente la forma expandida. Factorización de todo polinomio no ayuda, ya que es irreducible sobre $\mathbb Q$.
Una solución ideal sería encontrar una representación con la garantía de un mínimo número de operaciones en el polinomio de tiempo. Pero no estoy seguro de si esto es posible, así que yo también estoy interesado en las soluciones de los cuales no garantizan minimality, o no garantizan el polinomio de tiempo de ejecución, siempre que funcionan razonablemente bien para el uso práctico de los casos.