This question is quite open, and the actual problem comes from something you would probably consider an everyday niche (something you'd probably take for granted without really thinking about it). However:
I may not disclose the actual application's nature, but I found that pizza bakeries and pizza consumers make for a reasonable replacement. We have been asked to create an optimal pizza delivery plan. I guess we will also need an appropriate means of visualizing the plan when we want to communicate our results to the audience.
We have been given
a list of pizza bakeries (roughly 50):
- where each bakery is located
- how efficient each bakery is at making pizza
- each bakery's minimum and maximum load. A bakery may be shut down if the minimum load cannot be reached.
a list of pizza consumers (a few thousand):
- where each consumer is located
- how many pizzas each consumer needs - it's a constant flow of pizza
a network of roads with
- start, intermediate, and end node
- segment length (this might be different from the Euclidean distance between adjacent nodes)
- road capacity (maximum number of pizzas on this segment)
Bakeries and consumers are located at road start or end nodes
Rules and metrics:
- pizza from multiple bakeries may be combined to serve a customer. This is encouraged if it helps
- multiple paths may lead from a bakery to a customer, and pizzas may be sent on different routes in multiple packages. This is also encouraged if it helps.
- for simplicity, let's assume that all pizzas are of the same quality.
- no other traffic other than pizza delivery is taking place.
- the effort for delivering a pizza increases linearly with distance.
- the effort for delivering a pizza increases with the square of road load.
- bakeries may be closed down as an initial condition, and stay closed.
- There's no limit to the number of customers per bakery (apart from the bakery's pizza capacity)
Bakery efficiency and delivery effort are two different numbers: there's probably a large number of feasible solutions with different overall bakery efficiency. It's possible to state maximum allowed delivery effort and minimum required efficiency, though.
So in short: what is a suitable approach to this problem in terms of optimization algorithms?
It's hard to visually compare delivery solutions just by showing the network with some numbers attached to it, so we're looking for a way of "telling the story". Chord diagrams or circular diagrams might be a possibility, but someone more experienced might have a better suggestion.
How can we visualize results? We'd like to show how more efficient bakeries are utilized (if they are) but also how the optimization has an impact on the delivery effort.