ExhaustiveProductSelector

class ExhaustiveProductSelector(val maxMixtures: Int = defaultMaxMixtures) : FamilySelectorIfc(source)

Evaluates every combination of per-group families and keeps the best by the observed-data criterion.

This is the selection the criterion actually asks for, and it is retained as the reference against which the cheap alternative is measured rather than as a recommendation. The number of combinations is the product of the per-group candidate counts, so it grows as the catalog size raised to the number of groups and becomes impractical quickly.

Because it must remain runnable at the component counts the design reaches, the search is bounded. When the bound binds, the result says so: a capped search has not found the exhaustive optimum and must not be reported as though it had.

Parameters

maxMixtures

the most assembled mixtures to score before stopping

Constructors

Link copied to clipboard
constructor(maxMixtures: Int = defaultMaxMixtures)

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
Link copied to clipboard
open override val name: String

A short name identifying the selector, used as a factor level when results are recorded.

Functions

Link copied to clipboard
open override fun select(sortedData: DoubleArray, partition: DataPartition, groupFits: List<GroupFitResult>, criterion: MixtureCriterionIfc): FamilySelectionResult

Chooses a mixture from the supplied group fits.

Link copied to clipboard
open override fun toString(): String