Sie sind auf Seite 1von 42

Conceptos de

teora de gr acas
5
5.1. Motivaci on
Una de las actividades m as importantes de todo cientco, y en particular de los de-
dicados a Computaci on es la del modelado. Modelar un problema quiere decir traducirlo
del lenguaje natural a un lenguaje matem atico en el que podamos expresar de manera m as
precisa las caractersticas de lo que estamos modelando, y poder manipularlo tambi en de
manera precisa y v alida.
Hemos estado manejando ya modelos cuando trabajamos con C alculo Proposicional y
con C alculo de Predicados, tratando de modelar estados de la vida real. Pasaremos ahora a
modelar otro tipo de problemas.
Una vez que tenemos un modelo apropiado, podemos usar la computadora para mani-
pularlo. En general, estamos preocupados con tres problemas:
i. Existe una soluci on para el problema? Nos interesa una soluci on que pueda ser
calculada (o encontrada) por una computadora en un tiempo razonable.
ii. Existe una soluci on optima para el problema? Esto es, podemos calcular una solu-
ci on que sea mejor que cualquier otra soluci on dada para ese problema.
iii. Por ultimo, Cu antas soluciones distintas existen para el problema dado?
Veamos algunos ejemplos.
202 Conceptos de teora de gr acas
Existencia de soluci on: Cuatro parejas casadas juegan tenis de dobles mixtos en dos can-
chas cada domingo en la noche. Juegan durante dos horas, pero intercambian parejas
y oponentes al nal de cada perodo de media hora. Existe una programaci on de
tal manera que cada hombre juegue con y contra cada mujer exactamente una vez, y
juega contra cada hombre al menos una vez?
Contar el n umero de soluciones: Un grupo de inversionistas decide rotar los puestos de
presidente y tesorero cada a no. Cu antos a nos van a transcurrir antes de que tenga
que repetir alguno de los socios en alguna de las dos posiciones?
Optimizaci on: Un empresario tiene tres empleados, Patty, Enrique y Roque, a quienes les
paga $60, $70 y $80 pesos la hora respectivamente. El empresario tiene tres trabajos
por asignar. La siguiente tabla muestra cu anto tiempo requiere cada trabajador para
hacer cada uno de los trabajos. Cu al es la manera de asignar el trabajo para que
salga tan barato como sea posible?
Patty Enrique Roque
Trabajo 1 7.5 hr. 6 hr. 6.5 hr
Trabajo 2 8 hr. 8.5 hr. 7 hr.
Trabajo 3 5 hr. 6.5 hr. 5.5 hr.
Estos tres problemas, de alguna manera, tienen que ver con combinatoria, las distintas
maneras que se tienen de resolver el problema y c omo elegir la mejor de ellas. La soluci on
para muchos de estos problemas est a dada por algoritmos. Un algoritmo es un m etodo de
soluci on que cumple con:
Entradas: El algoritmo trabaja a partir de cero o m as datos. Cuando son cero datos, es
porque trabaja a partir de constantes. Por ejemplo, tenemos un algoritmo que elabora
una tabla de senos, y empieza a producir valores empezando con un valor constante.
Salidas: El algoritmo produce un resultado.
Finitud: El n umero de pasos del algoritmo es nito.
Denici on: Cada paso est a bien denido y susceptible de ser ejecutado por un hombre con
papel y l apiz.
Terminaci on: El algoritmo siempre debe terminar.
No para todos los problemas hay algoritmos que los resuelvan. M as adelante, en su con-
tacto con las ciencias de la computaci on estudiar an que hay m as problemas que algoritmos,
por lo que algunos problemas se tendr an que quedar sin soluci on algortmica.
En este captulo nos haremos las tres preguntas que acabamos de plantear, revisando
aquellos problemas que se pueden modelar con gr acas, donde una gr aca es un modelo
matem atico.
5.1 Motivaci on 203
5.1.1. Tiempo para completar un proyecto
El problema:
La Sociedad Mexicana de Ciencias de la Computaci on est a organizando un Encuentro
para llevarse a cabo a principios del mes de marzo, y tiene que mandar propaganda (un
folleto de 8 p aginas) para avisar del evento. Esta propaganda debe ser enviada al menos 10
das antes de la fecha del evento para que sea efectivo, pero se deben hacer varias tareas
y tomar algunas decisiones antes de elaborar el folleto. El comit e organizador del evento
debe decidir que temas se van a tratar en el encuentro, y el comit e acad emico debe decidir a
quienes invitar para que sean arbitros de los trabajos. Entonces un comit e local debe decidir
a qui en invitar para conferencias magistrales sobre los temas decididos.
El comit e organizador debe preparar dibujos alusivos a los temas a tratar, y alguien tiene
que redactar las descripciones cortas de las conferencias magistrales. Finalmente se junta
toda la informaci on y se elabora la propaganda requerida, para que se enve por correo.
El comit e de propaganda elabora una lista de correo de a quienes enviar la propaganda.
Una vez hecho esto se elaboran las etiquetas para los sobres a enviar. Una vez que se
termina de imprimir el folleto, se le pega a cada uno una etiqueta, se organizan por c odigo
postal y se llevan a la ocina de correos.
Todas estas actividades toman un cierto tiempo; algunas de ellas se pueden llevar a cabo
de manera simult anea, pero otras tienen que esperar a que actividades previas se terminen.
La SMCC quiere saber cu al es el tiempo que requiere para preparar el encuentro, para saber
cu al es la fecha m as tarde en la que pueden empezar las distintas tareas.
Para calcular el tiempo total del proyecto necesitamos dos tipos de informaci on: el tiem-
po, en das, que se toma cada actividad, y las actividades que tienen que estar terminadas
para que esta se pueda llevar a cabo. En la tabla 5.1 se encuentra esa informaci on.
Este problema se presta para modelarlo con una gr aca dirigida (o digr aca). Una
digr aca es un conjunto de v ertices o nodos y una relaci on entre ellos, que llamamos los
arcos de la digr aca. Si u y v son nodos de la digr aca, decimos que (u, v) (u v) es un
arco que sale del nodo u y llega al nodo v y que se representa de alguna de las siguientes
formas:
u v
u

