Enumeration of reachable points on lattice

33 Views Asked by At

Given:

A lattice in $\mathbb{Z}^{n}$,

A set of vectors of the form $v_i = (x_0,x_1,...x_n)$ where $x_i\in (0,1)$,

and a fixed count, $C_i$, for each vector in the set, establishing a maximum number of times it can be used,

how many points on the lattice are reachable, starting from the origin? Not all vectors must be used.

Simple Example:

vectorset = {(1,0) (0,1) (1,1)}, with counts = (2,1,1)

The reachable points are: {(0,0)(0,1)(1,0)(1,1)(1,2)(2,0)(2,1)(2,2)(3,1)(3,2)}, thus # reachable points = 10

Here is a table representing the reachable points. The bottom left is the origin.

\begin{array}{|c|c|c|c|} \hline 0 & 0 & 0 & 0 \\ \hline 0 & 1 & 1 & 1\\ \hline 1 & 1 & 1 & 1\\ \hline 1 & 1 & 1 & 0\\ \hline \end{array}

A simple lower bound is the $2^m$ where $m$ is the number of in independent vectors, (1,0) and (0,1) in this case. I would like to come up with an algorithm to enumerate the space or at least improve this lower bound significantly.