This tutorial will guide you through an example in Rembrandt.
In this tutorial, you will use Rembrandt to model the scenario of a last mile delivery service and optimize the assignment of parcels to drivers. For this purpose, pre-filled databases are provided, and you will be guided step by step through the preparation and usage of the scenario in Rembrandt.
The resource types in this use case are Microdepots, Receivers, Deliverers, and Tours. Receivers represent single parcels, including information on destination address, size, and so on. These parcels have to be delivered from a Microdepot to the actual recipient by a deliverer. For this, receivers have information on their so-called wish-timeframes stored, i.e., information in which time window the shipment is to be delivered by the deliverer. The resource allocation and optimization goal in this scenario is assigning all parcels to deliverers and tours so that these are as efficient as possible.
For following this tutorial, you can use a local installation by following the steps below.
- 1.We will use Docker for deploying Rembrandt, but extend the provided set-up by the pre-filled database, so make sure you have Docker installed and running.
- 2.Now, please create a
docker-compose.ymlfile with the following content:
This docker-compose file has the same content as the regular deployment file but contains an additional service smile-data. This service runs at start up and adds scenario-specific data into Rembrandt's database. The tag recipe determines the degree of prefilling, where as recipe already contains the most possible data. See the DockerHub page of this image to check out the other tags and their contents.
3. To make the exemplary optimization algorithms known to your system, please run the following commands:
$ docker pull bptlab/rembrandt-smile-opal:munkres
$ docker pull bptlab/rembrandt-smile-opal:rule
These commands will download two docker images containing optimization algorithms for the last mile delivery use case. They contain the logic for the actual resource allocation. See the DockerHub page for more details.