Google OR-Tools v9.14
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
routing_filters.h File Reference
#include <cstdint>
#include <functional>
#include <initializer_list>
#include <memory>
#include <utility>
#include <vector>
#include "absl/strings/string_view.h"
#include "absl/types/span.h"
#include "ortools/base/types.h"
#include "ortools/constraint_solver/constraint_solver.h"
#include "ortools/constraint_solver/constraint_solveri.h"
#include "ortools/constraint_solver/routing.h"
#include "ortools/constraint_solver/routing_filter_committables.h"
#include "ortools/constraint_solver/routing_lp_scheduling.h"
#include "ortools/constraint_solver/routing_parameters.pb.h"
#include "ortools/constraint_solver/routing_types.h"
#include "ortools/util/bitset.h"
#include "ortools/util/range_minimum_query.h"

Go to the source code of this file.

Classes

class  operations_research::PathState
struct  operations_research::PathState::ChainBounds
class  operations_research::PathState::Chain
 A Chain is a range of committed nodes. More...
class  operations_research::PathState::Chain::Iterator
class  operations_research::PathState::ChainRange
 A ChainRange is a range of Chains, committed or not. More...
class  operations_research::PathState::ChainRange::Iterator
class  operations_research::PathState::NodeRange
class  operations_research::PathState::NodeRange::Iterator
class  operations_research::DimensionChecker
struct  operations_research::DimensionChecker::Interval
struct  operations_research::DimensionChecker::ExtendedInterval
class  operations_research::LightVehicleBreaksChecker
struct  operations_research::LightVehicleBreaksChecker::VehicleBreak
struct  operations_research::LightVehicleBreaksChecker::InterbreakLimit
struct  operations_research::LightVehicleBreaksChecker::PathData
class  operations_research::WeightedWaveletTree
class  operations_research::PathEnergyCostChecker
struct  operations_research::PathEnergyCostChecker::EnergyCost
class  operations_research::BasePathFilter
 Generic path-based filter class. More...

Namespaces

namespace  operations_research
 In SWIG mode, we don't want anything besides these top-level includes.

Functions

bool operations_research::FillDimensionValuesFromRoutingDimension (int path, int64_t capacity, int64_t span_upper_bound, absl::Span< const DimensionValues::Interval > cumul_of_node, absl::Span< const DimensionValues::Interval > slack_of_node, absl::AnyInvocable< int64_t(int64_t, int64_t) const > evaluator, DimensionValues &dimension_values)
void operations_research::FillPrePostVisitValues (int path, const DimensionValues &dimension_values, absl::AnyInvocable< int64_t(int64_t, int64_t) const > pre_travel_evaluator, absl::AnyInvocable< int64_t(int64_t, int64_t) const > post_travel_evaluator, PrePostVisitValues &visit_values)
bool operations_research::PropagateLightweightVehicleBreaks (int path, DimensionValues &dimension_values, absl::Span< const std::pair< int64_t, int64_t > > interbreaks)
IntVarLocalSearchFilteroperations_research::MakeRouteConstraintFilter (const RoutingModel &routing_model)
 Returns a filter tracking route constraints.
IntVarLocalSearchFilteroperations_research::MakeMaxActiveVehiclesFilter (const RoutingModel &routing_model)
 Returns a filter ensuring that max active vehicles constraints are enforced.
IntVarLocalSearchFilteroperations_research::MakeActiveNodeGroupFilter (const RoutingModel &routing_model)
IntVarLocalSearchFilteroperations_research::MakeNodeDisjunctionFilter (const RoutingModel &routing_model, bool filter_cost)
 Returns a filter ensuring that node disjunction constraints are enforced.
IntVarLocalSearchFilteroperations_research::MakeVehicleAmortizedCostFilter (const RoutingModel &routing_model)
 Returns a filter computing vehicle amortized costs.
IntVarLocalSearchFilteroperations_research::MakeTypeRegulationsFilter (const RoutingModel &routing_model)
 Returns a filter ensuring type regulation constraints are enforced.
IntVarLocalSearchFilteroperations_research::MakePathCumulFilter (const RoutingDimension &dimension, bool propagate_own_objective_value, bool filter_objective_cost, bool may_use_optimizers)
 Returns a filter handling dimension costs and constraints.
IntVarLocalSearchFilteroperations_research::MakeCumulBoundsPropagatorFilter (const RoutingDimension &dimension)
 Returns a filter handling dimension cumul bounds.
IntVarLocalSearchFilteroperations_research::MakeGlobalLPCumulFilter (GlobalDimensionCumulOptimizer *lp_optimizer, GlobalDimensionCumulOptimizer *mp_optimizer, bool filter_objective_cost)
 Returns a filter checking global linear constraints and costs.
LocalSearchFilteroperations_research::MakeResourceAssignmentFilter (LocalDimensionCumulOptimizer *lp_optimizer, LocalDimensionCumulOptimizer *mp_optimizer, bool propagate_own_objective_value, bool filter_objective_cost)
IntVarLocalSearchFilteroperations_research::MakeCPFeasibilityFilter (RoutingModel *routing_model)
 Returns a filter checking the current solution using CP propagation.
LocalSearchFilteroperations_research::MakePathStateFilter (Solver *solver, std::unique_ptr< PathState > path_state, const std::vector< IntVar * > &nexts)
LocalSearchFilteroperations_research::MakeVehicleVarFilter (const RoutingModel &routing_model, const PathState *path_state)
 Returns a filter checking that vehicle variable domains are respected.
LocalSearchFilteroperations_research::MakePickupDeliveryFilter (const RoutingModel &routing_model, const PathState *path_state, const std::vector< PickupDeliveryPair > &pairs, const std::vector< RoutingModel::PickupAndDeliveryPolicy > &vehicle_policies)
LocalSearchFilteroperations_research::MakeDimensionFilter (Solver *solver, std::unique_ptr< DimensionChecker > checker, absl::string_view dimension_name)
LocalSearchFilteroperations_research::MakeLightVehicleBreaksFilter (Solver *solver, std::unique_ptr< LightVehicleBreaksChecker > checker, absl::string_view dimension_name)
LocalSearchFilteroperations_research::MakePathEnergyCostFilter (Solver *solver, std::unique_ptr< PathEnergyCostChecker > checker, absl::string_view dimension_name)
void operations_research::AppendLightWeightDimensionFilters (const PathState *path_state, const std::vector< RoutingDimension * > &dimensions, std::vector< LocalSearchFilterManager::FilterEvent > *filters)
void operations_research::AppendDimensionCumulFilters (const std::vector< RoutingDimension * > &dimensions, const RoutingSearchParameters &parameters, bool filter_objective_cost, bool use_chain_cumul_filter, std::vector< LocalSearchFilterManager::FilterEvent > *filters)