saealib.PairwiseComparisonSet#

class saealib.PairwiseComparisonSet(source='archive', n_pairs=None, rng=None)[source]#

Bases: TrainingSet

Pairwise labels: train_x is [x_a, x_b], label is 1 if a beats b.

For each pair (a, b), the feature vector is the concatenation [x_a, x_b] (shape (n_pairs, 2 * dim)), and the label is 1 if comparator.compare(f_a, cv_a, f_b, cv_b) <= 0 (a dominates or equals b), 0 otherwise.

Warning

train_x has shape (n_pairs, 2 * dim), which is incompatible with standard regression surrogates (e.g. RBFSurrogate). Use a pairwise-specific surrogate that expects concatenated feature pairs.

Parameters:
  • source (str) – "archive" or "population".

  • n_pairs (int | None) – Number of pairs to sample. None (default) uses all n * (n-1) / 2 pairs. If the requested count exceeds the total available pairs, all pairs are used.

  • rng (np.random.Generator | None) – Random number generator for pair sampling. Falls back to ctx.rng when ctx is provided, otherwise creates a new one.

Raises:

ValueError – If ctx is None (comparator required) or source="population" with population=None.

Methods

__init__

build

Return pairwise comparison training data.

contract

Return the pairwise-training contract.

Method Details

PairwiseComparisonSet.__init__(source='archive', n_pairs=None, rng=None)[source]#
Parameters:
  • source (str)

  • n_pairs (int | None)

  • rng (Generator | None)

Return type:

None

PairwiseComparisonSet.build(archive, population, ctx, candidate_x=None)[source]#

Return pairwise comparison training data.

Parameters:
  • archive (Archive)

  • population (Population | None)

  • ctx (OptimizationState | None)

  • candidate_x (np.ndarray | None)

Return type:

TrainingData

PairwiseComparisonSet.contract()[source]#

Return the pairwise-training contract.

Return type:

ComponentContract