@ohtaman/washi 0.2.0 → 0.4.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 +138 -122
- package/README.md +138 -122
- package/README.zh-CN.md +140 -124
- package/dist/browser/solvers/glpk.js +10 -2
- package/dist/browser/solvers/glpk.min.js +1 -1
- package/dist/browser/solvers/z3.js +34 -12
- package/dist/browser/solvers/z3.min.js +2 -2
- package/dist/browser/washi.js +562 -397
- package/dist/browser/washi.min.js +4 -4
- package/dist/lib/{constraint-XWdn0ID9.js → constraint-BRuB3ooC.js} +0 -3
- package/dist/lib/solvers/glpk.js +10 -2
- package/dist/lib/solvers/z3.js +35 -10
- package/dist/lib/washi.js +562 -412
- package/dist/types/index.d.ts +5 -7
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/modeler/constraint.d.ts +0 -3
- package/dist/types/modeler/constraint.d.ts.map +1 -1
- package/dist/types/modeler/expression.d.ts +23 -12
- package/dist/types/modeler/expression.d.ts.map +1 -1
- package/dist/types/modeler/index.d.ts +2 -4
- package/dist/types/modeler/index.d.ts.map +1 -1
- package/dist/types/modeler/model.d.ts +123 -40
- package/dist/types/modeler/model.d.ts.map +1 -1
- package/dist/types/modeler/parser.d.ts +9 -8
- package/dist/types/modeler/parser.d.ts.map +1 -1
- package/dist/types/modeler/quad-expr.d.ts +3 -1
- package/dist/types/modeler/quad-expr.d.ts.map +1 -1
- package/dist/types/modeler/solvers/glpk/solver.d.ts.map +1 -1
- package/dist/types/modeler/solvers/highs/solver.d.ts +1 -1
- package/dist/types/modeler/solvers/highs/solver.d.ts.map +1 -1
- package/dist/types/modeler/solvers/types.d.ts +1 -1
- package/dist/types/modeler/solvers/z3/loader.d.ts +12 -0
- package/dist/types/modeler/solvers/z3/loader.d.ts.map +1 -1
- package/dist/types/modeler/types.d.ts +8 -3
- package/dist/types/modeler/types.d.ts.map +1 -1
- package/dist/types/modeler/variable.d.ts +7 -6
- package/dist/types/modeler/variable.d.ts.map +1 -1
- package/package.json +11 -3
- package/dist/types/modeler/mip-compat.d.ts +0 -43
- package/dist/types/modeler/mip-compat.d.ts.map +0 -1
- package/dist/types/modeler/pulp-compat.d.ts +0 -67
- package/dist/types/modeler/pulp-compat.d.ts.map +0 -1
package/dist/types/index.d.ts
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* WaSHI: Modern Mathematical Optimization Modeler for TypeScript & JavaScript
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* Supports LP (Linear Programming), MIP (Mixed-Integer Programming),
|
|
4
|
+
* Domain-pure algebraic modeling with WebAssembly (HiGHS, Z3, GLPK) and pluggable solvers.
|
|
5
|
+
* Supports LP (Linear Programming), MIP (Mixed-Integer Programming), QP (Quadratic Programming), and SMT.
|
|
6
6
|
*/
|
|
7
|
-
export { Model, type ModelOptions, Var, type VarOptions, LinExpr,
|
|
8
|
-
export type
|
|
9
|
-
export { LpProblem, LpVariable, LpMinimize, LpMaximize, LpContinuous, LpInteger, LpBinary, LpStatus, value, } from "./modeler/pulp-compat.js";
|
|
10
|
-
export { MipModel, MINIMIZE, MAXIMIZE, CONTINUOUS, INTEGER, BINARY, maximize, minimize, } from "./modeler/mip-compat.js";
|
|
7
|
+
export { Model, type ModelOptions, type BoundsOptions, Var, type VarOptions, LinExpr, QuadExpr, type Expr, type QuadTerm, sum, dot, Constraint, BoolVar, BoolExpr, BoolOp, and, or, not, implies, xor, parseExpr, parseConstraint, expr, c, generateLpString, type LpModelData, type LpExportResult, } from "./modeler/index.js";
|
|
8
|
+
export { normalizeSense, type VarType, type OptimizationSense, type ComparisonSense, type SolverStatus, type SolveOptions, type SolverSolution, } from "./modeler/types.js";
|
|
11
9
|
export { type Solver, type SolverOptions, type SolverResult, type SolverCheckResult, type SolverCapabilities, HighsSolver, HiGHS, MockSolver, registerSolver, getSolver, setDefaultSolver, listAvailableSolvers, } from "./modeler/solvers/index.js";
|
|
12
10
|
export { getHighs, solveLpWithHighs, setHighsWasmUrl, getHighsWasmUrl, OFFICIAL_HIGHS_CDN_WASM_URL, isValidWasmHeader, probeWasmUrl, resolveBrowserWasmUrl, } from "./modeler/solvers/highs/index.js";
|
|
13
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,KAAK,EACL,KAAK,YAAY,EACjB,GAAG,EACH,KAAK,UAAU,EACf,OAAO,EACP,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,KAAK,EACL,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,GAAG,EACH,KAAK,UAAU,EACf,OAAO,EACP,QAAQ,EACR,KAAK,IAAI,EACT,KAAK,QAAQ,EACb,GAAG,EACH,GAAG,EACH,UAAU,EACV,OAAO,EACP,QAAQ,EACR,MAAM,EACN,GAAG,EACH,EAAE,EACF,GAAG,EACH,OAAO,EACP,GAAG,EACH,SAAS,EACT,eAAe,EACf,IAAI,EACJ,CAAC,EACD,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,cAAc,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,cAAc,EACd,KAAK,OAAO,EACZ,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,cAAc,GACpB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EACL,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,WAAW,EACX,KAAK,EACL,UAAU,EACV,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,2BAA2B,EAC3B,iBAAiB,EACjB,YAAY,EACZ,qBAAqB,GACtB,MAAM,kCAAkC,CAAC"}
|
|
@@ -3,7 +3,6 @@ import type { LinExpr } from "./expression.js";
|
|
|
3
3
|
import { BoolOp, type LogicElement } from "./boolean-expr.js";
|
|
4
4
|
/**
|
|
5
5
|
* Represents a linear constraint: lhs (terms) <=, >=, or == rhs (constant)
|
|
6
|
-
* Compatible with PuLP (LpConstraint) and python-mip (Constr).
|
|
7
6
|
*/
|
|
8
7
|
export declare class Constraint {
|
|
9
8
|
readonly id: number;
|
|
@@ -16,8 +15,6 @@ export declare class Constraint {
|
|
|
16
15
|
/** Dual value (shadow price) after solve */
|
|
17
16
|
dual: number | null;
|
|
18
17
|
constructor(lhs: LinExpr, sense: ComparisonSense, rhs: number, name?: string);
|
|
19
|
-
/** PuLP style dual price accessor */
|
|
20
|
-
get pi(): number | null;
|
|
21
18
|
and(other: LogicElement): BoolOp;
|
|
22
19
|
or(other: LogicElement): BoolOp;
|
|
23
20
|
implies(consequent: LogicElement): BoolOp;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraint.d.ts","sourceRoot":"","sources":["../../../src/modeler/constraint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAI9D
|
|
1
|
+
{"version":3,"file":"constraint.d.ts","sourceRoot":"","sources":["../../../src/modeler/constraint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAI9D;;GAEG;AACH,qBAAa,UAAU;IACrB,SAAgB,EAAE,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,eAAe,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IAEpB,8BAA8B;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IACnC,4CAA4C;IACrC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAQ;IAElC,YACE,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,eAAe,EACtB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,MAAM,EAOd;IAGM,GAAG,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAEtC;IAEM,EAAE,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAErC;IAEM,OAAO,CAAC,UAAU,EAAE,YAAY,GAAG,MAAM,CAE/C;IAEM,GAAG,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAEtC;IAEM,GAAG,IAAI,MAAM,CAEnB;IAED,QAAQ,IAAI,MAAM,CAGjB;CACF"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Var } from "./variable.js";
|
|
2
2
|
import { Constraint } from "./constraint.js";
|
|
3
3
|
import { QuadExpr } from "./quad-expr.js";
|
|
4
4
|
/**
|
|
5
5
|
* Represents a linear expression: c0 + c1*x1 + c2*x2 + ...
|
|
6
|
-
* Compatible with PuLP (LpAffineExpression) and python-mip (LinExpr).
|
|
7
6
|
*/
|
|
8
7
|
export declare class LinExpr {
|
|
9
8
|
terms: Map<Var, number>;
|
|
@@ -18,16 +17,21 @@ export declare class LinExpr {
|
|
|
18
17
|
*/
|
|
19
18
|
add(other: QuadExpr): QuadExpr;
|
|
20
19
|
add(other: LinExpr | Var | number): LinExpr;
|
|
20
|
+
add(other: QuadExpr | LinExpr | Var | number): LinExpr | QuadExpr;
|
|
21
21
|
/**
|
|
22
22
|
* Subtract another expression, variable, or number
|
|
23
23
|
*/
|
|
24
24
|
sub(other: QuadExpr): QuadExpr;
|
|
25
25
|
sub(other: LinExpr | Var | number): LinExpr;
|
|
26
|
+
sub(other: QuadExpr | LinExpr | Var | number): LinExpr | QuadExpr;
|
|
26
27
|
/**
|
|
27
|
-
* Multiply this expression by a scalar coefficient or
|
|
28
|
+
* Multiply this expression by a scalar coefficient, variable, or expression
|
|
28
29
|
*/
|
|
29
30
|
mul(scalar: number): LinExpr;
|
|
30
31
|
mul(v: Var): QuadExpr;
|
|
32
|
+
mul(other: LinExpr): LinExpr | QuadExpr;
|
|
33
|
+
mul(other: QuadExpr): QuadExpr;
|
|
34
|
+
mul(operand: number | Var | LinExpr | QuadExpr): LinExpr | QuadExpr;
|
|
31
35
|
/**
|
|
32
36
|
* Divide this expression by a non-zero scalar
|
|
33
37
|
*/
|
|
@@ -41,7 +45,7 @@ export declare class LinExpr {
|
|
|
41
45
|
*/
|
|
42
46
|
get value(): number | null;
|
|
43
47
|
/**
|
|
44
|
-
*
|
|
48
|
+
* Helper value accessor for expression
|
|
45
49
|
*/
|
|
46
50
|
getValue(): number | null;
|
|
47
51
|
/**
|
|
@@ -63,17 +67,24 @@ export declare class LinExpr {
|
|
|
63
67
|
toString(): string;
|
|
64
68
|
}
|
|
65
69
|
/**
|
|
66
|
-
*
|
|
67
|
-
* Also supports mapping functions: sum(items, item => expr)
|
|
68
|
-
* Compatible with PuLP's lpSum and python-mip's xsum.
|
|
70
|
+
* Union expression type covering linear and quadratic expressions.
|
|
69
71
|
*/
|
|
70
|
-
export
|
|
72
|
+
export type Expr = LinExpr | QuadExpr;
|
|
71
73
|
/**
|
|
72
|
-
*
|
|
74
|
+
* Sum an array, iterable, or count-range of variables, expressions, or numbers.
|
|
75
|
+
* Supports:
|
|
76
|
+
* - sum([x, y, z])
|
|
77
|
+
* - sum(items, item => expr)
|
|
78
|
+
* - sum(10, i => expr) (range 0..9)
|
|
73
79
|
*/
|
|
74
|
-
export declare
|
|
80
|
+
export declare function sum(count: number, mapFn: (index: number) => LinExpr | Var | number): LinExpr;
|
|
81
|
+
export declare function sum<T = any>(items: Iterable<T>, mapFn?: (item: T, index: number) => LinExpr | Var | number): LinExpr;
|
|
75
82
|
/**
|
|
76
|
-
*
|
|
83
|
+
* Compute the vector dot product (linear combination) of coefficients and variables.
|
|
84
|
+
* Works with 1D/2D arrays and records in either order:
|
|
85
|
+
* - dot(costs, vars)
|
|
86
|
+
* - dot(vars, costs)
|
|
87
|
+
* - dot(costMatrix, flowMatrix)
|
|
77
88
|
*/
|
|
78
|
-
export declare
|
|
89
|
+
export declare function dot(a: Record<string, any> | any[], b: Record<string, any> | any[]): LinExpr;
|
|
79
90
|
//# sourceMappingURL=expression.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../../src/modeler/expression.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../../src/modeler/expression.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
export { Model, type ModelOptions, type IndicatorOptions } from "./model.js";
|
|
1
|
+
export { Model, type ModelOptions, type BoundsOptions, type IndicatorOptions } from "./model.js";
|
|
2
2
|
export { Var, type VarOptions } from "./variable.js";
|
|
3
|
-
export { LinExpr,
|
|
3
|
+
export { LinExpr, type Expr, sum, dot } from "./expression.js";
|
|
4
4
|
export { QuadExpr, type QuadTerm } from "./quad-expr.js";
|
|
5
5
|
export { Constraint } from "./constraint.js";
|
|
6
6
|
export { BoolVar, BoolExpr, BoolOp, and, or, not, implies, xor, } from "./boolean-expr.js";
|
|
7
7
|
export { parseExpr, parseConstraint, expr, c } from "./parser.js";
|
|
8
8
|
export { generateLpString, type LpModelData, type LpExportResult } from "./lp-writer.js";
|
|
9
9
|
export type { VarType, OptimizationSense, ComparisonSense, SolverStatus, SolveOptions, SolverSolution, } from "./types.js";
|
|
10
|
-
export { LpProblem, LpVariable, LpMinimize, LpMaximize, LpContinuous, LpInteger, LpBinary, LpStatus, value, } from "./pulp-compat.js";
|
|
11
|
-
export { MipModel, MINIMIZE, MAXIMIZE, CONTINUOUS, INTEGER, BINARY, maximize, minimize, } from "./mip-compat.js";
|
|
12
10
|
export * from "./solvers/index.js";
|
|
13
11
|
export { getHighs, solveLpWithHighs, setHighsWasmUrl, getHighsWasmUrl } from "./solvers/highs/index.js";
|
|
14
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modeler/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modeler/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACjG,OAAO,EAAE,GAAG,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EACL,OAAO,EACP,QAAQ,EACR,MAAM,EACN,GAAG,EACH,EAAE,EACF,GAAG,EACH,OAAO,EACP,GAAG,GACJ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGzF,YAAY,EACV,OAAO,EACP,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,cAAc,GACf,MAAM,YAAY,CAAC;AAGpB,cAAc,oBAAoB,CAAC;AAGnC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { Var
|
|
1
|
+
import { type OptimizationSense, type SolverStatus, type SolveOptions, type SolverSolution } from "./types.js";
|
|
2
|
+
import { Var } from "./variable.js";
|
|
3
3
|
import { LinExpr } from "./expression.js";
|
|
4
4
|
import { QuadExpr } from "./quad-expr.js";
|
|
5
5
|
import { Constraint } from "./constraint.js";
|
|
@@ -10,14 +10,20 @@ export interface ModelOptions {
|
|
|
10
10
|
sense?: OptimizationSense;
|
|
11
11
|
solver?: Solver | string;
|
|
12
12
|
}
|
|
13
|
+
export interface BoundsOptions {
|
|
14
|
+
name?: string;
|
|
15
|
+
prefix?: string;
|
|
16
|
+
lb?: number;
|
|
17
|
+
ub?: number;
|
|
18
|
+
}
|
|
13
19
|
export interface IndicatorOptions {
|
|
14
20
|
activeValue?: 0 | 1;
|
|
15
21
|
M?: number;
|
|
16
22
|
name?: string;
|
|
17
23
|
}
|
|
18
24
|
/**
|
|
19
|
-
* High-level
|
|
20
|
-
*
|
|
25
|
+
* High-level mathematical programming model for LP, MIP, QP, and SMT,
|
|
26
|
+
* running directly with WebAssembly solvers (HiGHS, Z3, GLPK) in browser and Node.js.
|
|
21
27
|
*/
|
|
22
28
|
export interface LogicalConstraint {
|
|
23
29
|
name: string;
|
|
@@ -34,6 +40,8 @@ export declare class Model {
|
|
|
34
40
|
unsatCore: string[];
|
|
35
41
|
values: Map<string, number | boolean>;
|
|
36
42
|
private varMapByName;
|
|
43
|
+
private boolVarMapByName;
|
|
44
|
+
private boolVarPrefixCounters;
|
|
37
45
|
private constrMapByName;
|
|
38
46
|
status: SolverStatus;
|
|
39
47
|
objectiveValue: number | null;
|
|
@@ -46,28 +54,91 @@ export declare class Model {
|
|
|
46
54
|
get numVars(): number;
|
|
47
55
|
get numConstrs(): number;
|
|
48
56
|
/**
|
|
49
|
-
*
|
|
50
|
-
*/
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
*
|
|
55
|
-
* -
|
|
56
|
-
* -
|
|
57
|
-
* -
|
|
58
|
-
* -
|
|
59
|
-
*/
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
57
|
+
* Internal generator for domain-specific variables
|
|
58
|
+
*/
|
|
59
|
+
private createDomainVars;
|
|
60
|
+
/**
|
|
61
|
+
* Create 0-1 binary variable(s) (x in {0, 1}).
|
|
62
|
+
* Supports:
|
|
63
|
+
* - m.binary("x") -> Var
|
|
64
|
+
* - m.binary(5) -> Var[]
|
|
65
|
+
* - m.binary(["a", "b"]) -> Record<string, Var>
|
|
66
|
+
* - m.binary(rows, cols) -> Record<string, Record<string, Var>>
|
|
67
|
+
*/
|
|
68
|
+
binary(name: string): Var;
|
|
69
|
+
binary(count: number, options?: {
|
|
70
|
+
prefix?: string;
|
|
71
|
+
name?: string;
|
|
72
|
+
}): Var[];
|
|
73
|
+
binary<K extends string | number>(keys: K[] | Iterable<K>, options?: {
|
|
74
|
+
prefix?: string;
|
|
75
|
+
name?: string;
|
|
76
|
+
}): Record<K, Var>;
|
|
77
|
+
binary<R extends string | number, C extends string | number>(dim1: R[] | number, dim2: C[] | number, options?: {
|
|
78
|
+
prefix?: string;
|
|
79
|
+
name?: string;
|
|
80
|
+
}): Record<R, Record<C, Var>>;
|
|
81
|
+
/**
|
|
82
|
+
* Create integer variable(s) (y in Z).
|
|
83
|
+
* Supports:
|
|
84
|
+
* - m.integer("y", { lb: 0, ub: 10 }) -> Var
|
|
85
|
+
* - m.integer(5, { lb: 0 }) -> Var[]
|
|
86
|
+
* - m.integer(["a", "b"], { lb: 0, ub: 5 }) -> Record<string, Var>
|
|
87
|
+
* - m.integer(rows, cols, options) -> Record<string, Record<string, Var>>
|
|
88
|
+
*/
|
|
89
|
+
integer(name: string, options?: BoundsOptions): Var;
|
|
90
|
+
integer(count: number, options?: BoundsOptions): Var[];
|
|
91
|
+
integer<K extends string | number>(keys: K[] | Iterable<K>, options?: BoundsOptions): Record<K, Var>;
|
|
92
|
+
integer<R extends string | number, C extends string | number>(dim1: R[] | number, dim2: C[] | number, options?: BoundsOptions): Record<R, Record<C, Var>>;
|
|
93
|
+
/**
|
|
94
|
+
* Create continuous (real) variable(s) (z in R).
|
|
95
|
+
* Supports:
|
|
96
|
+
* - m.continuous("z", { lb: 0 }) -> Var
|
|
97
|
+
* - m.continuous(5, { lb: 0 }) -> Var[]
|
|
98
|
+
* - m.continuous(["a", "b"], { lb: 0 }) -> Record<string, Var>
|
|
99
|
+
* - m.continuous(rows, cols, options) -> Record<string, Record<string, Var>>
|
|
100
|
+
*/
|
|
101
|
+
continuous(name: string, options?: BoundsOptions): Var;
|
|
102
|
+
continuous(count: number, options?: BoundsOptions): Var[];
|
|
103
|
+
continuous<K extends string | number>(keys: K[] | Iterable<K>, options?: BoundsOptions): Record<K, Var>;
|
|
104
|
+
continuous<R extends string | number, C extends string | number>(dim1: R[] | number, dim2: C[] | number, options?: BoundsOptions): Record<R, Record<C, Var>>;
|
|
105
|
+
/**
|
|
106
|
+
* Create Boolean (propositional logic) variable(s) for SMT / SAT modeling.
|
|
107
|
+
* Supports:
|
|
108
|
+
* - m.bool("isNight") -> BoolVar
|
|
109
|
+
* - m.bool() -> BoolVar
|
|
110
|
+
* - m.bool(5) -> BoolVar[]
|
|
111
|
+
* - m.bool(["flagA", "flagB"]) -> Record<string, BoolVar>
|
|
112
|
+
* - m.bool(rows, cols) -> Record<string, Record<string, BoolVar>>
|
|
113
|
+
*/
|
|
114
|
+
bool(name?: string): BoolVar;
|
|
115
|
+
bool(count: number, options?: {
|
|
116
|
+
prefix?: string;
|
|
117
|
+
name?: string;
|
|
118
|
+
}): BoolVar[];
|
|
119
|
+
bool<K extends string | number>(keys: K[] | Iterable<K>, options?: {
|
|
120
|
+
prefix?: string;
|
|
121
|
+
name?: string;
|
|
122
|
+
}): Record<K, BoolVar>;
|
|
123
|
+
bool<R extends string | number, C extends string | number>(dim1: R[] | number, dim2: C[] | number, options?: {
|
|
124
|
+
prefix?: string;
|
|
125
|
+
name?: string;
|
|
126
|
+
}): Record<R, Record<C, BoolVar>>;
|
|
127
|
+
private hasVarName;
|
|
128
|
+
private getNextBoolVarName;
|
|
129
|
+
private createBoolVar;
|
|
130
|
+
/**
|
|
131
|
+
* Internal variable creator
|
|
132
|
+
*/
|
|
133
|
+
private addVar;
|
|
67
134
|
/**
|
|
68
135
|
* Find variable by name
|
|
69
136
|
*/
|
|
70
137
|
getVarByName(name: string): Var | undefined;
|
|
138
|
+
/**
|
|
139
|
+
* Find boolean variable by name
|
|
140
|
+
*/
|
|
141
|
+
getBoolVarByName(name: string): BoolVar | undefined;
|
|
71
142
|
/**
|
|
72
143
|
* Find a constraint by its name
|
|
73
144
|
*/
|
|
@@ -75,33 +146,45 @@ export declare class Model {
|
|
|
75
146
|
/**
|
|
76
147
|
* Set the objective function
|
|
77
148
|
*/
|
|
78
|
-
setObjective(expr: LinExpr | QuadExpr | Var | number | string, sense?: OptimizationSense): void;
|
|
149
|
+
setObjective(expr: LinExpr | QuadExpr | Var | number | string | Constraint, sense?: OptimizationSense): void;
|
|
79
150
|
/**
|
|
80
151
|
* Set objective to maximize
|
|
81
152
|
*/
|
|
82
|
-
maximize(expr: LinExpr | QuadExpr | Var | number | string): void;
|
|
153
|
+
maximize(expr: LinExpr | QuadExpr | Var | number | string | Constraint): void;
|
|
83
154
|
/**
|
|
84
155
|
* Set objective to minimize
|
|
85
156
|
*/
|
|
86
|
-
minimize(expr: LinExpr | QuadExpr | Var | number | string): void;
|
|
87
|
-
/**
|
|
88
|
-
* Add a Boolean (propositional logic) variable for SMT / SAT modeling
|
|
89
|
-
*/
|
|
90
|
-
addBoolVar(name?: string): BoolVar;
|
|
157
|
+
minimize(expr: LinExpr | QuadExpr | Var | number | string | Constraint): void;
|
|
91
158
|
/**
|
|
92
|
-
*
|
|
159
|
+
* Constrain the model with linear, boolean, or string formula constraints (primary default API).
|
|
160
|
+
* Supports single constraint, array of constraints, and fluent chaining:
|
|
161
|
+
* - m.constrain(expr`${desks} + 2 * ${chairs} <= 40`, "wood")
|
|
162
|
+
* - m.constrain(items.map(i => expr`${x[i]} <= 10`))
|
|
163
|
+
* - m.constrain(c1).constrain(c2)
|
|
93
164
|
*/
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
addConstraint(constraint: Constraint | BoolExpr | string, name?: string): Constraint | BoolExpr;
|
|
165
|
+
constrain(constraint: Constraint | LinExpr | QuadExpr | BoolExpr | string, name?: string): this;
|
|
166
|
+
constrain(constraints: (Constraint | LinExpr | QuadExpr | BoolExpr | string)[]): this;
|
|
97
167
|
/**
|
|
98
|
-
*
|
|
168
|
+
* Extract primal solution values directly into plain primitives:
|
|
169
|
+
* - m.getValues(x) -> number | null
|
|
170
|
+
* - m.getValues(p) -> boolean | null
|
|
171
|
+
* - m.getValues([x, y]) -> (number | null)[]
|
|
172
|
+
* - m.getValues([p, q]) -> (boolean | null)[]
|
|
173
|
+
* - m.getValues(record) -> Record<string, number | boolean | null>
|
|
174
|
+
* - m.getValues(matrix) -> Record<string, Record<string, number | boolean | null>>
|
|
99
175
|
*/
|
|
100
|
-
|
|
176
|
+
getValues(item: Var): number | null;
|
|
177
|
+
getValues(item: BoolVar): boolean | null;
|
|
178
|
+
getValues(items: Var[]): (number | null)[];
|
|
179
|
+
getValues(items: BoolVar[]): (boolean | null)[];
|
|
180
|
+
getValues<K extends string | number>(items: Record<K, Var>): Record<K, number | null>;
|
|
181
|
+
getValues<K extends string | number>(items: Record<K, BoolVar>): Record<K, boolean | null>;
|
|
182
|
+
getValues<R extends string | number, C extends string | number>(items: Record<R, Record<C, Var>>): Record<R, Record<C, number | null>>;
|
|
183
|
+
getValues<R extends string | number, C extends string | number>(items: Record<R, Record<C, BoolVar>>): Record<R, Record<C, boolean | null>>;
|
|
101
184
|
/**
|
|
102
|
-
*
|
|
185
|
+
* Internal linear or logical constraint adder
|
|
103
186
|
*/
|
|
104
|
-
|
|
187
|
+
private addConstraint;
|
|
105
188
|
/**
|
|
106
189
|
* Universal classical fluent adder for constraints, variables, or batches.
|
|
107
190
|
* Enables:
|
|
@@ -124,18 +207,18 @@ export declare class Model {
|
|
|
124
207
|
* Automatically handles <=, >=, and == constraints.
|
|
125
208
|
* Enables solving conditional logic in MIP solvers (HiGHS, GLPK) without requiring SMT.
|
|
126
209
|
*/
|
|
127
|
-
|
|
210
|
+
indicator(binVar: Var, constraint: Constraint | LinExpr | QuadExpr, options?: IndicatorOptions): Constraint[];
|
|
128
211
|
/**
|
|
129
212
|
* Export model to CPLEX LP format string
|
|
130
213
|
*/
|
|
131
214
|
toLpString(): string;
|
|
132
215
|
/**
|
|
133
216
|
* Solve the optimization model using the configured solver (defaults to HiGHS WASM)
|
|
134
|
-
* or a solver passed dynamically (
|
|
217
|
+
* or a solver passed dynamically (e.g., await model.optimize(new HiGHS()))
|
|
135
218
|
*/
|
|
136
219
|
optimize(solverOrOptions?: Solver | string | SolveOptions, options?: SolveOptions): Promise<SolverStatus>;
|
|
137
220
|
/**
|
|
138
|
-
*
|
|
221
|
+
* Convenience alias for optimize():
|
|
139
222
|
* await model.solve()
|
|
140
223
|
* await model.solve(new HiGHS())
|
|
141
224
|
* await model.solve(new GLPK())
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/modeler/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/modeler/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +1,28 @@
|
|
|
1
1
|
import { Var } from "./variable.js";
|
|
2
2
|
import { LinExpr } from "./expression.js";
|
|
3
|
+
import { QuadExpr } from "./quad-expr.js";
|
|
3
4
|
import { Constraint } from "./constraint.js";
|
|
4
|
-
type
|
|
5
|
+
export type ExprResolver = (name: string) => Var | LinExpr | QuadExpr | undefined;
|
|
5
6
|
/**
|
|
6
|
-
* Parse a mathematical expression string into a LinExpr
|
|
7
|
+
* Parse a mathematical expression string into a LinExpr or QuadExpr
|
|
7
8
|
*/
|
|
8
|
-
export declare function parseExpr(text: string, resolver:
|
|
9
|
+
export declare function parseExpr(text: string, resolver: ExprResolver): LinExpr | QuadExpr;
|
|
9
10
|
/**
|
|
10
11
|
* Parse a constraint string such as "chairs + 2 * tables <= 40"
|
|
11
12
|
*/
|
|
12
|
-
export declare function parseConstraint(text: string, resolver:
|
|
13
|
+
export declare function parseConstraint(text: string, resolver: ExprResolver, name?: string): Constraint;
|
|
13
14
|
/**
|
|
14
15
|
* Tagged template literal for constraints:
|
|
15
16
|
* c`${chairs} + 2 * ${tables} <= 40`
|
|
16
17
|
* c`3 * ${x} - ${y} >= 5`
|
|
17
18
|
* c`${x} == 2 * ${y} + 4`
|
|
18
19
|
*/
|
|
19
|
-
export declare function c(strings: TemplateStringsArray, ...values: (Var | LinExpr | number)[]): Constraint;
|
|
20
|
+
export declare function c(strings: TemplateStringsArray, ...values: (Var | LinExpr | QuadExpr | number)[]): Constraint;
|
|
20
21
|
/**
|
|
21
|
-
* Tagged template literal for linear expressions or inline constraints:
|
|
22
|
+
* Tagged template literal for linear or quadratic expressions or inline constraints:
|
|
22
23
|
* expr`45 * ${chairs} + 80 * ${tables}` -> LinExpr
|
|
24
|
+
* expr`${x} * ${y} + 2 * ${x} * ${x}` -> QuadExpr
|
|
23
25
|
* expr`${x} + 2 * ${y} <= 40` -> Constraint
|
|
24
26
|
*/
|
|
25
|
-
export declare function expr(strings: TemplateStringsArray, ...values: (Var | LinExpr | number)[]): LinExpr | Constraint;
|
|
26
|
-
export {};
|
|
27
|
+
export declare function expr(strings: TemplateStringsArray, ...values: (Var | LinExpr | QuadExpr | number)[]): LinExpr | QuadExpr | Constraint;
|
|
27
28
|
//# 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,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,
|
|
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;AAqXlF;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,GAAG,QAAQ,CASlF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAsC/F;AAmCD;;;;;GAKG;AACH,wBAAgB,CAAC,CACf,OAAO,EAAE,oBAAoB,EAC7B,GAAG,MAAM,EAAE,CAAC,GAAG,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,EAAE,GAC/C,UAAU,CAGZ;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAClB,OAAO,EAAE,oBAAoB,EAC7B,GAAG,MAAM,EAAE,CAAC,GAAG,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,EAAE,GAC/C,OAAO,GAAG,QAAQ,GAAG,UAAU,CAOjC"}
|
|
@@ -31,9 +31,10 @@ export declare class QuadExpr {
|
|
|
31
31
|
*/
|
|
32
32
|
sub(other: QuadExpr | LinExpr | Var | number): QuadExpr;
|
|
33
33
|
/**
|
|
34
|
-
* Multiply by a scalar coefficient
|
|
34
|
+
* Multiply by a scalar coefficient, variable, or linear/quadratic expression
|
|
35
35
|
*/
|
|
36
36
|
mul(scalar: number): QuadExpr;
|
|
37
|
+
mul(other: Var | LinExpr | QuadExpr): QuadExpr;
|
|
37
38
|
/**
|
|
38
39
|
* Divide by a non-zero scalar
|
|
39
40
|
*/
|
|
@@ -47,6 +48,7 @@ export declare class QuadExpr {
|
|
|
47
48
|
*/
|
|
48
49
|
get value(): number | null;
|
|
49
50
|
getValue(): number | null;
|
|
51
|
+
toString(): string;
|
|
50
52
|
/**
|
|
51
53
|
* Factory method to create a quadratic term v1 * v2 * coeff
|
|
52
54
|
*/
|
|
@@ -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,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAW/C,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,GAAG,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,qBAAa,QAAQ;IACZ,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,QAAQ,CA6DtD;IAED;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,GAAG,GAAG,GAAG,MAAM,GAAG,QAAQ,CAWtD;IAED;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,
|
|
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,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAW/C,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,GAAG,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,qBAAa,QAAQ;IACZ,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,QAAQ,CA6DtD;IAED;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,GAAG,GAAG,GAAG,MAAM,GAAG,QAAQ,CAWtD;IAED;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC9B,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAsF/C;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAK5B;IAED;;OAEG;IACH,GAAG,IAAI,QAAQ,CAEd;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,GAAG,IAAI,CAWzB;IAED,QAAQ,IAAI,MAAM,GAAG,IAAI,CAExB;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,CAShE;CACF"}
|
|
@@ -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;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAKtE;;;GAGG;AACH,qBAAa,UAAW,YAAW,MAAM;IACvC,gBAAuB,YAAY;QACjC,WAAW;QACX,UAAU;MACV;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,CACT,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,cAAc,EACxB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,
|
|
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;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAKtE;;;GAGG;AACH,qBAAa,UAAW,YAAW,MAAM;IACvC,gBAAuB,YAAY;QACjC,WAAW;QACX,UAAU;MACV;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,CACT,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,cAAc,EACxB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAmMvB;CACF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
|
|
@@ -26,7 +26,7 @@ export declare class HighsSolver implements Solver {
|
|
|
26
26
|
solve(modelData: LpModelData, lpResult: LpExportResult, options?: SolverOptions): Promise<SolverResult>;
|
|
27
27
|
}
|
|
28
28
|
/**
|
|
29
|
-
*
|
|
29
|
+
* Short alias for HighsSolver
|
|
30
30
|
*/
|
|
31
31
|
export declare const HiGHS: typeof HighsSolver;
|
|
32
32
|
export declare function registerHighsSolver(): void;
|
|
@@ -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;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,OAAO,GAAG,YAAY,CAkE/D;AAED;;;GAGG;AACH,qBAAa,WAAY,YAAW,MAAM;IACxC,gBAAuB,YAAY;QACjC,WAAW;QACX,UAAU;MACV;IACF,SAAgB,IAAI,WAAW;IAC/B,SAAgB,OAAO,YAAY;IACnC,SAAgB,YAAY;;;MAA4B;IACjD,OAAO,EAAE,aAAa,CAAC;IAE9B,YAAY,OAAO,GAAE,aAAkB,EAEtC;IAEK,KAAK,CACT,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,cAAc,EACxB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,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,MAAM,aAAa,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,OAAO,GAAG,YAAY,CAkE/D;AAED;;;GAGG;AACH,qBAAa,WAAY,YAAW,MAAM;IACxC,gBAAuB,YAAY;QACjC,WAAW;QACX,UAAU;MACV;IACF,SAAgB,IAAI,WAAW;IAC/B,SAAgB,OAAO,YAAY;IACnC,SAAgB,YAAY;;;MAA4B;IACjD,OAAO,EAAE,aAAa,CAAC;IAE9B,YAAY,OAAO,GAAE,aAAkB,EAEtC;IAEK,KAAK,CACT,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,cAAc,EACxB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAsEvB;CACF;AAED;;GAEG;AACH,eAAO,MAAM,KAAK,oBAAc,CAAC;AAGjC,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C"}
|
|
@@ -65,7 +65,7 @@ export interface SolverCheckResult {
|
|
|
65
65
|
/**
|
|
66
66
|
* Universal Solver interface.
|
|
67
67
|
* Any optimization engine (HiGHS WASM, GLPK, Gurobi Remote, CBC, SCIP, custom JS)
|
|
68
|
-
* implements this interface to be used interchangeably with Model
|
|
68
|
+
* implements this interface to be used interchangeably with Model.
|
|
69
69
|
*/
|
|
70
70
|
export interface Solver {
|
|
71
71
|
/** Identifier name of the solver engine */
|
|
@@ -17,6 +17,12 @@ export declare function resetZ3LoaderCache(): void;
|
|
|
17
17
|
* Validate browser environment prerequisites for multithreaded Z3 WASM.
|
|
18
18
|
*/
|
|
19
19
|
export declare function validateZ3BrowserEnvironment(): void;
|
|
20
|
+
/**
|
|
21
|
+
* Probe an asset URL to verify it returns a valid response (not 404 and not HTML SPA fallback).
|
|
22
|
+
*
|
|
23
|
+
* @internal
|
|
24
|
+
*/
|
|
25
|
+
export declare function probeAssetUrl(url: string, assetName: string): Promise<void>;
|
|
20
26
|
/**
|
|
21
27
|
* Resolve asset URLs for z3-built.js and z3-built.wasm in browser environments.
|
|
22
28
|
*/
|
|
@@ -28,6 +34,12 @@ export declare function resolveZ3AssetUrls(options?: {
|
|
|
28
34
|
jsUrl: string;
|
|
29
35
|
wasmUrl: string;
|
|
30
36
|
};
|
|
37
|
+
/**
|
|
38
|
+
* Dynamically load z3-built.js script in browser to register global initZ3
|
|
39
|
+
*
|
|
40
|
+
* @internal
|
|
41
|
+
*/
|
|
42
|
+
export declare function ensureInitZ3Loaded(jsUrl: string): Promise<any>;
|
|
31
43
|
/**
|
|
32
44
|
* Load and initialize Z3 theorem prover.
|
|
33
45
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../../src/modeler/solvers/z3/loader.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,GAAG,GAAG,CAAC;AAyBtB,wBAAgB,qBAAqB,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAazD;AA+BD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,GAAG,MAAM,IAAI,CAGhF;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAyBlD;AAkED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CAI1F;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAGzC;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CA4BnD;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../../src/modeler/solvers/z3/loader.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,GAAG,GAAG,CAAC;AAyBtB,wBAAgB,qBAAqB,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAazD;AA+BD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,GAAG,MAAM,IAAI,CAGhF;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAyBlD;AAkED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CAI1F;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAGzC;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CA4BnD;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsCjF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAO,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAiBjJ;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAuFpE;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAqG5H;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BnE"}
|
|
@@ -1,18 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* HiGHS & Model Types
|
|
3
3
|
*/
|
|
4
|
-
export type VarType = "Continuous" | "Integer" | "Binary";
|
|
5
|
-
export type OptimizationSense = "Minimize" | "Maximize";
|
|
4
|
+
export type VarType = "Continuous" | "Integer" | "Binary" | "continuous" | "integer" | "binary" | "cont" | "int" | "bin";
|
|
5
|
+
export type OptimizationSense = "Minimize" | "Maximize" | "minimize" | "maximize";
|
|
6
|
+
/**
|
|
7
|
+
* Normalizes user-facing optimization sense to internal canonical form ("Maximize" | "Minimize")
|
|
8
|
+
*/
|
|
9
|
+
export declare function normalizeSense(sense?: OptimizationSense): "Maximize" | "Minimize";
|
|
6
10
|
export type ComparisonSense = "<=" | ">=" | "==";
|
|
7
11
|
export type SolverStatus = "Optimal" | "Feasible" | "Infeasible" | "Unbounded" | "TimeLimit" | "IterationLimit" | "Error" | "NotSolved" | "Sat" | "Unsat" | "Unknown";
|
|
8
12
|
export interface SolveOptions {
|
|
9
13
|
timeLimit?: number;
|
|
10
14
|
outputFlag?: boolean;
|
|
11
15
|
presolve?: "on" | "off" | "choose";
|
|
12
|
-
solver?:
|
|
16
|
+
solver?: any;
|
|
13
17
|
relGap?: number;
|
|
14
18
|
absGap?: number;
|
|
15
19
|
wasmUrl?: string;
|
|
20
|
+
[key: string]: any;
|
|
16
21
|
}
|
|
17
22
|
export interface SolverSolution {
|
|
18
23
|
status: SolverStatus;
|