C.6.2.4 The algorithm of Di Biase and Urbanke
Like the algorithm of Hosten and Sturmfels, the algorithm of Di Biase
and Urbanke (see [DBUr95]) performs up
to Groebner basis
computations. It needs no auxiliary variables, but a supplementary
precondition; namely, the existence of a vector without zero components
in the kernel of .
The main idea comes from the following observation:
Let be an integer matrix,
a lattice basis of the
integer kernel of . Assume that all components of are
positive. Then
i.e., the ideal on the right is already saturated w.r.t. all variables.
The algorithm starts by finding a lattice basis
of the
kernel of such that has no zero component. Let
be the set of indices with
. Multiplying the components
of
and the columns
of by yields
a matrix and a lattice basis
of the kernel of
that fulfill the assumption of the observation above. It is then possible
to compute a generating set of by applying the following
``variable flip'' successively to
:
Let be an elimination ordering for . Let be the matrix
obtained by multiplying the -th column of by . Let
be a Groebner basis of w.r.t. (where is neither
involved in nor in ). Then
is a generating set for .
|