|
| bool | operator() (const GT &g, Path< GT > &path, Distance &d, SA &sa) const |
| |
|
bool | operator() (const GT &g, Path< GT > &path, Distance &&d=Distance(), SA &&sa=SA()) const |
| |
| bool | operator() (const GT &g, typename GT::Node *s, Path< GT > &path, Distance &d, SA &sa) const |
| |
|
bool | operator() (const GT &g, typename GT::Node *s, Path< GT > &path, Distance &&d=Distance(), SA &&sa=SA()) const |
| |
|
Path< GT > | operator() (const GT &g, typename GT::Node *s, Distance &d, SA &sa, double it_factor=0.7) const |
| |
|
Path< GT > | operator() (const GT &g, typename GT::Node *s, Distance &&d=Distance(), SA &&sa=SA(), double it_factor=0.7) const |
| |
|
Path< GT > | operator() (const GT &g, Distance &d, SA &sa, double it_factor=0.7) const |
| |
|
Path< GT > | operator() (const GT &g, Distance &&d=Distance(), SA &&sa=SA(), double it_factor=0.7) const |
| |
template<class GT, class Distance = Dft_Dist<GT>, template< class, class > class Ait = Arc_Iterator, template< class, class > class NAit = Node_Arc_Iterator, class SA = Dft_Show_Arc<GT>>
struct Aleph::Bellman_Ford_Negative_Cycle< GT, Distance, Ait, NAit, SA >
Detecta si existe un ciclo negativo y eventualmente lo calcula.
Esta clase toma un digrafo y un nodo destino, ejecuta el algoritmo de Bellman-Ford y si se detecta un ciclo negativo entonces lo almacena en un camino.
El procedimiento es parametrizado con las siguientes especificaciones:
- GT: el tipo de grafo basado en List_Graph.
- Distance<GT>: La clase de lectura del peso del arco que debe exportar los siguientes atributos:
- typedef Distance<GT>::Distance_Type: el tipo de dato que representa un peso en un arco.
- Distance<GT>::Distance_Type operator()(typename GT::Arc *a): que retorna el valor del peso en el arco a.
- SA: filtro de arcos.
template<class GT , class Distance = Dft_Dist<GT>, template< class, class > class Ait = Arc_Iterator, template< class, class > class NAit = Node_Arc_Iterator, class SA = Dft_Show_Arc<GT>>
Invoca a la detección y cálculo de ciclo negativo.
- Parameters
-
| [in] | g | el grafo. |
| [out] | path | el camino donde se guarda el ciclo en caso de que se detecte ciclo negativo. |
- Returns
- true si existe un ciclo negativo; false de lo contrario.
- Exceptions
-
| bad_alloc | si no hay suficiente memoria. |
template<class GT , class Distance = Dft_Dist<GT>, template< class, class > class Ait = Arc_Iterator, template< class, class > class NAit = Node_Arc_Iterator, class SA = Dft_Show_Arc<GT>>
Invoca a la detección y cálculo de ciclo negativo.
- Parameters
-
| [in] | g | el grafo. |
| [in] | s | el nodo inicio. |
| [out] | path | el camino donde se guarda el ciclo en caso de que se detecte ciclo negativo. |
- Returns
- true si existe un ciclo negativo; false de lo contrario.
- Exceptions
-
| bad_alloc | si no hay suficiente memoria. |