• No se han encontrado resultados

Teoría de Grafos. 2.1 Introducción: grafos y digrafos

N/A
N/A
Protected

Academic year: 2021

Share "Teoría de Grafos. 2.1 Introducción: grafos y digrafos"

Copied!
9
0
0

Texto completo

(1)

Cap´ıtulo 2

Teor´ıa de Grafos

2.1 Introducci´ on: grafos y digrafos

En t´ erminos generales, un grafo consiste en un conjunto de puntos, que llamaremos v´ ertices, y l´ıneas que unen los v´ ertices, que denominaremos aristas.

Los grafos se est´ an convirtiendo en herramientas poderosas de m´ ultiples disciplinas: ingenier´ıa electrica y civil, redes de comunicaci´ on, computaci´ on, economia, sociolog´ıa, etc. Tanto por su simpli- cidad como modelo de muy variadas situaciones, como secillez para dar soluci´ on a los problemas, en muchos casos en forma de algoritmos computables en ordenador.

Aparecen en diferentes campos bajo denominaciones distintas: “redes” en ingenier´ıa electrica,

“estructuras moleculares” en qu´ımica, “mapas de carreteras”, “sociogramas”, “redes de telecomuni- caciones”, etc. El modelado es simple tomando los objetos (lugares, aparatos, personas, . . . ) como v´ ertices y las conexiones (cables, relaciones, tratos, . . . ) como aristas.

Ejemplo 1.- En la ciudad de K¨ onigsberg, existen siete puen- tes que unen las riberas y dos islas formadas por el r´ıo Pregel, de la forma que indica el dibujo. ¿Hay alguna forma de re- correr los siete puentes y volver al punto de partida, sin cruzar dos veces por el mismo puente?











 s

s s

s

%

$

El grafo que aparece sobre el dibujo modela esa situaci´ on: cuatro puntos, que representan las partes de tierra firme y las l´ıneas que los unen, representando los puentes. El problema se reduce a saber si pueden recorrerse todas las l´ıneas sin repetir ninguna y acabar en el mismo punto.

Cuando se plante´ o esa pregunta a Euler ingeni´ o la teor´ıa de grafos y prob´ o los primeros resultados antes de dar su respuesta: no.

Definici´ on 2.- Un grafo est´ a formado por un par de conjuntos finitos, y se denota por G = (V, A) , donde V es el conjunto de v´ ertices y A es el conjunto de aristas.

Cada arista de a ∈ A conecta dos v´ ertices de V , que llamaremos extremos de la arista, y escribi- remos a = {x, y} para indicar que a conecta o une los v´ ertices x e y . Diremos entonces que x e y son adyacentes por a .

En un grafo podemos encontrarnos lazos (aristas cuyos extremos coinciden), aristas m´ ultiples (m´ as de una arista conectando los mismos v´ ertices) y v´ ertices aislados (no est´ an conectados a ning´ un otro v´ ertice).

Pero tambi´ en podemos hablar de grafos dirigidos donde cada arista tiene una direcci´ on de recorrido;

modelos para una distribuci´ on de agua por la red de tuberias de la ciudad, la red viaria con calles de sentido ´ unico, etc., son ejemplos de grafos dirigidos.

Definici´ on 3.- Un digrafo o grafo dirigido est´ a formado por un par de conjuntos finitos, y lo denotaremos por D = (V, A) , donde V es el conjunto de v´ ertices y A es el conjunto de arcos o aristas dirigidas entre los v´ ertices.

Cada arco a ∈ A conecta dos v´ ertices de V , que llamaremos respectivamente extremo inicial y

extremo final del arco, y escribiremos a = (x, y) para indicar que a conecta o une el v´ ertice x con el

v´ ertice y . Diremos tambi´ en que x es adyacente a y y que a incide en y .

(2)

2.1 Introducci´on: grafos y digrafos

Si los grafos se representan con puntos y l´ıneas que los unen, los digrafos se representan con puntos y flechas entre ellos.

Desgraciadamente no hay una nomenclatura est´ andar para designar los tipos de grafos ni los ele- mentos que aparecen, por lo que es preciso fijarla y tenerlo presente al consultar cualquier bibliograf´ıa sobre el tema.

Los grafos se clasifican por ser dirigidos o no, y por tener aristas/arcos m´ ultiples y lazos. De un grafo sin aristas m´ ultiples ni lazos se suele decir que es simple. Nosotros trabajaremos siempre con grafos simples.

