/** * RASHOMON SET (EQUIFINALITY) — you don't have one best recipe, you have a FAMILY. Optimization hands back * a single winner, but reality is kinder than that: there are often several genuinely different settings * that all score within a hair of the best. That hidden freedom is worth money — among equally-good * recipes you can pick the cheapest to run, the safest, the one using materials you already have, the one * far from a cliff. A tool that only ever shows you ONE answer throws that choice away. * * RASHOMON gathers every measurement within a small tolerance of your best, then clusters them into * genuinely DISTINCT recipes (not ten copies of the same point). It reports the family: how many real * alternatives you have and what they are — so the decision becomes yours, not the optimizer's. * * Named for the Rashomon set in machine learning (the set of near-equally-good models) and equifinality in * systems science (many paths, same end). Honest by construction (DIAKRISIS): every recipe returned is a * REAL measurement of yours within the stated tolerance of the best — not an interpolated guess; "distinct" * means separated in the normalised variable space. It abstains on thin data and reports just the one * winner when the near-optimal points really are all the same place. */ import { type Space } from "./space.js"; import { type Observation, type Goal } from "./engine.js"; export interface RashomonRecipe { settings: Record; value: number; } export interface RashomonReport { recipes: RashomonRecipe[]; flexibility: "many" | "few" | "one"; tolerance: number; note: string; } /** Find the family of genuinely different recipes that all score within `tolFrac` of the best. */ export declare function analyzeRashomon(obs: ReadonlyArray, space: Space, goal?: Goal, tolFrac?: number): RashomonReport; export declare function rashomonGauntlet(): { score: 0 | 100; checks: Array<{ name: string; pass: boolean; detail: string; }>; }; //# sourceMappingURL=rashomon.d.ts.map