9.ppt

advertisement
Hensel Interpolation
Lecture 9
Richard Fateman CS 282 Lecture 9
1
Recall our typical mapping from GCD
GCD(F(x,y,z),G(x,y,z))
H(x,y,z)
GCD(Fp(x,y,z),Gp(x,y,z))
Hp(x,y,z)
GCD(Fp(x,0,0),Gp(x,0,0))
Hp(x,0,0)
Richard Fateman CS 282 Lecture 9
2
Start in the lower right corner of this
diagram with some image of a factorization
• c(x)*h(x)=f(x) mod p
• ... we have c mod p, h mod p. (and f mod p)
• ... we want to know c and h over Z [x], in fact, over
Z[x,y,z,...] as many variables as are necessary.
• note that c(x) is the cofactor of f, (f/h), and h is the
gcd(f,g).
• ALSO we’ll sometimes need to fake these otherwise in
general false assumptions..
• f(x) and h(x) are monic [leading coeff 1]
• f(x) and h(x) are “square-free”. That is, f(x)=k2(x)*...
is forbidden.
Richard Fateman CS 282 Lecture 9
3
Recall p-adic notation
If p and N are integers, then the p-adic representation of N is
(a0, a1, ..., am) where for i = 1, ...,m = we have 0<ai<p
N = a0p0 + a1p1 + ... + ampm
For instance, the 3-adic representation of the integer 65 is (2,0,1,2).
We can extend this notion to polynomials. If p(x) and q(x) are
polynomials, then the p-adic representation of q is (a1, a2, ..., am) where for
i=1, ..., m-1, ai is in an integer, am is a nonzero integer and
q(x) = a0p(x)0 + a1p(x)1 + ... +amp(x)m
For instance the (x-1)-adic representation of x3 is (1,3,3,1).
Richard Fateman CS 282 Lecture 9
4
Hensel Algorithms
Start with a p-adic approximate and compute ever more accurate
versions.
The original linear Hensel Construction lifts a factorization
from mod pi to mod pi+1 at the ith step
while the quadratic construction due to Zassenhaus lifts a
factorization from mod (p2)i to mod (p2)i+1
That is, twice as many terms instead of one more term.
Nevertheless, the linear version may require so much less
computation at each step that it may be the algorithm of choice
in lifting to a given modulus.
Richard Fateman CS 282 Lecture 9
5
Starting up.. Algorithm
Let u(x) be a monic polynomial . (This assumption is, in general,
unwarranted, and overcoming it makes the algorithm messy.)
in Z[x] and assume v1(x) ¢ w1(x) = u(x) mod p and GCD (v1,w1) = 1
mod p where p is a prime.
The algorithm computes a sequence of pairs of polynomials
((vi,wi)) such that
vi(x) ¢ wi(x) = u(x) mod pi
Richard Fateman CS 282 Lecture 9
6
Step I
Compute by means of the Extended Euclidean Algorithm
generalized to polynomials, two polynomials a(x) and b(x) in Zp[x]
such that
(i) deg(a) < deg(w1),
(ii) deg(b) < deg(v1 )
(iii) (a(x)v1 + b(x)w1 = 1) mod p
Richard Fateman CS 282 Lecture 9
7
Step II
Now suppose we are given (vi, wi) and we wish to compute
(vi+1,wi+1). Compute a polynomial ci such that
(pici(x) = vi(x)wi(x) - u(x)) mod pi+1
How hard is this? a multiply, subtraction, and division with
remainder
Richard Fateman CS 282 Lecture 9
8
Step III
Compute (by polynomial division of a(x)ci(x) by w1(x)) the quotient
qi(x) and remainder ai(x) such that
a(x)ci(x) = qi(x)w1(x) + ai(x) mod p
and set
bi(x) := (b(x)ci(x) + qi(x)v1(x)) mod p
Observe that deg(ai)<deg(w1), deg(bi)<deg(vi)
and mod p,
aiv1 + biw1 = (a ¢ ci - w1qi)v1+ (b ¢ ci + v1qi)w1
= ci(a ¢ v1 + b ¢ w1 )
= ci
Richard Fateman CS 282 Lecture 9
9
Step III- observation
{so in Z[x] , (or Zp2[x] )
aiv1 + biw1 = ci + p ¢ di(x) for some di(x) in Z[x]
Richard Fateman CS 282 Lecture 9
10
Step IV
Set
vi+1(x) := vi(x)-pibi(x) mod pi+1
wi+1(x) := wi(x)-piai(x) mod pi+1
Observe that, over the integers
vi+1(x)wi+1(x) = vi(x)wi(x)- pi[ai(x)vi(x)+bi(x)wi(x)] + p2i ¢ ai(x)bi(x)
= u(x) + pi ¢ ci(x) - pi[ci(x) +p ¢ di(x)] + p2i ¢ ai(x)bi(x)
= u(x) - pi+1[di(x)-pi-1 ¢ ai(x)bi(x)
that is,
vi+1(x)wi+1(x) = u(x) mod pi+1
(QED)
Richard Fateman CS 282 Lecture 9
11
Download