cpsat-js 1.2.0 → 1.3.1
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.md +37 -0
- package/dist/proto.d.ts +16 -0
- package/dist/proto.d.ts.map +1 -0
- package/dist/proto.js +14 -0
- package/dist/proto.js.map +1 -0
- package/dist/solver/cp-solver.d.ts +16 -0
- package/dist/solver/cp-solver.d.ts.map +1 -1
- package/dist/solver/cp-solver.js +3 -0
- package/dist/solver/cp-solver.js.map +1 -1
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -211,6 +211,26 @@ Expression building methods:
|
|
|
211
211
|
- `onSolution?: (solution: CpSolverSolution) => void` — called for each improving
|
|
212
212
|
solution found. Observational only: the return value is ignored, and nothing here can
|
|
213
213
|
steer or stop the search. Bound it with `maxTimeInSeconds`.
|
|
214
|
+
- `enumerateAllSolutions?: boolean` — report *every* solution rather than stopping at the
|
|
215
|
+
first. **Only meaningful with no objective:** CP-SAT enumerates only when there is
|
|
216
|
+
nothing to optimise, so with a `minimize`/`maximize` in the model this does nothing and
|
|
217
|
+
you get improving solutions as usual. Also disables the presolve reductions that can
|
|
218
|
+
remove feasible solutions.
|
|
219
|
+
|
|
220
|
+
Paired with `onSolution`, this is how you stream a complete solution set as the search
|
|
221
|
+
finds it. There is no objective, so there is no ordering — the solutions arrive in
|
|
222
|
+
whatever order the search happens on, and OR-Tools warns against reading anything into
|
|
223
|
+
that beyond completeness. If you want the stream to be interesting, constrain the model
|
|
224
|
+
so that every solution is one you would want to see.
|
|
225
|
+
|
|
226
|
+
```ts
|
|
227
|
+
// Every way to pick two of three, as they are found.
|
|
228
|
+
solver.solve(model, {
|
|
229
|
+
numWorkers: 1,
|
|
230
|
+
enumerateAllSolutions: true,
|
|
231
|
+
onSolution: (s) => console.log(bits.map((b) => s.value(b)).join('')),
|
|
232
|
+
});
|
|
233
|
+
```
|
|
214
234
|
|
|
215
235
|
#### When `onSolution` fires
|
|
216
236
|
|
|
@@ -255,6 +275,23 @@ What `onSolution` receives: everything `CpSolverResult` has, including `value()`
|
|
|
255
275
|
The shape is deliberately the same as a final result, so an incumbent and an answer can
|
|
256
276
|
be read by the same code.
|
|
257
277
|
|
|
278
|
+
### `cpsat-js/proto`
|
|
279
|
+
|
|
280
|
+
The protobuf boundary, for solving a model somewhere other than this WASM — native
|
|
281
|
+
OR-Tools reads the same `CpModelProto` bytes:
|
|
282
|
+
|
|
283
|
+
```ts
|
|
284
|
+
import { toBinary, fromBinary, CpModelProtoSchema, CpSolverResponseSchema } from 'cpsat-js/proto';
|
|
285
|
+
|
|
286
|
+
const bytes = toBinary(CpModelProtoSchema, model.toProto());
|
|
287
|
+
// ...solve `bytes` elsewhere, get response bytes back...
|
|
288
|
+
const response = fromBinary(CpSolverResponseSchema, responseBytes);
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
Exports `CpModelProtoSchema`, `CpSolverResponseSchema` and `SatParametersSchema`, with
|
|
292
|
+
`create`/`toBinary`/`fromBinary` re-exported from `@bufbuild/protobuf` so encoding uses the
|
|
293
|
+
same runtime the schemas were generated against.
|
|
294
|
+
|
|
258
295
|
## Architecture
|
|
259
296
|
|
|
260
297
|
- **TypeScript wrapper** builds a `CpModelProto` via a fluent API
|
package/dist/proto.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The protobuf boundary, for solving a model somewhere other than this WASM —
|
|
3
|
+
* native OR-Tools, say, which reads the same CpModelProto bytes.
|
|
4
|
+
*
|
|
5
|
+
* import { toBinary, CpModelProtoSchema } from 'cpsat-js/proto';
|
|
6
|
+
* const bytes = toBinary(CpModelProtoSchema, model.toProto());
|
|
7
|
+
*
|
|
8
|
+
* The protobuf runtime is re-exported with the schemas so a caller encodes with
|
|
9
|
+
* the same @bufbuild/protobuf instance the schemas were generated against.
|
|
10
|
+
*/
|
|
11
|
+
export { create, toBinary, fromBinary } from '@bufbuild/protobuf';
|
|
12
|
+
export { CpModelProtoSchema, CpSolverResponseSchema } from './generated/cp_model_pb.js';
|
|
13
|
+
export type { CpModelProto, CpSolverResponse } from './generated/cp_model_pb.js';
|
|
14
|
+
export { SatParametersSchema } from './generated/sat_parameters_pb.js';
|
|
15
|
+
export type { SatParameters } from './generated/sat_parameters_pb.js';
|
|
16
|
+
//# sourceMappingURL=proto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proto.d.ts","sourceRoot":"","sources":["../src/proto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACxF,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,YAAY,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC"}
|
package/dist/proto.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The protobuf boundary, for solving a model somewhere other than this WASM —
|
|
3
|
+
* native OR-Tools, say, which reads the same CpModelProto bytes.
|
|
4
|
+
*
|
|
5
|
+
* import { toBinary, CpModelProtoSchema } from 'cpsat-js/proto';
|
|
6
|
+
* const bytes = toBinary(CpModelProtoSchema, model.toProto());
|
|
7
|
+
*
|
|
8
|
+
* The protobuf runtime is re-exported with the schemas so a caller encodes with
|
|
9
|
+
* the same @bufbuild/protobuf instance the schemas were generated against.
|
|
10
|
+
*/
|
|
11
|
+
export { create, toBinary, fromBinary } from '@bufbuild/protobuf';
|
|
12
|
+
export { CpModelProtoSchema, CpSolverResponseSchema } from './generated/cp_model_pb.js';
|
|
13
|
+
export { SatParametersSchema } from './generated/sat_parameters_pb.js';
|
|
14
|
+
//# sourceMappingURL=proto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proto.js","sourceRoot":"","sources":["../src/proto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAExF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC"}
|
|
@@ -41,6 +41,22 @@ export interface SolverParams {
|
|
|
41
41
|
* than 1 on real models. Use 1 or >= 6, never in between.
|
|
42
42
|
*/
|
|
43
43
|
numWorkers?: number;
|
|
44
|
+
/**
|
|
45
|
+
* Report every solution rather than stopping at the first.
|
|
46
|
+
*
|
|
47
|
+
* **Only meaningful on a model with no objective.** CP-SAT's own wording is "whether
|
|
48
|
+
* we enumerate all solutions of a problem without objective"; with an objective the
|
|
49
|
+
* search reports improving solutions instead, and this does nothing for you.
|
|
50
|
+
*
|
|
51
|
+
* Combined with `onSolution` this is what streams a complete solution set as the
|
|
52
|
+
* search finds it. The solutions arrive in whatever order the search happens on —
|
|
53
|
+
* there is no objective, so there is no ordering — and OR-Tools warns against reading
|
|
54
|
+
* anything into it beyond completeness.
|
|
55
|
+
*
|
|
56
|
+
* Setting this also disables the presolve reductions that can remove feasible
|
|
57
|
+
* solutions, which is the same effect as `keep_all_feasible_solutions_in_presolve`.
|
|
58
|
+
*/
|
|
59
|
+
enumerateAllSolutions?: boolean;
|
|
44
60
|
/**
|
|
45
61
|
* Called for each improving solution the search finds.
|
|
46
62
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cp-solver.d.ts","sourceRoot":"","sources":["../../src/solver/cp-solver.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,cAAc,EACd,KAAK,gBAAgB,EACtB,MAAM,6BAA6B,CAAC;AAIrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,MAAM,WAAW,eAAe;IAC9B,+CAA+C;IAC/C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACvC;AAED,UAAU,WAAW;IACnB,MAAM,CACJ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,MAAM,CAAC;IACV,eAAe,IAAI,MAAM,CAAC;IAC1B,YAAY,IAAI,IAAI,CAAC;IACrB,eAAe,IAAI,MAAM,CAAC;IAC1B,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACrC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACrC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,UAAU,CAAC;IACnB,mFAAmF;IACnF,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACjD;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AAEtF;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AAKzF,uFAAuF;AACvF,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,CAGzE;AAED,MAAM,WAAW,YAAY;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;;;;;;;;;OAgBG;IACH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACnD;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,cAAc,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,yBAAyB;IACzB,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,gFAAgF;IAChF,IAAI,EAAE,OAAO,CAAC;CACf;AAgBD;;;;;;GAMG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAc;IAE5B,OAAO;WAIM,MAAM,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;IAajE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,cAAc;
|
|
1
|
+
{"version":3,"file":"cp-solver.d.ts","sourceRoot":"","sources":["../../src/solver/cp-solver.ts"],"names":[],"mappings":"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"}
|
package/dist/solver/cp-solver.js
CHANGED
|
@@ -58,6 +58,9 @@ export class CpSolver {
|
|
|
58
58
|
if (params?.numWorkers !== undefined) {
|
|
59
59
|
satParams.numWorkers = params.numWorkers;
|
|
60
60
|
}
|
|
61
|
+
if (params?.enumerateAllSolutions !== undefined) {
|
|
62
|
+
satParams.enumerateAllSolutions = params.enumerateAllSolutions;
|
|
63
|
+
}
|
|
61
64
|
// The portable build has no threads. Clamp to 1 rather than to some lower count:
|
|
62
65
|
// anything in 2..5 selects a degraded portfolio and is slower than a single worker.
|
|
63
66
|
if (!glueIsThreaded) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cp-solver.js","sourceRoot":"","sources":["../../src/solver/cp-solver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,GAEf,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,mBAAmB,GACpB,MAAM,mCAAmC,CAAC;AAI3C,OAAO,EAAE,cAAc,EAAE,CAAC;AAuC1B,IAAI,UAAkC,CAAC;AACvC,IAAI,cAAc,GAAG,KAAK,CAAC;AAE3B,uFAAuF;AACvF,MAAM,UAAU,aAAa,CAAC,MAAkB,EAAE,QAAiB;IACjE,UAAU,GAAG,MAAM,CAAC;IACpB,cAAc,GAAG,QAAQ,CAAC;AAC5B,CAAC;
|
|
1
|
+
{"version":3,"file":"cp-solver.js","sourceRoot":"","sources":["../../src/solver/cp-solver.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cpsat-js",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.1",
|
|
4
4
|
"description": "WebAssembly port of Google OR-Tools CP-SAT constraint programming solver",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.portable.js",
|
|
@@ -19,6 +19,10 @@
|
|
|
19
19
|
"./portable": {
|
|
20
20
|
"types": "./dist/index.d.ts",
|
|
21
21
|
"default": "./dist/index.portable.js"
|
|
22
|
+
},
|
|
23
|
+
"./proto": {
|
|
24
|
+
"types": "./dist/proto.d.ts",
|
|
25
|
+
"default": "./dist/proto.js"
|
|
22
26
|
}
|
|
23
27
|
},
|
|
24
28
|
"files": [
|