Reference · The Applied Higher-Order Functions catalogue
rainbow.algorithms.proofs.ahof.chebyshev-scalarization
AHoF multi-objective method: weighted-Chebyshev (max-norm) scalarization. A multi-objective problem is reduced to a single scalar by taking the maximum of the (weighted) objective deviations: scalarize [v0, v1, ...] = list-maximum [v0, v1, ...]. Minimizing this max-norm drives every objective toward its target and, unlike a weighted SUM, can reach every point of a non-convex Pareto front. The defining property is domination: the scalarized value is an upper bound on every component, so no single objective exceeds it. Proved native and axiom-free: the scalarization is exactly the proved list-maximum fold; a worked scalarization; and that the scalarized value dominates each component (component <= scalarized as native nnrat/at-most). The weighting and the target vector are executable concerns; what is proved is the max-norm scalarization and its domination. Requires list-maximum/maximum, nnrat/at-most, audit/decide-nnrat-at-most, nnrat/decide-at-most-true-sound, and the D63 checkpoint. Scope (measured by the kernel): this module has 4 worked instances (statements about specific values). None of its theorems is a guarantee about the algorithm for all inputs; `lein verify rainbow.algorithms.proofs.ahof.chebyshev-scalarization` prints this classification.
chebyshev/scalarize
chebyshev/scalarize : (x₁ : List ℚ≥0) → ℚ≥0
List = data/Listℚ≥0 = nnrat/NonnegativeRational
chebyshev/scalarize-example
chebyshev/scalarize-example : → chebyshev/scalarize [3, 7, 2] = 7
= = equality/Eq
chebyshev/dominates-first
chebyshev/dominates-first : → 3 ≤ 7
≤ = nnrat/at-most
chebyshev/dominates-second
chebyshev/dominates-second : → 7 ≤ 7
≤ = nnrat/at-most
chebyshev/dominates-third
chebyshev/dominates-third : → 2 ≤ 7
≤ = nnrat/at-most