WeYala ← Tools
Saved on this device

Solver

problem_spec v1.5

Say what has to be true, and what you want the most of. Declare the choices (variables), the rules they must obey (constraints) and the thing to push up or down (the objective). Everything you type is checked here, against the grammar the solver actually accepts — an out-of-grammar model is refused on this page rather than shipped and rejected later. Nothing is loaded for you; the page starts empty.

empty Nothing modeled yet.

Variables

true/false is a yes/no choice (bool). whole number (int) needs a lower and an upper bound — the solver will not accept an unbounded one.

Intervals

A block of work with a size and a window its start may fall in. Each one also registers two whole-number variables you can use anywhere — name.start and name.end — so “finish before” and “makespan” are ordinary linear constraints.

Constraints

Only these seven kinds exist. The grammar is a whitelist on purpose: anything outside it is refused rather than quietly reinterpreted.

Objective

Solve

See the problem_spec this page would send

  

What this page will not do. It will not invent a model, load one for you, or soften a fault: the check below is a port of the same whitelist the solver runs, so a model this page calls good is one the solver parses. It will not call a result optimal unless the run proved it, and it always shows the independent re-check that a separate piece of code — not the solver — ran over the returned answer.