/** * POEM — Pareto-Optimal Embedded Modeling, multi-metric ranking. * * Ranks search candidates across multiple relevance metrics without requiring * hand-tuned weights. Uses the TFPR (Top-Fraction Pareto Ranker) approach: * vectorized dominance matrix computation with column duplication for * query-type-dependent metric weighting. * * Algorithm: * 1. Prune: per-metric top-K → union of survivors * 2. Build objectives matrix with column duplication for query-type weighting * 3. For each objective column, sort candidates and accumulate pairwise * dominance counts (duplicate columns contribute via weight multiplier) * 4. Compute fitness: meanDominance × (numDominating + ε) / (numSubmitting + ε) * 5. Sort by fitness, assign ranks * * References: * - POEM paper: https://iopscience.iop.org/article/10.1088/2632-2153/ab891b * - TFPR: https://github.com/merckgroup/aidd_tfpr * - colourdle: https://github.com/aebrer/colourdle */ import type { QueryType } from "./query-classifier.js"; import { type MetricScores } from "./types.js"; export interface RankedCandidate { id: number; scores: MetricScores; rank: number; } /** * Rank candidates using POEM / TFPR. * * @param candidates Map of candidateId → MetricScores (all values 0–1) * @param queryType Query type for column duplication weighting * @param topK Per-metric pruning limit (default: 1000) * @returns Candidates ordered best-first with assigned ranks (0 = best) */ export declare function poemRank(candidates: Map, queryType: QueryType, topK?: number): RankedCandidate[]; //# sourceMappingURL=poem.d.ts.map