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

#include <routing_filters.h>

Classes

struct  InterbreakLimit
 
struct  PathData
 
struct  VehicleBreak
 

Public Member Functions

 LightVehicleBreaksChecker (PathState *path_state, std::vector< PathData > path_data)
 
void Relax () const
 
bool Check () const
 

Detailed Description

Definition at line 580 of file routing_filters.h.

Constructor & Destructor Documentation

◆ LightVehicleBreaksChecker()

operations_research::LightVehicleBreaksChecker::LightVehicleBreaksChecker ( PathState * path_state,
std::vector< PathData > path_data )

Definition at line 4149 of file routing_filters.cc.

Member Function Documentation

◆ Check()

bool operations_research::LightVehicleBreaksChecker::Check ( ) const

Improve bounds on span/start max/end min using time windows: breaks that must occur inside the path have their duration accumulated into lb_span_tw, they also widen [start_max, end_min).

Compute num_feasible_breaks = number of breaks that may fit into route, and [breaks_start_min, breaks_end_max) = max coverage of breaks.

Improve span/start min/end max using interbreak limits: there must be enough breaks inside the path, so that for each limit, the union of [br.start - max_interbreak, br.end + max_interbreak) covers [start, end), or [start, end) is shorter than max_interbreak.

Minimal number of breaks depends on total transit: 0 breaks for 0 <= total transit <= limit, 1 break for limit + 1 <= total transit <= 2 * limit, i breaks for i * limit + 1 <= total transit <= (i+1) * limit, ...

Merge span lb information directly in start/end variables.

Definition at line 4161 of file routing_filters.cc.

◆ Relax()

void operations_research::LightVehicleBreaksChecker::Relax ( ) const

Definition at line 4153 of file routing_filters.cc.


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