We give deterministicÕ(2 2n )-timeÕ(2 n )-space algorithms to solve all the most important computational problems on point lattices in NP, including the shortest vector problem (SVP), closest vector problem (CVP), and shortest independent vectors problem (SIVP). This improves the n O(n) running time of the best previously known algorithms for CVP [R. Kannan, and gives a deterministic and asymptotically faster alternative to the 2 O(n) -time (and space) randomized algorithm for SVP of Ajtai, Kumar, and Sivakumar [Proceedings of the 33rd Annual ACM Symposium on Theory of Computing, 2001, pp. 266-275]. The core of our algorithm is a new method to solve the closest vector problem with preprocessing (CVPP) that uses the Voronoi cell of the lattice (described as intersection of half-spaces) as the result of the preprocessing function. A direct consequence of our results is a derandomization of the best current polynomial time approximation algorithms for SVP and CVP, achieving a 2 O(n log log n/ log n) approximation factor.
Introduction.A d-dimensional lattice Λ is a discrete subgroup of the Euclidean space R d , and is customarily represented as the set of all integer linear combinations of n ≤ d basis vectors B = [b 1 , . . . , b n ] ∈ R d×n . There are many famous algorithmic problems on point lattices, the most important of which are as follows:• The shortest vector problem (SVP): given a basis B, find a shortest nonzero vector in the lattice generated by B. • The closest vector problem (CVP): given a basis B and a target vector t ∈ R d , find a lattice vector generated by B that is closest to t. • The shortest independent vectors problem (SIVP): given a basis B, find n linearly independent lattice vectors in the lattice generated by B that are as short as possible. 1 Besides being classic mathematical problems in the study of the geometry of numbers [16], these problems play an important role in many computer science and communication theory applications. SVP and CVP have been used to solve many landmark algorithmic problems in theoretical computer science, like integer programming [41,36], factoring polynomials over the rationals [40], checking the solvability by radicals [39],