v
u v
En nuestro problema particular, el arco (u, v) signica que la actividad u se tiene que
terminar antes de que inicie la actividad v.
En cada v ertice colocaremos el tiempo requerido para que la actividad se lleve a cabo,
adem as del identicador de la actividad. El resultado se puede observar en la gura 5.1.
204 Conceptos de teora de gr acas
Tabla 5.1 Tiempos requeridos y predecesores por actividad
Id. Tarea Tiempo Tareas precedentes
A. Elegir temas. 3 ninguna
B. Elegir arbitros 2 ninguna
C. Elegir conferencias magistrales 2 A y B
D. Dibujos alusivos 4 C
E. Redacci on de res umenes 3 C
F. Elaborar el folleto 2 D, E
G. Elaborar la lista de correo 3 C
H. Imprimir las etiquetas 1 G
I. Imprimir el folleto 5 F
J Pegar las etiquetas 2 H, I
K Repartir la propaganda 10 J
Figura 5.1 Digr aca que corresponde a la organizaci on del encuentro
B
2
A
3
C
2
E
3
G
3
D
4
H
1
F
2
I
2
J
2
K
10
Tratemos de calcular cu al es el mnimo tiempo requerido para ejecutar todas las tareas
y terminar lo antes posible.
Si simplemente tomamos la suma de los tiempos que se requieren para terminar todas
las tareas, obtendremos un tiempo total de 47 das. Sin embargo, muchas de esas tareas se
pueden hacer de manera simult anea. C omo determinar, entonces, cu al es el menor tiempo
en el que todas las tareas pueden ser completadas?
5.1 Motivaci on 205
En 1958 se desarroll o una t ecnica, llamada PERT (Program Evaluation and Review
Technique), que calcula, entre otras cosas, lo que se conoce como ruta crtica. Una ruta
crtica consiste de ordenar en el tiempo los eventos que se tienen que llevar a cabo y encon-
trar una programaci on de dichos eventos, de tal manera que se desarrollen todos ellos en
el menor tiempo posible, respetando las precedencias especicadas. El algoritmo para ruta
crtica es muy sencillo y consiste de lo siguiente.
1. Programar a todas las tareas que no tienen ninguna tarea que las preceda. Esto quiere
decir asignarles como tiempo de programaci on (o terminaci on) igual al tiempo que
se lleva la tarea.
2. Mientras queden tareas por programar:
a) La tarea t se programa si todas las tareas que preceden a t ya est an programadas.
b) Su tiempo de programaci on se calcula como la suma del tiempo que se lleva
la tarea t m as el m aximo tiempo de programaci on de entre las tareas que la
preceden.
3. El tiempo total mnimo que se lleva el proceso es el m aximo asignado a cualquiera
de los nodos.
Si trabajamos sobre la digr aca de la gura 5.1, podemos ver la ejecuci on de cada uno
de los pasos. Colocamos encima del nodo el valor asignado para la programaci on.
El Paso 1 nos indica que localicemos a las tareas que no tienen predecesores, y que son
la tarea A y la B. Procedemos a asignarles como tiempo de programaci on el que corres-
ponde a su tiempo de ejecuci on.
Figura 5.2 Programaci on de los eventos A y B de la digr aca 5.1
B
2
A
3
C
2
E
3
G
3
D
4
H
1
F
2
I
2
J
2
K
10
2
3
Al entrar a la iteraci on del algoritmo, el unico nodo que cumple con las condiciones
dadas es el nodo etiquetado con C, al que le corresponde el valor de 5, que es el m aximo
para programaci on de sus predecesores (3) sumado al tiempo que toma C (2).
206 Conceptos de teora de gr acas
Figura 5.3 Programaci on del evento C de la digr aca
B
2
A
3
C
2
E
3
G
3
D
4
H
1
F
2
I
2
J
2
K
10
2
3
5
Como C es el unico predecesor de G, D y H, estamos en condiciones de resolver el
tiempo requerido, desde el inicio del proyecto, para estas tres tareas:
Figura 5.4 Programaci on de los eventos D, G y E de la digr aca
B
2
A
3
C
2
E
3
G
3
D
4
H
1
F
2
I
2
J
2
K
10
2
3
5
8
9
8
La siguiente capa es la que corresponde a las tareas H y F, cuyos antecesores ya est an
resueltos:
5.1 Motivaci on 207
Figura 5.5 Programaci on de los eventos F y H de la digr aca
B
2
A
3
C
2
E
3
G
3
D
4
H
1
F
2
I
2
J
2
K
10
2
3
5
8
9
8
9
11
A continuaci on resolvemos el evento I, al que le asignamos un valor de 15, y con este
evento, y con el evento H podemos resolver el evento J y a continuaci on el evento K. Los
tiempos quedan asignados como se muestra en la gura 5.6.
Figura 5.6 Programaci on del resto de los eventos de la digr aca
B
2
A
3
C
2
E
3
G
3
D
4
H
1
F
2
I
2
J
2
K
10
2
3
5
8
9
8
9
11 13 15 25
De manera similar podemos obtener el tiempo de inicio de cada proyecto mediante el
siguiente algoritmo:
1. Marcar con 1 a todas las tareas que no tienen otra tarea que las preceda.
2. Se asigna tiempo de inicio a la tarea t si todas las tareas que la preceden tienen ya
tiempo de inicio asignado, usando la siguiente f ormula:
Inicio(t) = m axInicio(p) + Tiempo(p) con p predecesor de t
3. Termina cuando no haya tareas sin tiempo inicial asignado.
208 Conceptos de teora de gr acas
Colocaremos el tiempo inicial antes del tiempo nal, separ andolos con una diagonal,
en la gura 5.7.
Figura 5.7 Tiempos de inicio/n de cada tarea
B
2
A
3
C
2
E
3
G
3
D
4
H
1
F
2
I
2
J
2
K
10
1/2
1/3
4/5
6/8
6/9
6/8
9/9
10/11 12/13 14/15 16/25
A continuaci on queremos obtener aquellas tareas que son crticas para el proyecto, esto
es, que deben iniciar exactamente en cuanto sus predecesores terminan de ac a viene el
nombre de ruta crtica para este problema. Para ello, procedemos de la ultima tarea, la
que le da el tiempo total al proyecto, y regresamos marcando a las tareas que aportaron el
m aximo. Conforme vamos regresando, marcamos los arcos de la digr aca con lnea doble,
para identicar la ruta, y los nodos tambi en con lnea doble. El resultado se puede ver en la
gura 5.8.
Figura 5.8 Una de las rutas crticas del proyecto
A
3
C
2
D
4
F
2
I
2
J
2
K
10
B
2
E
3
G
3
H
1
1/2
1/3
4/5
6/8
6/9
6/8
9/9
10/11 12/13 14/15 16/25
5.1 Motivaci on 209
Otra informaci on que podemos sacar de esta digr aca es aquellas actividades que tienen
tiempo de sobra para empezar sus actividades. Es claro que las actividades que est an
sobre la ruta crtica no pueden perder tiempo y deben empezar exactamente cuando se les
tiene programadas, pues son las que m as tiempo se llevan. Pero aquellas actividades que no
est an en la ruta crtica pudiesen tener alguna holgura en su tiempo de inicio. Por ejemplo,
la actividad B podra no empezar el primer da, sino hacerlo hasta el segundo sin retrasar
el tiempo nal del proyecto. La actividad H, asimismo, pudiera empezar el noveno da o
bien esperarse hasta el da 13, y con eso estar lista en el da 14, que es cuando la actividad
J necesita que la actividad H est e terminada. Este tiempo de holgura lo podemos calcular
como el menor tiempo de inicio de sus sucesores. El c alculo empieza en las tareas que no
tienen sucesores y va hacia atr as. En la gura 5.9 se muestra a continuaci on del tiempo de
inicio, mediante el siguiente algoritmo:
1. Calcula el m aximo tiempo de inicio de las tareas que no tienen sucesores como el
tiempo de inicio qee tienen ya marcado.
2. El m aximo tiempo de inicio de una tarea que tiene sucesores se calcula como:
mInicio(t) = m

inInicio(s) Tiempo(t) con s tarea sucesora de p


