Intro

# Introducing Veeroute

##### Veeroute is a cloud-based optimization engine that solves complex combinatorial problems.

This type of NP-complete problem is difficult – if not impossible – to solve with linear/mixed integer programming (LP/MIP). In fact, combinatorial problems often don’t have linear dependencies. This means we can’t use a set of linear equations to describe them. What’s more, it could take years, even centuries, to calculate the number of possible combinations.

As an example, let’s estimate how much time it will take to calculate all the combinations for a last mile delivery problem.

##### Problem:
3000

Let’s assume we have to deliver the goods to 3000 customers

##### Requirements:
1 = 10

1 trip allows us to deliver to 10 customers

##### Find:
=

Optimal trips to deliver the goods

##### Estimation of time to try all possible options:
• The number of possible trips:
300010
10!
= ~1.6 * 1028
• The time to calculate all the options:
1.6*1028
1018
= ~500 years

Notice: for simplicity, let’s assume 1 calculation takes 1 operation on the supercomputer.

If you run this calculation today, you’ll get the result in 24th century.

##### With adding real world parameters, our problem’s complexity will grow exponentially.
• time windows
• shifts for drivers\vehicles
• pick-up and drop-off locations
• working requirements
• traffic
• cargo\vehicles dimensions
• etc.

While combinatorial problems are complex, the time it takes to complete an optimization is an important consideration. The reason? In many cases, the optimization is part of a larger dynamic planning process. Imagine a company that needs to reschedule a trip or a production plan. If it continually must wait for an optimization to complete, their planning process will be essentially worthless.

#### If we add major requirements to the optimizer, we get the following list:

##### The level of detail

All else being equal, an optimization engine that takes more detail into account can solve more complex problems and provide more realistic results. Think of the problem definition we mention above. It doesn’t include real-world parameters such as time windows, shifts and compatibilities. Simply put, our results won’t be of much use.

##### Quality of results

The combinatorial optimizer must continually produce results that are close to optimal, if not optimal, for different datasets.

##### Performance

This is critical for many applications, especially for dynamic planning.

##### Ease of use

It should be quick and easy to integrate the solver with your IT infrastructure or third-party software.

##### Extendibility

The engine should allow you to adjust the mathematical core to address new problems and offer fine-tuning options that improve performance and quality.

##### Scalability

The engine should be able to handle large problems and quickly increase its performance.