Search
- 
class Search
 Public Functions
- 
void makeHeap()
 Initialises heap using the appropriate comparison i.e. increasing in the monotone resource forward lists, decreasing otherwise
- 
void pushHeap()
 Push new elements in heap using the appropriate comparison i.e. increasing in the monotone resource forward lists, decreasing otherwise
- 
inline void replaceBestLabel(const int &lemon_id, const labelling::Label &label)
 Replace best label.
- 
inline void addVisitedVertex(const int &lemon_id)
 Update vertices visited.
Public Members
- 
Directions direction
 Direction of Search.
- 
bool stop = false
 Stopping criteria for each direction.
- 
bool bound_exceeded = false
 Stopping criteria for each direction.
- 
int unprocessed_count = 0
 Number of unprocessed labels generated.
- 
int processed_count = 0
 Number of labels processed.
- 
int generated_count = 0
 Number of labels generated (includes the possibly infeasible extensions)
- 
std::unique_ptr<std::vector<double>> lower_bound_weight
 Lower bounds from any node to sink.
- 
std::set<int> visited_vertices
 vector with indices of vertices visited
- 
std::shared_ptr<labelling::Label> intermediate_label
 Intermediate current best label with possibly complete source-sink path (shared pointer as we want to be able to substitute it without resetting)
- 
std::vector<std::vector<labelling::Label>> efficient_labels
 vector with pareto optimal labels (per node) in each direction
- 
void makeHeap()