@ohtaman/washi 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ja.md +100 -107
- package/README.md +98 -105
- package/README.zh-CN.md +101 -108
- package/dist/browser/highs-worker.js +21 -3
- package/dist/browser/loader-CtaDHef_.js +273 -0
- package/dist/browser/solvers/glpk.js +433 -286
- package/dist/browser/solvers/glpk.min.js +1 -1
- package/dist/browser/solvers/z3.js +1002 -981
- package/dist/browser/solvers/z3.min.js +2 -2
- package/dist/browser/washi.js +2129 -676
- package/dist/browser/washi.min.js +4 -4
- package/dist/lib/highs-worker.js +21 -3
- package/dist/lib/loader-DmNC_UNk.js +279 -0
- package/dist/lib/registry-BEfvpZW3.js +951 -0
- package/dist/lib/solvers/glpk.js +201 -90
- package/dist/lib/solvers/z3.js +399 -259
- package/dist/lib/washi.js +1627 -988
- package/dist/types/index.d.ts +4 -4
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/modeler/big-m.d.ts +75 -0
- package/dist/types/modeler/big-m.d.ts.map +1 -0
- package/dist/types/modeler/boolean-expr.d.ts +103 -14
- package/dist/types/modeler/boolean-expr.d.ts.map +1 -1
- package/dist/types/modeler/constraint.d.ts +36 -9
- package/dist/types/modeler/constraint.d.ts.map +1 -1
- package/dist/types/modeler/expression.d.ts +113 -28
- package/dist/types/modeler/expression.d.ts.map +1 -1
- package/dist/types/modeler/index.d.ts +10 -6
- package/dist/types/modeler/index.d.ts.map +1 -1
- package/dist/types/modeler/lp-writer.d.ts +27 -2
- package/dist/types/modeler/lp-writer.d.ts.map +1 -1
- package/dist/types/modeler/model.d.ts +478 -131
- package/dist/types/modeler/model.d.ts.map +1 -1
- package/dist/types/modeler/objective.d.ts +59 -0
- package/dist/types/modeler/objective.d.ts.map +1 -0
- package/dist/types/modeler/parser.d.ts +34 -10
- package/dist/types/modeler/parser.d.ts.map +1 -1
- package/dist/types/modeler/quad-expr.d.ts +26 -7
- package/dist/types/modeler/quad-expr.d.ts.map +1 -1
- package/dist/types/modeler/solution-validator.d.ts +93 -0
- package/dist/types/modeler/solution-validator.d.ts.map +1 -0
- package/dist/types/modeler/solvers/glpk/solver.d.ts +26 -2
- package/dist/types/modeler/solvers/glpk/solver.d.ts.map +1 -1
- package/dist/types/modeler/solvers/highs/loader.d.ts +36 -11
- package/dist/types/modeler/solvers/highs/loader.d.ts.map +1 -1
- package/dist/types/modeler/solvers/highs/solver.d.ts +11 -4
- package/dist/types/modeler/solvers/highs/solver.d.ts.map +1 -1
- package/dist/types/modeler/solvers/highs/worker-client.d.ts.map +1 -1
- package/dist/types/modeler/solvers/mock.d.ts +14 -5
- package/dist/types/modeler/solvers/mock.d.ts.map +1 -1
- package/dist/types/modeler/solvers/types.d.ts +71 -11
- package/dist/types/modeler/solvers/types.d.ts.map +1 -1
- package/dist/types/modeler/solvers/z3/loader.d.ts +2 -3
- package/dist/types/modeler/solvers/z3/loader.d.ts.map +1 -1
- package/dist/types/modeler/solvers/z3/solver.d.ts +15 -5
- package/dist/types/modeler/solvers/z3/solver.d.ts.map +1 -1
- package/dist/types/modeler/types.d.ts +59 -1
- package/dist/types/modeler/types.d.ts.map +1 -1
- package/dist/types/modeler/validation.d.ts +56 -0
- package/dist/types/modeler/validation.d.ts.map +1 -0
- package/dist/types/modeler/variable.d.ts +48 -14
- package/dist/types/modeler/variable.d.ts.map +1 -1
- package/docs/examples/diet-sensitivity.md +90 -0
- package/docs/examples/ecommerce-coupons.md +106 -0
- package/docs/examples/index.md +53 -0
- package/docs/examples/knapsack.md +60 -0
- package/docs/examples/portfolio-qp.md +83 -0
- package/docs/examples/production.md +51 -0
- package/docs/examples/shift-scheduling.md +175 -0
- package/docs/examples/smt-security.md +74 -0
- package/docs/examples/transportation.md +90 -0
- package/docs/examples/unsat-core.md +64 -0
- package/docs/getting-started/ai-agents.md +267 -0
- package/docs/getting-started/cross-origin.md +87 -0
- package/docs/getting-started/index.md +116 -0
- package/docs/getting-started/runtimes.md +227 -0
- package/docs/guide/constraints.md +177 -0
- package/docs/guide/expressions.md +204 -0
- package/docs/guide/objectives.md +170 -0
- package/docs/guide/unsat-core.md +147 -0
- package/docs/guide/variables.md +188 -0
- package/docs/ja/getting-started/ai-agents.md +266 -0
- package/docs/solvers/custom-solver.md +525 -0
- package/docs/solvers/glpk.md +66 -0
- package/docs/solvers/highs.md +93 -0
- package/docs/solvers/index.md +42 -0
- package/docs/solvers/z3.md +78 -0
- package/docs/zh/getting-started/ai-agents.md +266 -0
- package/llms-full.txt +3249 -0
- package/llms.txt +197 -0
- package/package.json +18 -5
- package/skills/washi/SKILL.md +197 -0
- package/dist/browser/loader-CVt4CloI.js +0 -58
- package/dist/lib/async-mutex-Duo4jwzn.js +0 -195
- package/dist/lib/constraint-BRuB3ooC.js +0 -90
- package/dist/lib/loader-Dti0v9yC.js +0 -50
- package/dist/lib/registry-DksqCSjI.js +0 -32
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/modeler/model.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/modeler/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { LinExpr } from "./expression.js";
|
|
2
|
+
import { QuadExpr } from "./quad-expr.js";
|
|
3
|
+
import { Var } from "./variable.js";
|
|
4
|
+
import { Constraint } from "./constraint.js";
|
|
5
|
+
import type { OptimizationSense } from "./types.js";
|
|
6
|
+
/**
|
|
7
|
+
* Valid expressions that can form an objective function.
|
|
8
|
+
* Note that Constraint is strictly excluded at runtime.
|
|
9
|
+
*/
|
|
10
|
+
export type ObjectiveExpr = LinExpr | QuadExpr | Var | number | string;
|
|
11
|
+
/**
|
|
12
|
+
* Specification of an objective function and its optimization direction (sense).
|
|
13
|
+
*/
|
|
14
|
+
export interface ObjectiveSpec {
|
|
15
|
+
expr: ObjectiveExpr | Constraint;
|
|
16
|
+
sense: OptimizationSense;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Create a maximization objective specification (`sense: "Maximize"`) for `m.objective(...)`.
|
|
20
|
+
*
|
|
21
|
+
* Accepts a linear expression (`LinExpr`, `Var`, finite `number`, or formula string) or a
|
|
22
|
+
* quadratic objective expression (`QuadExpr` using `^2` or `${x} * ${y}`).
|
|
23
|
+
*
|
|
24
|
+
* **Solver & formulation notes**:
|
|
25
|
+
* - Quadratic terms (`^2`, variable-by-variable products) are supported in **objectives only**
|
|
26
|
+
* (requires a QP-capable solver such as the default HiGHS; throws on GLPK and Z3).
|
|
27
|
+
* - Passing a comparison `Constraint` (`<=`, `>=`, `==`) throws an Error.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* const m = new Model("Production");
|
|
32
|
+
* const chairs = m.integer("chairs", { lb: 0 });
|
|
33
|
+
* const tables = m.integer("tables", { lb: 0 });
|
|
34
|
+
* m.objective(maximize(expr`30 * ${chairs} + 50 * ${tables}`));
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare function maximize(expr: ObjectiveExpr | Constraint): ObjectiveSpec;
|
|
38
|
+
/**
|
|
39
|
+
* Create a minimization objective specification (`sense: "Minimize"`) for `m.objective(...)`.
|
|
40
|
+
*
|
|
41
|
+
* Accepts a linear expression (`LinExpr`, `Var`, finite `number`, or formula string) or a
|
|
42
|
+
* convex quadratic objective expression (`QuadExpr` using `^2` or `${x} * ${y}`).
|
|
43
|
+
*
|
|
44
|
+
* **Solver & formulation notes**:
|
|
45
|
+
* - Quadratic terms (`^2`, variable-by-variable products) are supported in **objectives only**
|
|
46
|
+
* (requires a QP-capable solver such as the default HiGHS; throws on GLPK and Z3).
|
|
47
|
+
* - Passing a comparison `Constraint` (`<=`, `>=`, `==`) throws an Error.
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```ts
|
|
51
|
+
* const m = new Model("PortfolioQP");
|
|
52
|
+
* const x = m.continuous("x", { lb: 0 });
|
|
53
|
+
* const y = m.continuous("y", { lb: 0 });
|
|
54
|
+
* // Linear or convex quadratic objective (quadratic terms are allowed in objectives only)
|
|
55
|
+
* m.objective(minimize(expr`${x}^2 + 2 * ${x} * ${y} + 2 * ${y}^2`));
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export declare function minimize(expr: ObjectiveExpr | Constraint): ObjectiveSpec;
|
|
59
|
+
//# sourceMappingURL=objective.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"objective.d.ts","sourceRoot":"","sources":["../../../src/modeler/objective.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,GAAG,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,aAAa,GAAG,UAAU,CAAC;IACjC,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AA4DD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,aAAa,GAAG,UAAU,GAAG,aAAa,CAKxE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,aAAa,GAAG,UAAU,GAAG,aAAa,CAKxE"}
|
|
@@ -12,17 +12,41 @@ export declare function parseExpr(text: string, resolver: ExprResolver): LinExpr
|
|
|
12
12
|
*/
|
|
13
13
|
export declare function parseConstraint(text: string, resolver: ExprResolver, name?: string): Constraint;
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
15
|
+
* Union type returned by the unified `expr` template tag:
|
|
16
|
+
* - `LinExpr` for linear arithmetic expressions (`expr\`2 * \${x} + 1\``)
|
|
17
|
+
* - `QuadExpr` for quadratic arithmetic expressions (`expr\`\${x}^2 + \${x} * \${y}\``)
|
|
18
|
+
* - `Constraint` for linear relational comparisons (`expr\`2 * \${x} <= 10\``)
|
|
19
19
|
*/
|
|
20
|
-
export
|
|
20
|
+
export type ParsedExpr = LinExpr | QuadExpr | Constraint;
|
|
21
21
|
/**
|
|
22
|
-
*
|
|
23
|
-
* expr`45 * ${chairs} + 80 * ${tables}`
|
|
24
|
-
* expr`${x}
|
|
25
|
-
* expr`${
|
|
22
|
+
* Unified tagged template literal for linear/quadratic arithmetic expressions and linear comparison constraints:
|
|
23
|
+
* - Linear expression (`LinExpr`): `` expr`45 * ${chairs} + 80 * ${tables} - 10` ``
|
|
24
|
+
* - Quadratic expression (`QuadExpr`): `` expr`${x}^2 + 2 * ${x} * ${y} + ${y}^2` ``
|
|
25
|
+
* - Linear comparison constraint (`Constraint`): `` expr`${chairs} + 2 * ${tables} <= 40` `` (supports `<=`, `>=`, `==`, and `=`)
|
|
26
|
+
*
|
|
27
|
+
* **Formulation & solver capability notes**:
|
|
28
|
+
* - **Quadratic terms (`^2`, `${x} * ${y}`) are supported in objectives only** (convex QP on QP-capable solvers such as HiGHS; throws on GLPK and Z3).
|
|
29
|
+
* - Using quadratic terms inside a comparison constraint (`<=`, `>=`, `==`) throws an Error (`"Quadratic constraints are not supported"`).
|
|
30
|
+
* - Interpolating a `Constraint` inside another `expr` template throws an Error.
|
|
31
|
+
* - Constructing an `expr` does not attach it to a `Model` until passed to `m.objective(...)` or `m.constraint(...)`.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```ts
|
|
35
|
+
* const m = new Model("TemplateExprExample");
|
|
36
|
+
* const x = m.continuous("x", { lb: 0 });
|
|
37
|
+
* const y = m.continuous("y", { lb: 0 });
|
|
38
|
+
*
|
|
39
|
+
* // 1. Linear arithmetic expression (LinExpr)
|
|
40
|
+
* const linCost = expr`30 * ${x} + 50 * ${y} - 10`;
|
|
41
|
+
*
|
|
42
|
+
* // 2. Quadratic objective expression (QuadExpr — supported in objectives only)
|
|
43
|
+
* m.objective(minimize(expr`${x}^2 + 2 * ${x} * ${y} + ${y}^2 + ${linCost}`));
|
|
44
|
+
*
|
|
45
|
+
* // 3. Linear comparison constraints (Constraint: <=, >=, ==)
|
|
46
|
+
* m.constraint(expr`${x} + 2 * ${y} <= 40`, "upper_cap");
|
|
47
|
+
* m.constraint(expr`${x} + ${y} >= 4`, "min_total");
|
|
48
|
+
* m.constraint(expr`${x} - ${y} == 0`, "balance");
|
|
49
|
+
* ```
|
|
26
50
|
*/
|
|
27
|
-
export declare function expr(strings: TemplateStringsArray, ...values: (Var |
|
|
51
|
+
export declare function expr(strings: TemplateStringsArray, ...values: (Var | ParsedExpr | number)[]): ParsedExpr;
|
|
28
52
|
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/modeler/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/modeler/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAwXlF;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,GAAG,QAAQ,CAElF;AAqDD;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAE/F;AAoDD;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;AA+DzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,IAAI,CAClB,OAAO,EAAE,oBAAoB,EAC7B,GAAG,MAAM,EAAE,CAAC,GAAG,GAAG,UAAU,GAAG,MAAM,CAAC,EAAE,GACvC,UAAU,CAMZ"}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import type { Var } from "./variable.js";
|
|
2
|
-
import
|
|
2
|
+
import { LinExpr } from "./expression.js";
|
|
3
3
|
export interface QuadTerm {
|
|
4
4
|
var1: Var;
|
|
5
5
|
var2: Var;
|
|
6
6
|
coeff: number;
|
|
7
7
|
}
|
|
8
|
+
import { type Constraint } from "./constraint.js";
|
|
8
9
|
/**
|
|
9
10
|
* Represents a quadratic expression:
|
|
10
11
|
* constant + sum(c_i * x_i) + sum(q_ij * x_i * x_j)
|
|
11
12
|
*/
|
|
12
13
|
export declare class QuadExpr {
|
|
14
|
+
readonly kind: "quadratic";
|
|
13
15
|
linearTerms: Map<Var, number>;
|
|
14
16
|
quadTerms: Map<string, QuadTerm>;
|
|
15
17
|
constant: number;
|
|
@@ -25,20 +27,21 @@ export declare class QuadExpr {
|
|
|
25
27
|
/**
|
|
26
28
|
* Add another expression, variable, or number
|
|
27
29
|
*/
|
|
28
|
-
add(other: QuadExpr | LinExpr | Var | number): QuadExpr;
|
|
30
|
+
add(other: QuadExpr | LinExpr | Var | number | Constraint): QuadExpr;
|
|
29
31
|
/**
|
|
30
32
|
* Subtract another expression, variable, or number
|
|
31
33
|
*/
|
|
32
|
-
sub(other: QuadExpr | LinExpr | Var | number): QuadExpr;
|
|
34
|
+
sub(other: QuadExpr | LinExpr | Var | number | Constraint): QuadExpr;
|
|
33
35
|
/**
|
|
34
36
|
* Multiply by a scalar coefficient, variable, or linear/quadratic expression
|
|
35
37
|
*/
|
|
36
38
|
mul(scalar: number): QuadExpr;
|
|
37
|
-
mul(other: Var | LinExpr | QuadExpr): QuadExpr;
|
|
39
|
+
mul(other: Var | LinExpr | QuadExpr | Constraint): QuadExpr;
|
|
40
|
+
mul(operand: number | Var | LinExpr | QuadExpr | Constraint): QuadExpr;
|
|
38
41
|
/**
|
|
39
|
-
* Divide by a non-zero scalar
|
|
42
|
+
* Divide by a non-zero scalar or constant-only expression
|
|
40
43
|
*/
|
|
41
|
-
div(
|
|
44
|
+
div(divisor: number | LinExpr | QuadExpr | Constraint): QuadExpr;
|
|
42
45
|
/**
|
|
43
46
|
* Negate this quadratic expression
|
|
44
47
|
*/
|
|
@@ -47,11 +50,27 @@ export declare class QuadExpr {
|
|
|
47
50
|
* Compute the numerical value of this expression using current variable values
|
|
48
51
|
*/
|
|
49
52
|
get value(): number | null;
|
|
50
|
-
|
|
53
|
+
le(rhs: number | Var | LinExpr | QuadExpr | Constraint, name?: string): Constraint;
|
|
54
|
+
ge(rhs: number | Var | LinExpr | QuadExpr | Constraint, name?: string): Constraint;
|
|
55
|
+
eq(rhs: number | Var | LinExpr | QuadExpr | Constraint, name?: string): Constraint;
|
|
56
|
+
private toConstraint;
|
|
57
|
+
and(_other: unknown): never;
|
|
58
|
+
or(_other: unknown): never;
|
|
59
|
+
implies(_consequent: unknown): never;
|
|
60
|
+
xor(_other: unknown): never;
|
|
61
|
+
not(): never;
|
|
51
62
|
toString(): string;
|
|
52
63
|
/**
|
|
53
64
|
* Factory method to create a quadratic term v1 * v2 * coeff
|
|
54
65
|
*/
|
|
55
66
|
static fromProduct(v1: Var, v2: Var, coeff?: number): QuadExpr;
|
|
67
|
+
/**
|
|
68
|
+
* Canonical linear-by-linear multiplication shared across Var, LinExpr, QuadExpr, and Parser.
|
|
69
|
+
*/
|
|
70
|
+
static multiplyLinearTerms(constantA: number, termsA: ReadonlyMap<Var, number>, constantB: number, termsB: ReadonlyMap<Var, number>): QuadExpr;
|
|
71
|
+
/**
|
|
72
|
+
* Validates and extracts a non-zero scalar divisor from a number or constant-only expression.
|
|
73
|
+
*/
|
|
74
|
+
static extractScalarDivisor(divisor: number | LinExpr | QuadExpr | Constraint, context: string): number;
|
|
56
75
|
}
|
|
57
76
|
//# sourceMappingURL=quad-expr.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quad-expr.d.ts","sourceRoot":"","sources":["../../../src/modeler/quad-expr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,
|
|
1
|
+
{"version":3,"file":"quad-expr.d.ts","sourceRoot":"","sources":["../../../src/modeler/quad-expr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAW1C,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,GAAG,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf;AAED,OAAO,EAAE,KAAK,UAAU,EAAgB,MAAM,iBAAiB,CAAC;AAEhE;;;GAGG;AACH,qBAAa,QAAQ;IACnB,SAAgB,IAAI,EAAG,WAAW,CAAU;IACrC,WAAW,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC9B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IAExB,YACE,WAAW,GAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAa,EACzC,SAAS,GAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAa,EAC5C,QAAQ,GAAE,MAAU,EAQrB;IAED;;OAEG;IACH,KAAK,IAAI,QAAQ,CAEhB;IAED;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,MAAM,CAIrC;IAED;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,GAAG,GAAG,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAmEnE;IAED;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,GAAG,GAAG,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAUnE;IAED;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC9B,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC5D,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IAiFvE;;OAEG;IACH,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAG/D;IAED;;OAEG;IACH,GAAG,IAAI,QAAQ,CAEd;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,GAAG,IAAI,CAWzB;IAEM,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAExF;IAEM,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAExF;IAEM,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAExF;IAED,OAAO,CAAC,YAAY;IAkBb,GAAG,CAAC,MAAM,EAAE,OAAO,GAAG,KAAK,CAIjC;IAEM,EAAE,CAAC,MAAM,EAAE,OAAO,GAAG,KAAK,CAIhC;IAEM,OAAO,CAAC,WAAW,EAAE,OAAO,GAAG,KAAK,CAI1C;IAEM,GAAG,CAAC,MAAM,EAAE,OAAO,GAAG,KAAK,CAIjC;IAEM,GAAG,IAAI,KAAK,CAIlB;IAED,QAAQ,IAAI,MAAM,CA+BjB;IAED;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,GAAE,MAAU,GAAG,QAAQ,CAYhE;IAED;;OAEG;IACH,MAAM,CAAC,mBAAmB,CACxB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,EAChC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,GAC/B,QAAQ,CAgDV;IAED;;OAEG;IACH,MAAM,CAAC,oBAAoB,CACzB,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,EACjD,OAAO,EAAE,MAAM,GACd,MAAM,CAqBR;CACF"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import type { ComparisonSense } from "./types.js";
|
|
2
|
+
import type { Model } from "./model.js";
|
|
3
|
+
export interface SolutionValidationOptions {
|
|
4
|
+
/**
|
|
5
|
+
* Optional map of variable and Boolean variable values (keyed by variable name) to validate.
|
|
6
|
+
* When omitted, `validateSolution()` inspects the current `.value` properties on the model's variables.
|
|
7
|
+
*/
|
|
8
|
+
values?: Record<string, number | boolean | null | undefined>;
|
|
9
|
+
/**
|
|
10
|
+
* Maximum allowed violation for variable bounds and linear constraints (default: `1e-6`).
|
|
11
|
+
*/
|
|
12
|
+
feasibilityTolerance?: number;
|
|
13
|
+
/**
|
|
14
|
+
* Maximum allowed distance to the nearest integer for Integer and Binary variables (default: `1e-6`).
|
|
15
|
+
*/
|
|
16
|
+
integralityTolerance?: number;
|
|
17
|
+
/**
|
|
18
|
+
* Whether to evaluate logical (SMT/propositional) constraints using the built-in evaluator (default: `true`).
|
|
19
|
+
* If `false`, or if any logical constraint cannot be evaluated due to missing values or unsupported operators,
|
|
20
|
+
* those constraints are reported in `uncheckedConstraints` and `complete` / `valid` are set to `false`.
|
|
21
|
+
*/
|
|
22
|
+
evaluateLogicalConstraints?: boolean;
|
|
23
|
+
}
|
|
24
|
+
export type ViolationType = "missing_value" | "non_finite_value" | "invalid_boolean_value" | "lower_bound" | "upper_bound" | "integrality" | "linear_constraint" | "logical_constraint" | "unchecked_constraint";
|
|
25
|
+
export interface SolutionViolation {
|
|
26
|
+
type: ViolationType;
|
|
27
|
+
target: "variable" | "bool_variable" | "constraint" | "logical_constraint";
|
|
28
|
+
name: string;
|
|
29
|
+
actual?: number | boolean | null;
|
|
30
|
+
limit?: number | boolean;
|
|
31
|
+
rhs?: number;
|
|
32
|
+
sense?: ComparisonSense;
|
|
33
|
+
varType?: "Continuous" | "Integer" | "Binary";
|
|
34
|
+
nearestInteger?: number;
|
|
35
|
+
/** Non-negative magnitude of the violation (or Infinity/NaN if non-finite) */
|
|
36
|
+
violation: number;
|
|
37
|
+
/** Signed residual (e.g. actual - limit, or lhs - rhs) when applicable */
|
|
38
|
+
signedViolation?: number;
|
|
39
|
+
message: string;
|
|
40
|
+
}
|
|
41
|
+
export interface SolutionValidationSummary {
|
|
42
|
+
checkedVariables: number;
|
|
43
|
+
totalVariables: number;
|
|
44
|
+
checkedBoolVariables: number;
|
|
45
|
+
totalBoolVariables: number;
|
|
46
|
+
checkedLinearConstraints: number;
|
|
47
|
+
totalLinearConstraints: number;
|
|
48
|
+
checkedLogicalConstraints: number;
|
|
49
|
+
totalLogicalConstraints: number;
|
|
50
|
+
}
|
|
51
|
+
export interface SolutionValidationReport {
|
|
52
|
+
/**
|
|
53
|
+
* True if and only if `complete === true`, `uncheckedConstraints.length === 0`, and `violations.length === 0`.
|
|
54
|
+
* Note: Validates satisfaction of modeled mathematical constraints only; does not verify natural-language specification coverage.
|
|
55
|
+
*/
|
|
56
|
+
valid: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* True when all model variables, Boolean variables, linear constraints, and logical constraints were fully evaluated.
|
|
59
|
+
*/
|
|
60
|
+
complete: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Flat list of all violations found.
|
|
63
|
+
*/
|
|
64
|
+
violations: SolutionViolation[];
|
|
65
|
+
/**
|
|
66
|
+
* Violations grouped by variable or constraint name.
|
|
67
|
+
*/
|
|
68
|
+
violationsByName: Record<string, SolutionViolation[]>;
|
|
69
|
+
/**
|
|
70
|
+
* Names of constraints (linear or logical) that could not be evaluated (e.g. due to missing variable values
|
|
71
|
+
* or `evaluateLogicalConstraints: false`). Never implicitly treated as satisfied.
|
|
72
|
+
*/
|
|
73
|
+
uncheckedConstraints: string[];
|
|
74
|
+
/**
|
|
75
|
+
* Names of numeric or Boolean variables whose values were missing (`null` or `undefined`).
|
|
76
|
+
*/
|
|
77
|
+
missingVariables: string[];
|
|
78
|
+
/**
|
|
79
|
+
* Maximum numeric violation magnitude across all evaluated bounds, integrality checks, and constraints.
|
|
80
|
+
*/
|
|
81
|
+
maxViolation: number;
|
|
82
|
+
/**
|
|
83
|
+
* Coverage summary counts.
|
|
84
|
+
*/
|
|
85
|
+
summary: SolutionValidationSummary;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Validates supplied or last-solved variable values against a Model's variable bounds,
|
|
89
|
+
* integrality requirements, linear constraints, and logical constraints.
|
|
90
|
+
* Runs purely in JavaScript/TypeScript without requiring any WASM solver runtime.
|
|
91
|
+
*/
|
|
92
|
+
export declare function validateModelSolution(model: Model, options?: SolutionValidationOptions): SolutionValidationReport;
|
|
93
|
+
//# sourceMappingURL=solution-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solution-validator.d.ts","sourceRoot":"","sources":["../../../src/modeler/solution-validator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,WAAW,yBAAyB;IACxC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAC7D;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,MAAM,MAAM,aAAa,GACrB,eAAe,GACf,kBAAkB,GAClB,uBAAuB,GACvB,aAAa,GACb,aAAa,GACb,aAAa,GACb,mBAAmB,GACnB,oBAAoB,GACpB,sBAAsB,CAAC;AAE3B,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,UAAU,GAAG,eAAe,GAAG,YAAY,GAAG,oBAAoB,CAAC;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,OAAO,CAAC,EAAE,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8EAA8E;IAC9E,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACxC,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,wBAAwB,EAAE,MAAM,CAAC;IACjC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,yBAAyB,EAAE,MAAM,CAAC;IAClC,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,KAAK,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACtD;;;OAGG;IACH,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B;;OAEG;IACH,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,OAAO,EAAE,yBAAyB,CAAC;CACpC;AAYD;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE,yBAA8B,GACtC,wBAAwB,CAuf1B"}
|
|
@@ -1,24 +1,48 @@
|
|
|
1
|
-
import type { Solver, SolverOptions, SolverResult } from "../types.js";
|
|
2
|
-
import type
|
|
1
|
+
import type { SolveModelData, Solver, SolverOptions, SolverResult } from "../types.js";
|
|
2
|
+
import { type LpModelData, type LpExportResult } from "../../lp-writer.js";
|
|
3
|
+
import type { SolverStatus } from "../../types.js";
|
|
3
4
|
/**
|
|
4
5
|
* GLPK Solver adapter (GNU Linear Programming Kit via WebAssembly / JS).
|
|
5
6
|
* Supports standard Linear Programming (LP) and Mixed-Integer Programming (MIP).
|
|
7
|
+
*
|
|
8
|
+
* Solution metrics provided by GLPK:
|
|
9
|
+
* - `status` and `terminationStatus`: `"Optimal" | "Feasible" | "Infeasible" | "Unbounded" | "Unknown" | "Error"`
|
|
10
|
+
* - `hasPrimalSolution`: `true` when `status` is `"Optimal"` or `"Feasible"` (`GLP_OPT` or `GLP_FEAS`) with a valid primal payload, `false` otherwise.
|
|
11
|
+
* - `objectiveValue`: Primal objective value (including constant offset) when `hasPrimalSolution` is `true`, otherwise `null`.
|
|
12
|
+
* - `objectiveBound`, `relGap` (`mipGap`), `absGap`: GLPK's JS/WASM wrapper (`glpk.js`) does not expose the MIP best dual bound or relative/absolute gap in its result payload, so these fields are intentionally left `undefined` rather than returning invented defaults.
|
|
6
13
|
*/
|
|
7
14
|
export declare class GLPKSolver implements Solver {
|
|
8
15
|
static readonly capabilities: {
|
|
9
16
|
supportsMIP: boolean;
|
|
10
17
|
supportsQP: boolean;
|
|
18
|
+
supportsWarmStart: boolean;
|
|
11
19
|
};
|
|
12
20
|
readonly name = "GLPK";
|
|
13
21
|
readonly version = "5.0.0";
|
|
14
22
|
readonly capabilities: {
|
|
15
23
|
supportsMIP: boolean;
|
|
16
24
|
supportsQP: boolean;
|
|
25
|
+
supportsWarmStart: boolean;
|
|
17
26
|
};
|
|
18
27
|
options: SolverOptions;
|
|
19
28
|
constructor(options?: SolverOptions);
|
|
29
|
+
solve(modelData: SolveModelData, options?: SolverOptions): Promise<SolverResult>;
|
|
20
30
|
solve(modelData: LpModelData, lpResult: LpExportResult, options?: SolverOptions): Promise<SolverResult>;
|
|
21
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Maps a raw GLPK status code to a WaSHI SolverStatus.
|
|
34
|
+
*
|
|
35
|
+
* GLPK status codes (glpk.js):
|
|
36
|
+
* - GLP_UNDEF (1): Solution is undefined
|
|
37
|
+
* - GLP_FEAS (2): Solution is feasible (incumbent found, optimality not proven)
|
|
38
|
+
* - GLP_INFEAS(3): Solution is infeasible
|
|
39
|
+
* - GLP_NOFEAS(4): Problem has no feasible solution
|
|
40
|
+
* - GLP_OPT (5): Solution is optimal
|
|
41
|
+
* - GLP_UNBND (6): Solution is unbounded
|
|
42
|
+
*
|
|
43
|
+
* Unknown, missing, or error codes map to "Unknown" or "Error" and NEVER to "Optimal".
|
|
44
|
+
*/
|
|
45
|
+
export declare function mapGlpkStatus(rawStatus: unknown, glpk?: any): SolverStatus;
|
|
22
46
|
/**
|
|
23
47
|
* Register GLPK solver into the solver registry.
|
|
24
48
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solver.d.ts","sourceRoot":"","sources":["../../../../../src/modeler/solvers/glpk/solver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"solver.d.ts","sourceRoot":"","sources":["../../../../../src/modeler/solvers/glpk/solver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAanD;;;;;;;;;GASG;AACH,qBAAa,UAAW,YAAW,MAAM;IACvC,gBAAuB,YAAY;QACjC,WAAW;QACX,UAAU;QACV,iBAAiB;MACjB;IACF,SAAgB,IAAI,UAAU;IAC9B,SAAgB,OAAO,WAAW;IAClC,SAAgB,YAAY;;;;MAA2B;IAChD,OAAO,EAAE,aAAa,CAAC;IAE9B,YAAY,OAAO,GAAE,aAAkB,EAEtC;IAEK,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACjF,KAAK,CACT,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,cAAc,EACxB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,YAAY,CAAC,CAAC;CAoW1B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,YAAY,CA6B1E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import type { Highs } from "highs";
|
|
1
2
|
import type { SolveOptions } from "../../types.js";
|
|
2
3
|
export declare const OFFICIAL_HIGHS_CDN_WASM_URL = "https://cdn.jsdelivr.net/npm/highs@1.15.3/build/highs.wasm";
|
|
3
|
-
type HighsInstance =
|
|
4
|
+
type HighsInstance = Highs;
|
|
4
5
|
export declare function setHighsWasmUrl(url: string | null): void;
|
|
5
6
|
export declare function getHighsWasmUrl(): string | null;
|
|
6
7
|
/**
|
|
@@ -25,29 +26,53 @@ export declare function resolveBrowserWasmUrl(explicitUrl?: string): Promise<str
|
|
|
25
26
|
export declare function getHighs(options?: SolveOptions): Promise<HighsInstance>;
|
|
26
27
|
export interface RawHighsSolveResult {
|
|
27
28
|
Status: string;
|
|
29
|
+
StatusCode?: number;
|
|
30
|
+
PrimalSolutionStatus?: number;
|
|
31
|
+
DualSolutionStatus?: number;
|
|
32
|
+
HasPrimalSolution?: boolean;
|
|
33
|
+
IsMip?: boolean;
|
|
28
34
|
ObjectiveValue: number;
|
|
35
|
+
ObjectiveOffsetApplied?: boolean;
|
|
36
|
+
MipDualBound?: number;
|
|
37
|
+
MipGap?: number;
|
|
29
38
|
Columns: Record<string, {
|
|
30
|
-
Index
|
|
31
|
-
Lower
|
|
32
|
-
Upper
|
|
33
|
-
Type
|
|
34
|
-
Primal
|
|
39
|
+
Index?: number;
|
|
40
|
+
Lower?: number;
|
|
41
|
+
Upper?: number;
|
|
42
|
+
Type?: string;
|
|
43
|
+
Primal?: number;
|
|
35
44
|
Dual?: number;
|
|
36
|
-
Name
|
|
45
|
+
Name?: string;
|
|
37
46
|
}>;
|
|
38
47
|
Rows?: Record<string, {
|
|
39
48
|
Index: number;
|
|
40
|
-
Lower
|
|
41
|
-
Upper
|
|
49
|
+
Lower?: number;
|
|
50
|
+
Upper?: number;
|
|
51
|
+
Dual?: number;
|
|
52
|
+
Primal?: number;
|
|
53
|
+
Name?: string;
|
|
54
|
+
}> | Array<{
|
|
55
|
+
Index: number;
|
|
56
|
+
Lower?: number;
|
|
57
|
+
Upper?: number;
|
|
42
58
|
Dual?: number;
|
|
43
59
|
Primal?: number;
|
|
44
|
-
Name
|
|
60
|
+
Name?: string;
|
|
45
61
|
}>;
|
|
46
62
|
}
|
|
63
|
+
export interface HighsIncumbentSnapshot {
|
|
64
|
+
objectiveValue: number;
|
|
65
|
+
mipDualBound?: number;
|
|
66
|
+
mipGap?: number;
|
|
67
|
+
columns: RawHighsSolveResult["Columns"];
|
|
68
|
+
}
|
|
47
69
|
/**
|
|
48
70
|
* Solve an LP formatted model using HiGHS WASM
|
|
49
71
|
*/
|
|
50
|
-
export declare function solveLpWithHighs(lpString: string, options?: SolveOptions
|
|
72
|
+
export declare function solveLpWithHighs(lpString: string, options?: SolveOptions & {
|
|
73
|
+
initialValues?: Record<string, number>;
|
|
74
|
+
onIncumbent?: (incumbent: HighsIncumbentSnapshot) => void;
|
|
75
|
+
}): Promise<{
|
|
51
76
|
result: RawHighsSolveResult;
|
|
52
77
|
runTime: number;
|
|
53
78
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../../src/modeler/solvers/highs/loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../../src/modeler/solvers/highs/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
import type { Solver, SolverOptions, SolverResult } from "../types.js";
|
|
2
|
-
import type
|
|
3
|
-
import type { SolverStatus } from "../../types.js";
|
|
1
|
+
import type { Solver, SolverOptions, SolverResult, SolveModelData } from "../types.js";
|
|
2
|
+
import { type LpModelData, type LpExportResult } from "../../lp-writer.js";
|
|
3
|
+
import type { SolverStatus, TerminationStatus } from "../../types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Map a raw HiGHS model status string or status code to WaSHI's standardized TerminationStatus.
|
|
6
|
+
*/
|
|
7
|
+
export declare function mapHighsTerminationStatus(rawStatus: unknown, statusCode?: number): TerminationStatus;
|
|
4
8
|
/**
|
|
5
9
|
* Map a raw HiGHS model status string to WaSHI's standardized SolverStatus.
|
|
6
10
|
* Only verified optimality maps to "Optimal"; missing or unrecognized statuses map to "Unknown".
|
|
7
11
|
*/
|
|
8
|
-
export declare function mapHighsStatus(rawStatus: unknown): SolverStatus;
|
|
12
|
+
export declare function mapHighsStatus(rawStatus: unknown, statusCode?: number, hasPrimalSolution?: boolean): SolverStatus;
|
|
9
13
|
/**
|
|
10
14
|
* HiGHS Solver adapter (WebAssembly in Browser / Node.js)
|
|
11
15
|
* High-performance simplex / interior point / branch-and-cut solver.
|
|
@@ -14,15 +18,18 @@ export declare class HighsSolver implements Solver {
|
|
|
14
18
|
static readonly capabilities: {
|
|
15
19
|
supportsMIP: boolean;
|
|
16
20
|
supportsQP: boolean;
|
|
21
|
+
supportsWarmStart: boolean;
|
|
17
22
|
};
|
|
18
23
|
readonly name = "HiGHS";
|
|
19
24
|
readonly version = "1.15.3";
|
|
20
25
|
readonly capabilities: {
|
|
21
26
|
supportsMIP: boolean;
|
|
22
27
|
supportsQP: boolean;
|
|
28
|
+
supportsWarmStart: boolean;
|
|
23
29
|
};
|
|
24
30
|
options: SolverOptions;
|
|
25
31
|
constructor(options?: SolverOptions);
|
|
32
|
+
solve(modelData: SolveModelData, options?: SolverOptions): Promise<SolverResult>;
|
|
26
33
|
solve(modelData: LpModelData, lpResult: LpExportResult, options?: SolverOptions): Promise<SolverResult>;
|
|
27
34
|
}
|
|
28
35
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solver.d.ts","sourceRoot":"","sources":["../../../../../src/modeler/solvers/highs/solver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"solver.d.ts","sourceRoot":"","sources":["../../../../../src/modeler/solvers/highs/solver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAItE;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,OAAO,EAClB,UAAU,CAAC,EAAE,MAAM,GAClB,iBAAiB,CAsInB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,OAAO,EAClB,UAAU,CAAC,EAAE,MAAM,EACnB,iBAAiB,CAAC,EAAE,OAAO,GAC1B,YAAY,CA6Bd;AAED;;;GAGG;AACH,qBAAa,WAAY,YAAW,MAAM;IACxC,gBAAuB,YAAY;QACjC,WAAW;QACX,UAAU;QACV,iBAAiB;MACjB;IACF,SAAgB,IAAI,WAAW;IAC/B,SAAgB,OAAO,YAAY;IACnC,SAAgB,YAAY;;;;MAA4B;IACjD,OAAO,EAAE,aAAa,CAAC;IAE9B,YAAY,OAAO,GAAE,aAAkB,EAEtC;IAED,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACjF,KAAK,CACH,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,cAAc,EACxB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,YAAY,CAAC,CAAC;CA6M1B;AAED;;GAEG;AACH,eAAO,MAAM,KAAK,oBAAc,CAAC;AAGjC,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-client.d.ts","sourceRoot":"","sources":["../../../../../src/modeler/solvers/highs/worker-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"worker-client.d.ts","sourceRoot":"","sources":["../../../../../src/modeler/solvers/highs/worker-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAsB,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAEL,KAAK,mBAAmB,EAGzB,MAAM,aAAa,CAAC;AAmMrB;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,YAAY,GAAG;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GACnD,OAAO,CAAC;IAAE,MAAM,EAAE,mBAAmB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA2E3D"}
|
|
@@ -1,16 +1,24 @@
|
|
|
1
|
-
import type { Solver, SolverOptions, SolverResult, SolverCapabilities } from "./types.js";
|
|
2
|
-
import type
|
|
3
|
-
import type { SolverStatus } from "../types.js";
|
|
1
|
+
import type { Solver, SolverOptions, SolverResult, SolverCapabilities, SolveModelData } from "./types.js";
|
|
2
|
+
import { type LpModelData, type LpExportResult } from "../lp-writer.js";
|
|
3
|
+
import type { SolverStatus, TerminationStatus, SolveProgressEvent } from "../types.js";
|
|
4
4
|
export interface MockSolverOptions extends SolverOptions {
|
|
5
5
|
name?: string;
|
|
6
6
|
capabilities?: SolverCapabilities;
|
|
7
7
|
status?: SolverStatus;
|
|
8
|
-
|
|
8
|
+
terminationStatus?: TerminationStatus;
|
|
9
|
+
hasPrimalSolution?: boolean;
|
|
10
|
+
objectiveValue?: number | null;
|
|
11
|
+
objectiveBound?: number;
|
|
12
|
+
relGap?: number;
|
|
13
|
+
mipGap?: number;
|
|
14
|
+
absGap?: number;
|
|
9
15
|
values?: Record<string, number>;
|
|
16
|
+
boolValues?: Record<string, boolean>;
|
|
10
17
|
reducedCosts?: Record<string, number>;
|
|
11
18
|
duals?: Record<string, number>;
|
|
12
19
|
slacks?: Record<string, number>;
|
|
13
20
|
delayMs?: number;
|
|
21
|
+
progressEvents?: SolveProgressEvent[];
|
|
14
22
|
}
|
|
15
23
|
/**
|
|
16
24
|
* Mock / Dummy Solver for deterministic testing, CI/CD, or offline usage without WASM.
|
|
@@ -20,7 +28,8 @@ export declare class MockSolver implements Solver {
|
|
|
20
28
|
readonly capabilities: SolverCapabilities;
|
|
21
29
|
options: MockSolverOptions;
|
|
22
30
|
constructor(options?: MockSolverOptions);
|
|
23
|
-
solve(
|
|
31
|
+
solve(modelData: SolveModelData, options?: SolverOptions): Promise<SolverResult>;
|
|
32
|
+
solve(modelData: LpModelData, lpResult: LpExportResult, options?: SolverOptions): Promise<SolverResult>;
|
|
24
33
|
}
|
|
25
34
|
export declare function registerMockSolver(): void;
|
|
26
35
|
//# sourceMappingURL=mock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../../../src/modeler/solvers/mock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../../../src/modeler/solvers/mock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAoB,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEvF,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACvC;AAED;;GAEG;AACH,qBAAa,UAAW,YAAW,MAAM;IACvC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,YAAY,EAAE,kBAAkB,CAAC;IAC1C,OAAO,EAAE,iBAAiB,CAAC;IAElC,YAAY,OAAO,GAAE,iBAAsB,EAQ1C;IAED,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACjF,KAAK,CACH,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,cAAc,EACxB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,YAAY,CAAC,CAAC;CA4H1B;AAGD,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
|