5.1 Scenario Object

The input to the optimiser is a scenario object. It has the following fields:

  1. Field: id
    Required: No.
    Type: String.
    Description: An identifier for this scenario assigned by the client. The form of this identifier is client dependent, for example it may be a database id or a UUID.
  2. Field: tags
    Required: No.
    Type: Array of strings.
    Description: Client-specific information associated with the scenario. This field is ignored by the optimiser.
  3. Field: general
    Required: Yes.
    Type: A general object.
    Description: Contains global optimiser parameters and settings. Must not be null.
  4. Field: iteration_schemes
    Required: No.
    Type: Array of iteration batch objects.
    Description: Defines iteration schemes. The order of the batches in each scheme is defined by the order of this array.
  5. Field: rush_hour
    Required: No.
    Type: Array of rush hour objects.
    Description: Contains the rush hour time scaling settings.
  6. Field: locations
    Required: Yes.
    Type: Array of location objects.
    Description: The set of order pickup and delivery, and vehicle start and finish locations. Must not be null or empty.
  7. Field: orders
    Required: Yes.
    Type: Array of order objects.
    Description: The set of orders that are to be assigned by the optimiser. Must not be null or empty.
  8. Field: fleet
    Required: Yes.
    Type: Array of vehicle objects.
    Description: The set of vehicles making up the fleet. Must not be null or empty.
  9. Field: compartments
    Required: No.
    Type: Array of compartment objects.
    Description: The set of compartments associated with the fleet.
  10. Field: fatigue_management
    Required: No.
    Type: Array of break objects.
    Description: The set of break objects that describe how the drivers should take breaks.
  11. Field: order_vehicle_compatibility
    Required: No.
    Type: Array of attribute pair objects.
    Description: The rules describing the compatibility between orders and vehicles.
  12. Field: order_compartment_compatibility
    Required: No.
    Type: Array of attribute pair objects.
    Description: The rules describing the compatibility between orders and compartments.
  13. Field: order_precedences
    Required: No.
    Type: Array of order precedence objects.
    Description: The order precedences for the scenario.
  14. Field: order_order_compatibility
    Required: No.
    Type: Array of attribute pair objects.
    Description: The rules describing the compatibility between different orders.
  15. Field: load_order_order_compatibility
    Required: No.
    Type: Array of attribute pair objects.
    Description: The rules describing the compatibility between different orders within a load.
  16. Field: current_routes
    Required: No (unless replanning).
    Type: Array of route objects.
    Description: If replanning, these are the routes from the previous solution. These are ignored if not replanning.
  17. Field: time_matrix
    Required: No.
    Type: Array of array of numbers which is a (square) matrix giving the transit times between all pairs of locations in the scenario measured in minutes. The rows and columns are ordered as per the order of the locations field. May be null, in which case the optimiser will compute the transit times itself.
  18. Field: distance_matrix
    Required: No.
    Type: Array of array of numbers which is a (square) matrix giving the transit distances between all pairs of locations in the scenario measured in kilometres. The rows and columns are ordered as per the order of the locations field. May be null, in which case the optimiser will compute the transit distances itself.