4

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.

frrz
  • 51
  • @RodrigodeAzevedo I guess you could assume that you already have a basis, say the columns of some matrix $A$. Then I would be interested, with $A$ fixed, in $$ \text{minimize }f(U) =\left(\max_{j\in\left{1,\ldots,n\right}}||(AU)(j)||_0\right)\ \text{subject to }U\ \text{unimodular} $$ where $(AU)(j)$ denotes the $j$-th column of $AU$ and $||v||_0=\sum_j |v_j|^0 $is the zero norm – frrz Jul 27 '23 at 13:31
  • @RodrigodeAzevedoI not sure what you mean by brute force, that is, how do you even list all possibilities? I don't think there are finitely many. Anyway I am interested in a specific class of codes and the dimension of the smallest instances is around ~50, which is likely already too large to try all meaningful bases without additional structure. I have tried a simple greedy optimization where I take one elementary integer column operation at a time, starting from a basis in HNF and check if the maximum weight is reduced. This doesn't give any improvement. LLL also doesn't help much. – frrz Jul 30 '23 at 23:57
  • Sorry. Right. There are infinitely many unimodular matrices. I was thinking of totally unimodular matrices – Rodrigo de Azevedo Jul 31 '23 at 07:15
  • @RodrigodeAzevedo thanks anyway for helping me improve the question! – frrz Aug 10 '23 at 16:46

0 Answers0