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.
Let’s assume we have to deliver the goods to 3000 customers
Requirements:1 = 10
1 trip allows us to deliver to 10 customers
Optimal trips to deliver the goods
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
- road restrictions
- cargo\vehicles dimensions
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.Read more
Quality of results
The combinatorial optimizer must continually produce results that are close to optimal, if not optimal, for different datasets.
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.
The engine should allow you to adjust the mathematical core to address new problems and offer fine-tuning options that improve performance and quality.
The engine should be able to handle large problems and quickly increase its performance.
Please learn more , about how the solver addresses these requirements.