Make all partially performed pickup and delivery pairs unperformed. A
pair is partially unperformed if one element of the pair has one of its
alternatives performed in the solution and the other has no alternatives
in the solution or none performed.
[[["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\u003eRoutingFilteredHeuristic is a filter-based heuristic class dedicated to routing problems in C++.\u003c/p\u003e\n"],["\u003cp\u003eIt utilizes a \u003ccode\u003eRoutingModel\u003c/code\u003e and a \u003ccode\u003eLocalSearchFilterManager\u003c/code\u003e for its operations.\u003c/p\u003e\n"],["\u003cp\u003eThe class provides methods for building solutions from routes, managing node performance (making nodes unperformed based on various criteria), and accessing start/end chains of vehicles.\u003c/p\u003e\n"],["\u003cp\u003eIt includes functions like \u003ccode\u003eBuildSolutionFromRoutes\u003c/code\u003e, \u003ccode\u003eMakeDisjunctionNodesUnperformed\u003c/code\u003e, and \u003ccode\u003eMakeUnassignedNodesUnperformed\u003c/code\u003e to manipulate the solution during the search process.\u003c/p\u003e\n"]]],["The `RoutingFilteredHeuristic` class manages routing solutions. Key actions include: building solutions from routes using a next accessor (`BuildSolutionFromRoutes`); retrieving the start and end of vehicle chains (`GetStartChainEnd`, `GetEndChainStart`); and manipulating node performance status. Specific node actions include making nodes in a disjunction unperformed, unperforming partially performed pickup/delivery pairs, and unassigning unperformed nodes (`MakeDisjunctionNodesUnperformed`, `MakePartiallyPerformedPairsUnperformed`, `MakeUnassignedNodesUnperformed`). The class also stores a `RoutingModel` and a `LocalSearchFilterManager`.\n"],null,["# RoutingFilteredHeuristic\n\nC++ Reference: class RoutingFilteredHeuristic\n=============================================\n\n\nNote: This documentation is automatically generated.\nFilter-based heuristic dedicated to routing.\n\n| Method ||\n|------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [`BuildSolutionFromRoutes`](https://github.com/google/or-tools/blob/v9.4/ortools/constraint_solver/routing_search.h#L270) | Return type: `const Assignment* ` Arguments: ` const std::function\u003cint64_t(int64_t)\u003e& next_accessor` Builds a solution starting from the routes formed by the next accessor. |\n| [`GetEndChainStart`](https://github.com/google/or-tools/blob/v9.4/ortools/constraint_solver/routing_search.h#L276) | Return type: `int ` Arguments: `int vehicle` Returns the start of the end chain of vehicle, |\n| [`GetStartChainEnd`](https://github.com/google/or-tools/blob/v9.4/ortools/constraint_solver/routing_search.h#L274) | Return type: `int ` Arguments: `int vehicle` Returns the end of the start chain of vehicle, |\n| [`MakeDisjunctionNodesUnperformed`](https://github.com/google/or-tools/blob/v9.4/ortools/constraint_solver/routing_search.h#L279) | Return type: `void ` Arguments: `int64_t node` Make nodes in the same disjunction as 'node' unperformed. 'node' is a variable index corresponding to a node. |\n| [`MakePartiallyPerformedPairsUnperformed`](https://github.com/google/or-tools/blob/v9.4/ortools/constraint_solver/routing_search.h#L286) | Return type: `void ` Make all partially performed pickup and delivery pairs unperformed. A pair is partially unperformed if one element of the pair has one of its alternatives performed in the solution and the other has no alternatives in the solution or none performed. |\n| [`MakeUnassignedNodesUnperformed`](https://github.com/google/or-tools/blob/v9.4/ortools/constraint_solver/routing_search.h#L281) | Return type: `void ` Make all unassigned nodes unperformed. |\n| [`model`](https://github.com/google/or-tools/blob/v9.4/ortools/constraint_solver/routing_search.h#L272) | Return type: `RoutingModel* ` \u003cbr /\u003e |\n| [`RoutingFilteredHeuristic`](https://github.com/google/or-tools/blob/v9.4/ortools/constraint_solver/routing_search.h#L265) | \u003cbr /\u003e Arguments: `RoutingModel* model, LocalSearchFilterManager* filter_manager, bool omit_secondary_vars = true` \u003cbr /\u003e |\n| [`~RoutingFilteredHeuristic`](https://github.com/google/or-tools/blob/v9.4/ortools/constraint_solver/routing_search.h#L268) | \u003cbr /\u003e |"]]