template<typename TIncidentEdges, typename TOpposite, typename TContainer, typename TAccumulator, typename TMark, typename TSolution, typename TPathCut>
class Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >
Implements a generic Greedy-First Search. Derives from GraphSearch
Definition at line 31 of file FGFS.hh.
template<typename TIncidentEdges , typename TOpposite , typename TContainer , typename TAccumulator , typename TMark , typename TSolution , typename TPathCut >
Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::GFS |
( |
Graph & |
graph, |
|
|
const Container & |
nodes, |
|
|
const Opposite & |
opposite, |
|
|
Solution & |
s, |
|
|
PathCut & |
cut, |
|
|
Accumulator & |
results |
|
) |
| |
|
inline |
template<typename TIncidentEdges , typename TOpposite , typename TContainer , typename TAccumulator , typename TMark , typename TSolution , typename TPathCut >
virtual Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::~GFS |
( |
| ) |
|
|
inlinevirtual |
destructor
Definition at line 79 of file FGFS.hh.
template<typename TIncidentEdges , typename TOpposite , typename TContainer , typename TAccumulator , typename TMark , typename TSolution , typename TPathCut >
bool Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::finished |
( |
| ) |
const |
|
inline |
- Returns
- true when the GFS has stopped. All solutions (if any) are found
Definition at line 138 of file FGFS.hh.
References Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::_vnodes, and Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::saturated().
Referenced by Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::next().
template<typename TIncidentEdges , typename TOpposite , typename TContainer , typename TAccumulator , typename TMark , typename TSolution , typename TPathCut >
virtual void Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::initialize |
( |
| ) |
|
|
inlinevirtual |
Initialize the GFS
Reimplemented from Diades::Graph::GraphSearch< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >.
Definition at line 85 of file FGFS.hh.
References Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::_atTop, and Diades::Graph::GraphSearch< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::initialize().
template<typename TIncidentEdges , typename TOpposite , typename TContainer , typename TAccumulator , typename TMark , typename TSolution , typename TPathCut >
bool Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::isVisiting |
( |
const typename Search::Node & |
node | ) |
const |
|
inline |
Definition at line 115 of file FGFS.hh.
References Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::_visiting.
Referenced by Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::next().
template<typename TIncidentEdges , typename TOpposite , typename TContainer , typename TAccumulator , typename TMark , typename TSolution , typename TPathCut >
void Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::next |
( |
| ) |
|
|
inline |
Visit the next Node in the queue
Definition at line 186 of file FGFS.hh.
References Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::_atTop, Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::_current, Diades::Graph::GraphSearch< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::_cut, Diades::Graph::GraphSearch< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::_graph, Diades::Graph::GraphSearch< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::_opposite, Diades::Graph::GraphSearch< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::_results, Diades::Graph::GraphSearch< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::_s, Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::_stack, Diades::Graph::GraphSearch< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::_updated, Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::_vnodes, Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::finished(), Diades::Utils::generateRandomValue(), Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::isVisiting(), Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::pickup(), Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::popStack(), Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::saturated(), Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::setSaturated(), Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::setVisited(), and Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::setVisiting().
Referenced by Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::popStack().
template<typename TIncidentEdges , typename TOpposite , typename TContainer , typename TAccumulator , typename TMark , typename TSolution , typename TPathCut >
Definition at line 278 of file FGFS.hh.
References Diades::Utils::generateRandomValue(), Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::saturated(), and Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::visited().
Referenced by Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::next().
template<typename TIncidentEdges , typename TOpposite , typename TContainer , typename TAccumulator , typename TMark , typename TSolution , typename TPathCut >
void Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::popStack |
( |
| ) |
|
|
inline |
Empty the stack and update saturation status on the way.
Definition at line 156 of file FGFS.hh.
References Diades::Graph::GraphSearch< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::_cut, Diades::Graph::GraphSearch< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::_graph, Diades::Graph::GraphSearch< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::_opposite, Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::_stack, Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::next(), Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::saturated(), Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::setSaturated(), and Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::unsetVisiting().
Referenced by Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::next().
template<typename TIncidentEdges , typename TOpposite , typename TContainer , typename TAccumulator , typename TMark , typename TSolution , typename TPathCut >
bool Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::saturated |
( |
const typename Search::Node & |
node | ) |
const |
|
inline |
Definition at line 93 of file FGFS.hh.
References Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::_saturated.
Referenced by Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::finished(), Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::next(), Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::pickup(), and Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::popStack().
template<typename TIncidentEdges , typename TOpposite , typename TContainer , typename TAccumulator , typename TMark , typename TSolution , typename TPathCut >
void Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::setSaturated |
( |
const typename Search::Node & |
node | ) |
|
|
inline |
Definition at line 108 of file FGFS.hh.
References Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::_saturated.
Referenced by Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::next(), and Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::popStack().
template<typename TIncidentEdges , typename TOpposite , typename TContainer , typename TAccumulator , typename TMark , typename TSolution , typename TPathCut >
void Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::setVisited |
( |
const typename Search::Node & |
node | ) |
|
|
inline |
Definition at line 103 of file FGFS.hh.
References Diades::Graph::GraphSearch< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::_m.
Referenced by Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::next().
template<typename TIncidentEdges , typename TOpposite , typename TContainer , typename TAccumulator , typename TMark , typename TSolution , typename TPathCut >
void Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::setVisiting |
( |
const typename Search::Node & |
node | ) |
|
|
inline |
Definition at line 120 of file FGFS.hh.
References Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::_visiting.
Referenced by Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::next().
template<typename TIncidentEdges , typename TOpposite , typename TContainer , typename TAccumulator , typename TMark , typename TSolution , typename TPathCut >
void Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::unsetVisiting |
( |
const typename Search::Node & |
node | ) |
|
|
inline |
Definition at line 125 of file FGFS.hh.
References Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::_visiting.
Referenced by Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::popStack().
template<typename TIncidentEdges , typename TOpposite , typename TContainer , typename TAccumulator , typename TMark , typename TSolution , typename TPathCut >
bool Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::visited |
( |
const typename Search::Node & |
node | ) |
|
|
inline |
Definition at line 98 of file FGFS.hh.
References Diades::Graph::GraphSearch< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::_m.
Referenced by Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::pickup().
template<typename TIncidentEdges , typename TOpposite , typename TContainer , typename TAccumulator , typename TMark , typename TSolution , typename TPathCut >
bool Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::_atTop |
|
private |
Definition at line 269 of file FGFS.hh.
Referenced by Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::initialize(), and Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::next().
template<typename TIncidentEdges , typename TOpposite , typename TContainer , typename TAccumulator , typename TMark , typename TSolution , typename TPathCut >
unsigned Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::_current |
|
private |
template<typename TIncidentEdges , typename TOpposite , typename TContainer , typename TAccumulator , typename TMark , typename TSolution , typename TPathCut >
TMark Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::_saturated |
|
mutableprivate |
Definition at line 273 of file FGFS.hh.
Referenced by Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::saturated(), and Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::setSaturated().
template<typename TIncidentEdges , typename TOpposite , typename TContainer , typename TAccumulator , typename TMark , typename TSolution , typename TPathCut >
Definition at line 272 of file FGFS.hh.
Referenced by Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::next(), and Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::popStack().
template<typename TIncidentEdges , typename TOpposite , typename TContainer , typename TAccumulator , typename TMark , typename TSolution , typename TPathCut >
TMark Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::_visiting |
|
mutableprivate |
Definition at line 274 of file FGFS.hh.
Referenced by Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::isVisiting(), Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::setVisiting(), and Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::unsetVisiting().
template<typename TIncidentEdges , typename TOpposite , typename TContainer , typename TAccumulator , typename TMark , typename TSolution , typename TPathCut >
Definition at line 271 of file FGFS.hh.
Referenced by Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::finished(), Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::GFS(), and Diades::Utils::GFS< TIncidentEdges, TOpposite, TContainer, TAccumulator, TMark, TSolution, TPathCut >::next().