Skip to content

MaxDivProblem

MaxDivProblem dataclass

MaxDivProblem(
    vectors: NDArray[float32],
    k: int,
    distance_metric: DistanceMetric,
    diversity_metric: DiversityMetric,
    constraints: list[Constraint],
)

Immutable definition of a Maximum Diversity Problem.

A problem consists of n vectors in d dimensions, a target selection size k, a distance metric, a diversity metric, and optionally a list of fairness constraints.

Use the new factory method to create instances with validation.

new classmethod

new(
    vectors: ndarray,
    k: int,
    distance_metric: DistanceMetric = L2_EUCLIDEAN,
    diversity_metric: DiversityMetric = GEOMEAN_SEPARATION,
    constraints: list[Constraint] | None = None,
) -> Self

Create a new MaxDivProblem with validation.

Parameters:

Name Type Description Default
vectors ndarray

2D numpy array of shape (n, d) with at least 3 rows. Converted to float32 automatically if needed.

required
k int

Number of vectors to select (must satisfy 2 <= k <= n).

required
distance_metric DistanceMetric

Distance metric for pairwise distances.

L2_EUCLIDEAN
diversity_metric DiversityMetric

Diversity metric to maximize.

GEOMEAN_SEPARATION
constraints list[Constraint] | None

Optional list of fairness constraints.

None