#include <Floyd.H>
Public Member Functions | |
| bool | has_negative_cycle () const noexcept |
| const DynMatrix< long > & | get_path_mat () const noexcept |
| const DynMatrix< Distance_Type > & | get_dist_mat () const noexcept |
| const DynArray< Node * > | get_nodes () const noexcept |
| Node * | select_node (long i) const noexcept |
| long | index_node (Node *p) const noexcept |
| Floyd_All_Shortest_Paths (const GT &__g, SA &__sa) | |
| Floyd_All_Shortest_Paths (const GT &g, SA &&sa=SA()) | |
| string | entry (const Distance_Type &e) |
| Path< GT > | get_min_path (const long src_idx, const long tgt_idx) const |
| Path< GT > | get_min_path (typename GT::Node *src, typename GT::Node *tgt) const |
Static Public Member Functions | |
| 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:
|
inlinenoexcept |
Retorna el ìndice dentro de una matriz de adyacencia que tendrÃa el nodo p
Here is the call graph for this function:
|
inlinenoexcept |
Retorna el nodo correspondiente al Ãndice i en una matriz de adyacencia para el algoritmo de Floyd-Warshall