Notaci´ on 4.- Llamaremos grafos a los no dirigidos, sin aristas m´ ultiples ni lazos (grafos no dirigidos simples), y digrafos a los dirigidos, sin arcos m´ ultiples ni lazos dirigidos (grafos dirigidos simples).

Si G = (V, A) es un grafo, con V = {v

1

, v

2

, . . . , v

n

}, escribiremos {v

i

, v

j

} ´ o {v

j

, v

i

} para denotar la arista que une ambos v´ ertices.

Si D = (V, A) es un digrafo, denotaremos por (v

i

, v

j

) el arco que conecta v

i

con v

j

.

Observaciones 5.- ? En un grafo s´ olo puede haber una arista entre los mismos dos v´ ertices, y en un digrafo puede haber hasta dos arcos pero de sentidos contrarios.

Si un grafo tiene n v´ ertices, en cada v´ ertice pueden incidir a lo m´ as n − 1 aristas. Si es un digrafo, de cada v´ ertice pueden salir a lo m´ as n − 1 arcos y pueden incidir en ´ el n − 1 arcos como mucho.

? Un grafo (no dirigido) puede considerarse tambien como un digrafo, sin m´ as que cambiar cada arista por dos arcos de sentidos contrarios.

En ocasiones, por comodidad y claridad en la repre- sentaci´ on gr´ afica, cuando en un digrafo aparece un arco y el de sentido contrario se sustituyen ambos por una arista.

K

Ut t

t t



-

?



=

t t

t t



-

?



Definici´ on 6.- Un subgrafo (subdigrafo) de un grafo (digrafo), es un grafo (digrafo) formado con v´ ertices y aristas (arcos) del inicial.

Es decir, se obtienen eliminando aristas y/o v´ ertices del inicial (si se elimina un v´ ertice, tambi´ en deben eliminarse todas las aristas incidentes en ´ el).

2.1.1 Matriz de adyacencia de un grafo

Un grafo o un digrafo D = (V, A) puede tambien describirse mediante una tabla o matriz que indique las conexiones:

Definici´ on 7.- Si D tiene n v´ ertices, se llama matriz de adyacencia de D a la matriz cuadrada de orden n , M = (m

ij

)

n×n

, donde m

ij

= 1 si el arco (v

i

, v

j

) ∈ A , y m

ij

= 0 en otro caso.

Si G es no dirigido, su matriz de adyacencia es sim´ etrica (si la arista {v

i

, v

j

} est´ a en A , tambi´ en est´ a {v

j

, v

i

}).

Si el grafo o digrafo es simple –es nuestro caso–, la diagonal est´ a formada por ceros (no tiene lazos).

6

Rs s

s s

v1 v2

v3

v4



-

?



M =

v

1

v

2

v

3

v

4

v

1

0 0 1 1 v

2

1 0 0 0 v

3

1 0 0 1

v

4

0 1 0 0

s s

s s

v1 v2

v3

v4

@

@

@

@

@@

M =

0 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0

Fig. 2.1. Matrices de adyacencia

(3)

2.1 Introducci´on: grafos y digrafos

Si para formar un subgrafo eliminamos s´ olo aristas, su matriz de adyacencia se forma cambiando el 1 por un 0 en las posiciones correspondientes; pero si se elimina un v´ ertice, debemos eliminar la fila y la columna correspondientes a ese v´ ertice en la matriz.

En un grafo el n´ umero de unos en cada fila o columna es el n´ umero de aristas incidentes en el v´ ertice correspondiente a esa fila o columna; mientras que en un digrafo, el n´ umero de unos de cada fila se corresponde con el n´ umero de arcos salientes desde ese v´ ertice y el n´ umero de unos de cada columna indica el numero de arcos que llegan a ese v´ ertice.

Definici´ on 8.- En un grafo no dirigido, el n´ umero de aristas incidentes en un v´ ertice se denomina grado del v´ ertice, gr(v) .

En un digrafo, se denomina ingrado de un v´ ertice al n´ umero de arcos incidentes en un v´ ertice, ing(v) , y exgrado al n´ umero de arcos salientes del v´ ertice, exg(v) .

? Si G es un grafo con n v´ ertices y m aristas, no es dificil comprobar que

Pn

i=1

gr(v

i

) = 2m .

