Vous êtes sur la page 1sur 118

Notas orientativas para

Matem
atica Discreta


V
ctor Alvarez
Solano
Mar
a Dolores Frau Garc
a
Jos
e Reyes Narro Jim
enez

Febrero de 2005

Estas notas pretenden aglutinar ciertos conceptos, resultados y ejemplos extrados


de los manuales mas usados en la materia, haciendo especial enfasis en los algoritmos
subyacentes, as como potenciando las aplicaciones a la resolucion de problemas reales;
con el n de que sirva de ayuda, gua y complemento para aquellos alumnos que
espec camente cursen Matematica Discreta en la Ingeniera Tecnica en Informatica
de Gestion de la Universidad de Sevilla en el curso 2004/05.
Los autores.

Cap
tulo 1
Introducci
on a la teor
a de grafos

Cap
tulo 1
Introducci
on a la teor
a de grafos

1.1 >Que es un grafo?


Un grafo es una estructura G(V; A) que consta de dos partes: un conjunto V de
vertices y un conjunto A de pares no ordenados fx; y g de vertices que se llaman
aristas.
x2
x1

V={x1,x2,x3,x4,x5,x6}
x3

x6

A={{x1,x2},{x1,x3},{x1,x6},{x2,x3},{x2,x4},
{x3,x4},{x3,x6},{x4,x5},{x4,x6},{x5,x6}}
x4

x5

Figura 1.1:

Un grafo de 6 vertices

Dos vertices x e y se dicen adyacentes cuando el par e = fx; yg conforma una


arista. Por otra parte, un vertice x se dice incidente con una arista e cuando x es
extremo de e. Asimismo, dos aristas e y f se dicen incidentes si comparten un vertice
en comun, tal como muestra la Figura 1.2.
Algunos tipos de grafos reciben un nombre particular, por gozar de ciertas propiedades caractersticas. Por su relevancia en las presentes notas, destacamos aqu
los siguientes grafos notables:
 Los ciclos Cn para n  3, que son grafos que se asemejan a polgonos de n

1. Introduccion a la teora de grafos

z
y

f
e
x

Figura 1.2:

Adyacencias e incidencias

lados, como se muestra en la Figura 1.3.


x2

x2

x2
x1

x1
x3

x4

x5

x3

Figura 1.3:

x3

x1

x3

Ciclos C , C y C
3

 Los bosques, que son grafos sin ciclos, y sus arboles, que son cada uno de los

grupos independientes de vertices y aristas de que consta el bosque en cuestion,


como muestra la Figura 1.4.
x2
x1

x2

x5
x4

x2

x1

x5

x3

Figura 1.4:

x3
x6

x1

x4
x7

x6

x5

x3
x4

Un bosque de tres arboles

 Los caminos simples Pn, que consisten en grafos de n vertices V =


fx ; : : : ; xng y n 1 aristas A = ffx ; x g; : : : ; fxn ; xngg. Por ejemplo, el
1

primero de los arboles del bosque de la Figura 1.4 consiste en un camino simple de longitud 4.
 Los grafos completos K , que constan0 de 1n vertices todos ellos adyacentes
entre s dos a dos (de manera que poseen @ n2 A = n(n2 1) aristas). El nombre
de completo proviene del hecho de que no se puede a~nadir arista alguna. E ste
es el caso de los grafos de la Figura 1.5.
n

1.1. >Que es un grafo?

x2

x2

x2
x1

x1
x3

x3

x1

x3

Figura 1.5:

x4

x5

x4

Grafos completos K , K y K
3

 Los grafos r-regulares (tambien llamados r-valentes), en los que cada vertice

participa exactamente en r aristas. Por ejemplo, los ciclos son grafos 2-regulares,
y los grafos completos K son grafos (n 1)-regulares, as como los grafos de la
Figura 1.6 son 3-regulares.
n

x5
x2

x2

x1

x1

x3

x7
x3
x4

x4

x8
x9

x11

x6
x12

x14

x13

x10

Figura 1.6:

 Los

Grafos 3-regulares

grafos bipartitos,

que son aquellos que admiten una particion de sus


