![]() |
Google OR-Tools v9.14
a fast and portable software suite for combinatorial optimization
|
| / \ ^ More...
| / \ ^
Swaps active nodes from node alternatives in sequence. Considers chains of nodes with alternatives, builds a DAG from the chain, each "layer" of the DAG being composed of the set of alternatives of the node at a given rank in the chain, fully connected to the next layer. A neighbor is built from the shortest path starting from the node before the chain (source), through the DAG to the node following the chain. The path is valued with a given callback. Example: Alternative sets: {1,2} and {3,4} Current path: 0 -> 1 -> 3 -> 5 DAG + source and sink: -> 1 ---> 3 – | \ / v Supposing the shortest path from 0 to 5 is 0, 2, 3, 5, the neighbor for the chain will be: 0 -> 2 -> 3 -> 5.
Definition at line 203 of file routing_neighborhoods.h.
#include <routing_neighborhoods.h>
Public Member Functions | |
| SwapActiveToShortestPathOperator (const std::vector< IntVar * > &vars, const std::vector< IntVar * > &secondary_vars, std::function< int(int64_t)> start_empty_path_class, std::vector< std::vector< int64_t > > alternative_sets, RoutingTransitCallback2 arc_evaluator) | |
| ~SwapActiveToShortestPathOperator () override=default | |
| bool | MakeNeighbor () override |
| std::string | DebugString () const override |
| Public Member Functions inherited from operations_research::PathOperator< ignore_path_vars > | |
| PathOperator (const std::vector< IntVar * > &next_vars, const std::vector< IntVar * > &path_vars, IterationParameters iteration_parameters) | |
| Builds an instance of PathOperator from next and path variables. | |
| PathOperator (const std::vector< IntVar * > &next_vars, const std::vector< IntVar * > &path_vars, int number_of_base_nodes, bool skip_locally_optimal_paths, bool accept_path_end_base, std::function< int(int64_t)> start_empty_path_class, std::function< const std::vector< int > &(int, int)> get_incoming_neighbors, std::function< const std::vector< int > &(int, int)> get_outgoing_neighbors) | |
| ~PathOperator () override | |
| void | EnterSearch () override |
| void | Reset () override |
| bool | SkipUnchanged (int index) const override |
| int64_t | Next (int64_t node) const |
| Returns the node after node in the current delta. | |
| int64_t | Prev (int64_t node) const |
| Returns the node before node in the current delta. | |
| int64_t | Path (int64_t node) const |
| int | number_of_nexts () const |
| Number of next variables. | |
| Public Member Functions inherited from operations_research::IntVarLocalSearchOperator | |
| IntVarLocalSearchOperator (const std::vector< IntVar * > &vars, bool keep_inverse_values=false) | |
| ~IntVarLocalSearchOperator () override | |
| bool | HoldsDelta () const override |
| void | Start (const Assignment *assignment) override |
| virtual bool | IsIncremental () const |
| int | Size () const |
| int64_t | Value (int64_t index) const |
| IntVar * | Var (int64_t index) const |
| Returns the variable of given index. | |
| int64_t | OldValue (int64_t index) const |
| int64_t | PrevValue (int64_t index) const |
| void | SetValue (int64_t index, int64_t value) |
| bool | Activated (int64_t index) const |
| void | Activate (int64_t index) |
| void | Deactivate (int64_t index) |
| bool | ApplyChanges (Assignment *delta, Assignment *deltadelta) const |
| void | RevertChanges (bool change_was_incremental) |
| void | AddVars (const std::vector< IntVar * > &vars) |
| bool | MakeNextNeighbor (Assignment *delta, Assignment *deltadelta) override |
| --— Base operator class for operators manipulating IntVars --— | |
| Public Member Functions inherited from operations_research::LocalSearchOperator | |
| LocalSearchOperator () | |
| ~LocalSearchOperator () override | |
| virtual const LocalSearchOperator * | Self () const |
| virtual bool | HasFragments () const |
| Public Member Functions inherited from operations_research::BaseObject | |
| BaseObject () | |
| BaseObject (const BaseObject &)=delete | |
| This type is neither copyable nor movable. | |
| BaseObject & | operator= (const BaseObject &)=delete |
| virtual | ~BaseObject ()=default |
Additional Inherited Members | |
| Protected Member Functions inherited from operations_research::PathOperator< ignore_path_vars > | |
| bool | MakeOneNeighbor () override |
| This method should not be overridden. Override MakeNeighbor() instead. | |
| virtual void | OnNodeInitialization () |
| virtual void | ResetIncrementalism () |
| int64_t | BaseNode (int i) const |
| Returns the ith base node of the operator. | |
| int64_t | BaseAlternativeNode (int i) const |
| Returns the alternative node for the ith base node. | |
| int64_t | BaseSiblingAlternativeNode (int i) const |
| Returns the alternative node for the sibling of the ith base node. | |
| int64_t | StartNode (int i) const |
| Returns the start node of the ith base node. | |
| int64_t | EndNode (int i) const |
| Returns the end node of the ith base node. | |
| const std::vector< int64_t > & | path_starts () const |
| Returns the vector of path start nodes. | |
| int | PathClass (int i) const |
| Returns the class of the path of the ith base node. | |
| int | PathClassFromStartNode (int64_t start_node) const |
| virtual bool | RestartAtPathStartOnSynchronize () |
| virtual bool | OnSamePathAsPreviousBase (int64_t) |
| virtual int64_t | GetBaseNodeRestartPosition (int base_index) |
| virtual void | SetNextBaseToIncrement (int64_t base_index) |
| virtual bool | ConsiderAlternatives (int64_t) const |
| int64_t | OldNext (int64_t node) const |
| int64_t | PrevNext (int64_t node) const |
| int64_t | OldPrev (int64_t node) const |
| int64_t | OldPath (int64_t node) const |
| int | CurrentNodePathStart (int64_t node) const |
| int | CurrentNodePathEnd (int64_t node) const |
| bool | MoveChain (int64_t before_chain, int64_t chain_end, int64_t destination) |
| bool | ReverseChain (int64_t before_chain, int64_t after_chain, int64_t *chain_last) |
| bool | SwapNodes (int64_t node1, int64_t node2) |
| Swaps the nodes node1 and node2. | |
| bool | MakeActive (int64_t node, int64_t destination) |
| Insert the inactive node after destination. | |
| bool | MakeChainInactive (int64_t before_chain, int64_t chain_end) |
| bool | SwapActiveAndInactive (int64_t active, int64_t inactive) |
| Replaces active by inactive in the current path, making active inactive. | |
| bool | SwapActiveAndInactiveChains (absl::Span< const int64_t > active_chain, absl::Span< const int64_t > inactive_chain) |
| void | SetNext (int64_t from, int64_t to, int64_t path) |
| Sets 'to' to be the node after 'from' on the given path. | |
| bool | IsPathEnd (int64_t node) const |
| bool | IsPathStart (int64_t node) const |
| Returns true if node is the first node on the path. | |
| bool | IsInactive (int64_t node) const |
| Returns true if node is inactive. | |
| virtual bool | InitPosition () const |
| void | ResetPosition () |
| int | AddAlternativeSet (const std::vector< int64_t > &alternative_set) |
| template<typename PairType> | |
| void | AddPairAlternativeSets (const std::vector< PairType > &pair_alternative_sets) |
| int64_t | GetActiveInAlternativeSet (int alternative_index) const |
| Returns the active node in the given alternative set. | |
| int64_t | GetActiveAlternativeNode (int node) const |
| Returns the active node in the alternative set of the given node. | |
| int | GetSiblingAlternativeIndex (int node) const |
| Returns the index of the alternative set of the sibling of node. | |
| int | GetAlternativeIndex (int node) const |
| Returns the index of the alternative set of the node. | |
| int64_t | GetActiveAlternativeSibling (int node) const |
| bool | CheckChainValidity (int64_t before_chain, int64_t chain_end, int64_t exclude) const |
| bool | HasNeighbors () const |
| Neighbor | GetNeighborForBaseNode (int64_t base_index) const |
| Protected Member Functions inherited from operations_research::IntVarLocalSearchOperator | |
| int64_t | InverseValue (int64_t index) const |
| int64_t | OldInverseValue (int64_t index) const |
| void | AddToAssignment (IntVar *var, int64_t value, bool active, std::vector< int > *assignment_indices, int64_t index, Assignment *assignment) const |
| Protected Attributes inherited from operations_research::PathOperator< ignore_path_vars > | |
| const int | number_of_nexts_ |
| operations_research::SwapActiveToShortestPathOperator< ignore_path_vars >::SwapActiveToShortestPathOperator | ( | const std::vector< IntVar * > & | vars, |
| const std::vector< IntVar * > & | secondary_vars, | ||
| std::function< int(int64_t)> | start_empty_path_class, | ||
| std::vector< std::vector< int64_t > > | alternative_sets, | ||
| RoutingTransitCallback2 | arc_evaluator ) |
Definition at line 333 of file routing_neighborhoods.cc.
|
overridedefault |
|
inlineoverridevirtual |
Reimplemented from operations_research::BaseObject.
Definition at line 213 of file routing_neighborhoods.h.
|
overridevirtual |
Implements operations_research::PathOperator< ignore_path_vars >.
Definition at line 349 of file routing_neighborhoods.cc.