? Si D es un digrafo con n v´ ertices y m arcos, se tiene que

Pn

i=1

ing(v

i

) =

Pn

i=1

exg(v

i

) = m .

2.1.2 Ejercicios

1.1 La zona Z-72 de gesti´ on de carreteras se ocupa de la red viaria entre las 6 ciudades del ´ area.

Hay carretera entre A y C , A y E , B y C , B y D , B y F , C y D , C y E , y entre E y D . (a) Dibujar un grafo para modelar esta situaci´ on.

(b) En una redistribuci´ on zonal, la ciudad B pasa a depender de la nueva zona Z-80, y las carreteras que la un´ıan con las ciudades de la Z-72 pasan a depender de la Interzonal 3.

¿Qu´ e grafo describir´ıa la nueva situaci´ on de la Z-72? ¿Hay alguna peculiaridad rese˜ nable?

(c) Si es C , en lugar de B , quien pasa a depender de la Z-80, ¿qu´ e grafo describir´ıa entonces la nueva situaci´ on de la Z-72? ¿Hay alguna peculiaridad rese˜ nable?

(d) Obtener la matriz M de adyacencia del grafo inicial y las matrices M

1

y M

2

de los subgrafos construidos en los apartados anteriores. ¿Como se reflejan en las matrices las peculiaridades observadas antes?

Introducir en el ordenador como M la matriz de adyacencia del grafo.

[i] Encuentra los v´ ertices adyacentes a B y los adyacentes a D .

[ii] Construir a partir de ella las matrices M1 y M2 de los subgrafos obtenidos en ese ejercicio.

Hacerlo de dos formas: eligiendo los elementos que las forman y eliminando los que sobran.

[iii] Calcular el grado de cada v´ ertice, calcular el n´ umero de aristas y comprobar que es cierta la igualdad

Pn

i=1

gr(v

i

) = 2m .

1.2 La matriz M representa las direcciones de circulaci´ on de las calles entre 6 plazas A , B , C , D , E y F .

(a) El problema se modela usando un digrafo. ¿Por qu´ e?

(b) ¿Hay calles de doble direcci´ on? ¿cuales?

(c) Si se cierra la plaza B por obras, ¿habr´ıa que cambiar (o a˜ nadir) alguna direcci´ on para poder seguir circulando por las dem´ as calles?

M =

0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0

(4)

2.2 Moverse por un grafo. Conexi´on

(d) Si la respuesta al apartado anterior es afirmativa, indicar los cambios necesarios para resol- ver el problema. Estudiar todas las posibilidades de soluci´ on y resaltar las que requieran un menor n´ umero de cambios.

Introducir en el ordenador la matriz de adyacencia del digrafo como una matriz dispersa S.

[i] Construir la matriz M a partir de ella.

[ii] Hallar la traspuesta y comprobar que es distinta de M.

[iii] Implementar una bifurcaci´ on que nos diga si una matriz es o no cuadrada, y otro que nos diga si es sim´ etrica.

[iv] Construir una matriz de tres columnas que por filas tenga el v´ ertice, su ingrado y su exgrado.

[v] Obtener la matriz M1 del digrafo resultante de cerrar la plaza B al tr´ afico.

[vi] Si es el caso, obtener la matriz M2 que resuelva el problema del tr´ afico.

[vii] Construir a partir de M, mediante operaciones con matrices (y no por elementos), la matriz A correspondiente a hacer todas las calles de doble direcci´ on.

[viii] ¿Que operador relacional usar´ıas para comprobar que los arcos que figuran en M siguen estando en A?

2.2 Moverse por un grafo. Conexi´ on

La estructura de un grafo, como puntos conectados, sugiere recorridos o desplazamientos por un grafo.

Es decir, en un grafo G = (V, A) , podemos ir desde un v´ ertice v

1

recorriendo aristas hasta llegar a otro v´ ertive v

k

. As´ı:

Definici´ on 9.- Sea G = (V, A) un grafo. Llamaremos trayectoria en G a una sucesi´ on de v´ ertices, x

1

x

2

· · · x

p−1

x

p

tales que {x

i

, x

i+1

} ∈ A, para cada i = 1, 2, . . . , p − 1.

Diremos que la trayectoria conecta o une el v´ ertice x

1

y el v´ ertice x

p

, y del n´ umero de aristas recorridas, p − 1 , diremos que es la longitud de la trayectoria.

