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:
| Product | Role |
|---|---|
| JOpt.TourOptimizer | Optimization engine for routing, scheduling, and resource planning under real-world constraints |
| JOpt.RouterPlanner | Routing and travel-time layer for realistic distances, durations, and route shapes |
| JOpt.GeoCoder | Geocoding 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.
How this documentation hub is structured
1. Getting started
Start here if you are new to JOpt.
- Quickstart: Fast onboarding guide — get a TourOptimizer container running and execute your first optimization.
- Basic elements: Learn the core modeling primitives — nodes, resources, time windows, working hours.
- First optimization: Step-by-step first optimization tutorial.
- Sandboxes: Browser-based IDE environments — start coding in Java, Python, C#, or the Angular demo without installing anything locally.
2. Learn and explore
Learn through examples and deepen your understanding of specific features.
- Feature list: All supported features as a sorted list or as a feature atlas.
- Feature guides: Whitepapers targeting individual features — for example, the JOpt Sandboxes guide and the Special features overview.
- Examples by depth:
| Level | Focus | Link |
|---|---|---|
| Basic | Fundamentals and core modeling patterns | Basic examples |
| Advanced | Real-world constraints and feature combinations | Advanced examples |
| Expert | Customization hooks, performance strategies, deep integration | Expert 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.
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:
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 ©
