Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
Aleph::k_shortest_paths_detail Namespace Reference

Classes

struct  Filtered_Show_Arc
 
struct  Path_Snapshot
 
struct  Path_State
 
struct  Reverse_Arc_Distance
 
struct  Suffix_Index
 

Functions

template<class GT , class Distance , class SA >
void validate_non_negative_weights (const GT &g, Distance distance, SA sa)
 
template<class GT , typename Cost_Type >
Path_Snapshot< GT, Cost_Typemake_path_snapshot (const Path_State< GT, Cost_Type > &path)
 
template<class GT , typename Cost_Type >
Path_State< GT, Cost_Typepath_to_state (const Path< GT > &path, const Cost_Type total_cost)
 
template<class GT , typename Cost_Type >
Path< GTstate_to_path (const GT &g, const Path_State< GT, Cost_Type > &state)
 
template<class GT , typename Cost_Type >
bool same_path_sequence (const Path_State< GT, Cost_Type > &a, const Path_State< GT, Cost_Type > &b)
 
template<class GT , typename Cost_Type >
bool same_prefix_nodes (const Path_Snapshot< GT, Cost_Type > &a, const Path_Snapshot< GT, Cost_Type > &b, const size_t spur_index)
 
template<class GT , typename Cost_Type >
bool contains_path (const Array< Path_State< GT, Cost_Type > > &container, const Path_State< GT, Cost_Type > &candidate)
 
template<class GT , typename Cost_Type >
Cost_Type get_dist_to_target (const Suffix_Index< GT, Cost_Type > &index, typename GT::Node *node)
 
template<class GT , typename Cost_Type >
GT::Nodeget_tree_next (const Suffix_Index< GT, Cost_Type > &index, typename GT::Node *node)
 
template<class GT , typename Cost_Type >
GT::Arcget_tree_arc (const Suffix_Index< GT, Cost_Type > &index, typename GT::Node *node)
 
template<template< class, class > class Itor, class GT , class Distance , class SA >
Suffix_Index< GT, typename Distance::Distance_Typebuild_suffix_index_with_itor (const GT &g, typename GT::Node *target, Distance distance, SA sa)
 
template<class GT , class Distance , class SA >
Suffix_Index< GT, typename Distance::Distance_Typebuild_suffix_index_digraph (const GT &g, typename GT::Node *target, Distance distance, SA sa)
 
template<class GT , class Distance , class SA >
Suffix_Index< GT, typename Distance::Distance_Typebuild_suffix_index (const GT &g, typename GT::Node *target, Distance distance, SA sa)
 
template<class GT , typename Cost_Type >
bool build_suffix_state (const GT &g, const Suffix_Index< GT, Cost_Type > &index, typename GT::Node *start, typename GT::Node *target, Path_State< GT, Cost_Type > &out_suffix)
 
template<class GT , class Distance , class SA >
bool shortest_path_filtered (const GT &g, typename GT::Node *source, typename GT::Node *target, Distance distance, SA sa, const DynSetTree< typename GT::Node * > *forbidden_nodes, const DynSetTree< typename GT::Arc * > *forbidden_arcs, Path_State< GT, typename Distance::Distance_Type > &out)
 
template<class GT , class Distance >
Distance::Distance_Type compute_cost_from_arcs (const DynList< typename GT::Arc * > &arcs, Distance distance)
 
template<class GT , typename Cost_Type >
Path_State< GT, Cost_Typecompose_candidate (const Path_Snapshot< GT, Cost_Type > &base_path, const size_t spur_index, const Path_State< GT, Cost_Type > &spur_state)
 
template<class GT , typename Cost_Type >
Path_State< GT, Cost_Typecompose_general_candidate (const Path_Snapshot< GT, Cost_Type > &base_path, const size_t spur_index, typename GT::Arc *deviation_arc, typename GT::Node *deviation_next_node, const Path_State< GT, Cost_Type > &suffix_state)
 
template<class GT , class Distance , class SA , typename Cost_Type >
void generate_general_deviation_candidates (const GT &g, const Path_State< GT, Cost_Type > &base_path, typename GT::Node *target, const Suffix_Index< GT, Cost_Type > &suffix_index, Distance distance, SA sa, const Array< Path_State< GT, Cost_Type > > &accepted, Array< Path_State< GT, Cost_Type > > &candidates)
 

Function Documentation

◆ build_suffix_index()

template<class GT , class Distance , class SA >
Suffix_Index< GT, typename Distance::Distance_Type > Aleph::k_shortest_paths_detail::build_suffix_index ( const GT g,
typename GT::Node target,
Distance  distance,
SA  sa 
)

◆ build_suffix_index_digraph()

◆ build_suffix_index_with_itor()

◆ build_suffix_state()

◆ compose_candidate()

◆ compose_general_candidate()

template<class GT , typename Cost_Type >
Path_State< GT, Cost_Type > Aleph::k_shortest_paths_detail::compose_general_candidate ( const Path_Snapshot< GT, Cost_Type > &  base_path,
const size_t  spur_index,
typename GT::Arc deviation_arc,
typename GT::Node deviation_next_node,
const Path_State< GT, Cost_Type > &  suffix_state 
)

◆ compute_cost_from_arcs()

template<class GT , class Distance >
Distance::Distance_Type Aleph::k_shortest_paths_detail::compute_cost_from_arcs ( const DynList< typename GT::Arc * > &  arcs,
Distance  distance 
)

◆ contains_path()

template<class GT , typename Cost_Type >
bool Aleph::k_shortest_paths_detail::contains_path ( const Array< Path_State< GT, Cost_Type > > &  container,
const Path_State< GT, Cost_Type > &  candidate 
)

◆ generate_general_deviation_candidates()

◆ get_dist_to_target()

◆ get_tree_arc()

◆ get_tree_next()

◆ make_path_snapshot()

◆ path_to_state()

◆ same_path_sequence()

◆ same_prefix_nodes()

◆ shortest_path_filtered()

template<class GT , class Distance , class SA >
bool Aleph::k_shortest_paths_detail::shortest_path_filtered ( const GT g,
typename GT::Node source,
typename GT::Node target,
Distance  distance,
SA  sa,
const DynSetTree< typename GT::Node * > *  forbidden_nodes,
const DynSetTree< typename GT::Arc * > *  forbidden_arcs,
Path_State< GT, typename Distance::Distance_Type > &  out 
)

◆ state_to_path()

◆ validate_non_negative_weights()

template<class GT , class Distance , class SA >
void Aleph::k_shortest_paths_detail::validate_non_negative_weights ( const GT g,
Distance  distance,
SA  sa 
)