5 ms·
Launch HN: Nextmv (YC W20) – Developer-friendly logistics algorithms
Hey HN!
We're Carolyn and Ryan, founders of nextmv (https://nextmv.io/ https://nextmv.io/). We help developers build and test logistics algorithms faster. These are things like routing delivery vehicles, assigning nurses to patients, and managing supply chains.
We used to work in systems engineering and operations research on big government projects, including missile simulations and airport runway management. A few years ago, we pivoted to working on food delivery at Zoomer (YC S14) and later Grubhub. It turned out that making on-demand pizza and taco delivery efficient and reliable required the same optimization and simulation techniques, but in real time.
Real-time routing and assignment problems have a number of interesting characteristics that make them challenging. For example, they follow business rules such as pickups preceding deliveries, time windows for deliveries which may or may not be violated, and driver capacities. Their inputs are constantly changing. They can get very large (1000s of orders, 100s of drivers). And they require high-quality solutions in seconds.
People usually think of NP-hard problems like the Traveling Salesman when routing and dispatch optimization is mentioned, and we do have to solve those. But the biggest challenges turn out to be ones that are more familiar to the software engineering community. There is no easy equivalent to the software unit test for techniques such as Integer Programming and Constraint Programming. And integration into modern software stacks is nontrivial. In the end, we had to build new tools so we could work faster.
Traditional dispatch and scheduling algorithms take months to develop, integrate, and test. That is a problem when businesses change rapidly. This is happening in delivery, which has exploded over the last few years and is likely to only get bigger. Existing tools require domain experts to translate business rules into models. This makes organizations unable to keep pace with change.
During our research into appropriate techniques, we learned about Decision Diagrams (http://www.andrew.cmu.edu/user/vanhoeve/mdd/ http://www.andrew.cmu.edu/user/vanhoeve/mdd/). DDs represent optimization problems as the search for a shortest (or longest) path over a layered, directed, graph. They are state-based, have few restrictions on problem representation, and can outperform other techniques (depending, of course, on the model). We find them particularly attractive for getting started with simple models and integrating them into software stacks. Since there weren't any industrial-grade DD solvers, we built one. And we started nextmv to give companies the modeling, optimization, and simulation tools we wish we'd had.
Our tools are for software developers with deadlines. They let you flexibly model nearly any business rules, easily integrate models into software stacks, and test them so you know they're behaving as you expect.
What can you do with them? Dynamically route buses based on passenger requests. Minimize shipping cost for packages. Schedule workers based on demand forecasts. Hop (our optimizer) lets you model decision problems as state machines. Dash (our simulator) is also state-based, so you can optimize and simulate using the same code.
We've prioritized making things developer-friendly. You can write and test models like any other software. Larger, more complex models can be composed out of smaller, simpler ones. Optimization and simulation models are built from Go source into simple binary artifacts. (We think of this as Docker for decision science.) They come with pre-built runners that make going from development to testing in CI to production deployment trivial. They have JSON I/O for easy integration, and run in a CLI, over HTTP, or in Lambda.
Not all operational decisions need complex optimization, but they all benefit from simple automation and integration, fast iteration cycles, and continual visibility. We give you this from the beginning, then let you layer in fancier optimization stuff if you need it later. Here's a screen cast showing a simple routing model in Lambda: https://www.loom.com/share/65ad523138364bf7bac48524efb620e0 https://www.loom.com/share/65ad523138364bf7bac48524efb620e0. We've seen developers without optimization backgrounds create models to minimize delivery time and deploy them to Lambda in less than 24 hours.
We're eager to hear about your experiences in this area and/or ideas on faster ways to get automation into production. We would love any and all feedback that this community can offer, so don't hold back!
- yorak 7y agoThis is an interesting and promising take on the problem. Despite being introduced already in the 60'ies, the optimization of delivery routes is still not used as widely as it should. I'd argue that this is mostly due to the complexities and challenges inherent in adapting such optimization technology to solve real world delivery route planning tasks, and, on the other hand, the high cost and low availability of operations researchers with relevant software engineering background. In my recent PhD dissertation I tried to address the challenges from a different angle: I proposed using machine learning to predict the most suitable heuristic algorithm and its parameter values for a specific logistics planning problem. This way the developer or the user does not need to worry about the details of the optimization solver. The book is freely available for download from: https://jyx.jyu.fi/handle/123456789/65790 https://jyx.jyu.fi/handle/123456789/65790
- ryan-nextmv 7y agoThank you so much for sharing this! I will read it. I suspect there's a lot of potential for these sorts of techniques in production systems, especially combined with decision diagrams. We've been looking at DDs partly because they are capable of optimizing problems without a lot of restrictions on problem type or representation, and also because they seem like a very nice metaheuristic structure.
- hef19898 7y agoThe topic you are tackling is a very hard one, but you have figured that one already. Good thing is, you have both a solid and relevant background. A general thought, which might be important in the future. This kind of optimization tools work best at scale, I would go even as far as saying only at scale. And that can make a MVP a hard thing. I have seen people try something similar without the necessary scale, or rather density as routes were spread out over to large a region. And it didn't work out that good. What I didn't get, but then might be just me, is who your customers are. Developers or users? If it's the latter I could provide some operational insight.
- ryan-nextmv 7y ago