Si x

1

= x

p

se dice que la trayectoria es cerrada.

No hemos puesto ninguna restricci´ on al recorrido de la trayectoria (salvo que use aristas del grafo), podr´ıamos deambular por el grafo recorriendo siempre las mismas aristas y pasando por los mismos v´ ertices. Es usual distinguir otros dos tipos de trayectorias.

Definici´ on 10.- Llamaremos cola a una trayectoria que recorre aristas distintas y camino a una trayectoria sin v´ ertices repetidos (luego tampoco aristas).

De una cola cerrada se dice que es un circuito y de un camino cerrado que es un ciclo.

Nota: Las denominaciones de trayectoria, cola, circuito y camino difieren de unos autores a otros, mientras que la de ciclo es m´ as com´ un; en cualquier caso, y como ya comentamos, conviene comprobar c´ omo denomina cada autor estos elementos.

Los caminos y ciclos son elementos imprescindicles en la teor´ıa de grafos –tambi´ en en la parte que a nosotros nos ocupa–. Las siguientes definiciones establecen unas tipolog´ıas de grafos muy importantes:

Definici´ on 11.- Diremos que un grafo es ac´ ıclico si no tiene ciclos.

Definici´ on 12.- Un grafo es conexo si todo par de v´ ertices est´ a unido por una trayectoria (por un

camino).

(5)

2.2 Moverse por un grafo. Conexi´on

Si el grafo no es conexo, est´ a formado por varios trozos que s´ı son conexos. De cada uno de estos trozos se dice que es una componente conexa del grafo. En otras palabras, un grafo es conexo si desde un v´ ertice se puede ir a todos los dem´ as. Si el grafo no es conexo un v´ ertice s´ olo est´ a conectado con los de su misma componente conexa.

Aunque no todas las trayectorias son caminos, el siguiente resultado nos asegura que siempre podremos disponer de uno si es necesario (y explica el par´ entesis en la definici´ on de conexi´ on).

Proposici´ on 13.- Cada trayectoria que une dos v´ ertices distintos contiene un camino que une esos mismos v´ ertices.

Demostraci´ on:

Sea T una trayectoria que une el v´ ertice v

r

y el v´ ertice v

s

. Si T no es un camino, repite v´ ertices.

Cuando recorremos T , si pasamos por un v´ ertice v

i

y este nos aparece m´ as adelante en la trayectoria, nos encontramos en el mismo punto que la primera vez que pasamos por ´ el, luego si eliminamos el “paseo” intermedio seguimos teniendo una trayectoria que une el v´ ertice v

r

y el v´ ertice v

s

. Si repetimos el proceso hasta que no queden v´ ertices repetidos tenemos el camino postulado.

De igual manera se tiene que:

Proposici´ on 14.- Cada circuito que empieza y acaba en un v´ ertice v

r

contiene un ciclo que empieza y acaba en ese v´ ertice v

r

.

(El resultado es por supuesto v´ alido para cada v´ ertice de un circuito.) 2.2.1 Trayectorias y matrices

La matriz M , de adyacencia de un grafo, indica las aristas entre v´ ertices, que son tambi´ en las tra- yectorias de longitud 1 posibles entre v´ ertices. As´ı, la matriz M

2

= M M indica, en cada posici´ on, el n´ umero de trayectorias de longitud 2 entre los v´ ertices correspondientes, es decir, si en la posici´ on (i, j) hay un 3, tenemos tres trayectorias distintas desde el v´ ertice v

i

al v´ ertice v

j

.

En efecto, si M =

0 1 1 1 1 0 1 0 1 1 0 1 1 0 1 0

es la matriz de un grafo, el elemento (1, 3) de M

2

se obtiene de

operar la fila 1 de M con la columna 3 de M . Entonces (ponemos con cada elemento de la matriz su significado como arista),



6→

0 1

v1→v2

1

v1→v3

1

v1→v4



1

v1→v3

1

v2→v3

0

6→

1

v4→v3

= 0 · 1

6→

+ 1 · 1

v1→v2→v3

+ 1 · 0

6→

+ 1 · 1

v1→v4→v3

= 2

luego hay dos trayectorias de longitud 2 desde el v´ ertice v

1

al v´ ertice v

3

: v

1

v

2

v

3

y v

1

v

4

v

3

. Igualmente, el elemento (2, 2) de M