Figura 5.9 Tiempos de inicio/ ultimo-inicio/n de cada tarea
B
2
A
3
C
2
E
3
G
3
D
4
H
1
F
2
I
2
J
2
K
10
1/1/2
1/2/3
4/4/5
6/10/8
6/6/9
6/7/8
9/13/9
10/10/11 12/12/13 14/14/15 16/16/25
En la tabla 5.2 en la siguiente p agina ponemos el ultimo da en que cada actividad puede
empezar.
210 Conceptos de teora de gr acas
Tabla 5.2 Margen de tiempos para el inicio de las actividades
Id. Tarea Tiempo Tareas precedentes Da 1 Da ult.
A. Elegir temas. 3 ninguna 1 1
B. Elegir arbitros 2 ninguna 1 2
C. Elegir conferencias magistrales 2 A y B 4 4
D. Dibujos alusivos 4 C 6 6
E. Redacci on de res umenes 3 C 6 7
F. Elaborar el folleto 2 D y E 10 10
G. Elaborar la lista de correo 3 C 6 10
H. Imprimir las etiquetas 1 G 9 13
I. Imprimir el folleto 2 F 12 12
J Pegar las etiquetas 2 H, I 14 14
K Repartir la propaganda 10 J 16 16
5.1.2. Asignaci on optima de recursos
Supongamos que tenemos una aerolnea que vuela a 7 distintas ciudades y cuenta con 7
pilotos. Cada piloto tiene sus preferencias respecto a d onde quiere volar. Cu al es la manera
de asignar a cada piloto a un vuelo, de tal manera que todos los pilotos vuelen a alguna
ciudad de su preferencia? A este problema se le conoce con el nombre de apareamiento
perfecto o acoplamiento perfecto (perfect matching en ingl es) y se representa tambi en con
una gr aca que se conoce como bipartita.
Veamos las preferencias de los pilotos respecto a las ciudades a las que quieren volar
en la tabla 5.3.
Tabla 5.3 Relaci on entre ciudades y pilotos
Ciudad Pilotos:
Monterrey Torres, Ju arez, Robles
Guadalajara Albarr an, Torres, Tamariz, Zepeda
Londres Torres, Tamariz, Zepeda
Manzanillo Albarr an, Tamariz, Robles, Ramrez
Canc un Ju arez, Zepeda, Robles
Huatulco Ju arez, Ramrez
Acapulco Torres, Robles, Ramrez
5.1 Motivaci on 211
Una gr aca bipartita es aqu ella en la que los v ertices est an partidos en dos conjuntos
ajenos y las aristas van siempre de v ertices en un conjunto a v ertices en el otro. En el caso
de acoplamiento, es natural que un conjunto sea, por ejemplo, el de los pilotos, mientras
que el otro conjunto es el de las ciudades a las que deben volar. La gr aca que corresponde
a la tabla 5.3 se encuentra en la gura 5.10
Figura 5.10 Gr aca bipartita que corresponde a la tabla 5.3
To Ju Ro Al Ta Ze Ra
Mo Gu Lo Ma Ca Hu Ac
No todos los problemas de asignaci on optima de recursos tienen soluci on. Por ejemplo,
si se limita a que cada elemento de una de las partes quede relacionado unicamente con
s olo uno de la otra parte, empezamos por pedir que el n umero de v ertices en una partici on
sea el mismo que en la otra. Aun as podra no tener soluci on.
Un algoritmo nos dice que tratemos de encontrar un camino que toque a cada v ertice
exactamente una vez y da otras pistas de d onde iniciar y cu ales son las caractersticas que
debe tener la gr aca bipartita para intentar armar el camino.
Habiendo dado ya una idea de por qu e las gr acas son un mecanismo de modelado util,
pasamos a explorar este concepto.
Ejercicios
5.1.1.- Encuentra la ruta crtica en la siguiente digr aca. Para ello, elabora la tabla de las
dependencias dadas por la digr aca y anota en dicha tabla el tiempo de inicio, el
tiempo nal y el tiempo disponible de holgura (slack en ingl es) para cada una de las
actividades del proyecto. Indica tambi en cu al es el evento que se puede llevar a cabo
el primero y cu al es el ultimo evento en llevarse a cabo.
212 Conceptos de teora de gr acas
A
6
B
3
C
1
D
8
E
2
F
4
5.1.2.- Encuentra la ruta crtica en la siguiente digr aca. Para ello, elabora la tabla de las
dependencias dadas por la digr aca y anota en dicha tabla el tiempo de inicio, el
tiempo nal y el tiempo disponible de holgura para cada una de las actividades del
proyectos. Indica tambi en cu al es el evento que se puede llevar a cabo el primero y
cu al es el ultimo evento en llevarse a cabo?
A
2
B
3
C
2
D
4
E
3
F
1
5.1.3.- Encuentra la ruta crtica en la siguiente digr aca. Para ello, elabora la tabla de las
dependencias dadas por la digr aca y anota en dicha tabla el tiempo de inicio, el
tiempo nal y el tiempo disponible de holgura para cada una de las actividades del
proyectos. Indica tambi en cu al es el evento que se puede llevar a cabo el primero y
cu al es el ultimo evento en llevarse a cabo?
A
2
B
3
C
1
D
4
E
2
F
1
G
3
H
2
5.1 Motivaci on 213
5.1.4.- Encuentra la ruta crtica en la siguiente digr aca. Para ello, elabora la tabla de las
dependencias dadas por la digr aca y anota en dicha tabla el tiempo de inicio, el
tiempo nal y el tiempo disponible de holgura para cada una de las actividades del
proyectos. Indica tambi en cu al es el evento que se puede llevar a cabo el primero y
cu al es el ultimo evento en llevarse a cabo?
S
2
A
3
B
4
E
4
C
3
D
7
F
2
H
3
G
5
T
3
J
5
I
17
5.1.5.- Encuentra la ruta crtica en la siguiente digr aca. Para ello, elabora la tabla de las
dependencias dadas por la digr aca y anota en dicha tabla el tiempo de inicio, el
tiempo nal y el tiempo disponible de holgura para cada una de las actividades del
proyectos. Indica tambi en cu al es el evento que se puede llevar a cabo el primero y
cu al es el ultimo evento en llevarse a cabo?
S
3
C
2
B
4
D
3
E
3
I
2
F
3
G
1
J
2
K
5
H
3
L
5
M
2
N
12
T
3
5.1.6.- En un taller de herrera se cuenta con dos m aquinas de tipo A, una m aquina de tipo
B y tres m aquinas de tipo C. El taller cuenta con 7 empleados con distinto manejo de
cada una de las m aquinas, como se muestra en la tabla siguiente:
214 Conceptos de teora de gr acas
Empleado Num. Sabe usar m aquina(s):
1 A
2 A,C
3 C
4 A,B
5 A,B,C
6 B
7 B,C
Construye la gr aca bipartita correspondiente a la tabla anterior.
5.1.7.- Da una asignaci on posible para el problema anterior que ocupe el mayor n umero
de m aquinas, un trabajador por m aquina. Cu antos turnos tendran que cubrirse para
que todos los trabajadores trabajen el mismo n umero de turnos en las m aquinas? Da
la organizaci on necesaria para que esto ultimo suceda.
5.1.8.- La siguiente gr aca es bipartita, aunque no se note. Dib ujala de tal manera que se
vea a simple vista que es bipartita.
A B
C D
E F
G H
5.1.9.- Dada la siguiente gr aca, argumenta por qu e NO es bipartita.
5.2 Conceptos y formalizaci on 215
A B
C D E
F G
5.1.10.- Dada la siguiente gr aca, decide si es bipartita o no. Si es bipartita, da la partici on
de los v ertices y si no lo es, explica por qu e esa partici on no se puede dar.
A
B
C
D
E
F G
5.2. Conceptos y formalizaci on
Como ya vimos, las gr acas nos sirven para modelar un sinfn de problemas de la vida
real, como lo son la programaci on de eventos, el si se puede llegar de una ciudad a otra, los
mapas, las relaciones presentes entre personas de un cierto grupo, la asignaci on de tareas,
y muchos m as. En este captulo revisaremos con m as cuidado el concepto matem atico de
gr aca y algunos de sus usos.
Denici on 5.1 Una gr aca G = (V, E) es una pareja que consiste de un conjunto no vaco de
puntos V, llamados los v ertices o nodos de la gr aca, y un segundo conjunto E de aristas,
que corresponden a una relaci on de parejas entre los v ertices, subconjunto de V V .
Los elementos de E reciben nombres, dependiendo de la forma que toma la pareja:
Denici on 5.2 Una arista es una pareja no ordenada de v ertices e = uv. Los v ertices u y v son los
extremos de la arista e y la representamos como uv = vu.
216 Conceptos de teora de gr acas
Denici on 5.3 Un lazo es una arista cuyos extremos son el mismo v ertice (uu).
Denici on 5.4 Un arco es una pareja ordenada, que representamos como uv,

uv o, simplemente,
(u, v). En el caso que estemos trabajando con arcos, al subconjunto del producto cartesiano
lo identicamos con A.
Denici on 5.5 Decimos que una gr aca tiene aristas m ultiples si es que hay m as de dos aristas con
los mismos extremos.
Podemos asignar nombres a las aristas o arcos. Dependiendo de las restricciones que
pudiese tener E (o A), las gr acas se clasican de la siguiente manera:
Denici on 5.6 Una gr aca simple es aquella que no tiene aristas m ultiples ni lazos.
Denici on 5.7 Una multigr aca es aquella que permite aristas m ultiples y lazos.
Denici on 5.8 Una gr aca dirigida o digr aca es aquella que se dene como G = (V, A), donde
el subconjunto del producto cartesiano V V corresponde a arcos; en este caso es claro
que (u, v) ,= (v, u).
Los t erminos gr aca simple o multigr aca se pueden aplicar a digr acas, sustituyendo
simplemente a las aristas por arcos. Utilizaremos el t ermino gen erico de gr aca cuando
no distingamos entre gr acas simples o multigr acas; en el mismo sentido utilizaremos
digr acas cuando hablemos de los distintos tipos de gr acas dirigidas.
Solemos representar a las gr acas pintando un punto o crculo peque no por cada v ertice
y una lnea que une a dos de estos para las aristas. Podemos ver distintas representaciones de
gr acas en la gura 5.11. En ella se muestran tres de las posibles variaciones que podemos
darle a la representaci on, que incluyen nombrar o no a las aristas o v ertices de la gr aca y
la manera como elegimos representar a los v ertices.
Figura 5.11 Algunas representaciones con guras (visuales) de gr acas (1/2)
(a)
v
1
v
2
v
3
v
4
v
5
V = v
1
, v
2
, v
3
, v
4
, v
5
,
E =
_
v
1
v
3
, v
1
v
5
, v
1
v
2
,
v
2
v
4
, v
2
v
5
, v
4
v
5
,
v
3
v
5
_
(b)
A
B
C
D
E
V = A, B, C, D, E,
E =
_
AC, AB, AE,
BD, BE, CE, DE
_
5.2 Conceptos y formalizaci on 217
Figura 5.11 Algunas representaciones con guras (visuales) de gr acas (2/2)
(c)
A
B
C
D
E
e
1
e
2
e
3
e
4
e
5
e
6
e
7
V = A, B, C, D, E,
E = e
1
, e
2
, e
3
, e
4
, e
5
, e
6
, e
7

