Frequently Asked Questions (FAQ)

This page answers the most common questions about DNA Evolutions and the JOpt product family.
AI Assistant
To ask anything about the docs and get custom examples, visit our JOpt AI Assistant (GPT). page.
Contact and company
How can I contact DNA Evolutions?
You can reach us through our official website, send an email to [email protected], or use our contact form.
Where can I find DNA Evolutions online?
Who uses JOpt.TourOptimizer?
You can find a list of JOpt.TourOptimizer users on our customers page.
Product overview
What is JOpt.TourOptimizer?
JOpt.TourOptimizer is a backend optimization engine for routing, scheduling, and resource planning. It takes a set of tasks (Nodes), a set of workers or vehicles (Resources), and a set of constraints, and returns an optimized plan that minimizes total cost while respecting all constraints. It is not a frontend application or a SaaS dashboard. It is the engine that powers your planning system.
What products does DNA Evolutions offer?
The JOpt platform consists of three products:
- JOpt.TourOptimizer: the core optimization engine for routing, scheduling, and resource planning.
- JOpt.RouterPlanner: a routing and travel-time planning layer for realistic distances and durations.
- JOpt.GeoCoder: a geocoding and geo-referencing layer (addresses to coordinates).
What makes JOpt unique?
JOpt provides several capabilities that are, to our best knowledge, not available in other route optimization engines. These include manufacturing planning with dynamic production quantities (FlexLoads), multi-solution infeasibility management (AutoFilter), architectural hard constraints (Pillar Nodes), per-shift territory switching (ZoneCodes on WorkingHours), asymmetric zone crossing penalization, and a reactive event system based on RxJava 3. For a full overview, visit our Special Features page and the Feature List.
What optimization algorithm does JOpt use?
JOpt uses a three-phase pipeline: Construction Heuristics (savings-based starting solution), Simulated Annealing (neighborhood refinement), and Genetic Evolution (population-based search with both random and intelligent operators). The combination produces high-quality solutions across a wide range of problem sizes and constraint patterns.
Getting started
How do I get started with JOpt?
Visit our Getting Started page. You can choose between the Java SDK (in-process) or the REST API (service-based). Both paths include Docker sandboxes for quick evaluation without local toolchain setup.
Can I test JOpt without installing Java, Maven, or any toolchain?
Yes. JOpt provides Docker-based sandboxes with a browser IDE (CodeServer) that require only Docker to run. No local Java, Maven, or IDE installation needed. See the Sandboxes Quickstart.
How quickly can I run my first optimization?
About 10 minutes. Start a Docker sandbox, open FirstOptimizationExample.java, and run it. The sandbox comes pre-configured with all dependencies and a working example.
Where can I see a live demo?
Visit our Angular demo application at demo.dna-evolutions.com. This is a limited frontend that demonstrates end-to-end flow (scenario selection, optimization, map visualization). JOpt's full feature set is much broader than what the demo exposes.
Integration
What are the two integration paths?
- Java SDK (in-process): import JOpt as a dependency and run optimization directly in your Java application. Full feature access, maximum performance.
- REST / OpenAPI (service): run JOpt.TourOptimizer as a Docker container and call it via REST API from any language. OpenAPI-generated client libraries are available for Java, Python, C#, and TypeScript/Angular.
What languages are supported via REST?
Any language that can make HTTP requests. DNA Evolutions provides maintained client libraries and examples for:
How do I run the TourOptimizer REST server?
Pull the Docker image and start it:
docker run -d --name jopt-touroptimizer -p 8081:8081 dnaevolutions/jopt_touroptimizer:latest
The Swagger UI is then available at http://localhost:8081/swagger-ui/index.html. For detailed instructions, see the REST Server documentation.
Is there a .NET version?
A legacy .NET version using IKVM.NET was provided up to version v7.5.3. For new projects, we recommend using the C# REST client instead, which provides full access to all features through the REST API. See the C# REST Client repository.
What technology stack does JOpt use?
The core engine is Java. The REST service uses Spring WebFlux (reactive, non-blocking). The event system is based on RxJava 3. Data exchange uses JSON (OpenAPI 3 schema). Deployment uses Docker and Docker Compose.
Licensing
Can I test JOpt without a license?
Yes. JOpt's free mode allows optimization of up to 20 elements (nodes + resources) without any license or signup.
Is there a free evaluation license?
Yes. With a free sign-up, you receive an evaluation license that extends the limit to 37 elements. This is sufficient for meaningful prototyping and feature evaluation.
How do I apply my license?
License setup is documented in the License feature guide. The license can be provided as a JSON string or loaded from a file. In the REST server, it is configured via the extension object in the optimization request.
Which license is right for me?
License selection depends on your problem size, deployment model, and usage pattern. Visit our Products page for an overview, or contact us for a tailored recommendation.
What are the terms and conditions?
License agreements and further information about license plans are available at www.dna-evolutions.com.
Documentation and examples
Where is the documentation?
- Documentation Hub (tutorials, feature guides, special features)
- JavaDoc (API reference)
- Nexus Repository (artifacts)
- OpenAPI Schema (REST API specification)
Where are the code examples?
All examples are on GitHub:
- Java SDK Examples (Basic, Advanced, Expert tracks)
- Java REST Client Examples
- Python REST Client Examples
- C# REST Client Examples
Are there video tutorials?
Yes:
- Java SDK sandbox tutorial
- TourOptimizer as a service (REST), Part 1
- TourOptimizer as a service (REST), Part 2
- Angular Demo walkthrough
How are the Java examples organized?
The examples follow three progressive tracks:
- Basic (packages 01 to 08): first optimization, basic elements, result reading, event nodes, pillars, licensing
- Advanced: pickup and delivery, ZoneCodes, zone crossing, AutoFilter, overnight stays, progress frequency, builder pattern, conditions
- Expert: FlexTime, Open Assessor (node-level and route-level), custom solutions, uncaught exception handling, performance mode
Each example is self-contained and can be run independently.
Technical questions
What are the system requirements?
JOpt does not have fixed hardware requirements. Compute needs depend on the size and complexity of your problem. Small problems (20 nodes) run on modest hardware. Large, constraint-heavy instances (hundreds of nodes, many constraints, multi-day planning) benefit from medium to high-performance infrastructure. The REST server runs as a stateless Spring Boot application and scales horizontally.
What is the difference between hard and soft constraints in JOpt?
Hard constraints are fulfilled by the optimizer's architecture. The solution space is cut so that hard constraint violations are structurally impossible. Soft constraints are handled through cost: violations are penalized in the objective function, and the optimizer minimizes total cost. This is a fundamental design principle: hard constraints are an architectural property, not a cost property.
What is AutoFilter?
AutoFilter is an infeasibility management feature. When the problem is over-constrained, AutoFilter continuously analyzes which nodes cause violations across many parallel solution candidates and removes the systematic offenders. The result is a feasible plan for the remaining nodes plus a diagnostic list of excluded tasks with reasons. See the AutoFilter feature guide.
What is a Pillar Node?
A Pillar (CapturedNode) models an absolute, non-negotiable time-window constraint. Its SLA cannot be violated because the optimizer's architecture prevents it. Other nodes flow around the Pillar to protect its time window. See the Pillar Nodes feature guide.
Does JOpt support pickup and delivery?
Yes. JOpt provides a comprehensive PND module with SimpleLoads (fixed quantities), FlexLoads (optimizer-determined quantities for manufacturing planning), TimedLoads (delivery time limits), MixedFlexLoads (warehouse buffers), and UnloadAllLoads. See the Pickup and Delivery feature guide.
Can JOpt handle multi-day routing?
Yes. The Overnight Stay feature allows resources to stay at designated nodes (hotels, depots) between working days. Policies control when staying out is allowed (per-day, distance/time thresholds) and how often (consecutive-night limits, mandatory recovery). See the Overnight Stay feature guide.
Can I add custom business rules to the optimizer?
Yes. The Open Assessor feature lets you inject custom cost contributions and violation logic at node level or route level. You implement one class, override one method, and wire it into the optimization scheme. No solver modification required. See the Open Assessor feature guide.
Does JOpt support territory management?
Yes. ZoneCodes define which resources can visit which nodes. Zone constraints are attached to individual WorkingHours, enabling per-shift territory switching. Nodes can belong to multiple zones simultaneously. Zone crossing penalization adds directional costs when routes cross zone boundaries. See the ZoneCodes and Zone Crossing feature guides.
Support and troubleshooting
How can I troubleshoot issues?
- Check the Documentation Hub for configuration guidance
- Review the relevant example code on GitHub
- Open a GitHub issue in the relevant repository
- Contact us directly
What kind of support is available?
For details about support scope, response times, and consulting sessions, visit www.dna-evolutions.com or contact us.
Is training or educational material available?
Yes. The recommended learning path:
- Getting Started and First Optimization tutorial
- Basic Elements tutorial
- Feature guides for specific features
- Special Features for advanced concepts
- Video tutorials for visual walkthroughs
For on-site or remote training sessions, contact us.
Anything missing?
If you have a question that is not answered here, please reach out: