This page gives a brief introduction to the Vroong Engine.

The Basics

Vroong Engine is a service that can help you with various logistics needs. Currently, we provide solving VRP, or creating an efficient transport routing plan from user-supplied information such as tasks, drivers, constraints, etc. Other services, such as hub routing, are under progress and should cover most of the transportation needs. Another characteristic of the service is that the patterns, or rules, are learned from the tasks carried out by drivers, and those rules are utilized to generate more efficient and tailored routing plans afterwards. In other words, our service adapts to users preference as they modify the generated routing plan!

Currently all services are only accessible through the API, although we are planning to build the web application as soon as possible: It will render the service to be more approachable, and we would be able to provide advanced features that will make the whole service more useful. Until then, writing a program that wraps around the API would be the easiest way to access the service.

This documentation provides all necessary information for using our services. Particularly, the documentation is organized into the sections below, and is followed by the API specifications.

Data Structures

The services mostly revolve around consuming appropriate API to provide the server with problem definition and receiving the response. Depending on the request, the data is provided either directly in the response body or in the form of handle, with which the data can be accessed when it becomes available. As a result, it is important to familiarize yourself with the structure of the data so that you can correctly format the data and interpret server's response. All data structures are listed in the Data Schema section.


When you send the initial data to our servers to generate routing plan, you can also include various constraints that the routing plan should satisfy. To learn about how constraints are used in the service and the list of all available constraints, check out the Constraints section.

Rule Mining

As stated above, the more you use the service, the better the result will reflect drivers' preference. The Experience Mining section provides detailed information on how "rule" is defined in the context, how rule mining works, what kind of rules are mined, and how to use the feature for improved results.

Request and Response

The data schema, constraints, and rule mining are the building blocks of the request and response object. Throughout the documentation, the request and response objects are occasionally referred to as the "problem" and the "solution", which are the terms frequently used in the context of vehicle routing problem. The section Composing a Problem, And Understanding The Solution outlines the structure of the request object and the server's response. The section also provides the detailed description of the response object, particularly on understanding the values of the attributes and interpreting it as the solution to the problem. Finally, some of the algorithm's default behavior are described in order to minimize "the surprise factor" and to prevent design decisions from misattributed as a bug.