C++ Reference
C++ Reference: Routing
routing_lp_scheduling.h
Go to the documentation of this file.
const RoutingDimension & dimension() const
Definition: routing_lp_scheduling.h:56
int64 CumulMax(int index) const
Definition: routing_lp_scheduling.h:51
bool PropagateCumulBounds(const std::function< int64(int64)> &next_accessor, int64 cumul_offset)
int64 CumulMin(int index) const
Definition: routing_lp_scheduling.h:47
CumulBoundsPropagator(const RoutingDimension *dimension)
bool OptimizeAndPack(const std::function< int64(int64)> &next_accessor, RoutingLinearSolverWrapper *solver, std::vector< int64 > *cumul_values, std::vector< int64 > *break_values)
DimensionCumulOptimizerCore(const RoutingDimension *dimension, bool use_precedence_propagator)
bool Optimize(const std::function< int64(int64)> &next_accessor, RoutingLinearSolverWrapper *solver, std::vector< int64 > *cumul_values, std::vector< int64 > *break_values, int64 *cost, int64 *transit_cost, bool clear_lp=true)
DimensionSchedulingStatus OptimizeAndPackSingleRoute(int vehicle, const std::function< int64(int64)> &next_accessor, RoutingLinearSolverWrapper *solver, std::vector< int64 > *cumul_values, std::vector< int64 > *break_values)
const RoutingDimension * dimension() const
Definition: routing_lp_scheduling.h:554
DimensionSchedulingStatus OptimizeSingleRoute(int vehicle, const std::function< int64(int64)> &next_accessor, RoutingLinearSolverWrapper *solver, std::vector< int64 > *cumul_values, std::vector< int64 > *break_values, int64 *cost, int64 *transit_cost, bool clear_lp=true)
bool ComputeCumuls(const std::function< int64(int64)> &next_accessor, std::vector< int64 > *optimal_cumuls, std::vector< int64 > *optimal_breaks)
bool IsFeasible(const std::function< int64(int64)> &next_accessor)
GlobalDimensionCumulOptimizer(const RoutingDimension *dimension)
const RoutingDimension * dimension() const
Definition: routing_lp_scheduling.h:711
bool ComputeCumulCostWithoutFixedTransits(const std::function< int64(int64)> &next_accessor, int64 *optimal_cost_without_transits)
bool ComputePackedCumuls(const std::function< int64(int64)> &next_accessor, std::vector< int64 > *packed_cumuls, std::vector< int64 > *packed_breaks)
DimensionSchedulingStatus ComputePackedRouteCumuls(int vehicle, const std::function< int64(int64)> &next_accessor, std::vector< int64 > *packed_cumuls, std::vector< int64 > *packed_breaks)
LocalDimensionCumulOptimizer(const RoutingDimension *dimension, RoutingSearchParameters::SchedulingSolver solver_type)
DimensionSchedulingStatus ComputeRouteCumuls(int vehicle, const std::function< int64(int64)> &next_accessor, std::vector< int64 > *optimal_cumuls, std::vector< int64 > *optimal_breaks)
DimensionSchedulingStatus ComputeRouteCumulCost(int vehicle, const std::function< int64(int64)> &next_accessor, int64 *optimal_cost)
const RoutingDimension * dimension() const
Definition: routing_lp_scheduling.h:671
DimensionSchedulingStatus ComputeRouteCumulCostWithoutFixedTransits(int vehicle, const std::function< int64(int64)> &next_accessor, int64 *optimal_cost_without_transits)
void SetCoefficient(int ct_index, int index, double coefficient) override
Definition: routing_lp_scheduling.h:433
int64 GetObjectiveValue() const override
Definition: routing_lp_scheduling.h:500
int NumVariables() const override
Definition: routing_lp_scheduling.h:421
bool IsCPSATSolver() override
Definition: routing_lp_scheduling.h:444
void SetVariableDisjointBounds(int index, const std::vector< int64 > &starts, const std::vector< int64 > &ends) override
Definition: routing_lp_scheduling.h:384
RoutingCPSatWrapper()
Definition: routing_lp_scheduling.h:336
int CreateNewPositiveVariable() override
Definition: routing_lp_scheduling.h:356
double GetValue(int index) const override
Definition: routing_lp_scheduling.h:504
DimensionSchedulingStatus Solve(absl::Duration duration_limit) override
Definition: routing_lp_scheduling.h:468
~RoutingCPSatWrapper() override
Definition: routing_lp_scheduling.h:346
void AddMaximumConstraint(int max_var, std::vector< int > vars) override
Definition: routing_lp_scheduling.h:445
void AddProductConstraint(int product_var, std::vector< int > vars) override
Definition: routing_lp_scheduling.h:456
bool SetVariableBounds(int index, int64 lower_bound, int64 upper_bound) override
Definition: routing_lp_scheduling.h:366
void SetEnforcementLiteral(int ct, int condition) override
Definition: routing_lp_scheduling.h:464
double GetObjectiveCoefficient(int index) const override
Definition: routing_lp_scheduling.h:412
bool SolutionIsInteger() const override
Definition: routing_lp_scheduling.h:507
int CreateNewConstraint(int64 lower_bound, int64 upper_bound) override
Definition: routing_lp_scheduling.h:422
int64 GetVariableLowerBound(int index) const override
Definition: routing_lp_scheduling.h:397
void Clear() override
Definition: routing_lp_scheduling.h:347
void SetObjectiveCoefficient(int index, double coefficient) override
Definition: routing_lp_scheduling.h:400
void ClearObjective() override
Definition: routing_lp_scheduling.h:417
Dimensions represent quantities accumulated at nodes along the routes.
Definition: routing.h:2368
int64 GetObjectiveValue() const override
Definition: routing_lp_scheduling.h:316
int NumVariables() const override
Definition: routing_lp_scheduling.h:267
bool IsCPSATSolver() override
Definition: routing_lp_scheduling.h:281
void SetVariableDisjointBounds(int index, const std::vector< int64 > &starts, const std::vector< int64 > &ends) override
Definition: routing_lp_scheduling.h:244
int CreateNewPositiveVariable() override
Definition: routing_lp_scheduling.h:223
double GetValue(int index) const override
Definition: routing_lp_scheduling.h:319
DimensionSchedulingStatus Solve(absl::Duration duration_limit) override
Definition: routing_lp_scheduling.h:285
void SetCoefficient(int ct, int index, double coefficient) override
Definition: routing_lp_scheduling.h:277
void AddMaximumConstraint(int max_var, std::vector< int > vars) override
Definition: routing_lp_scheduling.h:282
void AddProductConstraint(int product_var, std::vector< int > vars) override
Definition: routing_lp_scheduling.h:283
bool SetVariableBounds(int index, int64 lower_bound, int64 upper_bound) override
Definition: routing_lp_scheduling.h:226
void SetEnforcementLiteral(int ct, int condition) override
Definition: routing_lp_scheduling.h:284
double GetObjectiveCoefficient(int index) const override
Definition: routing_lp_scheduling.h:259
RoutingGlopWrapper(const glop::GlopParameters ¶meters)
Definition: routing_lp_scheduling.h:214
bool SolutionIsInteger() const override
Definition: routing_lp_scheduling.h:322
int CreateNewConstraint(int64 lower_bound, int64 upper_bound) override
Definition: routing_lp_scheduling.h:270
int64 GetVariableLowerBound(int index) const override
Definition: routing_lp_scheduling.h:253
void Clear() override
Definition: routing_lp_scheduling.h:218
void SetObjectiveCoefficient(int index, double coefficient) override
Definition: routing_lp_scheduling.h:256
void ClearObjective() override
Definition: routing_lp_scheduling.h:262
virtual void SetCoefficient(int ct, int index, double coefficient)=0
virtual int NumVariables() const =0
virtual int CreateNewConstraint(int64 lower_bound, int64 upper_bound)=0
int AddReifiedLinearConstraint(int64 lower_bound, int64 upper_bound, const std::vector< std::pair< int, double > > &weighted_variables)
Definition: routing_lp_scheduling.h:185
virtual void SetVariableDisjointBounds(int index, const std::vector< int64 > &starts, const std::vector< int64 > &ends)=0
virtual double GetObjectiveCoefficient(int index) const =0
virtual int64 GetObjectiveValue() const =0
virtual void AddProductConstraint(int product_var, std::vector< int > vars)=0
virtual int CreateNewPositiveVariable()=0
virtual int64 GetVariableLowerBound(int index) const =0
virtual bool SetVariableBounds(int index, int64 lower_bound, int64 upper_bound)=0
virtual bool IsCPSATSolver()=0
virtual void Clear()=0
virtual void ClearObjective()=0
virtual double GetValue(int index) const =0
virtual DimensionSchedulingStatus Solve(absl::Duration duration_limit)=0
virtual void SetObjectiveCoefficient(int index, double coefficient)=0
int AddVariable(int64 lower_bound, int64 upper_bound)
Definition: routing_lp_scheduling.h:163
virtual void SetEnforcementLiteral(int ct, int condition)=0
int AddLinearConstraint(int64 lower_bound, int64 upper_bound, const std::vector< std::pair< int, double > > &variable_coeffs)
Definition: routing_lp_scheduling.h:172
virtual bool SolutionIsInteger() const =0
virtual ~RoutingLinearSolverWrapper()
Definition: routing_lp_scheduling.h:138
virtual void AddMaximumConstraint(int max_var, std::vector< int > vars)=0
The vehicle routing library lets one model and solve generic vehicle routing problems ranging from th...
Definition: constraint_solver.h:106
DimensionSchedulingStatus
Definition: routing_lp_scheduling.h:126
@ RELAXED_OPTIMAL_ONLY