Next: Testing the Lattice
Up: Empirical Analysis
Previous: Lazy vs. Greedy Selection
Choosing
Values
As shown in the previous section, the selection method for choosing row
moves in Seysen's algorithm can affect both the algorithm's performance
and running time. In our comparison of lazy and greedy selection
methods above, however, we implicitly sidestepped another such issue:
the method by which values of
are chosen for a specific row
move. Section 2.1.4 showed that for specified
lattice basis vectors
,
the value of
which minimizes
is:
 |
(2.12) |
However, recall from Section 2.1.1 that any
transformation matrix
may be represented as the
product of
matrices (+1 if
,
-1 otherwise). Thus, when a
transformation is
applied to lattice basis B, we are implicitly performing
row
moves at once. It may be the case that for some lattices, a finer
degree of control is required; that is, a greedy algorithm might perform
even better if it was restricted to performing only Ti,j1 and
Ti,j-1 transformations. That way the algorithm would have
the finest possible degree of control over row operations.
It is also important to note that a greedy selection mechanism uses
values in two distinct places. First, in order to select a
pair of basis vectors to reduce, the greedy approach calculates
for all possible values of
(
is the function in Equation 2.15 above).
Once a pair of vectors has been chosen, a
transformation is applied. In the first case,
is used as part
of the scoring mechanism in order to choose a set of basis vectors to
reduce. In the second case
plays a different role, the number
of times to add vector
to
.
Because
values have these two distinct functions, it is important that we
distinguish between those roles when testing methods of choosing
values.
We consider in this section three versions of Seysen's basis reduction
algorithm and their performance on a set of randomly generated integer
lattices2.2. All three versions use a greedy selection scheme to choose
the next row move to perform. They differ only in the set of allowed
values of
in the scoring and transformation phases. These
version are:
- 1.
-
:
may take on any integer value when choosing a
set of basis vectors for the next row move, and any
may be performed on those vectors.
- 2.
-
:
may take on any integer value when choosing a
set of basis vectors for the next row move. However, only
Ti,j1 and
Ti,j-1 actual transformations are allows.
(If
we add
to
.
If
we subtract
from
.)
- 3.
-
:
may only be
when choosing the next row
move, and only
transformations may be performed
on the basis.
The
version is identical to our ``greedy'' implementation of
the previous section; it will serve as our control. The
version of Seysen's algorithm is designed to greedily select the best
possible row move based on unlimited
values, but to perform
the least possible number of changes to the lattice basis before
recomputing what to do next. The
version also restricts
lattice basis changes to the minimum amount possible on each step, but
this version selects a row move based only on what it can do immediately
to reduce the S(A) measure, not on any ``future potential.''
Table 2.2:
Comparison of
,
and
Options
| n |
L10 |
S(A) |
L10* |
Method |
L10' |
S(A') |
L10*' |
# Steps |
| |
|
|
|
 |
0. |
20. |
0. |
757.4 |
| 20 |
82.4 |
 |
118.2 |
 |
0. |
20. |
0. |
767.0 |
| |
|
|
|
 |
0. |
20. |
0. |
787.3 |
| |
|
|
|
 |
0. |
25. |
0. |
1622.1 |
| 25 |
132.0 |
 |
192.9 |
 |
0. |
25. |
0. |
1603.4 |
| |
|
|
|
 |
0. |
25. |
0. |
1610.3 |
| |
|
|
|
 |
0. |
30. |
0. |
3275.3 |
| 30 |
195.8 |
 |
287.2 |
 |
0. |
30. |
0. |
3176.1 |
| |
|
|
|
 |
0. |
30. |
0. |
3316.1 |
| |
|
|
|
 |
110.4 |
 |
112.6 |
3037.0 |
| 35 |
269.2 |
 |
390.0 |
 |
99.0 |
 |
102.2 |
3022.0 |
| |
|
|
|
 |
112.3 |
 |
114.6 |
2920.8 |
| |
|
|
|
 |
216.9 |
 |
227.1 |
2240.2 |
| 40 |
343.8 |
 |
507.0 |
 |
206.5 |
 |
217.0 |
2399.4 |
| |
|
|
|
 |
205.0 |
 |
217.3 |
2527.2 |
| |
|
|
|
 |
304.6 |
 |
323.5 |
2369.9 |
| 45 |
434.0 |
 |
656.7 |
 |
290.6 |
 |
312.3 |
2569.8 |
| |
|
|
|
 |
296.5 |
 |
315.8 |
2739.2 |
| |
|
|
|
 |
402.8 |
 |
429.2 |
2698.1 |
| 50 |
541.2 |
 |
833.5 |
 |
386.1 |
 |
418.4 |
3276.4 |
| |
|
|
|
 |
393.8 |
 |
422.4 |
3491.1 |
Table 2.2 compares the performance of the
,
and
versions of Seysen's basis reduction
algorithm. For each value of n, twenty test lattices of dimension
n were generated and Seysen-reduced by each of the three methods. The
table lists aggregate information for each value of n (all numbers
shown are the geometric mean of the experimental values obtained for
each of the twenty test lattices):
- n: The dimension of the test lattice in this group.
- L10:
before reduction.
- S(A): The Seysen measures before reduction.
- L10*:
before
reduction.
- Method: The restructions placed of
values.
- L10':
after reduction.
- S(A'): The Seysen measure after reduction.
-
L10*':
after reduction.
- # Steps: The number of row moves performed during the reduction.
For
,
all three implementation were able to completely
reduce all test lattices to In. The only difference in the
performance of the three methods was in the number of reduction steps
required to reduce a test lattice, and these differences were minor (no
more than 5% variation among any of the values for a given dimension).
More differences among the methods appeared once
and
Seysen's algorithm was no longer able to reduce any of the test lattices
to In. For the majority of the test lattices, the
appears to yield the most Seysen-reduced lattice basis, although it
requires significantly more row moves to perform this reduction than the
method. This improvement is expected; after all, the only
difference between the
and
methods is that that
latter looks more frequently at the lattice basis and takes smaller
``steps'' while performing a reduction. However, as the dimension of
the lattice basis increased, the ratio of row moves required by
to row moves required by
also increased. By the time n =
50, the
method required approximately 30% more reduction
steps to reduce test lattices than the
method did.
The performance of the
method fell somewhere between
that of
and
for test lattices with
.
This is somewhat surprising in and of itself, since the capability of
the
method to consider future reduction is severely
limited. This unexpected performance may be an artifact of our method
of generating test lattices; we only performed n2 row operations on
the initial upper-triangular lattice basis and used only
transitions to modify the lattice basis. This could account for the
relatively good performance of the
method, and also the
differences between the
and
methods.
The experiments summarized in Table 2.2 do not indicate
that any one of the tested methods consistently performs better than the
others. Without any clear indication that one method would yield
significantly better results (especially as
), we
were reluctant to use any method in Seysen's algorithm except the
one implicitly defined by Seysen himself. For special types
of lattices, it is probably worthwhile to compare these methods again.
It may be that increased performance by the
method more
than offsets the increase in the number of row operations. However, for
our experiments in subsequent sections (and the subset sum lattices of
Chapter 3) we continued to use the
form of
Seysen's algorithm.
Next: Testing the Lattice
Up: Empirical Analysis
Previous: Lazy vs. Greedy Selection
Brian A. LaMacchia
1999-10-30