2

ser´ a:



v2→v

1

1

0

6→

1

v2→v3

0

6→



1

v1→v2

0

6→

1

v3→v2

0

6→

= 1 · 1

v2→v1→v2

+ 0 · 0

6→

+ 1 · 1

v2→v3→v2

+ 0 · 0

6→

= 2 y hay dos trayectorias de longitud 2 desde el v´ ertice v

2

al v´ ertice v

2

: v

2

v

1

v

2

y v

2

v

3

v

2

.

Los valores de M

2

cuentan trayectorias, no caminos. En el primer caso, las trayectorias son caminos, pero en el otro no son caminos (ni colas) pues se recorre la misma arista. De hecho todas las trayectorias contadas en la diagonal se forman as´ı: se sale del v´ ertice por cada arista y se vuelve por la misma arista.

De la misma forma, en M

3

se tiene el n´ umero de trayectorias de longitud 3 entre cada par de

v´ ertices; en M

4

se tiene el n´ umero de trayectorias de longitud 4 entre cada par de v´ ertices, etc.

(6)

2.2 Moverse por un grafo. Conexi´on

2.2.2 Algoritmos de conexi´ on de un grafo

Usando las potencias de la matriz de adyacencia puede estudiarse la conexi´ on de un grafo de manera eficaz, pero poco eficiente desde el punto de vista del c´ omputo operacional. Yendo a la definici´ on de conexi´ on (existencia de caminos entre cada par de v´ ertices) y construyendo nuevos caminos a partir de los ya existentes se obtienen mejores algoritmos para probarlo. El m´ as sencillo, y que sirve como base a otros interesantes algoritmos es el algoritmo de Warsall.

2.2.2.1 El algoritmo de Warsall

Este algoritmo recrea la construcci´ on de trayectorias estre v´ ertices de la manera siguiente:

“Los v´ ertices v

i

y v

j

estan conectados si hay un camino entre ellos o, si para alg´ un v´ ertice v

k

hay un camino de v

i

a v

k

y un camino de v

k

a v

j

La estrategia que sigue el algortimo es de comprobaciones exhaustivas y lo hace en sentido contrario al sugerido por la frase anterior: no comprueba si para cada par de v´ ertices v

i

, v

j

hay alg´ un otro v

k

que hace de enlace, sino al rev´ es, comprueba si cada v´ ertice v

k

es puente entre cada par de v´ ertices v

i

y v

j

.

Warsall produce una sucesi´ on de matrices booleanas W

(1)

, W

(2)

, . . . , W

(n)

(una por cada v´ ertice v

k

a comprobar) que indican si dos v´ ertices dados est´ an o no conectados. Si el grafo es conexo la

´

ultima matriz constar´ a toda de unos (si hay al menos dos v´ ertices).

Inicialmente, comenzaremos usando la matriz de adyacencia M como matriz de conexi´ on inicial ( W

(0)

= M , s´ olo est´ an conectados los v´ ertices extremos de las aristas). En el paso 1, y para cada v

i

y v

j

, se comprueba si ya est´ an conectados o si pueden conectarse a trav´ es de v

1

(es decir, si v

i

est´ a conectado con v

1

y tambi´ en v

1

est´ a conectado con v

j

). Obtendremos as´ı una nueva matriz W

(1)

que indicar´ a los v´ ertices conectados, bien porque lo estaban o bien porque se han conectado a trav´ es de v

1

.

Y se repite lo mismo para cada uno de los v´ ertices restantes... El algoritmo, puede plantearse as´ı:

Algoritmo 1.- (de Warsall)

inicio: n; M; W(0)

= M

para

k

=

1

hasta

n

para

j

=

1

hasta

n

para

i

=

1

hasta

n

W

(k)

(i, j) = W

(k−1)

(i, j) |



W

(k−1)

(i, k) & W

(k−1)

(k, j)

 fin

fin fin

Y el grafo ser´ a conexo si la matriz final, W

(n)

, es toda de unos.

Observaci´ on 15.- Matlab es un potent´ısimo manejador de matrices, por lo que es mejor y m´as corto hacer algoritmos para las matrices completas que para los elementos individualmente (si se puede claro). As´ı, el algoritmo de Warsall puede reducirse al siguiente

inicio: n; M; W(0)

= M

para

k

=

1

hasta

n

W

(k)

= W

