Minimizing the length of a polynomial

57 Views Asked by At

Let us suppose that one has the polynomial $P(z)\in \mathbb{F}_2[z]$ of length $N$. The aim is to minimize the length of the product $g(z)\cdot P(z)$ over different choices of the polynomial $g(z)\in \mathbb{F}_2[z]$.
I did the following. Let $g(z) = \sum\limits_{i=0}^{n}a_0\cdot z^n$ (to some degree $n$), where $\{a_i\}_{i=0}^{n}$ are undefined coefficients. Then the coefficients of the product $g(z)\cdot P(z)$ can be explicitly calculated. Denote these coefficients by $\{c_j(a_0,a_1,...,a_n)\}_{j=0}^{n+\deg P(z)}$, every $c_j$ is xor of some $a_i$'s. Now the MILP optimization problem can be set up as follows
$\sum\limits_{j} c_j\rightarrow \min$
$c_0=c_0(a_0,a_1,...,a_n)$
$c_1=c_1(a_0,a_1,...,a_n)$
...
$0 \leq a_i \leq 1$
$0 \leq c_j \leq 1$
which yields some tuple $(a_{0}^{*},a_{1}^{*},...,a_{n}^{*})$ that minimizes the length of $g(z)\cdot P(z)$ for given $n$.

I wonder if there exists faster algorithm to obtain the minimizing polynomial $g(z)$ assuming $n$ to be arbitrarily large.