@ohtaman/washi 0.5.0 → 0.7.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 +103 -386
- package/README.md +104 -387
- package/README.zh-CN.md +103 -386
- package/THIRD_PARTY_LICENSES.md +5 -4
- package/dist/browser/_washi-node-only-BvRk9kiK.js +0 -0
- package/dist/browser/browser-runtime-TLCY0hkc.js +1793 -0
- package/dist/browser/highs-worker.js +1 -1
- package/dist/browser/highs.wasm +0 -0
- package/dist/browser/highs.wasm.LICENSE +1 -2
- package/dist/browser/loader-DewlSho8.js +643 -0
- package/dist/browser/solvers/glpk.js +3 -3
- package/dist/browser/solvers/glpk.min.js +1 -1
- package/dist/browser/solvers/z3.js +7 -1
- package/dist/browser/solvers/z3.min.js +1 -1
- package/dist/browser/washi.js +1708 -540
- package/dist/browser/washi.min.js +3 -4
- package/dist/lib/_washi-node-only-BvRk9kiK.js +0 -0
- package/dist/lib/highs-browser-runtime.js +2120 -4124
- package/dist/lib/highs-node-runtime.js +24 -1
- package/dist/lib/highs-runtime.js +2 -0
- package/dist/lib/highs-worker.js +1 -1
- package/dist/lib/highs.wasm +0 -0
- package/dist/lib/highs.wasm.LICENSE +1 -2
- package/dist/lib/loader-BZUQNvh4.js +649 -0
- package/dist/lib/{registry-BEfvpZW3.js → registry-D7TZ3Wh_.js} +142 -59
- package/dist/lib/solvers/glpk.js +4 -4
- package/dist/lib/solvers/z3.js +1 -1
- package/dist/lib/washi.js +1576 -465
- package/dist/types/decomposition/benders.d.ts +32 -0
- package/dist/types/decomposition/benders.d.ts.map +1 -0
- package/dist/types/decomposition/column-generation.d.ts +34 -0
- package/dist/types/decomposition/column-generation.d.ts.map +1 -0
- package/dist/types/decomposition/index.d.ts +4 -0
- package/dist/types/decomposition/index.d.ts.map +1 -0
- package/dist/types/decomposition/types.d.ts +230 -0
- package/dist/types/decomposition/types.d.ts.map +1 -0
- package/dist/types/index.d.ts +4 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/modeler/boolean-expr.d.ts.map +1 -1
- package/dist/types/modeler/constraint.d.ts +11 -0
- package/dist/types/modeler/constraint.d.ts.map +1 -1
- package/dist/types/modeler/expression.d.ts +57 -26
- package/dist/types/modeler/expression.d.ts.map +1 -1
- package/dist/types/modeler/index.d.ts +4 -3
- package/dist/types/modeler/index.d.ts.map +1 -1
- package/dist/types/modeler/linearizer.d.ts +15 -0
- package/dist/types/modeler/linearizer.d.ts.map +1 -0
- package/dist/types/modeler/lp-writer.d.ts +3 -1
- package/dist/types/modeler/lp-writer.d.ts.map +1 -1
- package/dist/types/modeler/model.d.ts +159 -8
- package/dist/types/modeler/model.d.ts.map +1 -1
- package/dist/types/modeler/parser.d.ts +25 -5
- package/dist/types/modeler/parser.d.ts.map +1 -1
- package/dist/types/modeler/solvers/glpk/solver.d.ts.map +1 -1
- package/dist/types/modeler/solvers/highs/browser-runtime.d.ts +2 -1
- package/dist/types/modeler/solvers/highs/browser-runtime.d.ts.map +1 -1
- package/dist/types/modeler/solvers/highs/driver.d.ts +232 -0
- package/dist/types/modeler/solvers/highs/driver.d.ts.map +1 -0
- package/dist/types/modeler/solvers/highs/index.d.ts +1 -0
- package/dist/types/modeler/solvers/highs/index.d.ts.map +1 -1
- package/dist/types/modeler/solvers/highs/loader.d.ts +4 -4
- package/dist/types/modeler/solvers/highs/loader.d.ts.map +1 -1
- package/dist/types/modeler/solvers/highs/node-runtime.d.ts +2 -1
- package/dist/types/modeler/solvers/highs/node-runtime.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/highs/worker-client.d.ts.map +1 -1
- package/dist/types/modeler/solvers/types.d.ts +4 -0
- package/dist/types/modeler/solvers/types.d.ts.map +1 -1
- package/dist/types/modeler/types.d.ts +27 -0
- package/dist/types/modeler/types.d.ts.map +1 -1
- package/docs/examples/diet-sensitivity.md +15 -14
- package/docs/examples/ecommerce-coupons.md +15 -22
- package/docs/examples/index.md +18 -12
- package/docs/examples/knapsack.md +8 -7
- package/docs/examples/portfolio-qp.md +11 -4
- package/docs/examples/production.md +4 -4
- package/docs/examples/shift-scheduling.md +20 -7
- package/docs/examples/smt-security.md +16 -4
- package/docs/examples/transportation.md +46 -19
- package/docs/examples/traveling-salesperson.md +157 -0
- package/docs/examples/unsat-core.md +15 -5
- package/docs/examples/vehicle-routing.md +208 -0
- package/docs/getting-started/ai-agents.md +33 -18
- package/docs/getting-started/cross-origin.md +56 -28
- package/docs/getting-started/index.md +40 -69
- package/docs/getting-started/runtimes.md +66 -61
- package/docs/guide/constraints.md +47 -41
- package/docs/guide/decomposition.md +267 -0
- package/docs/guide/expressions.md +90 -39
- package/docs/guide/formulation-tips.md +212 -0
- package/docs/guide/objectives.md +7 -4
- package/docs/guide/unsat-core.md +28 -9
- package/docs/guide/variables.md +33 -38
- package/docs/ja/getting-started/ai-agents.md +32 -18
- package/docs/solvers/custom-solver.md +1 -1
- package/docs/solvers/highs.md +48 -5
- package/docs/solvers/index.md +4 -4
- package/docs/solvers/z3.md +3 -0
- package/docs/zh/getting-started/ai-agents.md +32 -18
- package/llms-full.txt +1536 -478
- package/llms.txt +28 -22
- package/package.json +19 -16
- package/skills/washi/SKILL.md +21 -17
- package/dist/browser/browser-runtime-D13gHOT5.js +0 -4189
- package/dist/browser/loader-CtaDHef_.js +0 -273
- package/dist/lib/loader-DmNC_UNk.js +0 -279
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { BendersOptions, BendersResult } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Solve a problem using Benders Decomposition.
|
|
4
|
+
*
|
|
5
|
+
* Benders Decomposition partitions a problem into a Master Problem (containing complicating variables,
|
|
6
|
+
* such as discrete binary/integer design decisions, and an auxiliary objective estimator variable)
|
|
7
|
+
* and a Subproblem (typically a continuous LP or independent operational model).
|
|
8
|
+
*
|
|
9
|
+
* The master problem is solved iteratively, passing its tentative decision values to the subproblem callback.
|
|
10
|
+
* The subproblem callback evaluates feasibility and optimality, returning Benders Optimality Cuts or
|
|
11
|
+
* Feasibility Cuts to be dynamically added to the master until bounds converge.
|
|
12
|
+
*
|
|
13
|
+
* @param options Benders options including master model and subproblem callback
|
|
14
|
+
* @returns Result object containing status, objective, bounds, gap, iterations, and variable values
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* const result = await master.solveBenders({
|
|
19
|
+
* subproblem: () => {
|
|
20
|
+
* const sub = new Model("OperationalSub");
|
|
21
|
+
* const x = sub.continuous("x", { lb: 0 });
|
|
22
|
+
* sub.objective(minimize(expr`2 * ${x}`));
|
|
23
|
+
* sub.constraint(expr`${x} >= 30`, "demand");
|
|
24
|
+
* sub.link(expr`${x} <= 50 * ${openVar}`);
|
|
25
|
+
* return sub;
|
|
26
|
+
* },
|
|
27
|
+
* gapTolerance: 1e-4,
|
|
28
|
+
* });
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare function solveBenders(options: BendersOptions): Promise<BendersResult>;
|
|
32
|
+
//# sourceMappingURL=benders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"benders.d.ts","sourceRoot":"","sources":["../../../src/decomposition/benders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,cAAc,EACd,aAAa,EAEd,MAAM,YAAY,CAAC;AAiJpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,aAAa,CAAC,CA8MxB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { ColumnGenerationOptions, ColumnGenerationResult } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Solve a problem using Column Generation (Dantzig-Wolfe decomposition).
|
|
4
|
+
*
|
|
5
|
+
* Column Generation starts with a Restricted Master Problem (RMP) containing a small set of initial columns,
|
|
6
|
+
* repeatedly solves its continuous LP relaxation to obtain dual values (shadow prices), and calls a user-provided
|
|
7
|
+
* `pricing` subproblem callback to identify new columns with improving reduced costs.
|
|
8
|
+
* Once no improving columns exist, it optionally solves the master as a Mixed-Integer Program (MIP)
|
|
9
|
+
* to produce an integer solution.
|
|
10
|
+
*
|
|
11
|
+
* @param options Column generation options including master model and pricing callback
|
|
12
|
+
* @returns Result object containing status, objective, iterations, columns added, and final variable values
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* const result = await master.solveColumnGeneration({
|
|
17
|
+
* pricing: async () => {
|
|
18
|
+
* const sub = new Model("Pricing");
|
|
19
|
+
* const a = sub.integer("a", { lb: 0, ub: 2 });
|
|
20
|
+
* sub.objective(maximize(expr`${(demandA.dual ?? 0)} * ${a}`));
|
|
21
|
+
* sub.constraint(expr`45 * ${a} <= 100`);
|
|
22
|
+
* await sub.solve();
|
|
23
|
+
* return {
|
|
24
|
+
* cost: 1,
|
|
25
|
+
* type: "Integer",
|
|
26
|
+
* coefficients: { demand_A: a.value ?? 0 },
|
|
27
|
+
* };
|
|
28
|
+
* },
|
|
29
|
+
* finalizeAsMIP: true,
|
|
30
|
+
* });
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare function solveColumnGeneration<TColumnMeta = unknown>(options: ColumnGenerationOptions<TColumnMeta>): Promise<ColumnGenerationResult<TColumnMeta>>;
|
|
34
|
+
//# sourceMappingURL=column-generation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column-generation.d.ts","sourceRoot":"","sources":["../../../src/decomposition/column-generation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,sBAAsB,EAGvB,MAAM,YAAY,CAAC;AAKpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,qBAAqB,CAAC,WAAW,GAAG,OAAO,EAC/D,OAAO,EAAE,uBAAuB,CAAC,WAAW,CAAC,GAC5C,OAAO,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC,CA4K9C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/decomposition/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import type { Model } from "../modeler/model.js";
|
|
2
|
+
import type { Var } from "../modeler/variable.js";
|
|
3
|
+
import type { Constraint } from "../modeler/constraint.js";
|
|
4
|
+
import type { ParsedExpr } from "../modeler/parser.js";
|
|
5
|
+
import type { SolverStatus, SolverSolution, SolverOptions, Solver, VarType } from "../modeler/index.js";
|
|
6
|
+
/**
|
|
7
|
+
* Definition of a newly proposed column generated by a pricing subproblem.
|
|
8
|
+
*/
|
|
9
|
+
export interface ColumnProposal<TColumnMeta = unknown> {
|
|
10
|
+
/** Optional variable name for the column */
|
|
11
|
+
name?: string;
|
|
12
|
+
/** Variable domain type (defaults to "Continuous" during LP relaxation, cast to "Integer" during MIP finalization if requested) */
|
|
13
|
+
type?: VarType;
|
|
14
|
+
/** Variable lower bound (default: 0) */
|
|
15
|
+
lb?: number;
|
|
16
|
+
/** Variable upper bound (default: Infinity) */
|
|
17
|
+
ub?: number;
|
|
18
|
+
/** Objective cost coefficient */
|
|
19
|
+
cost: number;
|
|
20
|
+
/**
|
|
21
|
+
* Constraint coefficients for this column.
|
|
22
|
+
* Can be a record keyed by constraint name, Map of Constraint/name to coefficient,
|
|
23
|
+
* or an array of [constraint, coeff] tuples.
|
|
24
|
+
*/
|
|
25
|
+
coefficients: Record<string, number> | Map<Constraint | string, number> | Array<[Constraint | string, number]> | Array<{
|
|
26
|
+
constraint: Constraint | string;
|
|
27
|
+
coeff: number;
|
|
28
|
+
}>;
|
|
29
|
+
/**
|
|
30
|
+
* Optional reduced cost computed by the subproblem.
|
|
31
|
+
* For minimization: negative values improve the master objective.
|
|
32
|
+
* For maximization: positive values improve the master objective.
|
|
33
|
+
*/
|
|
34
|
+
reducedCost?: number;
|
|
35
|
+
/** Optional domain-specific metadata attached to this column (e.g. pattern vector) */
|
|
36
|
+
meta?: TColumnMeta;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Context provided to the pricing subproblem callback on each Column Generation iteration.
|
|
40
|
+
*/
|
|
41
|
+
export interface PricingContext<TColumnMeta = unknown> {
|
|
42
|
+
/** 1-based iteration index */
|
|
43
|
+
iteration: number;
|
|
44
|
+
/** Constraint shadow prices (duals) from the master LP relaxation, keyed by canonical constraint name */
|
|
45
|
+
duals: Record<string, number>;
|
|
46
|
+
/** Helper to retrieve the dual value (shadow price) of a specific constraint */
|
|
47
|
+
getDual: (constraintOrName: Constraint | string) => number;
|
|
48
|
+
/** Full solution payload of the restricted master LP relaxation */
|
|
49
|
+
masterSolution: SolverSolution;
|
|
50
|
+
/** Numerical tolerance for reduced cost optimality check */
|
|
51
|
+
reducedCostTolerance: number;
|
|
52
|
+
/** Master model instance */
|
|
53
|
+
master: Model;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Progress event emitted on each Column Generation iteration.
|
|
57
|
+
*/
|
|
58
|
+
export interface ColumnGenerationIterationInfo<TColumnMeta = unknown> {
|
|
59
|
+
iteration: number;
|
|
60
|
+
relaxationObjective: number | null;
|
|
61
|
+
columnsAdded: number;
|
|
62
|
+
proposedColumns: Array<ColumnProposal<TColumnMeta>>;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Options for `solveColumnGeneration`
|
|
66
|
+
*/
|
|
67
|
+
export interface ColumnGenerationOptions<TColumnMeta = unknown> {
|
|
68
|
+
/** Restricted Master Problem (RMP) model containing initial columns and constraints (optional when called via `master.solveColumnGeneration(...)`) */
|
|
69
|
+
master?: Model;
|
|
70
|
+
/**
|
|
71
|
+
* Pricing subproblem generator callback.
|
|
72
|
+
* Receives constraint duals (shadow prices) and returns one or more new columns with improving reduced costs,
|
|
73
|
+
* or `null` / `[]` when no improving columns exist (LP relaxation is optimal).
|
|
74
|
+
*/
|
|
75
|
+
pricing: (context: PricingContext<TColumnMeta>) => Promise<ColumnProposal<TColumnMeta> | ColumnProposal<TColumnMeta>[] | null | undefined> | ColumnProposal<TColumnMeta> | ColumnProposal<TColumnMeta>[] | null | undefined;
|
|
76
|
+
/** Maximum number of column generation iterations (default: 100) */
|
|
77
|
+
maxIterations?: number;
|
|
78
|
+
/**
|
|
79
|
+
* Numerical tolerance to test if reduced cost improves the objective (default: 1e-6).
|
|
80
|
+
* For minimization, column is accepted if `reducedCost < -reducedCostTolerance`.
|
|
81
|
+
* For maximization, column is accepted if `reducedCost > reducedCostTolerance`.
|
|
82
|
+
*/
|
|
83
|
+
reducedCostTolerance?: number;
|
|
84
|
+
/**
|
|
85
|
+
* Whether to solve the final Restricted Master Problem as a Mixed-Integer Program (MIP)
|
|
86
|
+
* after column generation terminates (default: true).
|
|
87
|
+
* When true, integer/binary columns generate an exact integer solution.
|
|
88
|
+
*/
|
|
89
|
+
finalizeAsMIP?: boolean;
|
|
90
|
+
/** Solver name or instance to use for master problem (defaults to HiGHS) */
|
|
91
|
+
solver?: Solver | string;
|
|
92
|
+
/** Solver options passed to master solves */
|
|
93
|
+
solverOptions?: SolverOptions;
|
|
94
|
+
/** Optional callback invoked on each iteration */
|
|
95
|
+
onIteration?: (info: ColumnGenerationIterationInfo<TColumnMeta>) => void;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Result returned by `solveColumnGeneration`
|
|
99
|
+
*/
|
|
100
|
+
export interface ColumnGenerationResult<TColumnMeta = unknown> {
|
|
101
|
+
/** Final solver status ("Optimal", "Feasible", "Infeasible", etc.) */
|
|
102
|
+
status: SolverStatus;
|
|
103
|
+
/** Objective value of the final solution (MIP objective if finalized, otherwise LP relaxation objective) */
|
|
104
|
+
objectiveValue: number | null;
|
|
105
|
+
/** Optimal objective value of the continuous LP relaxation (theoretical dual bound) */
|
|
106
|
+
relaxationObjectiveValue: number | null;
|
|
107
|
+
/** Total number of column generation iterations performed */
|
|
108
|
+
iterations: number;
|
|
109
|
+
/** Total number of columns dynamically generated and injected into the master */
|
|
110
|
+
columnsAdded: number;
|
|
111
|
+
/** All dynamically generated columns and their associated `Var` handles */
|
|
112
|
+
generatedColumns: Array<{
|
|
113
|
+
variable: Var;
|
|
114
|
+
proposal: ColumnProposal<TColumnMeta>;
|
|
115
|
+
}>;
|
|
116
|
+
/** The master model containing all generated columns and the final solution state */
|
|
117
|
+
master: Model;
|
|
118
|
+
/** Primal variable values of the final solution */
|
|
119
|
+
values: Record<string, number>;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Definition of a Benders cut (optimality cut or feasibility cut) to be added to the master problem.
|
|
123
|
+
*/
|
|
124
|
+
export interface BendersCut {
|
|
125
|
+
/**
|
|
126
|
+
* Cut classification:
|
|
127
|
+
* - "optimality": Benders optimality cut bounding the master auxiliary objective variable theta
|
|
128
|
+
* - "feasibility": Benders feasibility cut cutting off an infeasible subproblem candidate
|
|
129
|
+
*/
|
|
130
|
+
kind: "optimality" | "feasibility";
|
|
131
|
+
/** The linear constraint expression representing the cut */
|
|
132
|
+
constraint: Constraint | ParsedExpr;
|
|
133
|
+
/** Optional cut constraint name */
|
|
134
|
+
name?: string;
|
|
135
|
+
/** Optional subproblem objective or diagnostic value */
|
|
136
|
+
subproblemObjective?: number;
|
|
137
|
+
/** Optional dual values used to generate the cut */
|
|
138
|
+
dualValues?: Record<string, number>;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Context provided to the Benders subproblem callback on each iteration.
|
|
142
|
+
*/
|
|
143
|
+
export interface BendersSubproblemContext {
|
|
144
|
+
/** 1-based iteration index */
|
|
145
|
+
iteration: number;
|
|
146
|
+
/** Primal values of master decision variables from the current master solution */
|
|
147
|
+
masterValues: Record<string, number>;
|
|
148
|
+
/** Helper to look up the primal value of a master variable */
|
|
149
|
+
getMasterValue: (v: Var | string) => number;
|
|
150
|
+
/** Current master objective value */
|
|
151
|
+
masterObjective: number | null;
|
|
152
|
+
/** Current best lower bound */
|
|
153
|
+
lowerBound?: number;
|
|
154
|
+
/** Current best upper bound */
|
|
155
|
+
upperBound?: number;
|
|
156
|
+
/** Master model instance */
|
|
157
|
+
master: Model;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Progress event emitted on each Benders decomposition iteration.
|
|
161
|
+
*/
|
|
162
|
+
export interface BendersIterationInfo {
|
|
163
|
+
iteration: number;
|
|
164
|
+
masterObjective: number | null;
|
|
165
|
+
lowerBound?: number;
|
|
166
|
+
upperBound?: number;
|
|
167
|
+
cutsAdded: number;
|
|
168
|
+
proposedCuts: BendersCut[];
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Result returned by a Benders subproblem callback.
|
|
172
|
+
* Can be:
|
|
173
|
+
* - A subproblem `Model` (with linking constraints registered via `sub.link(...)`) for automatic Benders cut generation,
|
|
174
|
+
* - Or `BendersCut | BendersCut[] | null | undefined` for manual cut definition.
|
|
175
|
+
*/
|
|
176
|
+
export type BendersSubproblemResult = Model | BendersCut | BendersCut[] | null | undefined;
|
|
177
|
+
/**
|
|
178
|
+
* Options for `solveBenders`
|
|
179
|
+
*/
|
|
180
|
+
export interface BendersOptions {
|
|
181
|
+
/** Master problem model containing master variables (optional when called via `master.solveBenders(...)`) */
|
|
182
|
+
master?: Model;
|
|
183
|
+
/**
|
|
184
|
+
* Subproblem evaluation callback.
|
|
185
|
+
* Evaluates the subproblem given current master decisions.
|
|
186
|
+
* Can return a subproblem `Model` (with linking constraints registered via `sub.link(...)`) for automatic Benders cut generation,
|
|
187
|
+
* or manual `BendersCut | BendersCut[] | null | undefined`.
|
|
188
|
+
*/
|
|
189
|
+
subproblem: (context: BendersSubproblemContext) => Promise<BendersSubproblemResult> | BendersSubproblemResult;
|
|
190
|
+
/**
|
|
191
|
+
* Optional reference to the auxiliary theta variable in the master model.
|
|
192
|
+
* If not provided, WaSHI automatically detects a variable named "theta" / "__benders_theta"
|
|
193
|
+
* or injects an auxiliary continuous theta variable into the master objective.
|
|
194
|
+
*/
|
|
195
|
+
theta?: Var | string;
|
|
196
|
+
/** Maximum number of Benders iterations (default: 100) */
|
|
197
|
+
maxIterations?: number;
|
|
198
|
+
/** Relative optimality gap convergence tolerance `|upper - lower| / (|upper| + 1e-10)` (default: 1e-4) */
|
|
199
|
+
gapTolerance?: number;
|
|
200
|
+
/** Solver name or instance to use for master problem */
|
|
201
|
+
solver?: Solver | string;
|
|
202
|
+
/** Solver options passed to master solves */
|
|
203
|
+
solverOptions?: SolverOptions;
|
|
204
|
+
/** Optional callback invoked on each iteration */
|
|
205
|
+
onIteration?: (info: BendersIterationInfo) => void;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Result returned by `solveBenders`
|
|
209
|
+
*/
|
|
210
|
+
export interface BendersResult {
|
|
211
|
+
/** Final solver status ("Optimal", "Feasible", "Infeasible", etc.) */
|
|
212
|
+
status: SolverStatus;
|
|
213
|
+
/** Final objective value */
|
|
214
|
+
objectiveValue: number | null;
|
|
215
|
+
/** Best lower bound achieved */
|
|
216
|
+
lowerBound?: number;
|
|
217
|
+
/** Best upper bound achieved */
|
|
218
|
+
upperBound?: number;
|
|
219
|
+
/** Final relative optimality gap */
|
|
220
|
+
gap?: number;
|
|
221
|
+
/** Number of iterations performed */
|
|
222
|
+
iterations: number;
|
|
223
|
+
/** Number of Benders cuts added to the master problem */
|
|
224
|
+
cutsAdded: number;
|
|
225
|
+
/** Master model containing all generated cuts and final solution */
|
|
226
|
+
master: Model;
|
|
227
|
+
/** Final primal values of master decision variables */
|
|
228
|
+
values: Record<string, number>;
|
|
229
|
+
}
|
|
230
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/decomposition/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
* Domain-pure algebraic modeling with WebAssembly (HiGHS, Z3, GLPK) and pluggable solvers.
|
|
5
5
|
* Supports LP (Linear Programming), MIP (Mixed-Integer Programming), QP (Quadratic Programming), and SMT.
|
|
6
6
|
*/
|
|
7
|
-
export { Model, type ModelOptions, type BoundsOptions, type BinaryOptions, type IndicatorOptions, type ConstraintItem, type KeyCollection, deriveBigMForLe, deriveBigMForGe, validateUserBigM, buildIndicatorLinearization, validateModelIntegrity, maximize, minimize, type ObjectiveExpr, type ObjectiveSpec, Var, type VarOptions, LinExpr, QuadExpr, type Expr, type DotTerm, type DotVarContainer, type DotCoeffContainer, type QuadTerm, sum, dot, Constraint, BoolVar, BoolExpr, BoolOp, type LogicElement, type LogicInput, and, or, not, implies, xor, parseExpr, parseConstraint, expr, type ParsedExpr, type ExprResolver, generateLpString, buildLpSymbolMaps, isLpExportResult, sanitizeIdentifier, type LpModelData, type LpSymbolMaps, type LpExportResult, validateModelSolution, type SolutionValidationOptions, type ViolationType, type SolutionViolation, type SolutionValidationSummary, type SolutionValidationReport, } from "./modeler/index.js";
|
|
8
|
-
export { normalizeSense, type VarType, type OptimizationSense, type ComparisonSense, type SolverStatus, type TerminationStatus, type SolveProgressEvent, type SolveOptions, type SolverSolution, type CheckResult, } from "./modeler/types.js";
|
|
7
|
+
export { Model, type ModelOptions, type BoundsOptions, type BinaryOptions, type IndicatorOptions, type ConstraintItem, type KeyCollection, deriveBigMForLe, deriveBigMForGe, validateUserBigM, buildIndicatorLinearization, linearizeModelForMip, type LinearizationResult, validateModelIntegrity, maximize, minimize, type ObjectiveExpr, type ObjectiveSpec, Var, type VarOptions, LinExpr, QuadExpr, type Expr, type DotTerm, type DotVarContainer, type DotCoeffContainer, type SumTerm, type SumContainer, type QuadTerm, sum, dot, Constraint, BoolVar, BoolExpr, BoolOp, type LogicElement, type LogicInput, and, or, not, implies, xor, parseExpr, parseConstraint, expr, type ParsedExpr, type ExprResolver, type ExprContainerLeaf, type ExprRecordContainer, type ExprMapperFn, type ExprInterpolation, generateLpString, buildLpSymbolMaps, isLpExportResult, sanitizeIdentifier, type LpModelData, type LpSymbolMaps, type LpExportResult, validateModelSolution, type SolutionValidationOptions, type ViolationType, type SolutionViolation, type SolutionValidationSummary, type SolutionValidationReport, } from "./modeler/index.js";
|
|
8
|
+
export { normalizeSense, type VarType, type OptimizationSense, type ComparisonSense, type SolverStatus, type TerminationStatus, type SolveProgressEvent, type SolveOptions, type SolverSolution, type CheckResult, type ColumnDefinition, } from "./modeler/types.js";
|
|
9
|
+
export { solveColumnGeneration, solveBenders, type ColumnProposal, type PricingContext, type ColumnGenerationIterationInfo, type ColumnGenerationOptions, type ColumnGenerationResult, type BendersCut, type BendersSubproblemContext, type BendersSubproblemResult, type BendersIterationInfo, type BendersOptions, type BendersResult, } from "./decomposition/index.js";
|
|
9
10
|
export { type Solver, type SolverOptions, type SolverResult, type SolverCheckResult, type SolverCapabilities, type SolveModelData, type CheckModelData, type LogicalConstraintItem, HighsSolver, HiGHS, MockSolver, type MockSolverOptions, registerSolver, getSolver, setDefaultSolver, listAvailableSolvers, } from "./modeler/solvers/index.js";
|
|
10
|
-
export { getHighs, solveLpWithHighs, setHighsWasmUrl, getHighsWasmUrl, } from "./modeler/solvers/highs/index.js";
|
|
11
|
+
export { getHighs, solveLpWithHighs, setHighsWasmUrl, getHighsWasmUrl, Highs, type HighsSolutionResult, type HighsSolutionColumn, type HighsSolutionRow, } from "./modeler/solvers/highs/index.js";
|
|
11
12
|
//# 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,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,2BAA2B,EAC3B,sBAAsB,EACtB,QAAQ,EACR,QAAQ,EACR,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,GAAG,EACH,KAAK,UAAU,EACf,OAAO,EACP,QAAQ,EACR,KAAK,IAAI,EACT,KAAK,OAAO,EACZ,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,GAAG,EACH,GAAG,EACH,UAAU,EACV,OAAO,EACP,QAAQ,EACR,MAAM,EACN,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,GAAG,EACH,EAAE,EACF,GAAG,EACH,OAAO,EACP,GAAG,EACH,SAAS,EACT,eAAe,EACf,IAAI,EACJ,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,qBAAqB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,GAC9B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,cAAc,EACd,KAAK,OAAO,EACZ,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,WAAW,
|
|
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,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,2BAA2B,EAC3B,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,sBAAsB,EACtB,QAAQ,EACR,QAAQ,EACR,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,GAAG,EACH,KAAK,UAAU,EACf,OAAO,EACP,QAAQ,EACR,KAAK,IAAI,EACT,KAAK,OAAO,EACZ,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,GAAG,EACH,GAAG,EACH,UAAU,EACV,OAAO,EACP,QAAQ,EACR,MAAM,EACN,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,GAAG,EACH,EAAE,EACF,GAAG,EACH,OAAO,EACP,GAAG,EACH,SAAS,EACT,eAAe,EACf,IAAI,EACJ,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,qBAAqB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,GAC9B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,cAAc,EACd,KAAK,OAAO,EACZ,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,gBAAgB,GACtB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,6BAA6B,EAClC,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,UAAU,EACf,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EACL,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,WAAW,EACX,KAAK,EACL,UAAU,EACV,KAAK,iBAAiB,EACtB,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,KAAK,EACL,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,GACtB,MAAM,kCAAkC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boolean-expr.d.ts","sourceRoot":"","sources":["../../../src/modeler/boolean-expr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI/C,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC;AAE5E,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEjD,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,OAAO,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"boolean-expr.d.ts","sourceRoot":"","sources":["../../../src/modeler/boolean-expr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI/C,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC;AAE5E,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEjD,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,OAAO,GAAG,QAAQ,CAAC;AAmC3D;;;;;GAKG;AACH,8BAAsB,QAAQ;IAC5B,4GAA4G;IACrG,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAEpC;IAED,2GAA2G;IACpG,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAEnC;IAED,gHAAgH;IACzG,OAAO,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAE7C;IAED,6GAA6G;IACtG,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAEpC;IAED,qCAAqC;IAC9B,GAAG,IAAI,MAAM,CAEnB;CACF;AAED;;;;GAIG;AACH,qBAAa,OAAQ,SAAQ,QAAQ;IACnC,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,IAAI,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,OAAO,GAAG,IAAI,CAAQ;IAEpC,YAAY,IAAI,CAAC,EAAE,MAAM,EAIxB;IAED,QAAQ,IAAI,MAAM,CAEjB;CACF;AAED;;GAEG;AACH,qBAAa,MAAO,SAAQ,QAAQ;IAClC,SAAgB,EAAE,EAAE,aAAa,CAAC;IAClC,SAAgB,QAAQ,EAAE,YAAY,EAAE,CAAC;IAEzC,YAAY,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,EAIpD;IAED,QAAQ,IAAI,MAAM,CAKjB;CACF;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,GAAG,CAAC,GAAG,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,CAGlD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,EAAE,CAAC,GAAG,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,CAGjD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,GAAG,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAE5C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,GAAG,MAAM,CAE9E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,GAAG,CAAC,GAAG,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,CAGlD"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ComparisonSense } from "./types.js";
|
|
2
2
|
import type { LinExpr } from "./expression.js";
|
|
3
|
+
import type { Var } from "./variable.js";
|
|
3
4
|
import { BoolOp, type LogicInput } from "./boolean-expr.js";
|
|
4
5
|
/**
|
|
5
6
|
* Represents a linear constraint: lhs (terms) <=, >=, or == rhs (constant)
|
|
@@ -19,6 +20,16 @@ export declare class Constraint {
|
|
|
19
20
|
slack: number | null;
|
|
20
21
|
/** Dual value (shadow price) after solve */
|
|
21
22
|
dual: number | null;
|
|
23
|
+
/**
|
|
24
|
+
* Add or increment the coefficient of a decision variable in this constraint's left-hand side.
|
|
25
|
+
* Triggers model mutation notification if this constraint belongs to a model.
|
|
26
|
+
*/
|
|
27
|
+
addTerm(v: Var, coeff: number): this;
|
|
28
|
+
/**
|
|
29
|
+
* Set or update the coefficient of a decision variable in this constraint's left-hand side.
|
|
30
|
+
* Triggers model mutation notification if this constraint belongs to a model.
|
|
31
|
+
*/
|
|
32
|
+
setTerm(v: Var, coeff: number): this;
|
|
22
33
|
constructor(lhs: LinExpr, sense: ComparisonSense, rhs: number, name?: string);
|
|
23
34
|
get lhs(): LinExpr;
|
|
24
35
|
set lhs(value: LinExpr);
|
|
@@ -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,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAI5D;;GAEG;AACH,qBAAa,UAAU;IACrB,SAAgB,IAAI,EAAG,YAAY,CAAU;IAC7C,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,IAAI,CAAU;IACtB,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,KAAK,CAAS;IACf,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,IAAI,CAAQ;IACjE,8BAA8B;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IACnC,4CAA4C;IACrC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAQ;
|
|
1
|
+
{"version":3,"file":"constraint.d.ts","sourceRoot":"","sources":["../../../src/modeler/constraint.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,16 @@ export declare class LinExpr {
|
|
|
9
9
|
terms: Map<Var, number>;
|
|
10
10
|
constant: number;
|
|
11
11
|
constructor(terms?: Map<Var, number>, constant?: number);
|
|
12
|
+
/**
|
|
13
|
+
* Set or overwrite the coefficient for a variable in this expression.
|
|
14
|
+
* If `coeff === 0`, removes the variable from terms.
|
|
15
|
+
*/
|
|
16
|
+
setTerm(v: Var, coeff: number): this;
|
|
17
|
+
/**
|
|
18
|
+
* Add a coefficient to a variable in this expression (incrementing any existing coefficient).
|
|
19
|
+
* If the resulting coefficient is 0, removes the variable from terms.
|
|
20
|
+
*/
|
|
21
|
+
addTerm(v: Var, coeff: number): this;
|
|
12
22
|
/**
|
|
13
23
|
* Clone this linear expression
|
|
14
24
|
*/
|
|
@@ -69,32 +79,6 @@ export declare class LinExpr {
|
|
|
69
79
|
* Union expression type covering linear and quadratic expressions.
|
|
70
80
|
*/
|
|
71
81
|
export type Expr = LinExpr | QuadExpr;
|
|
72
|
-
/**
|
|
73
|
-
* Sum an `Iterable` of `Var` / `LinExpr` / `number` items, an `Iterable` with a mapping function,
|
|
74
|
-
* or a numeric count `n` with an index mapper `(0 .. n - 1)` into a single `LinExpr`.
|
|
75
|
-
*
|
|
76
|
-
* **Formulation notes**:
|
|
77
|
-
* - Produces a linear expression (`LinExpr`).
|
|
78
|
-
* - Passing comparison `Constraint`s (`<=`, `>=`, `==`) or non-linear `QuadExpr` terms throws an Error
|
|
79
|
-
* (quadratic terms are supported in objectives only via `expr` or `.mul()`).
|
|
80
|
-
*
|
|
81
|
-
* @example
|
|
82
|
-
* ```ts
|
|
83
|
-
* const m = new Model("SumExample");
|
|
84
|
-
* const x = m.continuous(3, { lb: 0, prefix: "x" });
|
|
85
|
-
* const byItem = m.integer(["desk", "chair"] as const, { lb: 0 });
|
|
86
|
-
*
|
|
87
|
-
* // Sum an array or iterable directly
|
|
88
|
-
* m.constraint(expr`${sum(x)} <= 100`, "total_x");
|
|
89
|
-
* m.constraint(expr`${sum(Object.values(byItem))} <= 50`, "total_items");
|
|
90
|
-
*
|
|
91
|
-
* // Sum with a mapper or over a count range (0..2)
|
|
92
|
-
* const weighted = sum(3, (i) => expr`${i + 1} * ${x[i]}`);
|
|
93
|
-
* m.objective(maximize(weighted));
|
|
94
|
-
* ```
|
|
95
|
-
*/
|
|
96
|
-
export declare function sum(count: number, mapFn: (index: number) => LinExpr | QuadExpr | Constraint | Var | number): LinExpr;
|
|
97
|
-
export declare function sum<T = any>(items: Iterable<T>, mapFn?: (item: T, index: number) => LinExpr | QuadExpr | Constraint | Var | number): LinExpr;
|
|
98
82
|
export type DotTerm = Var | LinExpr;
|
|
99
83
|
export type DotVarContainer<R extends string | number = string | number, C extends string | number = string | number> = ReadonlyArray<DotTerm> | {
|
|
100
84
|
readonly [K in R]: DotTerm;
|
|
@@ -132,6 +116,53 @@ type DotRecordShape<T, Leaf, Inner = never> = object & {
|
|
|
132
116
|
readonly [K in keyof T]: Leaf | ReadonlyArray<Leaf> | DotRecordLeafMap<T[K], Leaf> | DotRecordLeafMap<Inner, Leaf>;
|
|
133
117
|
} & NoSymbolKeys<T>;
|
|
134
118
|
type DotContainerArg<T, Leaf, Inner = never> = ReadonlyArray<Leaf> | ReadonlyArray<ReadonlyArray<Leaf>> | ReadonlyArray<DotRecordLeafMap<T[number & keyof T], Leaf>> | DotRecordShape<T, Leaf, Inner>;
|
|
119
|
+
export type SumTerm = Var | LinExpr | number;
|
|
120
|
+
export type SumContainer<R extends string | number = string | number, C extends string | number = string | number> = Iterable<SumTerm> | {
|
|
121
|
+
readonly [K in R]: SumTerm;
|
|
122
|
+
} | Iterable<Iterable<SumTerm>> | Iterable<{
|
|
123
|
+
readonly [K in C]: SumTerm;
|
|
124
|
+
}> | {
|
|
125
|
+
readonly [K in R]: Iterable<SumTerm>;
|
|
126
|
+
} | {
|
|
127
|
+
readonly [K in R]: {
|
|
128
|
+
readonly [L in C]: SumTerm;
|
|
129
|
+
};
|
|
130
|
+
};
|
|
131
|
+
type SumRecordLeaf = LinExpr | QuadExpr | Constraint | Var | number;
|
|
132
|
+
type SumRecordShape<T, Inner = never> = object & {
|
|
133
|
+
readonly [K in keyof T]: SumRecordLeaf | Iterable<SumRecordLeaf> | DotRecordLeafMap<T[K], SumRecordLeaf> | DotRecordLeafMap<Inner, SumRecordLeaf>;
|
|
134
|
+
} & NoSymbolKeys<T>;
|
|
135
|
+
/**
|
|
136
|
+
* Sum a 1D or 2D `Iterable` / `Array` / plain `Record` of `Var` / `LinExpr` / `number` items,
|
|
137
|
+
* an `Iterable` or `Record` with a mapping function, or a numeric count `n` with an index mapper `(0 .. n - 1)`
|
|
138
|
+
* into a single `LinExpr`.
|
|
139
|
+
*
|
|
140
|
+
* **Formulation notes**:
|
|
141
|
+
* - Produces a linear expression (`LinExpr`).
|
|
142
|
+
* - Accepts 1D/2D `Record` containers directly without `Object.values()`.
|
|
143
|
+
* - Passing comparison `Constraint`s (`<=`, `>=`, `==`) or non-linear `QuadExpr` terms throws an Error
|
|
144
|
+
* (quadratic terms are supported in objectives only via `expr` or `.mul()`).
|
|
145
|
+
*
|
|
146
|
+
* @example
|
|
147
|
+
* ```ts
|
|
148
|
+
* const m = new Model("SumExample");
|
|
149
|
+
* const x = m.continuous(3, { lb: 0, prefix: "x" });
|
|
150
|
+
* const byItem = m.integer(["desk", "chair"] as const, { lb: 0 });
|
|
151
|
+
*
|
|
152
|
+
* // Sum an array, iterable, or Record directly (or inside expr`sum(...)`)
|
|
153
|
+
* m.constraint(expr`sum(${x}) <= 100`, "total_x");
|
|
154
|
+
* m.constraint(expr`sum(${byItem}) <= 50`, "total_items");
|
|
155
|
+
*
|
|
156
|
+
* // Sum with a mapper or over a count range (0..2)
|
|
157
|
+
* const weighted = sum(3, (i) => expr`${i + 1} * ${x[i]}`);
|
|
158
|
+
* m.objective(maximize(weighted));
|
|
159
|
+
* ```
|
|
160
|
+
*/
|
|
161
|
+
export declare function sum(count: number, mapFn: (index: number) => LinExpr | QuadExpr | Constraint | Var | number): LinExpr;
|
|
162
|
+
export declare function sum<T = any>(items: Iterable<T>, mapFn?: (item: T, index: number) => LinExpr | QuadExpr | Constraint | Var | number): LinExpr;
|
|
163
|
+
export declare function sum<T extends object>(record: T & NoSymbolKeys<T>, mapFn: (value: T[keyof T], index: number) => LinExpr | QuadExpr | Constraint | Var | number): LinExpr;
|
|
164
|
+
export declare function sum<T = SumContainer, TI = never>(container: T & (Record<any, TI> | unknown) & SumRecordShape<T, TI>): LinExpr;
|
|
165
|
+
export declare function sum(container: SumContainer<any, any>): LinExpr;
|
|
135
166
|
/**
|
|
136
167
|
* Compute the inner product (linear combination `LinExpr`) of numeric coefficients and
|
|
137
168
|
* `Var` / `LinExpr` containers across 1D arrays, 2D matrices (`number[][]` / `Var[][]`),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../../src/modeler/expression.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,UAAU,EAAgB,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C;;GAEG;AACH,qBAAa,OAAO;IAClB,SAAgB,IAAI,EAAG,QAAQ,CAAU;IAClC,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;IAC5C,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,GAAG,GAAG,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;IAsC/E;;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,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,GAAG,GAAG,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;IAgB/E;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC;IACtB,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IACxC,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC/B,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;IA6DjF;;OAEG;IACH,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAG9D;IAED;;OAEG;IACH,GAAG,IAAI,OAAO,CAEb;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,GAAG,IAAI,CASzB;IAED;;OAEG;IACH,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAEjF;IAED;;OAEG;IACH,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAEjF;IAED;;OAEG;IACH,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAEjF;IAED,OAAO,CAAC,YAAY;IA+Cb,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,CAkBjB;CACF;AAED;;GAEG;AACH,MAAM,MAAM,IAAI,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEtC
|
|
1
|
+
{"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../../src/modeler/expression.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
export { Model, type ModelOptions, type BoundsOptions, type BinaryOptions, type IndicatorOptions, type ConstraintItem, type KeyCollection, } from "./model.js";
|
|
2
2
|
export { deriveBigMForLe, deriveBigMForGe, validateUserBigM, buildIndicatorLinearization } from "./big-m.js";
|
|
3
|
+
export { linearizeModelForMip, type LinearizationResult } from "./linearizer.js";
|
|
3
4
|
export { validateModelIntegrity } from "./validation.js";
|
|
4
5
|
export { maximize, minimize, type ObjectiveExpr, type ObjectiveSpec, } from "./objective.js";
|
|
5
6
|
export { Var, type VarOptions } from "./variable.js";
|
|
6
|
-
export { LinExpr, type Expr, type DotTerm, type DotVarContainer, type DotCoeffContainer, sum, dot, } from "./expression.js";
|
|
7
|
+
export { LinExpr, type Expr, type DotTerm, type DotVarContainer, type DotCoeffContainer, type SumTerm, type SumContainer, sum, dot, } from "./expression.js";
|
|
7
8
|
export { QuadExpr, type QuadTerm } from "./quad-expr.js";
|
|
8
9
|
export { Constraint } from "./constraint.js";
|
|
9
10
|
export { BoolVar, BoolExpr, BoolOp, type LogicElement, type LogicInput, and, or, not, implies, xor, } from "./boolean-expr.js";
|
|
10
|
-
export { parseExpr, parseConstraint, expr, type ParsedExpr, type ExprResolver, } from "./parser.js";
|
|
11
|
+
export { parseExpr, parseConstraint, expr, type ParsedExpr, type ExprResolver, type ExprContainerLeaf, type ExprRecordContainer, type ExprMapperFn, type ExprInterpolation, } from "./parser.js";
|
|
11
12
|
export { generateLpString, buildLpSymbolMaps, isLpExportResult, sanitizeIdentifier, type LpModelData, type LpSymbolMaps, type LpExportResult, } from "./lp-writer.js";
|
|
12
13
|
export { validateModelSolution, type SolutionValidationOptions, type ViolationType, type SolutionViolation, type SolutionValidationSummary, type SolutionValidationReport, } from "./solution-validator.js";
|
|
13
|
-
export type { VarType, OptimizationSense, ComparisonSense, SolverStatus, TerminationStatus, SolveProgressEvent, SolveOptions, SolverSolution, CheckResult, } from "./types.js";
|
|
14
|
+
export type { VarType, OptimizationSense, ComparisonSense, SolverStatus, TerminationStatus, SolveProgressEvent, SolveOptions, SolverSolution, CheckResult, ColumnDefinition, } from "./types.js";
|
|
14
15
|
export * from "./solvers/index.js";
|
|
15
16
|
export { getHighs, solveLpWithHighs, setHighsWasmUrl, getHighsWasmUrl } from "./solvers/highs/index.js";
|
|
16
17
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modeler/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAC7G,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,KAAK,aAAa,EAClB,KAAK,aAAa,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EACL,OAAO,EACP,KAAK,IAAI,EACT,KAAK,OAAO,EACZ,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,GAAG,EACH,GAAG,GACJ,MAAM,iBAAiB,CAAC;AACzB,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,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,GAAG,EACH,EAAE,EACF,GAAG,EACH,OAAO,EACP,GAAG,GACJ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,SAAS,EACT,eAAe,EACf,IAAI,EACJ,KAAK,UAAU,EACf,KAAK,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modeler/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAC7G,OAAO,EAAE,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,KAAK,aAAa,EAClB,KAAK,aAAa,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EACL,OAAO,EACP,KAAK,IAAI,EACT,KAAK,OAAO,EACZ,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,GAAG,EACH,GAAG,GACJ,MAAM,iBAAiB,CAAC;AACzB,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,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,GAAG,EACH,EAAE,EACF,GAAG,EACH,OAAO,EACP,GAAG,GACJ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,SAAS,EACT,eAAe,EACf,IAAI,EACJ,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,iBAAiB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,cAAc,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,qBAAqB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,GAC9B,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EACV,OAAO,EACP,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,WAAW,EACX,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAGpB,cAAc,oBAAoB,CAAC;AAGnC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Constraint } from "./constraint.js";
|
|
2
|
+
import { Var } from "./variable.js";
|
|
3
|
+
import { BoolVar } from "./boolean-expr.js";
|
|
4
|
+
import type { LogicalConstraintItem } from "./solvers/types.js";
|
|
5
|
+
export interface LinearizationResult {
|
|
6
|
+
variables: Var[];
|
|
7
|
+
constraints: Constraint[];
|
|
8
|
+
boolVarToBinary: Map<BoolVar, Var>;
|
|
9
|
+
constraintToOriginalName: Map<Constraint, string>;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Linearizes logical constraints (BoolVar, BoolOp) into MIP binary variables and linear constraints.
|
|
13
|
+
*/
|
|
14
|
+
export declare function linearizeModelForMip(baseVariables: Var[], boolVars: BoolVar[], baseConstraints: Constraint[], logicalConstraints: LogicalConstraintItem[]): LinearizationResult;
|
|
15
|
+
//# sourceMappingURL=linearizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linearizer.d.ts","sourceRoot":"","sources":["../../../src/modeler/linearizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,OAAO,EAA6B,MAAM,mBAAmB,CAAC;AAEvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAMhE,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,GAAG,EAAE,CAAC;IACjB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,eAAe,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACnC,wBAAwB,EAAE,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;CACnD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,GAAG,EAAE,EACpB,QAAQ,EAAE,OAAO,EAAE,EACnB,eAAe,EAAE,UAAU,EAAE,EAC7B,kBAAkB,EAAE,qBAAqB,EAAE,GAC1C,mBAAmB,CAyZrB"}
|
|
@@ -51,5 +51,7 @@ export declare function buildLpSymbolMaps(modelData: Pick<LpModelData, "variable
|
|
|
51
51
|
/**
|
|
52
52
|
* Convert a linear or quadratic model to standard CPLEX LP format string
|
|
53
53
|
*/
|
|
54
|
-
export declare function generateLpString(modelData: LpModelData
|
|
54
|
+
export declare function generateLpString(modelData: LpModelData, options?: {
|
|
55
|
+
relax?: boolean;
|
|
56
|
+
}): LpExportResult;
|
|
55
57
|
//# sourceMappingURL=lp-writer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lp-writer.d.ts","sourceRoot":"","sources":["../../../src/modeler/lp-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,iBAAiB,CAAC;IACzB,SAAS,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC9B,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,SAAS,EAAE,GAAG,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,wDAAwD;IACxD,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,4DAA4D;IAC5D,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC5B,+DAA+D;IAC/D,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC1C,mEAAmE;IACnE,gBAAgB,EAAE,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC1C,iCAAiC;IACjC,YAAY,EAAE,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACtC,0DAA0D;IAC1D,QAAQ,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,uDAAuD;IACvD,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC1C,uDAAuD;IACvD,SAAS,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC7B,8DAA8D;IAC9D,YAAY,CAAC,EAAE,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;CACxC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAQxE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,cAAc,GAAE,MAAY,EAC5B,EAAE,GAAE,MAAU,GACb,MAAM,CAWR;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,aAAa,CAAC,GACxD,YAAY,CAiDd;AAED;;GAEG;AACH,wBAAgB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"lp-writer.d.ts","sourceRoot":"","sources":["../../../src/modeler/lp-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,iBAAiB,CAAC;IACzB,SAAS,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC9B,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,SAAS,EAAE,GAAG,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,wDAAwD;IACxD,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,4DAA4D;IAC5D,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC5B,+DAA+D;IAC/D,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC1C,mEAAmE;IACnE,gBAAgB,EAAE,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC1C,iCAAiC;IACjC,YAAY,EAAE,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACtC,0DAA0D;IAC1D,QAAQ,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,uDAAuD;IACvD,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC1C,uDAAuD;IACvD,SAAS,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC7B,8DAA8D;IAC9D,YAAY,CAAC,EAAE,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;CACxC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAQxE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,cAAc,GAAE,MAAY,EAC5B,EAAE,GAAE,MAAU,GACb,MAAM,CAWR;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,aAAa,CAAC,GACxD,YAAY,CAiDd;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,WAAW,EACtB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5B,cAAc,CA8JhB"}
|