Enumerate a subset of a very large finite set in a computationally efficient way -- what is this problem called?

22 Views Asked by At

Suppose that $X$ is a large but finite set of points $\{x_{1},\ldots,x_{N}\}$.

Suppose that there are known maps $f_{k}: X \rightarrow \{0,1\}$ for $k=1,\ldots,K$ where $K$ is a reasonably small number and each map $f_{k}$ can be evaluated fairly costlessly.

Define the set $Y = \{x \in X: f_{k}(x) = 1 \text{ for all $k = 1,\ldots,K$}\}$. I expect that in my application $Y$ will have a relatively small number of points.

My aim is to enumerate all of the points in $Y$ in a computationally feasible way. That is, I want to find $y_{1},\ldots,y_{M} \in X$ such that $Y = \{y_{1},\ldots,y_{M}\}$.

The number of points in $X$ (i.e. $N$) is too large for me to do this by iterating through all points $x_{i}, i =1,\ldots,N$ and evaluating $f_{k}(x_{i})$ at each such point for every $k$.

Is there a field/topic/problem in mathematics or computer science that could be applied to a problem like this? If so, can you suggest a good reference for reading about this field?

Some additional structure that should be available in my application:

1) $X$ is a subset of a finite dimensional Euclidean space.

2) Each $f_{k}$ can be represented as one (or two) linear inequalities: $f_{k}(x) = 1(A_{k}x \leq b_{k})$ for some known matrix $A_{k}$ and known vector $b_{k}$, where $1$ is the indicator function.

3) I need to find exactly $\{y_{1},\ldots,y_{M}\}$, not some approximation.