Skip to content

qc-selector

qc-selector, from the QC-Devs group, is a collection of subset-selection methods aimed at chemical datasets: max-min and max-sum pickers, OptiSim, sphere exclusion, and several diversity measures for scoring a selection after the fact.

It is the broadest of the one-shot tools — the only one here offering both a max-min and a max-sum picker, plus label-stratified selection when your items carry classes. That last feature is the closest anything in this comparison comes to max-div's fairness constraints, and the gap is worth being precise about: proportional picks across labels are not the same as minimum and maximum counts per group, and its groups cannot overlap.

Two practical notes. It is GPL-3 licensed, which is more restrictive than everything else surveyed here and may decide the question for you. And it is young — first released in 2025 — so its API is less settled than the others'.

Problem targeted

Its max-min picker targets the same dispersion objective as the other pickers,

\[ \max_{|S| = k} \; \min_{i \ne j \in S} d(i,j), \]

while its max-sum picker targets

\[ \max_{|S| = k} \; \sum_{i \ne j \in S} d(i,j), \]

both by greedy construction. Sphere exclusion and OptiSim instead select by a radius or a sampled candidate pool, which are procedures rather than objectives — they define what gets picked without defining a quantity being maximized.

Guarantee: heuristic. The greedy max-min picker inherits the usual 2-approximation, but the library as a whole makes no optimality claims, and its procedural methods have no objective for a bound to be stated against.

Reference

At a glance

Guarantee heuristic
License GPL-3.0
Version 0.1.4
Released 2026-02-03
Determinism seeded
Input vectors or a distance matrix
Source https://selector.qcdevs.org/
Last verified 2026-07-27

Capabilities

Support: ✔ built in · ◐ reachable, but you supply the model, transform or metric · — not available

Capability Support Notes
distance metrics · L1 (Manhattan) distance
distance metrics · L2 (Euclidean) distance
distance metrics · cosine distance 1
distance metrics · caller-supplied distances 2
diversity objectives · maximize the minimum separation
diversity objectives · maximize the mean nearest-neighbor separation 3
diversity objectives · maximize the geometric-mean nearest-neighbor separation 3
diversity objectives · maximize the mean pairwise distance
constraints beyond k · per-group counts over disjoint groups 4
constraints beyond k · per-group counts over overlapping groups
constraints beyond k · minimum and maximum counts per group
time budget · budget expressed as an iteration count 5
time budget · budget expressed as wall-clock time
time budget · the answer improves when given more budget 6
largest practical problem size n ≈ 104 7

  1. Reachable by L2-normalizing the vectors first: on the unit sphere, cosine distance is a monotone function of Euclidean distance, so a Euclidean picker returns the same ordering. 

  2. A precomputed distance matrix is accepted directly, so any metric you can compute is usable. 

  3. Its diversity measures are computed over the whole selection rather than over nearest-neighbor pairs, so the nearest-neighbor family is absent. 

  4. Label-stratified selection: given class labels, it picks proportionally across them. That covers disjoint groups with proportional targets, but not arbitrary minimum and maximum counts, and not groups an item can belong to more than once. 

  5. Several of its methods take a parameter that controls how much work they do — a sphere-exclusion radius, an OptiSim subsample size — but these change the character of the search rather than lengthening it. Raising one does not mean a better answer. 

  6. A single construction pass, so there is no budget to spend: the answer is whatever one greedy sweep produces, and waiting longer does not change it. 

  7. Its selection methods work from a full distance matrix, and the diversity measures it offers are computed over that matrix rather than incrementally, so both memory and per-pick cost are quadratic. Comfortable in the tens of thousands.