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."],[[["RoutingFilteredHeuristic is a filter-based heuristic class dedicated to routing problems in C++."],["It utilizes a `RoutingModel` and a `LocalSearchFilterManager` for its operations."],["The 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."],["It includes functions like `BuildSolutionFromRoutes`, `MakeDisjunctionNodesUnperformed`, and `MakeUnassignedNodesUnperformed` to manipulate the solution during the search process."]]],["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"]]