El que la pareja sea no ordenada quiere decir que las parejas uv y vu representan
a la misma arista, pues aparecen los mismos v ertices, no importa en qu e orden. En la
gura 5.11, tenemos a las aristas sin nombre en las gr acas de las guras 5.11(a) y 5.11(b),
mientras que las aristas en la subgura 5.11(c) s tienen nombre (en los tres casos est an
listadas abajo de la gr aca).
Denici on 5.9 Dos v ertices u y v son adyacentes si la arista e = uv E; dicho de otra manera, si
existe una arista en E cuyos extremos son u y v.
En las gr acas de la gura 5.11 los v ertices A y B, por ejemplo, son adyacentes, lo
mismo que los v ertices A y C; y A y E. Los v ertices B y C, en cambio, no son adyacentes
ya que no hay ninguna arista que los conecte.
Denici on 5.10 Una arista e es incidente en un v ertice v si v es uno de los extremos de la arista.
En la gr aca de la gura 5.11(c) la arista e
4
es incidente en los v ertices B y D.
En la gura 5.12 presentamos distintas maneras de dibujar una digr aca. En el caso de
las digr acas los arcos se representan en los dibujos como echas con la direcci on deseada.
La relaci on entre aristas y v ertices est a dada por el grado de un v ertice:
Denici on 5.11 El grado de un v ertice, denotado por grado(v), es el n umero de aristas incidentes
en el v ertice.
En la gr aca de la gura 5.11(c) el grado del v ertice A es 3, que corresponde a las
aristas e
1
, e
2
y e
3
, mientras que el grado del v ertice D es 2 que corresponde a las aristas e
4
y e
7
.
En digr acas hablamos del exgrado(v) e ingrado(v) que corresponde, respectivamente,
al n umero de arcos que salen de v y al n umero de arcos que entran a v.
218 Conceptos de teora de gr acas
Figura 5.12 Representaci on de gr acas dirigidas
(a)
v
1
v
2
v
3
v
4
v
5
V = v
1
, v
2
, v
3
, v
4
, v
5
,
E = v
1
v
4
, v
4
v
5
, v
2
v
1
,
v
4
v
3
, v
3
v
2
, v
3
v
5

(b)

A
B
C
D
E
V = A, B, C, D, E,
E = AD, DE, BA,
DC, CB, CE
(c)
A
B
C
D
E
a
1
a
2
a
3
a
4
a
5
a
6
V = A, B, C, D, E,
A = a
1
, a
2
, a
3
, a
4
, a
5
, a
6

El n umero de aristas de una gr aca est a ntimamente relacionado con el grado de los
v ertices. Esta relaci on se presenta en el teorema 5.1.
Teorema 5.1 En una gr aca, la suma de los grados de los v ertices es igual a dos veces el n umero de
aristas:

