@ohtaman/washi 0.2.0 → 0.3.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 +131 -115
- package/README.md +131 -115
- package/README.zh-CN.md +133 -117
- 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 +368 -306
- 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 +368 -321
- 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 +16 -10
- 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 +90 -11
- package/dist/types/modeler/model.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 +1 -6
- package/dist/types/modeler/variable.d.ts.map +1 -1
- package/package.json +10 -2
- 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"}
|
|
@@ -3,7 +3,6 @@ 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>;
|
|
@@ -41,7 +40,7 @@ export declare class LinExpr {
|
|
|
41
40
|
*/
|
|
42
41
|
get value(): number | null;
|
|
43
42
|
/**
|
|
44
|
-
*
|
|
43
|
+
* Helper value accessor for expression
|
|
45
44
|
*/
|
|
46
45
|
getValue(): number | null;
|
|
47
46
|
/**
|
|
@@ -63,17 +62,24 @@ export declare class LinExpr {
|
|
|
63
62
|
toString(): string;
|
|
64
63
|
}
|
|
65
64
|
/**
|
|
66
|
-
*
|
|
67
|
-
* Also supports mapping functions: sum(items, item => expr)
|
|
68
|
-
* Compatible with PuLP's lpSum and python-mip's xsum.
|
|
65
|
+
* Union expression type covering linear and quadratic expressions.
|
|
69
66
|
*/
|
|
70
|
-
export
|
|
67
|
+
export type Expr = LinExpr | QuadExpr;
|
|
71
68
|
/**
|
|
72
|
-
*
|
|
69
|
+
* Sum an array, iterable, or count-range of variables, expressions, or numbers.
|
|
70
|
+
* Supports:
|
|
71
|
+
* - sum([x, y, z])
|
|
72
|
+
* - sum(items, item => expr)
|
|
73
|
+
* - sum(10, i => expr) (range 0..9)
|
|
73
74
|
*/
|
|
74
|
-
export declare
|
|
75
|
+
export declare function sum(count: number, mapFn: (index: number) => LinExpr | Var | number): LinExpr;
|
|
76
|
+
export declare function sum<T = any>(items: Iterable<T>, mapFn?: (item: T, index: number) => LinExpr | Var | number): LinExpr;
|
|
75
77
|
/**
|
|
76
|
-
*
|
|
78
|
+
* Compute the vector dot product (linear combination) of coefficients and variables.
|
|
79
|
+
* Works with 1D/2D arrays and records in either order:
|
|
80
|
+
* - dot(costs, vars)
|
|
81
|
+
* - dot(vars, costs)
|
|
82
|
+
* - dot(costMatrix, flowMatrix)
|
|
77
83
|
*/
|
|
78
|
-
export declare
|
|
84
|
+
export declare function dot(a: Record<string, any> | any[], b: Record<string, any> | any[]): LinExpr;
|
|
79
85
|
//# sourceMappingURL=expression.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../../src/modeler/expression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C
|
|
1
|
+
{"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../../src/modeler/expression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C;;GAEG;AACH,qBAAa,OAAO;IACX,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IAExB,YAAY,KAAK,GAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAa,EAAE,QAAQ,GAAE,MAAU,EAGpE;IAED;;OAEG;IACH,KAAK,IAAI,OAAO,CAEf;IAED;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC/B,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,GAAG,MAAM,GAAG,OAAO,CAAC;IAiC5C;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC/B,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,GAAG,MAAM,GAAG,OAAO,CAAC;IAc5C;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC;IAuBtB;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAK3B;IAED;;OAEG;IACH,GAAG,IAAI,OAAO,CAEb;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,GAAG,IAAI,CASzB;IAED;;OAEG;IACH,QAAQ,IAAI,MAAM,GAAG,IAAI,CAExB;IAED;;OAEG;IACH,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAEzD;IACD,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAEtE;IAED;;OAEG;IACH,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAEzD;IACD,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAEzE;IAED;;OAEG;IACH,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAEzD;IACD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAE9D;IAED,OAAO,CAAC,YAAY;IAuBpB,QAAQ,IAAI,MAAM,CAkBjB;CACF;AAED;;GAEG;AACH,MAAM,MAAM,IAAI,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEtC;;;;;;GAMG;AACH,wBAAgB,GAAG,CACjB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,GAAG,GAAG,MAAM,GAC/C,OAAO,CAAC;AACX,wBAAgB,GAAG,CAAC,CAAC,GAAG,GAAG,EACzB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAClB,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,GAAG,GAAG,MAAM,GACzD,OAAO,CAAC;AAkDX;;;;;;GAMG;AACH,wBAAgB,GAAG,CACjB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,EAC9B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAC7B,OAAO,CAqJT"}
|
|
@@ -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,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type VarType, type OptimizationSense, type SolverStatus, type SolveOptions, type SolverSolution } from "./types.js";
|
|
2
2
|
import { Var, type VarOptions } from "./variable.js";
|
|
3
3
|
import { LinExpr } from "./expression.js";
|
|
4
4
|
import { QuadExpr } from "./quad-expr.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;
|
|
@@ -45,6 +51,55 @@ export declare class Model {
|
|
|
45
51
|
get constrs(): Constraint[];
|
|
46
52
|
get numVars(): number;
|
|
47
53
|
get numConstrs(): number;
|
|
54
|
+
/**
|
|
55
|
+
* Internal generator for domain-specific variables
|
|
56
|
+
*/
|
|
57
|
+
private createDomainVars;
|
|
58
|
+
/**
|
|
59
|
+
* Create 0-1 binary variable(s) (x in {0, 1}).
|
|
60
|
+
* Supports:
|
|
61
|
+
* - m.binary("x") -> Var
|
|
62
|
+
* - m.binary(5) -> Var[]
|
|
63
|
+
* - m.binary(["a", "b"]) -> Record<string, Var>
|
|
64
|
+
* - m.binary(rows, cols) -> Record<string, Record<string, Var>>
|
|
65
|
+
*/
|
|
66
|
+
binary(name: string): Var;
|
|
67
|
+
binary(count: number, options?: {
|
|
68
|
+
prefix?: string;
|
|
69
|
+
name?: string;
|
|
70
|
+
}): Var[];
|
|
71
|
+
binary<K extends string | number>(keys: K[] | Iterable<K>, options?: {
|
|
72
|
+
prefix?: string;
|
|
73
|
+
name?: string;
|
|
74
|
+
}): Record<K, Var>;
|
|
75
|
+
binary<R extends string | number, C extends string | number>(dim1: R[] | number, dim2: C[] | number, options?: {
|
|
76
|
+
prefix?: string;
|
|
77
|
+
name?: string;
|
|
78
|
+
}): Record<R, Record<C, Var>>;
|
|
79
|
+
/**
|
|
80
|
+
* Create integer variable(s) (y in Z).
|
|
81
|
+
* Supports:
|
|
82
|
+
* - m.integer("y", { lb: 0, ub: 10 }) -> Var
|
|
83
|
+
* - m.integer(5, { lb: 0 }) -> Var[]
|
|
84
|
+
* - m.integer(["a", "b"], { lb: 0, ub: 5 }) -> Record<string, Var>
|
|
85
|
+
* - m.integer(rows, cols, options) -> Record<string, Record<string, Var>>
|
|
86
|
+
*/
|
|
87
|
+
integer(name: string, options?: BoundsOptions): Var;
|
|
88
|
+
integer(count: number, options?: BoundsOptions): Var[];
|
|
89
|
+
integer<K extends string | number>(keys: K[] | Iterable<K>, options?: BoundsOptions): Record<K, Var>;
|
|
90
|
+
integer<R extends string | number, C extends string | number>(dim1: R[] | number, dim2: C[] | number, options?: BoundsOptions): Record<R, Record<C, Var>>;
|
|
91
|
+
/**
|
|
92
|
+
* Create continuous (real) variable(s) (z in R).
|
|
93
|
+
* Supports:
|
|
94
|
+
* - m.continuous("z", { lb: 0 }) -> Var
|
|
95
|
+
* - m.continuous(5, { lb: 0 }) -> Var[]
|
|
96
|
+
* - m.continuous(["a", "b"], { lb: 0 }) -> Record<string, Var>
|
|
97
|
+
* - m.continuous(rows, cols, options) -> Record<string, Record<string, Var>>
|
|
98
|
+
*/
|
|
99
|
+
continuous(name: string, options?: BoundsOptions): Var;
|
|
100
|
+
continuous(count: number, options?: BoundsOptions): Var[];
|
|
101
|
+
continuous<K extends string | number>(keys: K[] | Iterable<K>, options?: BoundsOptions): Record<K, Var>;
|
|
102
|
+
continuous<R extends string | number, C extends string | number>(dim1: R[] | number, dim2: C[] | number, options?: BoundsOptions): Record<R, Record<C, Var>>;
|
|
48
103
|
/**
|
|
49
104
|
* Add a decision variable to the model
|
|
50
105
|
*/
|
|
@@ -75,15 +130,35 @@ export declare class Model {
|
|
|
75
130
|
/**
|
|
76
131
|
* Set the objective function
|
|
77
132
|
*/
|
|
78
|
-
setObjective(expr: LinExpr | QuadExpr | Var | number | string, sense?: OptimizationSense): void;
|
|
133
|
+
setObjective(expr: LinExpr | QuadExpr | Var | number | string | Constraint, sense?: OptimizationSense): void;
|
|
79
134
|
/**
|
|
80
135
|
* Set objective to maximize
|
|
81
136
|
*/
|
|
82
|
-
maximize(expr: LinExpr | QuadExpr | Var | number | string): void;
|
|
137
|
+
maximize(expr: LinExpr | QuadExpr | Var | number | string | Constraint): void;
|
|
83
138
|
/**
|
|
84
139
|
* Set objective to minimize
|
|
85
140
|
*/
|
|
86
|
-
minimize(expr: LinExpr | QuadExpr | Var | number | string): void;
|
|
141
|
+
minimize(expr: LinExpr | QuadExpr | Var | number | string | Constraint): void;
|
|
142
|
+
/**
|
|
143
|
+
* Constrain the model with linear, boolean, or string formula constraints (primary default API).
|
|
144
|
+
* Supports single constraint, array of constraints, and fluent chaining:
|
|
145
|
+
* - m.constrain(expr`${desks} + 2 * ${chairs} <= 40`, "wood")
|
|
146
|
+
* - m.constrain(items.map(i => expr`${x[i]} <= 10`))
|
|
147
|
+
* - m.constrain(c1).constrain(c2)
|
|
148
|
+
*/
|
|
149
|
+
constrain(constraint: Constraint | LinExpr | BoolExpr | string, name?: string): this;
|
|
150
|
+
constrain(constraints: (Constraint | LinExpr | BoolExpr | string)[]): this;
|
|
151
|
+
/**
|
|
152
|
+
* Extract primal solution values directly into plain primitives:
|
|
153
|
+
* - m.getValues(x) -> number | null
|
|
154
|
+
* - m.getValues([x, y]) -> (number | null)[]
|
|
155
|
+
* - m.getValues(record) -> Record<string, number | null>
|
|
156
|
+
* - m.getValues(matrix) -> Record<string, Record<string, number | null>>
|
|
157
|
+
*/
|
|
158
|
+
getValues(item: Var): number | null;
|
|
159
|
+
getValues(items: Var[]): (number | null)[];
|
|
160
|
+
getValues<K extends string | number>(items: Record<K, Var>): Record<K, number | null>;
|
|
161
|
+
getValues<R extends string | number, C extends string | number>(items: Record<R, Record<C, Var>>): Record<R, Record<C, number | null>>;
|
|
87
162
|
/**
|
|
88
163
|
* Add a Boolean (propositional logic) variable for SMT / SAT modeling
|
|
89
164
|
*/
|
|
@@ -91,9 +166,9 @@ export declare class Model {
|
|
|
91
166
|
/**
|
|
92
167
|
* Add a linear or logical constraint to the model
|
|
93
168
|
*/
|
|
94
|
-
addConstraint(constraint: Constraint | string, name?: string): Constraint;
|
|
169
|
+
addConstraint(constraint: Constraint | LinExpr | string, name?: string): Constraint;
|
|
95
170
|
addConstraint(constraint: BoolExpr, name?: string): BoolExpr;
|
|
96
|
-
addConstraint(constraint: Constraint | BoolExpr | string, name?: string): Constraint | BoolExpr;
|
|
171
|
+
addConstraint(constraint: Constraint | LinExpr | BoolExpr | string, name?: string): Constraint | BoolExpr;
|
|
97
172
|
/**
|
|
98
173
|
* python-mip / Gurobi style alias for addConstraint
|
|
99
174
|
*/
|
|
@@ -124,18 +199,22 @@ export declare class Model {
|
|
|
124
199
|
* Automatically handles <=, >=, and == constraints.
|
|
125
200
|
* Enables solving conditional logic in MIP solvers (HiGHS, GLPK) without requiring SMT.
|
|
126
201
|
*/
|
|
127
|
-
|
|
202
|
+
indicator(binVar: Var, constraint: Constraint | LinExpr, options?: IndicatorOptions): Constraint[];
|
|
203
|
+
/**
|
|
204
|
+
* @deprecated Use m.indicator(binVar, constraint, options) instead.
|
|
205
|
+
*/
|
|
206
|
+
addIndicator(binVar: Var, constraint: Constraint | LinExpr, options?: IndicatorOptions): Constraint[];
|
|
128
207
|
/**
|
|
129
208
|
* Export model to CPLEX LP format string
|
|
130
209
|
*/
|
|
131
210
|
toLpString(): string;
|
|
132
211
|
/**
|
|
133
212
|
* Solve the optimization model using the configured solver (defaults to HiGHS WASM)
|
|
134
|
-
* or a solver passed dynamically (
|
|
213
|
+
* or a solver passed dynamically (e.g., await model.optimize(new HiGHS()))
|
|
135
214
|
*/
|
|
136
215
|
optimize(solverOrOptions?: Solver | string | SolveOptions, options?: SolveOptions): Promise<SolverStatus>;
|
|
137
216
|
/**
|
|
138
|
-
*
|
|
217
|
+
* Convenience alias for optimize():
|
|
139
218
|
* await model.solve()
|
|
140
219
|
* await model.solve(new HiGHS())
|
|
141
220
|
* 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 +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?: "choose" | "simplex" | "ipm" | "pdlp";
|
|
16
|
+
solver?: "choose" | "simplex" | "ipm" | "pdlp" | (string & {});
|
|
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;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modeler/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modeler/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,OAAO,GACf,YAAY,GACZ,SAAS,GACT,QAAQ,GACR,YAAY,GACZ,SAAS,GACT,QAAQ,GACR,MAAM,GACN,KAAK,GACL,KAAK,CAAC;AAEV,MAAM,MAAM,iBAAiB,GACzB,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,CAAC;AAEf;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,CAAC,EAAE,iBAAiB,GAAG,UAAU,GAAG,UAAU,CAGjF;AAGD,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjD,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,UAAU,GACV,YAAY,GACZ,WAAW,GACX,WAAW,GACX,gBAAgB,GAChB,OAAO,GACP,WAAW,GACX,KAAK,GACL,OAAO,GACP,SAAS,CAAC;AAEd,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,QAAQ,CAAC;IACnC,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,YAAY,CAAC;IACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,GAAG,CAAC;CACX"}
|
|
@@ -11,12 +11,11 @@ export interface VarOptions {
|
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
13
|
* Represents a decision variable in an optimization problem.
|
|
14
|
-
* Compatible with both PuLP (LpVariable) and python-mip (Var).
|
|
15
14
|
*/
|
|
16
15
|
export declare class Var {
|
|
17
16
|
readonly id: number;
|
|
18
17
|
readonly name: string;
|
|
19
|
-
type:
|
|
18
|
+
type: "Continuous" | "Integer" | "Binary";
|
|
20
19
|
lb: number;
|
|
21
20
|
ub: number;
|
|
22
21
|
/** Optimal primal value after solve */
|
|
@@ -24,10 +23,6 @@ export declare class Var {
|
|
|
24
23
|
/** Reduced cost from dual solution */
|
|
25
24
|
reducedCost: number | null;
|
|
26
25
|
constructor(options?: VarOptions);
|
|
27
|
-
/** python-mip style value accessor */
|
|
28
|
-
get x(): number | null;
|
|
29
|
-
/** PuLP style value accessor */
|
|
30
|
-
get varValue(): number | null;
|
|
31
26
|
/** Multiply variable by a scalar coefficient or another variable/expression */
|
|
32
27
|
mul(coeff: number): LinExpr;
|
|
33
28
|
mul(other: Var): QuadExpr;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"variable.d.ts","sourceRoot":"","sources":["../../../src/modeler/variable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI1C,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;
|
|
1
|
+
{"version":3,"file":"variable.d.ts","sourceRoot":"","sources":["../../../src/modeler/variable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI1C,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAUD;;GAEG;AACH,qBAAa,GAAG;IACd,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,IAAI,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IAElB,uCAAuC;IAChC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IACnC,sCAAsC;IAC/B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEzC,YAAY,OAAO,GAAE,UAAe,EAYnC;IAED,+EAA+E;IAC/E,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,QAAQ,CAAC;IAC1B,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAC;IAoB9B,iFAAiF;IACjF,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAKhE;IAED,2FAA2F;IAC3F,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAKhE;IAED,+BAA+B;IAC/B,GAAG,IAAI,OAAO,CAEb;IAED,0DAA0D;IAC1D,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAEzD;IACD,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAEtE;IAED,6DAA6D;IAC7D,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAEzD;IACD,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAEzE;IAED,iDAAiD;IACjD,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAEzD;IACD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAE9D;IAED,QAAQ,IAAI,MAAM,CAEjB;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ohtaman/washi",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "WaSHI: WebAssembly Algebraic System for Hybrid & Integer modeling (LP, MIP, QP, SMT)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/lib/washi.js",
|
|
@@ -60,12 +60,17 @@
|
|
|
60
60
|
"build:types": "node -e \"import('node:fs').then(fs => fs.rmSync('dist/types', { recursive: true, force: true }))\" && tsc -p tsconfig.lib.json",
|
|
61
61
|
"build:lib": "node scripts/build-library.mjs",
|
|
62
62
|
"build": "npm run build:types && npm run build:lib && npm run build:browser && npm run build:demo",
|
|
63
|
+
"build:site": "node scripts/build-site.mjs",
|
|
64
|
+
"docs:dev": "vitepress dev docs",
|
|
65
|
+
"docs:build": "vitepress build docs",
|
|
66
|
+
"docs:preview": "vitepress preview docs",
|
|
63
67
|
"preview": "vite preview",
|
|
64
68
|
"test": "vitest run",
|
|
65
69
|
"test:e2e": "RUN_E2E=1 vitest run test/e2e.test.ts",
|
|
66
70
|
"prepublishOnly": "npm run build:types && npm run build:lib && npm run build:browser",
|
|
67
71
|
"build:browser": "node scripts/build-browser.mjs",
|
|
68
|
-
"test:distribution": "npm run build:types && npm run build:lib && npm run build:browser && node --experimental-vm-modules scripts/check-distribution.mjs"
|
|
72
|
+
"test:distribution": "npm run build:types && npm run build:lib && npm run build:browser && node --experimental-vm-modules scripts/check-distribution.mjs",
|
|
73
|
+
"test:demo": "BASE_URL=/washi/ npm run build:demo && node scripts/check-demo-browser.mjs"
|
|
69
74
|
},
|
|
70
75
|
"keywords": [
|
|
71
76
|
"optimization",
|
|
@@ -114,9 +119,12 @@
|
|
|
114
119
|
"devDependencies": {
|
|
115
120
|
"@types/node": "^26.6.3",
|
|
116
121
|
"glpk.js": "^5.0.0",
|
|
122
|
+
"mermaid": "^11.17.2",
|
|
117
123
|
"playwright": "^1.63.0",
|
|
118
124
|
"typescript": "^7.0.2",
|
|
119
125
|
"vite": "^8.3.1",
|
|
126
|
+
"vitepress": "^1.6.4",
|
|
127
|
+
"vitepress-plugin-mermaid": "^2.0.17",
|
|
120
128
|
"vitest": "^5.0.2",
|
|
121
129
|
"webpack": "^5.111.1",
|
|
122
130
|
"z3-solver": "^5.2.0"
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { Model as CoreModel } from "./model.js";
|
|
2
|
-
import { Var } from "./variable.js";
|
|
3
|
-
import { LinExpr, xsum } from "./expression.js";
|
|
4
|
-
import { Constraint } from "./constraint.js";
|
|
5
|
-
import type { VarType, OptimizationSense } from "./types.js";
|
|
6
|
-
export declare const MINIMIZE: OptimizationSense;
|
|
7
|
-
export declare const MAXIMIZE: OptimizationSense;
|
|
8
|
-
export declare const BINARY: VarType;
|
|
9
|
-
export declare const INTEGER: VarType;
|
|
10
|
-
export declare const CONTINUOUS: VarType;
|
|
11
|
-
export interface ObjectiveSpec {
|
|
12
|
-
expr: LinExpr | Var | number | string;
|
|
13
|
-
sense: OptimizationSense;
|
|
14
|
-
}
|
|
15
|
-
export declare function maximize(expr: LinExpr | Var | number | string): ObjectiveSpec;
|
|
16
|
-
export declare function minimize(expr: LinExpr | Var | number | string): ObjectiveSpec;
|
|
17
|
-
/**
|
|
18
|
-
* python-mip compatible Model class
|
|
19
|
-
*/
|
|
20
|
-
export declare class MipModel extends CoreModel {
|
|
21
|
-
constructor(name?: string, sense?: OptimizationSense);
|
|
22
|
-
/**
|
|
23
|
-
* python-mip style variable creation: m.add_var(name="x", var_type=INTEGER, lb=0)
|
|
24
|
-
*/
|
|
25
|
-
add_var(options?: {
|
|
26
|
-
name?: string;
|
|
27
|
-
var_type?: VarType;
|
|
28
|
-
lb?: number;
|
|
29
|
-
ub?: number;
|
|
30
|
-
}): Var;
|
|
31
|
-
/**
|
|
32
|
-
* python-mip style objective property setter:
|
|
33
|
-
* m.objective = maximize(30 * x + 50 * y)
|
|
34
|
-
*/
|
|
35
|
-
set objective_spec(spec: ObjectiveSpec);
|
|
36
|
-
get objective_value(): number | null;
|
|
37
|
-
/**
|
|
38
|
-
* Add constraint alias
|
|
39
|
-
*/
|
|
40
|
-
add_constr(constraint: Constraint | string, name?: string): Constraint;
|
|
41
|
-
}
|
|
42
|
-
export { xsum };
|
|
43
|
-
//# sourceMappingURL=mip-compat.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mip-compat.d.ts","sourceRoot":"","sources":["../../../src/modeler/mip-compat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAA8B,MAAM,YAAY,CAAC;AAEzF,eAAO,MAAM,QAAQ,EAAE,iBAA8B,CAAC;AACtD,eAAO,MAAM,QAAQ,EAAE,iBAA8B,CAAC;AAEtD,eAAO,MAAM,MAAM,EAAE,OAAkB,CAAC;AACxC,eAAO,MAAM,OAAO,EAAE,OAAmB,CAAC;AAC1C,eAAO,MAAM,UAAU,EAAE,OAAsB,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,GAAG,GAAG,GAAG,MAAM,GAAG,MAAM,CAAC;IACtC,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,aAAa,CAE7E;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,aAAa,CAE7E;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,SAAS;IACrC,YAAY,IAAI,GAAE,MAAmB,EAAE,KAAK,GAAE,iBAA4B,EAEzE;IAED;;OAEG;IACH,OAAO,CAAC,OAAO,GAAE;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,EAAE,CAAC,EAAE,MAAM,CAAC;KACR,GAAG,GAAG,CAOX;IAED;;;OAGG;IACH,IAAI,cAAc,CAAC,IAAI,EAAE,aAAa,EAErC;IAED,IAAI,eAAe,IAAI,MAAM,GAAG,IAAI,CAEnC;IAED;;OAEG;IACH,UAAU,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAErE;CACF;AAED,OAAO,EAAE,IAAI,EAAE,CAAC"}
|