#include <Floyd.H>
Métodos públicos | |
Node * | select_node (long i) |
int | index_node (Node *p) |
Floyd_All_Shortest_Paths (GT &__g, SA &&__sa=SA()) | |
Floyd_All_Shortest_Paths (GT &__g, const SA &__sa) | |
string | entry (const Distance_Type &e) |
bool | operator() (DynMatrix< Distance_Type > &dist, DynMatrix< long > &path) |
void | get_min_path (const long src_idx, const long tgt_idx, Path< GT > &path) |
void | get_min_path (typename GT::Node *src, typename GT::Node *tgt, Path< GT > &path) const |
Métodos públicos estáticos | |
static void | print (DynMatrix< Distance_Type > &dist) |
Calcula las matriz de costes de los caminos mínimos entre todos pares de nodos de un grafo g y la matriz de caminos mínimos según el algoritmo de Floy-Warshall.
Esta clase utiliza el algoritmo de Floy-Warshall para calcular dos matrices de tipo Ady_Mat que se especifican del siguiente modo:
El algoritmo de Floyd-Warshall maneja pesos negativos, pero no opera correctamente si el grafo contiene ciclos negativos. Úsese el algoritmo de Bellman-Ford q_bellman_ford_min_spanning_tree() si se sospecha su presencia.
El algoritmo utiliza dos matrices internas adicionales.
El procedimiento es parametrizado con las siguientes especificaciones:
|
inline |
Retorna el ìndice dentro de una matriz de adyacencia que tendría el nodo p
|
inline |
Invoca al cálculo de las matrices de costes mínimos y sus caminos entre todos los pares de nodos.
@param[in] g el grafo al cual se desea calcular el árbol abarcador mínimo. @param[in] dist matriz donde se almacenan los costes mínimos. @param[out] path matriz de índices de caminos mínimos que permite su recuperación. @throw bad_alloc si no hay suficiente memoria para construir las matrices internas
Hace referencia a Aleph::DynMatrix< T >::allocate(), Aleph::IndexArc< GT, Tree, SA >::search() y Aleph::Floyd_All_Shortest_Paths< GT, Distance, SA >::select_node().
|
inline |
Retorna el nodo correspondiente al índice i en una matriz de adyacencia para el algoritmo de Floyd-Warshall
Referenciado por Aleph::Floyd_All_Shortest_Paths< GT, Distance, SA >::operator()().