[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-08-06 UTC."],[[["\u003cp\u003e\u003ccode\u003ePairNodeSwapActiveOperator\u003c/code\u003e is a C++ class within the OR-Tools constraint solver that facilitates the exploration of solution spaces by swapping pairs of nodes in a routing problem.\u003c/p\u003e\n"],["\u003cp\u003eIt utilizes primary and secondary decision variables (\u003ccode\u003evars\u003c/code\u003e, \u003ccode\u003esecondary_vars\u003c/code\u003e) along with routing index pairs to define the search space.\u003c/p\u003e\n"],["\u003cp\u003eThe operator offers methods like \u003ccode\u003eMakeNeighbor\u003c/code\u003e, \u003ccode\u003eMakeNextNeighbor\u003c/code\u003e, and \u003ccode\u003eDebugString\u003c/code\u003e to generate and manage neighboring solutions and provide debugging information.\u003c/p\u003e\n"],["\u003cp\u003eUsers can customize the operator's behavior by providing a function (\u003ccode\u003estart_empty_path_class\u003c/code\u003e) that determines the starting point for empty paths.\u003c/p\u003e\n"]]],["The `PairNodeSwapActiveOperator` class in C++ includes methods for manipulating routing assignments. Key actions involve: `MakeNeighbor` and `MakeNextNeighbor` which return booleans and take `Assignment` pointers to potentially modify them. `DebugString` returns a string representation. The constructor `PairNodeSwapActiveOperator` takes variables, a function, and index pairs as arguments to define its initial configuration. Finally, `~PairNodeSwapActiveOperator` is the class' destructor.\n"],null,["# PairNodeSwapActiveOperator\n\nC++ Reference: class PairNodeSwapActiveOperator\n===============================================\n\n\nNote: This documentation is automatically generated.\n\n| Method ||\n|--------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [`DebugString`](https://github.com/google/or-tools/blob/v9.4/ortools/constraint_solver/routing_neighborhoods.h#L626) | Return type: `std::string ` \u003cbr /\u003e |\n| [`MakeNeighbor`](https://github.com/google/or-tools/blob/v9.4/ortools/constraint_solver/routing_neighborhoods.h#L625) | Return type: `bool ` \u003cbr /\u003e |\n| [`MakeNextNeighbor`](https://github.com/google/or-tools/blob/v9.4/ortools/constraint_solver/routing_neighborhoods.h#L624) | Return type: `bool ` Arguments: `Assignment* delta, Assignment* deltadelta` \u003cbr /\u003e |\n| [`PairNodeSwapActiveOperator`](https://github.com/google/or-tools/blob/v9.4/ortools/constraint_solver/routing_neighborhoods.h#L618) | \u003cbr /\u003e Arguments: `const std::vector\u003cIntVar*\u003e& vars, const std::vector\u003cIntVar*\u003e& secondary_vars, std::function\u003cint(int64_t)\u003e start_empty_path_class, const RoutingIndexPairs& index_pairs` \u003cbr /\u003e |\n| [`~PairNodeSwapActiveOperator`](https://github.com/google/or-tools/blob/v9.4/ortools/constraint_solver/routing_neighborhoods.h#L622) | \u003cbr /\u003e |"]]