vertices en dos conjuntos disjuntos V = X [ Y , de manera que las aristas tienen
un extremo en cada uno de estos conjuntos (van de vertices en X a vertices en
Y ). Es el caso de los ciclos C de longitud par, de los bosques, o el grafo de la
Figura 1.7, por ejemplo.
2n

x2
x3

x1
x5
x6

Figura 1.7:

x4

x1

x2

x3

x4

x5

x6

Dos realizaciones del mismo grafo bipartito

1. Introduccion a la teora de grafos

 Los grafos bipartitos completos Km;n, que son aquellos grafos bipartitos de

+ m vertices y mn aristas que admiten una particion de sus vertices en sendos


conjuntos X e Y de m y n vertices, respectivamente, de manera que cada uno
de los m vertices de X es adyacente a todos y cada uno de los n vertices de Y .
Se denominan bipartitos completos porque no se puede a~nadir arista alguna sin
que deje de ser bipartito. Un par de ejemplos estan recogidos en la Figura 1.8.

x1

x2

x1

x2

x3

x4

x3

x4

x5

x6

x5

Figura 1.8:

Grafos K y K
2;3

3 ;3

 El grafo complementario G (V; A) de G(V; A), que consiste en el grafo con

los mismos vertices de G y con las aristas que le faltan a G para llegar a ser un
grafo completo. La Figura 1.9 recoge un ciclo de orden 4 y su complementario.
x1

x2

x1

x2

x3

x4

x3

x4

Figura 1.9:

Un grafo y su complementario

Segun la de nicion que se ha dado, en un grafo no se admite la existencia de


aristas multiples (esto es, aristas que unen los mismos pares de vertices) ni lazos
(aristas que unen un vertice consigo mismo). En la literatura suele hablarse de grafo
simple por este motivo. Las estructuras similares a los grafos que admiten aristas
multiples se denominan multigrafos, mientras que las estructuras que admiten por
a~nadidura lazos se denominan pseudografos o mas simplemente seudografos, como
los que se muestran en la Figura 1.10. Todas estas estructuras sirven para modelar
cantidad de problemas diversos que aparecen a lo largo de nuestra vida, como quedara
patente en el desarrollo de estas notas.

1.1. >Que es un grafo?

x2
x2

x1

x1

x3

x3

x5

x6

x4

x4

x5

Figura 1.10:

Multigrafo de 6 vertices y seudografo de 5

A veces, se precisa dar orientacion a alguna de las aristas. En este caso se habla de
estructuras dirigidas (en su caso, grafo dirigido o simplemente digrafo), como la que
recoge la Figura 1.11. Una arista que se dirige de x a y se denota por el par ordenado
(x; y). Es importante recalcar la diferencia del uso de parentesis (caso dirigido) o
llaves (caso no dirigido) para el par de vertices que conforma una arista. Aplicaciones
tpicas de los digrafos sobrevienen en los problemas que implican recorridos dirigidos,
como es el caso del redireccionamiento de la circulacion en una ciudad, por ejemplo.
x2
x1
x3
x5
x4

Figura 1.11:

Digrafo de 5 vertices

En otras ocasiones, el grafo representa magnitudes, y bien los vertices bien las
aristas o incluso ambos tienen asignados ciertos valores: se habla entonces de grafos
ponderados, como el de la Figura 1.12.

1. Introduccion a la teora de grafos

x2
4

x1

1
3

2
3

x5

x3

x6

4
4

x7

x4

Figura 1.12:

Grafo ponderado de 7 vertices

1.2 De como representar de un grafo


Hay diversas formas de representar un mismo grafo. La mas geometrica ya la hemos utilizado: dando una representacion gra ca de la estructura, representando los
vertices por puntos y las aristas por segmentos curvos (normalmente rectilneos).
En aras de un tratamiento mas mecanizado, que no involucre la realizacion gra ca
de la estructura, se han ido sucediendo diversos procedimientos matriciales para representar las distintas estructuras, cuales son las listas de adyacencia, la matriz de
adyacencia, la matriz de incidencia.
La lista de adyacencia consiste en una lista de listas, que aglutina ordenadamente
los vertices a los que es adyacente cada vertice dado: primero, se situa la lista de
los vertices que son adyacentes a x ; en una segunda lista, los que son adyacentes a
x ; y as, sucesivamente, hasta terminar con la lista de los v
ertices adyacentes a x .
Para simpli car, jada una ordenacion de los vertices del grafo, a veces se opta por
suprimir de la lista de adyacencia del vertice x dado los vertices a el adyacentes que
le anteceden en dicha ordenacion.
1

La matriz de adyacencia Adj = (a ) es una matriz cuadrada v  v de orden el


numero de vertices, v = jV j. La entrada (i; j ) consiste en un 1 si existe la arista
fx ; x g pertenece al grafo, siendo 0 en otro caso. Dado que las aristas son pares no
ordenados de vertices, la matriz ha de ser simetrica; y, como un grafo carece de lazos,
la diagonal principal ha de ser toda ella de ceros. Cualquier matriz binaria con estas
dos caractersticas conforma de hecho la matriz de adyacencia de un cierto grafo. A
ij

1.2. De como representar de un grafo

veces, dado el caracter simetrico de esta matriz, se opta por especi car la submatriz
triangular superior (o inferior), lo que se corresponde con la supresion en las listas de
adyacencia que se comentara en el paragrafo anterior.
La matriz de incidencia Inc = (c ) es una matriz rectangular v  a de tantas las
como vertices v = jV j tiene el grafo y tantas columnas como aristas a = jAj hay. La
entrada (i; j ) consiste en un 1 si el vertice x es incidente con la arista e , siendo 0 en
otro caso. Dado que cada arista incide en dos vertices (distintos), esta matriz veri ca
que cada columna contiene exactamente dos 1, siendo el resto de entradas 0. Toda
matriz con esta propiedad es, de hecho, la matriz de incidencia de un cierto grafo.
ij

El grafo G(V; A) de la Figura 1.1 admite, aparte de esa materializacion gra ca,
las siguientes otras representaciones:
 En forma de listas de adyacencia,

((x ; x ; x ); (x ; x ; x ); (x ; x ; x ; x ); (x ; x ; x ; x ); (x ; x ); (x ; x ; x ; x ))
o de manera mas escueta, ((x ; x ; x ); (x ; x ); (x ; x ); (x ; x ); (x ); ()).
 En forma de matriz de adyacencia,
0
1
0
1
0
1
1
0
0
1
BB
CC
1
1
0
0
1
BB
CC
BB 1 0 1 1 0 0 CC
1
1
0
0
B
CC
BB 1 1 0 1 0 1 CC
BB
Adj = B
o simplemente BB
1 0 1 CCC
BB 0 1 1 0 1 1 CCC
B@
BB 0 0 0 1 0 1 CC
1 1 CA
@
A
1
1 0 1 1 1 0
2

 En forma de matriz de incidencia, segun el orden de aristas de la Figura 1.1,


0
BB 1
BB 1
BB 0
Inc = B
BB 0
BB
@0

1
0
1
0
0
0 0

1
0
0
0
0
1

0
1
1
0
0
0

0
1
0
1
0
0

0
0
1
1
0
0

0
0
1
0
0
1

0
0
0
1
1
0

0
0
0
1
0
1

0C
0 CCC
0 CCC
0 CCC
1 CA
1

Estas formas de representacion se pueden adaptar convenientemente al caso de


otras estructuras similares, como los multigrafos, los seudografos, los digrafos y los
grafos ponderados:

10

1. Introduccion a la teora de grafos

1.

la matriz de incidencia Inc se modi ca de


manera que en el caso de un lazo del tipo e = fx; xg la unica entrada no nula
situada en la columna que corresponde a e en la matriz Inc es la propia de la
la asociada a x, y consiste en un 2 en lugar de un 1, para re ejar que el vertice
x es tanto origen como nal de la arista e. Tomando las aristas del seudografo de la Figura 1.10 que se mostrara con anterioridad ordenadas en la forma
(fx ; x g; fx ; x g; fx ; x g; fx ; x g; fx ; x g; fx ; x g; fx ; x g; fx ; x g; fx ; x g,
fx ; x g; fx ; x g), la matriz de incidencia de dicha estructura resulta ser
0
1
2
1
1
1
1
1
0
0
0
0
0
BB
C
BB 0 0 0 0 0 0 2 2 1 0 0 CCC
Inc = B
BB 0 1 0 0 0 0 0 0 1 1 1 CCC
B@ 0 0 1 1 1 0 0 0 0 0 0 CA
0 0 0 0 0 1 0 0 0 1 1

En multigrafos y seudografos,

La matriz de adyacencia se modi ca de manera que la entrada a indica el


numero de aristas que unen el vertice x con el vertice x . La matriz, por tanto,
deja de ser binaria, y pasa a ser una matriz simetrica con entradas en los enteros
no negativos (de hecho, cualquier matriz de este tipo es la propia de adyacencia
de un cierto multigrafo o seudografo, caso de que la diagonal principal no este
formada toda por ceros).
La matriz de adyacencia del pseudografo de la Figura 1.10 anterior consiste en:
0
1
1
0
1
3
1
BB
C
BB 0 2 1 0 0 CCC
Adj = B
BB 1 1 0 0 2 CCC
B@ 3 0 0 0 0 CA
1 0 2 0 0
ij

2.

En digrafos, la columna correspondiente a una arista e = (xi ; xj ) en la matriz

de incidencia tiene un 1 en la la que corresponde al vertice x de salida y un


1 en la la que corresponde al vertice x de llegada. La matriz de incidencia
del digrafo que muestra la Figura 1.11, considerando el orden de las aristas
dado por ((x ; x ); (x ; x ); (x ; x ); (x ; x ); (x ; x ); (x ; x ); (x ; x ); (x ; x )),
i

11

1.3. Sobre la lista de valencias

consiste en

0
BB
BB
Inc = B
BB
B@

1
1
0
0
0

1
0
1
0
0

1
0
0
1
0

1
0
0
0
1

0
1
1
0
0

0
0
1
1
0

0
0
1
0
1

0C
0 CCC
0 CCC
1 CA
1

Por su parte, la entrada (i; j ) de la matriz de adyacencia vale 1 si existe la arista


dirigida con origen en el vertice x y llegada el vertice x , (x ; x ); y 0 en otro
caso. Esta matriz ya no tiene por que ser simetrica. El caso de multidigrafos o
seudodigrafos se trata de manera obvia.
La matriz de adyacencia del digrafo de la Figura 1.11 anterior consiste en:
0
1
0
1
1
1
1
BB
C
BB 0 0 0 0 0 CCC
Adj = B
BB 0 1 0 0 0 CCC
B@ 0 0 1 0 0 CA
0 0 1 1 0
i

3.

En grafos ponderados, la entrada (i; j ) de la matriz de adyacencia representa

el peso de la arista fx ; x g.
La matriz de adyacencia del grafo ponderado de la Figura 1.12 anterior consiste
en:
1
0
0
4
0
0
3
1
0
C
BB
BB 4 0 3 0 0 5 7 CCC
BB 0 3 0 0 0 2 0 CC
C
BB
BB 0 0 0 0 4 4 5 CCC
BB 3 0 0 4 0 3 0 CC
BB 1 5 2 4 3 0 6 CC
@
A
0 7 0 5 0 6 0
i

1.3 Sobre la lista de valencias


Se llama valencia o grado de un vertice x al numero (x) de aristas incidentes en el.
Dado un grafo G(V; A), la valencia maxima de G es la mayor de las valencias de sus

12

1. Introduccion a la teora de grafos

vertices, en tanto en cuanto la valencia mnima de G es la menor de entre las valencias


de sus vertices.
En el caso de digrafos, se ha de distinguir entre valencia de entrada ( (x), numero
de aristas que tienen a x como vertice nal) y valencia de salida ( (x), numero de
aristas que tienen a x como vertice inicial), de manera que (x) = (x) + (x).
e

Por ejemplo, la valencia de los vertices del grafo de la Figura 1.1 consiste en
(x ) = 3, (x ) = 3, (x ) = 4, (x ) = 3, (x ) = 2, (x ) = 4.
1

En cambio, la valencia de los vertices del digrafo de la Figura 1.11 consiste en


(x ) = 0, (x ) = 3, (x ) = 2, (x ) = 0, (x ) = 3, (x ) = 1, (x ) = 2,
(x ) = 1, (x ) = 1, (x ) = 2.
e

Una maxima fundamental en Teora de grafos, comunmente conocida como Lema


del apret
on de manos, es la que relaciona las valencias de los vertices de un grafo
con el numero de aristas que este tiene, de manera que la suma de las valencias de
los vertices coincide en ser el doble del numero de aristas:
v
X
i=1

( ) = 2a

xi

Esta relacion se hace evidente con solo contar las entradas que son 1 en la matriz de
incidencia de un grafo: si se cuenta por columnas, hay dos 1 en cada columna, de
donde la suma resulta ser 2 por el numero de columnas, esto es, 2a; si se cuenta por
las, en la la i hay tantos 1 como vertices son adyacentes a x , de donde (x ), de
suerte que la suma coincide con la suma de las valencias (x ) +    + (x ).
i

El lema del apreton de manos es asimismo valido para seudografos (entendiendo


que cada lazo aporta 2 a la valencia del vertice extremo de dicho lazo) y digrafos,
como se puede comprobar sin demasiada di cultad. En este ultimo caso, distinguiendo
entre la valencia de entrada (x) y la valencia de salida (x) de cada vertice x, la
formula anterior se lee
X
X
(x ) =
(x ) = a
e

i=1

i=1

A partir de la relacion anterior es facil deducir que el numero de vertices de


valencia impar en cualquier grafo siempre ha de totalizar un numero par. Para ello,
X
basta separar la suma de las valencias (x ) en dos partes, una englobando los
v

i=1

13

1.3. Sobre la lista de valencias

terminos pares y la otra englobando los terminos impares:


2a =
de manera que

v
X
i=1

( )=

xi

X
(xi ) impar

(xi ) par

( ) = 2a

xi

( )+

xi

X
(xi ) par

(xj ) impar

( )

xj

( ) = par

xi

de donde el numero de vertices de valencia impar ha de ser par (dado que la suma
de k numeros impares es par si y solo si la cantidad k de numeros que se suman es
asimismo par).
A la postre, esta condicion de apariencia tan nimia se mostrara como una de las
herramientas mas frecuentemente utilizadas en teora de grafos. Como un simple
boton de muestra, considerese el problema siguiente.
Ejemplo 1.3.1 Un comisario de polica ha de investigar el asesinato del recepcionista de un hotel de primera categora, que para mas se~nas y segun precisan fuentes
forenses, tuvo lugar entre las 1:30 y las 6:30 de la madrugada previa. Por las camaras
del circuito cerrado de seguridad del hotel (las cuales lamentablemente no grabaron el
fatdico suceso), el comisario tiene constancia de que a la escena del crimen solo 6
personas tuvieron acceso en esa franja horaria, porque de hecho todas ellas departieron
con el asesinado cuando arribaron al hotel para comenzar la jornada laboral propia
del turno de noche. Tras un intenso interrogatorio, llama la atencion al comisario
que ha recibido de los 6 sospechosos asimismo 6 respuestas diferentes a la siguiente
pregunta: >con cuantos de entre los otros sospechosos y el difunto recepcionista mantuvo contacto durante la madrugada pasada? A ciencia cierta sabe que al menos uno
de los sospechosos miente. >C
omo ha llegado a esta conclusi
on? >Es posible
averiguar quien miente?

La primera pregunta tiene facil respuesta. Si se considera el grafo cuyos 7 vertices


son los sospechosos y el recepcionista y las aristas relacionan personas que a rman
haber mantenido contacto entre s a lo largo de la madrugada pasada, a resultas del
enunciado los grados de los vertices correspondientes a los sospechosos han de ser
distintos entre s y mayores o iguales que 1 (todos hablaron con el recepcionista al
comenzar el turno de noche), de manera que solo hay una secuencia posible para
los grados de estos vertices, a saber: (1; 2; 3; 4; 5; 6). El vertice que corresponde

14

1. Introduccion a la teora de grafos

al recepcionista tiene asimismo valencia 6. De suerte que la lista de grados queda


(6; 6; 5; 4; 3; 2; 1), con <tres vertices de valencia impar!, lo cual es imposible en un
grafo. Se concluye de inmediato que alguno (para ser mas precisos, al menos uno) de
los sospechosos ha mentido, aunque no se puede asegurar cual o cuales (basta tornar
una valencia par en impar, o viceversa). No obstante, el comisario sabe a ciencia
cierta que al menos uno de entre los sospechosos que contestaron 1 y 6 ha mentido,
toda vez que ambos valores son incompatibles entre s: hay dos vertices de valencia
6, que son adyacentes a todos los vertices, de manera que la valencia mnima de cada
vertice habra de ser 2, y resulta que hay uno de valencia 1; de manera que, o bien
miente el que ha dicho 6, o bien el que ha dicho 1, o incluso ambos, pero de ningun
modo ambos han dicho la verdad.
Hay que hacer notar que en un grafo de v vertices cada vertice x tiene una y solo
una de entre v 1 valencias posibles: aun cuando es claro que 0  (x)  v 1 para
todo x 2 V , los valores extremos 0 y v 1 son mutuamente excluyentes. En
efecto, si un vertice x veri ca (x) = v 1 es que es adyacente a los v 1 vertices
restantes, de donde no hay ninguno que no sea adyacente a algun otro, y por tanto
el grafo carece de vertices de valencia 0. Recprocamente, si un vertice x veri ca que
(x) = 0 es que no es adyacente a v
ertice alguno, de donde no puede haber otro
vertice y que sea adyacente a todos (i.e. con (y) = v 1). Del hecho anterior es
inmediato concluir que en todo grafo de al menos 2 vertices siempre se repite alguna
valencia.
La lista de grados o valencias viene dada por la consecucion de las valencias de
los distintos vertices del grafo, de manera que si V = fx ; : : : ; x g entonces la lista
de grados es ((x ); : : : ; (x )).
1

Ejemplo 1.3.2 Una organizacion de tmidos anonimos realiza encuentros periodicos


de confraternizacion entre sus a liados durante nes de semana, al que acuden 50
matrimonios. En estos encuentros, los asistentes dialogan dos a dos por periodos de 10
minutos, transcurridos los cuales cambian de contertulio. La tradicion impone ciertas
reglas en aras de facilitar la confraternizacion: esta terminantemente prohibido que un
matrimonio converse entre s, as como que dos mismas personas hablen juntos mas
de una vez. Con intencion de realizar un estudio estadstico para sopesar el exito de la
convocatoria, el secretario de la organizacion solicita a la salida del encuentro de cada

1.3. Sobre la lista de valencias

15

asistente (incluida su propia esposa) el numero de personas con los que ha charlado,
recibiendo sorpresivamente una respuesta distinta en cada ocasion. Determinar la
duracion mnima del encuentro, la cantidad de parejas de dialogo que se formaron a
lo largo de la velada, as como el numero de interlocuciones en que participaron el
secretario y su mujer.

Aunque el enunciado pueda despistar, en la practica casi no hay nada que resolver. Considerese el grafo G(V; A) cuyos vertices son los participantes, y cuyas aristas
relacionan personas que han formado una pareja de dialogo. La valencia maxima en
el grafo es a lo sumo 98 (toda vez que ningun asistente habla consigo mismo ni con
el otro miembro de su matrimonio), mientras que la valencia mnima es 0. Llamemos
x al v
ertice que representa al secretario. Como quiera que los restantes 99 asistentes
al encuentro le certi can 99 respuestas distintas a la pregunta de con cuantas personas han dialogado, el secretario puede concluir que la lista de valencias del grafo es
((x); 0; 1; : : : ; 97; 98). Ahora bien, puede ir mas alla: aquella persona que hablo con
98 contertulios solo dejo de charlar con dos personas, a saber, consigo mismo y con su
conyuge, de manera que precisamente su conyuge ha de ser necesariamente la persona
que no hablo con nadie. Reiterando este argumento (de ser necesario eliminando del
grafo inicial los vertices correspondientes al matrimonio ya detectado) una vez tras
otra, se puede concluir que forman matrimonio las personas correspondientes a las
parejas de valencias dadas por (97; 1); (96; 2); (95; 3); : : : ; (50; 48) quedando sin pareja
la que hablo con 49 personas, a fortiori esposa del secretario, que por ende participo
en otros 49 dialogos. En de nitiva, la velada consto de al menos 98  10 = 980 minutos=16 horas y 20 minutos (hubo quien departio con 98 personas distintas, a razon de
10 minutos con cada una), se formaron tantas parejas como aristas a tiene el grafo,
1 X (y) = 0 + 1 +    + 48 + 49 + 49 + 50 +    + 98 = 50  98 = 2450;
a=
2
2
2
2

y V

y tanto el secretario como su esposa participaron de manera independiente en 49


dialogos.

En el ejemplo anterior vimos que (98; : : : ; 50; 49; 49; 48; : : : ; 1; 0) conformaba una
lista de grados de un grafo.
Una cuestion interesante es la de caracterizar cuando una lista de enteros es o
no gra ca, es decir, es o no la lista de grados de un cierto grafo. Havel y Hakimi

16

1. Introduccion a la teora de grafos

resolvieron esta cuestion de manera independiente en los a~nos 1955 y 1962: una lista
de enteros d  d  : : :  d  0 es gra ca si y solo si asimismo lo es la lista
(presumiblemente no ordenada)
1

1; d 1; : : : ; d

d2

d1 +1

1; d

d1 +2 ; dd1 +3 ; : : : ; dv

que se obtiene al eliminar d y restar una unidad a los d siguientes valores, comprendidos entre d y d .
1

d1 +1

En otras palabras, si una lista de enteros no negativos d  d  : : :  d  0 es


gra ca, siempre existe un grafo G(V; A) de vertices V = fx ; : : : ; x g de manera que
(x ) = d y x es adyacente a los d v
ertices que le siguen. Y, recprocamente, esta
propiedad caracteriza completamente las listas que son gra cas.
1

As pues, se puede dise~nar un algoritmo sencillo, de complejidad lineal en el


numero de vertices, que devuelve como salida si la lista de enteros es o no gra ca;
y que, en caso a rmativo, provee adicionalmente un metodo para construir un grafo
cuya lista de grados coincide con la lista gra ca de entrada.
Algoritmo 1.3.3 Algoritmo de Havel-Hakimi
Entrada:

lista l = (d ; : : : ; d ) con d      d  0.
1

P1 k = l
P2 Mientras la lista k = (k1 ; : : : ; kn) tenga entradas positivas hacer
P3 Eliminar de k la primera entrada, k1
P4 Restar una unidad a las primeras k1 entradas de la lista resultante
P5 k =reordenar la nueva lista as obtenida en orden decreciente
P6 Fin mientras

Salida:

Si la lista es nula entonces la lista inicial es gra ca, en otro caso no lo es.

En verdad, los pasos P3 y P4 del algoritmo anterior consisten en pasar de la lista


k = (k ; : : : ; k ) a la lista k = (k
1; : : : ; k
1; k ; : : : ; k ).
1

k1 +1

k1 +2

17

1.3. Sobre la lista de valencias

Caso de que el algoritmo devuelva una respuesta a rmativa, desandando el proceso


que se ha descrito se puede construir sin di cultad un grafo cuya lista de grados es la
lista inicial. As, en este proceso de reconstruccion, cada entrada k suprimida en la
lista se traduce en la aparicion de un nuevo vertice, adyacente a los k vertices cuyas
valencias corresponden a las que han sido sustradas tras la eliminacion de k .
1

Ejemplo 1.3.4 Demostrar que la lista (4,4,3,3,2,2) es gra ca, y dar un grafo que la
tenga por lista de valencias.

Aplicando el algoritmo anterior, tenemos la siguiente sucesion de listas parciales:


1. Se elimina el primer 4, quedando (4 1; 3 1; 3 1; 2 1; 2) = (3; 2; 2; 1; 2).
Reordenando esta lista, resulta (3; 2; 2; 2; 1).
2. Se elimina ahora el 3, quedando (2 1; 2 1; 2 1; 1) = (1; 1; 1; 1), que da la
casualidad que esta ya ordenada.
3. Ahora se elimina el primer 1, quedando (1 1; 1; 1) = (0; 1; 1), cuya reordenacion
da la lista (1; 1; 0).
4. Por ultimo, se elimina el primer 1, quedando la lista (1 1; 0) = (0; 0) que esta
formada completamente por 0.
En conclusion, la lista de entrada es gra ca. Para encontrar la realizacion de un
grafo que tenga por lista de grados la lista de entrada andamos hacia atras el procedimiento seguido en el algoritmo. Como quiera que el proceso incluye reordenaciones
de las valencias (y por tanto de los vertices), para un mejor seguimiento vamos a
re ejar en una tabla la posicion y la valencia que corresponde a cada vertice en la
lista de grados, etapa por etapa.
1. Como la lista de salida era (0; 0), comenzamos por un grafo con dos vertices x
y x aislados (esto es, de grado 0), de manera que
0 0

x1

x2

18

1. Introduccion a la teora de grafos

x2

x2
x1
x3

x1

Figura 1.13:

Etapas 1 y 2

2. Para obtener la lista que la precede, (1; 1; 0), basta a~nadir un vertice x adyacente a x , reordenandose la lista despues a (0; 1; 1), de manera que queda
1 1 0 , 0 1 1
3

x3

x1

x2

x2

x1

x3

3. Para obtener la lista (1; 1; 1; 1) basta a~nadir un vertice x adyacente a x , de


manera que resulta
1 1 1 1
4

x4

x2

x1

x3

x2

x2

x1

x1

x3

x3
x5
x4

x4

Figura 1.14:

Etapas 3 y 4

4. A la hora de conseguir la lista (3; 2; 2; 2; 1), basta a~nadir un vertice x adyacente


a x ; x ; x , y reordenar la lista en la forma (3; 2; 2; 1; 2):
3 2 2 2 1 , 3 2 2 1 2
5

x5

x4

x2

x1

x3

x5

x4

x2

x3

x1

5. La lista (4; 4; 3; 3; 2; 2) resulta de a~nadir un ultimo vertice,


x ;x ;x ;x :
4 4 3 3 2 2
5

x6

x5

x4

x2

x3

x1

x6

adyacente a

19

1.4. De grafos, subgrafos y operaciones entre ellos

x2
x1
x3
x5
x6

x4

Figura 1.15:

Etapa 5 y ultima

Como se puede observar, el grafo resultante tiene por lista de grados la lista de
entrada, (4; 4; 3; 3; 2; 2).

1.4 De grafos, subgrafos y operaciones entre ellos


Un grafo H (W; B ) se dice subgrafo de un grafo G(V; A) si W  V y B  A. Por
ejemplo, los grafos F , J y H de la Figura 1.16 son subgrafos de G.
x2
x1
G

x4
x6
x2

x6

x5

Figura 1.16:

x6
x2

x3
x4

x3

x1

x5

x1
H

x2

x3

x5
x3

x1
J

x6

x5

Tipos de subgrafos

Un tipo particular de subgrafos son los subgrafos inducidos. Dado un conjunto


S de v
ertices de G, se denota por < S > al subgrafo inducido por S , que consiste
en el mayor subgrafo de G que presenta como conjunto de vertices precisamente el
conjunto S .

20

1. Introduccion a la teora de grafos

Por ejemplo, el grafo J es el subgrafo < S > de G inducido por los vertices
S = fx ; x ; x ; x ; x g. Por su parte, los grafos F y H , pese a ser subgrafos de G, no
son subgrafos inducidos, puesto que faltan aristas de G entre sus vertices.
1

En realidad, los subgrafos inducidos H resultan de la eliminacion de uno o mas


vertices fx ; : : : ; x g del grafo G(V; A) de partida, de manera que
H =< V
fx ; : : : ; x g >
Por ejemplo, el grafo J de la Figura 1.16 es el inducido de G al eliminar el vertice x .
Este hecho se suele notar en la forma J = G fx g, lo que signi ca que se prescinde
del vertice x y de todas las aristas que en el inciden.
k

De manera analoga, dado un conjunto X de aristas de G, se denota por < X > al


subgrafo inducido por X , que consiste en el menor subgrafo de G que presenta como
conjunto de aristas precisamente el conjunto X : es decir, el grafo formado por las
aristas en X y sus vertices extremos.
Es claro que los grafos F y J de la Figura 1.16 son inducidos por aristas del grafo
G, pero no as el grafo H (el v
ertice x no es extremo de ninguna arista de H ).
4

Como ha quedado patente con los ejemplos anteriores, no todo subgrafo es inducido por aristas o por vertices del grafo original.
Por ultimo, vamos a describir ciertas operaciones elementales que se pueden realizar con dos o mas grafos, aparte de la mera eliminacion o insercion de vertices y/o
aristas:
se trata de la extension natural de la union conjuntista al campo de
los grafos, de manera que la union de grafos que no comparten vertices es
G (V ; A ) [ G (V ; A ) = G(V [ V ; A [ A ).
Por ejemplo, el bosque de la Figura 1.4 es la union de los arboles de que consta.
 Suma: la suma de los grafos G (V ; A ) y G (V ; A ) consiste en el grafo G +G
cuyos vertices son V [ V y cuyas aristas son A [ A [ffx; yg : x 2 V ; y 2 V g,
es decir, las propias de los grafos sumandos y todas aquellas aristas que se
pueden formar con un extremo en G y el otro en G .
Por ejemplo, la suma de un grafo completo K con un vertice aislado produce
el grafo completo de un orden superior, K . Por otra parte, la suma de un

Uni
on:
1

n+1

21

1.4. De grafos, subgrafos y operaciones entre ellos

ciclo C con un vertice aislado produce el grafo rueda R de n radios. Como


ultima muestra, la suma de dos caminos simples P y P de longitudes m y n
produce el grafo bipartito completo K .
n

m;n

x2

x2

x1

x1

x3
x2

x3
x2

x3

x1

x4

x1

x4

x5

Figura 1.17:

x4

y
x5

x6

x2

x3

x1

x5

x6

x3

x1

x2

x3

x4

x5

Suma de grafos: K = K + K , R = K + C , P + P = K
4

2;3

el producto de los grafos G (V ; A ) y G (V ; A ) consiste en el grafo


G = G  G cuyos v
ertices son pares de la forma (x; y) con x 2 V e y 2 V
(esto es, elementos del producto cartesiano V  V ) y cuyas aristas relacionan
vertices del tipo ( ; y) con ( ; z) para fy; zg 2 A y vertices del tipo (x; ) con
(t; ) para fx; tg 2 A .
El producto de un camino simple P y un ciclo C produce un grafo que se
asemeja a un par de cubos apilados, segun muestra la Figura 1.18. Por su
parte, el producto del camino simple K consigo mismo produce el ciclo C , y el
producto iterado de K consigo mismo n veces produce lo que se da en llamar
hipercubo n-dimensional Q = K     K o mas brevemente n-cubo.

Producto:
1

Figura 1.18:

Algunos grafos productos

22

1. Introduccion a la teora de grafos

1.5 Isomor smo de grafos


Hay grafos que son sustancialmente iguales, en tanto en cuanto di eren exclusivamente en el nombre de sus vertices y/o en la forma en que se disponen sus respectivas
representaciones gra cas, tal como muestra la Figura 1.19.
2

x2
x1

x4

a
3

x3

Figura 1.19:

Tres grafos isomorfos entre s

Esta idea de igualdad cristaliza en la nocion de isomor smo de grafos. Dos grafos G (V ; A ) y G (V ; A ) se dicen isomorfos (lo que se denota por G = G ), si
existe una aplicacion biyectiva f : V ! V entre sus vertices que lleva aristas en
aristas en ambos sentidos, en tanto en cuanto se ha de veri car que fx; yg 2 A ,
ff (x); f (y)g 2 A para cualesquiera aristas fx; yg 2 A y ff (x); f (y)g 2 A .
1

Matricialmente hablando, esto signi ca que existe una reordenacion de los vertices
de G y G de manera que las matrices de adyacencia de los grafos segun estas
ordenaciones son exactamente iguales.
1

Como regla general, a la hora de comprobar si dos grafos densos G (V ; A ) y


G (V ; A ) (esto es, con muchas aristas) son o no isomorfos, es recomendable trabajar
con sus complementarios G (V ; A ) y G (V ; A ), toda vez que G = G , G = G :
si f : V ! V de ne un isomor smo entre G y G , una arista fx; yg no esta en A
si y solo si ff (x); f (y)g no esta en A , y viceversa.
1

En la practica, suele ser tarea ardua el probar que dos grafos son isomorfos, pues
aun cuando lo sean hay que buscar un isomor smo f entre las v! aplicaciones biyectivas diferentes que existen entre V y V . Con normalidad, es mucho mas asequible
probar que dos grafos no son isomorfos, pues basta concretar que no satisfacen las
mismas propiedades: bien no tienen el mismo numero de vertices, o el mismo numero
de aristas, o la misma lista de grados, o los mismos subgrafos, o como se vera en
temas posteriores el mismo ndice de conexion, o mismo numero o ndice cromaticos,
o mismo caracter plano, etcetera.
1

1.5. Isomor smo de grafos

23

En lo que sigue, se procedera al estudio de diversas propiedades de los grafos, las


cuales pueden permitir eventualmente separar grafos no isomorfos entre s. Pero no
nos limitaremos solo a esta faceta, sino que tambien trataremos de mostrar aplicaciones reales de cada uno de los conceptos a abordar.

24

1. Introduccion a la teora de grafos

Cap
tulo 2
Conexi
on

Cap
tulo 2
Conexi
on

2.1 Nocion de conexion


Intuitivamente, un grafo \conexo" es aquel con la propiedad de que cualquiera dos
de sus vertices estan conectados mediante una sucesion de aristas incidentes. Dependiendo de si se repiten vertices y/o aristas, se suele admitir la siguiente nomenclatura
para esta sucesion de aristas de un grafo G(V; A) (tomamos como referencia el grafo
de la Figura 2.1):
 Un camino es una sucesion de vertices (x ; : : : ; xn) adyacentes dos a dos de
manera consecutiva, de modo que los pares fxi; xi g 2 A para 1  i  n 1.
1

+1

La longitud del camino es el numero de aristas de que consta. Se pueden repetir


tanto vertices como aristas, como es el caso del siguiente camino de longitud 8
(x ; x ; x ; x ; x ; x ; x ; x ; x ).
Un camino abierto es un camino en el que los extremos son vertices distintos. Es
el caso del camino anterior, o de los caminos (x ) (de longitud 0) y (x ; x ; x )
(de longitud 3).
Un camino cerrado es un camino en el que el vertice inicial coincide con el
vertice nal. Por ejemplo, el camino (x ; x ; x ; x ; x ; x ; x ; x ), de longitud 7.
Un camino simple es un camino en el que no se repiten vertices (por tanto,
necesariamente abierto). As es el camino (x ; x ; x ).
Un recorrido es un camino abierto en el que no se repiten aristas, aunque eventualmente se pueden repetir vertices. Es el caso del camino (x ; x ; x ; x ; x ; x ),
de longitud 5.
5

27

28

2. Conexion

 Un ciclo es un camino cerrado en el que no se repite ningun vertice a excepcion

del primero, que aparece exactamente dos veces: como principio y como n del
camino. En de nitiva, se trata de un camino simple que se ha cerrado. Por
ejemplo, el ciclo (x ; x ; x ; x ; x ; x ; x ; x ) de longitud 7.
 Un circuito es un camino cerrado que no repite aristas, aunque eventualmente
puede repetir vertices. As es el camino (x ; x ; x ; x ; x ; x ; x ; x ; x ), de longitud 8.
1

x2

x4

x7

Figura 2.1:

x3

x1

x6

x5

Admite caminos, ciclos, recorridos y circuitos

En lo que sigue, abusaremos de la notacion y entenderemos que un camino hace


referencia a un camino simple. Eventualmente, cuando sea necesario as distinguirlo,
se hablara de \camino no necesariamente simple".
Dos vertices estan conectados en un grafo si existe un camino que los tiene como
extremos. De este modo, formalmente, un grafo es conexo cuando cualesquiera dos
de sus vertices estan conectados. En otro caso, el grafo se dice disconexo, y cada
subgrafo conexo maximal suyo recibe el nombre de componente conexa.
x2
x1

x8

x2

x3

x9

x6

x4

x7

x5

Figura 2.2:

x3

x9

x1
x8

x4
x6

x7

x5

Componentes conexas

La Figura 2.2 muestra dos grafos no isomorfos con la misma lista de grados
(3; 3; 2; 2; 2; 2; 2; 1; 1): el primero es conexo y el segundo tiene 3 componentes conexas,

29

2.1. Nocion de conexion

de vertices respectivos fx ; x ; x ; x g, fx ; x ; x g y fx ; x g.
1

La conexion en un grafo es una propiedad muy util, por ejemplo en las aplicaciones
de la teora de grafos al ambito de las comunicaciones: lo mnimo que se le puede
pedir a un sistema de comunicacion es que todos los nodos sean accesibles unos a otros
por ciertas rutas, es decir, que el grafo que modela la red sea conexo. Por ejemplo,
una manera de conectar 7 nodos entre s economizando el cableado entre ellos sera
mediante un camino simple de longitud 6, o bien mediante una estrella de 6 puntas.
x2
x1

x4

x7

x5

x6

x3

x1

x4

x7

Figura 2.3:

x2

x3

x5

x6

Dos redes basicas de comunicacion con 7 nodos

Pero esto no es su ciente. En ocasiones, algun nodo o lnea de comunicacion


puede fallar, y sera deseable que la comunicacion entre los restantes nodos no se
viera interrumpida. Atenderemos primero a la version del problema que compete
fallos localizados en nodos (modelados por vertices en el grafo), para posteriormente
estudiar lo que sucede cuando se producen fallos en las propias lneas de comunicacion
(modeladas por aristas en el grafo).
Los sistemas de los esquemas de la Figura 2.3 no son estables por fallos en un nodo:
en el primer caso, la eventual disfuncion en los nodos x a x desconecta el sistema
de comunicacion; mientras que en el segundo, un fallo en x llega a desconectar todos
los nodos.
2

x2
x1

x4

x7

x5

Figura 2.4:

x3

x1

x4

x7
x6

x2

x3

x6

x5

Fallan x y x , respectivamente
3

30

2. Conexion

En el caso que nos lleva, esta situacion se puede solventar con solo a~nadir una
conexion por cable adicional, formando un ciclo de longitud 7. Se suprima el vertice
que se suprima del ciclo, los restantes vertices siguen quedando en la misma componente conexa: no hay que olvidar que en un ciclo todo par de vertices esta conectado
por dos caminos distintos por aristas.
x2
x1

Figura 2.5:

x3

x1

x4

x7
x6

x2

x3

x4

x7

x5

x6

x5

Con guracion estable por fallo en un nodo, pero no por dos

Ahora, esta con guracion es estable para fallos en un nodo, pero no as para fallos
en dos nodos: si dejan de funcionar simultaneamente dos nodos no adyacentes, el
sistema vuelve a desconectarse, como muestra la Figura 2.5.
Una manera de arreglar esto es considerar un grafo rueda de 6 radios: tal como se
aprecia en la Figura 2.6, la eliminacion de cualesquiera dos vertices nunca desconecta
lo que queda del grafo.
x2

x3

x1

x4

x7
x6

Figura 2.6:

x5

Con guracion estable por fallos en dos nodos

Detras de esta problematica esta la idea de cual es el menor numero de vertices


(G) que hay que eliminar en un grafo G para que 
este se desconecte. Esta cantidad
se conoce como ndice de vertice conexion o conectividad, y un conjunto de vertices
cuya eliminacion desconecta el grafo se denomina conjunto de vertices de corte. En
caso de que se trate de un solo vertice, se habla simplemente de vertice de corte.
Un grafo G se dice n-conexo si (G)  n (i.e., la eliminacion de cualesquiera n 1
vertices no desconecta nunca el grafo: para desconectarlo hay que quitar al menos n

31

2.1. Nocion de conexion

vertices, eventualmente mas). Si (G) = n, entonces la eliminacion de cualesquiera


n 1 v
ertices nunca desconecta el grafo, aunque s existe un conjunto de n vertices
cuya eliminacion s lo desconecta (notese que en general no se trata de cualesquiera
n v
ertices, sino de n vertices muy concretos). Un caso extremo es el de los grafos
completos K : por convenio, se toma que (K ) = n 1. Esta asuncion se sustenta en
el hecho de que, si bien la eliminacion de cualesquiera n 1 vertices nunca desconecta
el grafo, la eliminacion de los n vertices conduce al grafo vaco.
n

As, un grafo 2-conexo (tambien llamado biconexo) consiste en un grafo conexo


con mas de una arista (i.e. se excluye el caso de K ) que carece de vertices de corte.
Por analoga a las componentes conexas de un grafo, en un grafo con (G) < 2,
se habla de componentes 2-conexas (o biconexas) como aquellos subgrafos 2-conexos
maximales con respecto a esta propiedad (en tanto en cuanto si se a~nadiera algun
otro vertice el subgrafo dejara de ser 2-conexo). Una arista sola no conforma nunca
una componente 2-conexa (recuerdese que (K ) = 1).
2

En el ejemplo anterior, grafo rueda de 7 vertices de la Figura 2.6, se trata de un


grafo 3-conexo, toda vez que (G) > 2 al no desconectar el grafo la eventual eliminacion de cualesquiera dos vertices. Pero no es 4-conexo, puesto que la eliminacion
de los vertices x , x y x desconecta el grafo. De manera que (G) = 3.
1

La caracterizacion de cuando un grafo es n-conexo vino dada de la mano de


Whitney en 1932: un grafo es n-conexo si y solo si todo par de vertices del grafo esta
conectado por al menos n caminos internamente disjuntos, en el sentido de que estos
n caminos s
olo comparten los vertices extremos.
As, ya es claro por que el grafo rueda de la Figura 2.6 es 3-conexo y no 4-conexo:
 (G)  3 porque cualesquiera dos vertices estan conectados por 3 caminos inter-

namente disjuntos: si se trata de dos vertices en el permetro, basta considerar


el camino que consta de los dos radios de extremos los vertices dados, y los dos
caminos sobre el permetro de la rueda; si se trata de un vertice en el permetro
y del vertice central, basta considerar el radio de extremo el vertice exterior,
de un lado, y dos caminos que vayan por el permetro hasta el interior. As, la
eliminacion de dos vertices nunca desconecta el grafo.
 (G) < 4 porque hay 3 vertices cuya eliminacion desconecta el grafo, por ejemplo los vertices x ; x ; x . Esto es as porque, de hecho, no hay 4 caminos que
1

32

2. Conexion

x2

x2

x3

x1

x1

x4

x7

x5

x6

Figura 2.7:

x4

x7

x5

x6

x3

Grafo 3-conexo

conecten los vertices x y x (en este caso, ni cualquier otro par de vertices que
se elijan): basta observar que los vertices del permetro tienen valencia 3, luego
no puede haber mas de 3 caminos internamente disjuntos que arriben a ellos.
1

x2

x3

x1

x4

x7
x6

Figura 2.8:

x5

El grafo no es 4-conexo

Del mismo modo, se puede inferir que un grafo conexo sin ciclos (que se denomina
arbol, como ya se indicara en el tema anterior) es 1-conexo pero no 2-conexo, as como
un ciclo es 2-conexo pero no 3-conexo.
x2
x1

x4

x7
x6

Figura 2.9:

x2

x3

x5

x3

x1

x4

x7
x6

x5

Grafos 1-conexo y 2-conexo, respectivamente

Se puede plantear un estudio similar desde el punto de vista de las aristas (lneas
de comunicacion de un hipotetico sistema).

33

2.1. Nocion de conexion

En el caso de los grafos de la Figura 2.3, cualquier fallo en cualquiera de las lneas
desconectara el sistema.
x2

x2

x3

x1

x6

Figura 2.10:

x1

x4

x7

x3
x4

x7

x5

x5

x6

Desconexion por fallos en fx ; x g y fx ; x g, respectivamente


2

En el caso que nos lleva, esta situacion se puede solventar con solo a~nadir una
conexion por cable adicional, formando un ciclo de longitud 7, como se mostrara en
la Figura 2.5. Se suprima la arista que se suprima del ciclo, todos los vertices siguen
quedando en la misma componente conexa: no hay que olvidar que en un ciclo todo
par de vertices esta conectado por dos caminos distintos por aristas.
Ahora, esta con guracion es estable para fallos en una lnea de comunicacion,
pero no as para fallos en dos: si dejan de funcionar simultaneamente dos aristas no
incidentes, el sistema vuelve a desconectarse, como muestra la Figura 2.11.
x2

x3

x1

x4

x7
x6

Figura 2.11:

x5

Desconexion por fallos en fx ; x g y fx ; x g


2

Una manera de arreglar esto es considerar un grafo rueda de 6 radios: tal como se
aprecia en la Figura 2.12, la eliminacion de cualesquiera dos aristas nunca desconecta
lo que queda del grafo, ya sean dos aristas del permetro, dos radios o una de cada
tipo.
Detras de esta problematica esta la idea de cual es el menor numero de aristas
 (G) que hay que eliminar en un grafo G para que 
este se desconecte. Esta cantidad
se conoce como ndice de arista conexion o conectividad lineal, y un conjunto de
a

34

2. Conexion

x2

x2

x3

x2

x3
x1

x1

x1
x7
x6

Figura 2.12:

x7

x4
x5

x3

x6

x4
x5

x4

x7
x6

x5

Con guracion estable por fallos en dos aristas

aristas cuya eliminacion desconecta el grafo se denomina conjunto de aristas de corte


o conjunto de aristas puente. En caso de que se trate de una sola arista, se suele
utilizar la notacion arista puente. Un grafo G se dice n-conexo por aristas si  (G)  n
(i.e., la eliminacion de cualesquiera n 1 aristas no desconecta nunca el grafo: para
desconectarlo hay que quitar al menos n aristas, eventualmente mas). Si  (G) = n,
entonces la eliminacion de cualesquiera n 1 aristas nunca desconecta el grafo, aunque
s existe un conjunto de n aristas cuya eliminacion s lo desconecta (notese que en
general no se trata de cualesquiera n aristas, sino de n aristas muy concretas).
a

En el ejemplo anterior, grafo rueda de 7 vertices de la Figura 2.6, se trata de


un grafo 3-conexo por aristas, toda vez que  (G) > 2 al no desconectar el grafo
la eventual eliminacion de cualesquiera dos aristas. Pero no es 4-conexo por aristas,
puesto que la eliminacion de las 3 aristas incidentes en un vertice del permetro
desconectan dicho vertice del resto del grafo. De manera que  (G) = 3.
a

La caracterizacion de cuando un grafo es n-conexo por aristas vino dada de la


mano de Menger en 1927: un grafo es n-conexo por aristas si y solo si todo par de
vertices del grafo esta conectado por al menos n caminos disjuntos por aristas, en
el sentido de que estos n caminos no comparten aristas (aunque eventualmente s
puedan compartir vertices).
As, ya es claro por que el grafo rueda de la Figura 2.6 es 3-conexo por aristas y
no 4-conexo por aristas:
 a (G)  3 porque cualesquiera dos vertices estan conectados por 3 caminos

disjuntos por aristas: si se trata de dos vertices en el permetro, basta considerar


el camino que consta de los dos radios de extremos los vertices dados, y los dos
caminos sobre el permetro de la rueda; si se trata de un vertice en el permetro
y del vertice central, basta considerar el radio de extremo el vertice exterior,

35

2.1. Nocion de conexion

de un lado, y dos caminos que vayan por el permetro hasta el interior. As, la
eliminacion de dos vertices nunca desconecta el grafo.
x2

x2

x3

x1

x1

x4

x7

Figura 2.13:

x4

x7

x5

x6

x3

x6

x5

Grafo 3-conexo por aristas

 (G)a < 4 porque hay 3 aristas cuya eliminacion desconecta el grafo, por ejemplo las aristas fx ; x g; fx ; x g; fx ; x g. Esto es as porque, de hecho, no hay 4
1

caminos disjuntos por aristas que conecten los vertices del permetro, toda vez
que solo poseen valencia 3.
x2

x3

x1
x7
x6

Figura 2.14:

x4
x5

El grafo no es 4-conexo por aristas

Del mismo modo, se puede inferir que un arbol es 1-conexo por aristas pero no
2-conexo por aristas, as como un ciclo es 2-conexo por aristas pero no 3-conexo por
aristas.
Hay que tener especial cuidado en no confundir las nociones de n-conexion por
vertices y n-conexion por aristas, puesto que (G)   (G) en general y eventualmente se da la desigualdad, pese a que en los ejemplos considerados previamente
ambos valores coincidieran: si cualquier par de vertices esta conectado por n-caminos
internamente disjuntos, lo esta por n-caminos disjuntos por aristas; y el recproco no
a

36

2. Conexion

x2

x2

x3

x1

x1

x4

x7

x4

x7

x5

x6

x3

x5

x6

Figura 2.15:

Grafos 1-conexo y 2-conexo por aristas, respectivamente


se sostiene por regla general, por mucho que cualesquiera dos vertices esten conectados por n caminos disjuntos por aristas, estos caminos no tienen por que ser disjuntos
en vertices.
x2

x1

x2

x3

x1

x2

x3
x5

x4

Figura 2.16:

x2

x3
x5

x4

x1

x4

x1

x3
x5

x5

x4

( ) = 1 mientras que  (G) = 2

 G

En el caso del grafo conexo G de la Figura 2.16, se tiene que (G) = 1, puesto que
la eliminacion del vertice x desconecta el grafo (x es un vertice de corte en G). No
obstante,  (G) = 2, toda vez que cualesquiera dos vertices estan conectados por al
menos 2 caminos disjuntos por aristas, como se muestra en la Figura 2.16 (es decir,
G carece de aristas puente).
3

Para dar termino a esta seccion, observemos que todo lo que a conexion se re ere
se puede traducir literalmente al ambito de seudografos y digrafos. En el caso de
estos ultimos, no obstante, se puede distinguir entre 3 nociones distintas de conexion:
se trata de la conexion del grafo no dirigido que se obtiene
al prescindir de las direcciones de las aristas del digrafo. As, un digrafo es
debilmente conexo si el grafo subyacente es conexo.
 Conexion unilateral: un digrafo se dice unilateralmente conexo si todo par de
vertices esta conectado por un camino dirigido, sin precisar cual de los vertices
iniciales es origen y cual n de dicho camino.

Conexion debil:

37

2.1. Nocion de conexion

un digrafo se dice fuertemente conexo cuando para cada par


de vertices x e y del grafo existe un camino dirigido con origen x y nal en y,
y asimismo existe otro camino dirigido con origen en y y nal en x.

Conexi
on fuerte:

Es claro que fuertemente conexo implica unilateral y debilmente conexo, as como
unilateralmente conexo implica debilmente conexo, mientras que cualquier otra relacion es falsa.
Por ejemplo, si atendemos a los grafos de la Figura 2.17, se tiene que el primero es
debilmente conexo (pero no unilateralmente conexo, ni por tanto fuertemente conexo:
los vertices x y x no se pueden conectar por caminos dirigidos, toda vez que la
valencia de entrada de ambos es 0: no hay ningun camino que arribe a x o a x ),
el segundo es unilateralmente conexo (aunque no fuertemente conexo: la valencia de
entrada de x es 0: ningun camino puede llegar a x ), y el tercero es fuertemente
conexo.
1

x2

x1

x2

x3
x5

x1

x2

x3
x4

Figura 2.17:

x5

x1

x3
x4

x5

x4

Los 3 tipos de conexion en digrafos

Las aplicaciones de los grafos dirigidos al ambito de las comunicaciones es inmediata. Pensamos en el digrafo que modela el tra co rodado de una ciudad, en
el que los vertices son las intersecciones de las calles y las aristas dirigidas van de
un cruce a otro contiguo, marcando la direccion de circulacion permitida en dicho
tramo. Que este digrafo fuera solo debilmente conexo, se traducira en que dos zonas
de la ciudad (siendo precisos, dos cruces) <estaran incomunicadas! Por otra parte,
que fuera solo unilateralmente conexo implicara que dos puntos exclusivamente estaran comunicados en un sentido, pero no en el otro; por ejemplo, podra darse el
caso de que pudieramos ir al trabajo desde nuestro garaje en coche, pero en cambio
<no pudieramos entrar el coche al garaje de vuelta del trabajo, por ser algun tramo
direccion prohibida! As, lo deseable (y necesario) en un digrafo que modele el tra co
es que este sea fuertemente conexo.

38

2. Conexion

Por otra parte, estudiar si la organizacion del tra co es o no adecuada, y el tratar


de evitar puntos negros o calles con ictivas en cuanto a atascos en ciertas horas punta,
concierne a la localizacion de vertices de corte y aristas puente.


2.2 Arboles.
Aplicacion en algoritmos sobre conexion
Los algoritmos que determinan si un (di)grafo es o no conexo, as como el numero de
componentes conexas, o incluso vertices de corte y aristas puente que el grafo tiene,
utilizan sistemas de busqueda basados en tipos particulares de arboles subgrafos del
grafo dado. Es por ello que nos centramos ahora en el estudio de este tipo tan
particular de grafos conexos.
Tal como se de niera en el tema anterior, un arbol es un grafo conexo sin ciclos.
Los grafos sin ciclos (tambien llamados acclicos) se denominan bosques, de manera
que cada una de sus componentes conexas conforma un arbol de manera propia. Un
arbol (bosque) recubridor de un grafo es uno (no necesariamente unico) que contiene
todos los vertices del grafo.
Hay diversas formas de caracterizar un arbol. Destacamos a continuacion las mas
usuales. Son equivalentes:
1. T (V; A) es un arbol (grafo conexo sin ciclos).
2. Cualesquiera dos vertices de T estan conectados por un unico camino.
3. T es conexo y la eliminacion de cualquiera de sus aristas produce un bosque de
dos arboles.
4. T es conexo y tiene tantas aristas como vertices menos 1: jAj = jV j 1.
5. T es acclico y jAj = jV j 1.
Justi quemos esta caracterizacion.
1)2


2.2. Arboles.
Aplicacion en algoritmos sobre conexion

39

Por ser T conexo, cualesquiera dos vertices x e y estan conectados por un camino.
Solo hay que probar que dicho camino es unico. Pero no puede ser de otra forma,
dado que caso de existir otro camino distinto, la concatenacion de ambos constituira
un camino cerrado no trivial, y por tanto contendra al menos un ciclo: tomese una
arista de un camino que no este en el otro, y continuese por ambos extremos de la
arista hasta dar con los primeros vertices comunes a ambos caminos. Las porciones de
los caminos encerradas entre estos dos vertices conforman un ciclo, por construccion.
2)3
es conexo, puesto que por hipotesis cualesquiera dos vertices de T estan conectados por un camino (por a~nadidura, unico). Por otra parte, la eliminacion de cualquier
arista e = fx; yg desconecta el grafo, toda vez que dicha arista es el unico camino
que conecta los vertices x e y, de manera que x e y quedan tras la eliminacion de e
en componentes conexas distintas. Ademas, solo resultan dos componentes conexas:
la de aquellos vertices que siguen estando conectados a x, y la de aquellos que siguen
conectados a y (no puede haber un vertice que no este conectado a ninguno de ellos,
puesto que el grafo era conexo y la unica arista que ha sido eliminada es e = fx; yg).
T

3)4
Solo hay que demostrar que jAj = jV j 1, lo que procedemos a hacer por induccion
en el numero de vertices.
Para grafos de 1 vertice (que no tienen aristas) y 2 vertices (que constan de 1
arista, por ser conexos) no hay nada que probar. Supongamos que 3)4 para grafos
de hasta n vertices. Lo vamos a probar para grafos de n + 1.
Sea pues un grafo G(V; A) de n + 1 vertices satisfaciendo las hipotesis de 3.
Elimnese cualquier arista. Entonces resulta un bosque de dos arboles, cada uno
de los cuales tiene a lo sumo n vertices, y satisface la hipotesis de induccion. De manera que en cada uno de estos arboles el numero de aristas coincide con el numero de
vertices menos 1. Como los arboles no tienen vertices en comun, resulta que en este
bosque de dos arboles el numero de aristas es el numero de vertices menos 2. Pero
recuperando la arista eliminada, se concluye que en el grafo de partida, el numero de
aristas es el numero de vertices menos 1.
4)5

40

2. Conexion

Solo hay que demostrar que un grafo que satisface 4 es acclico. Vamos a demostrar
que, de hecho, el grafo no puede contener un ciclo, puesto que en ese caso se tendra
que jAj  jV j, lo que contradice la hipotesis jAj = jV j 1 < jV j.
Supongamos, pues, que el grafo contiene un ciclo, en el cual el numero de vertices
coincide con el numero de aristas. Vamos a contar el resto de aristas y de vertices,
a~nadiendo paulatinamente al ciclo inicial ciertos caminos simples, incrementando la
estructura poco a poco. Sucesivamente, para cada vertice que no este en la estructura
hasta ahora construida (inicialmente, el ciclo de partida), se elige un vertice que no
este en la estructura, as como un camino simple que lo conecte a la estructura. En
esta operacion, se han a~nadido vertices y aristas nuevos por igual, toda vez que el
vertice nal del camino simple es el unico que ya se encontraba en la estructura. De
manera que sigue veri candose que la estructura posee el mismo numero de vertices
que de aristas. Procediendo as, en un numero nito de pasos (toda vez que el grafo
posee un numero nito de vertices), se termina por incorporar todos los vertices a la
estructura. En el peor de los casos, puede suceder que alguna arista haya quedado
fuera. De cualquier modo, es jAj  jV j, lo que contradice la hipotesis inicial de que
jAj = jV j 1 < jV j.
5)1
Segun la propiedad 4, en un bosque de k componentes conexas (arboles), en cada
una de las componentes conexas el numero de aristas es el numero de vertices del
arbol menos 1. As, al sumar estas k relaciones se desprende que el numero de aristas
del bosque coincide con el numero de vertices menos k: jAj = jV j k. De manera que
el numero de arboles en un bosque es la diferencia del numero de sus vertices y de
sus aristas. El grafo de 5 es acclico, luego un bosque, y satisface que jAj = jV j 1,
de manera que consta de una sola componente conexa, de donde es un arbol (conexo
y sin ciclos).
Los arboles son las estructuras conexas mas simples, en tanto en cuanto poseen
el numero mnimo de aristas para conectar los vertices de que constan. Se llama
arbol recubridor de un grafo conexo a un arbol que contenga todos los vertices del
grafo. Analogamente, se denomina bosque recubridor de un grafo no necesariamente
conexo a un bosque que contenga todos los vertices del grafo (y que consta de un

41


2.2. Arboles.
Aplicacion en algoritmos sobre conexion

arbol recubridor de cada componente conexa del grafo).


Los arboles y bosques recubridores son herramientas utiles en teora de grafos,
puesto que permiten dise~nar metodos para recorrer todos los vertices del grafo, y as
poder estudiar diversas propiedades del grafo en cuestion.
Hay un par de metodos sistematicos que reciben un nombre particular: la busqueda
en profundidad (o DFS, de sus siglas en ingles) y la busqueda en anchura (o BFS, de
sus siglas en ingles).
2.2.1

B
usqueda en profundidad

Sea V = fx ; : : : ; x g una ordenacion de los v vertices de un grafo G, del que se


conoce sus listas de adyacencia segun dicha ordenacion.
v

La idea es disponer v etiquetas d (x ), desde la 1 hasta la v, e ir asociando el


primer vertice nuevo que visite en la busqueda, x , con la primera etiqueta libre, que
se nota por correspondencia d (x ) y se denomina ndice de busqueda en profundidad
de x , e indica el orden en el que la busqueda recorre los vertices del grafo. En cada
etapa, el vertice x que se esta visitando en ese instante recibira el nombre de vertice
activo, y sera necesario guardar tanto d (x ) como el vertice x desde el cual se ha
llegado hasta x , para lo cual se suele referenciar la etiqueta d (x ) en lugar del
propio vertice x . Toda esta informacion se suele disponer en forma de tabla, como
se mostrara posteriormente.
i

Con origen x , de etiqueta d (x ) = 1, se toma el primer vertice x a el adyacente


segun las listas de adyacencia, el que se corresponde con la etiqueta d (x ) = 2, y
que viene a ser el nuevo vertice activo. Como informacion adicional, se sabe que la
arista por la que se ha llegado a x proviene de x , lo cual se recoge referenciando la
etiqueta del vertice \padre" de x , en este caso d (x ) = 1.
1

j2

j2

j2

j2

En general, supongamos que x denota el vertice activo en cierta etapa de la


busqueda, y que faltan vertices por visitar en su misma componente conexa. Puede
ocurrir una de entre dos cosas:
jk

 Si la lista de adyacencia de xj incluye algun vertice aun no visitado, se toma


k

como nuevo vertice activo el primero de estas caractersticas, x , que se hace


jr

42

2. Conexion

corresponder con la siguiente etiqueta libre, d (x ) = r, y se toma nota que el


padre de x es x , haciendo referencia a la etiqueta de este, d (x ).
 Caso de que no haya vertices adyacentes a x sin visitar, se retrocede hasta
el vertice activo justamente anterior, digamos x , que vuelve a tomarse como
vertice activo.
jr

jr

jk

jk

jk

js

El proceso se repite mientras resten vertices sin visitar en la misma componente


conexa que el vertice x de partida. Una vez que se han visitado todos estos vertices,
por construccion, las aristas que conforman los vertices x y sus padres de nen un
arbol recubridor de la componente conexa de x . Si quedan vertices del grafo original
sin visitar, esto signi ca que el grafo no es conexo, y repitiendo el proceso cuantas
veces sea necesario tomando como vertice de partida cualquier vertice no visitado,
se puede determinar un arbol recubridor de cada componente conexa. Su reunion
conforma un bosque recubridor del grafo inicial.
1

Ahora debe aparecer de manera ntida el motivo por el que se conoce a este metodo
como busqueda en profundidad: a partir de un vertice, se trata de \profundizar" lo
maximo posible sin volver atras hasta que no haya otra opcion, en cuyo caso se retrocede hasta que se llegue a la primera interseccion que permita seguir profundizando.
Hemos de observar que la salida que devuelve la busqueda depende, y de que
modo, de la ordenacion de entrada de los vertices. En un mismo grafo, distintas
ordenaciones pueden producir distintas salidas segun el metodo DFS.
Ejemplo 2.2.1 Aplicar una busqueda en profundidad al grafo siguiente

x2
x1

x7

x5
x4

x3

Figura 2.18:

x14

x6

x10

x8
x11

x9

x13

x12

x18

x17

x15
x16

Grafo de 3 componentes conexas

Sigamos la ordenacion natural, V = fx ; x ; : : : ; x g.


1

18

43


2.2. Arboles.
Aplicacion en algoritmos sobre conexion

El primer vertice activo es, pues, x , de etiqueta d (x ) = 1.


1

El primero de entre los vertices adyacentes a x es, segun esta ordenacion, el


vertice x , de manera que el segundo vertice activo es x , de etiqueta d (x ) = 2, al
cual se llega desde x (mediante la arista fx ; x g), de etiqueta d (x ).
1

De entre los vertices adyacentes a x que no han sido visitados, x es el primero


segun la ordenacion pre jada, de manera que d (x ) = 3 y procede del vertice x de
etiqueta d (x ) = 2.
2

Ahora, x es el primer vertice no visitado adyacente a x , de manera que pasa


a ser el nuevo vertice activo, con d (x ) = 4. Se llega a el desde x , de etiqueta
d (x ) = 3.
4

Finalmente, solo queda por visitar un vertice de la componente conexa de x , a


saber, x , que es adyacente a x , de manera que pasa a ser el ultimo vertice activo, con
d (x ) = 5, alcanzandose por una arista desde x , de etiqueta d (x ) = 4. Se sabe
que no hay ningun otro vertice sin visitar en la misma componente conexa porque
remontando hacia atras ordenadamente (basta seguir las etiquetas d de procedencia
de cada vertice) todos los vertices activos que se han ido tomando, ninguno de ellos
es adyacente a algun vertice nuevo. El proceso debe seguir ahora tomando un vertice
de otra componente conexa.
1

El primer vertice no visitado de lo que queda de grafo es x , el cual se ha de


encontrar necesariamente en una componente conexa distinta de la de x .
6

De este modo, x es el nuevo vertice activo, con d (x ) = 6, no procediendo de


ningun otro vertice y siendo, por tanto, el vertice raz de un arbol recubridor de la
nueva componente conexa.
6

El primer vertice no visitado adyacente a x es x , siendo d (x ) = 7. Al nuevo


vertice activo, x , se ha llegado desde x , de etiqueta d (x ) = 6.
6

El primer vertice no visitado adyacente a x es x , nuevo vertice activo, con


d (x ) = 8, alcanzado mediante una arista desde x , siendo d (x ) = 7.
7

10

10

Solo hay un vertice no visitado adyacente a x , que pasa a ser el nuevo vertice
activo: x . As, dif(x ) = 9. Se llega a x desde x , de etiqueta d (x ) = 8.
10

10

10

44

2. Conexion

El primer vertice no visitado adyacente a x es x , nuevo vertice base, con d (x ) =


10. A x se llega por una arista desde el vertice x , de etiqueta d (x ) = 9.
8

El vertice x es el unico vertice no visitado adyacente a x , de manera que constituye el siguiente vertice activo, con d (x ) = 11. Se llega a x desde x , de etiqueta
d (x ) = 10.
11

11

11

Ahora, x no es adyacente a ningun vertice no visitado, de manera que el metodo


obliga a retroceder hasta el anterior vertice activo, que se reconoce por la etiqueta
10 de que proceda x . Ahora, x , con d (x ) = 10, adquiere el caracter de vertice
activo por segunda vez.
11

11

Desde x tampoco se puede alcanzar un vertice no visitado, por lo que se retorna


al vertice activo precedente, de etiqueta 9, a la que corresponde el vertice x .
9

El vertice x es el unico vertice no visitado adyacente a x , de manera que pasa


a ser el nuevo vertice activo, con d (x ) = 12. Se alcanza desde x , de etiqueta 9.
12

12

Remontando sucesivamente todos los vertices activos, se concluye que no hay


ningun otro vertice en la misma componente conexa, de manera que hay que tomar
el primer vertice no visitado del grafo para comenzar la busqueda de un tercer arbol
recubridor, propio de la tercera componente conexa del grafo de partida.
El primer vertice no visitado es x , con d (x ) = 13, vertice raz del nuevo arbol
recubridor.
13

13

El unico vertice adyacente a x , aun sin visitar, pasa a ser el nuevo vertice activo,
, con d (x ) = 14. Se llega desde x , de etiqueta d (x ) = 13.
13

x18

18

13

13

El primer vertice no visitado adyacente a x es x , que viene a ser el nuevo


vertice activo, con d (x ) = 15. Se llega desde x , con d (x ) = 14.
18

14

14

18

18

Como x no es adyacente a ningun vertice no visitado, se retrocede al vertice que


corresponde la etiqueta 14. De manera que x vuelve a tener el caracter de vertice
activo.
14

18

Ahora, el primer vertice no visitado adyacente a x es x , que viene a ser el


nuevo vertice activo, con d (x ) = 16, procedente de la etiqueta d (x ) = 14.
18

15

15

18

45


2.2. Arboles.
Aplicacion en algoritmos sobre conexion

El vertice x es el primer vertice no visitado adyacente a x , de manera que


se convierte en el nuevo vertice activo, siendo d (x = 17. Se llega desde x , de
etiqueta d (x ) = 16.
16

15

16

15

15

Como quiera que x no es adyacente a vertices sin visitar, se retrocede a x ,


anterior vertice activo. E ste tampoco es adyacente a vertices sin visitar, de manera
que se remonta un vertice activo mas, hasta x .
16

15

18

El ultimo vertice del grafo sin visitar, x , es adyacente a x , con lo que d (x ) =


18 y conforma el ultimo vertice activo de la busqueda, procedente de d (x ) = 14.
17

18

17

18

Toda esta informacion se puede resumir en una tabla del siguiente tipo. La primera
la recoge todas las etiquetas d posibles, ordenadas de 1 a v. En la segunda se
disponen los vertices asociados a cada etiqueta, precisamente tal como se han ido
encontrando de manera ordenada en la busqueda en profundidad. La tercera la
muestra, por columnas, la etiqueta d del vertice del que procede el vertice dado. Las
diferentes componentes conexas quedan automaticamente separadas por una doble
barra vertical, segun el reparto de etiquetas:
Etiqueta d 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Vertice x x x x x x x x x x x x x x x x x x
Procede de
1 2 3 4
6 7 8 9 10 9
13 14 14 16 14
Esta informacion tambien se puede dar de manera gra ca:
1

10

11

12

13

x1

x6

x2

x7

x18

x3

x10

x14 x15

x4

x8

x16

x5

x9
x11

Figura 2.19:

18

14

15

16

x13
x17

x12

Bosque recubridor por niveles

Este bosque se puede llevar sobre grafo original, quedando


Hemos de hacer notar que con solo cambiar la ordenacion de los vertices
del grafo de la Figura 2.18 se obtiene un resultado distinto siguiendo

17

46

2. Conexion

x2
x1

x7

x5
x4

x8

x10

x3

Figura 2.20:

x14

x6
x13

x9

x11

x12

x18

x15
x16

x17

Bosque recubridor del grafo de la Figura 2.18

el mismo metodo de busqueda en anchura. Si se toma la ordenacion


(x ; x ; x ; x ; x ; x ; x ; x ; x ; x ; x ; x ; x ; x ; x ; x ; x ; x ) en los vertices del
grafo, se tiene que
Etiqueta d 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Vertice x x x x x x x x x x x x x x x x x x
Procede de
1 2 3 3
6 7 8 8 10 8
13 13 13 16 13
Esta informacion tambien se puede dar de manera gra ca:
4

10

11

x4

x8

x1

x6

x2

x7

x3

x5

x10

12

18

10

13

11

14

15

12

16

17

18

13

14

16

15

x18
x13 x14

x16 x17
x15

x11 x12
x9

Figura 2.21:

Bosque recubridor por niveles

Queda claro que se trata de un bosque recubridor no isomorfo al de la Figura 2.19


(los arboles primero y segundo presentan listas de valencia distintas en cada caso).
Si llevamos este bosque al grafo de partida, resulta
A continuacion incluimos un codigo para el algoritmo de busqueda en profundidad,
de complejidad lineal en el numero de vertices o aristas (el mayor de ambos valores).
Damos ciertas claves para su seguimiento. Primero, se inicializa como 0 todas las
etiquetas d (x ), valores que se iran actualizando para valer i cuando corresponda,
siguiendo un contador i a de nir. El algoritmo terminara cuando no haya un d (x )
k

17

47


2.2. Arboles.
Aplicacion en algoritmos sobre conexion

x2
x1

x7

x5
x4

Figura 2.22:

x3

x14

x6

x10

x8

x13

x9

x11

x12

x18

x15

x17

x16

Otro bosque recubridor del grafo de la Figura 2.18

nulo. En una lista de nombre \PADRE" se almacena el vertice activo del que procede
un vertice dado, de manera que si PADRE(x ) = x entonces se llega a x desde x , y
en el bosque recubridor segun DFS aparece la arista fx ; x g. A lo largo del proceso,
r siempre denota el v
ertice raz de la componente conexa que se este recorriendo.
Para remontar al vertice activo anterior, caso de que desde un vertice x no se pueda
avanzar a otro no visitado, basta retroceder hasta PADRE(x ).
k

Algoritmo 2.2.2 B
usqueda en profundidad
Entrada:

grafo G(V; A).

P1 d (xk ) = 0 8 xk 2 V
P2 i 1
P3 Si d (r) 6= 0 8 r 2 V

entonces FIN

en otro caso
r
primer vertice con d (r) = 0
w

Fin Si
P4 d (w) i
P5 i i + 1
P6 Si d (x) = 0 para algun vertice adyacente a w entonces continuar
en otro caso
ir a P10
Fin Si
P7 x primer vertice adyacente a w con d (x) = 0
P8 PADRE(x) w
P9 w x e ir a P4
P10 Si w 6= r entonces w PADRE(w) e ir a P6

48

2. Conexion

en otro caso
ir a P3
Fin Si
Las listas d y PADRE contienen toda la informacion de la busqueda DFS,
su ciente y necesaria para reconstruir la tabla anterior.

Salida:

En la jerga informatica, este algoritmo se caracteriza por funcionar mediante una


pila. En un smil gra co, el proceso se puede comparar al del Sorteo de la Lotera de
Navidad: comenzando con un alambre vaco, cada vez que se toma un vertice activo, se
inserta en el alambre una bola con el nombre del vertice. Cuando el vertice activo no es
adyacente a ninguno sin visitar, se saca su bola del alambre (es la ultima en haber sido
metida), y se ja uno en el vertice activo anterior, que no es otro sino el que queda
ahora en la parte superior del alambre. El procedimiento termina cuando se saca
del alambre la primera bola introducida, momento en el que la componente conexa
del primer vertice ha sido completamente determinada. Llegado el caso, se \cierra"
el alambre correspondiente y se pasa a \abrir" otro, para la siguiente componente
conexa. En de nitiva, el ultimo vertice en entrar en el alambre es el primero en salir,
llegado el momento de que tenga que salir alguno porque no se encuentren vertices
adyacentes no visitados. En la literatura, este tipo de procesos se denomina LIFO,
del ingles last in rst out.
Algoritmos para la conexion

El arbol T obtenido tras aplicar DFS a un grafo conexo permite caracterizar que
vertices son de corte, cuales son las componentes 2-conexas y que aristas son puente.
Es importante observar que cada arista fx; yg del grafo que no aparezca en el
bosque recubridor salida de DFS, une un antepasado con un descendiente, en el
sentido de que si d (x) <d (y) entonces x es genealogicamente anterior a y, esto es,
x es un antepasado de y , o tambi
en y es un descendiente de x. Con normalidad, se
piensa en el arbol T salida de DFS aplicado a un grafo conexo G como un digrafo,
de manera que las aristas de G que no estan en T se orientan para que lleven de


2.2. Arboles.
Aplicacion en algoritmos sobre conexion

49

descendiente a antepasado.
Con esta idea en mente, es claro que si existe algun hijo y de un vertice x interior
a T (esto es, que no es el vertice raz) de manera que ni el ni tampoco cualquier
descendiente suyo sea adyacente a algun antepasado de x, entonces la eliminacion de
x desconecta la rama de T que comienza en y con los antepasados de x. De manera
que x sera vertice de corte.
Recprocamente, si x interior a T es vertice de corte, necesariamente posee alguna
rama de descendencia que no admite aristas de retroceso hacia antepasados de x (o
de otro modo la eliminacion de x no desconectara el grafo).
Asimismo, para que la raz de T constituya un vertice de corte es necesario y
su ciente que tenga mas de un hijo.
De otro lado, a la hora de determinar las componentes 2-conexas, basta situarse
sucesivamente en los vertices de corte interiores mas bajos de cada rama de T , cuyos descendientes conforman con ellos sendas componentes 2-conexas. Ahora, basta
eliminar los vertices de las componentes 2-conexas halladas de T , en una especie de
\poda", a excepcion de los vertices de corte terminales, y repetir el procedimiento.
En el caso de que el vertice raz de T sea un vertice de corte, por cada rama que
salga de la raz se determina la componente 2-conexa correspondiente atendiendo a
las aristas de retroceso que eventualmente aparezcan en las respectivas ramas.
Por ultimo, una arista fx; yg con x padre de y (esto es, d (x) <d (y)) sera
arista puente si y solo si la rama que comienza en y no posee alguna adyacencia
a x o a algun antepasado suyo. De otro modo, las aristas puente no son mas que
las aristas que esporadicamente quedan en el grafo tras separar las componentes 2conexas (recuerdese que una arista puente no conforma en s misma una componente
2-conexa, pese a carecer de vertices de corte: la eliminacion de cualquiera de sus
extremos conduce al grafo trivial, de un solo vertice).
Ejemplo 2.2.3 Determinar el arbol T que devuelve la aplicacion de DFS al grafo de
la Figura 2.23, y a partir del mismo, los vertices de corte, las componentes 2-conexas
y las aristas puente.

50

2. Conexion

x2

x3
x6

x7

x4

x1
x8

Figura 2.23:

x9

x5

x10

Presenta 4 vertices de corte y una arista puente

Realizamos DFS segun la ordenacion natural de los vertices, obteniendo


Etiqueta d 1 2 3 4 5 6 7 8 9 10
Vertice x x x x x x x x x x
Procede de
1 2 3 2 5 6 7 1 9
Esta informacion tambien se puede dar de manera gra ca:
1

x2

x8

x5

10

x1
x3

x4

x1

Figura 2.24:

x3
x6

x7

x2
x6

x9
x10

x7
x4

x8

x9
x5
x10

A rbol DFS con aristas de retroceso punteadas

Estudiando los vertices de corte podemos concluir:


1. El vertice x es vertice de corte, puesto que es el vertice raz del arbol DFS y
consta de mas de un hijo (de hecho, dos: x y x ).
2. El vertice x es vertice de corte, con respecto de la rama (x ; x ; x ), puesto que
ninguno de x o x es adyacente a algun antepasado de x . Notese que x no es
vertice de corte con respecto de la descendencia que continua por x (desde x
mismo hay una arista de retroceso a x , antepasado de x ).
1

51


2.2. Arboles.
Aplicacion en algoritmos sobre conexion

3. Los vertices x y x no son vertices de corte, toda vez que x es adyacente a su


antecesor x y x se situa en el camino de la rama entre ambos.
4. El vertice x es vertice de corte, puesto que ninguno de sus descendientes es
adyacente a alguno de los antepasados de x .
5. El vertice x tambien es vertice de corte, porque nuevamente ninguno de sus
descendientes tiene una arista de retroceso a algun antepasado de x .
6. Ni x ni su hijo x son vertices de corte, porque este ultimo presenta una arista
de retroceso hasta x , antepasado comun a ambos.
7. Otro tanto ocurre con los vertices x y x , que tampoco son vertices de corte
2

10

De manera que el grafo presenta 4 vertices de corte, a saber: x , x , x y x .


1

Determinemos ahora las componentes 2-conexas, tomando como puntos de referencia los vertices de corte situados mas profundamente en las ramas, y \podando"
del arbol sucesivamente las componentes 2-conexas que se vayan determinando:
1.
2.
3.
4.

El vertice x
El vertice x
El vertice x
El vertice x

determina la componente 2-conexa (x ; x ; x ).


determina la componente 2-conexa (x ; x ; x ).
determina las componentes 2-conexas (x ; x ; x ) y (x ; x ; x ).
determina la arista puente fx ; x g.
3

10

De manera que el grafo presenta 5 componentes 2-conexas distintas, solo una de


las cuales consiste en una arista, que es la unica arista puente que contiene el grafo,
a saber: fx ; x g.
4

Por ultimo, notese que la determinacion de las componentes fuertemente conexas


de un grafo G dirigido pasan igualmente por buscar las aristas de retroceso en el arbol
salida de aplicar DFS a G, en tanto en cuanto un vertice esta en una componente
fuertemente conexa diferente de la de sus descendientes si y solo si no existe arista de
retroceso de sus descendientes a el mismo o a alguno de sus antepasados.

52

2. Conexion

De igual modo, DFS sirve para determinar si un grafo es o no conexo, o incluso,


de ser este el caso, para describir todos los ciclos de un grafo.
2.2.2

B
usqueda en anchura

El sistema de busqueda en anchura (denominado BFS del ingles breadth rst search)
permite visitar sistematicamente los vertices de un grafo, sujetos a una ordenacion
inicial. Se toma como vertice raz el primer vertice de esta ordenacion, que pasa a ser
el primer vertice activo, de etiqueta 1, y se a~nade a una cola C .
En cualquier etapa de la busqueda, de entre todos los vertices adyacentes al en
ese instante vertice activo x (que es precisamente el que esta situado primero en la
cola C ), se tiene en consideracion solo los que no han sido visitados aun. Cada vez
que un vertice y se visita por vez primera, se etiqueta debidamente (segun un ndice
b (y)) y se a~nade al nal de la cola C . En cuanto todos los vertices adyacentes al
vertice activo x han sido etiquetados y ubicados en C como corresponde, se elimina x
de la cola C y se toma como nuevo vertice activo el primer elemento que tenga ahora
C . Y as, sucesivamente.
Este metodo resultara especialmente util en el Tema 4.
Ejemplo 2.2.4 Determinar el arbol T que devuelve la aplicacion de BFS al grafo de
la Figura 2.23.

Realizamos BFS segun la ordenacion natural de los vertices, obteniendo


Etiqueta b 1 2 3 4 5 6 7 8 9 10
Vertice x x x x x x x x x x
Procede de
1 1 1 1 2 2 3 8 8
Esta informacion tambien se puede dar de manera gra ca:
1

10

53


2.2. Arboles.
Aplicacion en algoritmos sobre conexion

x2
x7

x3
x6

x3 x
4

x4

x1
x8

x1

x5

Figura 2.25:

x2 x
6
x9

x10

x5

x8
x7
x9
x10

Grafo y arbol BFS asociado

54

2. Conexion

Cap
tulo 3
Caminos y recorridos

Cap
tulo 3
Caminos y recorridos

Algunos problemas que admiten ser modelados mediante grafos se traducen en determinar circuitos (o recorridos, en su caso) que pasen por todas las aristas (sin repetir
ninguna, por ser circuitos o recorridos), o analogamente ciclos (o caminos simples, en
su caso) que pasen por todos los vertices (sin repetir ninguno, por ser ciclos o caminos
simples). Estos problemas se conocen por el nombre de los primeros matematicos que
trabajaron en ellos, de manera que se habla del problema euleriano de un grafo, en el
primer caso, y problema hamiltoniano de un grafo, en el segundo. Este tema se dedica
al estudio de estos dos problemas. En ambos casos, una hipotesis fundamental es la
conexion del grafo, pues de otro modo no existe ningun camino que pase por todos
los vertices o aristas.

3.1 Grafos eulerianos


Un circuito euleriano consiste en un circuito que pasa por todas las aristas, por tanto
sin repetir ninguna. Un recorrido euleriano consiste en un recorrido que pasa por
todas las aristas, por tanto sin repetir ninguna.
Un grafo se dice euleriano cuando admite un circuito euleriano.
Historicamente, este problema se remonta al siglo XVIII, cuando Euler demostro
la imposibilidad de establecer un circuito (ni tampoco un recorrido) euleriano que
pasase por los 7 puentes de la ciudad de Konigsberg, en la que el ro Pregel divida a
la ciudad en dos orillas y dos islas, situacion que modela el grafo de la Figura 3.1.
Es facil concluir que si un grafo es euleriano, entonces todos sus vertices tienen
57

58

3. Caminos y recorridos

Orilla A

isla 1

Orilla B

Figura 3.1:

Orilla A

isla 2

isla 2

isla 1
Orilla B

Esquema de la ciudad de Konigsberg

valencia par (fue lo que esgrimio Euler, en 1736), puesto que cada vez que el circuito
llega a un vertice por una arista, sale del mismo por otra, luego las aristas se cuentan
por pares incidiendo en cada vertice.
La caracterizacion queda completa cuando se demuestra (gracias a Hierholzer, en
1873) que un grafo conexo G es euleriano precisamente cuando todos sus vertices
tienen valencia par. Para demostrar esto basta razonar del siguiente modo:
 Comiencese un camino por un vertice x cualquiera, que queda con valencia

impar. Dado que todos los vertices tienen valencia par (a excepcion del vertice
de partida del camino), cuando se llega a un vertice distinto de x, siempre existe
una arista por la que salir del mismo. Como el camino no se puede prolongar de
manera inde nida (el grafo es nito), llega un instante en que necesariamente
se ha de volver al vertice de partida. Se ha determinado, por tanto, un primer
circuito C , cuyas aristas se eliminan del grafo G.
 Si quedan aristas fuera del circuito anterior, tomese una de ellas cualquiera que
sea incidente con algun vertice y del circuito C (lo siempre es posible, porque
el grafo de partida es conexo). Procediendo igual que antes (lo importante aqu
es destacar que los vertices que quedan siguen teniendo valencia par, pues las
aristas que han desaparecido por estar en C inciden por pares en los vertices
de C ), se puede determinar otro circuito D con origen en y, el cual se puede
insertar sin problemas en el circuito C a la altura del vertice y, para as obtener
un circuito mayor englobando a los dos anteriores. Llamamos a este circuito
nuevamente como C .
 Reiterando tantas veces como sea necesario el paso anterior, tras un numero
nito de circuitos insertados en el circuito C original se obtiene un circuito que

59

3.1. Grafos eulerianos

contiene todas las aristas, luego euleriano. De manera que el grafo original es
euleriano.
El proceso anterior de ne, de facto, un algoritmo para encontrar un circuito euleriano: ir insertando circuitos a un circuito inicial, hasta dar con uno que sea euleriano.
Ejemplo 3.1.1 Determinar un circuito euleriano para el grafo de la Figura 3.2, por
medio del algoritmo descrito previamente.

x1

x2
x3

x4

x7

x5

x8

x6

x9

Figura 3.2:

Grafo euleriano

Se puede comenzar con el circuito C = (x ; x ; x ; x ; x ; x ; x ; x ; x ; x ; x ) para


despues insertar en C el circuito (x ; x ; x ; x ) para obtener el circuito euleriano
(x ; x ; x ; x ; x ; x ; x ; x ; x ; x ; x ; x ; x ; x ).
3

De manera que un grafo conexo es euleriano si y solo si todos sus vertices tienen
valencia par.
Una caracterizacion equivalente se debe a Toida (condicion necesaria, en 1973) y
McKee (condicion su ciente, en 1984), de manera que un grafo conexo es euleriano
si y solo si cada arista del grafo participa en un numero impar de ciclos.
En cuanto a los grafos que no son eulerianos pero s admiten un recorrido euleriano,
quedan automaticamente caracterizados en cuanto uno observa que un tal recorrido
se puede cerrar para formar un circuito, con solo a~nadir un vertice arti cial y sendas
aristas desde este vertice a los extremos del recorrido euleriano.

60

3. Caminos y recorridos

De este modo, un grafo conexo admite un recorrido euleriano si y solo si tiene exactamente dos vertices de valencia impar, los cuales a fortiori conforman los extremos
del recorrido euleriano.
La observacion anterior permite formalizar un procedimiento para construir un
tal recorrido euleriano: basta a~nadir un vertice arti cial y sendas aristas desde este a
los vertices de valencia impar, para despues encontrar un circuito euleriano del nuevo
grafo, y nalmente suprimir de este las aristas y el vertice a~nadidos.
Ejemplo 3.1.2 Determinar un recorrido euleriano para el grafo de la Figura 3.3,
por medio del procedimiento descrito previamente.

x1

x1

x2

x2

x3

x3

x4

x7

x4

x5

x8

x5

x7
x8
z

x6

x6

x9

Figura 3.3:

x9

Grafo euleriano

A~nadiendo un vertice arti cial z adyacente a los dos unicos vertices de valencia impar, x y x , se obtiene un grafo euleriano similar al de la Figura 3.2. Un circuito euleriano viene dado, por ejemplo, por (x ; x ; z; x ; x ; x ; x ; x ; x ; x ; x ; x ; x ; x ; x ).
5

As, cortando el circuito por el vertice z obtenemos un recorrido euleriano del


grafo de partida, (x ; x ; x ; x ; x ; x ; x ; x ; x ; x ; x ; x ; x ).
8

En particular, es factible determinar cuantas veces es necesario levantar el lapiz


del papel para dibujar con trazo continuo cualquier grafo: si el grafo consta de 2n
vertices de valencia impar, sera necesario levantar el lapiz del papel n 1 veces si
no importa donde se empieza y donde se acaba (siempre que se trate de vertices de
valencia impar en ambos casos), o bien n veces si se pretende empezar y terminar en
el mismo vertice, cualquiera que este sea.

61

3.1. Grafos eulerianos

Ejemplo 3.1.3 Determinar si los dibujos de la Figura 3.4 se pueden realizar de un


solo trazo, o en su defecto cuantas veces hay que levantar el lapiz del papel para poder
hacerlo, as como los vertices en los que empezar y terminar en cada caso.
x1

x1

x4
x6

x2
x8

x5

x3

x1

x1

x4

x2 x4

x2 x4

x2

x5

x3 x5

x3 x5

x3

x7

Figura 3.4:

Dibujar las guras levantando lo menos posible el lapiz del papel


El primero de ellos es euleriano, por ser conexo y tener todos los vertices valencia
par. Un circuito euleriano para el grafo (y por tanto una forma de trazarlo de una
vez) sera (x ; x ; x ; x ; x ; x ; x ; x ; x ; x ; x ; x ; x ).
4

El segundo grafo admite un recorrido euleriano, de extremos los dos unicos vertices
de valencia impar, x y x . Un tal recorrido viene dado por (x ; x ; x ; x ; x ; x ; x ).
3

El tercero no admite ni un circuito ni un recorrido euleriano, pues pese a ser conexo


posee 4 vertices de valencia impar, de manera que hay que levantar una vez el lapiz
del papel, para ir de uno de los vertices de valencia impar a otro de dichos vertices.
Por ejemplo, vale hacer el siguiente trazado: (x ; x ; x ; x ; x ; x ; x ; x ; salto; x ; x ).
5

El ultimo grafo es K , luego euleriano (conexo y 4-regular). Un circuito euleriano


es, por ejemplo, el dado por (x ; x ; x ; x ; x ; x ; x ; x ; x ; x ; x ).
5

Por otra parte, es inmediato extrapolar las ideas aqu tratadas al caso de seudografos y digrafos:
 Los lazos de un seudografo se pueden insertar en un recorrido o en un circuito

en cualquier instante que se pase por el vertice afectado, sin repercusion alguna
en el resto del camino. En cuanto a las aristas multiples, se tratan como aristas
normales de un grafo simple, de manera que las caracterizaciones y procedimientos descritos anteriormente son igualmente validos.

62

3. Caminos y recorridos

 En el caso de digrafos, solo hay que prestar un poco de atencion a la orientacion

de las aristas. En la argumentacion que se ha llevado a cabo previamente, la


clave estaba en que cuando se llegaba a un vertice por una arista se deba
poder salir del mismo por otra. En el lenguaje de los digrafos, esto quiere decir
que la valencia de entrada de cada vertice debe coincidir con la valencia de
salida del mismo. E sta es, de hecho, la traduccion de la caracterizacion del
problema euleriano al caso de los digrafos. Del mismo modo, para que exista
un recorrido euleriano en un digrafo conexo, todos los vertices deben tener la
misma valencia de entrada que la de salida, a excepcion de exactamente dos
de ellos, uno de los cuales, digamos x (a fortiori vertice inicial del recorrido)
veri ca que (x) = (x) + 1, mientras que el otro, llamemoslo y (a fortiori,
vertice nal del recorrido) veri ca que (y) = (y) 1. El motivo no es otro
sino que al a~nadir un vertice arti cial z y sendas aristas (y; z) y (z; x) el nuevo
digrafo obtenido se vuelve euleriano. La forma de adaptar los algoritmos para
determinar circuitos y recorridos eulerianos es ya transparente.
s

Ejemplo 3.1.4 Determinar un circuito y un recorrido euleriano para los grafos de


la Figura 3.5.

x1

x2

x4

x1
x5
x6

x4

x2

x5

x3

x3

Figura 3.5:

Digrafos euleriano y no euleriano

El primero de los digrafos es euleriano (conexo, con todos los vertices manteniendo
el mismo grado de entrada y de salida), y un circuito euleriano viene dado, por
ejemplo, por (x ; x ; x ; x ; x ; x ; x ; x ; x ; x ; x ; x ; x ).
4

El segundo no es euleriano, aunque admite un recorrido euleriano (es conexo, y


todos los vertices tienen el mismo grado de entrada que de salida, exceptuando el x
5

63

3.1. Grafos eulerianos

y el x , en los que (x ) = 1 = 2 1 = (x ) 1 y (x ) = 1 = 2 1 = (x ) 1).


Un recorrido euleriano es el dado por (x ; x ; x ; x ; x ; x ; x ; x ; x ; x ).
e

Por su relevancia, destacamos dos situaciones en las que aparece de manera natural
el problema euleriano.
Problema del cartero chino.

La version mas simple del problema es la siguiente: determinar la ruta que ha de


seguir un cartero desde la O cina de Correos para repartir el correo por el barrio que
tiene a su cargo, de manera que cubra el servicio de la manera mas e ciente posible,
para despues volver a su o cina de origen. Este problema se puede modelar segun
el (multi)grafo cuyas aristas son las calles y cuyos vertices son las intersecciones de
calles.
Es evidente que se trata de establecer un camino cerrado que repita el menor
numero de aristas, y ello dependera del numero de vertices de valencia impar que
presente el grafo.
Una version mas realista es la que asigna a cada calle su longitud, de manera que
se trata de encontrar el camino cerrado (con origen y nal en la O cina de Correos)
que tenga longitud mnima. Este problema compete a grafos ponderados, que seran
de nuestro interes en el siguiente tema.
Problema de las secuencias de De Bruijn.

Sea un alfabeto de b letras, que codi camos en la forma A = f0; 1; : : : ; b 1g.


Es evidente que hay tantas palabras distintas de longitud n como agrupaciones con
repeticion de las b letras tomadas de n en n, importando el orden (no es lo mismo la
palabra \casa" que \saca", igual que no es lo mismo la palabra \0120" que la \1200"
o la \0012"); es decir, que se pueden formar V R = b palabras de longitud n sobre
el alfabeto de b letras.
b;n

Una

es una lista de b letras del alfabeto,


(a ; a ; : : : ; a ), con la propiedad de que dispuestas circularmente generan en bloques consecutivos de n letras todas las b palabras de longitud n. La Figura 3.6
0

secuencia de De Bruijn

bn 1

64

3. Caminos y recorridos

representa una secuencia de De Bruijn para las palabras de longitud 3 sobre un alfabeto binario.
0
0

0
1

1
1

(0,0,0,1,1,1,0,1)
Figura 3.6:

Aqu estan todas las palabras de 3 bits

La existencia de una secuencia de De Bruijn se reduce al establecimiento de un


circuito euleriano en un digrafo D especial, que describimos a continuacion.
b;n

El digrafo D consta de b vertices, uno por cada palabra de longitud n 1 sobre


el alfabeto A de b letras; de manera que las aristas orientadas, que representamos por
n-uplas del tipo (f; a ; : : : ; a
; g ), van de v
ertices del tipo (f; a ; : : : ; a ) a vertices
del tipo (a ; : : : ; a ; g).
n 1

b;n

n 1

n 1

n 1

Resulta que las aristas de D son precisamente las b palabras de longitud n


sobre A, y como se demuestra que D es euleriano, si uno se queda con la primera
letra de cada arista de un circuito euleriano, por construccion obtiene una secuencia
de De Bruijn.
n

b;n

b;n

Ejemplo 3.1.5 Construir una sucesion de De Bruijn para las palabras de longitud 3
sobre un alfabeto binario.

Basta encontrar un circuito euleriano en el digrafo D de la Figura 3.7.


2;3

Un circuito euleriano puede ser (10; 00; 00; 01; 11; 11; 10; 01; 10), de manera que la
sucesion de De Bruijn asociada queda (1; 0; 0; 0; 1; 1; 1; 0). Es evidente que cualquier
traslacion circular de esta sucesion conforma otra sucesion de De Bruijn.

65

3.2. Grafos hamiltonianos

000
00

001

100
010
10

01
101
011

110
11
111

Figura 3.7:

Digrafo D de De Bruijn
2;3

Las secuencias binarias de De Bruijn se utilizan, por ejemplo, en las telecomunicaciones, para codi car y descodi car impulsos electricos en informacion binaria.
El proceso consiste en dise~nar un disco con 2 sectores circulares, que pueden ser de
dos tipos, conductores o no conductores. Al lado se colocan n dispositivos para leer
si pasa o no electricidad por los sectores circulares que les correspondan. El disco
mas peque~no que es capaz de generar todos los bytes de n bits corresponde con una
sucesion de De Bruijn D .
n

b;n

3.2 Grafos hamiltonianos


Un ciclo hamiltoniano consiste en un ciclo que pasa por todos los vertices. Un camino
hamiltoniano consiste en un camino simple que pasa por todos los vertices, por tanto
sin repetir ninguno.
Un grafo conexo se dice hamiltoniano cuando admite un ciclo hamiltoniano.
Historicamente, este problema se remonta al siglo XIX, cuando Kirkman propuso
en 1855 a la Real Sociedad de Inglaterra averiguar que grafos modelando poliedros

66

3. Caminos y recorridos

admitan un ciclo pasando por todos sus vertices. Dos a~nos mas tarde, de la mano de
Hamilton y su dodecaedro (ver Figura 3.8), el problema transcendio mas alla de lo
imaginable, lo que le propicio un hueco de honor en la historia de la teora de grafos.

Figura 3.8:

>Es hamiltoniano este grafo?

Una de las situaciones que admite ser modelada por grafos es la del salto de
caballo en un tablero de ajedrez rectangular. A.J.Schwenk resolvio esta cuestion en
1993, demostrando que existe un ciclo hamiltoniano si y solo si el tablero es cuadrado
de dimension n  n para n  6 par.
Lamentablemente, no existe una caracterizacion para grafos hamiltonianos en una
lnea analoga a la de grafos eulerianos. Vamos a limitarnos a dar algunos resultados
positivos y negativos acerca de si un grafo es o no hamiltoniano:
 Si un grafo G es hamiltoniano, entonces la eliminacion de cualesquiera k vertices

de G produce un numero maximo de k componentes conexas. En particular,


un grafo hamiltoniano carece de vertices de corte (lo cual es obvio, pues en otro
caso no existira un ciclo pasando por todos los vertices del grafo).
 Analogamente, si un grafo admite un camino hamiltoniano, entonces el numero
maximo de componentes conexas que produce la eventual eliminacion de k
vertices cualesquiera del grafo resulta ser k + 1.
 Un grafo hamiltoniano carece de vertices de valencia 1.
 En un grafo que admite un camino hamiltoniano puede haber a lo sumo 2
vertices de valencia 1.

3.2. Grafos hamiltonianos

67

 En un grafo que admite un camino hamiltoniano ningun vertice de corte puede

dar lugar a mas de dos componentes conexas.


 Sea un grafo de v  3 vertices. Si (x)  v2 para todo vertice x, entonces G es
hamiltoniano (este resultado se conoce como Teorema de Dirac). Consecuentemente, si (x)  v 2 1 para todo vertice x, entonces G admite un camino
hamiltoniano.
La repercusion de los grafos hamiltonianos en el ambiente de agentes comerciales
es maxima, en tanto en cuanto un agente esta interesado en visitar ciertos puntos volviendo al lugar de partida minimizando la distancia total recorrida. Es decir, se trata
de encontrar un ciclo hamiltoniano de longitud mnima. Si el problema de encontrar un ciclo hamiltoniano es duro, el de encontrar un ciclo hamiltoniano de longitud
mnima no va a ser menor. Se conocen algoritmos que dan ciclos hamiltonianos razonablemente peque~nos, pero sin tener seguridad acerca de si son o no mnimos (cosa
que en general no son).

68

3. Caminos y recorridos

Cap
tulo 4
Grafos ponderados

Cap
tulo 4
Grafos ponderados

En este tema vamos a trabajar distancias en grafos ponderados. Esencialmente,


seran dos los problemas a tratar: dado un vertice, encontrar caminos de longitud
mnima que lo conecten a los demas vertices (i.e. un arbol recubridor que marque las
distancias mas cortas desde el vertice dado a los restantes); el segundo, determinar
un arbol recubridor de peso mnimo (i.e. tal que la suma de los pesos de sus aristas
sea lo menor posible).
Aunque la primera impresion pueda ser que ambos problemas son uno mismo, un
analisis un poco mas pausado conduce a su distincion. Por ejemplo, considerese las
situacion siguiente: un ayuntamiento ha urbanizado una zona proxima a un recinto
deportivo (denotado como x en la Figura 4.1), y dado que los presupuestos son
muy limitados, en la primera parte del proyecto (el cual incluye expresamente las
carreteras a construir y por donde han de transcurrir, se~naladas en la Figura 4.1), solo
pretende construir las carreteras indispensables para poder conectar ciertos puntos
(correspondientes a los vertices del grafo adjunto).
6

En el concejo hay dos criterios:


 Construir las calzadas de manera que los puntos disten lo menos posible del

estadio.
 Construir el menor numero de kilometros de calzada.

Como se observa en la Figura 4.1, ambas cuestiones arrojan un resultado distinto.


La primera corresponde al primer problema que hemos planteado (encontrar un arbol
recubridor que marque las distancias mas cortas desde el vertice que corresponde al
71

72

4. Grafos ponderados

x2
4

x1

1
3

2
3

x5

x3

x6

4
4

x7

x4

Figura 4.1:

Proyecto de urbanizacion con las distancias marcadas

recinto deportivo hasta los restantes vertices), mientras que la segunda corresponde
al segundo problema (determinar un arbol recubridor de peso mnimo). Ni que decir
tiene que el ayuntamiento opto por la segunda opcion, convenciendo a sus conciudadanos de que de ese modo se consegua que el estadio estuviera mas proximo a
todos...

4.1 Caminos mas cortos desde un vertice


El algoritmo de Dijkstra, aplicado a un (di)grafo ponderado con pesos no negativos (no
funciona para pesos negativos, en cuyo caso hay que utilizar otro procedimiento que
aqu no describiremos), se fundamenta en algo evidente: si se pretende encontrar la
distancia mas corta desde un punto A a otros puntos, y en un momento determinado
se sabe la distancia mas corta desde A a un punto D, entonces se puede tratar de
mejorar las distancias parciales conocidas desde A a los vertices adyacentes a D
comparandolas con las distancias que se obtienen yendo desde A a D y desde D a
estos vertices, tal como ilustra la Figura 4.2.
La cristalizacion matematica de esta idea consiste en lo siguiente. Se de ne una
funcion l(x) que a cada vertice x le asocie la distancia parcial conocida desde el vertice
origen pre jado (llamemoslo A, por comodidad) hasta el propio vertice x. En cada
etapa, cuando se haya determinado la distancia exacta de A a un vertice D, el cual
ejerce las labores de nueva base o pivote, se actualizan los valores l(y) para vertices

73

4.1. Caminos mas cortos desde un vertice

Figura 4.2:

Se cotejan las distancias desde el vertice base D

adyacentes a D segun la formula l(y) = minfl(y); l(D) + peso(fD; yg)g; de manera


que si el camino desde A hasta D mas la arista que va de D a y resulta mas economico
(esto es, mas corto) que el que antes se conoca yendo desde A hasta y sin pasar por
D (distancia que marcaba el valor l(y )), se actualiza el valor de l(y ) seg
un el nuevo
camino. A la hora de poder reconstruir los caminos que dan las distancias mas cortas
desde A, es necesario asimismo guardar la arista fD; yg por la que se llega al vertice
y.
y

En de nitiva, el algoritmo de Dijkstra funciona as:


1. Se toma el vertice A desde el que se van a hallar las distancias mas cortas a los
restantes vertices.
2. Se inicializan los valores l(x) a in nito, para x 6= A, y l(A) = 0.
3. Se toma como primer vertice base (o pivote) a A, que sera asimismo el vertice
raz del arbol recubridor que dara las distancias mas cortas hasta A.
4. Ahora, utilizando A como vertice base, se actualizan los valores l(x) de aquellos
vertices adyacentes a A segun la formula l(x) = minfl(x); l(A)+ peso(fA; xg)g.
5. Se toma como nuevo vertice base uno de entre aquellos cuyas distancias a A sea
mnima, y se almacena la arista por la que se ha llegado a dicho vertice.
6. Sucesivamente, utilizando el vertice base D correspondiente, se actualizan los
valores l(x) de aquellos vertices adyacentes a D segun la formula l(x) =
minfl(x); l(D) + peso(fD; xg)g; de manera que se puede elegir al nuevo vertice
base y la arista mediante la cual se ha llegado al mismo.

74

4. Grafos ponderados

7. El proceso termina cuando ya se ha calculado las distancias mas cortas a todos


los vertices, requiriendo tantas etapas como vertices tiene el grafo menos 1.
Una manera e caz de representar todo el proceso se consigue mediante una tabla
de tantas columnas como vertices mas dos: una columna por cada vertice, otra para
se~nalar el vertice base que corresponde a la etapa en curso, y una ultima para almacenar la arista mediante la cual se llega a dicho vertice base. Cada etapa se traduce
en una la.
Retomemos el grafo ponderado del ejemplo de la introduccion (ver Figura 4.1),
y calculemos las distancias mas cortas desde x a los restantes vertices.
6

En cada la, se se~nala el nuevo vertice base D obtenido, que corresponde a aquella
columna con entrada mas peque~na, as como la arista fB; Dg mediante la cual se llega
a dicho vertice (que tiene por extremos el propio vertice D y el vertice base B que se
utilizo primigeniamente para obtener el valor actual de la tabla en la columna de D).
x1

x2

x3

x4

x5

x6

x7

1 1 1 1 1 0 1

1 5 2 4 3
5 2 4 3
5
4 3
5
4
5

base

arista

x6

6 x fx ; x g
6 x fx ; x g
6 x fx ; x g
6 x fx ; x g
6 x fx ; x g
6 x fx ; x g
De manera que un arbol (no unico, como se precisara despues) dando las distancias mas cortas desde x a los restantes vertices del grafo viene dado por las aristas
almacenadas en la tabla anterior (ver Figura 4.3 adjunta).
1

Es importante recalcar ciertos aspectos sobre el arbol de distancias mas cortas


desde A a los restantes vertices de un grafo:
 No tiene por que marcar las distancias mas cortas entre cualesquiera dos vertices

del grafo. De hecho, con normalidad, no lo hara as. Solo se puede garantizar que
re eja la distancia mas corta entre dos vertices si estos vertices estan situados
sobre una misma rama del arbol. En el grafo del ejemplo anterior, la distancia

75

4.1. Caminos mas cortos desde un vertice

x2
x1

2
3

x5

x3

x6

x7
x4

Figura 4.3:

A rbol de distancias mas cortas desde x

de x a x es 3 y no 4, como aparenta re ejar el arbol salida del algoritmo de


Dijkstra.
 Tampoco tiene por que consistir en un arbol de peso mnimo (de hecho, posteriormente se determinara que un arbol de peso mnimo asociado al grafo ponderado del ejemplo anterior tiene de peso 18, mientras que el arbol de Dijkstra
calculado previamente pesa 21).
 No tiene por que ser unico: para comprobar si hay mas de un camino que
marque la distancia mas corta desde A a un determinado vertice C , basta
comprobar si cuando se procedio con el algoritmo se determino que se poda
llegar a C con peso mnimo por dos trayectorias distintas (para lo cual, la
formula l(C ) = minfl(C ); l(D) + peso(fD; C g)g tuvo que consistir en calcular
el mnimo de dos cantidades iguales, pudiendose llegar a C de manera optima
segun el camino que marca l(C ) o segun el que marca l(D) y la arista fD; C g).
E ste es el caso del ejemplo anterior, en el que la distancia mas corta desde x a
x es 5, y hay tres caminos distintos marcando dicha distancia (el que recoge el
arbol que da el algoritmo de Dijkstra, (x ; x ), as como los caminos (x ; x ; x )
y (x ; x ; x )).
1

76

4. Grafos ponderados


4.2 Arboles
recubridores de peso mnimo
Hay tres algoritmos distintos de caracter voraz que devuelven un arbol (o bosque,
segun sea o no conexo el grafo de entrada) recubridor de peso mnimo, en tanto en
cuanto todo otro arbol (bosque) recubridor pesa al menos igual que este.
El que con normalidad utilizaremos nosotros es el algoritmo de Kruskal, el
cual, ordenadas las aristas de menor a mayor peso, consiste en ir cogiendo aquellas
aristas que no den lugar a ciclos, hasta completar un arbol (bosque) recubridor (i.e.
hasta que se han elegido v k aristas, donde v es el numero de vertices del grafo y k
el numero de componentes conexas).
Otra alternativa, que no es mas que el algoritmo de Kruskal visto del reves, consiste
en ordenar las aristas de mayor a menor peso, para sucesivamente ir eliminando
aquellas que esten en algun ciclo (se eliminaran, por tanto, a (v k) aristas, donde
a es el n
umero inicial de aristas, v el numero de vertices y k el numero de componentes
conexas).
La tercera posibilidad es utilizar el algoritmo de Prim, el cual, ordenadas las
aristas de menor a mayor peso, sucesivamente a~nade al arbol ya construido (comenzando por el arbol que consta solamente de la arista de menor peso) aquella de entre
las aristas que quedan que pese menos y no de lugar a un ciclo.
Notese que con una misma ordenacion, los tres algoritmos devuelven el mismo
arbol recubridor, si bien es cierto que modi cando la ordenacion en general puede
resultar como salida otro arbol recubridor distinto igualmente de peso mnimo.
Apliquemos estos algoritmos al grafo ponderado de la Figura 4.1.
Kruskal

Ordenamos las aristas de menor a mayor peso, segun fx ; x g, fx ; x g, fx ; x g,


fx ; x g, fx ; x g, fx ; x g, fx ; x g, fx ; x g, fx ; x g, fx ; x g, fx ; x g,
fx ; x g; de pesos respectivos 1, 2, 3, 3, 3, 4, 4, 4, 5, 5, 6, 7.
Siguiendo el proceso de Kruskal, elegimos sucesivamente fx ; x g, fx ; x g,
fx ; x g, fx ; x g, (no se puede elegir ahora fx ; x g pues da lugar a un ciclo; ni tampoco fx ; x g, por el mismo motivo), fx ; x g, (no se puede elegir
ahora fx ; x g pues da lugar a un ciclo; ni tampoco fx ; x g, por el mismo mo1

77


4.2. Arboles
recubridores de peso mnimo

tivo), fx ; x g (y ya se ha terminado, por haber elegido ya 7 1 = 6 aristas:


no se puede elegir ahora fx ; x g pues da lugar a un ciclo; ni tampoco fx ; x g,
por el mismo motivo).
Kruskal invertido Ordenamos las aristas de mayor a menor peso, segun fx ; x g, fx ; x g, fx ; x g,
fx ; x g, fx ; x g, fx ; x g, fx ; x g, fx ; x g, fx ; x g, fx ; x g, fx ; x g,
fx ; x g; de pesos respectivos 7, 6, 5, 5, 4, 4, 4, 3, 3, 3, 2, 1.
Siguiendo el proceso de Kruskal invertido, eliminamos sucesivamente fx ; x g,
fx ; x g, (no se puede eliminar ahora fx ; x g pues desconectara a x ), fx ; x g,
fx ; x g (no se puede eliminar ahora fx ; x g pues quedaran desconectados x
y x del resto), fx ; x g, fx ; x g y se ha terminado, puesto que ya se han
eliminado 12 (7 1) = 6 aristas y las que quedan no forman ciclos.
Prim Ordenamos las aristas de menor a mayor peso, segun fx ; x g, fx ; x g, fx ; x g,
fx ; x g, fx ; x g, fx ; x g, fx ; x g, fx ; x g, fx ; x g, fx ; x g, fx ; x g,
fx ; x g; de pesos respectivos 1, 2, 3, 3, 3, 4, 4, 4, 5, 5, 6, 7.
Siguiendo el proceso de Prim, elegimos sucesivamente fx ; x g, fx ; x g,
fx ; x g, fx ; x g, (no se puede elegir ahora fx ; x g pues da lugar a un ciclo; ni tampoco fx ; x g, por el mismo motivo), fx ; x g, (no se puede elegir
ahora fx ; x g pues da lugar a un ciclo; ni tampoco fx ; x g, por el mismo motivo), fx ; x g (y ya se ha terminado, por haber elegido ya 7 1 = 6 aristas:
no se puede elegir ahora fx ; x g pues da lugar a un ciclo; ni tampoco fx ; x g,
por el mismo motivo).
4

3
1
2

x3

x6
4

x1

x2

x7

x4
Salida para Kruskal

Figura 4.4:

x5

A rbol de peso mnimo para el grafo de la Figura 4.1

78

4. Grafos ponderados

Obtenemos as el arbol recubridor de la Figura 4.4, que tiene peso mnimo (18)
de entre todos los arboles recubridores del grafo. Desde luego, no es unico, puesto
que se puede sustituir, por ejemplo, la arista fx ; x g por la arista fx ; x g (a fortiori
ambas del mismo peso, 3).
1

Cap
tulo 5
Coloraci
on

Cap
tulo 5
Coloraci
on

5.1 Introduccion
En ocasiones, un problema se puede modelar distribuyendo los vertices o las aristas
de un cierto grafo en paquetes distintos, de manera que vertices (o aristas, en su caso)
de un mismo paquete no sean adyacentes (respectivamente, incidentes). Si se da un
mismo color a los elementos de un mismo paquete, y se emplean colores distintos para
cada paquete, se obtiene lo que se da en llamar una vertice (arista) coloracion. La
idea es encontrar el menor numero de paquetes (esto es, colores), para distribuir los
elementos (vertices o aristas, segun sea el caso).
Un planteamiento general que se ajusta a esta circunstancia es el llamado problema
de incompatibilidades, que consta de ciertos elementos (modelados por los vertices
de un grafo) y relaciones de incompatibilidad entre ellos (las cuales determinan las
aristas del grafo). El grafo resultante se denomina grafo de incompatibilidades. El
distribuir los elementos en el menor numero de agrupaciones posible de forma que
elementos incompatibles no compartan una misma agrupacion, se traduce al instante
en conseguir una vertice coloracion (i.e. una asignacion de colores a los vertices de
manera que vertices adyacentes tengan colores distintos).
Como ejemplo, se puede considerar el problema de dise~nar un calendario a doble
vuelta para una competicion deportiva en forma de liguilla de n equipos, en la que
todos se han de enfrentar con todos dos veces. Este problema admite una primera
simpli cacion, en la que basta dise~nar un calendario a una sola vuelta, para reproducirlo en la segunda vuelta cambiando los papeles de los equipos que juegan como
locales y como visitantes.
81

82

5. Coloracion

Si se modela el problema como el grafo G cuyos vertices son los n equipos y las
aristas entre ellos representan los partidos, evidentemente se tiene que G = K , grafo
completo de n vertices. Organizar el calendario se traduce en repartir los partidos
(aristas) en jornadas (colores), de manera que un mismo equipo (vertice) no juegue
mas de una vez en cada jornada (no aparezca como extremo en mas de una arista).
En de nitiva, se trata de colorear las aristas de K utilizando el menor numero de
colores, de manera que aristas con el mismo color representan partidos que se pueden
jugar en la misma jornada.
n

Este problema admite ser modelado de otra forma: considerese el grafo H cuyos
vertices son los partidos a jugar, y cuyas aristas relacionan partidos incompatibles, en
tanto en cuanto implican a un mismo equipo. Resolver el problema consiste ahora en
encontrar una vertice coloracion de H . Al termino del presente tema quedara patente
que, en realidad, se tiene que H = L(G), grafo lnea de G, de manera que encontrar
una arista coloracion de G consiste en encontrar una vertice coloracion de H .

5.2 Vertice coloraciones


Se denomina vertice coloracion de un grafo G(V; A) a una asignacion c : V ! IN
que asocie a cada vertice x un color c 2 IN, de manera que a vertices adyacentes
correspodan colores distintos: si fx ; x g 2 A entonces c 6= c . Si la coloracion consta
de una paleta de k colores, entonces se habla simplemente de k-coloracion.
i

Dado un grafo G(V; A), siempre existe un valor umbral k para el cual G admite
una vertice coloracion con una paleta de k colores, pero no una (k 1)-coloracion.
Es decir, k es el menor numero de colores con los que se puede obtener una vertice
coloracion de G. Este valor se conoce como numero cromatico de G, y se denota en
la forma (G) = k.
Determinar cual es el numero cromatico de un grafo es en general un problema
de una envergadura considerable: no hay un procedimiento que de una respuesta en
tiempo razonable, para un grafo generico dado.
Ni que decir tiene que el numero cromatico de un grafo no conexo consiste en el
mayor de entre los numeros cromaticos de sus componentes conexas, razon por la cual
en adelante nos centraremos en el estudio de coloraciones sobre grafos conexos.

83

5.2. Vertice coloraciones

Con normalidad, se tiende a acotar el numero cromatico tanto inferior como superiormente, s  (G)  t, de manera que progresivamente se a nan estas cotas
hasta llevarlas a coincidir, s = (G) = t, momento en el cual queda completamente
determinado (G).
Sin mucho esfuerzo, es facil asegurar de entrada que 1  (G)  v para grafos G
de v vertices. Mas aun, (G) = 1 solo en el caso de grafos G vacos, mientras que
(G) = v en un grafo de v v
ertices solo si G = K .
v

El teorema de Brooks per la un poco mas la cota superior para (G) en grafos
conexos, en funcion de la valencia maxima  = max 2 (x) en G:
x V

1. (K ) = n =  + 1 y (C
2. En otro caso, (G)  .
n

2n+1

) = 3 =  + 1.

No obstante, esta cota puede ser bastante grosera (piensese en un grafo estrella
S de m puntas, con m = 1000 por ejemplo: se tiene que (S ) = 2, mientras que
 = m = 1000).
m

Para obtener cotas inferiores, es frecuente buscar subgrafos H  G de los cuales


se conozca (H ), toda vez que (H )  (G) para cualquier H  G.
Para obtener cotas superiores, se suele realizar coloraciones concretas, de manera
que (G) siempre es menor o igual que el numero de colores utilizados.
A la hora de realizar coloraciones, es util el llamado algoritmo voraz, el cual,
progresando sobre una ordenacion pre jada de los vertices, procede a colorearlos
asignando a cada vertice el primer color libre (i.e. el primer color no utilizado en los
vertices a el adyacentes previamente coloreados).
Aunque este algoritmo no tiene por que devolver el numero cromatico de G, con
normalidad devuelve un numero razonablemente peque~no de colores. No obstante,
siempre se puede aplicar varias veces el algoritmo a ordenaciones distintas de los
vertices, para ver si eventualmente el numero de colores desciende. Una aplicacion
exhaustiva del algoritmo a las v! ordenaciones posibles en un grafo de v vertices resolvera efectivamente el problema; la \unica" di cultad estriba en que v! aplicaciones

84

5. Coloracion

del algoritmo resultan ya impracticables cuando v no es siquiera demasiado grande


(notese que 8! = 40320).
Otros algoritmos, como el de Brelaz (que progresa sobre una ordenacion de los
vertices segun su valencia, de mayor a menor), suelen dar un resultado mas no que
el algoritmo voraz; eso s, a consta de una menor transparencia en su funcionamiento,
motivo por el cual no seran contemplados aqu.
Ejemplo 5.2.1 Un museo necesita comprar camaras para vigilar 24 cuadros de una
exposicion, los cuales etiquetamos desde 1 hasta 24. Aunque algunas camaras permiten vigilar mas de un cuadro simultaneamente, no pueden ser vigilados por una
misma camara aquellos cuadros cuyas etiquetas sean numeros cuyo maximo comun
divisor es distinto de 1 (esto es, no primos entre s). Determinar razonadamente
cual es el menor numero de camaras que bastaran para completar la vigilancia, y que
cuadros habra de vigilar cada una de estas camaras. >Son unicas las asignaciones
de vigilancia para dichas camaras?
Soluci
on.

Sea el grafo G = (V; A) de 24 vertices, en el que los vertices representan los cuadros
y las aristas unen pares de vertices que corresponden con cuadros que no pueden ser
vigilados por una misma camara. As, dos vertices x e y tienen una arista en comun
si y solo si mcd(x; y) > 1.
Si hacemos corresponder a cada camara un color, y coloreamos los vertices segun
el color de la camara que vigila el cuadro correspondiente, resulta que encontrar el
menor numero de camaras que bastaran para completar la vigilancia corresponde con
el problema de encontrar una vertice coloracion que utilice el menor numero posible
de colores; de modo que se necesitaran tantas camaras como numero cromatico tenga
el grafo, y vertices con el mismo color corresponderan a cuadros que seran vigilados
por la misma camara.
Si aplicamos el algoritmo voraz al grafo, asignando el primer color libre, obtenemos

85

5.2. Vertice coloraciones

la siguiente tabla:
V
C
V
C

1
1
13
1

2
1
14
7

3
1
15
4

4
2
16
8

5
1
17
1

6
3
18
9

7
1
19
1

8
4
20
10

9
2
21
5

10
5
22
11

11
1
23
1

12
6
24
12

De modo que 12 colores son su cientes, (G)  12. >Seran necesarios?


Tal como se ha visto a la hora de aplicar el algoritmo voraz, todos los cuadros
que se corresponden con vertices pares presentan incompatibilidades 2 a 2 para ser
vigilados por una misma camara. Es decir, que el subgrafo formado por estos 12
vertices (todos los pares) conforma un grafo completo K . Dado que el numero
cromatico de K es 12, el numero cromatico del grado original ha de ser al menos
12, (G)  12.
12

12

Concluimos, pues, que 12  (G)  12, de donde (G) = 12 y 12 es el menor


numero de camaras que bastan para vigilar los cuadros.
En la tabla anterior tenemos una posible asignacion de vigilancia de cada una de
las 12 camaras, por colores. Evidentemente, tal asignacion no es unica, porque hay
muchos cuadros que no presentan incompatibilidad con ningun otro: aquellos que se
corresponden con vertices aislados en el grafo, y que resultan ser los numeros primos y
la unidad, 1; 2; 3; 5; 7; 11; 13; 17; 19; 23. Cualquiera de estos cuadros puede ser vigilado
por cualquiera de las camaras.
Es relativamente sencillo distinguir cuando es (G) = 2 o por el contrario se tiene
que (G)  3. Esto se debe a que los grafos con numero cromatico 2 son justamente
los grafos bipartitos, los cuales vienen caracterizados a su vez por carecer de ciclos de
longitud impar. De hecho, dado un grafo no vaco G, son equivalentes:
1. G es bipartito.
2. (G) = 2.
3. G carece de ciclos de longitud impar.

86

5. Coloracion

En efecto, si G(X [ Y; A) es bipartito se puede colorear sus vertices asignando un


mismo color a los vertices de X y un segundo color comun a los vertices de Y , lo cual
no crea con icto, puesto que todas las aristas tienen un extremo en X y el otro en Y .
De manera que (G)  2. Pero (G)  2, por ser G no vaco. De donde (G) = 2 y
1)2
Por otra parte, si (G) = 2, entonces G no puede contener ningun ciclo de orden
impar, toda vez que el numero cromatico de estos ciclos es 3. Luego 2 ) 3
Por ultimo, si G carece de ciclos de longitud impar, podemos probar que cada
componente conexa suya consiste en un grafo bipartito, luego por a~nadidura el propio
G ser
a asimismo bipartito.
Sea, pues, H una componente conexa de G, que por tanto carece tambien de ciclos
de longitud impar. Organcese H por niveles, a partir de un vertice raz x cualquiera
pre jado en H . La propiedad fundamental que caracteriza a esta disposicion de los
vertices por niveles es que vertices en niveles de la misma paridad nunca pueden ser
adyacentes: en efecto, la suma de las longitudes de los caminos desde x a vertices en
niveles de la misma paridad es siempre par, de donde el a~nadir una arista entre estos
vertices generara un ciclo de valencia impar en H , y H carece de ellos. Por tanto,
el subgrafo H es bipartito, con solo organizar vertices situados en niveles pares en
un lado, y vertices situados en niveles impares en otro. De manera que 3 ) 1 y la
equivalencia esta servida.
0

Por ultimo, se~nalemos que las vertice coloraciones de G estan ntimamente ligadas a los conjuntos independientes de vertices en G (que conforman subconjuntos
de vertices de G no adyacentes entre s), y por ende a los subgrafos completos en
 (todo conjunto independiente de vertices en G determina un subgrafo completo
G
en G ). El motivo no es otro sino que vertices con un mismo color conforman per
se conjuntos independientes, por de nicion de vertice coloracion. Esta observacion
puede, eventualmente, permitir hallar conjuntos independientes de vertices o incluso
subgrafos completos por medio de vertice coloraciones apropiadas de un grafo.
Ejemplo 5.2.2 Se considera el grafo G de nido por la siguiente tabla, donde los
vertices representan ciudades y las aristas representan carreteras existentes entre las

87

5.2. Vertice coloraciones

poblaciones.
A

Una empresa de suministros quiere contratar transportistas para cubrir el servicio


en estas ciudades, de modo que un mismo transportista solo abastece un conjunto
de poblaciones mutuamente adyacentes entre s. Determinar el numero mnimo de
transportistas necesarios y las poblaciones a las que abastece cada uno de ellos.

Soluci
on.

Dado que un mismo transportista puede abastecer aquellas poblaciones que sean
mutuamente adyacentes entre s, el mayor numero de poblaciones a abastecer por
un mismo individuo vendra dado por el ndice del mayor subgrafo completo que se
encuentre en el grafo G. Si localizamos el menor numero de subgrafos completos que
cubran todo G habremos hallado el menor numero de transportistas necesarios.
Toda vez que G tiene 9 vertices y no tiene como subgrafo ningun K , seran
necesarios al menos 3 transportistas. Pero, de hecho, 3 son su cientes: por ejemplo,
los vertices fA; B; F; I g dan lugar a un K , fE; G; H g a un K y fC; Dg a un K .
La solucion no es unica, puesto que podemos considerar tres K tomando fC; D; I g.
Desde luego, no es lcito considerar el K inducido por fB; F; G; I g, puesto que en ese
caso seran 4 los transportistas necesarios, surtiendo a las agrupaciones fAg, fC; Dg
y fE; H g.
5

Otra forma de plantear el problema es calculando el numero cromatico y una


vertice coloracion apropiada del grafo de incompatibilidades asociado al problema.
En este caso, se trata de que dos poblaciones son incompatibles si no pueden ser
abastecidas por un mismo transportista, i.e., si no son adyacentes. Luego el grafo de
incompatibilidades coincide con el complementario de G, G .
De un lado, (G )  3, puesto que, por ejemplo, (A; C; E; A) conforma un ciclo de

88

5. Coloracion

orden 3 en G . Pero (G )  3 (luego exactamente 3), como se desprende de la vertice


coloracion a que da lugar el algoritmo voraz aplicado segun el orden alfabetico de los
vertices de G :
V

A B

G H

1 1 2 2 3 1 3 3 1
As, obtenemos la primera de las soluciones anteriormente propuestas: un primer
transportista abastecera las poblaciones fA; B; F; I g, otro fE; G; H g y un tercero las
poblaciones fC; Dg.
c

A continuacion vamos a estudiar el problema de las coloraciones por aristas.

5.3 Arista coloraciones


Se denomina arista coloracion de un grafo G(V; A) a una asignacion c : V ! IN
que asocie a cada arista a un color c 2 IN, de manera que a aristas incidentes
correspodan colores distintos: si a = fx ; x g; a = fx ; x g 2 A entonces c 6= c .
Si la coloracion consta de una paleta de k colores, entonces se habla simplemente de
k -arista coloraci
on. Hemos de hacer notar que el vocablo \coloracion a secas suele
asociarse a vertices coloraciones, de manera que debe explicitarse que se trata de una
arista coloracion, si es que ese es el caso.
i

i1

i2

j1

j2

En en fondo, este problema no aporta nada nuevo, en tanto en cuanto colorear


las aristas de un grafo G se traduce en colorear los vertices del grafo lnea de G,
L(G): basta tener en cuenta que los vertices de L(G) son las aristas de G, siendo dos
vertices de L(G) adyacentes precisamente cuando las aristas correspondientes de G
son incidentes.
Ejemplo 5.3.1 Hallar una arista coloracion optima de K4 por medio de una vertice
coloracion de L(K4 )

Segun se aprecia en la Figura 5.1 adjunta, 3  (L(K )) por poseer dicho grafo
ciclos de longitud impar (por ejemplo, el ciclo de longitud tres que determinan los
4

89

5.3. Arista coloraciones

K4
a1

a5

a4

a1

L(K4)

a2
a6

a3

a6

a2

a5

a3
a4

Figura 5.1: K4

y su grafo lnea L(K )


4

vertices a , a y a ). Por otra parte, la valencia maxima de L(K ) es 4, de donde a


su vez (L(K ))  4.
1

Si se aplica el algoritmo voraz a la ordenacion natural de los vertices, segun sus


subndices, se tiene que
V

a1

a2

a3

a4

a5

a6

1 2 1 2 3 3
De manera que 3  (L(K ))  3, por lo que  (K ) ha de ser igualmente 3, y
una arista coloracion de 3 colores se obtiene coloreando del mismo modo las aristas
correspondientes a los vertices de L(K ).
c

K4
a1

a5

a4

a3

a2
a6

L(K4)

a1

a6

a2

a5

a3
a4

Figura 5.2:

Coloraciones asociadas de K y L(K )


4

Dado un grafo G(V; A), siempre existe un valor umbral k para el cual G admite

90

5. Coloracion

una arista coloracion con una paleta de k colores, pero no una (k 1)-arista coloracion.
Es decir, k es el menor numero de colores con los que se puede obtener una arista
coloracion de G. Este valor se conoce como ndice cromatico de G, y se denota en la
forma  (G) = k.
1

Determinar cual es el ndice cromatico de un grafo es, en general, un problema


de una envergadura considerable: no hay un procedimiento que de una respuesta en
tiempo razonable, para un grafo generico dado.
A tenor de esto, puede resultar paradojico el resultado que postula el Teorema
de Vizing, segun el cual elndice cromatico de cualquier grafo oscila entre la valencia
maxima y la valencia maxima mas 1:    (G)   + 1, para  = max 2 (x).
1

x V

Para tratar de dirimir si  (G) es en efecto , se puede proceder realizando arista


coloraciones concretas, siguiendo un mecanismo voraz analogo al algoritmo descrito
para vertice coloraciones: progresando sobre una ordenacion pre jada de las aristas,
se colorea asignando a cada arista el primer color libre (i.e. el primer color no utilizado
por las aristas previamente coloreadas en ella incidentes).
1

Ejemplo 5.3.2 Determinar

1

(K ).
5

La valencia maxima en K es 4, de manera que 4   (K )  5.


1

K5

x2

x1

x3
x5

{x1,x2},{x1,x3},{x1,x4},{x1,x5},{x2,x3},
{x2,x4},{x2,x5},{x3,x4},{x3,x5},{x4,x5}

x4

Figura 5.3:

Grafo K y orden de sus aristas


5

Si aplicamos el algoritmo voraz a la ordenacion natural de las aristas (de manera


que fi; j g es anterior a fn; mg si i < n o i = n y j < m), tenemos
fx ; x g fx ; x g fx ; x g fx ; x g fx ; x g fx ; x g fx ; x g fx ; x g fx ; x g fx ; x g
1
2
3
4
3
2
5
1
6
7
1

91

5.3. Arista coloraciones

de manera que resultan <7 colores!, cuando sabemos que a lo sumo 5 son necesarios.
Sin embargo, con esta otra ordenacion, resulta una arista coloracion de 5 colores
fx ; x g fx ; x g fx ; x g fx ; x g fx ; x g fx ; x g fx ; x g fx ; x g fx ; x g fx ; x g
1
1
2
2
3
3
4
4
5
5
Es facil demostrar que esta arista coloracion es optima: a lo mas, dos aristas de K
comparten un mismo color, puesto que cualesquiera tres de ellas comparten algun
vertice (de no ser as, K tendra al menos 6 vertices, cuando en realidad posee 5);
de manera que  (K ) nunca puede ser 4, toda vez que con 4 colores se podra dar
color a un maximo de 8 aristas (2 por cada color), cuando en realidad K posee 10
aristas.
1

De manera que  (K ) = 5.
1

En el caso de los grafos bipartitos,


con la valencia maxima .

s se puede precisar que  (G) coincide


1

Esto se puede demostrar siguiendo un proceso inductivo en el numero de aristas.


Para el grafo bipartito que consta de una sola arista no hay nada que demostrar,
toda vez que dicha arista se puede colorear con un color, y uno es la valencia maxima
del grafo (de hecho, se trata de un grafo 1-regular).
Supuesto que se ha demostrado que los grafos bipartitos de hasta m aristas veri can la condicion de que su ndice cromatico coincide con su valencia maxima,
demostremos que esta misma propiedad se satisface para grafos bipartitos de m + 1
aristas.
Sea, pues, G(V; A) un grafo bipartito con m + 1 aristas, de valencia maxima .
Consideremos cualquier arista suya, e = fx; yg 2 A. Sea G0(V; A fx; yg) el grafo
que se obtiene al eliminar en G la arista e.
El grafo G0, por construccion, es un grafo bipartito de m aristas, con valencia
maxima a lo sumo  (por ser esta la valencia maxima de G), de manera que por
hipotesis de induccion  (G0)  .
1

92

5. Coloracion

Sea c : A0 ! IN una arista coloracion de G0 que utilice  colores (la cual existe,
por ser  (G0)  ). Como x e y tienen ambos valencia a lo sumo  1 en G0 (en
G0 no est
a la arista e = fx; yg y la valencia maxima en G es ), resulta que al menos
un color de la paleta de  colores de la coloracion c esta libre en el vertice x (en el
sentido de que ninguna arista incidente en x utiliza ese color), y asimismo algun color
de esa paleta esta igualmente libre en el vertice y. Ahora se presentan dos casos.
1

Si puede tomarse un mismo color libre en x y en y, automaticamente se puede


colorear la arista e = fx; yg en G con dicho color libre comun.
Lamentablemente, puede darse el caso de que ninguno de los colores libres en x
segun la coloracion c de G0 coincida con alguno de los colores libres en y segun dicha
coloracion.
No obstante, esta situacion puede reconducirse a la anterior, intercambiando adecuadamente los colores de ciertas aristas, tal como describimos a continuacion.
Sea c un color libre en x, y sea c un color libre en y. Como quiera que no
se ha podido tomar un color libre comun en ambos vertices x e y, se concluye que
necesariamente ha de incidir en x una arista fx; y g con color c (como en y el color
c estaba libre, es claro que y 6= y ).
1

Ahora puede suceder dos cosas: que en y este libre el color c , o que no. Supongamos por un momento que el color c no esta libre en y , de manera que en y incide
una arista fx ; y g con color c (notese que x 6= x, puesto que en x el color c esta
libre).
1

Nuevamente, puede darse una de entre dos situaciones: en x esta libre el color
c , o bien no lo est
a. Supongamos que en x incide una arista fx ; y g con color c ,
en cuyo caso y 6= y 6= y (puesto que y tiene libre el color c y la arista con color c
que incide en y proviene de x 6= x ).
1

Reiterando este proceder, vamos determinando un camino alternado de aristas, en


tanto en cuanto se alternan los colores c y c . Este proceso no puede alargarse inde nidamente, puesto que el grafo es nito. De manera que en un instante determinado
se llega a un vertice z que tiene libre uno de entre los colores c y c (precisamente, el
que di ere del color que tiene la arista del camino alternado por la que se ha llegado
a ese vertice nal del camino: si z es de la forma x entonces tendra libre el color c ,
1

93

5.3. Arista coloraciones

mientras que si z es de la forma y tendra libre el color c ). En particular, aqu queda


contemplada la posibilidad de que el vertice z fuera y o x o y ; : : :
j

En esta situacion, basta intercambiar los colores de las aristas de este camino
alternado, de manera que en x ahora el color libre es c (el mismo que en y), en lugar
de c . Este intercambio de colores no produce colision en ningun vertice interior del
camino alternado, toda vez que se esta intercambiando en todo instante los colores de
dos aristas incidentes en cada uno de estos vertices. El unico problema podra darse
en los vertices extremos del camino alternado, x y z. Pero tal problema no existe,
porque ambos x y z tienen, por construccion, libres el color adecuado.
2

Incluimos en la Figura 5.4 un esquema del proceso.


x

x1

y1

x1

y1

x2

y2

x2

y2

Figura 5.4:

Recoloracion del camino alternado

94

5. Coloracion

Cap
tulo 6
Emparejamientos

Cap
tulo 6
Emparejamientos

En este tema se va a tratar el problema de emparejar vertices de un grafo, de manera


que se obtengan el mayor numero de parejas posibles.
Historicamente, son dos los problemas clasicos que ilustran esta situacion: asociar
personas con tareas a realizar, y programar matrimonios entre un conjunto de hombres y mujeres. La cuestion se complica si se introduce una nueva variable, peso de
las aristas, que re eje de algun modo el grado de a nidad de los vertices a emparejar.
As, la version mas completa del problema implica grafos ponderados no bipartitos,
en los que hay que tratar de emparejar el mayor numero posible de vertices de forma
que la suma total de los pesos de las aristas utilizadas sea mnima (respectivamente,
maxima). Nosotros trabajaremos aqu la version mas simple del problema, que compete a los grafos bipartitos sin ponderar.
Un emparejamiento M en un grafo bipartito G = (X [ Y; A) consiste en un
subconjunto M de aristas no incidentes de A. Los vertices de una arista de M se
dicen emparejados.
M1

Por ejemplo, sendos emparejamientos del grafo de la Figura 6.1 vienen dados por
= ffx ; y g; fx ; y g; fx ; y g; fx ; y gg y
3

M2

= ffx ; y g; fx ; y g; fx ; y g; fx ; y g; fx ; y gg
1

El emparejamiento se dice maximo si tiene cardinal maximo de entre todos los


emparejamientos de G (es decir, si G no admite un emparejamiento distinto con mas
aristas). El emparejamiento se dice completo si empareja todos los vertices de X
(asumimos aqu que jX j  jY j).
97

98

6. Emparejamientos

Figura 6.1:

x1

y1

x2

y2

x3

y3

x4

y4

x5

y5

x6

y6

Grafo bipartito en el que buscar un emparejamiento

En el ejemplo anterior, M no es maximo, toda vez que jM j = 4 < 5 = jM j y


M no es completo, toda vez que x est
a sin emparejar. No obstante, M es maximo,
toda vez que x no se puede emparejar de ningun modo sin quedar desparejado x
(ambos tienen valencia uno, y son adyacentes al mismo vertice, y ).
1

Buscamos caracterizar cuando un grafo admite emparejamiento completo, o en su


defecto maximo, y el modo de construir tales emparejamientos.
Una condicion necesaria para que un emparejamiento sea completo es que, independientemente de cual sea el subconjunto P de vertices de X que se tome, el cardinal
del conjunto T (P ) de vertices de Y que son adyacentes a los vertices en P sea mayor o
igual que jX j. De otro modo, alguno de los vertices de P nunca se podra emparejar.
Hall demostro que no solo era necesaria, sino tambien su ciente.
un grafo bipartito G = (X [Y; A) admite un emparejamiento
completo si y solo si para todo P  X es jP j  jT (P )j, donde
Condici
on de Hall:

( ) = fy 2 Y : 9x 2 P=fx; yg 2 Ag

T P

La demostracion en el sentido ) es inmediata, toda vez que si G admite un


emparejamiento completo, para cualquier P  X que se tome, T (P ) contendra por lo
menos las parejas de los vertices de P segun el emparejamiento completo, de donde
jP j  jT (P )j.
Para demostrar ( vamos a probar que si M es un emparejamiento incompleto

99
de G, entonces existe un emparejamiento M 0 que tiene una arista mas que M . As,
reiterando el procedimiento tantas veces como haga falta, al nal se obtendra un
emparejamiento completo.
Supongamos, pues, que G = (X [ Y; A) es un grafo bipartito satisfaciendo la
condicion de Hall, i.e., de manera que para todo P  X es jP j  jT (P )j; y que M es
un emparejamiento no completo en G.
Sea x un vertice de G no emparejado segun M . Como jfx gj = 1  jT (fx g)j
existe un vertice y en Y de manera que e = fx ; y g 2 A. Si y no esta emparejado,
acabamos, pues basta a~nadir la arista e a M para obtener un emparejamiento M 0
con una arista mas que M .
0

En caso contrario, y esta emparejado a un vertice x en M . Ahora, como


jfx ; x gj = 2  jT (fx ; x g)j existe un vertice y 2 Y adyacente a x o a x segun
una arista e . Si el vertice y no esta emparejado, acabamos:
1

 Si e = fx ; y g basta a~nadir directamente e a M .


 En otro caso, el camino C : (x ; y ; x ; y ) tiene la propiedad de que alterna
2

aristas que no estan en M con aristas que s estan en M . Un tal camino se denomina camino alternado para M . Si en M se sustituyen las aristas del camino
C que est
an en M por las que no estan en M se obtiene un emparejamiento con
una arista mas. Esto es as porque el camino C empieza y termina por vertices
no emparejados, de manera que esta formado siempre por un numero impar de
aristas, empezando y terminando por aristas que no estan en M . En este caso
concreto, se eliminara de M la arista fx ; y g, y se a~nadiran las aristas fx ; y g
y fx ; y g.
1

Reiterando este proceso tantas veces como haga falta (lo cual es posible porque
se veri ca la condicion de Hall), se termina por llegar a un vertice y no emparejado
(dado que el numero de vertices es nito). Basta entonces construir el camino alternado que conecta y con x (que consta de parte de las aristas se~naladas a lo largo
del proceso), y proceder a sustituir las aristas del camino que aparecen en M por las
que no aparecen en M . Se obtiene as un emparejamiento con una arista mas de las
que tena M , y la demostracion concluye.
k

100

6. Emparejamientos

Ejemplo 6.0.3 Hallar un emparejamiento completo en el grafo de la Figura 6.2


procediendo segun el esquema dado en la demostracion anterior a partir del emparejamiento inicial siguiente
M

= ffx ; y g; fx ; y g; fx ; y g; fx ; y g; fx ; y gg
1

x1

y1

x2

y2

x3

y3

x4

y4

x5

y5

x6

y6

Figura 6.2:

El grafo admite un emparejamiento completo


El unico vertice x no emparejado en M es x . Dado que el grafo veri ca la
condicion de Hall (cosa que asumimos por el enunciado y en caso alguno vamos a
probar de facto), debe existir algun vertice y adyacente a el. Por ejemplo, fx ; y g 2
A.
i

Resulta que y esta emparejado en M con x . Como jfx ; x gj = 2 y el grafo


satisface la condicion de Hall, debe existir otro vertice y adyacente bien a x (lo cual
no se da), bien a x . Por ejemplo, fx ; y g 2 A.
3

Ahora, y esta emparejado en M con x . Como jfx ; x ; x gj = 3 y el grafo


satisface la condicion de Hall, debe existir otro vertice y adyacente bien a x (no es
as), bien a x (tampoco es as), bien a x . Por ejemplo, fx ; y g; fx ; y g 2 A.
2

Como y no esta emparejado, hemos encontrado un camino alternado para M ,


a saber: (x ; y ; x ; y ; x ; y ), de manera que el emparejamiento M 0 que se obtiene
al sustituir en M las aristas fy ; x g e fy ; x g por las aristas fx ; y g, fx ; y g y
fx ; y g posee una arista mas que M y es completo (ha emparejado los seis vertices
x ; : : : ; x ).
1

101
No obstante, con generalidad, la condicion de Hall no se utiliza para probar que
un emparejamiento es completo, toda vez que ello requerira comprobar la relacion
jP j  jT (P )j para los 2j j subconjuntos P de V , lo cual es inviable incluso para
valores de jV j relativamente peque~nos. En cambio, s se puede utilizar facilmente para
demostrar que un grafo no admite un emparejamiento completo, con solo encontrar
un subconjunto P de vertices de X tal que jP j > jT (P )j.
V

Ejemplo 6.0.4 El grafo de la Figura 6.1 no admite un emparejamiento completo.

En efecto, el conjunto P = fx ; x g tiene cardinal 2, mientras que el conjunto


T (P ) = fy g tan s
olo tiene cardinal 1 < 2. Luego el grafo no satisface la condicion
de Hall, y por tanto no puede admitir un emparejamiento completo.
1

Por otra parte, la idea que subyace detras de la demostracion anterior provee, de
hecho, un mecanismo para construir no solo emparejamientos completos, sino tambien
emparejamientos maximales.
Formalmente, se entiende por camino alternado para un emparejamiento M de G
un camino de longitud impar que empieza y termina en vertices no emparejados en
M y que alterna aristas que no est
an en M con aristas que s lo estan.
En estas circunstancias, se puede probar que un emparejamiento M es maximal
si y solo si no admite un camino alternado.
La implicacion ) es obvia: si M es un emparejamiento maximal, por de nicion
no puede admitir un camino alternado (o de otro modo no sera maximal, puesto que
habra un emparejamiento con una arista mas).
La implicacion ( es algo mas sutil. Supongamos que M es un emparejamiento
en G que no admite ningun camino alternado. Sea M 0 un emparejamiento maximal
en G. Consideremos el conjunto E de aristas que no forman parte simultaneamente
de M y M 0 (es decir, (M M 0 ) [ (M 0 M )). Si probamos que el numero de aristas de
M en E coincide con el n
umero de aristas de M 0 en E , habremos demostrado al n y
al cabo que jM j = jM 0j, y por tanto que M tambien es un emparejamiento maximal.
Pero, de hecho, en E hay el mismo numero de aristas de M que de M 0 , como se

102

6. Emparejamientos

desprende del siguiente razonamiento:


 Cada arista de M 0 en E ha de ser incidente a alguna arista de M en E (una

arista de M 0 no incindente con las de M constituira un camino alternado para


M de longitud 1, y M no admite caminos alternados por hip
otesis).
 Cada vertice de E tiene valencia 1 o 2, puesto que al menos es extremo de una
arista bien de M o bien de M 0 , y a lo mas es extremo de exactamente una arista
de M y a la vez de una de M 0 (dos aristas de M nunca son incidentes entre
s, as como tampoco son incidentes entre s dos aristas de M 0 , por de nicion
de emparejamiento). De manera que E esta formado por ciclos y por caminos
simples.
 Los ciclos de E tienen todos longitud par, y contienen el mismo numero de
aristas de M que de aristas de M 0 (de otro modo, dos aristas de M seran
incidentes entre s, o bien dos aristas de M 0 seran incidentes entre s, lo cual es
imposible, por de nicion de emparejamiento).
 Los caminos de E tienen todos longitud par, y contienen el mismo numero de
aristas de M que de aristas de M 0 :
En los caminos, se han de alternar aristas de M y aristas de M 0 (o de otro
modo aristas de un mismo emparejamiento seran incidentes entre s, lo
cual es imposible)
{ Si el camino tuviera longitud impar, establecera un camino alternado para
M (si las aristas de inicio y n son de M 0 ) o para M 0 (si las aristas de inicio y n son de M ), siendo ambas cosas imposibles (M no admite caminos
alternados por hipotesis, y M 0 tampoco los admite por ser un emparejamiento maximal y haberse probado ya la implicacion )

De manera que el numero de aristas de M en E coincide con el numero de


aristas de M 0 en E , luego jM j = jM 0 j (M y M 0 comparten sus aristas que no
estan en E ), de donde M es tambien un emparejamiento maximal.
El procedimiento usual que se sigue para localizar un emparejamiento maximal es
progresar sobre un emparejamiento conocido, y tratar de mejorar el emparejamiento

103
buscando un camino alternado. Mientras exista un tal camino alternado, se forma un
emparejamiento con una arista mas, y se repite el proceso con este nuevo emparejamiento como punto de partida. Al nal, se termina por encontrar un emparejamiento
que no admite caminos alternados, y que segun el resultado anterior conforma un
emparejamiento maximal.
La busqueda de caminos alternados para un emparejamiento M se puede sistematizar siguiendo un esquema similar al de la busqueda en anchura:
 Se buscan caminos alternados con origen todos y cada uno de los vertices no

emparejados en M (pudiera darse el caso de que no existiera un camino alternado para M con origen en x, pero s existiera con origen en y; de manera que
se puede concluir que el emparejamiento M sea maximal hasta que no se ha
probado a buscar caminos alternados para M con origen en todos y cada uno
de los vertices no emparejados).
 Para buscar caminos alternados para M con origen en x, se procede a dise~nar
un arbol del siguiente modo:
En el nivel 0 se situa el vertice raz, x.
{ En el nivel 1 se situan todos los vertices adyacentes a x.
{ En el nivel 2 se situan las parejas en M de los vertices del nivel 1.
{ Sucesivamente, en un nivel impar se situan los vertices adyacentes a los
vertices del nivel anterior que no hayan sido previamente considerados; y
en un nivel par se situan las parejas en M de los vertices del nivel anterior.
{ Los caminos alternados para M con origen en x consisten en las ramas del
arbol anterior que tienen longitud impar. De otro modo, si ninguna rama
tiene longitud impar, es que no existe un camino alternado para M con
origen en x.

Ejemplo 6.0.5 Busquemos un emparejamiento maximal para el grafo de la Figura


6.1 a partir del emparejamiento inicial dado por
M

= ffx ; y g; fx ; y g; fx ; y g; fx ; y gg
3

104

6. Emparejamientos

Figura 6.3:

x1

y1

x2

y2

x3

y3

x4

y4

x5

y5

x6

y6

Emparejamiento inicial del grafo de la Figura 6.1

El vertice x no esta emparejado. Buscamos un camino alternado para M con


comienzo en x , segun el arbol asociado.
1

En el nivel 0 situamos a x , y en el nivel 1 los vertices adyacentes a x , a saber,


uno solo: y .
1

En el nivel 2 situamos la pareja en M de y , que es x .


3

En el nivel 3 aparecen los vertices adyacentes a x : y ; y ; y . De entre ellos, y


no esta emparejado en M , por lo que la rama con n en y determina un camino
alternado para M : (x ; y ; x ; y ).
6

Ahora se sustituye la arista fy ; x g en M por las aristas fx ; y g y fx ; y g, para


dar el nuevo emparejamiento
M = ffx ; y g; fx ; y g; fx ; y g; fx ; y g; fx ; y gg;
que denotamos asimismo por M .
3

El unico vertice no emparejado ahora es x , que situamos en el nivel 0, mientras


que en el nivel 1 aparecen los vertices adyacentes a x , a saber, uno solo: y .
2

En el nivel 2 situamos la pareja en M de y , que ahora es x .


3

En el nivel 3 habran de aparecer los vertices adyacentes a x distintos del ya


utilizado y , que no hay. De manera que el arbol termina con una sola rama, de
longitud par.
1

105

y1

x1

x2

y3

y3

x6

x1

y5

y6

Como no hay ningun otro vertice no emparejado por el que seguir la busqueda,
podemos concluir que el emparejamiento M actual es maximo. De hecho, anteriormente probamos que este grafo no admita un emparejamiento completo (i.e. de 6
aristas), por lo que el emparejamiento anterior (que tena 5 aristas) ya sabamos que
automaticamente tena que ser maximo.

Figura 6.4:

x1

y1

x2

y2

x3

y3

x4

y4

x5

y5

x6

y6

Emparejamiento maximal del grafo de la Figura 6.1

106

6. Emparejamientos

Cap
tulo 7
Grafos planos

Cap
tulo 7
Grafos planos

La cuestion a tratar en este tema es caracterizar cuando un grafo admite una realizacion en la que no se crucen sus aristas. Este problema tiene aplicaciones interesantes, por ejemplo, en el dise~no de chips, dado que los circuitos no pueden estar en
contacto entre s o de lo contrario daran lugar a cortocircuitos.
Un grafo se dice plano si admite una realizacion (en el plano) de manera que sus
aristas no se cortan, a excepcion de los pares de aristas incidentes, que se cortan en el
vertice comun. Por extension, se puede tratar el problema de encontrar realizaciones
en otro tipo de super cies distintas del plano para un grafo, de manera que tampoco
se corten sus aristas. Se habla de inmersiones en distintas super cies. Nosotros aqu
nos limitaremos al estudio de los grafos planos.
Un grafo puede ser plano aun cuando tenga realizaciones no planas. Por ejemplo,
podemos considerar el caso de K , del que se dan realizaciones plana y no plana en
la Figura 7.1
4

x3

x2
x1

x1

x4
x3

x4
x2

Figura 7.1:

es plano
De manera que no basta observar una realizacion no plana de un grafo para
dilucidar si este es o no plano.
K4

109

110

7. Grafos planos

En una representacion plana de un grafo plano podemos distinguir regiones delimitadas por ciclos, que se denominan caras, siendo todas ellas acotadas, con la
excepcion de una sola, que se denomina cara exterior.
Mas aun, cada arista de una representacion plana de un grafo plano solo puede ser
de uno de entre dos tipos: o se trata de una arista puente (i.e. no pertenece a ningun
ciclo), de modo que esta en el interior de una cara; o se trata de una arista frontera
que separa exactamente dos caras (i.e. pertenece a un ciclo, y por tanto de ne dos
caras: la interior al ciclo y la exterior al ciclo segun su otro lateral).
En particular, de aqu se deduce una relacion importante a tener en cuenta en
los grafos planos: si asumimos que toda cara esta limitada por al menos d aristas
frontera (para grafos planos de al menos 3 aristas es siempre d  3, y para grafos
planos bipartitos es d  4 par), como cada cara aporta al menos d aristas frontera y
cada arista frontera es frontera de exactamente dos caras; es claro que d  c  2a  2a,
donde a denota el numero de aristas frontera.
f

En el caso de K , observamos en la Figura 7.1 cuatro caras, 3 de ellas acotadas


y una no acotada; todas las aristas (en total 6) son frontera, de manera que 3c =
2a = 2a = 12 en este caso. E ste es un ejemplo de grafo plano triangular, en el que
todas las caras estan formadas por ciclos de orden 3. En este tipo de grafos, siempre
se veri ca que 3c = 2a = 2a.
4

x5

x2
x1

x4

x2
x1

x3

x4

x2

x4

x1

x3

x6

x4
x3

x7

Figura 7.2:

Grafos planos maximales = triangulares

En realidad, aunque no lo probaremos aqu, en estos grafos es imposible a~nadir


ninguna arista entre vertices no adyacentes sin que dejen de ser planos. Se trata
de grafos planos maximales, en tanto en cuanto la introduccion de una nueva arista
hacer perder al grafo su caracter plano. Mas aun, es facil demostrar el recproco: si

111
un grafo plano es maximal, entonces ha de ser triangular (o de otro modo, en una
cara delimitada por mas de 3 aristas frontera se podra introducir una arista diagonal
sin perder el caracter plano).
Cabe destacar que el numero de caras de un grafo plano no depende de la realizacion plana del mismo. Mas aun, hay una relacion ja entre el numero de caras
c, aristas a y v
ertices v de cualquier grafo plano, que se conoce como Formula de
Euler: c a + v = k + 1, donde k es el numero de componentes conexas del grafo.
 En el caso de grafos planos conexos, la Formula de Euler queda: c a + v = 2.

Esta relacion se puede demostrar por induccion en el numero a de aristas.


Cuando a = 1, se trata del grafo K , que consta de dos vertices, una arista y
una sola cara (la exterior), de manera que c a + v = 1 1 + 2 = 2.
Supuesto que se veri ca la formula de Euler para grafos planos conexos con a
lo sumo n aristas, demostramos su validez para grafos planos conexos G con
a = n + 1 aristas.
Si el grafo G en cuestion es un arbol (i.e. si carece de ciclos), entonces consta
de v = a + 1 = n + 2 aristas y una sola cara (la exterior), de manera que
c a + v = 1 (n + 1) + (n + 2) = 2, de donde se veri ca la f
ormula de Euler.
Si el grafo G contiene ciclos (i.e. no es un arbol), entonces tomese una arista
e = fx; y g cualquiera que pertenezca a un ciclo. El grafo G0 = G
e tiene
a0 = a
1 = n aristas, v0 = v vertices y c0 = c 1 caras, toda vez que las
dos caras que separaba e en G han quedado identi cadas en una sola cara en
G0 . Como G0 tiene n aristas y es plano y conexo (G era plano y conexo y se
ha quitado una arista de un ciclo, luego una arista que no es puente), se puede
aplicar la hipotesis de induccion para concluir que G0 satisface la formula de
Euler y 2 = c0 a0 + v0 = c 1 (a 1) + v = c a + v, de manera que G
satisface asimismo la formula de Euler.
 En el caso de un grafo plano G de k componentes conexas, se puede progresar
sobre la formula de Euler clasica c a + v = 2 que se satisface en cada
componente conexa C , 1  i  k para probar la formula de Euler generalizada
c a+v = k +1 en G. En efecto, el n
umero de aristas a de G coincide con la suma
del numero de aristas de cada componente conexa, a = a +    + a ; asimismo,
el numero de vertices de G coincide con la suma del numero de vertices de
2

112

7. Grafos planos

cada componente conexa, v = v +    + v ; por otra parte, el numero de caras


acotadas de G coincide con la suma del numero de caras acotadas de cada
componente conexa, c 1 = (c 1) +    + (c 1). De manera que
c a + v = 1+ c 1 a + v = 1+(c 1)+   +(c 1) a    a + v +   + v =
= 1+(c a + v 1)+    +(c a + v 1) = 1+(2 1)+    +(2 1) = 1+ k
k

Teniendo en cuenta la formula de Euler y la relacion d  c  2a  2a que se


veri can en cualesquiera grafos planos, podemos probar la no planaridad de ciertos
grafos:
f

K5

no es plano.

En efecto, si lo fuera, por ser conexo, se tendra que c a + v = 2. Por otra


parte, por tener mas de tres aristas, es 3c  2a , c  32 a. As,
2
c = 2 + a v  a , 6 + 3a 3v  2a , a  3v 6
3
Como quiera que K tiene a = 10 aristas y 5 vertices, resulta que a = 10 > 9 =
3  5 6, lo que contradice la relacion a  3v 6.
5

K3;3

no es plano.

En efecto, si lo fuera, por ser conexo, se tendra que c a + v = 2. Por otra


parte, por ser bipartito, es 4c  2a , c  21 a. As,
1
c = 2 + a v  a , 4 + 2a 2v  a , a  2v 4
2
Como quiera que K tiene a = 9 aristas y 6 vertices, resulta que a = 9 > 8 =
2  6 4, lo que contradice la relacion a  2v 4.
3; 3

En realidad, estos dos grafos son los basicos para los que falla la planaridad, segun
demostrara Kuratowski en 1931.
Un grafo es plano si y solo si no contiene como
o de K .

Teorema de Kuratowski:

subgrafo una subdivision de K

3;3

113
Aqu, el termino subdivision hace referencia a un subgrafo que se obtiene de un
grafo introduciendo varios vertices (que no aristas) en el interior de ciertas aristas, de
manera que nunca se introduce un vertice en el cruce de dos o mas aristas.
En la Figura 7.3 se muestran sendos grafos no planos que son subdivisiones de
K y de K , mientras que en la Figura 7.4 se muestran grafos planos que no son
subdivisiones de K ni K .
5

3;3

3;3

Figura 7.3:

Figura 7.4:

Subdivisiones de K y K
5

3;3

Grafos planos que no son subdivisiones de K ni K


5

3;3

Para cada representacion plana de un grafo plano G, se puede formalizar un nuevo


(seudo)grafo plano G = (V  ; A), denominado dual de G, de manera que:
1. Cada cara de G se identi ca con un vertice de G (por lo que jV j = v = c).
2. Cada arista e de G da lugar a una arista e de G, de extremos los vertices de
G correspondientes a las caras de G que separa la arista e. As, jA j = a = a.
3. Por construccion, G es siempre conexo, de manera que por la formula de Euler
deducimos que c a + v = 2 ) c = 2+ a v = 2+ a c = 2+ v (k +1),
donde k es el numero de componentes conexas de G. En particular, si G es
conexo entonces c = v.

114

7. Grafos planos

Hay que advertir que puede haber duales no isomorfos para un mismo grafo plano
G: G depende directamente de la realizaci
on plana que se de del grafo G. Un ejemplo
de ello se tiene en el Ejercicio 46 del boletn con solucion nal.
En la Figura 7.5 mostramos un grafo G y un dual G para la representacion plana
elegida de G.
1
3
7

4
6

Figura 7.5:

Grafo plano y un dual suyo

Notese que una arista no frontera de G da lugar siempre a un lazo en G , mientras


que aristas fronteras de las mismas dos caras dan lugar a aristas multiples en G . E ste
es el motivo por el cual G suele no ser un grafo, y pasa a ser un multigrafo o un
seudografo.
Una aplicacion inmediata de grafo dual se encuentra en la coloracion de mapas.
As, si uno pretende dar color a las caras de un grafo plano (por ejemplo, colorear
los pases de un mapa) de manera que caras contiguas (i.e. compartiendo una arista
frontera) tengan colores distintos, entonces el problema se traduce en dar color a los
vertices de G. De manera que encontrar el menor numero de colores necesarios para
dar color a las caras de G viene a ser encontrar (G ).
Una conjetura que paso mas de 100 a~nos de frustrados intentos de demostraciones
aseguraba que 4 colores seran su cientes, y eventualmente necesarios, para dar color
a las caras de cualquier grafo plano. Sirviendose del ordenador, Appel y Haken
probaron en 1976 la validez de la conjetura, que paso a llamarse
Todo grafo plano admite una coloracion de sus caras
con un maximo de 4 colores. Mas aun, (G)  4 para todo grafo plano.
Teorema de los 4 colores:

Vous aimerez peut-être aussi