Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
operations_research::GlobalDimensionCumulOptimizer Class Reference

#include <routing_lp_scheduling.h>

Public Member Functions

 GlobalDimensionCumulOptimizer (const RoutingDimension *dimension, RoutingSearchParameters::SchedulingSolver solver_type)
 GlobalDimensionCumulOptimizer.
 
DimensionSchedulingStatus ComputeCumulCostWithoutFixedTransits (const std::function< int64_t(int64_t)> &next_accessor, int64_t *optimal_cost_without_transits)
 
DimensionSchedulingStatus ComputeCumuls (const std::function< int64_t(int64_t)> &next_accessor, const std::vector< RoutingModel::RouteDimensionTravelInfo > &dimension_travel_info_per_route, std::vector< int64_t > *optimal_cumuls, std::vector< int64_t > *optimal_breaks, std::vector< std::vector< int > > *optimal_resource_indices_per_group)
 
DimensionSchedulingStatus ComputePackedCumuls (const std::function< int64_t(int64_t)> &next_accessor, const std::vector< RoutingModel::RouteDimensionTravelInfo > &dimension_travel_info_per_route, std::vector< int64_t > *packed_cumuls, std::vector< int64_t > *packed_breaks)
 
const RoutingDimension * dimension () const
 

Detailed Description

Definition at line 907 of file routing_lp_scheduling.h.

Constructor & Destructor Documentation

◆ GlobalDimensionCumulOptimizer()

operations_research::GlobalDimensionCumulOptimizer::GlobalDimensionCumulOptimizer ( const RoutingDimension * dimension,
RoutingSearchParameters::SchedulingSolver solver_type )

Member Function Documentation

◆ ComputeCumulCostWithoutFixedTransits()

DimensionSchedulingStatus operations_research::GlobalDimensionCumulOptimizer::ComputeCumulCostWithoutFixedTransits ( const std::function< int64_t(int64_t)> & next_accessor,
int64_t * optimal_cost_without_transits )

If feasible, computes the optimal cost of the entire model with regards to the optimizer_core_'s dimension costs, minimizing cumul soft lower/upper bound costs and vehicle/global span costs, and stores it in "optimal_cost" (if not null). Returns true iff all the constraints can be respected.

Definition at line 2587 of file routing_lp_scheduling.cc.

◆ ComputeCumuls()

DimensionSchedulingStatus operations_research::GlobalDimensionCumulOptimizer::ComputeCumuls ( const std::function< int64_t(int64_t)> & next_accessor,
const std::vector< RoutingModel::RouteDimensionTravelInfo > & dimension_travel_info_per_route,
std::vector< int64_t > * optimal_cumuls,
std::vector< int64_t > * optimal_breaks,
std::vector< std::vector< int > > * optimal_resource_indices_per_group )

If feasible, computes the optimal values for cumul, break and resource variables, minimizing cumul soft lower/upper bound costs and vehicle/global span costs, stores them in "optimal_cumuls" (if not null), "optimal_breaks" and "optimal_resource_indices_per_group", and returns true. Returns false if the routes are not feasible.

Definition at line 2595 of file routing_lp_scheduling.cc.

◆ ComputePackedCumuls()

DimensionSchedulingStatus operations_research::GlobalDimensionCumulOptimizer::ComputePackedCumuls ( const std::function< int64_t(int64_t)> & next_accessor,
const std::vector< RoutingModel::RouteDimensionTravelInfo > & dimension_travel_info_per_route,
std::vector< int64_t > * packed_cumuls,
std::vector< int64_t > * packed_breaks )

Similar to ComputeCumuls, but also tries to pack the cumul values on all routes, such that the cost remains the same, the cumuls of route ends are minimized, and then the cumuls of the starts of the routes are maximized.

Note
It's assumed that all resource variables (if any) are Bound() when calling this method, so each vehicle's resource attributes are set as constraint on its route and no resource assignment is required.

Definition at line 2607 of file routing_lp_scheduling.cc.

◆ dimension()

const RoutingDimension * operations_research::GlobalDimensionCumulOptimizer::dimension ( ) const
inline

Definition at line 945 of file routing_lp_scheduling.h.


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