Describe feasible assignments
Each variable needs a finite domain. Constraints can express comparisons, all-different and sums. Missing domains and unsupported operators are rejected instead of guessed.
constraints: {"variables":{"x":[1,2,3]},"constraints":[{"op":"gt","left":{"var":"x"},"right":1}]}Add an objective
A linear objective assigns a numeric weight to each relevant numeric variable. The solver uses bounds to prune branches that cannot improve the current candidate.
optimize: {"variables":{"x":[0,1,2,3],"y":[0,1,2,3]},"constraints":[{"op":"sum","vars":["x","y"],"equals":3}],"objective":{"direction":"max","weights":{"x":2,"y":1}}}Interpret completion
A complete search can establish optimality for the supplied finite model. A limited search reports its best found assignment without a proof of optimality. Numeric objectives use floating-point arithmetic; the optimizer is not an unrestricted mixed-integer solver.
Read the methods and limitations or try the examples in the workspace.