JOpt.TourOptimizer feature atlas

Illustration on a dark street grid: six glowing tiles with icons for routes, time, search, a shield with a check mark, a bar chart and a puzzle piece, joined by dashed lines to a central tile with a ring

This page describes the features of JOpt.TourOptimizer by the type of operational problem they solve: feasibility under complex constraints, speed and scalability, explainability and acceptance, incremental re-optimization and extensibility. It is written for readers who want an overview before they read a feature guide, and each section links the pages that explain its features. The feature list gives the same features as tables, with the example level of each.

The three example levels with sample topics: basic for onboarding, advanced for modeling and production, expert for customization

What JOpt.TourOptimizer is built for

JOpt.TourOptimizer targets planning problems that go beyond the shortest path. Real deployments must handle:

  • heterogeneous fleets and skill matrices,
  • time windows, service times and multi-day operations,
  • pickup and delivery, reloading and load-dependent feasibility,
  • customer-specific policies that must be explainable and stable,
  • incremental changes while the plan is already in motion,
  • and performance constraints ranging from an interactive UI to a nightly batch.

JOpt.TourOptimizer is an optimization platform shaped by customer scenarios across logistics, field service, manufacturing, and dispatch operations.

Core modeling primitives

Nodes: the work to be scheduled

  • Geo nodes (latitude and longitude) and time-window aware nodes
  • Event nodes (tasks without a location that take time but need no travel)
  • Optional nodes (the optimizer decides whether to visit them)
  • Pillar / captured nodes (time windows as hard constraints, kept by the architecture)

Documentation:

Resources: the actors that perform the work

  • Working hours, multi-day and multi-shift planning
  • Per-resource capabilities and constraints
  • Route start and termination (open and closed routes)

Documentation:

  • Basic elements: the CapacityResource and its parameters
  • Resources: the resource settings, the cost model and the builder pattern

Time modeling and schedule realism

Time windows, arrival logic and timeline control

  • First and last node importance (soft steering of the node that starts or ends a route)
  • Wait-on-early-arrival behavior, with a variant for the first node of a route
  • Include visit duration (the arrival must fall within the time window, the visit may end after it) and joint visit duration (less service time for nodes at the same location that are visited one after the other)
  • Overnight stay (multi-day continuity)

Documentation:

Flexible start time: FlexTime and StartReductionTime

  • FlexTime: the route start can be delayed to avoid idle time
  • StartReductionTime: the route can start before the working hours (often for driving only) to reach early openings

Documentation:

Constraints and feasibility: hard rules by architecture

Hard constraints are fulfilled by architecture, not by a very high cost. Costs are for optimization within the feasible space; feasibility is modeled structurally.

Hard constraint patterns

  • Pillar / captured nodes (time windows that must hold)
  • Relations (same route, different route, same visitor, time-window relations)
  • Territory constraints (zone codes, zone number constraints), hard or soft
  • Resource qualification constraints (types and skills, expertise levels), hard or soft

Zone crossing penalization belongs to the costs: it adds a cost when a route crosses from one zone into another.

Documentation:

Cost models and optimization objectives

The cost that JOpt minimizes is made of:

  • weighted cost components (distance, time, lateness, overtime and others),
  • optionally CO2 emissions, as a weighted part of the cost.

Custom cost convergence stops a run when a chosen metric stays unchanged for a set number of progress updates (stop when your KPI stabilizes). It can run final actions at that point, such as a final post-step or a snapshot export.

Documentation:

Skills, qualifications and resource matching

Type and skill constraints (with and without expertise)

  • Mandatory vs preferred assignments (binding resources)
  • Banned vs unpreferred assignments (excluding resources)
  • Skill types with expertise levels
  • BitType: skill matching on bitsets, for many skills and frequent eligibility checks

Documentation:

Pickup and delivery (PND) and stateful routing

The PND feature group covers:

  • pickup and delivery pairing and precedence logic,
  • capacity and load factors (including flexible loads),
  • timed loads and time-dependent requirements,
  • reporting and audit extraction for PND flows,
  • manufacturing and logistics patterns (request and supply, a bakery chain, mixed load and unload),
  • optional reload and unload nodes as part of feasibility and cost.

Documentation:

Clustering construction and large-scale problem decomposition

Clustering during construction builds a feasible or near-feasible starting solution quickly, which helps the later optimization phases converge on large instances.

Capabilities include:

  • city-to-city clustering,
  • inner-city clustering,
  • keeping the clusters during the optimization (cohesion is kept while the order improves).

