/** * @file src/polyopt.ts * @description Multi-objective optimization via compromise programming * * Solves problems with multiple objective functions by: * 1. Optimizing each objective independently to find Pareto vertices * 2. Computing the midpoint of the feasible region across all objectives * 3. Solving for a compromise solution at that midpoint * * Returns the midpoint solution along with all Pareto vertices and * the min/max ranges for each objective. */ import type { Model as ModelDefinition, SolveResult } from "./types/solver"; interface SolverLike { Solve(model: ModelDefinition, precision?: number, full?: boolean, validate?: boolean): unknown; } type PolyoptSolution = SolveResult & Record; type Vertex = Record; interface PolyoptResult { midpoint: PolyoptSolution; vertices: Vertex[]; ranges: Record; } /** * Solve a model with multiple objective functions by optimizing each objective * independently, collecting the resulting Pareto vertices, and solving a * derived model that targets the midpoint across all objectives. */ export default function Polyopt(solver: SolverLike, model: ModelDefinition): PolyoptResult; export {};