(k−1)

|



W

(k−1)

( : , k) ∗ ones(1, n) & ones(n, 1) ∗ W

(k−1)

(k, : )

 fin

Como los operadores l´ ogicos sobre matrices se aplican elemento a elemento, si en un paso k, es-

cribimos en las posiciones correspondientes de una matriz todas las comparaciones “y( & )” que se

hacen, vemos que puede separarse en una comparaci´ on de dos matrices, la primera contine copias

de la columna k y la segunda copias de la fila k.

(7)

2.2 Moverse por un grafo. Conexi´on

Es evidente que si la matriz toda de unos se consigue en un paso intermedio no es necesario completar el algoritmo, por lo que puede incluirse condiciones de parada que reduzcan el timepo de c´ omputo. (De hecho, es suficiente con que en una fila o columna todos los elementos que no sean de la diagonal sean 1 para asegurar la conexi´ on.)

2.2.2.2 Algoritmo de Floyd

El algoritmo trabaja con operaciones l´ ogicas para determinar la conexi´ on o no entre los v´ ertices, pero cambiando el tipo de elementos y operadores usados se ha adaptado para otras cuestiones. Por ejemplo, puede modificarse ligeramente para encontrar la longitud (en el sentido de menor n´ umero de aristas) del camino m´ as corto entre dos v´ ertices conectados: “si hay un camino entre los v´ ertices v

i

y v

j

y se puede formar otro uniendo dos que pasen por alg´ un v´ ertice v

k

, elegimos el m´ as corto de los dos”.

Para ello hay que sustituir la matriz de adyacencia M , por otra matriz L (de “longitud de alcance”) que almacena las longitudes de los caminos entre los v´ ertices, de la siguiente manera:

• un v´ ertice est´ a a alcance 0 de si mismo (0 en la diagonal),

• los v´ ertices conectados por una arista est´ an a alcance 1 y

• los v´ ertices no conectados directamente est´ an a alcance ∞ .

Se trata pues de ir minorando los valores de la matriz; para ello realizamos las mismas comprobaciones que realiza Warsall con un peque˜ no cambio: en cada paso tomaremos como nuevo valor de la matriz de alcance el valor

m´ın



L

(k−1)

(i, j) , L

(k−1)

(i, k) + L

(k−1)

(k, j)



(es decir, tomamos como longitud la del camino m´ as corto entre el que tenemos y el que se pueda formar uniendo dos caminos).

La matriz final del algoritmo contendr´ a en cada posici´ on la logitud del camino m´ as corto entre cada par de v´ ertices (y cero en la diagonal). Si dos v´ ertices no pueden conectarse figurar´ a el valor ∞ (inf en Matlab), por lo que el grafo ser´a conexo si no existe ning´ un valor ∞ en la matriz final.

2.2.3 Trayectorias y conexi´ on en un digrafo

Para los grafos dirigidos, las trayectorias, colas, caminos, circuitos y ciclos, se definen de forma an´ aloga.

La diferencia estriba en que los arcos s´ olo se pueden recorrer en un sentido, por lo que las trayectorias (colas, ciclos, etc.) son siempre trayectorias dirigidas que se recorren en el sentido que indica la flecha.

Definici´ on 16.- Sea D = (V, A) un digrafo. Llamaremos trayectoria (dirigida) en D a una sucesi´ on de v´ ertices, x

1

x

2

· · · x

p−1

x

p

tales que (x

i

, x

i+1

) ∈ A , para cada i = 1, 2, . . . , p − 1 .

Diremos que la trayectoria conecta o une el v´ ertice x

1

con el v´ ertice x

p

, y del n´ umero de arcos recorridos, p − 1 , diremos que es la longitud de la trayectoria. Si x

1

= x

p

se dice que la trayectoria es cerrada.

Llamaremos cola a una trayectoria con todos los arcos distintos y circuito a una cola cerrada.

Llamaremos camino a una trayectoria sin v´ ertices repetidos y ciclo a un camino cerrado.

Todas las definiciones y resultados vistos en el apartado anterior (aciclicidad, matrices y su significado, etc.) tienen su an´ alogo para digrafos –sin m´ as que tener en cuenta que todos los elementos han de ser dirigidos–, excepto uno: la definici´ on de conexo.