vV
grado(v) = 2 [E[
donde [E[ denota al n umero de elementos de E, la cardinalidad de E.
5.2 Conceptos y formalizaci on 219
Demostraci on. Cada arista incide en dos v ertices, por lo que si se cuentan los v ertices en los que inciden
las aristas
_
grados
_
, cada arista ser a contada dos veces.
Otra demostraci on de este teorema, y que utiliza la inducci on estructural que ya vimos
y que es muy com un en teora de gr acas, se plantea como sigue:
(a) Demostramos primero el caso para una gr aca con 1 v ertice y 0 aristas (ver en la
gura 5.13 el caso G = (v, )). El grado de este v ertice es 0; el n umero de aristas
tambi en es 0, por lo que se cumple
0 = 2 [E[ =

vV
grado(v) = 0
Figura 5.13 G = (v, )
v
(b) Observemos una gr aca con n 2 v ertices. Quit emosle un v ertice (con todas las
aristas que inciden en el) ver gura 5.14 .
Figura 5.14 Inducci on estructural en gr acas
La gr aca resultante (encuadrada con lnea punteada) cumple con la hip otesis de
inducci on de que la suma de los grados de los v ertices es dos veces el n umero de
aristas. Repongamos el v ertice que quitamos, junto con sus aristas. Por cada arista
que agregamos, dos v ertices ven incrementado sus grados en una unidad el que
estamos reinsertando y aquel al que llega la arista . Supongamos que el grado del
v ertice reinsertado es k. Entonces tenemos
n

i=1
grado(v
i
) =
_
n1

i=1
grado(v
i
)
_
+ 2 k = 2 ([E[ k) + 2 k = 2 [E[
220 Conceptos de teora de gr acas
Teorema 5.2 En una gr aca cualquiera, existe un n umero par de v ertices de grado impar.
Demostraci on. Por el teorema anterior sabemos que

vV
grado(v) = 2[E[. Separemos esta suma
entre los v ertices de grado par y los de grado impar:
Sea V
p
= v V [grado(v) es par
y V
i
= v V [grado(v) es impar
Entonces

vV
grado(v) =

vVp
grado(v) +

vV
i
grado(v) = 2[E[
La suma total es par; la suma de pares es par (de la primera parte) y, para que el resultado
sea par, la segunda parte tambi en tiene que ser par. Si el n umero de v ertices de grado
impar fuera impar, el resultado sera impar, por lo que el n umero de v ertices de grado
impar tiene que ser par.
Tenemos ciertos tipos de gr acas que tienen una determinada relaci on entre sus v ertices
y sus aristas.
Denici on 5.12 Una gr aca completa con n v ertices, denotada por K
n
, es aqu ella donde cada v erti-
ce es adyacente a cualquier otro v ertice de la misma gr aca.
En la gura 5.15 vemos algunos ejemplos de gr acas completas.
Figura 5.15 Ejemplos de gr acas completas
(a) K
4
v
1
v
2
v
3
v
4
(b) K
6
v
1
v
2
v
3
v
4
v
5
v
6
5.2 Conceptos y formalizaci on 221
Otro tipo de gr acas distinguidas son aquellas que forman una especie de anillo, donde
cada v ertice tiene grado 2 y se puede llegar de cualquier v ertice a cualquier otro simple-
mente recorriendo el anillo. A estas gr acas se les conoce como C
n
, donde la C est a por
ciclo y la n denota el n umero de v ertices. En la gura 5.16 se muestran varias de estas
gr acas.
Figura 5.16 Ejemplos de ciclos
(a) C
3
v
1
v
2
v
3
(b) C
6
v
1
v
2
v
6
v
3
v
5
v
4
(c) C
4
v
1
v
2
v
4
v
3
Las gr acas C
n
presentan tambi en algunas propiedades, como son que el grado de todos
sus v ertices es 2 y que el n umero de aristas en una gr aca C
n
es n.
Cuando denamos lo que es un camino entre dos v ertices regresaremos brevemente a
las gr acas C
n
.
Otro tipo de gr aca que ya vimos y que resulta muy importante para toda una clase de
problemas, la optimizaci on de asignaci on de recursos, son las gr acas bipartitas.
Denici on 5.13 (Gr aca bipartirta) Una gr aca bipartita es aquella en la que podemos partir al
conjunto de los v ertices en dos subconjuntos ajenos, de tal manera que todas las aristas van
de v ertices de un conjunto a v ertices del otro subconjunto (esto es, no hay aristas entre los
v ertices de un mismo subconjunto).
De esta denici on queda claro que no importa c omo se dibuje la gr aca, siempre se pue-
de redibujar de tal manera que tengamos dos hileras de v ertices, una por cada subconjunto.
En la gura 5.17 se muestran varias gr acas bipartitas.
Figura 5.17 Gr acas bipartitas (1/2)
(a)
b
a
e
d
c
g
f
h
a
b f
g
c
d
e
h
222 Conceptos de teora de gr acas
Figura 5.17 Gr acas bipartitas (2/2)
(b)
a
b
c
d
e
b
c
d
e
a
(c)
a
b
c
d
e
f
g
h
a c
d
e f
h
b
g
Tambi en entre las gr acas bipartitas podemos tener gr acas completas y se representan
como K
m,n
, donde la m y la n nos denotan el n umero de v ertices en cada subconjunto. En
el caso de gr acas bipartitas, lo completo se reere a que cada v ertice de un subconjunto es
adyacente a todos los v ertices del otro subconjunto. En la gura 5.18 podemos ver algunas
gr acas bipartitas completas.
Figura 5.18 Gr acas bipartitas completas (1/2)
(a) /
3,2
a
b
c
d
e
(b) /
4,4
a
b
c
d
e f
g
h
5.2 Conceptos y formalizaci on 223
Figura 5.18 Gr acas bipartitas completas (2/2)
(c) /
6,2
a
b
c
d
e
f
g
h
(d) /
2,2
a
b
c
d
a
b
c
d
Denimos tambi en lo que es una subgr aca, concepto que utilizaremos ampliamente
en el resto de este captulo.
Denici on 5.14 (Subgr aca) Sea G = (V, E) una gr aca. Una subgr aca G

= (V

, E

) de G es
una gr aca tal que V V

y E E

. En otras palabras, se eliminan cero o m as v ertices


y cero o m as aristas de la gr aca original. Entre las aristas que se eliminan tienen que estar
aquellas aristas incidentes en los v ertices eliminados.
Esto es, una subgr aca G

de una gr aca G es aquella que resulta de quitar de la gr aca


original algunos v ertices, junto con todas las aristas que inciden en estos v ertices, y algunas
aristas m as. Ya utilizamos el concepto de subgr aca en la demostraci on por inducci on
estructural del teorema 5.1. En la gura 5.19 presentamos varias gr acas y a su derecha
algunas de sus subgr acas.
Figura 5.19 Gr acas con algunas de sus subgr acas (1/2)
(a)
a
b
c
d
e
f
g
h
a
b
c
e
g
a
b
c
f
g
h
224 Conceptos de teora de gr acas
Figura 5.19 Gr acas con algunas de sus subgr acas (2/2)
(a)
v
1
v
2
v
3
v
4
v
5
v
6
v
1
v
2
v
3
v
5
v
6
v
1
v
2
v
5
v
6
Nos van a interesar ciertos tipos de subgr acas, que denimos a continuaci on:
Denici on 5.15 Una subgr aca de una gr aca G inducida por un subconjunto de v ertices A es
aquella que resulta de eliminar algunos v ertices de la gr aca y, junto con esos v ertices,
eliminar exclusivamente las aristas incidentes en los v ertices eliminados; se denota como
G[A] (o m as raramente GA)). Similarmente, una subgr aca inducida por un subconjun-
to de aristas es aquella que resulta de eliminar algunas aristas y, junto con esas aristas,
aquellos v ertices que resultan no ser adyacentes a ning un otro v ertice de la gr aca una vez
eliminadas las aristas seleccionadas.
En la gura 5.20 presentamos varias gr acas y a su derecha algunas de sus subgr acas
inducidas. En la subgura 5.20(a) vemos subgr acas generadas por un subconjunto de
los v ertices originales. Se eliminan exclusivamente las aristas incidentes en los v ertices
eliminados. En la subgura 5.20(a) vemos subgr acas inducidas por un subconjunto de
aristas, donde se eliminan aquellos v ertices que quedan sin ninguna arista incidente en
ellos.
Figura 5.20 Gr acas con algunas de sus subgr acas inducidas (1/2)
(a) Subgr acas inducidas por subconjuntos de v ertices
a
b
c
d
e
f
g
h
b
d
e
g
a
b
c
f
g
h
5.2 Conceptos y formalizaci on 225
Figura 5.20 Gr acas con algunas de sus subgr acas inducidas (2/2)
(a) Subgr acas inducidas por subconjuntos de aristas
v
1
v
2
v
3
v
4
v
5
v
6
e1
e2
e3
e4
e5
e6 e7
e8
e9
e10
e11
v
1
v
2
v
3
v
4
v
5
v
6
v
1
v
2
v
5
v
6
En la segunda gr aca de la subgura 5.20(a), al eliminar a las aristas e
3
, e
6
, e
10
y e
11
,
ning un v ertice queda aislado, por lo que no se elimina ninguno de la subgr aca. En cambio,
en la tercera gr aca de esta misma subgura, al eliminar a todas las aristas incidentes en v
3
y v
4
, se eliminan tambi en estos dos v ertices.
Otro concepto importante relacionado con el de subgr acas es el de subgr aca genera-
dor
1
que se dene como sigue:
Denici on 5.16 (Subgr aca generadora) Sea G = (V, E) una gr aca no dirigida. Una subgr a-
ca generadora es una subgr aca G

= (V, E

) de G tal que contiene a todos los v ertices de


G y E

E.
La idea con una subgr aca generadora es que est en presentes todos los v ertices de
la gr aca original. En la gura 5.21 podemos ver a una gr aca con dos de sus gr acas
generadoras.
Figura 5.21 Gr aca con subgr acas generadoras
(a)
v
1
v
2
v
3
v
4
v
5
v
6
(b)
v
1
v
2
v
3
v
4
v
5
v
6
(c)
v
1
v
2
v
3
v
4
v
5
v
6
1
En ingl es spanning subgraph.
226 Conceptos de teora de gr acas
Ejercicios
5.2.1.- Dada la siguiente gr aca, especica cu ales son sus conjuntos V y E.
a
b
c
d
e f
g
5.2.2.- Dada la siguiente gr aca, especica cu ales son sus conjuntos V y E.
v
1
v
2
v
3
v
4
v
5
v
6
5.2.3.- Dada la siguiente gr aca dirigida, especica cu ales son sus conjuntos V y A.
A
B
C
D
E
F
G
H
I
5.2 Conceptos y formalizaci on 227
5.2.4.- Dados los siguientes conjuntos, dibuja la gr aca a la que corresponden.
V =
_
v
1
, v
2
, v
3
, v
4
, v
5
, v
6
_
E =
_
v
1
v
2
, v
2
v
4
, v
2
v
5
, v
2
v
3
, v
2
v
6
,
v
4
v
3
, v
6
v
3

5.2.5.- Dibuja una gr aca tal que [V [ = 5 y [E[ = 6.


5.2.6.- Dibuja una gr aca dirigida tal que [V [ = 6 y [A[ = 9.
5.2.7.- Determina el grado de cada v ertice en las siguientes gr acas:
(a)
v
1
v
2
v
3
v
4
v
5
v
6
(b)
v
1
v
2
v
3
v
4
v
5
v
6
5.2.8.- Determina el exgrado e ingrado de cada v ertice en las siguientes gr acas dirigidas:
(a)
v
1
v
2
v
3
v
4
v
5
v
6
(b)
v
1
v
2
v
3
v
4
v
5
228 Conceptos de teora de gr acas
5.2.9.- Explica por qu e no puede haber una gr aca con un n umero impar de v ertices, cada
uno de ellos con grado impar.
5.2.10.- Dibuja las gr aca que corresponden a K
2
, K
3
y K
5
.
5.2.11.- Usando la propiedad de que los v ertices en las gr acas C
n
, n > 2, tienen todos
grado 2, demuestra que el n umero de aristas en una gr aca C
n
es n.
5.2.12.- Dada la siguiente gr aca, dibuja dos subgr acas generadoras distintas.
a
b
c
d
e
f
g
h
5.3. Representaci on de gr acas para su manipulaci on
En esta secci on trabajaremos unicamente con gr acas simples y nos referiremos a ellas
simplemente como gr acas. Para poder manipular las gr acas desde alguna aplicaci on en
una computadora tenemos que contar con alguna representaci on m as descriptiva que la de
los dibujos. Si bien los dibujos funcionan muy bien para el ojo humano, las computadoras
no trabajan bien con im agenes de conjunto. La denici on matem atica de lo que es una
gr aca resulta ser mucho m as manejable. En esta secci on presentaremos varias opciones de
representaci on que se prestan bien para la manipulaci on de gr acas a trav es de algoritmos.
5.3.1. Matriz de adyacencias
La matriz de adyacencias para una gr aca con n v ertices es una matriz cuadrada de
nn, tal que el elemento m
i,j
de la matriz, que denota al rengl on i, columna j, est a denido
5.3 Representaci on de gr acas para su manipulaci on 229
de la siguiente manera:
m
i,j
=
_
1 si e = v
i
v
j
E
0 si e = v
i
v
j
/ E
Veamos en la gura 5.22 una gr aca con su correspondiente matriz de adyacencias.
Figura 5.22 Representaci on de gr acas con matriz de adyacencias
(a)
0 1 1 1 0 0 0
1 0 1 0 0 0 0
1 1 0 0 1 1 0
1 0 0 0 1 0 0
0 0 1 1 0 0 1
0 0 1 0 0 0 1
0 0 0 0 1 1 0
v
1
v
2
v
3
v
4
v
5
v
6
v
7
v
1
v
2
v
3
v
4
v
5
v
6
v
7
( )
(b)
1 2
3
4 5
6
7
Esta representaci on particular presenta propiedades que pudiesen contestar r apidamente
a preguntas que quisi esemos hacernos respecto a una gr aca particular.
Teorema 5.3 La suma de las entradas en el rengl on i de una matriz de adyacencias corresponde al
grado del v ertice v
i
.
Demostraci on.
Observemos el rengl on de cualquier v ertice, digamos v
i
. Cada 1 que aparece es porque el
v ertice de la columna j, v
j
, es adyacente a el. Por lo tanto, el n umero de 1s en el rengl on
i indica el n umero de v ertices distintos de v
i
que son adyacentes a el. Como cada entrada
vale 1, la suma de estas entradas es precisamente el n umero de v ertices adyacentes a el,
o sea grado(v
i
).
La matriz de adyacencias de una gr aca presenta las siguientes propiedades:
Denici on 5.17 Decimos que una matriz es cuadrada si tiene el mismo n umero de renglones que
de columnas.
Las matrices de adyacencias son cuadradas porque tienen un rengl on para cada v ertice
y una columna para cada v ertice, por lo que el n umero de renglones es el mismo que el n
umero de columnas.
230 Conceptos de teora de gr acas
Denici on 5.18 Decimos que una matriz es sim etrica si
i, j, 0 i, j < [V [, m
i,j
= m
j,i
.
Para que una matriz sea sim etrica debe ser cuadrada.
Denici on 5.19 La diagonal principal de una matriz (cuadrada) es el vector que corresponde a los
elementos m
i,i
de la matriz.
Como estamos trabajando con gr acas simples, la diagonal principal de una matriz de
adyacencias es de ceros, ya que no tenemos ning un lazo en la gr aca. Tambi en es importan-
te notar que las matrices de adyacencias son siempre sim etricas: si tenemos una arista que
va del v ertice i al v ertice j (m
i,j
= 1), tambi en tendremos a esa misma arista (recordemos
que estamos trabajando con gr acas simples) que va del v ertice j al v ertice i (por lo que
m
i,j
= m
j,i
= 1).
Es conveniente mencionar que, dada esta simetra en las matrices de adyacencias, el
teorema 5.3 se cumple tambi en si sustituimos columna donde dice rengl on.
5.3.2. Matriz de incidencias
En esta representaci on tenemos tambi en una matriz, pero ahora es de n = [V [ renglones
por m = [E[ columnas, donde en cada posici on (i, j) se anota si la arista j es incidente en
el v ertice i. Las ventajas que tiene esta representaci on es que podemos tener m as de una
arista entre dos v ertices (multigr aca). Las entradas de la matriz quedan de la siguiente
forma:
m
i,j
=
_
0 si e
j
no incide en v
i
1 si e
j
incide en v
i
Si le ponemos nombres a las aristas de la gr aca anterior, la matriz de incidencias quedara
como se ve en la gura 5.23.
Figura 5.23 Representaci on de gr acas con matriz de incidencias
(a)
1 1 1 0 0 0 0 0 0
1 0 0 1 0 0 0 0 0
0 1 0 1 1 0 1 0 0
0 0 1 0 0 1 0 0 0
0 0 0 0 1 1 0 1 0
0 0 0 0 0 0 1 0 1
0 0 0 0 0 0 0 1 1
a
b
c
d
e f
g
h i
v
1
v
2
v
3
v
4
v
5
v
6
v
7
( )
(b)
v
1
v
2
v
3
v
4
v
5
v
6
v
7
a
b
c
d
e
f
g
h
i
5.3 Representaci on de gr acas para su manipulaci on 231
En esta representaci on es un poco m as complicado conocer cu ales son los v ertices adya-
centes a un v ertice dado. Si queremos saber, por ejemplo, cu ales son los v ertices adyacentes
al v ertice v
3
, observamos cada columna del rengl on correspondiente a v
3
en la que haya un
1, indicando que la arista e
j
es incidente en ese v ertice. Las columnas correspondientes son
la b, d, e y g. A continuaci on revisamos cada una de estas columnas y aquel rengl on distinto
del correspondiente a v
3
en el que haya un 1, corresponde a un v ertice adyacente al v ertice
v
3
; en la columna b es v
1
; en la columna d es v
2
; en la columna e es v
5
y en la columna g es
v
8
.
Sin embargo, a la pregunta de si una arista es o no incidente en un v ertice la respuesta
se obtiene simplemente revisando la entrada correspondiente de la matriz.
De esta representaci on obtenemos r apidamente la informaci on respecto al grado de un
v ertice, ya que corresponde al n umero de aristas incidentes en el.
Lema 5.1 En una gr aca representada por una matriz de incidencias, el grado del v ertice v
i
est a da-
do por la suma de las entradas del rengl on i en la matriz.
La demostraci on de este lema se deja como ejercicio.
El n umero de aristas en la gr aca tambi en se obtiene de manera inmediata de esta
representaci on, ya que corresponde al n umero de columnas de la matriz.
5.3.3. Listas de adyacencias
Cuando representamos a una gr aca a trav es de una matriz, sea esta de adyacencias
o incidencias, se tiene la sensaci on de que se desperdicia mucho lugar en la matriz. Por
ejemplo, si los v ertices, en general, tienen un grado menor a la mitad del n umero de v ertices
(v V, grado(v) < [V [), la matriz va a tener m as ceros que unos. Si estamos hablando
de una matriz de incidencias, cada columna tiene a lo m as dos entradas con 1 y el resto con
0. Las entradas que realmente tienen informaci on son las que tienen 1, por lo que decimos
que la densidad de la matriz es baja (a matrices con esta distribuci on de informaci on se les
conoce como matrices ralas y a las gr acas correspondientes tambi en se les llama gr acas
ralas porque tienen pocas aristas).
Si en lugar de una posici on para cada combinaci on posible, listamos unicamente aque-
llas entradas que sean distintas de 0, y si la matriz es rala, podemos ahorrar muchsimo es-
pacio. Por ejemplo, si la gr aca tiene 1,000 v ertices que representan, digamos, a todos los
pueblos por los que pasan todas las carreteras del pas, pero cada pueblo est a conectado a,
digamos, un m aximo de 6 pueblos distintos a el, con las listas de adyacencias ocuparamos
algo as como 12,000 lugares
2
, mientras que con la matriz de adyacencias ocuparamos
1,000,000 de lugares.
2
En una lista se ocupan dos espacios por cada elemento, uno para el elemento mismo y otro como refe-
rencia al que sigue en la lista.
232 Conceptos de teora de gr acas
La representaci on con listas de adyacencias es como sigue: se usan n = [V [ listas,
una para cada v ertice. Estas listas pueden estar en un vector, de tal manera que la lista
correspondiente al i- esimo v ertice se encuentre a partir de la posici on i del vector. A partir
de ah, vamos colocando en la lista del v ertice i a cada uno de los v ertices adyacentes a
el. Para que el tama no de cada lista pueda ser variable, cada elemento de la lista tiene una
referencia (apuntador, liga) al siguiente v ertice adyacente, o bien una referencia nula si este
es el ultimo v ertice de la lista.
Figura 5.24 Representaci on de gr acas con listas de adyacencias
(a)
v
1
v
2
v
3
v
4
v
2
v
1
v
3
v
3
v
1
v
2
v
5
v
6
v
4
v
1
v
5
v
5
v
3
v
4
v
7
v
6
v
3
v
7
v
7
v
5
v
6
(b)
1 2
3
4 5
6
7
a
b
c
d
e
f
g
h
i
En el caso de la gr aca que nos ocupa, para cada v ertice v
i
, armamos una sucesi on (una
lista) con todos los v ertices que son adyacentes a el. Nuevamente utilizamos a la gr aca de
la gura 5.23 para construir la lista de adyacencias en la gura 5.24.
Esta representaci on resulta apropiada para recorrer gr acas, pues se pueden ir elimi-
nando de las listas para cada v ertice a aquellos v ertices que se van alcanzando. Asimismo,
es f acil recorrer aristas pues se va de v ertice en v ertice de manera pr acticamente directa.
Las respuestas a las preguntas relacionadas con los grados de los v ertices se obtienen
de manera muy eciente, pues se cuentan los elementos presentes en cada una de las listas.
Averiguar si dos v ertices son o no adyacentes puede ser un poco m as costoso, pues hay que
recorrer toda la lista de uno de los v ertices antes de decidir que el otro v ertice no aparece en
esa lista, mientras que en la representaci on de matriz de adyacencias la respuesta se obtiene
simplemente viendo la entrada correspondiente de la matriz.
Esta representaci on es la preferida para la mayora de los algoritmos que pretenden
explorar una gr aca.
5.3 Representaci on de gr acas para su manipulaci on 233
5.3.4. Listas de incidencias
En la representaci on de gr acas mediante listas de incidencias seguimos una l ogica
parecida a la que usamos para las listas de adyacencias: unicamente vamos a listar, para
cada v ertice, aquellas aristas que son incidentes a ese v ertice. La diferencia principal es
que en lugar de que aparezcan los v ertices adyacentes aparecen las aristas incidentes.
En la gura 5.25 mostramos la codicaci on de la gr aca que hemos estado manejando.
Figura 5.25 Representaci on de gr acas con listas de incidencias
(a)
v
1 a
b
c
v
2 a
d
v
3 b d
e
g
v
4 c f
v
5 e f
h
v
6
g
i
v
7 h i
(b)
1 2
3
4 5
6
7
a
b
c
d
e
f
g
h
i
Nuevamente en esta representaci on obtenemos informaci on de manera eciente respec-
to a los grados de los v ertices de la gr aca. Para saber cu ales son los v ertices adyacentes
a un v ertice dado deberemos contar con otra estructura de datos que nos indique cu ales
son los extremos de las aristas listadas. Si bien esto requiere de m as espacio, el tiempo
requerido para responder a esta pregunta tambi en es constante, por lo que se considera una
operaci on eciente.
Cada una de estas representaciones tiene ventajas y desventajas. Es claro que la elecci on
de representaci on va a depender del tama no de la gr aca (podemos pensar en gr acas con
un n umero muy grande de v ertices), de qu e tan conectados est en los v ertices entre s (si
hay una gran cantidad de conexiones entre los v ertices o la gr aca es completa, la matriz
resultar a densa y por lo tanto con poco desperdicio), de cu ales sean las preguntas que nos
hagamos respecto a ella y, nalmente, de cu ales son los algoritmos que queramos ejecutar
sobre la gr aca.
234 Conceptos de teora de gr acas
Ejercicios
5.3.1.- Demuestra el lema 5.1.
5.3.2.- Cuenta el n umero de observaciones que se tienen que hacer en una gr aca repre-
sentada por una matriz de adyacencias para determinar el grado de cada uno de los
v ertices de la gr aca.
5.3.3.- Explica c omo se obtienen los extremos de una arista dada en cada una de las repre-
sentaciones que dimos.
5.3.4.- Para la siguiente gr aca, da su representaci on como matriz de adyacencias, matriz
de incidencias, listas de adyacencias y listas de incidencias.
v
4
v
5
v
3
v
1
v
2
a
b
c
d
e
f g
h
5.3.5.- Explica por qu e las listas de adyacencias y las listas de incidencias tienen exacta-
mente el mismo n umero de elementos rengl on por rengl on.
5.3.6.- Con cu al de las codicaciones se pueden representar lazos, o sea aristas que salen
y llegan al mismo v ertice?
5.3.7.- Dada las siguientes listas de adyacencias, dibuja una gr aca que corresponda a estas
listas.
Listas de adyacencias:
v
1
v
2
v
5
v
6
v
2
v
1
v
3
v
6
v
3
v
2
v
4
v
6
v
4
v
3
v
5
v
6
v
5
v
1
v
4
v
6
v
6
v
1
v
2
v
3
v
4
v
5
5.3 Representaci on de gr acas para su manipulaci on 235
5.3.8.- Dada la siguiente matriz de adyacencias, dibuja una gr aca que tenga a esa matriz
como representaci on.
_
_
_
_
_
_
_
_
_
_
1 1 1 0 0 0
1 1 0 1 0 0
1 0 0 0 1 0
0 1 0 0 0 1
0 0 1 0 1 1
0 0 0 1 1 1
_
_
_
_
_
_
_
_
_
_
5.3.9.- Dibuja una gr aca que corresponda a la siguiente matriz de adyacencias:
_
_
_
_
_
_
_
_
0 1 1 1 1
1 0 1 1 1
1 1 0 1 1
1 1 1 0 1
1 1 1 1 0
_
_
_
_
_
_
_
_
5.3.10.- C omo identicas en una matriz de adyacencias a una gr aca C
n
?
5.3.11.- C omo identicas en una matriz de adyacencias a una gr aca K
n
?
5.3.12.- En una gr aca no dirigida bastara con registrar la mitad de la matriz de adyacen-
cias, ya que la matriz es sim etrica: lo que est a bajo la diagonal se repite arriba de la
diagonal. Justica esta aseveraci on.
5.3.13.- C omo identicas en una matriz de adyacencias una gr aca que tiene al menos un
lazo?
5.3.14.- En las listas de incidencias que corresponde a una gr aca no dirigida, cu antas
veces aparece cada arista?
5.3.15.- Qu e cambios hay que hacer a una matriz de adyacencias para poder representar
a una gr aca dirigida?
5.3.16.- Dada la siguiente matriz de adyacencias que corresponde a una gr aca dirigida,
dibuja una gr aca que corresponda a esta matriz.
236 Conceptos de teora de gr acas
_
_
_
_
_
_
_
_
_
_
0 1 0 1 0 0
1 1 0 1 1 0
0 0 1 0 0 1
1 0 1 0 1 0
0 0 1 0 0 1
0 0 0 1 0 0
_
_
_
_
_
_
_
_
_
_
5.3.17.- Dadas las siguientes listas de incidencias, dibuja una gr aca dirigida que corres-
ponda a estas listas.
arco v ertice v ertice
origen destino
a v
1
v
2
b v
2
v
4
c v
1
v
4
d v
4
v
7
e v
1
v
3
f v
3
v
1
g v
2
v
5
h v
5
v
4
i v
3
v
6
j v
6
v
4
v
1
v
2
v
3
v
4
v
5
v
6
v
7
a c e
b
g
f i
d
h
j
5.3.18.- Revisa cada una de las representaciones posibles y discute la manera en que se
logra invertir la direcci on de todos los arcos en la gr aca dirigida del ejercicio 17.
5.4. Isomorsmo entre gr acas
Como pudimos observar en los ejercicios de la secci on anterior, hay m as de una manera
de dibujar una misma gr aca recordemos que el t ermino gr aca corresponde al ente ma-
tem atico . C omo podemos determinar que dos dibujos corresponden a la misma gr aca?
Por qu e el inter es de determinar esto?
Muchas veces tenemos dos problemas aparentemente distintos, pero que denotan a
gr acas similares (o a la misma gr aca). En estos casos, la soluci on a uno de los problemas
5.4 Isomorsmo entre gr acas 237
de manera autom atica nos proporciona la soluci on a todos los problemas que tengan a la
misma gr aca, aunque sus gr acas respectivas est en dibujadas o especicadas de manera
distinta. Revisemos un caso donde esto sucede.
Por ejemplo, supongamos que tenemos cinco materias en la carrera de Ciencias de
la Computaci on; de cada materia se reciben cuatro solicitudes cada semestre y existen
colisiones entre los profesores que desean impartir estas materias, como se muestra en la
tabla 5.4:
Tabla 5.4 Grupos para las materias de CC
Materia Profesores:
Matem aticas Discretas Macas Hern andez Guerrero Reyes
Teora de la Computaci on Viso Reyes Macas Hern andez
Lenguajes de Programaci on Solsona Ramrez Viso Oktaba
ICC1 Solsona Pel aez Hern andez L opez
Bases de datos Garca L opez Ramrez Sugawara
Podemos pensar en una gr aca donde cada v ertice es una de las materias o uno de
los profesores; la materia a es adyacente al profesor B si es que el profesor B solicita la
materia a. La gr aca queda como se muestra en la gura 5.26.
Figura 5.26 G
1
para las materias de CC
Guerr Maca Viso Oktab Ramr
Sugaw
Reyes
Hern a Pel ae Solso L opez
Garc
MD TC ICC1 LP BD
Es conveniente notar que no hay aristas entre profesores, ya que, como est a dibujado,
las materias y los profesores corresponden a categoras distintas.
238 Conceptos de teora de gr acas
Tambi en en matem aticas se consideran cinco materias y las solicitudes para ellas. La
relaci on est a dada por la tabla 5.5 y la gr aca correspondiente se encuentra en la gura 5.27.
La gr aca que corresponde a esta tabla se encuentra en la gura 5.27.
Tabla 5.5 Materias en Matem aticas
Materia Profesores:

Algebra Superior I G omez Magidin Miranda Tom e

Algebra Superior II Lascur ain S aenz Rosas Tom e


Geometra Analtica I Guerrero Hern andez Torres Lascur ain
Geometra Analtica II Barrera Guerrero Lascur ain Torres
C alculo Dif e Int I Abrn G omez Hern andez Rosas
Figura 5.27 Gr aca correspondiente a las materias de matem aticas
Magidin ASI Miranda
S aenz Tom e Rosas G omez
AS II Hern andez CDI-I Abrn
Lascur ain
Geometra I Barrera
Guerrero
Geometra II
Torres
Aunque estas dos gr acas, a simple vista, no se parecen, podemos encontrar, por ejem-
plo, que las podramos dibujar igual. En general, podemos encontrar que el n umero de
v ertices y aristas es el mismo, y que por cada v ertice con grado k en una de las gr a-
cas existe un v ertice con el mismo grado en la otra. Si vericamos otra condici on m as, que
consiste en que las relaciones de adyacencia se mantengan, decimos entonces que podemos
denir un isomorsmo entre ambas gr acas.
Denici on 5.20 Una gr aca G
1
= (V
1
, E
1
) es isomorfa a una gr aca G
2
= (V
2
, E
2
) si es que
podemos hacer una correspondencia 1 a 1 entre los v ertices (una funci on biyectiva de los
v ertices de G
1
a los v ertices de G
2
), f : V
1
V
2
de tal manera que
uv E
1
f(u)f(v) E
2
5.4 Isomorsmo entre gr acas 239
Es f acil corroborar que existen el mismo n umero de v ertices y de aristas en las dos
gr acas de las guras 5.26 y 5.27; asimismo, tambi en se preserva el n umero de v ertices
con grado 1, 2 y as sucesivamente, como se puede ver en la tabla 5.6.
Tabla 5.6 Condiciones necesarias para que haya isomorsmo entre gr acas
Gr aca N umero de v ertices: N umero de aristas:
G
1
17 20
G
2
17 20
Gr aca grado=1 grado=2 grado=3 grado=4 Total de v ertices
G
1
5 6 1 5 17
G
2
5 6 1 5 17
Dado que se cumplen las condiciones b asicas, no podemos descartar que haya un iso-
morsmo entre estas dos gr acas. Deberemos vericar, sin embargo, que las relaciones de
adyacencia se mantengan. Para ello denimos un isomorsmo para este caso en la tabla 5.7.
Tabla 5.7 Isomorsmo entre las gr acas de las guras 5.26 y 5.27
f(MD) = Geometra II
f(TC) = Geometra I
f(ICC1) =

Algebra Superior II
f(LP) = C alculo I
f(BD) =

Algebra Superior I
f(Sugawara) = Magidin
f(Garca) = Miranda
f(Pel aez) = S aenz
f(L opez) = Tom e
f(Solsona) = Rosas
f(Ramrez) = G omez
f(Viso) = Hern andez
f(Oktaba) = Abrn
f(Reyes) = Torres
f(Guerrero) = Barrera
f(Macas) = Guerrero
f(Hern andez) = Lascur ain
240 Conceptos de teora de gr acas
Podemos vericar que esta funci on preserva la adyacencia entre v ertices en una gr aca
y la imagen de esos v ertices en la otra. Por ejemplo, en la primera gr aca tenemos las
siguientes aristas:
(MD,Guerrero), (LP,Ramrez), (ICC1,Pel aez)
que en la segunda gr aca, bajo el isomorsmo, tenemos:
(f(MD),f(Guerrero)) (Geometra II, Barrera)
(f(LP),f(Ramrez)) (C alculo I, G omez)
(f(ICC1),f(Pel aez)) (

Algebra Superior II, S aenz)


que como podemos vericar con la gr aca, est an todas presentes en la segunda gr aca. El
lector puede vericar que la relaci on de adyacencia se preserva dada esta asociaci on. Sin
embargo, no es la unica asociaci on posible.
Ejercicios
5.4.1.- Determina si las dos gr acas que se encuentran a continuaci on son isomorfas. Si lo
son, da el isomorsmo que mantiene las relaciones de adyacencia. Si no son isomor-
fas, explica qu e es lo que hace que no lo sean.
(a) (b)
5.4 Isomorsmo entre gr acas 241
5.4.2.- Determina si las dos gr acas que se encuentran a continuaci on son isomorfas. Si lo
son, da el isomorsmo que mantiene las relaciones de adyacencia. Si no son isomor-
fas, explica qu e es lo que hace que no lo sean.
(a) (b)
5.4.3.- Determina si las dos gr acas que se encuentran a continuaci on son isomorfas. Si lo
son, da el isomorsmo que mantiene las relaciones de adyacencia. Si no son isomor-
fas, explica qu e es lo que hace que no lo sean.
(a)
1 2
3
4
5
6
(b)
D
A
E
B C
F
5.4.4.- Determina si las dos gr acas que se encuentran a continuaci on son isomorfas. Si lo
son, da el isomorsmo que mantiene las relaciones de adyacencia. Si no son isomor-
fas, explica qu e es lo que hace que no lo sean.
242 Conceptos de teora de gr acas
(a)
1 2
3
4
5
6
7
(b)
D
A
E
B C
F
G
5.4.5.- Di si es posible un isomorsmo entre las siguientes dos gr acas. Si es posible,
prop on uno; si no es posible denir un isomorsmo, explica por qu e.
(a)
D
A
C
B
E
(b)
4
1
3
2
5
5.4.6.- Di si es posible un isomorsmo entre las siguientes dos gr acas. Si es posible,
prop on uno; si no, explica por qu e.
(a)
D
A
C
B
E
(b)
4
1 2
5
3

Das könnte Ihnen auch gefallen