Qualquer resposta para isso depende muito do vocabulário que você permite na resposta. Se você deseja sua resposta no mesmo idioma da entrada (ou seja, como um polinômio), isso leva a um conjunto de respostas, que é o que os outros pôsteres estão enfrentando.
Mas se você permitir que o seu vocabulário de respostas seja ampliado, coisas maravilhosas podem acontecer. Você pode ver um exemplo na diferenciação simbólica versus automática: na diferenciação simbólica, apenas se permitem 'expressões', que tendem a explodir bastante; na diferenciação automática, permite -se programas lineares na resposta (mesmo que a entrada seja uma expressão), o que ajuda bastante a controlar o aumento da expressão. Para polinômios univariados, James Davenport e eu meditamos que você precisa inserir polinômios ciclotômicos como parte de seu vocabulário básico (consulte as referências sobre por que esses polinômios parecem ser a única fonte real de explosão, bem como os trabalhos que mostram vários resultados de redutibilidade entre problemas polinomiais e 3SAT).
Em outras palavras, se você permitir variar um pouco a resposta que você considera uma resposta clássica, talvez consiga obter uma resposta bastante diferente, ou seja, uma com uma complexidade muito melhor. Depende da sua motivação original para fazer a pergunta, seja puramente teórica ou com um aplicativo em mente, decidir se essa variação no vocabulário é aceitável para você. No cenário em que James e eu estávamos pensando sobre isso (computação simbólica), ajustar o vocabulário para diminuir a complexidade é perfeitamente aceitável (embora raramente seja feito).