all right welcome everyone I think I did the right thing it's about 12:10 so I hope many of you at least have had a chance to enjoy the rest of your lunch I'm here to introduce al 130 alo and it's a pleasure to do that for those of you who don't know alejandro yet a few things about him so he has long history with Georgia Tech in the sense that his undergraduate here but also his he graduated tour he finished his PhD in 2010 I believe then he accepted an assistant professor position at the University of a very reputable institution we tried our best to convince him after a few years to come back and we succeeded which we were very happy with so when she came back to Georgia Tech in 2013 he is been promoted to associate professor well-deserved and he's one of a few people in our group that is very interested in all problems related to last mile or same-day delivery [Music] about historic visions in work on that particular topic and it should be incredibly insightful and entertaining we hope thank you so if you're counting that's 14 years I've been to Georgia Tech in one capacity or another so I'd like to say that I'm like a bad cold that they just can't get rid of me so so thanks very much for being here I'm happy to be here as well I'm excited to talk to you all I'm gonna try to make this as informal as possible so please interrupt me whenever you feel like and if we don't get to the end it doesn't matter so just please feel free to interact raise your hand interrupt me anything you like I'll point out that this is joint work with a couple people so my colleague Alan Herrera who hopefully many of you all know and a couple of students one former student Matias who is now professor at the Catholic University in Chile and the current student Alex who is in the audience and who can correct me if I say something wrong so what are we going to talk about so I I like keeping this slide up as an introduction because when I started giving talks about same-day delivery this really did seem like the pie in the sky and I'm gonna keep this slide in my in my introduction to these talks until I have to remove the question mark because this is at some point going to be actually what what happens for the time being it's still a little bit more of the pie in the sky but there's still even if you don't yet believe in drone delivery there's many many reasons why you you want to study problems like the one we're going to talk about today so there's at this point already a very well established you know several years worth of these different service offerings from a variety of different companies the obvious highlight being Amazon but many many others and so it's it seems like a interesting very very exciting area to study with in logistics there's lots of stuff going on and so what I'm going to talk about is basically what we've been looking at over the past few years of the problems to relate in this area and so try to maybe set the table little bit at the beginning and talk about some context and then we're gonna spend probably the bulk of our time talking about operational issues which is where we've we've done more research up to this point and this is essentially what I'm going to show you is what became most of Matias collapse thesis and then I'm gonna talk a little bit more briefly at the end or towards the end about tactical design issues which is an ongoing research project that we're doing right now with Alex which we're very excited about and then we'll wrap it up from there so just the set set the stage why why do we care about these problems so at this point I think eerie tale or e-commerce is really retail this is a growing and completely established part of the economy and of how consumers buy products so I put up some some a few salient facts up there for you all in case you hadn't seen them before so we're already it's been for the last five years ecommerce or retail has been at least ten percent of total retail spending and at this point it's more and at this point we're projected this year to reach $2,000 per online buyer a spent per you know per year and so at least thinking of myself I think I'm probably above the average already and it's it's it's amazing how quickly and how quickly you transition into being one of these buyers and how at once you've once you go that way it's hard to go back because it's so much so much more convenient so much easier the big player in the room is of course Amazon so Amazon this this year is essentially breaking the half the 50% threshold they're going to be more than 50% of e-commerce in the US now I should point out here that when this this statistic includes the Amazon Marketplace which is of course processed by Amazon but not products that are sold by Amazon but of course they take their cut of that as well and this is a big part of the revenue stream and so of course if you count all of that together that's Amazon is more than 50% of all of the stuff that's sold online in the US and there's a bunch of downstream impacts of these facts so worldwide Amazon is now the second largest US retailer so just to be precise there of all private US companies if you count their global employment force their global work force Amazon is number two Walmart is number one now of course you can see this has a bunch of impacts in terms of how the economy works and it has a bunch of impacts and things that that that are salient in the news nowadays things like the the development of automation and are people going to be replaced by robots in this kind of thing because you can see the difference in the in the work force when you go from a retail operation to something like e-commerce operation even though these are big companies there's a change of magnitude order of magnitude in the number of people that they employ and of course there's big news related to this for example the fact that Amazon has just decided to establish a 15 a a $15 per hour I guess I wouldn't call it minimum wage but the minimum salary that they pay their employees so any any kind of decision like this that Amazon makes has a tremendous impact on the US economy in the world economy and so of course this all come this all means that the kinds of problems that Amazon cares about and the kinds of problems that are important in e-commerce are just important problems period in the economy and so this is just a a chart of the projections that I was talking about before so as you can see here this is this year and we're already almost at a 50% and will exceed 50% of Amazon's share of e-commerce next year and the really remarkable thing is just the rise in the total number that we're talking about here so if you think about what this means in terms of total ecommerce in the US this is this year it's about it's about half a half a trillion and it'll be you know it's going to go up by another you know 150 billion next so it's quite a that's the growth is explosive and so as this sector grows it's of course it becomes more and more important to compete it becomes more and more important to drive innovation in the sector and so the ultimate Holy Grail is to compete with brick-and-mortar stores right to offer the same level of service that our customers specs in a brick-and-mortar store right and same-day delivery is this idea right the idea that I don't have to wait anymore than I would have to wait for a product if I want to get it online versus getting it at the store and in some sense it's even more convenient because I don't even have to leave my house right so so this is one of the things that's one of the innovations that's really driving the sector right now however on the operational side are on the on the side of the the administrators this really causes a lot of problems so the the last mile of this distribution when you go into something like same-day delivery is extremely costly because the number of orders you're delivering is much much much lower right so you can't take advantage of the economies of scale that you would in a in a more typical distribution system like even a next day distribution system where you can sort of pull everything together right there I looked up there's a recent survey this was done last year survey that McKinsey did it shows that less than a quarter of customers of e-commerce customers are actually willing to pay for delivery services the vast majority of the customers essentially want you to do it for free or they're they're willing to take your your the fastest delivery option that is available for free and even the ones who are willing to pay are not willing to pay more than a very small amount say a couple of dollars for this fast delivery okay however this there's some III have some question personally about what this exactly means because if you think about something like Amazon Prime what Amazon is really doing there is is making you amortize these costs of delivery and it's a site it's a it's a question of behavioral economics really you know if if you pay a single flat fee once a year right and then you get your deliveries for free you feel like you're getting them for free but that's that's a psychology more than anything else right but this this clearly has an effect and amazon is amazon has taken advantage of this so so in some sense this survey is is asking people what they think but then if you look at what they're really doing you know they're they seem to be willing to pay for the service it just depends on how you how you charge for it okay okay so then when you actually think from a manager's perspective on what's new about same day delivery specifically from the the distribution or transportation side of things what's going on here so the the the typical model the traditional delivery model will have all of the order management the picking the packing of the orders everything happens before you do any just any last mile distribution right so if you think even of next day delivery what what's going to happen is you you were really going to rely on a very agile very nimble backbone network think of something like you know the the air networks that the UPS and FedEx have to get stuff from one side of the country to the other overnight and this this relies on a really sophisticated a big investment of your backbone network but when you're actually thinking of this from the the last-mile perspective this is essentially that the typical UPS think of UPS the problem that the driver faces in the morning right so you have a local warehouse and a bunch of packages have come in overnight and the the problem is I have a bunch of packages I know exactly where these packages need to go I have to divide them into subsets that go into each truck and then plan the route for each truck and this is your classical vehicle routing problem that we have studied for at this point several decades and this is this is a problem that that from a research perspective and I think from a practitioners perspective is is sort of very well understood in terms of last mile distribution so the the challenge for same-day delivery is that you are now have to do these two things simultaneously the acceptance of orders the picking of orders the packing of orders happens at the same time that you're already dispatching orders that were ready before so everything is happening concurrently throughout the day and so for the purposes of this talk we're gonna focus specifically on a common deadline so think here of not I'm not ordering a pizza I'm not ordering GrubHub I'm I'm I'm at work and I remember that I need to order something like I don't know I need my my toothpaste or I need my dog's food or something like this and I'm happy to just have it be waiting for me when I get home tonight so I don't I don't I this isn't I'm not ordering my lunch now if you are curious about those kinds of problems like GrubHub and uber eats and amazon restaurants these kinds of things I haven't personally worked done on this lately but some of my colleagues have including Martin and and Alan and they have specifically worked with GrubHub so if you have questions about those kinds of problems then ask them so in that sense that is that is obviously an even more challenging problem in terms of economies of scale and it's more applicable for perishables for food for flowers for for groceries these kinds of things but we're gonna focus more on the common deadline type problem okay any questions okay terrific so I stole this this a picture from one of Alan's talks because I think it's very illustrative this is essentially the the problem I was illustrating I was describing before in pictures so if I had all of my orders ready at the beginning of the day then maybe I could do something nice like this but the color coding in this picture tells you some of the orders or early some of the orders come a little bit later in the day and some come very late in the day and because the orders come in this in this way I I can't wait until the end of the day to serve everything and do this because then the orders would be delivered too late so I basically have to deliver while orders come in and do something that's way less efficient this is essentially the problem with with what we're talking about so with this kind of setup in mind let's think of what let's think of a basic operational model and let's see if we can extract some some insights from it and some thoughts about how a dispatcher ought to manage a system like this and so our basic operational model is going to have a couple of components so we're going to look at it at the level of a single dispatching facility so think here of a local warehouse a local DC or perhaps even a retail store if you're doing omni-channel fulfillment and you've already decided at some higher level what what store or DC is fulfilling orders for a particular address so you've already partitioned your your urban area let's say into service regions and identified the the DC that's going to serve that region and you have so you have your known service area and to keep it simple we're gonna assume that there's a single vehicle that's making the deliveries here and so you have some kind of a same-day delivery horizon so this is the time of day in which you're accepting orders and the orders are going to come in but it's it's random I don't know where they're gonna pop in from I don't know at what time of the day they're gonna pop in from so I in some sense have have taken my service region and I've split it up into neighborhoods or city blocks or something like this and there's some some underlying random process that's that's that's producing orders and this is probably based on a probabilistic forecast that I have that is that this based on data that I already have and I'm going to assume that all of the orders that pop in over this horizon are served either by my delivery vehicle or at a higher cost by a third-party operation at which I offload all of the the orders that I could not serve at the end of the day and if you don't like that assumption then think of that as the the lost sale cost for the orders that I could not serve okay both of those are equivalent for our purposes and so when the vehicle is available the dispatcher has to decide what to do with the knowledge that the the current dispatch is going to influence the total cost of the operation but also how long the vehicle is occupied and the next time at which the vehicle be available to make another dispatch so of course my decision has a very it has an impact on my cost but more importantly for our purposes it has an impact on when I can make my next decision so that's really the key here and so for the purposes of what our discussion let's assume that we're minimizing our total operating costs which will be our routing costs but you can equivalently also think of of maximizing their order fill rate if you prefer that in which case what I would want to do is minimize the number of orders that are served by the third party so we can also think of that and I'll come back to that at the end ok and so to make things even simpler what we're going to do first is focus on the absolute simplest version of the problem that I can imagine that still captures the elements of it better that are new and interesting to us and so what we're going to do first is think of the most restricted geometry that we can think of which is a single line so this is the DC these are the potential order locations and they're all going to be on the same line so why are we doing this so clearly we're not at this point talking about a practical problem anymore but the single line geometry is the situation in which you maximize economies of scale because the time and the cost of the dispatch is purely given by the farthest order you choose to serve in any dispatch so this is the maximizing this maximizes economies of scale so if the system is not economical with this geometry then you're going to have real problems in general so what we're going to try to do is analyze this system for a little bit and extract insights from it that we can then apply to a real road network that's the idea here ok so this is a picture of a schematic of what the process would look like so in this in this schematic the horizontal axis is time and the vertical axis is how far away orders show up from the Depot and the at any point in time I have to decide how far away I'm going to dispatch the vehicle in this case maybe 2 units away and when I dispatch the vehicle 2 units away it come back at some later point I've covered all of these orders these orders I did not cover so they remain open and some new orders might appear randomly and then the process repeats right and I keep doing this until the end of the day and so what we're gonna try to do first is try to understand this very very simple system and see if we can extract some structural insights that help us understand how the real system would operate so here's a representation of an even simpler problem in this problem I have removed the uncertainty so now I not only know I'll not only have a simplified geometry I have a simplified order system in which I know exactly when the orders are available I still can't serve them before they become available so think of this as the point in time at which this this is the point in time at which this order which has to go to this distance is has been picked and is ready for me to dispatch from the from the Depot from the warehouse and this is a schematic of what one possible day might look like if I do this and this is also an example of a bunch of dispatches that I might make in order to serve these orders so if my objective is to minimize the total time that my vehicle is traveling is this can anybody suggest some possible improvements to this example or any corrections to up to my dispatch plan and what could I do that Marlin yes so one simple observation is again because this is simplified as simplified geometry in which everything is on a line this dispatch goes farther and leaves later than this dispatch so of course everything that I covered with the first dispatch I could just as easily cover with the second dispatch so that tells me that I will never send an early dispatch closer if a later dispatch will go farther ok this is kind of a nice thing to keep in mind so hold that thought is there anything else about this solution that I might make better so remember what I want to do is cover as many of the red dots with a gray rectangle as possible as and I want to keep the the heights of the rectangles as short as possible I see a bunch of students who have taken classes with me in the past or are taking classes with me now any suggestions yes we will outsource that done yes so for example suppose you can see here that the vehicle departs comes back at this time and then waits before leaving the next time what if I delay my departure so that the timing is works out and the return of the vehicle coincides with the next departure and if I do that then this order here which I am not covering right now I can cover at no additional cost because I'm going just as far okay is that clear so if I make those kinds of fixes I might get a solution like this right in this solution I see a couple of things I see dispatch early dispatches go far later dispatches stayed closer and the waiting is banked at the beginning of the day the waiting is up front once the vehicle starts operating the vehicle is in continuous operation until the end of the day and so those are structural insights from a very very simple example that are going to prove particularly useful yes how far I went yes so so exactly right so if you were to plot this as a if you were to plot this in terms of where am i at any point in time the triangle would actually be an isosceles triangle but I can only serve orders that were ready at the time of my departure which is why it makes more sense to plot a vertical line because even so imagine essentially if you look at this order right here so if you think about it right I would get to that distance at this point but I cannot serve this order because it was not picked by the time I left that make sense it's a great question yes Majerle well this figure suggests that your resources both workforce and vehicle are not used for same-day delivery at the beginning of the day so they could be used for something else yes and we'll talk definitely talk more about that okay and so the takeaways are precisely the the two things that I pointed out the dispatches decrease in length so think of this qualitatively as at the beginning of the day I'm more willing to serve a larger number of orders and to go farther away from the depot later in the day I'm going to restrict myself to sticking closer to the depot and kind of making shorter runs and the waiting is all upfront once I start serving orders I'm essentially going to want to keep the vehicle in operation and for this specific problem we can we can use these structural insights to then solve the problem quite efficiently but I still haven't told you what this means for the actual problem and even here I'm not even talking about the actual problem but the actual one-dimensional problem which is in which I don't actually know when the orders are ready right so the real problem looks a little bit more like this so maybe I have a couple of orders that came in overnight and are actually next day delivery orders and then I have some forecasts of when different neighborhoods might place orders throughout the day and I have to make a plan now even though I don't know what's going to happen later so the the the insight that's going to help us take what we did before and translate it into this context is to basically say well let's take a forecast like this that tells us when we might see orders and let's break it up and let's turn those into copies of a particular order and these copies are going to be essentially weighted by the probability that an order actually shows up at this time and now I have a version of the problem I had before where I have these multiple copies of orders showing up in different places which sort of represent my forecast but now I'm going to treat each copy like an individual order and I'm gonna solve the problem like I solved it before and so what this dispatch right here means is if this order shows up at this time or earlier I cover it if it shows up later it's too late and I I let it go either I outsource it or it's a lost sale depending on my context and so this this gives me a dispatch plan that I can make at the beginning of the day that basically roughly tells me at this point of the day I should expect the dispatch and it should expect to go this far and it'll come back and then there's a next dispatch at this point in the day which I expect to go this far that's roughly the idea right now of course once you make the plan so this some folks might call this a route based plan perhaps or a route based policy and so of course once you go back to what's really happening you will then observe things the forecast is not always going to be accurate things will happen later or earlier than when you expect them and then something like this might happen and then you'll say well there's no point in me going this far when there's nothing there for me to do so I'll just delay and go a little shorter for example this is kind of the idea now this is a this is a static dispatch plan so not very dynamic not very adaptive to what's happening in reality so even with these these short fixes you you get a you get a plan but you don't get a very nimble plan you don't get a very good plan what you really actually are going to do and practice is essentially do this every time so every time the vehicle is ready to go you will compute one of these plans but only implement the first part and then when you come back you update with the new information you have the things that are not known you keep in the forecast mode and you make it the next decision but only implement the first dispatch again so you always make a dispatch with as much information as you have at the moment and if you do this this actually works really well and so this is what sometimes it's called rolling out essentially at every point in time that you have to make a decision you incorporate everything you know right now so the orders that have already arrived plus the forecasts for the orders that might arrive in the future and you make that plan but you only implement the first part of that plan okay does that make sense and I'll show you an example of what this means in an actual problem in a second okay questions up to this point yes yes so think think of this as a yes because as I was pointing it sort of if you think even in this simplified context if I expect a far away order to show up early in the day I'm much more likely to want to go to service it than a far away order that shows up later in the day so what I'm going to really have in practice is I'm going to have think of this as for every neighborhood or every city block in my service area I'm going to have some kind of a some kind of a probabilistic forecast that says these number these many orders per hour are showing up or something like this on average or the probability of certain things showing up and that's what you do other questions yes it's both so we're assuming here that they're proportional so so the time I've scaled my time in my distance such that the time it takes for me to make a dispatch that goes this far returns me at this time so it's both yes so the one thing I'll say here is this at this point I have not I'm not incorporating service times so you're you're right that if I have a service time then I will have to take that into account and that will that will impact this plan slightly and you might want to do that then yes other questions okay so so enough with simplified examples let's talk about something that's a little more realistic so now think of really a general network topology so I have a road network and I've identified nodes in this network to be the neighbourhoods or the city blocks or the addresses that are of interest to me within my service region and now I'm gonna I'm gonna have to sort of do the same thing I just did but actually route this vehicle through this network from the Depot and back and so this is an example of what one of these problems might look like as well as a solution to the problem so think here of the number as being how many hours were left in the in the service day in the vehicles operating day when this order showed up so six means this order showed up very early in the day and a 1 means this order showed a very late in the day and so in this particular case the example that I'm showing you is I have two dispatches 1 leaves 3 hours before the deadline and takes one hour to these orders down here and then a second dispatch leaves when there's two hours left and essentially the vehicle is at that point in operation until the end of the Working Day so I will point out right away that this solution breaks that rule that I had said before of you know the longer dispatches first and the shorter dispatches second this is a case where that that relationship is broken because of course in practice you would not expect that to always hold okay is the example clear okay so then let's think conceptually of what this means if we if we follow a similar reasoning process that we just did for the for the simple one-dimensional case what does that mean for the general network topology so now the the think of the y-axis not as a distance anymore but simply this is like a Gantt chart right this is a different point and the y-axis for every potential customer location for every neighborhood and in the deterministic context so if I know exactly when an order is ready to go I might have something like this and then I might have a solution that looks like this so this solution says I dispatch the vehicle at this time to serve these two orders visits this order first this order second and then comes back and then I make a second dispatch that serves these two orders and visits this order for first then order three and then back so this is no longer going on a line this is simply conceptually what would be the order in which I would visit these customers exactly okay great so just like in the one-dimensional case even though I can no longer guarantee that the distances are going to be decreasing I can certainly in a deterministic context if I know exactly when every order is going to be ready I can once again push all the all the waiting to the front and push all the operations to the back so once again I can't expect that I would have a time at which I accumulate orders but then once I decide to start my operation the vehicle and the the workforce will be constantly working for the rest of the day so once again here I have this this is a managerially this kind of makes sense right you were basically going to have an off period in an on period you're going to have a point in time at which you just let enough orders accumulate and at some point you start dedicating the resource and at that point the the the vehicle is essentially operating for the rest for the rest of the the time that it has to be so obviously there are differences so what are the differences here we we cannot rely on these very simple geometry to do the analysis we now have to throw it throw this model to a much you know much more of a workhorse in this case an integer programming solver of some kind for those of you who are familiar with integer programming models and specifically for routing models what we basically have to solve here is something that's called the price collecting traveling salesman problem that has a bunch of interesting side constraints in this case there's order release times which means an order cannot be served before its release which in this case would be when it's picked and ready to go and the pickups occur at the depot so this means I'm not trying I'm not designing a single vehicle route I'm designing a multiple of route a multiplicity of routes in which each route serves orders that were ready at the moment in time when the vehicle left the Depot potato potato it just depends on what you want to call it so so what I say price collecting TSP but some people call it some people call it when it's profits they call that orienteering it's the same thing yeah other questions what nobody else wants to talk about orienteering okay this game okay so so for a deterministic problem you would basically solve an integer programming model of this kind and so you I'm not gonna promise that it's gonna solve in seconds but it's gonna solve in minutes so with the integer programming technology we have nowadays you can solve a model of this kind in minutes or even less okay and so how does this work in the general case the the analysis is essentially very similar to what I was describing before so I now replace my known order time with an order forecast that says I'm might get in order sometime in this span of time I might get an order sometime here in this span of time I might not and I replace all of those I replaced the forecast with a bunch of copies of those borders and those copies are once again sort of discounted by their probabilities and now I have a problem pretty much like what I had before and I can come up with a route plan kind of like what I did before except now it's an actual route plan and it might look something like this and then just like just like in the other version of the problem this route plan tells me here's what I will do if the orders show up by the time that I plan to make the dispatch and so of course this is kind of my coverage region so to speak for each of these orders if the order shows up in the time that's identified by the gray rectangles then I will cover it and if it doesn't then I will and so if I have a realization which occurs after the coverage moment so for example this one then I can make an update I can simply say well that order didn't show up in time so I'm not going to cover it in this in this particular case some extent and so this is the basic idea although once again if you simply implement this plan and make these simple updates you've got a rig to a much too rigid plan that's not really going to be good in practice so what you're going to want to do in this case is do the rolling out that we talked about before every time you need to make a dispatch you will you know essentially incorporate all the information you've got right now so that includes the actual orders that have arrived in our open plus the forecast for the orders that might show up in the future you solve a model of this kind and you implement the decision that tells you to make right now and once the vehicle returns and you have to make another decision you update your information and repeat okay and here's an example of what this looks like if you try to test it on an actual instance on an on something more closely resembling like a a road network and you know order forecast that kind of look realistic this kind of a thing so I'm basically showing you what happens if you just implement the plan that I show before with no updates and no dynamic changes and then a bunch of versions of this of this updating or this rolling out that I was describing and which you can see is basically that as you would expect the the the cost goes down and also the interesting thing that the thing that we're not expecting is also the variance goes down so you you lower the cost the expected cost and you are more confident that that's what the cost is going to be in addition so in this version of the model we're assuming that you outsource all unserved orders to a third party at the end of the day and you're essentially paying a cost that's perfect that's equivalent to just a direct delivery for each of those orders and with this the fill rate here is describing is how many of the orders did we serve ourselves and you can see that by being nimble and dynamic like this you lower your cost but you don't hurt your fill rate you actually improve your fill rate which is kind of nice because you are essentially saying you can serve both objectives simultaneously so if your adaptive if you're nimble if you take advantage of the information as it's revealed to you you can actually improve your service as well exactly okay so back to fill rate so I said at the beginning that in some sense you can you can choose whatever objective you like so you can choose an objective that talks a little bit more about operating costs which would want to minimize the routing costs as some proxy for for maybe for the workforce costs and the vehicle utilization cost in these kinds of things but if if if those costs in many situations those costs are going to be secondary to the the lost sale costs let's say if you can't serve an order for some reason and and in many of these in many of these models people care much more about actually serving the orders that's really the only objective and so in that case you would want to do something like maximize the fill rate and so our experiment here is basically showing you a a thought experiment of what happens when you do this so think here of alpha as how much do I penalize myself for not serving an order and the relative weight that I give and not serving in an order versus the routing cost so when I say alpha equals 1 this is the setup I showed you before where I can essentially outsource to a third party and every order is just that I don't cover myself I cover with a direct delivery alpha equals 2 means that direct delivery costs me twice what it would cost to send my vehicle to do it this would be if the third party charges you a high premium and then 100 basically means I'm losing that order if I don't serve it myself so I I must at all costs serve orders if at all possible and the the routing costs are secondary and are only simply I just include them as a tiebreaker basically and this sort of shows you what happens so the punchline here is to increase your fill rate even a little bit you have to increase your costs by a lot so we we find this to be kind of an interesting an interesting insight because a lot of people are concerned only with maximizing fill rate and don't care about the operating costs and what our experiments show is that that last percentage point of fill rate that you're getting is costing you a significant amount if you care at all about operating costs and let me show you one specific example of this so this is the example I showed you at the beginning the same exact data is sort of like what if we had this data but in one case we were maximum we were optimizing routing costs in any other case we were optimizing fill rate and this is the solution I showed you before which looks reasonably economical looks reasonable reasonably kind of like well organized if you want to serve one more order you have to do this thing over here so you haven't set a to dispatch dispatches you have five and the the routing part of the solution goes up by about 50 percent so the punch down here if you want to take one thing away is simply that you you will see very very high to create you know decreasing economies if you really are pushing fill rate to the limit and you might want to think about is it really you know is there some is there some middle ground at which you're willing to live with okay questions alright so in my remaining time I'm gonna sort of take a step back and think then about this is this everything we've seen up to this point is what would a dispatcher do so I have my my service region defined for me I have my horizon defined for me I know what the forecast is and I'm simply just dealing with it as it comes but so what if we're going to take a step back and maybe think a little bit more about designing the system and about how many of you know how big should our fleet be for same-day delivery how many resources should we dedicate to this service or how late in the day should we offer this service so this is the kind of questions we're actually thinking about now I'm going to give you just a simple example of the kinds of results that we've come up with so if you take a step back the question then is like instead of worrying about the nitty-gritty what if we just worried about what's gonna happen on the average in any given day so I still have the same set up I have a single Depot or a fulfillment center and this fulfillment center has some established service region in which it's going to serve same-day delivery orders and I want to sort of think of what is this what is this dispatch you're gonna see on average so instead of thinking of a probabilistic forecast let's just take orders as arriving at some constant rate such that over the service horizon the constant rate will give me the number of orders that I expect on an average day so if on an average day I expect you know a hundred orders and I have ten hours in my in my service Rison that means ten orders an hour and they're spread exactly evenly so there's no unpredictability here I'm just seeing kind of a constant arrival of orders and when they show up I don't know where they're going to show up they're gonna show up randomly somewhere in my service region okay and then to serve them oh and all of them have to be served all of the I'm going to essentially make it really simple on myself and I'm gonna say I have some point in time at which the the orders accumulate I stopped accepting new orders at this point in time in my vehicle or vehicles have to be back at some later time so I'm making my problem I'm trying to simplify a lot of the bells and whistles that I had before and simply looking at something very very simple and I'm going to further simplify the problem by not worrying about the routing too much in detail so if I'm operating the system I have to worry about when is the vehicle leaving when is it getting to this address when is it getting to this address but taking a step back if I say well on average these many orders will show up and they'll be I expect them to sort of be randomly dispersed within my service region then I can I can do an estimate of how long it's going to take to serve those orders and these these kinds of estimates are used a lot in in logistics contexts and you can think of this as if maybe I would a sample I would simulate you know a hundred different order locations and then figure out what the routing cost is for those orders of the routing time I can fit a model of this kind using regression and I get very very accurate measurements but once I do this I don't worry this is not going to tell me where at what time am i visiting this address it's not going to tell me anything like this it's simply going to give me an estimate for how long the vehicle is going to be out okay so we're gonna use this to simply look at what does the dispatcher expect to see over the course of the day and so I'm showing one example down here of what the dispatch what the operator operations might look like right and what I'm saying here is my this is my horizon in which I accept orders and let's just pretend maybe that I split my horizon into three equal parts and so at at every at every third I dispatched the vehicle with whatever's accumulated so far the vehicle comes back at some point I wait till the second third I dispatch the vehicle again and then one last time at the end of the day this is one example of what I might do on an average day and I'm gonna use this kind of a this this model to sort of play some what-if do some what-if analysis and say what if I did this what if I did that what if I increase this what if I decrease that this is the idea so so first think of the case in which I don't have a single vehicle I have a bunch of vehicles available to me what would I want to do so it turns out what you want to do in this case is have the first vehicle wait and accumulate as many orders as possible until the point in time at which that vehicle leaves and has just enough time to come back by the deadline and then rinse and repeat the second vehicle starts accumulating the orders that showed up after the first vehicle left and at some point that vehicle has just enough time to leave and come back right before the deadline and that would be in this case the pink dispatch and then in this case there's a third vehicle that accumulates the remaining orders until the end of the the service window and then leaves and comes back but it might be depending on where you set you're at the end of your service window that you only need two vehicles or you might need four it depends okay now I've made the I've made the simplification here that the service vehicle serves the entire service region so I can I can't tell one vehicle to go only to the west and the other vehicle to go only to the east this is a simplification in which I serve I take all comers when they come ok and so if I make those assumptions this is what the the average dispatch plan would look like and notice a couple things one I wait I accumulate and once I start I'm in operation continuously until the end of the horizon and every dispatch I expect on average to be decreasing in length so the first dispatch is the longest the second dispatch is the second longest the third dispatches the third longest or the shortest in this case so the the average behavior of my system reflects some of the structural properties that I had that I was identifying in my very simple models up front so that's kind of a nice sanity check so then this is the example of many vehicles so let's let's now look at the one vehicle case what is that going to look like in a sense it's going to be very very similar but a little more complicated what's basically going to happen is I'm going to wait until some point in time and that from that forward the vehicle is going to be in continuous operation until the end of the horizon so exactly as we had described before I simply I have an off period in which I accumulate orders and then once I start operating the vehicle is in constant operation until the end of the business day and I have again decreasing dispatch lengths because at the beginning of the day I'm banking many more orders but as I get closer and closer I have much less of a wiggle room of how far the vehicle can go what word can do so it just has to it has to take fewer orders and in both cases this is this is going to basically predict this is predicting what might happen on an average operating day and I can tell you we've already I did not include the the slide here but we've done validation experiments sort of saying okay this this looks nice but does this actually work and so if you for example were to calibrate something like this so you say okay what is my service region look like and let me fit a routing approximation that captures the the the traffic the travel times in traffic and the topology of this network and now based on this approximation let me make predictions about what would the actual operating day look like if I simulate different days in which I simulate orders showing up in different places you know at different times and the the predictions are remarkably accurate so in our we had one example in which we do a setup just like this any one in which we predict three dispatches and we predict roughly speaking on average your first dispatch will take these many orders the second dispatch will take these many orders and the third dispatch will take the remainder and we observe something like in 98% of the cases there's three dispatches and the average that we take the empirical average we observe is on the nose to what we're predicting so this is actually going to tell you how the system is going to work it most of the time okay and so then let me give you an example of then how do you actually make decisions with these kinds of models so imagine that I tell you that you have a distribution center that services an eight by 8 mile service region and we expect we have over a 10 hour service window for same-day delivery we expect about 75 orders to show up and we have a vehicle we we were conservative and we're going to assume that the vehicle travels at about 25 miles an hour on average and there's a one minute service time to deliver the order so the the the time that it takes for the driver to park drop-off the ordering and start up again and we're gonna assume Manhattan distances here just means rectilinear distances so sort of the more reflective of an urban road network right where you're mostly moving east-west or north-south okay so under these conditions what do we expect to happen what if we want it whether the question here the the the sort of load the illustrative question here is what if we wanted to use many vehicles or just one vehicle what would be the difference and so if you crunch the numbers based on the the examples I just showed you if you use many vehicles it turns out you only need two and the first dispatch will take about 64 orders on average and the second one will take the last 11 but if you only use one vehicle you have a slightly more symmetric dispatch plan the first dispatch takes about 55 orders on average and the second one takes 20 but the remarkable thing is if you look at the expected routing cost of both of these solutions there's an increase of only 4% so what you're basically saying is you're dedicating an extra resource to this operation and if you take that resource away and you you cut my number of vehicles in half my routing time or routing cost only goes up by 4% so that seems like a no-brainer right yes Martin well it's proportional to 64 and 55 right so I'm not doing the math here but let's see so 75 orders over 10 hours would be so if you do if you divide 64 by 75 that's the time of the first mismatch if you divide 55 by 75 you get the time of the of the first dispatch for each of the two solutions so it's proportional so it's certainly going to be the case that the vehicle is going to be operating longer but the the dispatch time increases by only 4% so that tells you how long the how much longer the the vehicle is the single vehicle is in operation compared to the two vehicles in the mini vehicle case now a different possibility here something else a manager might do instead is to say well if suppose I've already dedicated two vehicles to this operation and I don't want to take one vehicle away I have no other use for at them at the moment then an alternate thing to do here is to say well let's I might notice that the second dispatch has a bunch of slack and so instead of taking only 11 orders I might say well I'm gonna increase the 75 to maybe I think I did the numbers and it was 79 right so I'll take four more orders and that still gives me enough time to come back right at the deadline so on average right so if on average I can accept orders past the 10-hour service window that I did I establish I can in fact take orders from movie another 30 minutes right so the conclude the the maybe the way to say it is not that I'm gonna take four more orders but rather I'm going to keep the service open for another 30 minutes and my my research without changing my resources I can still serve four percent less oh no no this is this this is the dispatch time increase so this is saying how much the total routing time of the two dispatches here is four percent higher than the total routing time of the dispatches here so what this is saying is if you wanted to dedicate so if you didn't want to have the fixed cost of having two vehicles dedicated to this service then the operating costs would go up by only four percent so so in some sense you're saying if you if you have two resources then you you your operating costs would be lower and if you're willing to if you're okay with the the dedication of the two resources to this service then that's how much lower the service they're how much lower the operating costs would be but in that case I would I would also then say you can also at that point extend this service window another 30 minutes on average that that would be another possibility here and so this is essentially the kind the kind of analysis that we're doing with these models other questions terrific okay so wrapping it up I'm very excited by problems in E retail by problems in the last mile I think there's a lot of cool stuff happening in this space specifically for same-day delivery it makes everything really challenging which is in a sense good for us it keeps us in business the the the let's say if you wanted to sort of think of what are the fundamental trade-offs when you're making the the dispatching decisions and when you're operating the system it's really this this these two things right here right I have to decide do I keep my vehicle at the Depot do I wait and get more information but then if I wait I am less flexible later or do I dispatch the vehicle now but then the vehicle is not available when new things come in or and if I decide to make the dispatch do I make a short dispatch which brings the vehicle back sooner and lets me update more and be more nimble or do I take advantage of economies of scale and dispatch dispatch it for longer these are these are interesting difficult questions right this is basically what makes the problem so interesting and what I've basically hopefully argued here for a little bit is on the operational side you can start with a very simplified problem and still derive some useful structural properties that will help your dispatching plans but if you want any hope of actually having low cost dispatching plans you do have to be adaptive and nimble you have to incorporate information as it comes in and be dynamic and on the tactical side the the average behavior is surprisingly reflecting a lot of the properties that we saw in the operational models and the other interesting thing we notice is that the economies of scale in these tactical models tell you that there's going to be let's say maximum asymmetry so you will you will not use your resources equally in fact what you want to do if you're optimizing your your routing costs is to use them as unequally as possible which is kind of a weird thing to think about right if you're thinking of fairness if you're thinking of how long two different drivers are working if you're thinking of the the depreciation or the just the the the the what's gonna happen to the two different vehicles if you're not careful you you're gonna have an unequal utilization of resources and in in general this this this also leads to lots of interesting questions so thanks very much for your time yes this is something else that a lot of us are looking at so in some sense you can think of one of the versions of our problem the version where we say we outsource whatever's left as the version with drivers on-demand although of course what's happening in a lot of situations is that's becoming the bulk of the operation and the the the I would say there's many many interesting questions that come up in that case one of them being in some sense you now have a marketplace right it depends on so it depends on what kind of drivers on demand you have but if you really are talking some kind of an uber model then it's it's a marketplace and now you have to worry about pricing on both sides you price the service to the customer and you price the the delivery cost to the driver so that I'm telling ya I mean that's I'm very excited by these kinds of problems they're very interesting and I think there's lots to do there too yeah other questions yes so this this research does it feed into when you companies develop like softly now software custom software interesting problem because it kind of speak to like yeah so so to both I think our thought here our thought process was on the operational questions this would really be how would you design a software dispatching algorithm that would help in the actual day-to-day decision support of the operation of a warehouse and we have we have talked to let's say companies that shall remain nameless about kind of what they do and they take our you know they took our but they give us some feedback on these different questions and then on the on the tactical side the the question there really is should I offer this service where should I offer this service how big sure might should my service area be these kinds of questions and that's more what we're hoping to answer with the second set of results yes yes so this is a problem I find very interesting and we're thinking about it right now yes so the the the some of the structural results that I've showed you so far sort of indicate that you might even want to think of designing a dynamic service area right earlier in the day the service area goes farther out later in the day the service area comes farther in comes closer in this is definitely an interesting question for sure well thank you very much