Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while...
Transcript of Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while...
![Page 1: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither](https://reader036.fdocuments.net/reader036/viewer/2022071020/5fd3ef23f83b935a3732dc4b/html5/thumbnails/1.jpg)
Solving problems with the LLL algorithm
Mark van Hoeij
Florida State University
October 17, 2015
Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 1 / 23
![Page 2: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither](https://reader036.fdocuments.net/reader036/viewer/2022071020/5fd3ef23f83b935a3732dc4b/html5/thumbnails/2.jpg)
Lattice basis reduction (LLL)
A lattice is a discrete Z-module ⊆ Rn
Example: If b1,b2 ∈ R2 are R-linearly independent then
L = SPANZ(b1,b2) = {n1b1 + n2b2 ∣n1,n2 ∈ Z}
is a lattice of rank 2 and b1,b2 is a basis of L.
Lattice basis reduction
Input: a basis of L.Output: a good basis of L.
For rank 2 this is easy (≈ Euclidean algorithm). For a long time it wasnot known how to handle rank n > 2 until:
[LLL 1982] (Lenstra, Lenstra, Lovasz): Efficient algorithm for any rank.
Has lots of applications!
Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 2 / 23
![Page 3: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither](https://reader036.fdocuments.net/reader036/viewer/2022071020/5fd3ef23f83b935a3732dc4b/html5/thumbnails/3.jpg)
Figure 1 : A lattice with a bad basis b1,b2 and a good basis v1, v2.
L = {dots in Figure 1} = SPANZ(b1,b2) = SPANZ(v1, v2)
Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 3 / 23
![Page 4: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither](https://reader036.fdocuments.net/reader036/viewer/2022071020/5fd3ef23f83b935a3732dc4b/html5/thumbnails/4.jpg)
Gram-Schmidt process (n = 2)
1 v∗1 = v12 v∗2 = v2 − µv∗1 Compute µ ∈ R such that v∗1 ⊥ v∗2 .
G.S.-vectors v∗1 , . . . , v∗
n ; very useful information on L
even though v∗2 , . . . , v∗
n are generally not in L.
Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 4 / 23
![Page 5: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither](https://reader036.fdocuments.net/reader036/viewer/2022071020/5fd3ef23f83b935a3732dc4b/html5/thumbnails/5.jpg)
b1,b2 is a bad basis because:
1 b1,b2 are almost parallel,
2 ∣∣b∗2 ∣∣ ≪ ∣∣b2∣∣ (good basis Ô⇒ ∣∣v∗i ∣∣ ≈ ∣∣vi ∣∣)3 min(∣∣b∗1 ∣∣, ∣∣b∗2 ∣∣) is tiny, and thus a poor bound:
Let bmin ∶=min(∣∣b∗i ∣∣)Shortest-vector-bound: bmin ⩽ ∣∣shortest v ≠ 0 in L∣∣
Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 5 / 23
![Page 6: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither](https://reader036.fdocuments.net/reader036/viewer/2022071020/5fd3ef23f83b935a3732dc4b/html5/thumbnails/6.jpg)
Given a bad basis b1,b2, how to find a good basis?
1 Subtract an integer-multiple of a one vector from another.(First step in the picture is: replace b1 with b1 − b2).
2 Repeat as long as Step 1 can make a vector shorter.
This strategy works well for rank n = 2.
Efforts to extend to n > 2 failed until the breakthrough [LLL 1982], whichuses lengths of G.S.-vectors b∗i and not the lengths of the bi themselves!
Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 6 / 23
![Page 7: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither](https://reader036.fdocuments.net/reader036/viewer/2022071020/5fd3ef23f83b935a3732dc4b/html5/thumbnails/7.jpg)
Application #1: p = a2 + b2
Theorem (Fermat)
If p prime and p ≡ 1 mod 4, then p = a2 + b2 for some a,b ∈ Z.
Example: p = 10400 + 69 = 10000000000000 . . . . . . . . .00000000000069
How to find a,b ∈ Z with a2 + b2 equal to p?
Observation: a2 + b2 ≡ 0 mod p
Hence a ≡ αb mod p for some solution of α2 + 1 ≡ 0 mod p.
Compute α (e.g. Berlekamp’s algorithm). Then
( ±ab
) ∈ SPANZ((p0
) ,( α1
))
(the ± is irrelevant) (α2 + 1 ≡ 0 has two solutions mod p)
Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 7 / 23
![Page 8: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither](https://reader036.fdocuments.net/reader036/viewer/2022071020/5fd3ef23f83b935a3732dc4b/html5/thumbnails/8.jpg)
Application #1: p = a2 + b2
p = 10400 +69 = 1000000000000000000 . . . . . . . . .000000000000000069
Find: a,b ∈ Z with a2 + b2 = p.
If
v = ( ab
) ∈ SPANZ((p0
) ,( α1
))
then∣∣v2∣∣ = a2 + b2 ≡ (αb)2 + b2 = (α2 + 1)b2 ≡ 0 mod p.
So ∣∣v ∣∣2 is divisible by p.So ∣∣v ∣∣2 is p if v is short enough: 0 < ∣∣v ∣∣2 < 2p
Such v is easy to find in a good basis.
However, {( p0
) ,( α1
)} is a bad basis (angle ≈ 10−400 radians!)
Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 8 / 23
![Page 9: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither](https://reader036.fdocuments.net/reader036/viewer/2022071020/5fd3ef23f83b935a3732dc4b/html5/thumbnails/9.jpg)
Application #1: p = a2 + b2
p = 10400 +69 = 1000000000000000000 . . . . . . . . .000000000000000069
Find: a,b ∈ Z with a2 + b2 = p.
The simple strategy from slide 6 reduces the bad basis to a good basis.
From it we can immediately read off a solution:
( ab
) = ( 858038135984417422601 . . . . . .0688928009299704710513585978387637054198 . . . . . .0249251426547937937
)
The computation (finding α and reducing the basis) takes < 0.1 seconds.
Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 9 / 23
![Page 10: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither](https://reader036.fdocuments.net/reader036/viewer/2022071020/5fd3ef23f83b935a3732dc4b/html5/thumbnails/10.jpg)
Lattice basis reduction for arbitrary rank n
Apply the Gram-Schmidt process to b1, . . . ,bn
b∗1 = b1
b∗2 = b2 − µ2,1b∗1 (take µij ∈ R s.t. b∗i ⊥ b∗j ) (j < i)
b∗3 = b3 − µ3,1b∗1 − µ3,2b∗2⋯
Det(L) = ∣∣b∗1 ∣∣⋯∣∣b∗n ∣∣ (the determinant is basis-independent).
Replacing bi ← bi − kbj reduces µij to µij − k (k ∈ Z).
LLL lattice basis reduction1 Reduce to ∣µij ∣ ⩽ 0.51 (⩽ 0.5 if µij known exactly).
2 If swapping bi−1 ↔ bi increases ∣∣b∗i ∣∣ at least 10% for some i , then doso and go back to Step 1.
Output: good basis: ∣∣b∗i−1∣∣ ⩽ 1.28 ⋅ ∣∣b∗i ∣∣ and ∣µij ∣ ⩽ 0.51
Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 10 / 23
![Page 11: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither](https://reader036.fdocuments.net/reader036/viewer/2022071020/5fd3ef23f83b935a3732dc4b/html5/thumbnails/11.jpg)
Properties of LLL reduced basis
If Output(LLL) = b1, . . . ,bn then
∣∣b∗1 ∣∣ ⩽ 1.28 ⋅ ∣∣b∗2 ∣∣ ⩽ 1.282 ⋅ ∣∣b∗3 ∣∣ ⩽ ⋯ ⩽ 1.28n−1 ⋅ bmin
hence
∣∣b1∣∣ ⩽ fn ⋅ ∣∣shortest v ≠ 0 in L∣∣ “fudge factor” fn = 1.28n−1
If L has a short non-zero vector then b1 is not much longer.If L has short independent S1, . . . ,Sk then b1, . . . ,bk are not much longer.
Many problems P can be solved this way:
1 Construct a lattice L = SPANZ(b1, . . . ,bn) for which Solution(P)can be read some solution-vectors S1, . . . ,Sk ∈ L.
2 Construct L in such a way that vectors in L − SPANZ(S1, . . . ,Sk)are ⩾ fn times longer than S1, . . . ,Sk .
3 Replace b1, . . . ,bn by an LLL-reduced basis, then:
4 S1, . . . ,Sk ∈ SPANZ(b1, . . . ,bk). Separates S1, . . . ,Sk from rest of L
Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 11 / 23
![Page 12: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither](https://reader036.fdocuments.net/reader036/viewer/2022071020/5fd3ef23f83b935a3732dc4b/html5/thumbnails/12.jpg)
Application #2:Reconstruct algebraic number from an approximation
Suppose β is an algebraic number, a root of an irreducible P ∈ Z[x].Suppose P = ∑n−1
i=0 cixi with ∣ci ∣ ⩽ 10b.
Suppose we have an approximation α ∈ R with error < 10−a. We needa ⩾ bn+ εn2 because P has ≈ bn digits of data. (fudge factor fn ; εn2)
Problem: Compute exact β (compute P) from the approximation α.
Can read P from solution-vector S ∶= (c0, . . . , cn−1) ∈ Zn.Problem: Zn contains unwanted vectors as well.
S = Sculpture ⊆ rock. Use chisel to separate unwanted rock.
Idea:
Add one (or more) entries Zn → Zn+1 that make unwanted vectorsat least fn times longer than S . Use LLL to separate them.
Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 12 / 23
![Page 13: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither](https://reader036.fdocuments.net/reader036/viewer/2022071020/5fd3ef23f83b935a3732dc4b/html5/thumbnails/13.jpg)
Application #2:Reconstruct algebraic number from an approximation
Define E ∶ Zn → Zn+1
(c0, . . . , cn−1)↦ (c0, . . . , cn−1, ∑ ci [10aαi] )
b1, . . . ,bn ∶= E( standard basis of Zn )
b1, . . . ,bn spans a lattice L ⊆ Zn+1 of rank n.
b1, . . . ,bn is a bad basis. Typical example: degree(P) < 40 and∣coefficients∣ ⩽ 10100. Angles will be ≈ 10−4000 radians!
LLL quickly turns this into a good basis.
With suitable precision a, this either leads to the minpoly P = ∑ cixi
or a proof that no P exists within the chosen bounds.
Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 13 / 23
![Page 14: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither](https://reader036.fdocuments.net/reader036/viewer/2022071020/5fd3ef23f83b935a3732dc4b/html5/thumbnails/14.jpg)
Application #3: Polynomial-time factorization
Theorem (LLL 1982)
Factoring in Q[x] can be done in polynomial time.
Proof sketch: Compute a root of f to precision a. Use the previous slideto compute its minpoly. Choose a in such a way that this produces eithera non-trivial factor, or an irreducibility proof.
Remarks:1 [LLL 1982] uses a p-adic root, while [Schonhage 1984] uses a real or
complex root. Both work in polynomial time.
2 Neither was used in computer algebra systems;[Zassenhaus 1969] (not polynomial time!) is usually much faster.
3 Faster algorithm [vH 2002]: apply LLL to a much smaller lattice.
Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 14 / 23
![Page 15: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither](https://reader036.fdocuments.net/reader036/viewer/2022071020/5fd3ef23f83b935a3732dc4b/html5/thumbnails/15.jpg)
Integer solutions of approximate and/or modular equations.
Find: x1, . . . , xn ∈ Z when given:
1 Approximate linear equations: ∣ai ,1x1 +⋯ + ai ,nxn∣ < εi (aij ∈ R)
2 or modular linear equations bi ,1x1 +⋯ + bi ,nxn ≡ 0 mod mi
3 or a mixture of the above, and other variations
then use LLL.
Remarks:
Linear equations over R: Ordinary linear algebra gives a basissolutions over R, but this does not help to find solutions over Z.
Equations (approximate and/or modular etc.) areinserted in a lattice by adding entries (like E ∶ Zn → Zn+1 on p. 13).
[vH, Novocin 2010]: Efficient method for:”amount(data in equations)” ≫ ”amount(data in solution)”
Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 15 / 23
![Page 16: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither](https://reader036.fdocuments.net/reader036/viewer/2022071020/5fd3ef23f83b935a3732dc4b/html5/thumbnails/16.jpg)
Application: Integer relation finding
Given a1, . . . , an ∈ R, find x1, . . . , xn ∈ Z (say ∣xi ∣ ⩽ 10100) with
a1x1 +⋯ + anxn = 0.
Notable algorithms:
[LLL 1982]
[PSLQ 1992] ( ≡ [HJLS 1986] ?)
Beautiful applications e.g. PSLQ ; Bailey-Borwein-Plouffe formula for π
Remarks:
[LLL 1982] is a more complete solution because [PSLQ 1992] gave nobound(precision(ai)) ; provable result.
PSLQ won SIAM Top 10 Algorithms of the Century award.
The fastest implementations I have seen can handle n = 500(using modern versions of LLL).
Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 16 / 23
![Page 17: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither](https://reader036.fdocuments.net/reader036/viewer/2022071020/5fd3ef23f83b935a3732dc4b/html5/thumbnails/17.jpg)
Counting # LLL uses in one paper
Recent paper: [Derickx, vH, Zeng]Computing Galois representations and equations for modular curves XH(`).
This paper uses LLL for:
1 Finding low-degree functions:To a function, associate a vector containing root/pole orders. Lowdegree functions have short vectors, use LLL to find them.
2 The paper computes an algebraic number α mod primes p1, . . . ,pn.Use LLL to reconstruct the minpoly P of α.
3 P has huge coefficients (> 101000).Use LLL to find a smaller Q ∈ Z[x] with Q[x]/(P) ≅ Q[x]/(Q).
4 One of the tests for Q is to compute its Galois group.Galois group computations use LLL directly and indirectly (factoringresolvent polynomials uses [vH 2002], which uses LLL).
Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 17 / 23
![Page 18: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither](https://reader036.fdocuments.net/reader036/viewer/2022071020/5fd3ef23f83b935a3732dc4b/html5/thumbnails/18.jpg)
Other applications
[Imamoglu, vH 2015]: solve linear differential equations in terms ofhypergeometric functions 2F1(a,b; c ∣ f ) where f is a rational function.
Problem:
We can recover f if the first term cxd of the Taylor series of f is known.We have no direct way to compute c , but given c , we can check if c is OK.
Strategy for finding c :
Work modulo a prime p, then try all p cases! Then work mod higherp-powers (or other primes) until one can recover c ∈ Q with LLL.
This strategy has other applications. It may help if a system of polynomialequations is too complicated to be solved directly with Grobner basis.
Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 18 / 23
![Page 19: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither](https://reader036.fdocuments.net/reader036/viewer/2022071020/5fd3ef23f83b935a3732dc4b/html5/thumbnails/19.jpg)
Polynomial factorization until 2000.
f ∈ Z[x], degree N, square-free and primitive.
Step 1:
Factor f ≡ f1⋯ fr mod pand Hensel lift:
f ≡ f1⋯ fr mod pa
Step 2 in [Zassenhaus 1969]:
Try S ⊆ {f1, . . . , fr} with 1,2, . . . ⌊r/2⌋ elements, and check if theproduct (lifted to Z[x]) is a factor of f in Z[x].Up to 2r−1 cases S ⊆ {f1, . . . , fr} (Combinatorial Problem)
[LLL 1982] Bypasses Combinatorial Problem:
L ∶= {(c0, . . . , cN−1) ∣ ∑ cixi ≡ 0 mod (pa, f1)} (rank = N)
LLL-reduce, take first vector, and compute gcd(f ,∑ cixi).
Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 19 / 23
![Page 20: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither](https://reader036.fdocuments.net/reader036/viewer/2022071020/5fd3ef23f83b935a3732dc4b/html5/thumbnails/20.jpg)
Factor f in Q[x], degree N = 1000
[LLL 1982] reduces a lattice of rank N
Algorithm runs in polynomial time.
However, lattice reduction for rank 500 is very time consuming.
rank N = 1000 is a problem!
[Zassenhaus 1969] tries ⩽ 2r−1 cases
r = 12 ; , (Finishes in seconds)
r = 80 ; / (Millions of years, even with 109 cases per second)
If: f has degree N = 1000, few factors in Q[x] but r = 80 factors in Fp[x]Then: Out of reach for any algorithm in 2000.
However, 80 bits of data reduces CPU time from eons to seconds!
[vH 2002]: Use lattice reduction to compute only those bits! (rank ≈ r)
Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 20 / 23
![Page 21: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither](https://reader036.fdocuments.net/reader036/viewer/2022071020/5fd3ef23f83b935a3732dc4b/html5/thumbnails/21.jpg)
Factor f in Q[x], degree N , with f ≡ f1⋯fr mod pa
[LLL 1982]: (polynomial time)
Reduce a lattice of rank N (and large entries)
[Zassenhaus 1969]: (not poly time, usually faster than [LLL 1982])
Try (exponentially many) subsets S ⊆ {f1, . . . , fr} (Combinatorial Problem)
[vH 2002]: (fastest)
S ⇐⇒ (v1, . . . , vr) ∈ {0,1}r
Insert data: {0,1}r ⊆ Zr → Zr+ε to construct lattice of rank r + εSequence of lattice reductions leads to v1, . . . , vr , and hence S .
Test (as in Zassenhaus) if ∏S mod pa ; a factor in Q[x].[vH 2002]: correctness and termination proof, no complexity bound.
Complexity bound: [vH, Novocin 2010] and [vH 2013].
Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 21 / 23
![Page 22: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither](https://reader036.fdocuments.net/reader036/viewer/2022071020/5fd3ef23f83b935a3732dc4b/html5/thumbnails/22.jpg)
[vH 2002] factoring
S ⊆ {f1, . . . , fr} ⇐⇒ v ∈ {0,1}r ⊆ Zr → Zr+ε
If: we have: approximate/modular linear equations for v = (v1, . . . , vr)then: lattice reduction ; v .
However, the factor ∏S =∏ f vii of f depends non-linearly on v .
Idea: coefficients(f ⋅ f ′i /fi) ; equations for v(f ′i /fi is the logarithmic derivative; turns products into sums)
Remarks:
[vH 2002] runs fast; lattice reduction is only used to construct r bits.
Lots of data in coefficients(f ⋅ f ′i /fi ) N ⋅ log2(pa) bits ; r bits.
How to select from this data? (select all ; no speedup)
Arbitrary choice ; fast in practice but no complexity bound.
[vH Novocin 2010] and [vH 2013] solve this ; best complexity boundand practical performance, in the same algorithm.
Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 22 / 23
![Page 23: Solving problems with the LLL algorithmhoeij/papers/LLL.pdf1 [LLL 1982] uses a p-adic root, while [Sch onhage 1984] uses a real or complex root. Both work in polynomial time. 2 Neither](https://reader036.fdocuments.net/reader036/viewer/2022071020/5fd3ef23f83b935a3732dc4b/html5/thumbnails/23.jpg)
References, polynomial factorization over Q
H. Zassenhaus (1969)
On Hensel Factorization I.
J. Number Theory, 1, 291-311
Lenstra, Lenstra, Lovasz (1982)
Factoring polynomials with rational coefficients
Math Ann. 261, 515-534
M. van Hoeij (2002)
Factoring polynomials and the knapsack problem
J. of Number Theory, 95, 167-189
M. van Hoeij, A. Novocin (2010)
Gradual sub-lattice reduction and a new complexity for factoring polynomials
LATIN, 539-553
M. van Hoeij (2013)
The complexity of factoring univariate polynomials over the rationals
ISSAC’2013 tutorial, slides at www.math.fsu.edu/∼hoeij
Mark van Hoeij (FSU) Solving problems with the LLL algorithm October 17, 2015 23 / 23