Documentation:

AutoFilter: excluding nodes that cause violations

AutoFilter manages infeasibility in over-constrained problems:

  • it records which nodes cause violations in the many solutions that JOpt creates in parallel,
  • it removes the nodes whose violations dominate from the optimization,
  • and the remaining nodes get a feasible plan, with a list of the excluded nodes and the reasons.

Documentation:

Performance mode and compute controls

JOpt includes these controls for runtime and compute:

  • Performance mode, which shortens the runtime with a smaller population in genetic evolution and fewer operators,
  • CPU core controls and parallelism settings,
  • algorithm selection pipelines via optimization schemes.

Documentation:

Optimization schemes: choose algorithms, order and defaults

An optimization scheme defines how the solver runs:

  • select the construction algorithm explicitly,
  • select the heuristic algorithms and their order,
  • override per-phase parameters,
  • enable or disable AutoFilter per phase,
  • provide custom default properties with safe local overrides.

Documentation:

Extensibility: Open Assessor (node level and route level)

The Open Assessor adds customer-specific rules to the optimization without forking the solver. You can inject:

  • custom costs and preferences,
  • custom violations and explainability payloads,
  • domain-specific scoring and acceptance shaping.

Documentation:

Realistic connections: distance and time strategies

External node connections (explicit distance and time)

  • provide connections from an external source, such as a routing engine or a precomputed matrix,
  • give elements at the same position one location ID: connections are stored by location ID, so these elements share them.

Documentation:

BackupConnector (fallback distance and time)

When a connection is missing, the backup connector calculates its distance and driving time. A custom backup connector can:

  • switch the distance model, for example to the Haversine formula,
  • apply a correction factor, for example for terrain or detours,
  • make the travel time depend on the resource.

Documentation:

Connection Store (dynamic, time-dependent travel)

For rush hours, weekend patterns or any other time-dependent travel, a connection can carry timed overrides. They change its driving time, and optionally its distance, by time of day and day of week.

Documentation:

Continuity and incremental re-optimization

JOpt supports:

  • saving an optimization result to JSON (file or string),
  • loading it back and continuing,
  • rebuilding a custom warm-start solution from JSON snapshots,
  • reassigning nodes and resources as new work arrives.

Typical uses:

  • continue yesterday's plan,
  • insert late jobs,
  • add or remove resources,
  • re-optimize after a disruption.

Documentation:

Progress streaming, analytics and reporting

Capabilities include:

  • optimization progress events and structured updates,
  • frequency control and external time-based polling,
  • full progress readout and parsing utilities,
  • requesting the best result so far while the run continues,
  • stable extraction for reporting (including PND report extraction patterns).

Documentation:

Debugging, comparison and end-user acceptance

Comparison tool (make improvements explainable)

The comparison tool is useful for:

  • debugging ("why did the route change?"),
  • before-and-after acceptance reporting,
  • planner trust and adoption ("here is what improved and what stayed stable").

Documentation:

Robustness and operational safety

Uncaught exception handling

In real deployments, exceptions often happen in:

  • background solver threads,
  • custom injected logic,
  • or reactive subscriptions.

JOpt can terminate the optimization deterministically and propagate the error through the result future of the run.

Documentation:

Background reading on reactive programming:

Geographic and territory modeling

Open Location Code (Plus Codes)

  • convert latitude and longitude to plus codes and back,
  • run an optimization with plus code inputs.

Documentation:

Zone codes and zone crossing

  • define territories via zone codes (for example postal code logic),
  • apply zone number constraints,
  • penalize crossings between zones, such as bridges or tunnels, with zone crossing penalization.

Documentation:

Practical export and integration utilities

  • Export to KML for GIS visualization and stakeholder communication
  • Build info extraction for support and debugging ("what version produced this?")
  • License setup and secure deployment patterns

Documentation:

A suggested demo sequence

To present JOpt.TourOptimizer in a short demo, show these topics in this order:

  1. A realistic first optimization: the First optimization tutorial.
  2. A feature for over-constrained problems: AutoFilter.
  3. A stateful feature: pickup and delivery.
  4. Customer-specific extensibility: Open Assessor.
  5. Operational robustness: uncaught exception handling, progress streaming and the comparison tool.
  6. Continuity: saving and loading JSON and a custom warm start, so that planning does not start from zero.

Added: 2026-02-27 (JOpt core 7.5.3-j17) | Last updated: 2026-10-23