{"id":"pareto-front-find","version":"1.0.0","description":"Find stable nondominated row indices and a domination witness for every excluded row using exact rational criteria.","supported_operations":["find the pareto front","find nondominated alternatives","filter dominated rows","compare mixed objectives exactly","return pareto domination witnesses","optimize minimize and maximize criteria","compute a skyline over rational values"],"unsupported_operations":["rank alternatives into a total order or choose one preferred row","approximate floating-point, missing, infinite, or nonnumeric criterion values","compute Pareto layers beyond the first nondominated front"],"semantics":["Canonical rationals are 0, signed base-10 integers without leading zero, or reduced p/q with a positive denominator greater than 1; -0, zero fractions, and /1 are invalid.","A row dominates another when it is no worse on every criterion and strictly better on at least one, respecting minimize and maximize directions.","Equal and duplicate rows do not dominate each other; duplicates of a nondominated point all remain nondominated.","Indices and excluded records follow input order; dominated_by is the lowest input index that directly dominates the excluded row.","Exact BigInt cross multiplication is used with bounded O(rows squared times criteria) work; no approximation is performed."],"limits":{"max_rows":128,"max_criteria":16,"max_rational_bytes":128,"max_dominance_checks":16256},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["criteria","rows"],"properties":{"criteria":{"type":"array","minItems":1,"maxItems":16,"items":{"type":"object","additionalProperties":false,"required":["direction"],"properties":{"direction":{"type":"string","enum":["minimize","maximize"]}}}},"rows":{"type":"array","minItems":1,"maxItems":128,"items":{"type":"array","minItems":1,"maxItems":16,"items":{"type":"string","minLength":1,"maxLength":128,"pattern":"^(0|-?[1-9][0-9]*(/[1-9][0-9]*)?)$"}}}}},"output_schema":{"type":"object","additionalProperties":false,"required":["nondominated_indices","excluded"],"properties":{"nondominated_indices":{"type":"array","maxItems":128,"items":{"type":"integer","minimum":0,"maximum":127}},"excluded":{"type":"array","maxItems":128,"items":{"type":"object","additionalProperties":false,"required":["index","dominated_by"],"properties":{"index":{"type":"integer","minimum":0,"maximum":127},"dominated_by":{"type":"integer","minimum":0,"maximum":127}}}}}},"examples":[{"input":{"criteria":[{"direction":"minimize"},{"direction":"maximize"}],"rows":[["1","1"],["2","3"],["3","2"],["2","1"]]},"output":{"nondominated_indices":[0,1],"excluded":[{"index":2,"dominated_by":1},{"index":3,"dominated_by":0}]}},{"input":{"criteria":[{"direction":"minimize"}],"rows":[["1/2"],["1"],["1/2"]]},"output":{"nondominated_indices":[0,2],"excluded":[{"index":1,"dominated_by":0}]}}],"execute_url":"/v1/tools/pareto-front-find/versions/1.0.0/execute"}