Content deleted Content added
section header |
m Reverted edits by 187.211.194.123 (talk) (AV) |
||
(15 intermediate revisions by 12 users not shown) | |||
Line 1:
{{Short description|Method in computational algebra}}
{{for|the algorithm dealing with LFSRs|Berlekamp–Massey algorithm}}
Line 28 ⟶ 29:
:<math>g = (g_0, g_1, \ldots, g_{n-1}).\,</math>
It is relatively straightforward to see that the row vector <math>g\mathcal{Q}</math> corresponds, in the same way, to the reduction of <math>g(x)^q</math> modulo <math>f(x)</math>. Consequently, a polynomial <math>g(x) \in R</math> is in the Berlekamp subalgebra if and only if <math>g(\mathcal{Q}-I)=0</math> (where <math>I</math> is the <math>n \times n</math> [[identity matrix]]), i.e. if and only if it is in the null space of <math>\mathcal{Q}-I</math>.
By computing the matrix <math>\mathcal{Q}-I</math> and reducing it to [[reduced row echelon form]] and then easily reading off a basis for the null space, we may find a basis for the Berlekamp subalgebra and hence construct polynomials <math>g(x)</math> in it. We then need to successively compute GCDs of the form above until we find a non-trivial factor. Since the ring of polynomials over a field is a [[Euclidean ___domain]], we may compute these GCDs using the [[Euclidean algorithm]].
Line 34 ⟶ 35:
==Conceptual algebraic explanation==
With some abstract algebra, the idea behind
Now, suppose that <math display = "inline"> f(x) = f_1(x) \ldots f_n(x) </math> is the factorization into irreducibles. Then we have a ring isomorphism, <math display = "inline"> \sigma: \mathbb{F}_q[x]/(f(x)) \to \prod_i \mathbb{F}_q[x]/(f_i(x)) </math>, given by the Chinese remainder theorem. The crucial observation is that the Frobenius automorphism <math display = "inline"> x \to x^p </math> commutes with <math display = "inline"> \sigma </math>, so that if we denote <math display = "inline"> \text{Fix}_p(R) = \{ f \in R : f^p = f \} </math>, then <math display = "inline"> \sigma </math> restricts to an isomorphism <math display = "inline"> \text{Fix}_p( \mathbb{F}_q[x]/(f(x)) ) \to \prod_{i = 1}^n \text{Fix}_p( \mathbb{F}_q[x]/(f_i(x)) ) </math>. By finite field theory, <math display = "inline"> \text{Fix}_p( \mathbb{F}_q[x]/(f_i(x)) )</math> is always the prime subfield of that field extension. Thus, <math display = "inline"> \text{Fix}_p( \mathbb{F}_q[x]/(f(x)) ) </math> has <math display = "inline"> p </math> elements if and only if <math display = "inline"> f(x) </math> is irreducible.
Moreover, we can use the fact that the Frobenius automorphism is <math display = "inline"> \mathbb{F}_p </math>-linear to calculate the fixed set. That is, we note that <math display = "inline"> \text{Fix}_p( \mathbb{F}_q[x]/(f(x)) ) </math> is a <math display = "inline"> \mathbb{F}_p </math>-subspace, and an explicit basis for it can be calculated in the polynomial ring <math display = "inline"> \mathbb{F}_p[x,y]/(f,g) </math> by computing <math display = "inline"> (x^i y^j)^p </math> and establishing the linear equations on the coefficients of <math display = "inline"> x,y </math> polynomials that are satisfied iff it is fixed by Frobenius. We note that at this point we have an efficiently computable irreducibility criterion, and the remaining analysis shows how to use this to find factors.
Line 43 ⟶ 44:
* In the case of small <math display = "inline"> p </math> we can construct any <math display = "inline"> g \in \text{Fix}_p( \mathbb{F}_q[x]/(f(x)) ) \setminus \mathbb{F}_p </math>, and then observe that for some <math display = "inline"> a \in \mathbb{F}_p </math> there are <math display = "inline"> i,j </math> so that <math display = "inline"> g - a = 0 \mod f_i</math> and <math display = "inline"> g - a \not = 0 \mod f_j </math>. Such a <math display = "inline"> g - a </math> has a nontrivial factor in common with <math display = "inline"> f(x) </math>, which can be computed via the gcd. As <math display = "inline"> p </math> is small, we can cycle through all possible <math display = "inline"> a </math>.
* For the case of large primes, which are necessarily odd, one can exploit the fact that a random nonzero element of <math display = "inline"> \mathbb{F}_p^* </math> is a square with probability <math display = "inline"> 1/2 </math>, and that the map <math display = "inline"> x \to x^{ \frac{ p -1}{2}} </math> maps the set of non-zero squares to <math display = "inline"> 1 </math>, and the set of non-squares to <math display = "inline"> -1 </math>. Thus, if we take a random element <math display = "inline"> g \in \text{Fix}_p( \mathbb{F}_q[x]/f(x)) </math>, then with good probability <math display = "inline"> g^{ \frac{ p - 1}{2}} - 1 </math> will have a non-trivial factor in common with <math display = "inline"> f(x) </math>.
For further details one can consult
==Applications==
Line 60:
==References==
{{Reflist}}
*{{Cite journal
|first=Elwyn R.
Line 66 ⟶ 67:
|journal=[[Bell System Technical Journal]]
|volume=46
|issue= ▼
|pages=1853–1859
|year=1967
▲|issue=8
|mr=0219231
|doi=10.1002/j.1538-7305.1967.tb03174.x}} [http://www.alcatel-lucent.com/bstj/vol46-1967/articles/bstj46-8-1853.pdf BSTJ] Later republished in: {{Cite book |first=Elwyn R. |last=Berlekamp |title=Algebraic Coding Theory
*{{cite book
|author=
|author-link=Donald E. Knuth
|chapter=4.6.2 Factorization of Polynomials
|title=Seminumerical Algorithms
Line 86 ⟶ 88:
[[Category:Computer algebra]]
[[Category:Finite fields]]
[[Category:Polynomial factorization algorithms]]
|