Definici´ on 17.- Sea D un digrafo. Se llama grafo no dirigido subyacente a D , al grafo que se obtiene sustituyendo cada arco (x, y) por la arista {x, y} (si aparecen (x, y) e (y, x) se sustituyen ambos por una s´ ola arista).

Definici´ on 18.- Un digrafo es conexo si su grafo subyacente es conexo.

(8)

2.2 Moverse por un grafo. Conexi´on

En general, los resultados v´ alidos para grafos o digrafos los son tambi´ en para los otros, salvo aquellos que se basan directamente en la existencia o no existencia de direcciones (como la conexi´ on).

As´ı, el algoritmo de Floyd para calcular la menor longitud de un camino entre v´ ertices, comentado antes, funciona perfectamente con digrafos:

Algoritmo 2.- (de Floyd)

inicio: n; L; L(0)

= L

para

k

=

1

hasta

n

para

j

=

1

hasta

n

para

i

=

1

hasta

n

L

(k)

(i, j) = min



L

(k−1)

(i, j), L

(k−1)

(i, k) + L

(k−1)

(k, j)

 fin

fin fin

Donde L se obtiene a partir de la matriz de adyacencia, poniendo para i 6= j sin arco entre ellos L(i, j) = ∞ . Si en la matriz final algunas posiciones mantienen el valor ∞ , quiere decir que no puede irse de un v´ ertice al otro (no hay camino).

Nota: En un grafo no dirigido la conexi´ on asegura que se puede ir desde cualquier v´ ertice a cualquier otro, pero en los digrafos conexos puede haber perfectamente v´ ertices no conectados por caminos dirigidos (que no haya camino de v

i

a v

j

ni camino de v

j

a v

i

). En el

digrafo de la derecha, v

1

s´ olo se conecta con v

2

, v

2

no se conecta con ning´ un otro, etc.

s -s s -s s v1 v2 v3 v4 v5

2.2.4 Ejercicios

2.1 Considerar en el grafo G de la derecha, la trayectoria de v

2

a v

7

, T = v

2

v

1

v

3

v

2

v

5

v

4

v

6

v

5

v

3

v

4

v

6

v

7

.

(a) ¿Es T un camino?, ¿y una cola? ¿Cu´ al es su longitud?

(b) Los caminos C

1

= v

2

v

4

v

6

v

7

y C

2

= v

2

v

5

v

6

v

7

, no forman parte de la trayectoria. ¿Por qu´ e?

s s s

s

@

@

@ s

@

@

@

@

@@ s

@

@

@

@

@@ s

v3 v5 v7

v1

v2 v4 v6

(c) Buscar en T un camino del v´ ertice v

2

al v´ ertice v

7

.

(d) Tomar los v´ ertices del grafo y dibujar T como una l´ınea continua, indicando el sentido del recorrido. Destacar el camino obtenido en el apartado anterior y las partes eliminadas.

(e) La prueba del resultado de la proposici´ on 13 da un m´ etodo para encontrar un camino contenido en una trayectoria. Reescribir el m´ etodo en la forma de un procedimiento paso a paso (algor´ıtmico) que permita obtener un camino contenido en una trayectoria.

(f) Obtener el n´ umero de trayectorias de longitud 3 de v

4

a v

5

y describirlas.

Introducir en el ordenador la trayectoria como un vector T y la matriz de adyacencia M.

[i] Calcular a partir de T la longitud de la trayectoria T .

[ii] Comprobar qu´ e v´ ertices de sub´ındice impar se repiten en la trayectoria y, cuando ocurra, encontrar las posiciones de las repeticiones en T.

[iii] Idear una manera de comprobar que la septima arista recorrida en T es tambi´ en una arista de G . Implementar esa idea en un bucle for que compruebe que T es una trayectoria v´ alida (que cada arista de T es un arista de G ).

[iv] Programar el mismo algoritmo, pero en un bucle while.

[v] Completar los programas anteriores, para que den como repuesta “Es una trayectoria” o

“No es una trayectoria”, seg´ un el caso.

(9)

2.2 Moverse por un grafo. Conexi´on

2.2 Sea G

1

el grafo formado, eliminando del grafo G del ejercicio anterior los v´ ertices v

1

y v

7

y la arista {v

2

, v

4

}.

(a) Hallar su matriz de adyacencia.

(b) Aplicar el algoritmo de Warsall dado en Algoritmo 1 de la p´ agina 26 para comprobar que es conexo. ¿En que valor de k se obtiene ya la matriz toda de unos?

