Nexma

Solvers

The five families

Solvers

A solver is the math engine Jax invokes when a question crosses out of "look it up" into "compute the answer." Nexma ships five solver families covering most spatial optimization work. Jax dispatches automatically based on the problem shape; no manual selection is needed.

The five families

  • Graph. Shortest-path, max-flow, minimum spanning tree, betweenness, community

detection. Used for routing, hierarchy layout, and reachability analysis.

  • Mixed-integer programming (MIP). Discrete decisions under linear constraints.

Used for facility location, assignment, and cabinet placement.

  • Constraint programming (CP). Combinatorial scheduling with rich constraint

semantics. Used for crew scheduling, deadline rollups, and resource leveling.

  • Vehicle routing (VRP). Capacitated routing with time windows, pickups,

deliveries, and driver-hour rules. Used for logistics, field-crew routing, and account visit planning.

  • Simulation. Time-stepped or event-driven simulation. Used for pressure-drop

validation, agent-based pedestrian flow, and prediction tasks.

Where they run

Solvers run in two places:

  • In the browser. Sub-second latency for problems that fit a single tab. The

user feels Jax responding instantly.

  • In the cloud. A managed solver service handles larger problems and any

family that does not fit comfortably in the browser.

The dispatcher chooses location automatically. Both paths return identical result shapes; the calling code does not branch on location.

Self-correction

If a solver returns a result that violates a domain constraint — a closure that exceeds the optical budget, a route that misses a time window, a transformer that exceeds thermal capacity — Jax detects the violation, reformulates the problem, and re-runs. The loop is bounded; after a small number of attempts Jax surfaces the problem to the user with a plain-language explanation.

This is the difference between "the solver returned a number" and "the design is correct." Nexma optimizes for the latter.

When Jax does not call a solver

Many questions do not need optimization. "How many homes are in this polygon?" is a read. "What is the cable length between these two closures?" is geometry. "What's the splitter ratio at this cabinet?" is a property lookup. Jax uses the right tool for each — Read, Run (for deterministic geometry), or Solve (for optimization).

Extending

New constraints and objective functions are added through the agent skill — a new constraint becomes a new term in the solver formulation. The dispatcher and solver service do not need to change.