Advanced Algorithms

Algorithms are important assets, and engines of wealth-creation in the modern enterprise. The “art of computer programming” is choosing — or inventing — the right algorithm for the right job.

We help our clients wrangle problems that seem computationally intractable; be they due to tremendous amounts of data, or massive search spaces. Our expert algorithm designers solve these problems by drawing upon a range of techniques, from branch-and-bound and dynamic programming to massively parallel programming.

We can help you develop your next great algorithm, that gives you great new capabilities.


Combinatorial Optimization Framework

Our Combinatorial Optimization Framework is a suite of algorithms which can be used to solve optimization problems with large search spaces. Built on techniques such as branch-and-bound, randomization, and heuristic-guided-search, the C.O.F. automatically scales to use large compute clouds for problems that demand heavy computation.

Learn about the applications

Logistics Optimization

Logistics problems like vehicle routing, container stacking, goods packing, transport scheduling and routing are extraordinarily difficult to optimize. Even though these problems are “NP-complete” — computer science code for very very hard — we can use advanced algorithms and heuristic techniques to get certifiably close to the optimal solution.

Learn more

Parallel Scheduling

Running an algorithm on a large supercomputer is not easy. The algorithm has to be broken up into smaller tasks, and each of these tasks has to be run on individual nodes of the supercomputer. Which task should be run where, when? This is the complex question answered by scheduling algorithms.

Learn more about our scheduling expertise

Public Transport Optimization

What would be the optimal schedule for a particular route? What new routes should be started? Which routes should be modified? Optimizing a fleet of vehicles to best serve the public interest is not easy.

Learn how algorithms help


To price products well, various price decisions have to be run into the future, to understand their overall impact. Furthermore, price decisions may be re-taken at future moments, and competitors may change their decisions. The state of the economy may change, impacting demand. Taking the optimal decision now considering all possible future scenarios is a difficult task: and an algorithmic technique called “dynamic programming” helps.

Learn more about pricing and econometrics