DNA //evolutions

Documentation Hub

Welcome to the DNA Evolutions Documentation Hub — the central resource for understanding the JOpt product family, exploring its capabilities, and finding the right depth of documentation for your use case.

If you are looking for setup commands and container details, go straight to the Quickstart — Getting started page or the Quickstart — Sandboxes page.


The JOpt product family

This hub covers three products that are designed to work together as an end-to-end pipeline:

ProductRole
JOpt.TourOptimizerOptimization engine for routing, scheduling, and resource planning under real-world constraints
JOpt.RouterPlannerRouting and travel-time layer for realistic distances, durations, and route shapes
JOpt.GeoCoderGeocoding layer to turn business addresses into route-ready coordinates

JOpt projects often follow a simple practical flow: GeoCoder makes locations route-ready → RouterPlanner provides realistic travel-time intelligence → TourOptimizer produces and optimizes feasible schedules.

Product_Overview


How this documentation hub is structured

1. Getting started

Start here if you are new to JOpt.

2. Learn and explore

Learn through examples and deepen your understanding of specific features.

Basic_Advanced_Expert Examples

LevelFocusLink
BasicFundamentals and core modeling patternsBasic examples
AdvancedReal-world constraints and feature combinationsAdvanced examples
ExpertCustomization hooks, performance strategies, deep integrationExpert examples

Each example has its own page explaining the purpose (why it exists), the scenario (what it models), and what to look for in the output and KPIs.

3. Integrate into your product

Integration guidance is organised around your chosen architecture and the components you adopt.

JOpt components are available via:

  • Docker / REST API — language-agnostic integration via OpenAPI 3. Clients can be generated for any language (Java, C#, Python, JavaScript, Scala, and many more).
  • Native Java dependency — direct integration via Maven or JAR download. Only JOpt.TourOptimizer supports this mode.

For deployment options including cloud and Kubernetes see JOpt.TourOptimizer on Kubernetes.

Environment_Overview


How JOpt.TourOptimizer works

The sections below explain the kinds of problems JOpt is built for and how the optimization engine works at a high level. No implementation knowledge is required.

Click to watch the introduction video:

Introduction Video for JOpt

The problem

Allocating a set of tasks or shipments to mobile resources is a classic dispatching challenge. The dispatcher must find the right balance of who should visit which customer, in which order, and within which time windows — while satisfying constraints such as working-time regulations, driver skills, transportation rules, customer preferences, pre-agreed appointment times, and many more.

Some constraints conflict with each other. At the same time, the final schedule should be as cost-effective as possible. Cost here is an abstract metric combining travel distance, travel and working time, fuel cost, and optionally CO₂ emissions.

For small problem sets, a skilled dispatcher can do this manually. For large or complex problems, it is practically impossible without algorithmic support.

The solution: a modular customizable three-phase optimization pipeline

JOpt uses a combination of three algorithms in sequence, each building on the output of the previous phase.

Phase 1 — Construction: building a starting solution

The construction algorithm assigns all tasks and resources to initial routes using heuristics. One of JOpt's construction algorithms is inspired by the savings algorithm, a widely used approach for capacitated vehicle routing problems. The output is a feasible (or near-feasible) starting solution, found by iteratively rearranging stops and balancing distance, time windows, and constraint penalties.

Phase 2 — Simulated Annealing: improving the solution

The simulated annealing algorithm takes the constructed solution and rearranges routes and stop sequences to reduce total cost. The approach is inspired by the physical process of controlled cooling in metallurgy, where atoms settle into low-energy states. Mathematically it uses a probabilistic acceptance function to escape local minima while still converging. Simulated annealing is fast and effective, but on complex problems it can converge prematurely.

Phase 3 — Genetic Evolution: escaping local minima

The genetic algorithm feeds on the simulated annealing result and runs many parallel solution variants across multiple generations. An elite concept ensures the best solutions always propagate forward. Random mutation operators introduce variation; intelligent operators evaluate and guide modifications toward better outcomes — similar to local-search strategies. This broad parallel exploration reduces the risk of getting stuck in a suboptimal solution and is typically used as the final refinement step.


Contact

For further information, please contact us or visit www.dna-evolutions.com.


A product by DNA Evolutions GmbH ©