| CaseStudyForm | |
|---|---|
| Title | Modelling Requests to a Courier Service |
| DateSubmitted | 9 Aug 2009 |
| CaseStudyType | TeachingCaseStudy |
| OperationsResearchTopics | SimulationModelling |
| ApplicationAreas | Logistics |
| ProblemDescription | A courier company offers two services: an Inner City delivery service that delivers packages within the Inner City area in under an hour; a Metropolitan delivery service that delivers packages within the Metrolpolitan area in less than 4 hours. An Inner City courier leaves the distribution centre if EITHER there are 10 deliveries to make OR it has been 15 minutes since the last Inner City delivery run departed. A Metropolitan courier leaves the distribution centre if EITHER there are 30 deliveries to make OR it has been 30 mins since the last Metropolitan run departed. The courier company works for 8 hours a day and starts each day with no deliveries to make. The courier company has collected data on the time between requests for both Inner City and Metropolitan deliveries as well as the time to make Inner City and Metropolitan deliveries. They want to know how many deliveries their Inner City and Metropolitan couriers make each day and also how long they are on the road during a day. |
| ProblemFormulation |
To simplfy the modelling we will abstract 4 sections of the problem:
The way to implement this flow digram will differ depending on the simulation modelling tools used.
|
| ComputationalModel | To model the flow digram from Figure 1 we first abstract the delivery requests and request runs as Arena submodels. The submodel for requests only generate requests, so a single submodel with only an exit point is needed. The submodel for a delivery run has the load of deliveries as input and outputs the load of deliveries after the delivery run finishes, so it has a single entry and exit point. The following flash tutorial shows how to add the appropriate submodels in Arena: Adding submodels for Courier Model Next, we want queues that store delivery entities until a delivery run occurs. The next flash tutorial shows how to add a Hold module and a Variable to implement this queue for Inner City deliveries: Adding waiting queue for Courier Model Next, we want to create logical entities to take care of triggering delivery runs if either a given time interval passes or a number of delivery requests have been queued. We create a single logical entity that creates a duplicate entity for timing and then goes into a Hold module waiting for the timing entity to finish or the queue to reach the required length. Note The timing entity does not do anything except create a calendar event when it leaves. This calendar event means the Hold module will scan and release the logical entity if a delivery run should be triggered. The following flash tutorial shows how to implement the logical entity for the Inner City deliveries: Adding logical entity to Courier Model |
| Results | The results... |
| Conclusions | In conclusion... |
| ExtraForExperts | |
| StudentTasks | |
| I | Attachment | History | Action | Size | Date | Who | Comment |
|---|---|---|---|---|---|---|---|
| |
courier-delivery.swf | r1 | manage | 2379.3 K | 2009-08-09 - 10:42 | MichaelOSullivan | Adding delivery run to Courier Model |
| |
courier-logical.swf | r1 | manage | 1953.1 K | 2009-08-09 - 09:55 | MichaelOSullivan | Adding logical entity to Courier Model |
| |
courier-submodels.swf | r1 | manage | 798.0 K | 2009-08-09 - 08:45 | MichaelOSullivan | Adding submodels for Courier Model |
| |
courier-waiting.swf | r1 | manage | 502.0 K | 2009-08-09 - 08:53 | MichaelOSullivan | Adding waiting queue for Courier Model |