(c) Si la condici´ on de parada es que todos los elementos de una fila o columna son uno (que no sean de la diagonal principal), ¿para qu´ e valores de k y j se consigue?

Implementar en Matlab el algoritmo de Warsall anterior:

[i] Sin condiciones de parada.

[ii] Que a la vista de la matriz resultante, diga si el grafo es o no conexo.

[iii] A˜ nadiendo la condici´ on de parada cuando se consiga una matriz toda de unos.

[iv] Que la condici´ on de parada sea una fila (o columna) toda de unos.

[v] Implementarlo con operaciones matriciales, en la forma descrita en la Observaci´ on 15.

2.3 Considerar el digrafo D del Ejercicio 1.2 dado por su matriz de adyacencia M .

(a) Si es posible, encontrar en D un camino, una cola que no sea camino y una trayectoria que no sea cola, del v´ ertice B al v´ ertice D .

(b) Comprobar cual de las trayectorias T

1

= B A C E C D F D F y T

2

= B A C E D C F D F es v´ alida y obtener en ella un camino de B a F .

(c) ¿Es un digrafo conexo?

Introducir la matriz M y las trayectorias como los vectores respectivos T1 y T2.

[i] Decidir la trayectoria v´ alida usando el m´ etodo construido en el Ejercicio 2.1[iii].

[ii] Construir A, la matriz del grafo no dirigido subyacente a D , y comprobar que el digrafo es conexo usando alguno de los algoritmos de Warsall construidos anteriormente.

2.4 Consideremos M, la matriz de adyacencia del digrafo D del ejercicio anterior.

(a) Construir una matriz L (“de alcance”, ver los comentarios previos a Observaci´ on 15 o Algoritmo 2) cambiando los ceros de M por inf pero manteniendo 0 en la diagonal.

(b) Implementar en Matlab el Algoritmo 2 (de Floyd), para la matriz L. Escribirlo como la funci´ on L FLOYD, con argumentos de entrada n y L y retorno una matriz W.

(c) Obtener del valor de retorno W, los v´ ertices que est´ an a mayor distancia (en el sentido de la longitud del camino m´ as corto) de entre los que est´ an conectados.

(d) Construir una funci´ on M FLOYD, que use como matriz de entrada la matriz de adyacencia M del digrafo, construya la matriz de alcance L y llame a L FLOYD para obtener la matriz de alcance minima.

2.5 Implementar como algoritmo en Matlab el proceso paso a paso del Ejercicio 2.1(e).

Pr´ actica (Primera parte).- Elaborar una funci´ on Floyd, que mejore el algoritmo de L Floyd para usar operaciones matriciales (en el mismo sentido que en el Ejercicio 2.2[v]). Que su entrada sea

´

unicamente la matriz de adyacencia de un grafo o digrafo y, tenga de salida 1 (conexo) o 0 (no

conexo) como primer argumento y la matriz de alcance m´ınimo como segundo argumento.

Referencias

Documento similar

La Normativa de evaluación del rendimiento académico de los estudiantes y de revisión de calificaciones de la Universidad de Santiago de Compostela, aprobada por el Pleno or-

La metodología de investigación empleada fue del tipo experimental. población en proceso de evaluación judicial). Los sujetos de la muestra en evaluación de custodias

Y en el caso específico del CEDH, valor orientativo mediado por la jurisprudencia del TEDH (6). El derecho a la inviolabilidad del domicilio que proclama el artículo 18.2 CE

-Capacidad para modelar problemas de la vida real utilizando técnicas de teoría de grafos y de geometría computacional.. -Capacidad para analizar la complejidad de

El contar con el financiamiento institucional a través de las cátedras ha significado para los grupos de profesores, el poder centrarse en estudios sobre áreas de interés

La gr´ afica 4.6 muestra un ejemplo en que un n´ umero de ´epocas fijo permite al algoritmo encontrar una soluci´ on mejor: Se puede observar como limitando el n´ umero de ´epocas

Si comparamos los resultados se puede observar como los genes con un mayor n´ umero de SNPs en el conjunto de datos son claramente los que m´ as selecciona, pero cabe destacar una

Vértice Adyacente: Si tenemos un par de vértices de un grafo (U, V) y si tenemos una arista que los une, entonces son vértices adyacentes.. En pocas palabras un vértice