Está en la página 1de 19

Matriz de Caminatas Algoritmo de Warshall Referencias

Teoría de Grafos
C6: Matriz de Caminatas y Algoritmo de Warshall

Hernán Darío Toro Zapata

Universidad del Quindío


SIGMA
Seminario Interdisciplinario Grupo en Matemática Aplicada

Septiembre 22 de 2014
Matriz de Caminatas Algoritmo de Warshall Referencias

Esquema de la presentación

1 Matriz de Caminatas
Construcción y Definición
Operaciones booleanas y la Matriz de caminatas

2 Algoritmo de Warshall
Construcción
Código

3 Referencias
Matriz de Caminatas Algoritmo de Warshall Referencias

Construcción y Definición

Esquema de la presentación

1 Matriz de Caminatas
Construcción y Definición
Operaciones booleanas y la Matriz de caminatas

2 Algoritmo de Warshall
Construcción
Código

3 Referencias
Matriz de Caminatas Algoritmo de Warshall Referencias

Construcción y Definición

Matriz de Caminatas - Construcción I


Recuerde que Si A es una matriz de adyacencias, entonces la entrada
(Ak )ij es el número de caminatas de longitud k entre los vértices vi y vj .
Es fácil notar que la matriz Bn definida como:

B n = A + A2 + A3 + . . . + An
Es una matriz cuya entrada (Bn )ij muestra el número de caminatas de
longitud menor o igual que n que existen entre los vértices vi y vj .
Considere el grafo de la figura,
Matriz de Caminatas Algoritmo de Warshall Referencias

Construcción y Definición

Matriz de Caminatas - Construcción II


   
0 0 0 1 0 1 7 6 2 2

 0 0 1 0 0 


 0 2 3 0 0 

A=
 0 1 0 0 0  ; B5 = 
  0 3 2 0 0 

 0 1 1 0 1   2 10 9 1 2 
1 1 0 0 0 2 7 6 2 1
B5 da el número de caminatas (o ciclos) de cualquier vértice a cualquier
vértice de longitud menor o igual que 5.
Cuando es suficiente con conocer la posibilidad de alcanzar un vértice
desde cualquier otro del grafo, es útil la Matriz de Caminatas o Matriz de
Alcanzabilidad definida a continuación.
Matriz de Caminatas Algoritmo de Warshall Referencias

Construcción y Definición

Matriz de Caminatas - Definición I

Definición (Matriz de Alcanzabilidad o Matriz de Caminatas)


Sea G = (V, E) un digrafo sencillo de n vértices ordenados, la matriz P
de n × n dada por,

1, si existe un camino de vi a vj
P = (P )ij = (1)
0, de otro modo
Se denomina Matriz de Caminatas o Matriz de Alcanzabilidad de G.

La entrada Pii = 1 si y solo si existe una caminata de vi hacia si


mismo (ciclo).
La matriz P solo muestra la existencia de caminatas o ciclos en
cualquier vértice. No muestra el número de caminatas que pudieran
existir como se puede hacer con las potencias de la matriz de
adyacencias.
Matriz de Caminatas Algoritmo de Warshall Referencias

Construcción y Definición

Matriz de Caminatas - Definición II


La matriz P de n × n se puede obtener de Bn simplemente
poniendo Pij = 1 si la entrada ij de Bn es no nula, y poniendo
Pij = 0 en caso contrario.

Ejemplo
Para el ejemplo anterior,
   
1 7 6 2 2 1 1 1 1 1
 0 2 3 0 0   0 1 1 0 0 
   
Como B5 =   0 3 2 0 0  , entonces P = 
  0 1 1 0 0 

 2 10 9 1 2   1 1 1 1 1 
2 7 6 2 1 1 1 1 1 1

El método de calcular la matriz P a partir de Bn es bastante engorroso,


más aún si lo único que se necesita es saber sobre la posibilidad de
alcanzar un vértice desde otro, más no cuántas caminatas de longitud n o
menor hay. Para esto se define un método alternativo.
Matriz de Caminatas Algoritmo de Warshall Referencias

Operaciones booleanas y la Matriz de caminatas

Esquema de la presentación

1 Matriz de Caminatas
Construcción y Definición
Operaciones booleanas y la Matriz de caminatas

2 Algoritmo de Warshall
Construcción
Código

3 Referencias
Matriz de Caminatas Algoritmo de Warshall Referencias

Operaciones booleanas y la Matriz de caminatas

Operaciones Booleanas I
Las operaciones ∧ y ∨ para valores booleanos se definen de la siguiente
manera:

Cuadro: Operaciones ∧ y ∨ para valores booleanos

∧ ∨
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 1
Matriz de Caminatas Algoritmo de Warshall Referencias

Operaciones booleanas y la Matriz de caminatas

Operaciones Booleanas II
Definición (Suma y Producto Booleanos)
Dadas dos matrices booleanas A y B de n × n, defina la suma booleana
C = A ∨ B y el producto booleano D = A B, como las nuevas
matrices booleanas obtenidas de la siguiente manera:
n
_
cij = aij ∨ bij , y, dij = (aij ∧ bij )
k=1

