RichVRP ========= The RichVRP is a demo that combines multiple elements supported by VRPSolverEasy. It has open routes, multiple depots, multiple time windows, two types of vehicles (small and big), optional customers, and incompatible vehicles (some customers can be served only by small vehicles). Instance format ---------------------------- The demo reads instances in the following format\: .. code-block:: text # Number of depots 0 ... M-1 # Number of customers M ... M+N-1 For example, the example instance at demos/data/RichVRP/toy.txt has the following content\: .. code-block:: text 2 0 0 0 0 1000 1 100 100 0 500 200 400 3.2 1 50 20 1.0 4 6 2 5 15 35 50 0 1 1 20 100 3 5 25 15 50 1 1 1 0 100 4 15 15 100 50 0 0 1 180 250 5 75 60 20 50 0 1 3 0 100 200 300 400 500 6 50 50 80 50 0 0 1 80 130 7 35 75 30 50 0 0 2 0 50 500 600 which is read as follows\: .. code-block:: text Depots: Depot(id: 0, x: 0, y: 0, tw_begin: 0, tw_end: 1000) Depot(id: 1, x: 100, y: 100, tw_begin: 0, tw_end: 500) Big Vehicle: Vehicle(capacity: 200, fixed_cost: 400, var_cost: 3.2, max_number: 1) Small Vehicle: Vehicle(capacity: 50, fixed_cost: 20, var_cost: 1.0, max_number: 4) Customers: Customer(id: 2, x: 5, y: 15, demand: 35, service_time: 50, optional: False, only_small_veh: True, time_windows: [(20, 100)]) Customer(id: 3, x: 5, y: 25, demand: 15, service_time: 50, optional: True, only_small_veh: True, time_windows: [(0, 100)]) Customer(id: 4, x: 15, y: 15, demand: 100, service_time: 50, optional: False, only_small_veh: False, time_windows: [(180, 250)]) Customer(id: 5, x: 75, y: 60, demand: 20, service_time: 50, optional: False, only_small_veh: True, time_windows: [(0, 100), (200, 300), (400, 500)]) Customer(id: 6, x: 50, y: 50, demand: 80, service_time: 50, optional: False, only_small_veh: False, time_windows: [(80, 130)]) Customer(id: 7, x: 35, y: 75, demand: 30, service_time: 50, optional: False, only_small_veh: False, time_windows: [(0, 50), (500, 600)]) Run instances ---------------------------- You can solve an instance by specifying different parameters directly in the command line, like this:: python RichVRP.py -i -t