6
$\begingroup$

Given a polynomial $P \in \mathbb{Z}[X_1,\ldots,X_n]$, is there a poly-time algorithm which computes the group of permutations of variables that leaves $P$ unchanged? (Clearly, the trivial $O(n!)$-time algorithm is not poly-time.)

$\endgroup$
5
  • 3
    $\begingroup$ What do you mean by "compute the group"? what kind of output do you expect? $\endgroup$
    – YCor
    Commented Feb 25, 2016 at 0:52
  • 2
    $\begingroup$ The group can have $n!$ elements, so if listing or discovering a single element takes any time, you will always have a worst-time $n!$ estimate. $\endgroup$ Commented Feb 25, 2016 at 1:15
  • 3
    $\begingroup$ To avoid the obstruction Ryan mentions you might ask instead to compute a list of generators of the group. $\endgroup$ Commented Feb 25, 2016 at 5:01
  • 1
    $\begingroup$ I agree with Qiaochu. I would always interpret "compute a group" as meaning compute a list of generators of that group. $\endgroup$
    – Derek Holt
    Commented Feb 25, 2016 at 11:49
  • 2
    $\begingroup$ Computing generators is a plausible output... however it entails natural issues (for instance, it's not trivial for a list of generators whether it generates the whole symmetric group, or more generally whether two list of generators generate the same subgroup, so it's not the same as computing the group) $\endgroup$
    – YCor
    Commented Feb 26, 2016 at 0:29

1 Answer 1

14
$\begingroup$

If the input has fully-expanded polynomials, then this is equivalent to graph isomorphism.

In one direction, given a graph, create a variable for each vertex and consider the polynomial $\prod_{vw\in E(G)} (1 + x_vx_w)$. Unique factorization assures that this representation is reversible.

In the other direction, given a polynomial there are multiple ways of encoding it as a graph. I'll use a coloured bipartite graph, which can be converted to a uncoloured simple graph by standard means. Vertex colors are numbers that appear as coefficients and edge colours are numbers that appear as powers of variables. Make one vertex for each variable. For each monomial, make a new variable coloured by the coefficient and join it to each variable it contains by an edge coloured by the degree of that variable in the monomial. (Eg., monomial $6x^2y$ is a vertex coloured "6" joined to vertex "$x$" by an edge of colour "2" and to vertex "$y$" by an edge of colour "1".) This representation is also reversible.

I'll explain how the second example works, assuming you have an oracle that provides one (colour-preserving) isomorphism between two coloured graphs or says that there is none. Let $P_1,P_2$ be two polynomials and $G(P_1),G(P_2)$ their corresponding graphs. The construction ensures that any isomorphism between $P_1$ and $P_2$ can be converted to an isomorphism between $G(P_1)$ and $G(P_2)$, and vice versa. Now consider one polynomial $P$ and two of its variables $x,y$. Say $n$ is the total degree of $P$. Then $P$ has an automorphism (symmetry as in the original question) that maps $x$ onto $y$ iff $G(P+x^{n+1})$ is isomorphic to $G(P+y^{n+1})$, and the oracle will give you such an automorphism if there is one. By continuing this process by marking more variables, you can build up a strong generating set for the automorphism group of $P$. For example, comparing $G(P+x^{n+1}+u^{n+2})$ to $G(P+y^{n+1}+v^{n+2})$ will get you an automorphism, if any, that maps $x$ onto $y$ and $u$ onto $v$.

$\endgroup$
0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .