Suppose food delivery for several restaurants (say 20). There are (say, 10) drivers. In addition, let me say that we receive 100 orders within 4 hours to deliver food from these restaurants to homes.
Therefore, drivers must be coordinated for pickups in place and delivered to customers at home.
The main goal is to minimize delivery time, that is, the time between ordering and arrival at home. The secondary goal is to maximize driver capacity (i.e., the least amount of time to deliver all orders).
Keep in mind that orders come in four hours, so let them speak evenly, that is, one very 3 minutes. In addition, suppose orders are randomly presented in 20 restaurants.
Suppose I can calculate the time to travel from anywhere to destination to the second.
I know the location of all the drivers in real time. I also know their statuses, i.e. Whether they are currently en route to receive an order (to reach a known destination), have already received an order and are sent to a known destination.
Restrictions: 1) Must pick up the order after a certain time (that is, the cooking time at the restaurant) 2) Must place the order in less than 45 minutes (otherwise a warning is thrown) 3) Must dial the time with "x" minutes to adjust by the time spent on foot to save the pickup order, etc. 4) Must dial the time using "y" minutes to take into account the time taken to deliver the client to the client and collect payments. 5) Drivers have only a certain set of payment methods (for example, Cash, Visa, Amex, MasterCard). We must comply with the client’s request (cash, visas, etc.) with the driver’s capabilities (cash, visas, amek, etc.).
, , , "" ( ), .
, , , , , . , , .