OR-Tools  9.6
InsertionGenerator

Detailed Description

Definition at line 839 of file routing_search.h.

Classes

struct  PickupDeliveryInsertion
 

Public Member Functions

 InsertionGenerator ()=default
 
void AppendPickupDeliveryMultitourInsertions (int pickup, const std::vector< int > &path, const std::vector< bool > &node_is_pickup, const std::vector< bool > &node_is_delivery, std::vector< PickupDeliveryInsertion > &insertions)
 Generates insertions for a pickup and delivery pair in a multitour path: More...
 

Constructor & Destructor Documentation

◆ InsertionGenerator()

InsertionGenerator ( )
default

Member Function Documentation

◆ AppendPickupDeliveryMultitourInsertions()

void AppendPickupDeliveryMultitourInsertions ( int  pickup,
const std::vector< int > &  path,
const std::vector< bool > &  node_is_pickup,
const std::vector< bool > &  node_is_delivery,
std::vector< PickupDeliveryInsertion > &  insertions 
)

Generates insertions for a pickup and delivery pair in a multitour path:

  • a series of pickups may only start if all the deliveries of previous pickups have been performed.
  • given a maximal pickup*delivery* subsequence, either the pickups or the deliveries are symmetric, meaning their order does not matter. Under these specifications, this method generates all unique insertions of the given pair that keep the multitour property. Note that there are several ways one can extend pure pickup and delivery problems to mixed paired and unpaired visits. Two extreme views:
  • multitour heuristics should consider that only consecutive pickups or consecutive deliveries have a symmetry. Heuristics should only break those symmetries, in the mixed case inserting a pair in a path of length p has O(p²) possibilities.
  • multitour heuristics should not consider unpaired visits. Insertions are made on the subpath of paired nodes, all extensions to the original path that conserve order are equivalent.

Definition at line 2150 of file routing_search.cc.


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