Skip to content

Catalog & where to start

Interactive demo

New here? Open the mobile demo hub: explore the representation (status quo — a clickable typed graph of a real catalog formulation) or try the model configurator (vision — compose a model and export it as text, PuLP/Gurobi or LaTeX).

Catalog

ID Family What it demonstrates
lp_1_1_fixed_sequence LP Fixed-sequence retiming with headway and earliest-departure constraints, makespan-style objective.
lp_1_5_soft_regularity LP Soft constraints with paired positive/negative slack variables and a weighted-sum objective.
mip_2_1_big_m MILP Pairwise ordering disjunction encoded with big-M; binary indicators with ne_other and ordered_pair quantifier restrictions.
mip_2_4_time_indexed MILP Time-indexed assignment with set-packing and capacity constraints; multi-index aggregation.
mip_2_8_pesp MILP PESP cyclic timetabling with integer wrap variables and modulo bindings.
multi_obj_lateness_energy MILP First-class objective with explicit weighted-sum combination.
objective_lex_priority LP Lexicographic objective combination.
objective_abs_deviation LP Absolute-value operator on objective terms.

The catalog is in active expansion. Open a new-formulation issue to propose additions; see add-a-formulation.

Where to start

  1. Data model — the JSON schema and pydantic types.
  2. Views — schema, hybrid, ground, and when to use each.
  3. Metrics — what is computed and what it tells you.
  4. Add a formulation — contributing checklist.
  5. Design context — why the library exists and the choices that shape it.
  6. Extraction report — provenance from the source repo.

Architecture decisions

ADRs live in adr/. Each significant choice gets one. See ADR-0001 for the build-tool choice, ADR-0002 for the internal graph type, ADR-0003 for the license choice, and ADR-0004 for the schema versioning policy.