If I start with $n$ different points $P_1,\ldots,P_n \in \mathbb{R}^2$ and want to select a set $X$ of cardinality $m \leqslant n$ from them subject to the condition that the value
$$d_\text{min}(X) = \min_{P, Q \in X, P \neq Q} d_\text{eucl}(P,Q)$$
is maximized by my choice of $X$, then I understand, that this an instance of the MaxMin-Diversity-Problem. ($d_\text{eucl}$ is of course the euclidean distance in $\mathbb{R}^2$).
There seem to be algorithms for this:
MaxMinDiversity discussion on CS StackExcange
We implemented a version of the algorithm from Porumbel et.al mentioned in the discussion above and it works quite well for $n \leqslant 500$.
Unfortunately we have typical problems involving $n = 30000$ up to $n=100000$ points, for which this algorithm is too slow for us to use.
On the other hand, in the special case of our problems, we have a lot of structure in our starting points $P_i$ and in the sought after solution:
What we have is a list of line segments in the plane $l_1,\ldots,l_n$ with each line segment contributing three points to the points $P_i$, namely its endpoints and the midpoint. The line segments do not intersect (and in fact are mostly axis parallel either horizontally or vertically, but there is probably no use of this property). We want to choose now a subset $X$ of cardinality $n$, in the parlance above, from $P_1,\ldots,P_{3 n}$ by choosing a single point from each $l_i$. This set shall fulfill the $\max_X d_\text{min}(X)$ criterion from the beginning.
Is anything known how one could make use of the special situation in which our problem is posed to get a more efficient algorithm? Could it be that the specialized problem is even in a better complexity class?