C++ Reference

C++ Reference: Routing

RoutingModel::ResourceGroup

Detailed Description

A ResourceGroup defines a set of available Resources with attributes on one or multiple dimensions.

For every ResourceGroup in the model, each (used) vehicle in the solution which requires a resource (see NotifyVehicleRequiresResource()) from this group must be assigned to exactly 1 resource, and each resource can in turn be assigned to at most 1 vehicle requiring it. This vehicle-to-resource assignment will apply the corresponding Attributes to the dimensions affected by the resource group. NOTE: As of 2021/07, each ResourceGroup can only affect a single RoutingDimension at a time, i.e. all Resources in a group must apply attributes to the same single dimension.

Definition at line 437 of file routing.h.

Classes

class  Attributes
 Attributes for a dimension. More...
 
class  Resource
 A Resource sets attributes (costs/constraints) for a set of dimensions. More...
 

Public Member Functions

 ResourceGroup (const RoutingModel *model)
 
int AddResource (Attributes attributes, const RoutingDimension *dimension)
 Adds a Resource with the given attributes for the corresponding dimension. More...
 
void NotifyVehicleRequiresAResource (int vehicle)
 Notifies that the given vehicle index requires a resource from this group if the vehicle is used (i.e. More...
 
const std::vector< int > & GetVehiclesRequiringAResource () const
 
bool VehicleRequiresAResource (int vehicle) const
 
const std::vector< Resource > & GetResources () const
 
const ResourceGetResource (int resource_index) const
 
const absl::flat_hash_set< DimensionIndex > & GetAffectedDimensionIndices () const
 
int Size () const
 

Constructor & Destructor Documentation

◆ ResourceGroup()

ResourceGroup ( const RoutingModel model)
inlineexplicit

Definition at line 477 of file routing.h.

Member Function Documentation

◆ AddResource()

int AddResource ( Attributes  attributes,
const RoutingDimension dimension 
)

Adds a Resource with the given attributes for the corresponding dimension.

Returns the index of the added resource in resources_.

◆ GetAffectedDimensionIndices()

const absl::flat_hash_set<DimensionIndex>& GetAffectedDimensionIndices ( ) const
inline

Definition at line 502 of file routing.h.

◆ GetResource()

const Resource& GetResource ( int  resource_index) const
inline

Definition at line 498 of file routing.h.

◆ GetResources()

const std::vector<Resource>& GetResources ( ) const
inline

Definition at line 497 of file routing.h.

◆ GetVehiclesRequiringAResource()

const std::vector<int>& GetVehiclesRequiringAResource ( ) const
inline

Definition at line 489 of file routing.h.

◆ NotifyVehicleRequiresAResource()

void NotifyVehicleRequiresAResource ( int  vehicle)

Notifies that the given vehicle index requires a resource from this group if the vehicle is used (i.e.

if its route is non-empty or vehicle_used_when_empty_[vehicle] is true).

◆ Size()

int Size ( ) const
inline

Definition at line 506 of file routing.h.

◆ VehicleRequiresAResource()

bool VehicleRequiresAResource ( int  vehicle) const
inline

Definition at line 493 of file routing.h.


The documentation for this class was generated from the following file: