Cap´ıtulo 5

Teor´ıa de Grafos.
5.1 Introducci´on.
Los grafos se utilizan para modelar situaciones en las que se relacionan entre s´ı pares de objetos
de una determinada colecci´on. Gr´aficamente, el modelo consiste en puntos que representan los
objetos y l´ıneas que unen dichos puntos.
Ejemplo 1.- En la ciudad de K¨onigsberg, existen 7
puentes que unen las riberas y dos islas formadas por
el r´ıo Pregel, de la forma que indica el dibujo. ¿Hay
alguna forma de recorrer los siete puentes y volver al
punto de partida, sin cruzar dos veces por el mismo
puente?
_
`
¸

_
`
¸

,
z
,
y
, x
, w

¸
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.
Ejemplo 2.- Consideremos en A = ¦a, b, c, d¦ la
relaci´on binaria
¹
dada por el conjunto de pares
¹
= ¦(a, c), (a, d), (b, a), (b, b), (c, a), (c, b), (d, b)¦.
Podemos modelar gr´aficamente la relaci´on binaria
mediante el grafo de la derecha; donde los puntos
representan los elementos de A y las l´ıneas dirigidas
representan los pares de la relaci´on.
¿ ¿
¿ ¿
a
b
c
d
_
'
·
·
·
·
·
·
·
·
·
·
···
'
`

» ·
.
.
.
.
.
.
.
.
.
.
..·
Lo ejemplos anteriores, y otros muchos que podr´ıan ponerse, admiten un modelo com´ un: un
gr´afico con puntos y l´ıneas (dirigidas o no) que los unen, donde lo que importa es que puntos
est´an conectados (y en que sentido cuando las l´ıneas son dirigidas) y cuantas conexiones hay
entre ellos.
En otras palabras, un grafo G es un par ordenado G = (V, A) donde V es un conjunto no
vac´ıo que describe los objetos de la colecci´on y A el conjunto que describe c´omo se relacionan
cada par de elementos de V .
A los elementos de V = ¦x
1
, x
2
, x
3
, . . .¦ se les llama v´ertices. Si el grafo no indica direc-
ciones, a los elementos de A se les llama aristas, que se denotan por pares a = ¦x
i
, x
j
¦ para
indicar que esa arista a conecta los v´ertices x
i
y x
j
entre s´ı. Cuando el grafo s´ı indica direc-
ciones, a los elementos de A se les llama arcos, que se denotan por pares ordenados a = (x
i
, x
j
)
para indicar que ese arco a conecta el v´ertice x
i
con el v´ertice x
j
. Cuando una arista o un arco
conecta un v´ertice consigo mismo, le llamaremos lazo o lazo dirigido, seg´ un el caso.
100
5.1.1 Tipos de grafos.
Es claro de lo anterior que podemos considerar dos tipos de grafos: los grafos dirigidos y los
grafos no dirigidos.
Ahora bien, como la arista de los grafos no dirigidos indica que los v´ertices extremos pueden
conectarse en las dos direcciones, cada arista equivale a dos arcos (con direcciones opuestas)
entre los extremos de la arista. En consecuencia, todo grafo no dirigido puede convertirse o ser
considerado como un grafo dirigido:
¦grafos no dirigidos¦ ⊆ ¦grafos dirigidos¦.
Es evidente entonces que todos los resultados v´alidos para grafos dirigidos lo son tambi´en para
los grafos sin dirigir, sin embargo, dado que los problemas modelables con grafos no dirigidos
abarcan un amplio espectro y que esquem´aticamente son m´as sencillos que vistos como grafos
dirigidos, no renunciamos a estudiar de forma particular este tipo de grafos.
Antes de entrar en las definiciones y resultados precisos, es interesante considerar otra clasi-
ficaci´on de los grafos atendiendo s´olo al hecho de si dos v´ertices est´an o no conectados, sin que
sea relevante si lo est´an por m´as de una arista o arco. De un grafo que tenga lazos o tenga varias
aristas o arcos en la misma direcci´on que conectan un mismo par de v´ertices, diremos que es
un multigrafo, dirigido o no dirigido seg´ un el caso y, reservaremos la expresi´on grafo (o grafo
simple) para aquellos grafos sin lazos y cuyos pares de v´ertices no est´an conectados por m´as de
una arista, en el caso de los no dirigidos, o no est´an conectados por m´as de un arco en la misma
direcci´on, en el caso de los dirigidos.
Atendiendo a todo lo anterior, tenemos la siguiente clasificaci´on:
¦multigrafos no dirigidos¦ ⊆¦multigrafos dirigidos¦
∪ ∪
¦grafos no dirigidos¦ ⊆¦grafos dirigidos¦.
En este curso s´olo vamos a considerar grafos finitos, en los que tanto el conjunto de los
v´ertices como el de las aristas o arcos son conjuntos finitos. A pesar de ello, cuando la validez
de un resultado dependa de la finitud del grafo lo indicaremos expresamente.
5.2 Grafos no dirigidos. Conceptos b´asicos.
Definici´on 3.- Llamaremos grafo (no dirigido simple) a un par G = (V, A) donde V es un
conjunto finito no vac´ıo de v´ertices y A ⊆ ¦¦x, y¦ : x, y ∈ V, x ,= y¦ su conjunto de aristas. Si
¦x, y¦ ∈ A diremos que x e y son adyacentes y que la arista ¦x, y¦ une los v´ertices x e y.
Definici´on 4.- Si x es un v´ertice de un grafo G, llamaremos grado o valencia de x al n´ umero
de aristas que inciden en x y lo representaremos por gr(x) = [¦y ∈ V : ¦x, y¦ ∈ A¦[ .
Observaciones 5.- 1.- Si G = (V, A) es un grafo y [V [ = n y [A[ = m, el n´ umero de aristas
verifica que 0 ≤ m ≤
_
n
2
_
= [¦¦x, y¦ : x, y ∈ V, x ,= y¦[ .
2.- Dados n v´ertices, pueden formarse
_
_
n
2
_
m
_
grafos distintos con exactamente m aristas.
Por tanto, el n´ umero de grafos con n v´ertices que pueden formarse es
(
n
2
)

m=0
_
_
n
2
_
m
_
= 2
(
n
2
)
.
En la figura 5.1 siguiente pueden verse los 15 grafos de 4 v´ertices y 2 aristas. Si llamamos
a los v´ertices V = ¦x, y, z, t¦, tenemos que para el grafo G
1
= (V, A
1
) el conjunto de
101
aristas es A
1
=
_
¦x, y¦, ¦x, t¦
_
, para el grafo G
2
= (V, A
2
) el conjunto de aristas es
A
2
=
_
¦x, y¦, ¦x, z¦
_
, etc.
x y
z t
x y
z t
x y
z t
x y
z t
x y
z t
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
G
1
G
2
G
3
G
4
G
5
G
6
G
7
G
8
G
9
G
10
G
11
G
12
G
13
G
14
G
15
`
`
`
Z
Z
Z
Z
Z
Z
`
`
`
`
`
`
`
`
`
`
`
`
Z
Z
Z
Z
Z
Z
Z
Z
Z
Fig. 5.1. Todos los grafos simples de 4 v´ertices y 2 aristas.
3.- Si G = (V, A) y [V [ = n, en cada v´ertice se cumple que 0 ≤ gr(x) ≤ n −1. Si gr(x) = 0
diremos que x es un v´ertice aislado. Al grafo con todos sus v´ertices aislados se le denomina
grafo nulo, N
n
, de n v´ertices y aqu´el cuyos v´ertices tienen todos grado m´aximo, es decir,
g(x) = n −1 para todo x ∈ V , se le denomina grafo completo, K
n
.
, ,
, ,
N
4
, , , , , ,
K
2
K
3
K
4
,
/
/
/
`
`
`
,
`
`
`
,
Z
Z
Z , `
`
`
|
|
|
|
|
.
.
.
.
, `
`
`
`
\
\
\
\
\
/
/
/
,Z
Z
Z
, `
`
`
,
K
5
4.- En un grafo se verifica que

x∈V
gr(x) = 2 [A[ .
5.2.1 Isomorfismo de grafos.
Observando los grafos de la figura 5.1 puede verse c´omo muchos de ellos presentan, en el fondo,
la misma estructura aunque las conexiones sean entre v´ertices distintos. As´ı si en G
15
al v´ertice
x lo llamamos z y al v´ertice z lo llamamos x obtenemos G
1
. De la misma forma, si en
G
6
intercambiamos la x con la t obtenemos el grafo G
5
, aunque aparezca dibujado de forma
distinta. (De hecho, entre todos s´olo tienen dos “estructuras” distintas.)
Es claro que un mismo grafo puede ser dibujado de formas muy distintas, que incluso pueden
hacernos pensar en grafos distintos. Es importante, por tanto, separar la “estructura” del grafo
de su dibujo o de las etiquetas con que hayamos distinguido sus v´ertices.
Se dice que un conjunto no vac´ıo V est´a etiquetado por E (un conjunto de etiquetas) si a
cada elemento de V lo denotamos con una, y s´olo una, de las etiquetas de E.
Definici´on 6.- Un isomorfismo de grafos es una aplicaci´on biyectiva entre sus conjuntos de
v´ertices ψ: V −→ V

que conserva la relaci´on de adyacencia en los dos sentidos, es decir, tal que
¦x
i
, x
j
¦ ∈ A si, y s´olo si, ¦ψ(x
i
), ψ(x
j
)¦ ∈ A

.
En este caso diremos que los grafos (V, A) y (V

, A

) son isomorfos.
La relaci´on de isomorf´ıa entre grafos es una relaci´on de equivalencia. Cada clase de equiva-
lencia definida por esta relaci´on es un conjunto de grafos isomorfos al que denominaremos grafo
no etiquetado. Este concepto responde a la noci´on que se tiene de estructura subyacente en
cada grafo etiquetado.
102
Ejemplo 7.- a) Los grafos G
1
y G
2
de la figura siguiente son isomorfos; basta tomar la
aplicaci´on dada por ψ(x
i
) = y
i
. Ambos, como grafos isomorfos, pertenecen a la clase
representada por un grafo no etiquetado que podemos dibujar, por ejemplo, como G
3
.
,Z
Z
Z
Z
Z
Z
, ,
, ,
x
1
x
3
x
2
x
4
x
5
G
1
, , , /
/
/
/
/
/
,
Z
Z
Z
Z
Z
Z `
`
`
`
`
`
,
y
4
y
2
y
3
y
1
y
5
G
2
, , , ,
,
G
3
b) An´alogamente, en la figura 5.1, el grafo G
5
es isomorfo a los grafos G
6
y G
10
, mientras
que todos los dem´as son isomorfos a G
1
.
´
La verificaci´on de que dos grafos son o no isomorfos es un problema dif´ıcil. Para la resoluci´on
de este problema se suelen buscar datos necesariamente comunes a todos los grafos de una
misma clase de isomorf´ıa. A estos datos se les llama invariantes de un grafo. Por ejemplo, son
claramente invariantes de un grafo
a) su n´ umero de v´ertices, [V [ ,
b) su n´ umero de aristas, [A[
c) la familia de los grados de los v´ertices, gr(x), para los x ∈ V .
Ejemplo 8.- Los pares de grafos de la
figura de la derecha son isomorfos. Com-
probarlo, dando un etiquetado en uno de
los elementos de cada par y etiquetando
de forma id´entica los v´ertices correspon-
dientes del otro elemento del par.
´
, `
`
`
,Z
Z
Z
,
`
`
`,
/
/
/, ,|
|
|
|
|
.
.
.
.
, \
\
\
\
\
`
`
`
`
,
,
,
,
,
,
,
Z
Z
Z
Z
,
,
,
,
Z
Z
Z
Z `
`
`
`
Que dos grafos tengan los mismos invariantes es una condici´on necesaria para que dos grafos
sean isomorfos, pero no es una condici´on suficiente. De hecho, no se conoce ning´ un conjunto de
invariantes que sean suficientes para asegurar que dos grafos son isomorfos.
En la figura siguiente, los grafos G
1
, G
2
y G
3
tienen el mismo n´ umero de v´ertices, el mismo
n´ umero de aristas, todos tienen 4 v´ertices de grado 2 y 2 v´ertices de grado 3; pero no son
isomorfos ning´ un par de ellos. (Ver ejercicio 5.4.)
,
, , ,
, ,
Z
Z
Z
`
`
`
`
`
`
`
`
`
/
/
/
/
/
/
G
1
,
, , ,
, ,
Z
Z
Z
`
`
`
`
`
`
`
`
`
/
/
/
/
/
/
G
2
,
, , ,
, ,
Z
Z
Z
`
`
`
`
`
`
`
`
`
/
/
/
G
3
5.2.2 Multigrafos.
Definici´on 9.- Un multigrafo (no dirigido) G es un par G = (V, A) donde V es un conjunto
no vac´ıo de v´ertices y A es un conjunto de aristas que se identifican con conjuntos de uno
o dos v´ertices. Es decir, para cada arista a ∈ A existen v´ertices x, y ∈ V (no necesariamente
distintos) tales que a = ¦x, y¦.
Si x = y diremos que la arista a es un lazo. Si a y b son dos aristas distintas incidentes en
los mismos v´ertices las llamaremos aristas m´ ultiples.
103
Definici´on 10.- Si x es un v´ertice de un multigrafo G, llamaremos grado de x al n´ umero
de aristas que inciden en x, considerando que cada lazo incide dos veces en el v´ertice. Lo
representaremos por gr(x) = (n´ um aristas incidentes) + 2(n´ um lazos).
Recordemos que todo grafo es un multigrafo y, en consecuencia, los resultados v´alidos para
multigrafos gen´ericos los son tambi´en para grafos. El concepto de etiquetado de grafos, isomor-
fismo de grafos y grafo no etiquetado, se transladan a multigrafos sin problemas.
Definici´on 11.- Llamaremos subgrafo del multigrafo (V, A) a un (multi)grafo (W, B) con W ⊆
V y B ⊆ A. Al subgrafo (W, B) le llamaremos (sub)grafo parcial o generador cuando
W = V . Diremos que (W, B) es un subgrafo inducido por el multigrafo (V, A) en W ⊆ V si
se tiene que B =
_
a ∈ A : a = ¦x, y¦ con x, y ∈ W
_
y lo denotaremos por (W, A[
W
).
En la definici´on de subgrafo es necesaria la hip´otesis de que (W, B) sea un multigrafo, pues
las condiciones W ⊆ V y B ⊆ A no son suficientes (podr´ıa tomarse una arista y no sus v´ertices
adyacentes, lo que no formar´ıa un multigrafo). Utilizaremos la notaci´on (W, B) ⊆ (V, A) para
indicar que (W, B) es un subgrafo de (V, A).
N´otese que, el subgrafo parcial tiene todos los v´ertices por lo que se forma B eliminando
s´olamente aristas de A, mientras que en el subgrafo inducido B lo constituyen todas las aristas
de A cuyos v´ertices adyacentes est´an en W , luego se forma eliminando los v´ertices que no est´an
en W y eliminando ´ unicamente las aristas que inciden en alguno de los v´ertices eliminados.
Ejemplo 12.- En el multigrafo (V, A) de los puentes de K¨onisberg, consideremos los subgrafos
(V, A

), donde A

= A−¦aristas incidentes en y¦, y (W, A[
W
), donde W = ¦x, z, w¦.
,
z
,
y
, x
, w
.
.
.
.
.
.
·
·
·
·
·
·
(V, A)
,
z
,
y
, x
, w
.
.
.
.
.
.
·
·
·
·
·
·
(V, A

)
,
z
, x
, w
.
.
.
.
.
.
·
·
·
·
·
·
(W, A[
W
)
(V, A

) es un grafo parcial de (V, A), s´olo hemos eliminado aristas, y (W, A[
W
) es un subgrafo
inducido, donde hemos eliminado el v´ertice y y todas las aristas incidentes o adyacentes a ´el.
5.3 Trayectorias y conexi´on.
Definici´on 13.- Sea G = (V, A) un multigrafo. Una sucesi´on alternada de v´ertices y aristas,
x
1
a
1
x
2
x
p
a
p
x
p+1
tal que a
i
= ¦x
i
, x
i+1
¦, para cada i = 1, 2, . . . , p, la llamaremos trayectoria
y diremos que conecta o une el v´ertice x
1
y el v´ertice x
p+1
. Del n´ umero de aristas recorridas,
p, diremos que es la longitud de la trayectoria.
Si x
1
= x
p+1
, diremos que la trayectoria es cerrada.
Definici´on 14.- Llamaremos cola a una trayectoria con las aristas distintas y llamaremos cir-
cuito a una cola cerrada.
Llamaremos camino a una trayectoria sin v´ertices repetidos, salvo el primero y el ´ ultimo,
en cuyo caso diremos que el camino es cerrado y lo llamaremos ciclo.
Un (multi)grafo diremos que es ac´ıclico si no posee ciclos.
En un grafo simple, sin aristas m´ ultiples, para indicar una trayectoria basta con la sucesi´on
de v´ertices x
1
x
2
x
p+1
, pues las aristas de la sucesi´on est´an determinadas (s´olo hay una arista
posible entre dos v´ertices consecutivos de la sucesi´on).
104
Definici´on 15.- Un multigrafo es conexo si todo par de v´ertices est´a unido por una trayectoria.
Definimos entre los v´ertices de un multigrafo (V, A) la relaci´on:
x
¹
y ⇐⇒ x = y ´o existe una trayectoria que une x e y.
Esta relaci´on es de equivalencia en el conjunto de los v´ertices V y sus clases de equivalencia V
1
,
. . . , V
r
definen un partici´on de V . Para cada i = 1, . . . , r, el subgrafo inducido (V
i
, A[
V
i
) es
conexo y diremos que es una componente conexa del multigrafo (V, A).
Adem´as de los vistos anteriormente, cada uno de los siguientes datos es tambi´en invariante
para la isomorf´ıa de grafos:
d) el n´ umero y longitud de los ciclos.
e) el n´ umero de componentes conexas.
f) estos y los anteriores considerados para cada componente conexa.
Ejemplo 16.- Consideremos los cuatro grafos de la figura siguiente.
, ,
, ,
, , ,
, ,
, ,
, , ,
, ,
, ,
, , ,
, ,
, ,
, , ,
`
`
`
`
`
`
`
`
/
/
/
/
/
/
/
/
`
`
`
`
`
`
`
`
/
/
/
/
/
/
/
/
`
`
`
`
/
/
/
/
G
1
G
2
.
.
.
.
..
`
`
`
`
`` /
/
/
/
.
.
.
.
..
`
`
`
`
` `
.
.
.
.
. .
G
3
.
.
.
.
..
`
`
`
`
`` /
/
/
/
/
/
/
.
.
.
.
..
`
`
`
`
` `
/
/
/
/
G
4
Los grafos G
1
, G
2
y G
3
tienen 7 v´ertices, 8 aristas, 5 v´ertices de grado 2 y 2 v´ertices de grado
3, sin embargo no hay ning´ un isomorfismo entre ellos: G
1
es conexo y tiene un ciclo de longitud
3, G
2
es conexo pero no tiene un ciclo de longitud 3 y G
3
no es conexo (tiene dos componentes
conexas). El grafo G
4
sin embargo s´ı es isomorfo a uno de los anteriores, ¿a cu´al?
´
5.3.1 Recorrido de aristas. Grafos eulerianos.
Definici´on 17.- Llamaremos cola euleriana en un multigrafo a una cola (trayectoria sin aris-
tas repetidas) que recorra todas las aristas del multigrafo. Si la cola euleriana es cerrada la
llamaremos circuito euleriano.
A un multigrafo que contenga un circuito euleriano le llamaremos multigrafo euleriano.
Ejemplo 18.- Consideremos los grafos: C
5
(los grafos ciclo, constan s´olo de un ciclo, se denotan
por C
n
donde n es el n´ umero de v´ertices), la Estrella de Mahoma y el multigrafo de los puentes
de K¨onisberg.
, `
`
`
,Z
Z
Z
,
`
`
`,
/
/
/, ,|
|
|
|
|
|
.
.
.
.
, \
\
\
\
\
\
`
`
`
`
,
,
,
,
z
,
y
, x
, w
.
.
.
.
.
.
.
·
·
·
·
·
·
·
Los dos primeros son grafos eulerianos, el primero obviamente y en el segundo puede formarse un
circuito con sus aristas (de hecho es isomorfo a C
5
, ver el ejemplo 8). El tercero no es euleriano
puesto que no tiene un circuito euleriano, m´as a´ un tampoco tiene una cola euleriana.
´
Teorema 19.- Un multigrafo (finito) conexo tiene un circuito euleriano si, y s´olo si, todos sus
v´ertices son de grado par.
105
Demostraci´on:
=⇒| (Teorema de Euler) Como el circuito recorre todas las aristas, cada vez que se accede a
un v´ertice por una arista se sale por otra distinta, luego el grado de cada v´ertice debe ser
par.
⇐=| Sea G = (V, A) el multigrafo. Empezando en un v´ertice x cualquiera, se construye una
cola xa
1
x
1
a
2
x
2
x
p−1
a
p
x
p
lo m´as larga posible. Como de x
p
no se puede seguir, se han
recorrido todas las aristas incidentes en x
p
, este v´ertice tiene que aparecer anteriormente
en la cola construida (gr(x
p
) ≥ 2); considerando la parte de la cola desde la primera
aparici´on de x
p
hasta el final, tenemos un circuito C
1
que empieza y acaba en x
p
.
Si el circuito C
1
no recorre todas las aristas de G, eliminamos todas las aristas de C
1
(y los v´ertices que queden aislados) y repetimos el proceso en el subgrafo que queda (los
v´ertices que permanecen siguen teniendo grado par). Obtendremos as´ı una cantidad finita
de circuitos C
1
, . . . , C
r
de manera que cada arista de G est´a contenida uno de esos
circuitos.
Como G es conexo los circuitos tienen que tener v´ertices comunes con alg´ un otro, luego
basta con englobar todos ellos en uno s´olo que, por tanto, ser´a euleriano.
Corolario 20.- Un multigrafo conexo tiene una cola euleriana si, y s´olo si, no tiene v´ertices de
grado impar o tiene un ´ unico par de v´ertices de grado impar.
Demostraci´on:
Supongamos que tiene una la cola euleriana que empieza en x y termina en y, entonces:
• Si x = y, la cola es un circuito euleriano, por lo que todos los v´ertices tienen grado par.
• Si x ,= y, a˜ nadimos una arista que una x e y teniendo as´ı un circuito euleriano con todos
los v´ertices de grado par. Luego, los v´ertices x e y son los ´ unicos con grado impar.
Rec´ıprocamente, si hay dos v´ertices de grado impar basta a˜ nadir una arista uniendo esos
v´ertices y aplicar el teorema anterior.
Algoritmo de Fleury 21.- Si un multigrafo (V, A) tiene una cola euleriana C, puede construirse
mediante el siguiente algoritmo:
P.1.- Empezar en un v´ertice x de grado impar. Si no lo hay, empezar en cualquier v´ertice x.
Hacer C = x.
P.2.- Si gr(x) = 0 parar.
P.3.- Si gr(x) = 1 con a = ¦x, y¦, tomar (V, A) = (V − ¦x¦, A − ¦a¦), hacer C = Cay y
continuar en P.5.
P.4.- Si gr(x) > 1 elegir una arista a = ¦x, y¦ que no desconecte el multigrafo. Tomar (V, A) =
(V, A−¦a¦) y hacer C = Cay.
P.5.- Reemplazar x por y y volver a P.2.
106
5.3.2 Recorrido de v´ertices. Grafos hamiltonianos.
Definici´on 22.- Llamaremos camino hamiltoniano en un multigrafo a un camino (trayectoria
sin v´ertices repetidos) que recorre todos los v´ertices del multigrafo. Si el camino Hamiltoniano
es un camino cerrado le llamaremos ciclo hamiltoniano. En este caso se dice, tambi´en, que el
grafo es hamiltoniano.
Ejemplo 23.- Los dos primeros grafos de la figura son hamiltonianos, el tercero no es hamil-
toniano pero admite caminos hamiltonianos y el cuarto no admite caminos hamiltonianos.
, ,/
/
/
, `
`
`
,
Z
Z
Z,
`
`
` ,|
|
|
|
|
|
.
.
.
.
.
,/
/
/
\
\
\
\
\
\
`
`
`
`
`
, `
`
`
,
Z
Z
Z,
`
`
`
, ,Z
Z
Z
`
`
`,/
/
/
,
`
`
`,
¸
,Z
Z
,/
/
/
,
,
`
`
`
`
`
,
,
No hay caracterizaciones sencillas de grafos hamiltonianos y tampoco se conocen algoritmos
eficientes para su obtenci´on. No obstante, deben tenerse en cuenta algunas peque˜ nas cosas:
• los lazos y las aristas m´ ultiples no son ´ utiles para la obtenci´on de ciclos hamiltonianos,
• el grafo ha de ser conexo y verificarse necesariamente que gr(x) ≥ 2, para todo x ∈ V .
De esta ´ ultima condici´on, se tiene que [A[ ≥ [V [ .
Sin embargo, s´ı existen condiciones suficientes (pero no necesarias) para que un grafo sea
hamiltoniano aunque no son muy “finas”, pues s´olo aseguran la existencia del ciclo hamiltoniano
en los grafos con muchas aristas:
Teorema 24.- Cada una de las condiciones sigu-
ientes es suficiente para que un grafo conexo
(V, A), con [V [ = n, sea un grafo Hamiltoni-
ano.
1.- gr(x) ≥
n
2
para todo x ∈ V .
2.- [A[ ≥
(n−1)(n−2)
2
+ 2.
3.- gr(x) + gr(y) ≥ n, para todo ¦x, y¦ / ∈ A.
,/
/
/
/
.
.
.
.
..
, ·
·
·
·
· ·
`
`
`
`
, ,
,
_ ¸
x
, `
`
`
´
´
´
, , ,
,
Z
Z
Z
`
`
`
¸

x
Estos grafos son hamiltonianos y mues-
tran la no necesidad de las condiciones de
la izquierda.
5.4 Matrices asociadas a los grafos.
5.4.1 Matriz de adyacencia de un multigrafo.
Definici´on 25.- Llamaremos matriz de adyacencia o simplemente matriz de un multigrafo
G = (V, A) con conjunto de v´ertices V = ¦x
1
, x
2
, . . . , x
n
¦, a la matriz cuadrada M
G
= (m
ij
)
n×n
donde m
ij
=
¸
¸
¸
_
a ∈ A : a = ¦x
i
, x
j
¦

¸
¸ .
Ejemplo 26.- Consideremos
el multigrafo de la derecha.
Su matriz de adyacencia es la
que aparece a continuaci´on.
,
·
·
·
.
.
.
,
, ,
,
_
x
3
x
1
x
2
x
5
x
4
M
G
=
_
_
_
_
_
_
_
0 2 1 0 0
2 0 1 0 0
1 1 0 0 0
0 0 0 0 1
0 0 0 1 1
_
_
_
_
_
_
_
107
Puede observarse que en la matriz aparece un  en las posiciones 12
y 21 indicando que hay dos aristas de x
1
a x
2
y dos aristas de x
2
a
x
1
.
Aparece un 1 en la posici´on 55, luego existe un lazo en x
5
.
Los v´ertices x
4
y x
5
no est´an conectados con los anteriores, luego
est´an es una componente conexa distinta que los otros tres.
M
G
=
_
_
_
_
_
_
_
0  1 0 0
 0 1 0 0
1 1 0 0 0
0 0 0 0 1
0 0 0 1 1
_
_
_
_
_
_
_
Observaciones 27.- 1.- La matriz M
G
es sim´etrica. Si G no tiene lazos la diagonal principal
es nula, y si G es simple, M
G
est´a formada ´ unicamente por ceros y unos.
2.- El grado de un v´ertice x
i
es la suma de los elementos de la fila (o columna) i-´esima m´as el
n´ umero de lazos en ese v´ertice. Es decir, gr(x
i
) =
n

k=1
m
ik
+m
ii
_
=
n

k=1
m
ki
+m
ii
_
(cada
lazo cuenta 1 en la matriz, pero cuenta 2 en el grado del v´ertice).
3.- En las potencias de la matriz, M
k
G
= (m
(k)
ij
) cada entrada m
(k)
ij
indica el n´ umero de
trayectorias de longitud k entre el v´ertice x
i
y el v´ertice x
j
.
5.4.2 Caminos de peso m´ınimo.
Definici´on 28.- Llamaremos peso de un multigrafo (V, A) a toda funci´on real positiva sobre el
conjunto de aristas del grafo, es decir, a toda w: A → IR
+
y llamaremos multigrafo pesado a
la terna (V, A, w).
El peso de cada arista a lo denotaremos por w(a) = w
a
y llamaremos peso de una
trayectoria T = x
1
a
1
x
2
x
p
a
p
x
p+1
a la suma de los pesos de las aristas que la componen
w(T) =
p

i=1
w(a
i
) =
p

i=1
w
a
i
.
Definici´on 29.- Si G = (V, A, w) es un grafo pesado simple, el peso de cada arista ¦x
i
, x
j
¦ lo
denotaremos por w
ij
= w(¦x
i
, x
j
¦) y llamaremos matriz de pesos del grafo G a la matriz
W = (w
ij
)
n×n
, donde pondremos w
ij
= ∞ si ¦x
i
, x
j
¦ / ∈ A.
Para cada par de v´ertices x
i
, x
j
∈ V , llamaremos peso m´ınimo de x
i
a x
j
al n´ umero
w

ij
= m´ın
_
w(x
1
x
2
x
p
) : x
1
x
2
x
p
es una trayectoria que conecta x
i
con x
j
_
.
Llamaremos camino (de peso) m´ınimo entre x
i
y x
j
a cualquier camino entre ellos que tenga
peso m´ınimo w

ij
(si x
i
= x
j
el camino puede ser cerrado). La matriz de pesos m´ınimos es
la matriz W

= (w

ij
) con w

ij
= ∞ si no existe un camino que conecte x
i
con x
j
.
Proposici´on 30.- Sea G = (V, A, w) un grafo pesado. Si x
1
x
2
x
p−1
x
p
es un camino m´ınimo
y 1 ≤ i ≤ p, entonces x
1
x
i
y x
i
x
p
son caminos m´ınimos y w

1p
= w

1i
+w

ip
.
Demostraci´on:
Es claro el resultado, pues si C
1i
= x
1
x
2
x
i−1
x
i
no es un camino m´ınimo, existe otro
C

1i
= x
1
x

2
x

i−1
x
i
, con w(C

1i
) < w(C
1i
), luego el peso del camino x
1
x

2
x

i−1
x
i
x
p
es
menor que el de x
1
x
2
x
i−1
x
i
x
p
, en contra de la hip´otesis.
5.4.2.1 Algoritmo de Dijkstra.
Usando la matriz de pesos, el algoritmo de Dijkstra proporciona los pesos m´ınimos desde un
v´ertice dado al resto de los v´ertices. En cada paso, va seleccionando un v´ertice para el que haya
obtenido un camino m´ınimo desde el v´ertice inicial. De esta forma, cuando ha seleccionado todos
los v´ertices se tienen todos los pesos m´ınimos desde el v´ertice inicial al resto de los v´ertices.
108
Sea (V, A, w) un grafo pesado etiquetado por E = ¦1, . . . , n¦ y sea W = (w
ij
) su matriz de
pesos. Consideremos x
p
el v´ertice inicial.
En la aplicaci´on del algoritmo, interviene un conjunto o lista de ´ındices L y un vector de
pesos D(j), para j = 1, . . . , n. En cada paso, L contiene los ´ındices de los v´ertices seleccionados
anteriormente y se incrementa con un nuevo v´ertice que no est´a en L; inicialmente L = ¦p¦. El
valor de D(j), para cada j , indica el menor peso de los caminos que unen el v´ertice inicial x
p
con
x
j
y cuyos v´ertices intermedios del camino s´olo pueden ser v´ertices seleccionados actualmente
en L; inicialmente D es la p-´esima fila de W . En pseudoc´odigo, el algoritmo ser´a:
Inicio
L = ¦p¦
Cargar D con la p-´esima fila de la matriz de pesos W
Mientras sea V ,= L
Tomar k ∈ V −L con D(k) m´ınimo
L = L ∪ ¦k¦
Para cada j / ∈ L
Si D(j) > D(k) +w
kj
entonces
D(j) = D(k) +w
kj
fin si.
fin para.
fin mientras.
Fin.
Ejemplo 31.- Para el grafo de la figura se describe a continuaci´on la matriz de pesos W y
se aplica el algoritmo de Dijkstra para hallar los pesos m´ınimos desde el v´ertice x
1
a los otros
v´ertices del grafo.
,Z
Z
Z
Z
Z
Z
, Z
Z
Z
Z
Z
Z
,
,
`
`
`
Z
Z
Z
,
`
`
`
`
`
`
,
`
`
`
`
`
`
,
x
3
x
5
x
7
x
1
x
2
x
4
x
6
9
3
2
7
1
1
7
5
9
8
2
4
W x
1
x
2
x
3
x
4
x
5
x
6
x
7
x
1
∞ 3 9 ∞ ∞ ∞ ∞
x
2
3 ∞ 2 7 1 ∞ ∞
x
3
9 2 ∞ 7 1 ∞ ∞
x
4
∞ 7 7 ∞ 5 2 8
x
5
∞ 1 1 5 ∞ 9 ∞
x
6
∞ ∞ ∞ 2 9 ∞ 4
x
7
∞ ∞ ∞ 8 ∞ 4 ∞
L D(1) D(2) D(3) D(4) D(5) D(6) D(7) Comentarios
¦1¦ ∞ 3 9 ∞ ∞ ∞ ∞ w

12
= 3 = w(x
1
x
2
)
¦1, 2¦ ∞ 3 5 10 4 ∞ ∞
w(x
1
x
2
x
3
) < w(x
1
x
3
)
w(x
1
x
2
x
4
) < w(x
1
x
4
)
w(x
1
x
2
x
5
) < w(x
1
x
5
)
w

15
= 4 = w(x
1
x
2
x
5
)
¦1, 2, 5¦ ∞ 3 5 9 4 13 ∞
w(x
1
x
2
x
5
x
3
) = w(x
1
x
2
x
3
)
w(x
1
x
2
x
5
x
4
) < w(x
1
x
2
x
4
)
w(x
1
x
2
x
5
x
6
) < w(x
1
x
6
)
w

13
= 5 = w(x
1
x
2
x
5
x
3
) = w(x
1
x
2
x
3
)
¦1, 2, 5, 3¦ ∞ 3 5 9 4 13 ∞ w

14
= 9 = w(x
1
x
2
x
5
x
4
)
¦1, 2, 5, 3, 4¦ ∞ 3 5 9 4 11 17
w(x
1
x
2
x
5
x
4
x
6
) < w(x
1
x
2
x
5
x
6
)
w(x
1
x
2
x
5
x
4
x
7
) < w(x
1
x
7
)
w

16
= 11 = w(x
1
x
2
x
5
x
4
x
6
)
¦1, 2, 5, 3, 4, 6¦ ∞ 3 5 9 4 11 15
w(x
1
x
2
x
5
x
4
x
6
x
7
) < w(x
1
x
2
x
5
x
4
x
7
)
w

17
= 15 = w(x
1
x
2
x
5
x
4
x
6
x
7
)
109
Gr´aficamente el proceso realizado por el algoritmo es el siguiente:
[En cada paso, representamos con l´ıneas continuas los caminos que desde x
1
ya son de peso m´ınimo y con l´ıneas
discontinuas los caminos a los dem´as v´ertices que, en este momento del algoritmo, tienen menor peso (el peso se
indica entre corchetes) y son subceptibles de mejora; para los v´ertices aislados el peso es ∞]
,
,
, ,
, ,
,
[3]
[9]
x
1
,
,
, ,
, ,
,
Z
Z
3
2
[5]
1
[4]
7
[10]
x
1
x
2
,
,
, ,
, ,
,
Z
Z
3
2
`
`
`
1
1
[5]
5
[9]
9
[13]
x
1
x
2
x
5
,
,
, ,
, ,
,
Z
Z
3
2
`
`
`
1
5
[9]
9
[13]
x
1
x
2
x
5
x
3
,
,
, ,
, ,
,
Z
Z
3
2
`
`
`
1
5
2
[11]
8
[17]
x
1
x
2
x
5
x
3
x
4
,
,
, ,
, ,
,
Z
Z
3
2
`
`
`
1
5
2
4
[15]
x
1
x
2
x
5
x
3
x
4
x
6
,
,
, ,
, ,
,
Z
Z
3
2
`
`
`
1
5
2
4 x
1
x
2
x
5
x
3
x
4
x
6
x
7
5.4.2.2 Algoritmo de Warshall.
Este algoritmo proporciona, tambi´en a partir de la matriz de pesos W , la matriz W

de los
pesos m´ınimos
1
.
La forma de hacerlo es exhaustiva: se mira si cada peso entre los v´ertices se puede hacer m´as
peque˜ no buscando un camino que pase por el primer v´ertice x
1
, se comprueba si cada peso se
puede minorar a´ un m´as mediante un camino que pase por el v´ertice x
2
, y sucesivamente hasta
hacerlo con los n v´ertices.
Se obtiene as´ı una sucesi´on de matrices
_
W
(k)
= (w
(k)
ij
)
_
0≤k≤n
, que contienen los pesos m´as
peque˜ nos posibles en cada paso, y que se inicia con W
(0)
= W y acaba con W
(n)
= W

.
El algoritmo en pseudoc´odigo es:
Inicio
Cargar W
(0)
= (w
(0)
ij
) con la matriz de pesos W
Hacer, desde k = 0 hasta n −1
Hacer, desde i = 1 hasta n
Hacer, desde j = 1 hasta n
w
(k+1)
ij
= m´ın
_
w
(k)
i j
, w
(k)
i k+1
+w
(k)
k+1 j
_
.
Fin hacer
Fin hacer
Fin hacer
Fin
Ejemplo 32.- En el siguiente ejemplo se aplica el algoritmo de Warshall para hallar la matriz
de peso m´ınimo del grafo de la figura.
,Z
Z
Z
, `
`
`
,
`
`
`
, ,
,
·
·
·
·
·
·
.
.
.
.
.
.
x
4
x
5
x
1
x
2
x
3
x
6
2 4 1
7 4
1
2 2
w
(0)
ij
= w
ij
W = W
(0)
=
_
_
_
_
_
_
_
_
_
∞ 7 ∞ 2 ∞ 2
7 ∞ 4 4 1 1
∞ 4 ∞ ∞ ∞ 2
2 4 ∞ ∞ ∞ ∞
∞ 1 ∞ ∞ ∞ ∞
2 1 2 ∞ ∞ ∞
_
_
_
_
_
_
_
_
_
1
Ver la observaci´ on 33 posterior
110
w
(1)
ij
= m´ın¦w
(0)
ij
, w
(0)
i1
+w
(0)
1j
¦
W
(1)
=
_
_
_
_
_
_
_
_
_
∞ 7 ∞ 2 ∞ 2
7 14 4 4 1 1
∞ 4 ∞ ∞ ∞ 2
2 4 ∞ 4 ∞ 4
∞ 1 ∞ ∞ ∞ ∞
2 1 2 4 ∞ 4
_
_
_
_
_
_
_
_
_
w
(2)
ij
= m´ın¦w
(1)
ij
, w
(1)
i2
+w
(1)
2j
¦
W
(2)
=
_
_
_
_
_
_
_
_
_
14 7 11 2 8 2
7 14 4 4 1 1
11 4 8 8 5 2
2 4 8 4 5 4
8 1 5 5 2 2
2 1 2 4 2 2
_
_
_
_
_
_
_
_
_
w
(3)
ij
= m´ın¦w
(2)
ij
, w
(2)
i3
+w
(2)
3j
¦
W
(3)
=
_
_
_
_
_
_
_
_
_
14 7 11 2 8 2
7 8 4 4 1 1
11 4 8 8 5 2
2 4 8 4 5 4
8 1 5 5 2 2
2 1 2 4 2 2
_
_
_
_
_
_
_
_
_
w
(4)
ij
= m´ın¦w
(3)
ij
, w
(3)
i4
+w
(3)
4j
¦
W
(4)
=
_
_
_
_
_
_
_
_
_
4 6 10 2 7 2
6 8 4 4 1 1
10 4 8 8 5 2
2 4 8 4 5 4
7 1 5 5 2 2
2 1 2 4 2 2
_
_
_
_
_
_
_
_
_
w
(5)
ij
= m´ın¦w
(4)
ij
, w
(4)
i5
+w
(4)
5j
¦
W
(5)
=
_
_
_
_
_
_
_
_
_
4 6 10 2 7 2
6 2 4 4 1 1
10 4 8 8 5 2
2 4 8 4 5 4
7 1 5 5 2 2
2 1 2 4 2 2
_
_
_
_
_
_
_
_
_
w
(6)
ij
= m´ın¦w
(5)
ij
, w
(5)
i6
+w
(5)
6j
¦
W
(6)
=
_
_
_
_
_
_
_
_
_
4 3 4 2 4 2
3 2 3 4 1 1
4 3 4 6 4 2
2 4 6 4 5 4
4 1 4 5 2 2
2 1 2 4 2 2
_
_
_
_
_
_
_
_
_
= W

.
Observaci´on 33.- Los algoritmos de Dijkstra y de Warshall, buscan el peso m´ınimo entre
v´ertices mediante la matriz de pesos, matriz que no puede construirse para los multigrafos
no simples, lo que impide el uso de estos algoritmos en dichos multigrafos. Sin embargo, en la
b´ usqueda de un camino de peso m´ınimo en un multigrafo, de las aristas m´ ultiples s´olo es ´ util
la de menor peso, pues no puede usarse m´as que una de ellas y en ese caso se elegir´ıa aque-
lla. Entonces, basta con considerar del multigrafo el subgrafo parcial ´ util, que no tiene aristas
m´ ultiples, y construir su matriz de pesos (lo que ahora s´ı es posible).
Los pesos m´ınimos que se obtienen en la matriz final del algoritmo de Warshall, W
(n)
,
relativos a v´ertices distintos se corresponden con caminos de peso m´ınimo, mientras que los
elementos de la diagonal principal w
(n)
ii
se obtienen de recorrer la arista de menor peso que sale
del v´ertice y recorrerla de vuelta al v´ertice, es decir, w
(n)
ii
= w(x
i
x
k
x
i
) si la arista incidente en
x
i
de menor peso es ¦x
i
, x
k
¦, por lo que no es un camino sino una trayectoria cerrada.
En ocasiones y cuando se buscan pesos m´ınimos por caminos, para evitar la interferencia de
las trayectorias cerradas comentadas antes, se usa el algoritmo sobre una variante de la matriz
de pesos que consiste en hacer w
ii
= 0, para todo i. De esta forma el peso para “ir de x
i
a x
i
es 0” y el peso m´ınimo obtenido tambi´en ser´a cero.
5.5 Grafos dirigidos.
Definici´on 34.- Llamaremos digrafo o grafo dirigido a un par D = (V, A) donde V es un
conjunto finito no vac´ıo de v´ertices y A ⊆ V V − ∆ su conjunto de arcos. Si (x, y) ∈ A
diremos que el arco (x, y) une el v´ertice x con el v´ertice y, que x es adyacente a y, que y
111
es adyacente desde x y que x e y son respectivamente el v´ertice inicial y el v´ertice final del
arco (x, y).
Definici´on 35.- Si x es un v´ertice de un digrafo D, llamaremos ingrado de x al n´ umero de arcos
que tienen a x como v´ertice final y lo representaremos por ing(x) = [¦y ∈ V : (y, x) ∈ A¦[ , lla-
maremos exgrado de x al n´ umero de arcos que tienen a x como v´ertice inicial y lo representare-
mos por exg(x) = [¦y ∈ V : (x, y) ∈ A¦[ y llamaremos grado de x a gr(x) = ing(x) + exg(x).
Observaciones 36.- 1.- Si D = (V, A) es un digrafo y [V [ = n y [A[ = m, el n´ umero de arcos
verifica que 0 ≤ m ≤ n(n −1) = [V V −∆[ .
2.- Dados n v´ertices, pueden formarse
_
n(n−1)
m
_
digrafos distintos con exactamente m aristas.
Por tanto, el n´ umero total de digrafos con n v´ertices es
n(n−1)

m=0
_
n(n−1)
m
_
= 2
n(n−1)
.
En la figura 5.2 siguiente pueden verse los 15 digrafos de 3 v´ertices y 2 arcos.
x
z y
, ,
,
, ,
,
, ,
,
, ,
,
, ,
,
, ,
,
, ,
,
, ,
,
, ,
,
, ,
,
, ,
,
, ,
,
, ,
,
, ,
,
, ,
,
D
1
D
2
D
3
D
4
D
5
D
6
D
7
D
8
D
9
D
10
D
11
D
12
D
13
D
14
D
15

-
`
``¬

-

-

- ·
`
¸ `
` `´
¡
`
``¬
`
``¬
`
``¬

`
¸ ¡
·
`

`

`

`
¸ `
` `´
¡ ¸`
` `´

º
`
` `´
¡
Fig. 5.2. Todos los digrafos de 3 v´ertices y 2 arcos.
3.- Si D = (V, A) y [V [ = n, en cada v´ertice se tiene 0 ≤ ing(x) ≤ n−1 y 0 ≤ exg(x) ≤ n−1.
Si ing(x) = 0 diremos que x es un v´ertice minimal o fuente; si exg(x) = 0 diremos que
x es un v´ertice maximal, pozo o sumidero. Si ing(x) = exg(x) = 0 diremos que x es
un v´ertice aislado.
4.- Se llama digrafo completo de n v´ertices,

K
n
, al digrafo cuyos v´ertices tienen todos
ingrado y exgrado m´aximo.
, , , , , ,
_
_
_
_
_
_
, , ,
'
'
'
'
_
_
ª
º
°
*
´
»
`
·

K
2

K
3

K
4
5.- En un digrafo se verifica que

x∈V
ing(x) =

x∈V
exg(x) = [A[ .
5.5.1 Isomorfismo de digrafos.
El isomorfismo para digrafos es an´alogo al de grafos no dirigidos:
Definici´on 37.- Un isomorfismo de digrafos es una aplicaci´on biyectiva entre sus conjuntos
de v´ertices ψ: V −→ V

que conserva la relaci´on de adyacencia en los dos sentidos, es decir
(x
i
, x
j
) ∈ A si, y s´olo si, (ψ(x
i
), ψ(x
j
)) ∈ A

.
En este caso diremos que los digrafos (V, A) y (V

, A

) son isomorfos.
112
La relaci´on de equivalencia dada por el isomorfismo y el concepto de digrafos no etiquetados,
son an´alogos a los vistos para grafos no dirigidos.
Para los digrafos tambi´en son invariantes [V [ , [A[ y el grado de los v´ertices. Ahora bien,
en este caso el isomorfismo debe respetar adem´as la direcci´on de los arcos (a cada arco dirigido
(x
i
, x
j
) le debe corresponder el arco dirigido (ψ(x
i
), ψ(x
j
))), luego los v´ertices identificables por
el isomorfismo han de tener el mismo ingrado y el mismo exgrado. Es decir:
la familia de pares, (ing(x), exg(x)) para los x ∈ V , es un invariante para digrafos.
As´ı, en la figura 5.2, los digrafos D
1
y D
11
no pueden ser isomorfos pues el v´ertice x en D
1
tiene dos arcos salientes mientras que en D
11
ning´ un v´ertice tiene dos arcos salientes.
Ejemplos 38.- a) Los siguientes son ejemplos de pares de grafos isomorfos, como se puede
comprobar tomando como biyecci´on entre los conjuntos de v´ertices la dada por ψ(x) = x.
,
'
,
Z
Z

_
,
Z
Z

`
`

,
`
`

a
c
d
b
,Z
Z

/
/
/
/
/

, `
`
``
_
,
'
,
`
`
`
`
`
`*
c d
b
a

´
´´
_
, ·`
`
`"
,
Z
Z

,
`
`

, _ _
'
'
¸

a
b
c
d
e
, _ |
|
|
|
|
|*
, \
\
\
\
\

`
`
`
`
`*
,
/
/

.
.
.
.

_ `
`
``
,
Z
Z

,
`
`
`*
c d
e
a
b
b) En la figura 5.2 solo hay cuatro digrafos distintos no isomorfos, todos los dem´as son
isomorfos a alguno de esos cuatro. (Ver ejercicio 5.20.)
c) Para los tres digrafos de la figura siguiente coinciden todos los invariantes mencionados
anteriormente, pero ´esto no es suficiente para poder afirmar que son isomorfos. De hecho,
el lector podr´a probar que s´olo dos de ellos son isomorfos. (Ver ejercicio 5.21.)
, _ /
//°
,
`
``¬,/
/

,
,
`
`

,
`
`
`*
Z
Z

, `
`

,
,/
/

_
,
`
`
` ·
,
.
.
.,
,Z
Z

-
-

,|
|
|
|
|
|*
,
, \
\
\
\
\

_
,
'
,
.
.
.,
, _
`
`
`
``·
5.5.2 Multidigrafos.
Definici´on 39.- Llamaremos multidigrafo o multigrafo dirigido a un par D = (V, A) donde
V es un conjunto no vac´ıo de v´ertices y A es un conjunto de arcos que se identifican con pares
de v´ertices. De modo que, para cada arco a ∈ A existen v´ertices x, y ∈ V tales que a = (x, y).
Llamaremos arcos m´ ultiples a los arcos distintos que tienen los mismos v´ertices inicial y
final. Los arcos de la forma (x, x) se llaman lazos dirigidos o lazos.
Observaciones 40.- 1.- En los multidigrafos, cada lazo aporta 1 al ingrado y 1 al exgrado del
v´ertice.
2.- El isomorfismo de digrafos se extiende sin dificultad a multidigrafos.
3.- Las definiciones de subgrafo, subgrafo parcial y subgrafo inducido de un multidigrafo son
an´alogas al caso no dirigido.
Definici´on 41.- A cada (multi)digrafo se le asocia un multigrafo no dirigido, que se obtiene susti-
tuyendo cada arco (x, y) por una arista ¦x, y¦, y se le dice multigrafo no dirigido subyacente
al (multi)digrafo.
Un multidigrafo es conexo si su multigrafo subyacente es conexo.
113
5.5.3 Trayectorias y ciclos.
Definici´on 42.- Sea D = (V, A) un multidigrafo. Llamaremos trayectoria a una sucesi´on
alternada de v´ertices y arcos, x
1
a
1
x
2
x
p
a
p
x
p+1
tales que a
i
= (x
i
, x
i+1
), para cada i =
1, 2, . . . , p, y diremos que une el v´ertice x
1
con el v´ertice x
p+1
. Del n´ umero de arcos recorridos
diremos que es la longitud de la trayectoria. Si x
1
= x
p+1
, diremos 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.
Diremos que el multidigrafo es ac´ıclico si no posee ciclos.
Mientras que en los grafos no dirigidos las aristas se pueden recorrer en cualquier direcci´on,
en los grafos dirigidos 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.
En los digrafos, al no haber arcos m´ ultiples, las trayectorias quedan definidas dando ´ unicamente
la sucesi´on de v´ertices.
En el multidigrafo de la derecha, no hay ning´ un camino
de x
1
a x
3
ni a x
4
. No hay ning´ un camino de x
2
a x
4
, pero
si hay dos caminos de x
4
a x
2
. De x
1
a x
2
hay dos caminos
(uno por cada arco del arco m´ ultiple) y ninguno de x
2
a x
1
.
El multidigrafo es ac´ıclico.
, ,
,
,
'
`
`
``
Z
Z

_
_
x
1
x
2
x
3
x
4
A los digrafos ciclo, es decir, formados por un ´ unico ciclo dirigido
se los denomina

C
n
, donde n es el n´ umero de v´ertices. ,
, ,
,
`
¸
·
¡

C
4
El n´ umero de componentes conexas y el n´ umero y longitud de los ciclos, son tambi´en invari-
antes por el isomorfismo de multidigrafos.
5.5.4 Representaciones matriciales.
La representaci´on matricial para multidigrafos es an´aloga al caso no dirigido, por lo que tras
la definici´on, ´ unicamente daremos unas observaciones donde puntualizaremos y explicaremos lo
que sea de inter´es o diferente.
Definici´on 43.- Llamaremos matriz de adyacencia o simplemente matriz de un multidigrafo
D = (V, A) con conjunto de v´ertices V = ¦x
1
, x
2
, . . . , x
n
¦, a la matriz cuadrada M
D
= (m
ij
)
n×n
donde m
ij
=
¸
¸
¸
_
a ∈ A : a = (x
i
, x
j
)

¸
¸.
Observaciones 44.- 1.- La matriz M
D
no tiene por qu´e ser sim´etrica. Si D es simple, M
G
est´a formada ´ unicamente por ceros y unos, con ceros en la diagonal.
2.- El exgrado/ingrado de un v´ertice x
i
es la suma de los elementos de la fila/columna i-´esima.
3.- En las potencias de la matriz, M
k
D
= (m
(k)
ij
) cada entrada m
(k)
ij
indica el n´ umero de
trayectorias (dirigidas) de longitud k del v´ertice x
i
al v´ertice x
j
.
4.- G es ac´ıclico ⇐⇒ m
(k)
ii
= 0 para todo i = 1, . . . , n y para todo k ≥ 1.
5.- Los grafos dirigidos pesados, la matriz de pesos para los digrafos y los caminos de peso
m´ınimo se obtienen como en el caso no dirigido.
Los algoritmos de Dijkstra y Warshall son v´alidos tambi´en en los digrafos. En el caso del
algoritmo de Warshall, en la diagonal de la matriz final s´ı se obtienen los pesos m´ınimos
de ciclos (a diferencia de lo que ocurr´ıa en el caso no dirigido).
114
5.5.5 Los digrafos vistos como relaciones binarias.
De la definici´on se deduce que un digrafo simple no es otra cosa que una relaci´on binaria an-
tirreflexiva. De este modo, un digrafo ser´a sim´etrico, antisim´etrico o transitivo si lo es como
relaci´on binaria. Al no haber lazos en el digrafo, la definici´on de estas propiedades necesita
modificarse ligeramente.
Definici´on 45.- Un digrafo (V, A) es sim´etrico si cuando (x, y) ∈ A, entonces (y, x) ∈ A.
Es antisim´etrico si cuando (x, y) ∈ A, entonces (y, x) / ∈ A. Es transitivo si cuando
(x, y), (y, z) ∈ A, con x ,= z, entonces (x, z) ∈ A.
Observaciones 46.- 1.- Los digrafos sim´etricos y transitivos se corresponden con las rela-
ciones de equivalencia. Si (V, A) es un digrafo sim´etrico y transitivo, cada componente
conexa (V
i
, A[
V
i
) es un digrafo completo en V
i
. Los conjuntos V
i
, 1 ≤ i ≤ r, consti-
tuyen una partici´on de V que define una relaci´on de equivalencia en V que no es otra
que la relaci´on de conexi´on que utilizamos para definir el concepto de componente conexa.
Rec´ıprocamente, a cada relaci´on de equivalencia en V se le puede asociar de forma obvia
un digrafo sim´etrico y transitivo cuyas componentes conexas son los digrafos completos
sobre los conjuntos de v´ertices de cada clase de equivalencia.
2.- Los digrafos antisim´etricos y transitivos se corresponden con las relaciones de orden. Si
(V, A) es un digrafo antisim´etrico y transitivo, entonces (V, <), donde x < y si, y s´olo si,
(x, y) ∈ A es un orden parcial. Rec´ıprocamente, si (V, <) es un orden parcial, entonces
(V, A), donde A = ¦(x, y) : x < y¦, es un digrafo antisim´etrico y transitivo.
5.6 Digrafos ac´ıclicos.
El conjunto de los digrafos ac´ıclicos tiene propiedades especialmente interesantes. Constituyen
la estructura m´as amplia en la que se puede asegurar la existencia de maximales y minimales
y, en consecuencia, son la clase m´as amplia de digrafos con la propiedad de que sus puntos se
pueden estratificar en niveles. Se caracterizan, adem´as, por admitir etiquetados naturalmente
ordenados. Veremos a continuaci´on estas cuestiones con m´as detalle.
Proposici´on 47.- Si (V, A) es un digrafo (finito) ac´ıclico admite, al menos, un maximal y un
minimal.
Demostraci´on:
Si no hubiera maximales todo punto del digrafo ser´ıa adyacente a alg´ un otro, luego par-
tiendo de un punto cualquiera x
1
podr´ıamos construir una trayectoria x
1
x
p
tan larga como
quisi´eramos. Ahora bien, como el digrafo es finito, llega un momento en la trayectoria que
repetir´ıamos v´ertices, lo que va en contra de la aciclicidad.
An´alogamente para los minimales.
Usando la proposici´on anterior se obtiene la siguiente caracterizaci´on para los digrafos
ac´ıclicos:
Proposici´on 48.- Si (V, A) es un digrafo con [V [ = n, entonces (V, A) es ac´ıclico si, y s´olo si,
se puede etiquetar V en la forma ¦x
1
, x
2
, . . . , x
n
¦ de modo que si (x
i
, x
j
) ∈ A, entonces i < j .
En este caso diremos que el digrafo est´a naturalmente ordenado.
115
Demostraci´on:
=⇒ Por inducci´on sobre el n´ umero de v´ertices n. Es claramente cierto para n = 1. Supong-
amos entonces que los digrafos ac´ıclicos con menos de n v´ertices pueden ordenarse nat-
uralmente y sea (V, A) un digrafo ac´ıclico con n v´ertices. Elijamos un v´ertice maximal
x ∈ V y asign´emosle la etiqueta x
n
. El subgrafo inducido en V −¦x¦ es ac´ıclico con n−1
v´ertices, por lo que puede ordenarse naturalmente con ¦x
1
, x
2
, . . . , x
n−1
¦ y, en consecuen-
cia, el digrafo (V, A) queda de esta manera naturalmente ordenado (al ser x maximal s´olo
tiene arcos incidentes que provienen de v´ertices con ´ındice menor que n).
⇐= Supongamos que (V, A) posee un ciclo x
a
x
b
x
c
x
a
. Sea i = m´ax¦a, b, c, . . . , a¦ y sea x
j
el siguiente a x
i
en el ciclo. Entonces (x
i
, x
j
) ∈ A y, como i es m´aximo, i ≥ j ; contra la
hip´otesis i < j .
La propia demostraci´on de que todo digrafo ac´ıclico admite un etiquetado naturalmente
ordenado nos proporciona el m´etodo para construir dicho etiquetado. Si [V [ = n, tomamos
un x ∈ V que sea maximal y lo etiquetamos por x
n
; consideramos ahora el subgrafo inducido
(V − ¦x
n
¦, A[
V −{x
n
}
) y tomamos en ´el un y ∈ V − ¦x
n
¦ que sea maximal y que etiquetamos
por x
n−1
; sucesivamente, se repite el proceso hasta acabar con todos los v´ertices.
En el ejemplo siguiente, construimos un etiquetado naturalmente ordenado sobre el digrafo
etiquetado por V = ¦a, b, c, d, e, f, g, h¦. A la derecha aparece el digrafo con el etiquetado
naturalmente ordenado, donde hemos colocado todos los v´ertices en alturas progresivas a fin de
que se observe f´acilmente ese hecho (todos los arcos van de abajo a arriba, de ´ındice menor a
´ındice mayor).
,
a
,
b
,c
,d
,
e
,
f
, g
, h
¸

»
»
-
`
» ¡
·
¬
,
a
,
b
,c
,d
,
e
,
8
, g
, h
¸

»
»
-
`
»
·
,
a
,
b
,c
,d
,
e
,
8
, 7
, h
¸

»
-
`
»
,
a
,
b
,c
,d
,
6
,
8
, 7
, h
¸

»
`
,
a
,
b
,c
,d
,
6
,
8
, 7
, 5
¸

`
,
a
,
b
,4
,d
,
6
,
8
, 7
, 5
¸

,
a
,
3
,4
,d
,
6
,
8
, 7
, 5

,
1
,
3
,4
,2
,
6
,
8
, 7
, 5
,
x
1
, x
2
, x
3
,
x
4
,
x
5
,
x
6
,
x
7
,
x
8
`
`
`
`
`
`

'
.
.
.

`
`
`

'
Z

'
/
/
/

Z
Z
Z

/
/
/
/

`
`
`
``
'
Usando minimales se obtiene la siguiente estratificaci´on para un digrafo ac´ıclico:
Definici´on 49.- Si (V, A) es un digrafo ac´ıclico con [V [ = n, se pueden definir los siguientes
conjuntos:
N
0
=¦x ∈ V : x es minimal de (V, A)¦,
N
1
=¦x ∈ V −N
0
: x es minimal de (V −N
0
, A[
V −N
0
)¦,
N
2
=
_
x ∈ V −(N
0
∪ N
1
) : x es minimal de
_
V −(N
0
∪ N
1
), A[
V −(N
0
∪N
1
)
__
y, en general, para todo p, con 0 < p ≤ n:
N
p
=
_
_
_
x ∈ V −
p−1

r=0
N
r
: x es minimal de
_
V −
p−1

r=0
N
r
, A[
V −
p−1

r=0
N
r
_
_
_
_
.
A los conjuntos N
r
les llamaremos niveles del digrafo ac´ıclico (V, A) y si x ∈ N
r
diremos
que x es un v´ertice de nivel r.
116
Observaciones 50.- 1.- N´otese que para cada p, el digrafo
_
V −
p−1

r=0
N
r
, A[
V −
p−1

r=0
N
r
_
es
ac´ıclico y, por tanto, tiene sentido el uso del t´ermino minimal en las definiciones de los
N
p
.
2.- La sucesi´on de los N
p
es estacionaria en el sentido de que existe k, con 0 ≤ k ≤ n − 1,
tal que N
0
,= ∅, . . . , N
k
,= ∅ y N
k+1
= = N
n
= ∅.
3.- Los N
p
constituyen una partici´on de V que escribiremos V =
k

r=0
N
r
, con N
r
,= ∅.
Ejemplo 51.- En el digrafo de la derecha
hemos dibujado el digrafo que aparece a su
izquierda de manera que todas la flechas
van hacia arriba; as´ı todos los v´ertices que
est´an a la misma altura est´an en el mismo
nivel y el digrafo queda dibujado por nive-
les.
,
a
,
b
, c
, d
,
e
,
f
, g
, h
¸

»

»

-
`

» ¡

·
`
`
`
`
¬
,
a
, h ,
b
, d
,
g
,
c
,
e
,
f

º
`
>
>
>
>

/
/
/
/
/
/`

´

´
`
`
`

`
`

º
N
0
N
1
N
2
N
3
N
4
Definici´on 52.- Diremos que un digrafo ac´ıclico est´a naturalmente ordenado por niveles si
est´a naturalmente ordenado y respeta el orden de los niveles, es decir, si x
i
∈ N
p
y x
j
∈ N
q
con
p < q, entonces i < j .
Para obtener un etiquetado naturalmente ordenado por niveles basta con clasificar los v´ertices
en niveles V =
k

r=0
N
r
, con N
r
,= ∅, y asignarles etiquetas respetando el orden creciente de los
niveles. Es decir, si [N
r
[ = n
r
se asignan las n
0
primeras etiquetas ¦1, . . . , n
0
¦ a los v´ertices de
N
0
, las n
1
etiquetas siguientes ¦n
0
+ 1, . . . , n
0
+n
1
¦ a los v´ertices de N
1
y as´ı sucesivamente.
Ejemplo 53.- Construimos un etiquetado naturalmente orde-
nado por niveles sobre el digrafo ya dibujado por niveles y eti-
quetado por V = ¦a, b, c, d, e, f, g¦ del ejemplo 51.
Por definici´on, todo etiquetado naturalmente ordenado por
niveles es un etiquetado naturalmente ordenado. El rec´ıproco
no es cierto: obs´ervese que el etiquetado naturalmente orde-
nado, sobre este mismo grafo, que aparece en los comentarios
siguientes a la proposici´on 48, no es un etiquetado naturalmente
ordenado por niveles.
,
x
1
, x
2
,
x
3
, x
4
,
x
5 ,
x
6
,
x
7
,
x
8

º
`
>
>
>
>

/
/
/
/
/`

´

´
`
`
`

`
`

º
N
0
N
1
N
2
N
3
N
4
5.7
´
Arboles.
Tambi´en en los grafos no dirigidos la aciclicidad da origen a importantes propiedades.
En lo que sigue, vamos a trabajar con los grafos ac´ıclicos no dirigidos y con los digrafos
ac´ıclicos cuyo grafo no dirigido subyacente es tambi´en ac´ıclico, que por su estructura reciben el
nombre de ´arboles (bosques). Sobre los ´arboles (dirigidos o no dirigidos) seguiremos considerando
grafos finitos.
5.7.1 Grafos no dirigidos ac´ıclicos.
Recordemos que un grafo ac´ıclico no puede tener lazos ni aristas m´ ultiples.
117
Definici´on 54.- Un bosque es un (multi)grafo ac´ıclico. A cada componente conexa de un
bosque se le llama ´arbol. En un ´arbol, a los v´ertices de grado uno se les llama hojas.
Teorema 55.- Las siguientes condiciones sobre un grafo (V, A) son equivalentes:
a) (V, A) es un ´arbol.
b) Cada par de v´ertices distintos del grafo (V, A) est´a unido por un ´ unico camino.
c) (V, A) es conexo y, para cada a ∈ A, se tiene que (V, A−¦a¦) no es conexo.
d) (V, A) es ac´ıclico y, para cada par de v´ertices x, y con a = ¦x, y¦ / ∈ A, se tiene que
(V, A∪ ¦a¦) no es ac´ıclico.
Demostraci´on:
a)⇒b) Por ser el ´arbol ac´ıclico y conexo cada par de v´ertices distintos est´a unido por un
camino. Si hubiera otro camino uniendo el par de v´ertices, con los dos caminos se formar´ıa
(al menos) un ciclo.
b)⇒c) El grafo es conexo por hip´otesis. Si al suprimir la arista a = ¦x, y¦ el grafo resultante
(V, A−¦a¦) sigue siendo conexo, es que hay otro camino (adem´as de ¦x, y¦) uniendo los
v´ertices x e y, en contra de la hip´otesis.
c)⇒d) Si (V, A) es conexo y tiene un ciclo, al suprimir una arista del ciclo el grafo resultante
seguir´a siendo conexo, en contra de la hip´otesis, por lo que (V, A) es ac´ıclico. Si al grafo
conexo (V, A) le a˜ nadimos una arista a = ¦x, y¦, con x, y ∈ V , se forma un ciclo entre
esta arista y el camino que conecta los v´ertices x e y en el grafo (V, A).
d)⇒a) Si el grafo ac´ıclico (V, A) no fuera un ´arbol, ser´ıa no conexo y, por tanto, tiene un par de
v´ertices x e y en componentes conexas distintas y al a˜ nadir la arista a = ¦x, y¦ resultar´a
un grafo igualmente ac´ıclico, en contra de la hip´otesis.
Lema 56.- Un ´arbol finito con al menos una arista (o con m´as de un v´ertice) tiene al menos dos
hojas.
Demostraci´on:
El enunciado es cierto ya que, al ser el ´arbol ac´ıclico y finito existe un camino x
1
x
2
...x
p
de
longitud m´axima y, por tanto, x
1
y x
p
son hojas.
Lema 57.- a) Un ´arbol con n v´ertices tiene n −1 aristas.
b) Un bosque con n v´ertices y m componentes conexas tiene n −m aristas.
c) Un grafo conexo con n v´ertices y n −1 aristas es un ´arbol.
d) Un grafo con n v´ertices, m componentes conexas y n −m aristas es un bosque.
Demostraci´on:
a) Lo probaremos por inducci´on. Si n = 1 es claro que no hay aristas. Si el ´arbol tiene k +1
v´ertices, con k ≥ 1, tiene una hoja x. Si quitamos el v´ertice x y la ´ unica arista que lo
conecta queda un ´arbol con k v´ertices que, por hip´otesis, tendr´a k −1 aristas; por tanto,
el ´arbol original ten´ıa k aristas.
118
b) Cada componente tiene n
i
v´ertices y n
i
−1 aristas, luego el bosque tiene
m

i=1
(n
i
−1) = n−m
aristas.
c) Si el grafo conexo no fuera un ´arbol tendr´ıa un ciclo. En este ciclo hay igual n´ umero de
v´ertices que de aristas y cada uno de los otros v´ertices forma parte, al menos, de una arista
distinta, por lo que al menos hay n aristas en el grafo, en contra de la hip´otesis.
d) Cada componente conexa con n
i
v´ertices aporta n
i
−1 aristas, si es un ´arbol, o m´as si no
lo es. La suma de aristas de todas las componentes conexas es n−m, si todas son ´arboles,
o mayor que este n´ umero en caso contrario. En consecuencia, el grafo es un bosque.
Teorema 58.- Las siguientes condiciones sobre un grafo (V, A) con [V [ = n son equivalentes:
a) (V, A) es un ´arbol.
b) (V, A) es conexo y tiene n −1 aristas.
c) (V, A) es ac´ıclico y tiene n −1 aristas.
Demostraci´on:
a)⇒b) Por ser ´arbol es conexo y por tener n v´ertices tiene n −1 aristas.
b)⇒a) Es el apartado c) del lema 2.
a)⇒c) Por ser ´arbol es ac´ıclico y por tener n v´ertices tiene n −1 aristas.
c)⇒a) Si (V, A) es ac´ıclico, es un bosque con m componentes conexas luego con n−m aristas
y como tiene n −1 aristas, ha de ser m = 1. En consecuencia, es conexo y es un ´arbol.
5.7.2
´
Arboles generadores.
Definici´on 59.- Llamaremos ´arbol generador de un multigrafo conexo a todo grafo parcial
que sea ´arbol. Un ´arbol generador m´ınimo de un grafo conexo pesado es un ´arbol generador
con m´ınima suma de pesos.
Teorema 60.- Si (V, A) es un (multi)grafo conexo y a es una de sus aristas, entonces:
(V, A−¦a¦) es un (multi)grafo conexo ⇐⇒ a est´a en un ciclo.
Demostraci´on:
Si a es un lazo o una arista m´ ultiple es trivial. Si la arista a une los v´ertices x e y, hay otro
camino uniendo estos dos v´ertices tanto en el (multi)grafo (V, A − ¦a¦), por ser conexo, como
en el ciclo.
Corolario 61.- Todo (multi)grafo conexo finito tiene un ´arbol generador.
Demostraci´on:
En primer lugar se suprimen todos los lazos y aristas m´ ultiples, con lo que obtenemos un
grafo conexo. A continuaci´on se suprime, sucesivamente, una arista cualquiera de cada ciclo que
quede en el grafo. El teorema anterior asegura la conservaci´on de la conexi´on, luego cuando
no queden ciclos tendremos un grafo conexo ac´ıclico que ser´a el ´arbol generador buscado. La
finitud del grafo asegura la finalizaci´on del proceso.
119
5.7.2.1 Algoritmos de Kruskal y Prim.
Algoritmo de Kruskal 62.- Si (V, A) es un grafo conexo pesado con [V [ = n, el siguiente algo-
ritmo produce un ´arbol generador m´ınimo:
E.1: Poner el contador en i = 1 y seleccionar una arista a
1
de m´ınimo peso.
E.2: Para 1 ≤ i ≤ n − 2 y con aristas a
1
, a
2
, ..., a
i
ya seleccionadas, se toma la arista a
i+1
de peso m´ınimo entre las que quedan en el grafo de forma que no cierre un ciclo con las
aristas ya seleccionadas.
E.3: Cambiar i por i + 1.
Si i < n −1, volver a E.2.
Si i = n −1, las n −1 aristas constituyen un grafo parcial ac´ıclico con n v´ertices que es,
por el teorema anterior, un ´arbol generador. Su peso es m´ınimo por construcci´on.
Ejemplo 63.- Apliquemos el algoritmo de Kruskal sobre el grafo de la figura:
¿ ¿ ¿
¿
¿ ¿ ¿
1
3
3
3
4
5
2
5 5
5 5
, , ,
,
, , ,
1
, , ,
,
, , ,
1
2
, , ,
,
, , ,
1
3
3
3 2
, , ,
,
, , ,
1
3
3
3 2
, , ,
,
, , ,
1
3
3
4
2
, , ,
,
, , ,
1
3
3
4
2
5
5
, , ,
,
, , ,
1
3
3
4
2
5
Observaciones 64.- 1.- El ´arbol generador m´ınimo obtenido no es ´ unico.
2.- Este algoritmo se extiende f´acilmente a grafos pesados no conexos aplic´andolo a cada
componente conexa para obtener un bosque generador m´ınimo.
3.- Tambi´en se extiende a multigrafos pesados, para lo que basta empezar eliminando los lazos
y seleccionando entre las aristas m´ ultiples la de m´ınimo peso.
4.- La aplicaci´on del algoritmo a un (multi)grafo no pesado produce un ´arbol generador. Basta
definir previamente en el (multi)grafo una funci´on peso cualquiera.
5.- Con este algoritmo, el ´arbol generador m´ınimo se construye seleccionando sucesivamente
aristas de peso m´ınimo sin cerrar ciclos. Otra versi´on de este mismo algoritmo permite
obtener un ´arbol generador m´ınimo suprimiendo, en el grafo original, aristas de m´aximo
peso sin desconectar el grafo. En este caso, tambi´en el teorema anterior y la construcci´on
aseguran el resultado.
La segunda versi´on del algoritmo de Kruskal es m´as r´apida que la primera si hay que
eliminar menos aristas que las que hay que ir incorporando para formar el ´arbol. Es decir,
siempre que [A[ < 2 [V [ −1.
Ejemplo 65.- Aplicamos la segunda versi´on del algoritmo de Kruskal al mismo grafo que el
ejemplo anterior:
¿ ¿ ¿
¿
¿ ¿ ¿
1
3
3
3
4
5
2
5 5
5 5
, , ,
,
, , ,
1
3
3
3
4
5
2
5 5
5 5
, , ,
,
, , ,
1
3
3
3
4
2
5 5
5 5
, , ,
,
, , ,
1
3
3
3
4
2
5
5 5
, , ,
,
, , ,
1
3
3
3
4
2
5 5
, , ,
,
, , ,
1
3
3
3
4
2
5
, , ,
,
, , ,
1
3
3
4
2
5
120
Algoritmo de Prim 66.- Si (V, A) es un grafo conexo pesado con [V [ = n, el siguiente algoritmo
produce un ´arbol generador m´ınimo:
E.1: Poner el contador en i = 1 y seleccionar un v´ertice cualquiera x
1
. Hacer V

= ¦x
1
¦ y
A

= ∅.
E.2: Para 1 ≤ i ≤ n − 1, sea V

= ¦x
1
, x
2
, . . . , x
i
¦ y A

= ¦a
1
, a
2
, . . . , a
i−1
¦. A˜ nadir a A

una arista a
i
= ¦x, y¦ de peso m´ınimo entre las que conectan un v´ertice x de V

con un
v´ertice y de V −V

. Hacer y = x
i+1
y a˜ nadirlo a V

.
E.3: Cambiar i por i + 1.
Si i < n, volver a E.2.
Si i = n, el subgrafo (V

, A

) es conexo con n v´ertices y n−1 aristas y es, por el teorema
anterior, un ´arbol generador. Su peso es m´ınimo por construcci´on.
Ejemplo 67.- Apliquemos el algoritmo de Prim sobre el grafo de los ejemplos anteriores, em-
pezando en el v´ertice etiquetado por x
1
:
¿ ¿ ¿
¿
¿ ¿ ¿
1
3
3
3
4
5
2
5 5
5 5 x
1
, , ,
,
, , ,
3
, , ,
,
, , ,
1
, , ,
,
, , ,
3
3
, , ,
,
, , ,
4
, , ,
,
, , ,
2
, , ,
,
, , ,
5
5
, , ,
,
, , ,
1
3
3
4
2
5
5.8
´
Arboles dirigidos.
´
Arboles con ra´ız.
Como ya hemos indicado, en el caso dirigido vamos a tratar digrafos ac´ıclicos cuyo grafo no
dirigido subyacente tambi´en sea ac´ıclico (es decir, un digrafo ser´a un ´arbol si su grafo no di-
rigido subyacente es tambi´en un ´arbol). Para evitar alusiones continuadas al grafo no dirigido
subyacente, vamos a introducir las siguientes definiciones:
Definici´on 68.- Llamaremos semitrayectoria en un multidigrafo D = (V, A) a una sucesi´on
alternada de v´ertices y arcos x
1
a
1
x
2
x
p
a
p
x
p+1
tal que a
i
= (x
i
, x
i+1
) ´o a
i
= (x
i+1
, x
i
), para
cada i = 1, 2, . . . , p, y diremos que la semitrayectoria conecta los v´ertices x
1
y x
p
. Es decir, es
una semitrayectoria si es una trayectoria (no dirigida) en el multigrafo no dirigido subyacente.
An´alogamente se definen semicola, semicamino, semicircuito y semiciclo.
Diremos que un multidigrafo es semiac´ıclico si no posee semiciclos.
Definici´on 69.- Un bosque dirigido es un digrafo semiac´ıclico. A cada componente conexa de
un bosque dirigido le llamaremos ´arbol dirigido.
En un ´arbol dirigido se llaman hojas a los v´ertices de exgrado cero (v´ertices maximales) y
ra´ıces a los de ingrado cero (v´ertices minimales). Si el ´arbol dirigido tiene n v´ertices, tanto la
suma de ingrados como la suma de exgrados es n −1. Si (x, y) es un arco se dice que x es un
padre y que y es un hijo. Si hay un camino que une x con y diremos que el v´ertice y es un
descendiente del v´ertice x y que el v´ertice x es un ascendiente del v´ertice y.
Definici´on 70.- Se llama ´arbol con ra´ız a un ´arbol dirigido con una ´ unica ra´ız. Si (V, A) es
un ´arbol con ra´ız r y x es un v´ertice del ´arbol, llamaremos sub´arbol con ra´ız x al subgrafo
inducido en el conjunto formado por el v´ertice x y sus descendientes.
Teorema 71.- Si (V, A) es un ´arbol dirigido, entonces: (V, A) es un ´arbol con ra´ız ⇐⇒ tiene
un v´ertice con ingrado cero y todos los dem´as tienen ingrado uno.
121
Demostraci´on:
=⇒| La ra´ız r es el ´ unico v´ertice con ingrado cero. Si hubiera un v´ertice x con ing(x) ≥ 2,
habr´ıa dos arcos de la forma (y, x) y (z, x). Como el ´arbol es conexo, hay semicaminos
que conectan r con y y r con z y, por tanto, la semitrayectoria cerrada r yxz r
contiene un semiciclo, en contra de la definici´on de ´arbol dirigido.
⇐=| Hay un s´olo v´ertice de ingrado cero luego es la ´ unica ra´ız.
Corolario 72.- En un ´arbol con ra´ız, la ra´ız r est´a unida a cualquier otro v´ertice x ,= r por un
´ unico camino.
Demostraci´on:
Como es conexo (y finito) hay un semicamino x
1
x
2
x
3
x
p−1
x
p
que conecta r = x
1
con
x = x
p
. Como ing(x
1
) = 0 entonces (x
1
, x
2
) es un arco; como ing(x
2
) = 1 entonces (x
2
, x
3
)
es un arco; y, en general, como ing(x
i
) = 1 entonces (x
i
, x
i+1
) es un arco, para 1 ≤ i ≤ p −1.
Luego el semicamino es un camino.
Este camino es ´ unico, pues si hubiera dos entre ambos se formar´ıa un semiciclo.
Teorema 73.- Si (V, A) es un grafo dirigido, las siguientes condiciones son equivalentes:
a) (V, A) es un ´arbol con ra´ız.
b) En (V, A) hay un v´ertice r tal que ing(r) = 0 y, para cada x ,= r, existe un ´ unico camino
que conecta r con x.
c) (V, A) es conexo y tiene un v´ertice r tal que ing(r) = 0 y, para cada x ,= r, ing(x) = 1.
d) (V, A) es semiac´ıclico y tiene un v´ertice r tal que ing(r) = 0 y, para cada x ,= r, ing(x) =
1.
Demostraci´on:
a)⇒b) Es el corolario anterior.
b)⇒c) Es conexo porque para todo par de v´ertices x, y existen caminos r x, r y y, por
tanto, el semicamino x r y conecta x con y. Por otro lado, como para cada x ,= r
hay un camino r x, se tiene que ing(x) ≥ 1. Si ing(x) > 1 hay, al menos, dos arcos
(y, x) y (z, x) con y ,= z; y como hay caminos distintos r y y r z resulta que r yx
y r zx son dos caminos distintos que conectan r con x, en contra de la hip´otesis.
c)⇒d) Si hubiera un semiciclo, dos arcos consecutivos no podr´ıan incidir en un mismo v´ertice,
pues ´este tendr´ıa ingrado mayor que uno, por lo que el semiciclo es un ciclo. Adem´as,
el v´ertice r no est´a en el ciclo, pues ing(r) = 0, pero est´a conectado (hip´otesis) por un
semicamino x
1
x
2
x
3
x
p−1
x con el ciclo. (Ahora x
1
= r y suponemos que x es el ´ unico
v´ertice del ciclo en el semicamino). Como vimos en el corolario, este semicamino es un
camino y, en consecuencia, en el v´ertice x incide el arco (x
p−1
, x) y otro arco del ciclo,
por lo que ing(x) > 1, en contra de la hip´otesis.
d)⇒a) Seg´ un el teorema anterior bastar´a probar que el digrafo es conexo. Si el digrafo no es
conexo y x
1
es un v´ertice que no est´a en la componente conexa del v´ertice r, entonces
ing(x
1
) = 1 y, por tanto, hay un arco (x
1
, x
2
). Como ing(x
2
) = 1 hay un arco (x
2
, x
3
) y
as´ı sucesivamente. Como el digrafo es finito, en la sucesi´on x
1
x
2
x
3
se llega a repetir
alg´ un v´ertice y, por tanto, se tiene un semiciclo, en contra de la hip´otesis.
122
Definici´on 74.- Un ´arbol con ra´ız es un ´arbol m-ario si todos sus v´ertices tienen exgrado
menor o igual que m (cada padre tiene a lo sumo m hijos). Si m = 2 le llamaremos ´arbol
binario. Un ´arbol con ra´ız es un ´arbol m-ario regular si todos los v´ertices, que no sean
hojas, tienen exgrado m (cada padre tiene exactamente m hijos). Se llama altura de un ´arbol
con ra´ız a la m´axima longitud de sus caminos. Un ´arbol m-ario pleno es un ´arbol m-ario
regular en el que todas las hojas tienen el mismo nivel (la altura del ´arbol).
5.8.1 Algoritmos de b´ usqueda en profundidad.
Los ´arboles con ra´ız se piensan como construidos desde la ra´ız hacia abajo. Si son finitos tambi´en
se pueden pensar desde las hojas hacia arriba construyendo, recursivamente, sub´arboles cada
vez mayores.
´
Esta es la raz´on por la que los ´arboles con ra´ız constituyen estructuras de datos
naturales para programas de computaci´on recursivos. Adem´as podemos utilizar el principio
general de inducci´on para probar hechos sobre conceptos definidos recursivamente. De ah´ı el
inter´es de las siguientes definiciones recursivas de ´arbol con ra´ız y de altura de un ´arbol con ra´ız.
Definici´on 75.-
[B] Un ´ unico v´ertice (´arbol trivial) es un ´arbol con ra´ız.
[R] Si T
1
= (V
1
, A
1
), . . . , T
k
= (V
k
, A
k
) son ´arboles con ra´ıces r
1
, . . . , r
k
, si V
1
, . . . , V
k
son
disjuntos dos a dos y si r / ∈ V
1
∪ ∪V
k
, entonces T = (V, A), con V = ¦r¦ ∪V
1
∪ ∪V
k
y A = ¦(r, r
1
), . . . , (r, r
k
)¦ ∪ A
1
∪ ∪ A
k
, es un ´arbol con ra´ız.
As´ı pues, r es una ra´ız con hijos r
1
, . . . , r
k
y los dem´as v´ertices tienen los mismos hijos que
antes. T
1
, . . . , T
k
son sub´arboles con ra´ıces r
1
, . . . , r
k
del ´arbol con ra´ız T .
Definici´on 76.-
[B] El ´arbol trivial tiene altura cero.
[R] Si T est´a definido como acabamos de hacer y los sub´arboles T
i
tienen alturas h
i
, para cada
1 ≤ i ≤ k, entonces la altura del ´arbol T es 1 + m´ax¦h
1
, . . . , h
k
¦.
Los siguientes algoritmos se utilizan para listar los v´ertices de un ´arbol con ra´ız.
Listado en preorder 77.- Se lista la ra´ız seguida de los sub´arboles de ra´ıces los hijos de la
ra´ız. En el siguiente ejemplo, al listado de la izquierda le corresponde el dibujo de la derecha:
T =T
r
=rT
v
T
s
=r(vT
u
T
w
)(sT
p
T
q
)
=rv(u)(wT
x
T
y
T
z
)s(p)(q)
=rvuw(x)(y)(z)spq
=rvuwxyzspq.
,
.
.
.
.
. .
·
·
·
·
·· ,
Z
Z
Z
`
`
` , ,
Z
Z
Z
`
`
` , , ,
,
Z
Z
Z
`
`
` , ,
r
v
u w
x y z
s
p q
`

`


`
`
_ ,
Z
Z
Z
`
`
` ,
/
/
/
`
`
` , ,
/
/
/
`
`
` , , ,
,
/
/
/
`
`
` , ,
a
aa
aaa
aab
aaba
aabb
aabc
ab
aba abb
Es decir, se empieza en la ra´ız y se gira en sentido contrario al de las agujas del reloj para
terminar en la ´ ultima hoja de la derecha.
Este listado se llama tambi´en lexicogr´afico:
a-aa-aaa-aab-aaba-aabb-aabc-ab-aba-abb.
123
Listado en postorder 78.- Se listan los sub´arboles de ra´ıces los hijos de la ra´ız seguidos de la
ra´ız. Como en el ejemplo siguiente:
T =T
r
=T
v
T
s
r
=(T
u
T
w
v)(T
p
T
q
s)r
=(u)(T
x
T
y
T
z
w)v(p)(q)sr
=u(x)(y)(z)wvpqsr
=uxyzwvpqsr
,
.
.
.
.
.
.
·
·
·
·
·
· ,
Z
Z
Z
`
`
` , ,
Z
Z
Z
`
`
` , , ,
,
Z
Z
Z
`
`
` , ,
r
v
u w
x y z
s
p q
`

`


`
`
_
Es decir, se empieza en la ra´ız, se gira en el sentido de las agujas del reloj para terminar en
la ´ ultima hoja de la izquierda y, finalmente, se invierte el orden.
El siguiente algoritmo se utiliza para listar los v´ertices de un ´arbol binario regular.
Listado en inorder 79.- Se lista la ra´ız entre el sub´arbol de la izquierda y el sub´arbol de la
derecha. En el ejemplo de la figura:
T = T
r
= T
v
rT
s
= (T
u
vT
w
)r(T
p
sT
q
)
= (u)v(T
x
wT
y
)r(p)s(T
m
qT
n
)
= uv(x)w(y)rps(m)q(n)
= uvxwyrpsmqn.
,
.
.
.
.
.
.
·
·
·
·
·
· ,
Z
Z
Z
`
`
` , ,
Z
Z
Z
`
`
` , ,
,
Z
Z
Z
`
`
` , ,
Z
Z
Z
`
`
` , ,
r
v
u w
x y
s
p q
m n
Bibliograf´ıa:
• Grimaldi, Ch.R.B. (1997). “Matem´aticas Discretas y Combinatoria”, 3
a
edici´on.
Ed. Addison-Wesley Iberoamericana. Cap´ıtulos 11, 12 y 13.
• Ross, K.A. (1990). “Matem´aticas Discretas”.
Ed. Prentice-Hall Hispanoamericana. Cap´ıtulos 8 y 9.
• Rosen, K.H. (1995). “Discrete Mathematics and its applications”; 3
a
edici´on.
Ed. McGraw-Hill International. Cap´ıtulos 7 y 8.
124
5.9 Problemas.
5.1 ¿Cu´antos grafos distintos se pueden formar con cuatro v´ertices y 3 aristas? Dibujarlos,
indicando cuales de ellos son isomorfos entre s´ı.
5.2 ¿Son isomorfos los siguientes grafos? Justificar la respuesta construyendo los isomorfismos
cuando corresponda.
G
1
,
,
,
, , ,
G
2
,
,
,
,
,
,
G
3
,
,
,
,
,
,
5.3 ¿Son isomorfos los siguientes grafos?.
G
1
,
,
`
`
,
,
,
,Z
Z
,
,
G
2
,
,
`
`
,
,
,
`
`
,
,
,
5.4 Probar que en los grafos G
1
, G
2
y G
3
siguientes no son isomorfos ning´ un par de ellos.
,
, , ,
, ,
Z
Z
Z
`
`
`
`
`
`
`
`
`
/
/
/
/
/
/
G
1
,
, , ,
, ,
Z
Z
Z
`
`
`
`
`
`
`
`
`
/
/
/
/
/
/
G
2
,
, , ,
, ,
Z
Z
Z
`
`
`
`
`
`
`
`
`
/
/
/
G
3
,
, , ,
, ,
Z
Z
Z
`
`
`
`
`
`
`
`
`
/
/
/ /
/
/
G
4
El grafo G
4
s´ı es isomorfo a uno de ellos: indica a cu´al y da el isomorfismo
5.5 Prueba que los siguientes pares de grafos son isomorfos, dando un etiquetado en uno de
los elementos de cada par y etiquetando de forma id´entica los v´ertices correspondientes
del otro elemento del par.
, , ,
, , ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, , , ,
, , , ,
/
/
/
/
/
/
`
`
`
`
`
`
/
/
/
/
/
/
`
`
`
`
`
`
/
/
/
`
`
`
`
`
`
/
/
/
Z
Z
`
`
`
`
Z
Z
/
/
/
/
/
/
/
/
/
/
/
/
\
\
\
\
\
\
/
/
/
/
/
/
/
/
/
/
/
/
`
`
`
`
`
`
\
\
\
\
\
\
`
`
`
`
`
`
5.6 El grafo de la izquierda es una de las representaciones isomorfas del grafo de Petersen,
pero la m´as conocida es una de las de la derecha. ¿Cu´al de ellas?
G
2
, ,
, ,
, ,
, , ,
,
\
\
\
\
\
/
/
·
·
`
`
`
/
/
/
\
\
\
.
.
.
.
·
·
·
·
`
`
/
/
/
/
/
.
.
.
.
.
G
1
, ,
, ,
, ,
, , ,
,
\
\
\
\
\
/
/
·
·
`
`
.
.
.
.
.
.
·
·
·
·
`
`
/
/
/
/
/
.
.
·
·
/
/
, ,
,
, , ,
, ,
, ,
`
`
`
`
'
'
'
'
'
'
·
·
·
·
.
.
.
.
/
/
/
/
`
`
` .
.
.
`
`
/
/
ì
ì
ì
ì
ì
ì
`
`
`
`
/
/
/
/
5.7 Sea G = (V, A) un grafo simple finito. Probar que

x∈V
gr(x) = 2 [A[ y deducir de ello que
un grafo no puede tener un n´ umero impar de v´ertices de grado impar.
Si G es un multigrafo ¿son tambi´en ciertos los resultados anteriores?
125
5.8 Etiqueta los v´ertices y las aristas del multigrafo de los puentes de K¨onigsberg y encuentra,
si existen:
a) Una trayectoria que no sea cola, una cola que no sea camino y un camino.
b) Una trayectoria cerrada que no sea circuito, un circuito que no sea ciclo y un ciclo.
c) Un subgrafo inducido conexo y otro no conexo.
d) Un subgrafo parcial conexo y ac´ıclico.
e) Un subgrafo parcial no conexo y no ac´ıclico.
5.9 Para cada uno de los grafos G
1
y G
2
del ejercicio 5.6 encontrar, al menos, tres ciclos de
longitudes distintas. Usar esto para probar que no pueden ser isomorfos.
5.10 ¿Alguno de los dibujos siguientes puede hacerse de un s´olo trazo y sin repintar ninguna
arista? ¿C´omo?
, ,
, ,
,
Z
Z
Z
Z
Z
`
`
`
`
`
Z
Z
Z
`
`
`
, ,
, ,
,
,
`
`
`
`
`
`
`
`
`
`
5.11 La Zona 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.
Dibujar un grafo para modelar esta situaci´on. ¿Es suficiente con esta red para asegurar la
interconexi´on entre todas las ciudades?
En poco tiempo se inaugurar´a otra carretera entre las ciudades E y F . Coincidiendo con
la entrada en servicio de esta carretera, se pondr´a en funcionamiento una m´aquina para el
control y reparaci´on de la red pero, dado su elevado gasto, debe planificarse su uso para
evitar, si es posible, que la m´aquina recorra las v´ıas m´as de una vez.
¿Puede elegirse una de las ciudades de manera que se cumpla el objetivo y que s´olo haya
que contruir un hangar para guardar la m´aquina? Si es posible, ¿d´onde? y si no lo es,
¿bastar´ıa con dos hangares en ciudades distintas? ¿Cu´al ser´ıa el recorrido de ser posible?
5.12 Al visitar la casa de los horrores, Pablo y David intentan imaginarse si podr´ıan pasar por
las siete habitaciones y el pasillo que las rodea cruzando cada puerta exactamente una vez.
¿Pueden lograr su objetivo si deben empezar desde la posici´on del pasillo marcada con el
asterisco “∗” en la figura siguiente? Razonar la respuesta.

5.13 Considerar los grafos G
1
y G
2
del ejercicio 5.6. ¿Admiten caminos hamiltonianos?, ¿ad-
miten ciclos hamiltonianos?
126
5.14 Sea M la matriz de adyacencia de un grafo G etiquetado con E = ¦x
1
, x
2
, x
3
, x
4
, x
5
, x
6
¦
M =
_
_
_
_
_
_
_
_
_
0 1 1 0 0 1
1 0 1 0 0 1
1 1 0 1 1 0
0 0 1 0 0 1
0 0 1 0 0 1
1 1 0 1 1 0
_
_
_
_
_
_
_
_
_
a) Utilizar la matriz para encontrar los v´ertices de mayor y menor grado.
¿Admite cola euleriana o circuito euleriano?
b) Encuentra, haciendo el menor n´ umero de operaciones posibles en la matriz, el n´ umero
de trayectorias de longitud 2 de x
2
a x
3
y el n´ umero de trayectorias de longitud 3
de x
2
a x
6
pasando por x
3
.
c) Definimos sobre el grafo la funci´on peso siguiente w(¦x
i
, x
j
¦) = i +j . Dar la matriz
de pesos.
d) Dar una representaci´on gr´afica del grafo.
5.15 Construir la matriz de adyacencia del grafo de la derecha.
Usar dicha matriz para responder a las siguientes pregun-
tas:
a) Entre dos v´ertices cualesquiera ¿existe siempre una
trayectoria de longitud 2? ¿y de longitud 3?
b) ¿Cu´antas trayectorias de longitud 3 hay del v´ertice
x
1
al x
3
? ¿y de x
1
a x
5
? Descr´ıbelas con el grafo.
,
x
4
,
x
5
,
x
6
,
x
1
,
x
2
,
x
3
`
`
`
`
`
`
`
`
`
`
`
`
c) Definimos sobre el grafo la funci´on peso: w(¦x
i
, x
j
¦) = 2 m´ın¦i, j¦ +m´ax¦i, j¦. Dar
la matriz de pesos.
d) Usar el algoritmo de Dijkstra para obtener los pesos m´ınimos del v´ertice x
6
a los
dem´as v´ertices.
5.16 Utilizar el algoritmo de Dijkstra para encontrar, en cada uno de los grafos, los pesos
m´ınimos desde el v´ertice a a los dem´as.
,/
/
/
/
/
/
Z
Z
Z
, `
`
`
,/
/
/
/
/
/
,
,
`
`
`
,
Z
Z
Z
a
4
2
3
3
4
1
5
4
1
6
3
,.
.
.
,/
/
/
, `
`
`
, ·
·
·
,
.
.
.,
/
/
/,
`
`
`,
·
·
·
,Z
Z
Z
`
`
`
Z
Z
Z
`
`
`
a
1
2
4
2
1
5 6
3
3
1
4
5
4 4
2
2
Para el primer grafo, encuentra la matriz de pesos m´ınimos mediante el algoritmo de
Warshall.
5.17 Una empresa de autobuses tiene que ir de la ciudad A a la ciudad D recogiendo viajeros
en la ciudad C. Las distancias en kil´ometros entre las cinco ciudades A, B, C, D, y E por
127
las que puede pasar se dan en la tabla
A B C D E
A 0 20 80 50 30
B 20 0 60 70 ∞
C 80 60 0 90 40
D 50 70 90 0 10
E 30 ∞ 40 10 0
¿Qu´e recorrido le conviene realizar a la empresa?.
5.18 Una empresa desea abrir sucursales en cinco ciudades A, B, C, D y E. Una de estas
sucursales actuar´a como central y ser´a necesario el env´ıo de camiones de la central al resto.
Cada cami´on s´olo podr´a abastecer a una de las sucursales. Las distancias entre ciudades
en kil´ometros son: 300 entre A y B, 500 entre A y D, 200 entre B y C, 600 entre B
y D, 400 entre C y E y 100 entre E y D.
a) ¿En qu´e ciudad interesa montar la central?
b) La empresa quiere inspeccionar las carreteras recorriendo la menor distancia posible.
¿Qu´e recorrido deber´a efectuar? Razonar la respuesta.
c) ¿Es posible visitar las cinco sucursales sin pasar por una misma ciudad dos veces?
Razonar la respuesta.
d) Est´a previsto construir una carretera de 250 kil´ometros que una las ciudades A y
E. ¿Qu´e recorrido propondr´ıas entonces para los apartados b) y c)? Razonar la
respuesta.
5.19 a) Construir todos los grafos dirigidos con dos v´ertices.
b) Construir todos los grafos dirigidos no etiquetados con tres v´ertices.
5.20 Agrupar por isomorfismo los digrafos con 3 v´ertices y 2 arcos que aparecen en la figura 5.2
de la p´agina 112.
5.21 Indicar cu´ales de los siguientes digrafos son isomorfos y cuales no, indicando el isomorfismo
cuando haya lugar.
, _ /
//°
,
`
``¬,/
/

,
,
`
`

,
`
`
`*
Z
Z

, `
`

,
,/
/

_
,
`
`
` ·
,
.
.
.,
,Z
Z

-
-

,|
|
|
|
|
|*
,
, \
\
\
\
\

_
,
'
,
.
.
.,
, _
`
`
`
``·
5.22 Para el digrafo de la figura se pide:
a) El ingrado, el exgrado y el grado de cada v´ertice.
b) Los minimales y maximales.
c) Trayectorias que vayan desde x
4
a cada uno de los otros
v´ertices. ¿Es conexo?
d) Una trayectoria que no sea cola, una cola que no sea camino
y un camino.
e) Hallar su matriz de adyacencia y usarla para probar que no
es ac´ıclico. ¿Hay ciclos de longitud 3 y 4?
,
, ,
,
x
3
x
4
x
1
x
2
`
`
``
Z
Z

_
Z
Z

`
`
`` '
128
5.23 ¿Son isomorfos los multidigrafos de matrices M
1
y M
2
?
M
1
=
_
_
_
_
_
_
_
_
_
0 0 1 0 0 0
0 0 0 1 1 0
0 1 0 0 1 0
1 0 0 0 1 0
0 0 0 0 0 1
1 1 0 0 0 0
_
_
_
_
_
_
_
_
_
M
2
=
_
_
_
_
_
_
_
_
_
0 1 0 0 0 0
0 0 1 0 0 1
0 0 0 0 0 1
0 0 1 0 1 0
1 0 0 1 0 0
1 0 0 1 0 0
_
_
_
_
_
_
_
_
_
5.24 Sea M =
_
_
_
_
_
_
_
_
_
0 1 0 0 0 1
0 0 1 1 0 1
0 0 0 1 1 0
0 0 0 0 0 0
0 0 1 1 0 0
0 0 0 1 1 0
_
_
_
_
_
_
_
_
_
la matriz de un grafo dirigido D.
Utilizar s´olo matrices para justificar las respuestas a las siguientes preguntas:
a) Determinar los pozos, las fuentes y los v´ertices aislados de D, si los hay.
b) Hallar el n´ umero de trayectorias de longitud 3 del v´ertice 1 al v´ertice 4 de D.
c) Construir la matriz de adyacencia del grafo no dirigido G
D
subyacente a D. ¿Hay
en G
D
una cola euleriana? ¿Y un circuito euleriano?
5.25 Sea W la matriz de pesos de un grafo dirigido con
v´ertices V = ¦x
1
, x
2
, . . . , x
7
¦. Obtener a partir de
ella:
a) Las fuentes, pozos, exgrado m´aximo, los pun-
tos de ingrado m´aximo y las componentes
conexas,
b) un ciclo de longitud 3 partiendo de x
2
. ¿Hay
alg´ un otro?,
W =
_
_
_
_
_
_
_
_
_
_
∞ 4 ∞ ∞ ∞ ∞ 2
∞ ∞ ∞ ∞ ∞ ∞ 2
2 8 ∞ 8 ∞ 1 ∞
∞ 1 ∞ ∞ ∞ ∞ ∞
∞ ∞ ∞ ∞ ∞ ∞ ∞
3 ∞ ∞ 4 ∞ ∞ 7
∞ ∞ ∞ 3 ∞ ∞ ∞
_
_
_
_
_
_
_
_
_
_
c) el n´ umero de trayectorias de longitud 2 que parten de x
3
,
d) el n´ umero de trayectorias de longitud 3 que conectan x
3
con x
7
.
Aplicar el algoritmo de Dijkstra para encontrar los pesos m´ınimos desde x
3
.
5.26 La siguiente figura corresponde a un plano de calles con las direcciones de circulaci´on y el
tiempo en minutos que se necesita para recorrer cada tramo.
_
_
_
'
' '
_
_
_
_
B
5
D 6 F
3 3 2
A 7 C 5 E
Si un taller sito en la plaza B tiene que hacer una entrega en la plaza F , calcular el tiempo
m´ınimo que necesita el repartidor para estar de nuevo disponible en el taller. ¿Cu´al es el
recorrido correspondiente?
129
5.27 Para cada uno de los siguientes digrafos de 4 v´ertices, indica si son sim´etricos, anti-
sim´etricos, transitivos y/o ac´ıclicos.
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
'
Z
Z
Z

_
_
' '
Z
Z
Z

_
`
`
`
``
_
'
'
_
_
'
_
_
_
_
'
'
'
'
_
_
_
_
_
_
'
'
'
'
5.28 ¿Puede darse un etiquetado naturalmente ordenado al di-
grafo de la derecha? Justificar en caso negativo y construirlo
en caso positivo.
Asignar a cada arco el peso w(v
i
, v
j
) = [i −j[ y usar el
algoritmo de Dijkstra para encontrar los pesos m´ınimos del
v´ertice v
6
a los dem´as v´ertices.
,
,
, ,
,
,
v
1
v
2
v
3
v
5
v
4
v
6
'
Z
Z

_
·
·
·
·
·
··
`
`

.
.
.
.
.

·
·
·
·
·
·¬
`
`
``
_
.
.
.
.
.

Z
Z

'
5.29 Encontrar un etiquetado naturalmente ordenado para
el digrafo representado a la derecha.
,
,
,
,
,
,
,
, C
F
A
H
D
G
B
E _
Z
Z

Z
Z

'
_
·
·
·
·
·
·¬
_ ~
~
~
~
~
~
~
~

Z
Z

'
`
`

Z
Z

5.30 Sea (V, A) el digrafo ac´ıclico dado por la figura siguiente:
a) Dar su clasificaci´on en niveles y dibu-
jarlo por niveles.
b) Dar un etiquetado naturalmente or-
denado por niveles.
c) Construir una cola euleriana en el
grafo no dirigido subyacente.
,
, ,
,
, , ,
, , ,
, _

¸

' '
_ _

'
`
`

'
Z
Z

_
`
`
``

' '
Z
Z

_
`
`

Z
Z

4
2 3
5
6 1
10
11
7 9
8
5.31 Para el digrafo del ejercicio 5.29, dar su clasificaci´on en niveles, dibujarlo por niveles y
dotarlo de un etiquetado naturalmente ordenado por niveles.
5.32 a) Probar que la suma de los grados de los n v´ertices de un ´arbol es 2n −2.
b) Hallar el n´ umero de v´ertices y de aristas de un ´arbol que tiene tres v´ertices de grado
2, dos de grado 3, uno de grado 4 y los restantes de grado 1.
5.33 Probar que hay un ´arbol con seis v´ertices de grado 1, uno de grado 2, uno de grado 3 y
uno de grado 5.
5.34 Utilizar el algoritmo de Kruskal para encontrar un ´arbol generador m´ınimo para cada grafo
de la figura. Hallar sus pesos.
,/
/
/
/
/
/
Z
Z
Z
, `
`
`
,/
/
/
/
/
/
,
,
`
`
`
,
Z
Z
Z
x
4
2
3
3
4
1
5
4
1
6
3
,.
.
.
,/
/
/
, `
`
`
, ·
·
·
,
.
.
.,
/
/
/,
`
`
`,
·
·
·
,Z
Z
Z
`
`
`
Z
Z
Z
`
`
`
x
1
2
4
2
1
5 6
3
3
1
4
5
4 4
2
2
130
5.35 Utilizar el algoritmo de Prim para encontrar un ´arbol generador m´ınimo para cada grafo
de la figura anterior, empezando con el v´ertice etiquetado con x.
5.36 La tabla expresa las longitudes en decenas de kil´ometros de varias carreteras conectando
seis ciudades gallegas C, V, L, O, S y P . Representar mediante un grafo no dirigido el
mapa de carreteras y dibujar un ´arbol generador m´ınimo.
C
C − S
S 7 − P
P − 6 − V
V − − 5 − L
L 9 10 − − − O
O − 11 − 11 10 −
5.37 Telef´onica tendi´o demasiadas l´ıneas telef´onicas entre un grupo de casas. En el grafo de la
figura, los v´ertices son las casas y las aristas las l´ıneas telef´onicas. El peso de cada arista
representa la longitud de la l´ınea. La compa˜ n´ıa desea quitar las l´ıneas sobrantes, de forma
que dos casas cualesquiera sigan conectadas, y la longitud total del tendido sea la m´ınima
posible. ¿Qu´e l´ıneas hay que quitar? Dib´ ujese el grafo resultante.
¿ ¿ ¿ ¿ ¿
¿ ¿ ¿ ¿ ¿
¿ ¿ ¿ ¿ ¿
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
a b c d e
f
g
h i j
k l m n o
10 7 10 4
3 8 9 6 8
9 12 13 5
10 3 5 11
5 13 4 12 12
11 7 10 3
4 9 8 11
5.38 Para el ´arbol de la figura, dar el n´ umero de padres, el n´ umero
de hijos y el n´ umero de hojas. A˜ nadir el m´ınimo n´ umero de
arcos para obtener un ´arbol binario regular.
,
Z
Z
Z
`
`
` ,
/
/
/
`
`
` , ,
/
/
/
`
`
`, ,
/
/
/
`
`
` , ,
,
,
,
1
2 3
4 5 6
7 8
9
11
10
5.39 Dibujar recorridos gr´aficos que representen los listados de los v´ertices en PREORDER y
POSTORDER de los ´arboles de la figura.
,
Z
Z
Z
`
`
` ,
/
/
/
`
`
`
,
/
/
/
`
`
` ,
|
|
|
\
\
\ , ,
, ,
|
|
|
\
\
\ , ,
,
r
x s
w
v y
z u
t p
q
,
Z
Z
Z
`
`
` ,
/
/
/
`
`
`
,
/
/
/
`
`
` ,
|
|
|
\
\
\ , ,
,
|
|
|
\
\
\ , ,
, ,
r
w s
v
x y
z p
t u
q
,
Z
Z
Z
`
`
` ,
/
/
/
`
`
`
,
/
/
/
`
`
` ,
/
/
/
`
`
` , , ,
, , , ,
r
t u
x
v y z
w p q s
131
5.40 Dar un listado en INORDER de los v´ertices del ´arbol etiquetado de la figura.
,
Z
Z
Z
`
`
` ,
/
/
/
`
`
`
,
/
/
/
`
`
` ,
|
|
|
\
\
\ , ,
, , ,
|
|
|
\
\
\ , ,
|
|
|
\
\
\ , ,
0 1
00
000 001
01
10
110 111
11
1100 1101
5.41 a) Listar en PREORDER y POSTORDER los v´ertices del ´arbol de la figura.
,
.
.
.
.
.
.
·
·
·
·
·
· ,
,
/
/
/
`
`
` , ,
,
Z
Z
Z
/
/
/
`
`
`
`
`
` , , , ,
,
/
/
/
`
`
` , , ,
/
/
/
`
`
` , ,
1
2 3 4
5
13 14
6 7 8 9
10 11
12
15 16
b) Eliminar el menor n´ umero posible de v´ertices para construir un subgrafo de T que
sea un ´arbol binario. A partir de ´este, a˜ nadiendo el menor n´ umero posible de aristas,
construir un ´arbol binario regular y listar sus v´ertices en INORDER.
132