Note que si alguna entrada k de la fila i de A y la correspondiente


entrada k de la columna j de B son iguales a 1, entonces dij = 1, en
caso contrario dij = 0.
Matriz de Caminatas Algoritmo de Warshall Referencias

Operaciones booleanas y la Matriz de caminatas

Contrucción de la Matriz de caminatas I


Dado que la matriz de adyacencia es booleana, se denota A(2) = A A y
A(r) = A A(r−1) . Note que el significado de A2 es diferente al
significado de A(2) . ¿Por qué?
Ejercicio
Retome la matriz de adyacencia del grafo
del ejemplo anterior y úsela para calcular
A(5) y finalmente, compruebe que

P = A ∨ A(2) ∨ A(3) ∨ A(4) ∨ A(5)


   
0 1 1 0 1 0 1 1 0 1
 0 1 0 0 0   0 0 1 0 0 
A(2) =  (5)
   
 0 0 1 0 0 ,...,A =  0 1 0 0 0
  

 1 1 1 0 0   1 1 1 0 0 
0 0 1 1 0 0 1 1 1 0
Matriz de Caminatas Algoritmo de Warshall Referencias

Construcción

Esquema de la presentación

1 Matriz de Caminatas
Construcción y Definición
Operaciones booleanas y la Matriz de caminatas

2 Algoritmo de Warshall
Construcción
Código

3 Referencias
Matriz de Caminatas Algoritmo de Warshall Referencias

Construcción

Algoritmo de Warshall paso a paso I


Considere de nuevo el digrafo de la figura:

Construya la matriz P 1 cuyas entradas están dadas por,



 1, si existe una arista de vi a vj o una caminata

(1)
Pij = de longitud 2 de (vi , v1 , vj ) (2)

0, de otro modo

Note que se incluyen caminatas desde un vértice hasta cualquier otro,


bien sea directamente por una sola arista, o por intermedio de v1
mediante una caminata de longitud 2. El vértice v1 se llama pivote.
Matriz de Caminatas Algoritmo de Warshall Referencias

Construcción

Algoritmo de Warshall paso a paso II

   
0 0 0 1 0 0 0 0 1 0
 0 0 1 0 0   0 0 1 0 0 
0  ; y, P 1 = 
   
A=P =
 0 1 0 0 0   0 1 0 0 0 

 0 1 1 0 1   0 1 1 0 1 
1 1 0 0 0 1 1 0 1 0

Para construir P 2 se incluyen caminatas desde un vértice hasta cualquier


otro, bien sea directamente por una sola arista, o que usen a v1 ó a v2 ó
ambos como pivote.


 1, si existe una arista de vi a vj o una caminata

(2)
Pij = de vi a vj que solo use los pivotes {v1 , v2 } (3)

0, de otro modo

Matriz de Caminatas Algoritmo de Warshall Referencias

Construcción

Algoritmo de Warshall paso a paso III


Se obtiene las caminatas nuevas (v5 , v2 , v3 ), (v3 , v2 , v3 ) y la caminata
(v4 , v2 , v3 ) que no es nueva.
 
0 0 0 1 0
 0 0 1 0 0 
P2 = 
 
 0 1 1 0 0 

 0 1 1 0 1 
1 1 1 1 0

En general se tiene que,



 1, si existe una arista de vi a vj o una caminata de

(k)
Pij = vi a vj que solo use los pivotes {v1 , v2 , . . . , vk } (4)

0, de otro modo

Matriz de Caminatas Algoritmo de Warshall Referencias

Construcción

Algoritmo de Warshall paso a paso IV


(k)
La entrada Pij puede encontrarse a partir de la iteración anterior
mediante la fórmula,
 
(k) (k−1) (k−1) (k−1)
Pij = Pij ∨ Pik ∧ Pkj

Ejercicio
Determine las matrices P 3 , P 4 y P 5 . Compruebe que P 5 = P , la
matriz de caminatas que se conoce para este grafo.
Implemente el algoritmo de Warshall en un lenguaje de
programación y replique los resultados de este ejemplo.

En general, el algoritmo de Warshall consiste en determinar una secuencia


de matrices P 0 , P 1 , . . . , P k , . . . , P n para un grafo de n nodos, siendo
P 0 = A (la matriz de adyacencia) y P n = P (la matriz de caminatas).
Matriz de Caminatas Algoritmo de Warshall Referencias

Código

Esquema de la presentación

1 Matriz de Caminatas
Construcción y Definición
Operaciones booleanas y la Matriz de caminatas

2 Algoritmo de Warshall
Construcción
Código

3 Referencias
Matriz de Caminatas Algoritmo de Warshall Referencias

Código

Código I
Matriz de Caminatas Algoritmo de Warshall Referencias

Referencias

Grassmann WK, Tremblay JP. (1998) Matemática Discreta y Lógica:


una perspectiva desde la ciencia de la computación. Prentice Hall.
Madrid. (Se encuentra en la carpeta de dropbox)

También podría gustarte