by Kaan Karamete, Saif Ahmed, Matt Brown, Kyle Sutton, and Chad Meley
We've all heard of the Traveling Salesperson Problem, it is one of the most common Graph problems and has numerous implementations. In the practice, however, problems are much more complicated. In the world of logistics, a more realistic setup is typically the Multiple Supply Demand Chain Optimization (MSDO), where there are multiple sources and sinks and we're looking for the most optimal delivery routes. A generic overview can be seen here: https://www.kinetica.com/blog/kinetica-graph-analytics-multiple-sup....
To demonstrate Multiple Supply Demand Chain Optimization (MSDO) with an immediate challenge we face globally, we've modeled the challenge of vaccine donations. The US has excess vaccine supply which expires over time. If supply is expiring, it is better to donate it abroad before expiration, as quickly as possible. The White House has been doing this. But can it be done more efficiently?
This is a complex problem:
We have a Multiple Supply Demand Chain Optimization (MSDO) problem! We've modeled the supply, demand, routes, and have everything ready to run on a database (to respond to daily changes in global supply and demand.) The setup documentation can be seen at https://docs.kinetica.com/7.1/guides/match_graph_dc_multi_supply_de... but it will be more instructive to run it yourself below. Everything below will run on the Developer Edition (https://www.kinetica.com/try/) or on Kinetica Cloud (https://www.kinetica.com/kinetica-as-a-service-on-azure/)
Import from GitHub:
git clone [email protected]:kineticadb/community-vaccines.git cd community-vaccines
Set up python dependencies:
pip install -r requirements.txt
You can see some results below, but we encourage you to run this yourself and tune the optimization per your liking. The best way is to run the Jupyter Notebook https://github.com/kineticadb/community-vaccines/b... Finally, we plot out the full route we would use for the round-trip:
This is good, but lets continue to refine this. We can add a second departure hub in the US to route vaccine supply from the south, lets set up both IAD (Washington Dulles Airport) and DFW (Dallas Fort Worth Airport.) There are a lot of possibilities here, and you can customize this any way you wish -- the best way is to run the Jupyter Notebook https://github.com/kineticadb/community-vaccines/b...
Real life is complex. To make predictions or decisions, we create models to represent reality the best we can -- balancing trade-offs between correctness with complexity. So far, we've made a number of simplifying assumptions, but we can continue to refine the model to introduce more features and address nuances. Some reasonable next steps would be: