I am working with lattice codes (see here, or here) and facing the following problem: I have a set of $k$ vectors $\left\{v_1,\ldots,v_k\right\}$ which I know generate an $n$-dimensional, full-rank lattice, in the sense that any lattice vector can be written as linear combination of the $v_j$s with integer coefficients. This set is over-complete ($k>n$) and has the property that the weight, i.e. the number of non-zero elements, of any of the $v_j$s is low (bounded by a constant).
Is there any way of constructing a lattice basis from an over-complete set such that the low-weight property is conserved?
If that helps, we can assume that the lattice is obtained through construction $A$, so thinking of the $v_j$s as column vectors we can write $$ M = \left(v_1 , v_2, \ldots , v_k \right) = \left(v_1 , v_2, \ldots , v_{k-n}\ |\ 2\mathbb{I}_n \right) $$ with $\mathbb{I}_n$ the identity matrix, $v_1 , v_2, \ldots , v_{k-n} $ have entries in $\left\{0,1\right\}$ and our lattice would be $$ \mathcal{L} = \left\{Mz\in \mathbb{R}^n :\ z\in\mathbb{Z}^k \right\} .$$
In general, constructing a basis is reasonably easy using the Hermite normal form (HNF), but then the weight can become as large as $n$.
If we do assume we found a basis through the HNF, for example, then my problem could be stated as
$$\text{minimize } f(U) = \left(\max_{j\in\left\{1,\ldots,n\right\}} \left\| (AU)(j) \right\|_0 \right)\ \text{subject to } U \text{ is unimodular} $$
where $(A U)(j)$ denotes the $j$-th column of $A U$ and $\| v \|_0 = \sum\limits_j | v_j |^0$ is the zero "norm".
I have spent some time looking into lattice basis reduction methods but it seems that most algorithms aim at finding "short" bases (e.g., LLL), in the sense of Euclidean length, whereas I am specifically concerned with the "sparsity" of the basis. Intuitively, I think that this could also be phrased as basis reduction in the zero norm.
Any pointer to algorithms to reduce the weight of lattice basis vectors would be much appreciated.