Resumen algoritmos grafos (Algoritmos III)

De Cuba-Wiki
La versión para imprimir ya no se admite y puede contener errores de representación. Actualiza los marcadores del navegador y utiliza en su lugar la función de impresión predeterminada del navegador.

Plantilla:Back

Dado un grafo , y .


Árbol Generador Mínimo

Prim

  • Técnica: Goloso
  • Complejidad: ó .
    • adjacency matrix, searching
    • binary heap (as in pseudocode below) and adjacency list
    • Fibonacci heap and adjacency list
  • Invariante: Conecta iterativamente un conjunto de nodos conexo eligiendo siempre la arista de menor peso que no cierra un ciclo.

Kruskal

  • Técnica: Goloso
  • Complejidad:
  • Invariante: Selecciona el mínimo eje (siempre que no cierre un circuito) n-1 veces.


Camino mínimo desde un nodo

Dijkstra

  • Técnica: Goloso
  • Complejidad: . con Fibonacci Heap.
  • Invariante: Relaja(*) ejes iterativamente, tomando vértices en orden creciente de distancia a .
  • Consideraciones: No es correcto si existen aristas con peso negativo.

Bellman-Ford

  • Complejidad:
  • Invariante: Para cada vértice, recorre sus aristas relajando(*) ejes. Caso general (con posibles ciclos de peso negativo).

Relax (*)

 for i from 1 to size(vertices)-1:
     for each edge uv in edges: // uv is the edge from u to v
         if u.distance + uv.weight < v.distance:
             v.distance := u.distance + uv.weight
             v.predecessor := u


Camino mínimo entre todo par de nodos

Dantzig

  • Técnica: Dinámico.
  • Complejidad:
  • Invariante: En cada paso considera el subgrafo inducido por los vértices .

Floyd-Warshall

  • Técnica: Dinámico
  • Complejidad:
  • Invariante: Toma camino mínimo entre y pasando por nodos ().
      foreach : 


Flujo máximo de a

Ford-Fulkerson

Edmonds-Karp

  • Complejidad: