Anda di halaman 1dari 319

Una Introduccin a las

Matemticas Discretas
y Teora de Grafos

Ricardo Prez Aguila


Profesor Investigador Titular
Universidad Tecnolgica de la Mixteca (UTM)
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Dedicatorias

Con todo amor


a mi hija Diana,
mi esposa Kenia
y mi(s) hij@(s) que an est(n)
por llegar a este mundo.

Con todo cario


a mi sobrina Lucy,
mi mam Mara de la Luz,
mi hermana Edna
y mi cuada Fernanda

A mis amigos
Thelma Garca,
Gabriel Gernimo,
Luis Javier Martnez,
Omar Ramrez,
Ricardo Ruiz,
Aisa Santiago
y Paola Soto
Prez Aguila, Ricardo
Una introduccin a las matemticas discretas y teora de grafos -1 ed.- El Cid Editor,
2013.

320 p.; 170x240 cm.

ISBN 978-1-4492-9128-0

Ricardo Prez Aguila


El Cid Editor

ISBN versin papel: 978-1-4492-9128-0


ISBN versin digital: 978-1-4492-9129-7
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Acerca del Autor

Ricardo Prez Aguila es originario de la ciudad de Tehuacn, Puebla, Mxico.


Es egresado de la Universidad de las Amricas Puebla (UDLAP, Cholula, Puebla, Mxico)
donde obtuvo los Ttulos de Ingeniero en Sistemas Computacionales (2001),
Maestro en Ciencias con Especialidad en Ingeniera en Sistemas Computacionales (2003)
y Doctor en Ciencias de la Computacin (2006). Durante el periodo 2003-2007 se
desempe como Profesor de Tiempo Parcial en el Departamento de Actuara, Fsica y
Matemticas de la UDLAP. En Otoo de 2007 se incorpor de Tiempo Completo como
Profesor-Investigador Titular del Instituto de Computacin en la Universidad Tecnolgica
de la Mixteca (UTM, Huajuapan de Len, Oaxaca, Mxico). Como docente ha impartido en
varias ocasiones los cursos de Matemticas Discretas, Anlisis de Algoritmos, Redes
Neuronales Artificiales, Teora de Autmatas, Algoritmos Genticos, Visin por
Computadora, entre otros. Sus intereses de investigacin consideran la visualizacin,
geometra, topologa, representacin y aplicaciones de los Politopos n-Dimensionales. En el
campo de las Redes Neuronales Artificiales ha tenido particular inters en las arquitecturas
basadas en entrenamiento no supervisado. Cuenta en su haber con ms de 30 artculos
publicados, internacionalmente y con arbitraje, en congresos y revistas. Es adems autor de
los libros de texto Una Introduccin a las Matemticas para el Anlisis y Diseo de
Algoritmos y Una Introduccin al Cmputo Neuronal Artificial, ambos publicados por
El Cid Editor (Argentina) en 2012.

Ricardo Prez Aguila


Instituto de Computacin
Universidad Tecnolgica de la Mixteca (UTM)
Carretera Huajuapan-Acatlima Km. 2.5
Huajuapan de Len, Oaxaca 69004, Mxico
E-mails: aguila@mixteco.utm.mx, ricardo.perez.aguila@gmail.com
Web site: http://ricardo.perez.aguila.googlepages.com
Una Introduccin a las Matemticas Discretas y Teora de Grafos
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Tambin del Autor

El objetivo principal de este texto es el de proporcionar las bases formales y


fundamentales para que el alumno sea capaz de estudiar sus algoritmos y determinar si
stos son, desde un punto de vista de la Complejidad Temporal, eficientes o no. Este trabajo
cuenta con cinco captulos en donde se abordan tpicos como Preliminares Matemticos
(Logaritmos, Series, Sucesiones, Induccin Matemtica, Teorema del Binomio), Notacin
Asinttica, Tcnicas para el Anlisis de Complejidad Temporal, Solucin de Recurrencias
(Mtodo de Extensiones, Teorema Maestro), Teora de Grafos, enfoques de diseo de
algoritmos bajo Memoizacin, Bottom-Up y Voracidad. Finalmente, se presenta una
introduccin informal a las Clases de Problemas P y NP, Problemas NP-Completos y
Reduccin Polinomial. Las tcnicas y conceptos son aplicados sobre los bien conocidos
algoritmos de ordenamiento Insertion Sort, Quick Sort, Merge Sort, Counting Sort y Bucket
Sort. Tambin se estudia la Complejidad Temporal de algunos algoritmos que dan solucin
a problemas clsicos de Teora de Grafos: Bsquedas por Profundidad y Amplitud,
Algoritmos de Dijkstra, Bellman-Ford, Fleury y Kruskal. La forma de presentar los temas
est dirigida a estudiantes que estn cursando el segundo ao de las Licenciaturas en
Computacin, Sistemas Computacionales, Informtica, Ciencias de la Computacin y
Matemticas Aplicadas.

Una Introduccin a las Matemticas para el Anlisis y Diseo de Algoritmos


Ricardo Prez Aguila
El Cid Editor, Argentina, 336 pginas, Primera Edicin, 2012
ISBN Edicin Impresa: 978-1-4135-7661-0, ISBN Edicin Digital: 978-1-4135-7647-4
Registro SEP-INDAUTOR (Mxico): 03-2011-111412410000-01
Web Site de Difusin y Distribucin: http://www.e-libro.net/libros/libro.aspx?idlibro=6525
Una Introduccin a las Matemticas Discretas y Teora de Grafos

En este trabajo se presenta una introduccin al estudio y anlisis de las Redes


Neuronales Artificiales. Se hace mencin de las bases neurofisiolgicas que inspiran a
algunas de las Arquitecturas Neuronales ms populares y se plantean de manera formal sus
procedimientos correspondientes haciendo uso de herramientas provenientes de reas como
el lgebra Lineal y el Clculo Diferencial de Varias Variables. Se estudian inicialmente las
neuronas de tipo Adaline y Perceptrn. En el caso del Perceptrn se presentan el Problema
de Representacin y el Teorema de Convergencia a fin de plantear los alcances y
limitaciones que se tiene con este tipo de Neurona Artificial. Posteriormente se aborda el
estudio de la Red Madaline a fin de establecer los retos que surgen para el aprendizaje en
una red formada por varias neuronas. Se da un especial nfasis a las redes compuestas por
Perceptrones al estudiar los fundamentos de su popular mecanismo de aprendizaje, definido
por el Algoritmo de Retropropagacin. Tambin se presentarn a las Redes de Kohonen
como un ejemplo de Arquitectura Neuronal cuyo aprendizaje no requiere de supervisin. A
lo largo del texto se desarrollan aplicaciones de las Redes Neuronales en los contextos del
Modelado y Prediccin de Seales, Modelado de Funciones Booleanas y Clasificacin
Automtica de Imgenes.

Una Introduccin al Cmputo Neuronal Artificial


Ricardo Prez Aguila
El Cid Editor, Argentina, 324 pginas, Primera Edicin, 2012
ISBN Edicin Impresa: 978-1-4135-2424-6, ISBN Edicin Digital: 978-1-4135-2434-5
Registro SEP-INDAUTOR (Mxico): 03-2012-083011025000-01
Web Site de Difusin y Distribucin: http://www.e-libro.net/libros/libro.aspx?idlibro=7894
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Prlogo

Este libro est pensado principalmente para estudiantes de los primeros semestres de
nivel Licenciatura en las carreras de Ciencias de la Computacin, Informtica, Sistemas
Computacionales, Fsica y Matemticas Aplicadas. Nuestro objetivo primordial se centra en
presentar al alumno los preliminares que forman al rea de las Matemticas Discretas y la
Teora de Grafos. En particular, nos concentraremos en cinco temticas principales: Lgica
Matemtica, Teora de Conjuntos, Teora de Relaciones y Funciones, Principio de
Induccin Matemtica y finalmente, Grafos. A lo largo del texto se efectuarn diversas
pruebas de algunos Teoremas. stos estarn, por un lado, formalizando resultados dentro de
nuestras reas de inters, mientras que por otro lado, el estudiante se ir familiarizando con
algunas tcnicas de demostracin. Adems, dentro del rea de Teora de Grafos se
presentarn diversos algoritmos teniendo siempre en cuenta su inmediata y fcil
implementacin. En este sentido, se asume que el lector est habilitado con un buen manejo
de algn lenguaje de programacin de alto nivel considerando estructuras de datos bsicas
tales como arreglos, matrices, pilas y colas. El texto se encuentra organizado en siete
captulos:

Captulo 1 - Lgica Matemtica. Se introducen a los Conectivos Lgicos bsicos:


conjuncin, disyuncin, negacin e implicacin. Se presentan tambin a las Tablas de
Verdad como una primer metodologa de demostracin de Teoremas relacionados con
Equivalencia Lgica. A partir de los conectivos lgicos y sus propiedades se define un
lgebra Proposicional. Tambin se analizan algunas reglas de Inferencia Lgica tales
como el Modus Ponens y el Modus Tollens. Finalmente se aborda el estudio de los
importantes y tiles Cuantificadores Existencial y Universal.

Captulo 2 - Teora de Conjuntos. A partir de los Conectivos Lgicos se definen a los


operadores bsicos de conjuntos. Se demostrarn algunos Teoremas relativos a
propiedades de estos operadores en donde se har evidente el uso intensivo del lgebra
Proposicional. A partir de estos Teoremas se definir un lgebra de Conjuntos la cual
permitir una verificacin ms directa de nuevos resultados.

Captulo 3 - Relaciones y Funciones. El objetivo principal de este Captulo es el de


presentar de manera formal uno de los conceptos ms importantes en las Matemticas:
la nocin de Funcin. Inicialmente se establecer el concepto de Relacin Binaria entre
los elementos de dos conjuntos. Se discutirn algunas caracterizaciones para las
relaciones tales como Reflexividad, Simetra, Antisimetra y Transitividad. Tambin se
abordar el estudio de las importantes Relaciones de Equivalencia y el impacto que
tienen al particionar a los elementos de un conjunto. Finalmente, el concepto de
Funcin ser establecido en trminos de las caractersticas que debe cumplir una
Relacin para ser denotada como tal. Se estudiarn tambin, en el contexto de las
Funciones, las nociones de Inyectividad, Suprayectividad, Composicin Funcional,
Funcin Inversa y Funcin Identidad.
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Captulo 4 - Series, Sucesiones e Induccin Matemtica. Se estudian las nociones de


Series y Sucesiones y se pone un especial nfasis en la poderosa metodologa de
demostracin de Teoremas que resulta ser el Principio de Induccin Matemtica. Se
describen el tipo de enunciados plausibles de ser abordados por esta metodologa y se
presentan algunos ejemplos de aplicacin. Tambin se aborda al estudio del Teorema
del Binomio y su relacin con los Coeficientes Binomiales y el Tringulo de Pascal. El
Captulo se finaliza describiendo a detalle la demostracin del Teorema del Binomio
aplicando precisamente el Principio de Induccin Matemtica.

Captulo 5 - Grafos: Conceptos Bsicos. Se establece desde un principio la nocin


formal de Grafo. Posteriormente se introducen nuevas definiciones que permitirn, para
el conjunto de todos los posibles grafos, caracterizarlos como simples, conectados,
dirigidos, completos, bipartitas, pesados, regulares, hipercbicos, etc. Tambin se
probarn algunos Teoremas relativos a ciertas propiedades de conectividad en grafos.
En particular se abordar la demostracin, utilizando Induccin Matemtica, del
Teorema de Euler relativo a los Circuitos Eulerianos.

Captulo 6 - Generacin Automtica de Grafos. Este Captulo tiene por finalidad


presentar una serie de Algoritmos que permitirn la construccin automtica de algunos
tipos de grafos. Se presentarn metodologas para la generacin de grafos bsicos como
lo son los grafos simples y grafos dirigidos. Pero tambin se abordar la construccin
de grafos Regulares, Hamiltonianos y Bipartitas. Se discutirn tambin a los Cdigos de
Prfer y su relacin con los grafos de tipo rbol.

Captulo 7 - Grafos: Algoritmos Bsicos. En este punto se presentarn algunos


algoritmos para la solucin de ciertos problemas particulares sobre grafos. Se discutirn
los procedimientos asociados a las Bsquedas por Profundidad y Amplitud, los
Algoritmos de Dijkstra y de Bellman-Ford para la bsqueda de la ruta ms corta, el
Algoritmo de Kruskal para la determinacin del rbol de expansin mnimo, y el
Algoritmo de Fleury para la construccin de un Circuito Euleriano. Tambin se
presentarn procedimientos para encontrar el Conjunto Fundamental de Circuitos, los
conjuntos de Puentes y Puntos de Corte, el Grafo Mnimo Equivalente, y los
Componentes Fuertemente Conectados.

Al final de este trabajo el lector encontrar una Seccin dedicada a presentar las referencias
utilizadas. stas mismas son de hecho un punto de partida para abordar a mayor
profundidad los temas aqu desarrollados. En particular se recomiendan los textos, ya
clsicos, de Cormen et al, Grimaldi y Johnsonbaugh. El texto de Lau es una excelente y
amplia librera de algoritmos listos para implementarse y que dan solucin a diversos
problemas en Teora de Grafos. Finalmente, slo me queda agradecer a mi hija Diana y a
mi esposa Kenia por todo su amor, inspiracin y apoyo para lograr la culminacin de este
proyecto. A mis amigos, siempre les estar en deuda por todos sus nimos.

Ricardo Prez Aguila


Mayo de 2013

ii
Una Introduccin a las Matemticas Discretas y Teora de Grafos

ndice General
Pgina
ndice de Teoremas v
ndice de Algoritmos ix

1. Lgica Matemtica 1
1.1 Proposiciones y Conectivos Lgicos 3
1.2 Tablas de Verdad 6
1.3 Algebra de Proposiciones 23
1.4 Inferencia Lgica 40
1.5 Cuantificadores 49

2. Teora de Conjuntos 61
2.1 Definiciones 63
2.2 Algebra de Conjuntos 84

3. Relaciones y Funciones 91
3.1 Definiciones 93
3.2 Relaciones de Equivalencia 108
3.3 Funciones 113

4. Sucesiones, Series e Induccin Matemtica 129


4.1 Sucesiones 131
4.2 Series y Sumatorias 133
4.3 Principio de Induccin Matemtica 135
4.4 Teorema del Binomio 141

5. Grafos: Conceptos Bsicos 149


5.1 Definiciones 151
5.2 Rutas, Circuitos y Conectividad 160
5.3 Circuitos Eulerianos y Circuitos Hamiltonianos 169
5.4 rboles 173
5.5 Girths y Dimetros 175

6. Generacin Automtica de Grafos 177


6.1 Representacin Computacional de Grafos 179
6.2 Permutacin Aleatoria de n Elementos 180
6.3 Generacin de Grafos Aleatorios 182
6.4 Generacin de Grafos Bipartitas Aleatorios 190
6.5 Generacin de Grafos Regulares Aleatorios 197

iii
Una Introduccin a las Matemticas Discretas y Teora de Grafos

6.6 Generacin de rboles de Expansin Aleatorios 208


6.7 Generacin de rboles Etiquetados y Cdigos de Prfer 211
6.8 Generacin de Grafos Hamiltonianos Aleatorios 217
6.9 Generacin de Grafos Regulares Isomorfos Aleatorios 224

7. Grafos: Algoritmos Bsicos 229


7.1 Bsqueda por Profundidad 231
7.2 Bsqueda por Amplitud 235
7.3 rboles de Expansin Mnimos 239
7.3.1 Conjuntos Disjuntos 242
7.3.2 Conjuntos Disjuntos y el Algoritmo de Kruskal 247
7.4 Determinacin de Rutas Eulerianas 251
7.5 Algoritmo de Dijkstra 258
7.6 Algoritmo de Bellman-Ford 264
7.7 Componentes Fuertemente Conectados 272
7.8 Grafo Mnimo Equivalente 274
7.9 Puntos de Corte y Puentes 282
7.10 Conjunto Fundamental de Circuitos 288

Bibliografa 299

iv
Una Introduccin a las Matemticas Discretas y Teora de Grafos

ndice de Teoremas
Pgina
Teorema 1.1 Para cualesquiera proposiciones p, q, r en se tiene que
(p q) r p (q r) 11
Teorema 1.2 Para cualquier proposicin p en se tiene que
(p) p 12
Teorema 1.3 Para cualesquiera proposiciones p, q en se tiene que
p q p q 12
Teorema 1.4 Para cualesquiera proposiciones p y q en se tiene que la
proposicin compuesta (p q) p es una tautologa. 12
Teorema 1.5 Para cualquier proposicin p en se tiene que p p es
una tautologa. 13
Teorema 1.6 Para cualquier proposicin p en se tiene que p p es
una contradiccin. 13
Teorema 1.7 Para cualesquiera proposiciones p, q en se tiene que
(p q) (p q) 15
Teorema 1.8 Para cualesquiera proposiciones p, q en se tiene que
p q q p 15
Teorema 1.9 Para cualesquiera proposiciones p, q en se tiene que
pqqp 16
Teorema 1.10 Para cualesquiera proposiciones p, q, r en se tiene que
p (q r) (p q) (p r) 16
Teorema 1.11 Para cualesquiera proposiciones p, q en se tiene que
(p q) p q 17
Teorema 1.12 Para cualquier proposicin p en se tiene que
pVp 17
Teorema 1.13 Existe un nmero real x tal que 3x + 10 = -4. 24
Teorema 1.14 Existe un nmero complejo x tal que x2 + 5 = 2. 26
Teorema 1.15 Para cualesquiera proposiciones p, q, r en se tiene que
p (q r) (p q) r 31
Teorema 1.16 Para cualesquiera proposiciones p, q, r en se tiene que
p (q r) (p q) (p r) 32
Teorema 1.17 Para cualesquiera proposiciones p, q en se tiene que
p q (p q) (r r)
Donde r es cualquier proposicin en . 32
Teorema 1.18 Para cualesquiera proposiciones p, q en se tiene que
(p q) (p q) q 34
Teorema 1.19 Para cualesquiera proposiciones p y q en se tiene que
((p q) p) q V 35
Teorema 1.20 Para cualesquiera proposiciones p y q en se tiene que
((p q) q) p V 35

v
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Teorema 1.21 Para cualesquiera proposiciones p y q en se tiene que


(p q) (p q) V 36
Teorema 1.22 Para cualesquiera proposiciones p y q en se tiene que
a) (p q) p V
b) (p q) q V 36
Teorema 1.23 Para cualesquiera proposiciones p y q en se tiene que
a) ((p q) p) q V
b) ((p q) q) p V 37
Teorema 1.24 Para cualesquiera proposiciones p, q y r en se tiene que
((p q) (q r)) (p r) V 38
Teorema 1.25 Para cualesquiera proposiciones p y q en se tiene que
a) p (p q) V
b) q (p q) V 39

Teorema 2.1 Sean los conjuntos A = {x: x es mltiplo de 6} y


B = {x: x es mltiplo de 2}. Entonces A B. 66
Teorema 2.2 El conjunto vaco es subconjunto de cualquier conjunto. 67
Teorema 2.3 Todo conjunto es subconjunto de si mismo. 68
Teorema 2.4 (Propiedad Asociativa de la Interseccin):
(P, Q, R 28)((P Q) R = P (Q R)) 75
Teorema 2.5 (Propiedad Asociativa de la Unin):
(P, Q, R 28)((P Q) R = P (Q R)) 77
Teorema 2.6 (Propiedad Conmutativa de la Unin):
(P, Q 28)(P Q = Q P) 77
Teorema 2.7 (Propiedad Conmutativa de la Interseccin):
(P, Q 28)(P Q = Q P) 77
Teorema 2.8 (Idempotencia de la Interseccin):
(P 28)(P P = P) 78
Teorema 2.9 (Idempotencia de la Unin):
(P 28)(P P = P) 78
Teorema 2.10 (Ley del Doble Complemento):
(P 28)((PC)C = P) 78
Teorema 2.11 C = 8 80
Teorema 2.12 8C = 81
Teorema 2.13 (Propiedad Transitiva de la Contencin):
(P, Q, R 28)(P Q Q R P R) 81
Teorema 2.14 (Ley de DMorgan):
(P, Q 28)((P Q)C = PC QC) 82
Teorema 2.15 (Existencia del Elemento Neutro en la Unin):
(P 28)(P = P) 83
Teorema 2.16 (Existencia del Elemento Neutro en la Interseccin):
(P 28)(P 8 = P) 83
Teorema 2.17 (Propiedad de la Diferencia):
(P, Q 28)(P \ Q = P QC) 84

vi
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Teorema 2.18 (A, B, C 28)((C \ A) (C \ B) = C \ (A B)) 86


Teorema 2.19 (A, B, C 28)(C \ (B \ A) = (A C) (C \ B)) 86
Teorema 2.20 (A 28)(A \ A = ) 87
Teorema 2.21 (A, B, C 28)((B \ A) C = (B C) \ A) 87
Teorema 2.22 (A, B 28)((B \ A)C = A BC) 87
Teorema 2.23 (A, B, C 28)((B \ A) C = (B C) \ (A \ C)) 88
Teorema 2.24 (A, B, C 28)(C \ (A B) = (C \ A) \ B) 88
Teorema 2.25 (A, B 28)(A (A B) = A) 88

Teorema 3.1 La relacin binaria R] de ] hacia ] es a) reflexiva,


b) no simtrica, c) antisimtrica y d) transitiva. 105
Teorema 3.2 La relacin binaria R` de ` hacia ` es a) no reflexiva,
b) no simtrica, c) antisimtrica y d) transitiva. 106
Teorema 3.3 La relacin binaria R] de ] hacia ] es una Relacin de
Orden Total. 108
Teorema 3.4 La relacin Rm sobre ] es una Relacin de Equivalencia. 109
Teorema 3.5 Sea f:A B una funcin biyectiva y sea f -1:B A su
correspondiente funcin inversa. Las composiciones f -1 o f
y f o f -1 corresponden a funciones identidad. 126

Teorema 4.1 n
n(n + 1)
i =
i =1 2 135
Teorema 4.2 2 > 2n , n {3, 4, 5, 6, }
n
136
Teorema 4.3 2n + n3 es divisible por 3, n {1, 2, 3, 4, } 138
Teorema 4.4 n
x n +1 1
i =0
x i
=
x 1
, x \ \{1}
139
Teorema 4.5 Si n ] + y r es un entero no negativo tal que r n ,
entonces:
n n!
=
r r!(n r )! 141
Teorema 4.6 Teorema del Binomio. Si n es un entero no negativo y
a, b \ , entonces:
( a + b) n
n n n
= a n + a n 1b + ... + a n r b r + ...
0 1 r
n n 1 n n
+ ab + b
n 1 n
O usando notacin sigma:
n
n
(a + b) n = a n r b r
r =0 r 144

vii
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Teorema 4.7 n n n + 1
+ =
r r 1 r 145

Teorema 5.1 La suma de los grados de los vrtices de un grafo G es


igual a dos veces el nmero de aristas en G. Es decir:
deg (u) = 2 Card ( E (G))
uV ( G ) 153
Teorema 5.2 El nmero de vrtices de grado impar en un grafo G es
siempre par. 153
Teorema 5.3 Sea G un grafo. Entonces
1
Card ( E (G )) = d (G ) Card (V (G ))
2 155
Teorema 5.4 (Euler): Un grafo conectado es Euleriano si y slo si cada
uno de sus vrtices tiene grado par. 170
Teorema 5.5 Sea G un grafo con n > 1 vrtices. Entonces se tendrn las
equivalencias:
a) G es un rbol.
b) G no tiene circuitos y tiene n - 1 aristas.
c) G est conectado y tiene n - 1 aristas. 173

Teorema 7.1 Dado un grafo pesado G, sea P = (v0, v1, , vk) la ruta ms
corta del vrtice v0 al vrtice vk. Para cualquier i y j tales
que 0 i j k, sea Pij = (vi, vi+1, , vj) una subruta de P
del vrtice vi al vrtice vj. Entonces Pij es la ruta ms corta
del vrtice vi al vrtice vj. 258

viii
Una Introduccin a las Matemticas Discretas y Teora de Grafos

ndice de Algoritmos
Pgina
Algoritmo 6.1 Permutacin aleatoria de los elementos en el conjunto
{1, 2, ., n}. 182
Algoritmo 6.2 Generacin de Grafos Aleatorios. 188
Algoritmo 6.3 Generacin Automtica de Grafos Bipartitas Aleatorios. 196
Algoritmo 6.4 Generacin Automtica de Grafos Regulares de Grado d. 203
Algoritmo 6.5 Generacin Automtica de rboles de Expansin
Aleatorios. 211
Algoritmo 6.6 Generacin Automtica de rboles Etiquetados y Cdigos
de Prfer. 215
Algoritmo 6.7 Generacin Automtica de Grafos Hamiltonianos
Aleatorios. 222
Algoritmo 6.8 Generacin Automtica de Grafos Isomorfos Regulares de
Grado d. 227

Algoritmo 7.1 Implementacin de la Bsqueda por Profundidad. 232


Algoritmo 7.2 Implementacin de la Bsqueda por Amplitud. 236
Algoritmo 7.3 Determinacin del rbol de Expansin Mnimo en un Grafo
Conectado Pesado. 241
Algoritmo 7.4 Implementacin de la funcin Find para la estructura
Conjunto Disjunto. 245
Algoritmo 7.5 Implementacin de la funcin Union para la estructura
Conjunto Disjunto. 245
Algoritmo 7.6 Implementacin del Algoritmo de Kruskal con uso de
Conjuntos Disjuntos. 247
Algoritmo 7.7 Implementacin del Mtodo de Fleury para Encontrar un
Circuito Euleriano. 257
Algoritmo 7.8 Algoritmo de Dijkstra. 260
Algoritmo 7.9 El Algoritmo de Bellman-Ford. 266

ix
Una Introduccin a las Matemticas Discretas y Teora de Grafos

x
Una Introduccin a las Matemticas Discretas y Teora de Grafos

1. Lgica Matemtica
Una Introduccin a las Matemticas Discretas y Teora de Grafos

2
Captulo 1. Lgica Matemtica

1.1 Proposiciones y Conectivos Lgicos

Una Proposicin Lgica Simple, tambin llamada Proposicin Simple, es un


enunciado de tipo declarativo en donde los elementos que la forman siguen reglas de
sintaxis. La importancia de la naturaleza declarativa de una Proposicin Simple radica en
que sta expresa algo que puede ser caracterizado como Falso (F) o como Verdadero (V).
Por ejemplo, considrense los siguientes tres enunciados:
La Luna orbita alrededor de la Tierra.
La Luna es un objeto celeste compuesto de queso.
De qu color es el cielo?
Ntese que los tres enunciados se forman por palabras las cuales siguen un conjunto de
reglas de sintaxis bien establecidas para el idioma Espaol y gracias a ello es que logramos
comprenderlos. Sin embargo, es claro que el primer enunciado es de tipo declarativo ya que
est expresando una caracterstica, en este caso, de la Luna. Si tal caracterstica
efectivamente corresponde con el sujeto en cuestin es entonces cuando le asignamos un
valor de verdad o falsedad. Por lo tanto, podemos decir que la Proposicin Simple La
Luna orbita alrededor de la Tierra es Verdadera. Ahora bien, es claro que nuestro
segundo enunciado tambin es una Proposicin Simple, sin embargo, y gracias a los
conocimientos Astronmicos con que contamos en la actualidad, sabemos que sta es Falsa.
Para nuestro tercer enunciado De qu color es el cielo? debe ser claro que realmente no
es posible caracterizarlo como Verdadero o Falso ya que el enunciado no est
proporcionando ningn tipo de afirmacin sino que est requiriendo se suministre
informacin. Se entiende entonces que aquellos enunciados de naturaleza interrogativa,
exclamativa o imperativa no pueden ser caracterizados como Proposiciones Simples.

Si bien hemos ejemplificado la nocin de Proposicin Simple al recurrir a los


enunciados que podemos formar con las reglas de nuestro idioma Espaol, en realidad el
nicho sobre el cual estaremos trabajando considera aquellos enunciados que declaran
alguna propiedad o resultado de naturaleza Matemtica. Estas Proposiciones pueden ser
expresadas en trminos de las bien conocidas simbologa y sintaxis Matemtica o bien
auxilindose, a fin de facilitar su comprensin, en nuestro idioma Espaol. Veamos algunos
ejemplos:
2+2=4
52
El producto de dos nmeros reales negativos es un nmero real positivo.
Es claro que el primer y el tercer enunciado son Verdaderos. El enunciado 5 2 es
evidentemente Falso.

Por lo regular se requiere considerar en repetidas ocasiones a nuestras


Proposiciones. Por ello es comn que una Proposicin sea asociada a una letra entendiendo
que tal letra representa a un enunciado. Tambin, cuando se conoce la verdad o falsedad de
la Proposicin se coloca a un lado de sta (V) o bien (F) para denotar si es verdadera o bien
si es falsa, respectivamente. Por ejemplo, considrese que las letras p, q y r representan a
las siguientes Proposiciones para cuales tambin ya conocemos su valor de verdad o
falsedad:

3
Una Introduccin a las Matemticas Discretas y Teora de Grafos

p: Washington, D.C. es la capital de los Estados Unidos de Amrica (V)


q: Todos los estudiantes de Computacin son hombres (F)
r: 5 4 (V)

Una Proposicin Compuesta resulta ser una combinacin de Proposiciones


conectadas por medio de Conectivos Lgicos. Una Proposicin Compuesta es tambin un
enunciado de naturaleza declarativa y por lo tanto tambin puede asignrsele un valor de
verdad o falsedad. Este valor ir directamente en funcin de los valores de verdad o
falsedad de las proposiciones que la forman as como de los conectivos lgicos que se estn
utilizando. Hemos de tener en cuenta que las Proposiciones que formen a una Proposicin
Compuesta pueden ser simples o de hecho ser en s mismas Proposiciones Compuestas.
Para comenzar a presentar ejemplos de Proposiciones Compuestas debemos ir
introduciendo los conectivos lgicos que consideraremos.

Si una Proposicin Compuesta tiene la siguiente estructura

(Proposicin A) y (Proposicin B)

Entonces a tal Proposicin se le llama Conjuncin y tiene valor de verdad (V) nicamente
cuando tanto la Proposicin A como la Proposicin B son verdaderas. El conectivo y se
representar Matemticamente con el smbolo . Veamos los siguientes ejemplos:
p q: (Washington, D.C. es la capital de los Estados Unidos de Amrica) y
(Todos los estudiantes de Computacin son hombres)
o Sabemos que tanto la proposicin simple p como la proposicin simple q son
ambas verdaderas. Por lo tanto, la conjuncin p q es tambin verdadera.
Considrense las siguientes proposiciones simples:
o r: 5 4 (V)
o s: 3 < 3 (F)
o Entonces tenemos que la conjuncin r s: (5 4) (3 < 3) es falsa.
Ahora consideremos a las siguientes proposiciones compuestas:
o p: (1 2) (3 = 3) (V)
o q: (6 8) (-5 < -2) (V)
o Por lo tanto la conjuncin

p q: ((1 2) (3 = 3)) ((6 8) (-5 < -2))

es verdadera.

Si una Proposicin Compuesta tiene la siguiente estructura

(Proposicin A) o (Proposicin B)

A tal proposicin se le denomina Disyuncin y tiene valor de verdad (F) slo cuando las
Proposiciones A y B son ambas falsas. El conectivo o se representar formalmente
usando el smbolo . Considrense los siguientes ejemplos:

4
Captulo 1. Lgica Matemtica

Sean las proposiciones simples:


o p: 5 4 (V)
o q: 3 > 4 (F)
o Entonces p q: (5 4) (3 > 4) es verdadera.
Considrense las proposiciones compuestas (ambas de hecho son conjunciones):
o r: (1 > 2) (3 = 3) (F)
o s: (6 = 8) (-5 < -2) (F)
o Por lo tanto la disyuncin

p q: ((1 > 2) (3 = 3)) ((6 = 8) (-5 < -2))

es falsa.
Este ltimo ejemplo claramente nos dice que al contar con ms de un conectivo lgico es
posible la construccin de Proposiciones Compuestas que consideren a conectivos
diferentes. El uso de los parntesis nos indica el orden en que cada conectivo ha de ser
evaluado.

Si una Proposicin tiene la siguiente estructura:

Es falso que (Proposicin A)

A tal Proposicin se le llama Negacin de la Proposicin A y tendr un valor de verdadero


(V) cuando y slo cuando la Proposicin A tenga valor (F). Usaremos el smbolo para
denotar la negacin de una proposicin. Considrese por ejemplo a la proposicin p: 2 < 3
la cual es evidentemente verdadera. De acuerdo a la definicin de nuestro conectivo
tenemos entonces que p es falsa.

Si una Proposicin Compuesta cuenta con la siguiente estructura:

Si (Proposicin A) entonces (Proposicin B)

A sta se le llama Implicacin o Condicional. A la Proposicin A, la cual se coloca entre


si y entonces le llamamos Antecedente. A la Proposicin B colocada despus de
entonces se le llama Consecuente. El smbolo denotar una implicacin. Por ejemplo
considrense las siguientes proposiciones simples:
p: Est lloviendo.
q: Hay nubes en el cielo.
Por lo tanto la implicacin formada por las proposiciones p y q estara dada por:

Si p entonces q: Si (Est lloviendo) entonces (Hay nubes en el cielo)

O bien, en trminos ms formales usando el smbolo :

p q: (Est lloviendo) (Hay nubes en el cielo)

5
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Una implicacin ser verdadera en cualquiera de los siguientes casos:


Si el antecedente es falso, independientemente del valor del consecuente.
Si el consecuente es verdadero, independientemente del valor que tome el antecedente.
Veamos los siguientes ejemplos:
p: 1 2 (V)
q: -4 > -1 (F)
r: 6 = 8 (F)
Entonces tenemos:
o p q: (1 2) (-4 > -1) (F)
o q p: (-4 > -1) (1 2) (V)
o p r: (1 2) (6 = 8) (F)
o q q: (-4 > -1) (-4 > -1) (V)

1.2 Tablas de Verdad


Considrese la siguiente Proposicin: El nmero natural x es un nmero par. Es
claro que el enunciado es de naturaleza declarativa en donde se hace una afirmacin
respecto a una propiedad de un nmero natural. Sin embargo, es claro que la proposicin
como tal no puede ser caracterizada de manera inmediata como verdadera o como falsa.
Ello se debe a que necesitamos conocer de manera especfica quin es el nmero x en
cuestin. Si x = 2 entonces tenemos que la Proposicin es verdadera. Pero por otro lado si
x = 3 entonces tenemos que la Proposicin es falsa. En este punto debemos clarificar que de
ninguna forma estamos dando lugar a ambigedades respecto a la certeza de la verdad o
falsedad de la Proposicin, es simplemente una cuestin de que una vez que el sujeto en
cuestin es especificado tenemos entonces todos los elementos para evaluar a la
Proposicin. Por el momento debemos tener claro que la Proposicin El nmero natural x
es un nmero par tiene dos posibles propiedades: ser falsa o ser verdadera.

Ahora considrense la siguientes dos Proposiciones:


r: x 5
s: y + 10 = 13
Usando a r y s formamos a la siguiente Conjuncin u:

u: r s: (x 5) (y + 10 = 13)

Por la discusin anterior sabemos que u puede ser verdadera o falsa y ello est directamente
relacionado con la verdad o falsedad de las proposiciones r y s. Es claro que cualquier
nmero x que sea menor o igual a 5 har que la proposicin r sea verdadera. Cualquier
nmero x cuyo valor est por encima de 5 har que r sea falsa. Para la Proposicin s
tenemos que nicamente ser el nmero y = 3 el que har que sta sea verdadera.
Evidentemente cualquier nmero y diferente al 3 nos llevar a la conclusin de que s es
falsa. Retomando nuestra discusin respecto a la Conjuncin u, las preguntas ahora seran:
bajo qu condiciones u ser verdadera? Baj que condiciones u ser falsa? Habiendo
analizado a las Proposiciones r y s, y tomando en consideracin la definicin del conectivo
, tenemos las siguientes posibilidades:

6
Captulo 1. Lgica Matemtica

Si r es verdadera y s es verdadera entonces u es verdadera.


Si r es falsa y s es verdadera entonces u es falsa.
Si r es verdadera y s es falsa entonces u es falsa.
Si r es falsa y s es falsa entonces u es falsa.
Debe ser claro que nicamente tendremos las 4 posibilidades antes descritas. Tres de ellas
conducen a que u sea falsa y una nos lleva a determinar que u es verdadera. Considrese
una Proposicin para la cual se han identificado todas las Proposiciones Simples que la
conforman. A cada una de las posibles asignaciones de verdad o falsedad que pueden tener
de manera simultnea tales Proposiciones Simples se le llama un Estado. Retomando
nuestro ejemplo con la Proposicin u tenemos que sta se forma por dos Proposiciones
Simples y cuenta con 4 posibles estados. En el caso de la Proposicin El nmero natural x
es un nmero par tenemos que sta ya es simple y considerando su correspondiente
discusin tenemos que nicamente cuenta con 2 posibles estados.

Consideremos ahora a la siguiente Proposicin Compuesta d:

d: (a b) c

Cuntos posibles estados se presentarn en d? Supongamos que a, b y c son efectivamente


Proposiciones simples, realmente no nos interesa lo que afirmen, slo nos interesa que cada
una puede presentar una de las siguientes posibilidades: ser verdadera o ser falsa.
Obtengamos los posibles estados de d:
a es verdadera, b es verdadera, c es verdadera.
a es verdadera, b es verdadera, c es falsa.
a es verdadera, b es falsa, c es verdadera.
a es verdadera, b es falsa, c es falsa.
a es falsa, b es verdadera, c es verdadera.
a es falsa, b es verdadera, c es falsa.
a es falsa, b es falsa, c es verdadera.
a es falsa, b es falsa, c es falsa.
Un momento de meditacin podr ayudar a verificar que efectivamente no se tienen ms
posibles estados. En total d presenta 8 estados. Para determinar la veracidad o falsedad de d
dependiendo de cada uno de esos estados debemos tomar en consideracin a los conectivos
presentes en d. Como siempre, los parntesis nos indican el orden en que debern ser
evaluados los conectivos:
Estado a verdadera, b verdadera, c verdadera:
o (a b) es verdadera. d: (a b) c es verdadera.
Estado a verdadera, b verdadera, c falsa:
o (a b) es verdadera. d: (a b) c es verdadera.
Estado a verdadera, b falsa, c verdadera:
o (a b) es falsa. d: (a b) c es verdadera.
Estado a verdadera, b falsa, c falsa:
o (a b) es falsa. d: (a b) c es falsa.
Estado a falsa, b verdadera, c verdadera:
o (a b) es falsa. d: (a b) c es verdadera.

7
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Estado a falsa, b verdadera, c falsa:


o (a b) es falsa. d: (a b) c es falsa.
Estado a falsa, b falsa, c verdadera:
o (a b) es falsa. d: (a b) c es verdadera.
Estado a falsa, b falsa, c falsa:
o (a b) es falsa. d: (a b) c es falsa.
Se tiene entonces que 5 de los posibles de estados de la Proposicin d hacen que sta sea
verdadera. Evidentemente los 3 restantes estados provocan que d sea falsa.

En este punto debe haberse observado ya un patrn que relaciona al nmero posible
de estados con el nmero de Proposiciones Simples que forman a una Proposicin:

Toda Proposicin formada por n Proposiciones Simples tiene 2n posibles estados.

Si n = 1 entonces la Proposicin tiene 21 = 2 estados.


Si n = 2 entonces la Proposicin tiene 22 = 4 estados.
Si n = 3 entonces la Proposicin tiene 23 = 8 estados.
Si n = 4 entonces la Proposicin tiene 24 = 16 estados.
Y as sucesivamente.

Sea el conjunto en el cual se encuentre cualquier Proposicin ya sea simple o


compuesta. Debe ser claro que se forma por un nmero infinito de Proposiciones. Sin
embargo, establecer nuestro Universo de trabajo. A partir de este punto simplemente
consideraremos a las Proposiciones como elementos que se pueden tomar de y no nos
interesar lo que afirmen. Slo nos interesa que cada una puede ser caracterizada como
verdadera o como falsa.

Ahora sea p cualquier proposicin en el conjunto . Definimos a la Tabla de


Verdad de p como una tabla en la que se listan todos sus posibles estados. Adems tambin
se presentar el valor de verdad o falsedad de p de acuerdo a cada uno de los estados. El
nmero de renglones y columnas en la tabla depender del nmero de proposiciones que
conformen a p. Por ejemplo, sea p una proposicin simple. Entonces su tabla de verdad es
la siguiente:

p p
V V
F F

Dado que no tenemos informacin adicional sobre p entonces nicamente sabemos que
puede ser verdadera o falsa. Por ello solo se tiene una columna en donde se listan sus dos
posibles estados. Ahora bien, en la segunda columna se listan los valores de verdad o
falsedad de p en funcin de cada uno de sus estados. Pero dado que no hay conectivos y
otras proposiciones involucradas es que la segunda columna es igual a la primera.

8
Captulo 1. Lgica Matemtica

Ahora consideremos a la proposicin p q. Es claro que sta es una proposicin


compuesta formada por dos proposiciones simples p y q conectadas por una disyuncin.
Entonces la tabla de verdad de p q estar dada por:

p q pq
V V V
V F V
F V V
F F F

En este caso tenemos 4 posibles estados y la ltima columna presenta el valor de verdad o
falsedad de p q de acuerdo a cada uno de los estados en consideracin. De hecho, hemos
presentado a la Tabla de Verdad para la Disyuncin.

La siguiente es la Tabla de Verdad para la Conjuncin:

p q pq
V V V
V F F
F V F
F F F

La Tabla de Verdad para la Implicacin o Condicional:

p q pq
V V V
V F F
F V V
F F V

Y finalmente tenemos a la Tabla de Verdad para la Negacin:

p p
V F
F V

Reconsideremos a la Proposicin compuesta (a b) c. Sabemos que cuenta con 8


estados. Sabemos que su tabla de verdad deber presentar tres columnas asociadas a las
proposiciones a, b y c. Sin embargo, es tambin vlido agregar columnas adicionales que
nos auxilien para determinar de manera clara los estados con los cuales la proposicin en
cuestin es verdadera o falsa. En nuestro caso actual podemos agregar una columna en
donde se presenten los valores asociados a la proposicin a b los cuales a su vez van en
funcin de los estados formados nicamente por a y b. Ya contando con stos ltimos
simplemente procedemos a evaluarlos con aquellos valores que puede tomar la proposicin
c, considerando el conectivo , a fin de determinar los valores finales de (a b) c.
Entonces se tendr:

9
Una Introduccin a las Matemticas Discretas y Teora de Grafos

a b c a b (a b) c
V V V V V
V V F V V
V F V F V
V F F F F
F V V F V
F V F F F
F F V F V
F F F F F

Considrese la Proposicin ((p q) (q r)) (p r). sta depende de las


proposiciones simples p, q y r. Para determinar la tabla de verdad agregaremos cuatro
columnas adicionales. Cada una de estas columnas corresponder respectivamente a p q,
q r, p r y finalmente (p q) (q r). Debe ser claro que los valores asociados a la
proposicin (p q) (q r) irn en funcin de los valores asociados a las proposiciones
p q y q r. stos a su vez estarn dados por los posibles estados formados por p y q, en
el caso de p q, y por lo estados formados por q y r, en el caso de q r. Una vez que se
cuente con toda esta informacin entonces podremos dar solucin inmediata a la
proposicin objetivo ((p q) (q r)) (p r).

p q r p q q r p r (p q) (q r) ((p q) (q r)) (p r)
V V V V V V V V
V V F V F F F F
V F V F V V F F
V F F F V F F F
F V V V V V V V
F V F V F V F F
F F V V V V V V
F F F V V V V V

Supngase que se tienen dos proposiciones p y q en para las cuales con el mismo
estado ambas presentan el mismo valor de verdad o falsedad. Si esta propiedad se cumple
para cada uno de sus posibles estados entonces se dice que p y q son Lgicamente
Equivalentes y se le denota como p q. En trminos llanos esto se traduce en que las
tablas de verdad de p y q son iguales.

Ntese que el verificar mediante tablas de verdad si para cualesquiera dos


proposiciones p y q en se tiene su equivalencia lgica es en s una Demostracin o
Prueba. Ello se debe a que estamos comprobando que efectivamente la Proposicin

pq

es verdadera. Toda Proposicin para la cual se presenta una demostracin que permite
concluir que lo que afirma su enunciado es verdadero es llamada Teorema. La manera en
que se plantea el enunciado y la forma en que se aborda su demostracin depende del rea

10
Captulo 1. Lgica Matemtica

al cual est asociado el Teorema en cuestin. Por ejemplo, un Teorema que afirme algo
dentro del rea de la Geometra seguramente utilizar simbologa y mtodos de
demostracin aparentemente diferentes a aquellos presentes en el rea de la Aritmtica. Sin
embargo, algo que tendrn en comn todas las reas de la Matemtica es que los Teoremas
finalmente son proposiciones y sus mtodos de demostracin utilizarn herramientas
proporcionadas precisamente por la Lgica Matemtica. En las siguientes secciones
ahondaremos ms en este ltimo punto. Por el momento, consideraremos Teoremas
referentes a la verificacin de Equivalencia Lgica de proposiciones usando Tablas de
Verdad como mtodo de demostracin.

Demostremos entonces nuestro primer Teorema. La formalidad establece que se


debe enunciar debidamente el enunciado que se quiere verificar es verdadero.
Posteriormente se establece mediante la palabra Demostracin que sta ha iniciado como
tal. Cuando se ha finalizado la demostracin, haciendo ver que efectivamente el Teorema es
verdadero, entonces se utiliza el smbolo para indicar el fin de la demostracin.

Teorema 1.1: Para cualesquiera proposiciones p, q, r en se tiene que

(p q) r p (q r)

Demostracin:

Al comparar las tablas de verdad de (p q) r y p (q r) se verifica la equivalencia


lgica (ntese que se han introducido columnas auxiliares).

p q r (p q) (q r) (p q) r p (q r)
V V V V V V V
V V F V V V V
V F V V V V V
V F F V F V V
F V V V V V V
F V F V V V V
F F V F V V V
F F F F F F F

Ntese que nuestro Teorema inicia estableciendo Para cualesquiera proposiciones


p, q, r en . Ello quiere decir que la validez de la equivalencia lgica entre (p q) r y
p (q r) es independiente de lo que especficamente afirmen las proposiciones p, q y r.
Sabemos que el nmero de proposiciones en es infinito, sin embargo el Teorema que
acabamos de probar es vlido para cualquier terna de proposiciones p, q, r que tomemos de
. Esto es posible ya que lo que tienen en comn todas esas proposiciones es que pueden
ser verdaderas o falsas y es precisamente la nica propiedad que nos interesa de ellas.

11
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Teorema 1.2: Para cualquier proposicin p en se tiene que

(p) p

Demostracin:

Al comparar las tablas de verdad de p y (p) se verifica la equivalencia lgica.

p p p (p)
V F V V
F V F F

Teorema 1.3: Para cualesquiera proposiciones p, q en se tiene que

p q p q

Demostracin:

Al comparar las tablas de verdad de p q y p q se verifica la equivalencia lgica.

p q p pq p q
V V F V V
V F F F F
F V V V V
F F V V V

Una proposicin es llamada Tautologa si para cada uno de sus estados sta toma
siempre el valor de verdadero.

Teorema 1.4: Para cualesquiera proposiciones p y q en se tiene que la proposicin


compuesta (p q) p es una tautologa.

12
Captulo 1. Lgica Matemtica

Demostracin:

Mediante la tabla de verdad de (p q) p se verifica que para todos sus posibles estados
sta es verdadera.

p q pq (p q) p
V V V V
V F F V
F V F V
F F F V

Teorema 1.5: Para cualquier proposicin p en se tiene que p p es una tautologa.

Demostracin:

Mediante la tabla de verdad de p p se verifica que para todos sus posibles estados sta
es verdadera.

p p p p
V F V
F V V

Una proposicin es una Contradiccin si para cada uno de sus estados sta toma
siempre el valor de falso.

Teorema 1.6: Para cualquier proposicin p en se tiene que p p es una


contradiccin.

Demostracin:

Mediante la tabla de verdad de p p se verifica que para todos sus posibles estados sta
es falsa.

p p p p
V F F
F V F

13
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Cuando se identifican proposiciones las cuales han sido caracterizadas como


Tautologas o Contradicciones se tiene que es posible utilizar la nocin de equivalencia
lgica para denotarlas como tal sin tener que recurrir a una mencin textual o a su tabla de
verdad. En este sentido si se cuenta con una proposicin p la cual es una tautologa
entonces simplemente se dir que p es Lgicamente Equivalente al Valor Verdadero,
denotndolo como p V. Si q es una proposicin caracterizada como contradiccin
entonces se dir que q es Lgicamente Equivalente al Valor Falso, q F. Por lo tanto, los
enunciados de los Teoremas 1.4, 1.5 y 1.6 pueden ser tambin establecidos de la siguiente
manera:
Teorema 1.4: Para cualesquiera proposiciones p y q en se tiene (p q) p V.
Teorema 1.5: Para cualquier proposicin p en se tiene que p p V.
Teorema 1.6: Para cualquier proposicin p en se tiene que p p F.
Una cuestin que surge ahora es que si expresamos que p V o p F ello quiere decir que
entonces tanto el valor de Verdad como el de Falsedad son ambos proposiciones ya que la
notacin introducida los compara precisamente contra proposiciones. Por lo tanto, los
valores V y F pueden verse y manipularse como proposiciones. Simplemente debemos
tomar en cuenta, y en realidad no debera ser difcil apreciarlo, que V representa a cualquier
proposicin que sea una tautologa y que F representa a cualquier proposicin que sea una
contradiccin.

Si una proposicin tiene la siguiente estructura, donde p y q son cualesquiera


proposiciones en :

pqqp

Entonces a tal proposicin la llamaremos Bicondicional y la denotaremos por

pq

Construimos la tabla de verdad de la bicondicional a partir de su definicin en trminos de


los conectivos condicional y conjuncin:

p q pq qp pqqp
V V V V V
V F F V F
F V V F F
F F V V V

De acuerdo a la tabla tenemos entonces que p q es verdadera cuando ambas p y q son


verdaderas o cuando ambas son falsas. En la prctica a p q se le traduce como p si y
slo si q.

Veamos como es que mediante el uso de la bicondicional podemos establecer un


mecanismo de demostracin alternativo para la verificacin de proposiciones lgicamente
equivalentes.

14
Captulo 1. Lgica Matemtica

Dos proposiciones p y q son lgicamente equivalentes si la bicondicional p q es


una tautologa, es decir:

p q si se cumple que p q V.

Por ejemplo, probaremos que (p q) es lgicamente equivalente a p q


mediante el uso de la bicondicional. Es decir, se demostrar el siguiente

Teorema 1.7: Para cualesquiera proposiciones p, q en se tiene que

(p q) (p q)

Demostracin:

Se proceder a verificar que (p q) (p q) V.

p q q p q (p q) p q (p q) (p q)
V V F V F F V
V F V F V V V
F V F V F F V
F F V V F F V

Dado que (p q) (p q) es una tautologa entonces (p q) (p q).

Teorema 1.8: Para cualesquiera proposiciones p, q en se tiene que

p q q p

15
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Demostracin:

Se proceder a verificar que (p q) (q p) V.

p q p q p q q p (p q) (q p)
V V F F V V V
V F F V F F V
F V V F V V V
F F V V V V V

Dado que (p q) (q p) es una tautologa entonces p q q p.

Teorema 1.9: Para cualesquiera proposiciones p, q en se tiene que

pqqp

Demostracin:

Se proceder a verificar que (p q) (q p) V.

p q pq qp (p q) (q p)
V V V V V
V F V V V
F V V V V
F F F F V

Dado que (p q) (q p) es una tautologa entonces p q q p.

Teorema 1.10: Para cualesquiera proposiciones p, q, r en se tiene que

p (q r) (p q) (p r)

16
Captulo 1. Lgica Matemtica

Demostracin:

Se proceder a verificar que (p (q r)) ((p q) (p r)) V.

(p q) (p (q r))
p q r p q p r q r p (q r)
(p r) ((p q) (p r))
V V V V V V V V V
V V F V F V V V V
V F V F V V V V V
V F F F F F F F V
F V V F F V F F V
F V F F F V F F V
F F V F F V F F V
F F F F F F F F V

Dado que (p (q r)) ((p q) (p r)) es una tautologa entonces


p (q r) (p q) (p r).

Teorema 1.11: Para cualesquiera proposiciones p, q en se tiene que

(p q) p q

Demostracin:

Se proceder a verificar que (p q) p q V.

p q p q (p q) p q p q (p q) p q
V V V F F F F V
V F V F F V F V
F V V F V F F V
F F F V V V V V

Dado que (p q) p q es una tautologa entonces (p q) p q

Teorema 1.12: Para cualquier proposicin p en se tiene que

pVp

17
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Demostracin:

Recordemos que V como proposicin es una tautologa. La proposicin p puede ser


verdadera o falsa. Ello implica que en la tabla de verdad p V simplemente evaluaremos
los posibles valores de p siempre contra V, que es el nico valor que puede tomar una
tautologa. Finalmente determinaremos si p V p es una tautologa.

p V pV pVp
V V V V
F V F V

Dado que p V p es una tautologa entonces p V p.

Antes de cerrar la presente Seccin consideremos el siguiente procedimiento. Por


ejemplo, sea f una proposicin cuyos valores de verdad o falsedad dependen de tres
proposiciones p, q y r. Se sabe de antemano que la Tabla de Verdad de f es tal y como se
presenta en la Tabla 1.1.

Tabla 1.1. Tabla de Verdad asociada a una proposicin f


compuesta por 3 proposiciones simples.
p q r f
V V V V
V V F F
V F V F
V F F F
F V V F
F V F V
F F V V
F F F F

La pregunta a plantear es: Cmo se expresa a f como una proposicin compuesta


formada por las proposiciones p, q y r? Es claro que contamos con los estados de f y
tambin contamos con los valores que sta toma para cada uno de tales estados. El
problema sera determinar qu conectivos utilizar y como colocarlos entre p, q y r. El
procedimiento a definir permitir determinar a f como proposicin compuesta formada
precisamente por p, q y r pero utilizando nicamente los conectivos conjuncin, disyuncin
y negacin.

Tomemos nicamente los renglones en los que f tiene la instancia V. Vase la


Tabla 1.2.

18
Captulo 1. Lgica Matemtica

Tabla 1.2. Los estados para los cuales


la proposicin f, de la Tabla 1.1, es verdadera.
p q r f
V V V V
F V F V
F F V V

Considrese el estado de p, q y r en el tercer rengln (Tabla 1.2) el cual est dado


por (F, F, V). Ntese que:
Si p es falso entonces p es verdadero.
Si q es falso entonces q es verdadero.
Si r es verdadero entonces obviamente r es verdadero.
Ntese que si p, q y r son falso, falso y verdadero, respectivamente, entonces la proposicin

p q r

se hace verdadera. Se puede comprobar, mediante tabla de verdad, que el estado (F, F, V)
es el nico que hace que la proposicin p q r sea verdadera.

Ahora considrese el estado de p, q y r en el segundo rengln de la Tabla 1.2 el cual


est dado por (F, V, F):
Si p es falso entonces p es verdadero.
Si q es verdadero entonces obviamente q es verdadero.
Si r es falso entonces r es verdadero.
Si p, q y r es falsa, verdadera y falsa, respectivamente, entonces la proposicin

p q r

es verdadera. Nuevamente se puede verificar que la instancia (F, V, F) es la nica que hace
que la proposicin p q r sea verdadera.

Finalmente considrese el estado de p, q y r en el primer rengln de la Tabla 1.2 el


cual est dado por (V, V, V):
Si p es verdadero entonces obviamente p es verdadero.
Si q es verdadero entonces obviamente q es verdadero.
Si r es verdadero entonces obviamente r es verdadero.
Si p, q y r son todas verdaderas entonces la proposicin

pqr

es verdadera. Anlogamente a las proposiciones p q r y p q r, la instancia


(V, V, V) es la nica que hace que la proposicin p q r sea verdadera.

19
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Ntese que lo que hemos hecho ha sido considerar nicamente a los tres estados de
la proposicin f para los cuales sta es verdadera. A partir de estos estados hemos
construido tres proposiciones compuestas que involucran a p, q y r as como los conectivos
de conjuncin y negacin:
p q r
p q r
pqr
Ahora uniremos a estas tres proposiciones utilizando el conectivo de disyuncin para
formar la siguiente proposicin compuesta:

(p q r) (p q r) (p q r)

Verifiquemos que la proposicin compuesta que acabamos de obtener tenga la misma Tabla
de Verdad que la proposicin f:

(p q r)
p q r p q r p q r p q r (p q r) f
(p q r)
V V V F F V V V
V V F F F F F F
V F V F F F F F
V F F F F F F F
F V V F F F F F
F V F F V F V V
F F V V F F V V
F F F F F F F F

Por lo tanto se ha demostrado que

f (p q r) (p q r) (p q r)

Es decir, hemos ilustrado un procedimiento mediante el cual es posible obtener para


cualquier proposicin, dada su tabla de verdad, aquella proposicin compuesta que le es
lgicamente equivalente. Tal proposicin compuesta estar dada en trminos de los
conectivos lgicos de conjuncin, disyuncin y negacin.

Veamos un segundo ejemplo. Considrese a la proposicin g con la siguiente tabla


de verdad:

20
Captulo 1. Lgica Matemtica

Tabla 1.3. Tabla de Verdad asociada a una proposicin g


compuesta por 4 proposiciones simples.
a b c d g
V V V V V
V V V F V
V V F V F
V V F F F
V F V V F
V F V F F
V F F V V
V F F F V
F V V V F
F V V F F
F V F V F
F V F F V
F F V V V
F F V F F
F F F V F
F F F F F

Consideremos nicamente a aquellos estados para los cuales g es verdadera. Vase


la Tabla 1.4.

Tabla 1.4. Los estados para los cuales


la proposicin g, de la Tabla 1.3, es verdadera.
a b c D g
V V V V V
V V V F V
V F F V V
V F F F V
F V F F V
F F V V V

De la Tabla 1.4 consideremos cada uno de los estados a fin de construir nuestras
proposiciones compuestas auxiliares:

Estado (V,V,V,V)
o Si a es verdadero entonces a es verdadero.
o Si b es verdadero entonces b es verdadero.
o Si c es verdadero entonces c es verdadero.
o Si d es verdadero entonces d es verdadero.
o Por lo tanto se tiene que a b c d es verdadera nicamente con (V,V,V,V).

21
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Estado (V,V,V,F)
o Si a es verdadero entonces a es verdadero.
o Si b es verdadero entonces b es verdadero.
o Si c es verdadero entonces c es verdadero.
o Si d es falso entonces d es verdadero.
o Por lo tanto se tiene que a b c d es verdadera nicamente con (V,V,V,F).

Estado (V,F,F,V)
o Si a es verdadero entonces a es verdadero.
o Si b es falso entonces b es verdadero.
o Si c es falso entonces c es verdadero.
o Si d es verdadero entonces d es verdadero.
o Por lo tanto se tiene que a b c d es verdadera nicamente con (V,F,F,V).

Estado (V,F,F,F)
o Si a es verdadero entonces a es verdadero.
o Si b es falso entonces b es verdadero.
o Si c es falso entonces c es verdadero.
o Si d es falso entonces d es verdadero.
o Por lo tanto se tiene que a b c d es verdadera nicamente con (V,F,F,F).

Estado (F,V,F,F)
o Si a es falso entonces a es verdadero.
o Si b es verdadero entonces b es verdadero.
o Si c es falso entonces c es verdadero.
o Si d es falso entonces d es verdadero.
o Por lo tanto se tiene que a b c d es verdadera nicamente con (F,V,F,F).

Estado (F,F,V,V)
o Si a es falso entonces a es verdadero.
o Si b es falso entonces b es verdadero.
o Si c es verdadero entonces c es verdadero.
o Si d es verdadero entonces d es verdadero.
o Por lo tanto se tiene que a b c d es verdadera nicamente con (F,F,V,V).

Ahora se procede a conectar mediante disyunciones a las seis proposiciones


compuestas que hemos obtenido a fin de obtener la correspondiente proposicin
lgicamente equivalente a g:

g (a b c d) (a b c d) (a b c d) (a b c d)
(a b c d) (a b c d)

22
Captulo 1. Lgica Matemtica

1.3 Algebra de Proposiciones


Consideremos al conjunto de los Nmeros Reales, \ , tomando en cuenta
nicamente sus operaciones de suma (+) y producto (). Tenemos pleno conocimiento de
que bajo estas dos operaciones para cualesquiera nmeros reales x, y, z se cumplen las
siguientes propiedades que forman parte de la bien conocida lgebra de los Nmeros
Reales:
Cerradura:
o x + y es un nmero real.
o x y es un nmero real.
Conmutatividad:
o x+y=y+x
o xy=yx
Asociatividad:
o x + (y + z) = (x + y) + z
o x (y z) = (x y) z
Distributividad:
o x (y + z) = x y + x z
Existencia de Elementos Neutros:
o Existe un nmero real 0 (cero) tal que x + 0 = 0 + x = x
o Existe un nmero real 1 (uno) tal que x1 = 1x = x
Existencia de los Elementos Inversos:
o Existe un nmero real (x) tal que x + (-x) = 0
o Existe un nmero real x-1 0 tal que xx-1 = 1

Estas propiedades representan un conjunto de herramientas tiles para dar solucin


a problemas bien conocidos como el siguiente:

Encontrar el nmero real x tal que 3x + 10 = -4

De hecho, ntese que el problema antes planteado puede ser reespecificado como la
siguiente proposicin:

Existe un nmero real x tal que 3x + 10 = -4

Si efectivamente existe el nmero deseado x entonces es que nuestra proposicin es


Verdadera. De lo contrario sta tendra que ser caracterizada como Falsa. Lo ms
interesante es que entonces al momento de dar solucin a una Ecuacin estamos
demostrando que una proposicin es verdadera. Ello quiere decir que siempre que hemos
resuelto una ecuacin en realidad hemos demostrado un Teorema. Ahora bien, debe ser
claro que debemos contar con herramientas y una metodologa para abordar la
correspondiente demostracin. Una opcin, totalmente vlida, podra ser el considerar uno
por uno a todo nmero real, sustituirlo en la expresin 3x + 10 y si la evaluacin da a lugar
al valor -4 entonces finalizamos. Sin embargo esto en realidad no es del todo prctico.
Precisamente contamos con un lgebra de los nmeros reales que nos permitir identificar

23
Una Introduccin a las Matemticas Discretas y Teora de Grafos

al valor de x si ste existe. La metodologa a seguir es simplemente aplicar las propiedades


que sean convenientes a fin de despejar a x tomando en cuenta que tambin deber
mantenerse en todo momento el equilibrio de la ecuacin:

Teorema 1.13: Existe un nmero real x tal que 3x + 10 = -4.

Demostracin:

3x + 10 = -4
Justificacin:
Lado izquierdo:
3x + 10 + (-10) = -4 + (-10)
Existe un nmero real (10) tal que
10 + (-10) = 0.
3x + 0 = -4 + (-10)
Justificacin:
Lado izquierdo:
El 0 (cero) es el elemento neutro
3x = -14 bajo la suma de reales.
Lado derecho:
La suma de los reales -4 + (-10) es el
nmero real -14.
Justificacin:
Lado izquierdo:
1 1 Existe un nmero real
1
tal que
3 x = -14
3
3 3
1
3 = 1.
3
1
1 x = -14
3
Justificacin:
Lado izquierdo:
El 1 (uno) es el elemento neutro bajo
el producto de reales.
14
x= Lado derecho:
3 1
El producto de los reales -14 y es
3
14
el nmero real .
3

Por lo tanto, al aplicar las propiedades de los nmeros reales se ha verificado la existencia
14
del nmero real x = para el cual 3x + 10 = -4.
3

24
Captulo 1. Lgica Matemtica

Ntese como es que los pasos en la demostracin del Teorema 1.13 no son ms que
aquellas operaciones utilizadas comnmente para resolver nuestra ecuacin. Cada paso es
debidamente justificado al hacer mencin de la propiedad de los nmeros reales que se est
utilizando. Obsrvese que inicialmente partimos de la proposicin 3x + 10 = -4 la cual
suponemos que es verdadera. Posteriormente se aplic la propiedad que nos garantiza la
existencia de los elementos inversos bajo la suma. Con ello se obtuvo la proposicin
3x + 10 + (-10) = -4 + (-10) la cual debe ser claro que es consecuencia de 3x + 10 = -4 y de
la propiedad considerada. De all que 3x + 10 = -4 es el antecedente de
3x + 10 + (-10) = -4 + (-10) y por ello el uso del conectivo . Ahora bien, previamente
mencionamos que 3x + 10 = -4 se asuma verdadera y tambin sabemos que la propiedad
referente a la existencia de elemento inverso bajo la suma es tambin verdadera, por lo
tanto, la proposicin 3x + 10 + (-10) = -4 + (-10) debe asumirse verdadera. A partir de sta
se obtiene la proposicin 3x + 0 = -4 + (-10). Por lo tanto 3x + 10 + (-10) = -4 + (-10) es el
antecedente de 3x + 0 = -4 + (-10). Por ello se tiene nuevamente el uso del conectivo .
Debe ser evidente que se tiene entonces la cadena de implicaciones:

14
(3x + 10 = -4) (3x + 10 + (-10) = -4 + (-10)) (3x + 0 = -4+(-10)) x =
3

Donde el ltimo consecuente es precisamente la solucin de la ecuacin. Todas las


proposiciones son efectivamente verdaderas: recurdese que durante la demostracin
asumamos que eran verdaderas. Pero al llegar a nuestra meta entonces podemos declarar
que cada una es lgicamente equivalente al valor V. Sustituyendo tenemos ahora:

VVVV

Y por las propiedades del conectivo tenemos que

VVVVV

Es claro que desde el punto de vista del lgebra de los nmeros reales esta ltima expresin
no es muy til, pero desde otro punto de vista tenemos que esta expresin nos proporciona
un sustento lgico que valida al Teorema 1.13.

Consideremos al siguiente Teorema:

Existe un nmero real x tal que x2 + 5 = 2.

Procedamos a utilizar nuestra lgebra de los nmeros reales (tambin recurriremos a las
propiedades de los exponentes y del operador ):

25
Una Introduccin a las Matemticas Discretas y Teora de Grafos

x2 + 5 = 2
Justificacin:
2
x + 5 + (-5) = 2 + (-5) Lado izquierdo:
Existe un nmero real (5) tal que 5 + (-5) = 0.
x2 + 0 = 2 + (-5)
Justificacin:
Lado izquierdo:
El 0 (cero) es el elemento neutro bajo la suma de
x2 = -3
reales.
Lado derecho:
La suma de los reales 2 + (-5) es el nmero real -3.
Justificacin:
x 2 = 3 (-3)2 = (3)2
x = 3

Efectivamente hemos logrado despejar a x. El problema radica en que 3 no es un


nmero real. Por lo tanto, el ltimo consecuente, x = 3 es falso, ya que el enunciado
establece claramente que se espera que x sea un real (de hecho podamos haber llegado a tal
conclusin desde la proposicin x 2 = 3 ). Todos los antecedentes se asumieron
verdaderos, por lo que se tiene entonces que:

(x2 + 5 = 2) (x2 + 5 + (-5) = 2 + (-5)) ( ) (


x 2 = 3 x = 3 )

VVVF

Verificando las propiedades del conectivo se tiene que

(V V V) F V F F

Con lo cual queda establecida, desde el punto de vista lgico, la falsedad del Teorema
propuesto. Ahora bien, obsrvese que si el conjunto de valores que puede tomar x es ahora
el conjunto de los Nmeros Complejos ^ entonces el Teorema se vuelve verdadero ya que
efectivamente x = 3 es un nmero complejo:

Teorema 1.14: Existe un nmero complejo x tal que x2 + 5 = 2.

26
Captulo 1. Lgica Matemtica

Hemos visto como es que el lgebra de los Nmeros Reales nos dota de un
conjunto de proposiciones cuya validez es siempre asumida cierta y por medio de las cuales
es posible verificar de manera concreta nuevas afirmaciones. Estas afirmaciones de ser
verificadas mediante un proceder exhaustivo, como confirmar usando cada uno de los
nmeros reales, simplemente haran imprctico el proceso de demostracin de Teoremas
dentro del rea del lgebra de los Nmeros Reales. Ahora bien, en la Seccin anterior ya se
introdujo una metodologa para la demostracin del Teoremas que tienen que ver con la
equivalencia lgica entre Proposiciones. Esta metodologa estaba basada en el uso de las
Tablas de Verdad. Decamos que dos proposiciones son lgicamente equivalentes si sus
Tablas de Verdad son iguales. De esta forma es como probamos los Teoremas 1.1 a 1.12.
Sin embargo, tenemos conocimiento de que el nmero de estados para una proposicin
dada crece de manera exponencial conforme aumentan el nmero de proposiciones simples
que la conforman. Al respecto, en su momento se estableci la siguiente propiedad:

Toda Proposicin formada por n Proposiciones Simples tiene 2n posibles estados.

Las pruebas de los Teoremas 1.1 a 1.12 en realidad fueron sencillas ya que en esos casos
estbamos lidiando con proposiciones formadas por 1, 2 o 3 proposiciones simples lo que
implicaba analizar 2, 4 u 8 estados respectivamente. Sin embargo, en la prctica es comn
el requerir verificar la equivalencia lgica de proposiciones conformadas por decenas o
cientos de proposiciones simples. Esto impone entonces un problema de ndole temporal en
el sentido de que si bien es muy sencillo verificar si dos estados son iguales, el nmero total
de estados por verificar es realmente enorme. Veamos unos ejemplos:

Si una proposicin se forma por:

o n = 10 proposiciones simples, se tienen 210 = 1,024 estados.


o n = 16 proposiciones simples, 216 = 65,536 estados.
o n = 32 proposiciones simples, 232 = 4,294,967,296 estados.
o n = 64 proposiciones simples, 264 = 18,446,744,073,709,551,616 estados.

En este punto puede surgir la opcin de proponer que una computadora se encargue de
generar y comparar los estados, lo cual es en realidad muy fcil de implementar.
Supongamos que una cierta computadora procesa 1,000,000 de estados en un segundo
(E/Seg). Asumamos que estamos en la situacin n = 64 (un caso realmente simple en la
prctica). Entonces tendremos que el tiempo que le tomar a nuestro equipo de cmputo en
procesar a todos los estados ser:

27
Una Introduccin a las Matemticas Discretas y Teora de Grafos

264 E
tn =64 =
1, 000, 000 E / Seg
18, 446, 744, 073, 709,551, 616 E
=
1, 000, 000 E / Seg
= 18,446,744,073,709.551616 Seg
307,445,734,561.825 minutos
5,124,095,576.0304 horas
213,503,982.334 das
584,942.417 aos
5,849.424 siglos
584.9 milenios

Debe ser sumamente claro que no es de ninguna manera factible el esperar casi 600
milenios para determinar que efectivamente dos proposiciones con n = 64 proposiciones
simples son lgicamente equivalentes. En este punto debe surgir tambin una comparacin
con la situacin que plantebamos previamente referente a encontrar la solucin de una
ecuacin al evaluar uno por uno cada posible nmero real.

Por otro lado, hemos de hacer notar algunas observaciones y comparaciones con las
propiedades de los nmeros reales, las cuales surgen de los Teoremas demostrados en la
Seccin anterior. Supngase por el momento que el operador de suma (+) es anlogo al
conectivo de disyuncin (), que el operador de producto () es anlogo al conectivo de
conjuncin () y finalmente que el operador para denotar un nmero negativo (-) es
anlogo al conectivo de negacin ().

Teorema 1.1: Para cualesquiera proposiciones p, q, r en se tiene que


(p q) r p (q r).
o Ntese su similitud con la Propiedad Asociativa de la suma de nmeros reales:
(x + y) + z = x + (y + z). Ello quiere decir que entonces es posible nombrar al
Teorema 1.1 como Propiedad Asociativa del Operador de Disyuncin. Adems,
ser posible aplicar nuestra nueva propiedad bajo el contexto de proposiciones de
manera similar a como es aplicado en el contexto de los nmeros reales.

Teorema 1.9: Para cualesquiera proposiciones p, q en se tiene que p q q p.


o Sabemos que el operador de suma bajo los reales conmuta: x + y = y + x. Y lo
mismo sucede con el conectivo de disyuncin. Es decir, formalmente se tiene la
Propiedad Conmutativa de la Disyuncin.

28
Captulo 1. Lgica Matemtica

Teorema 1.10: Para cualesquiera proposiciones p, q, r en se tiene que


p (q r) (p q) (p r).
o Considrese a la Propiedad Distributiva de los Nmeros Reales respecto al
Producto: x (y + z) = x y + x z. Tenemos nuevamente un punto de similitud ya
que es claro que en el Teorema 1.10 tenemos precisamente la Distributividad
respecto a la Conjuncin. Ello quiere decir que la expresin p (q r) puede ser
desarrollada como (p q) (p r). Por otro lado tambin tenemos que en la
expresin (p q) (p r) es posible factorizar a la proposicin p a fin de obtener
p (q r).

Teorema 1.12: Para cualquier proposicin p en se tiene que p V p.


o Sabemos que el nmero 1 tiene la propiedad de ser el elemento Neutro bajo el
producto: x 1 = x. Del Teorema 1.12 hemos identificado a una proposicin para
cual su conjuncin con cualquier otra da como resultado sta ltima. Es decir, V es
precisamente nuestro Elemento Neutro bajo la Conjuncin.

Teorema 1.5: Para cualquier proposicin p en se tiene que p p V.


o Nuestras propiedades del lgebra de los reales nos dicen que la suma de cualquier
nmero con su inverso es cero, el elemento neutro bajo la suma: x + (-x) = 0. El
Teorema 1.5 representa un ejemplo en el cual contamos con una propiedad con un
comportamiento similar: la disyuncin entre una proposicin p y su negacin,
p p, donde tenemos que el resultado obtenido es V. En este caso hemos
verificado, para la proposicin p, la existencia de su Elemento Complementario
bajo la Disyuncin el cual es precisamente p.

En el ltimo punto tenemos que quizs la intuicin nos indicaba que el resultado de p p
debera ser el elemento neutro bajo la disyuncin, dada la analoga con la propiedad
x + (-x) = 0. Este ejemplo representa una situacin a tener bien en cuenta: que las relaciones
que hemos establecido entre nuestras propiedades de los conectivos con las propiedades de
los nmeros reales son nicamente con fines de entender como se comportan las
proposiciones bajo los conectivos definidos al observar un lgebra con la cual ya estamos
bien familiarizados. Sin embargo, no debe esperarse que los nmeros reales bajo la suma y
producto se comporten de la misma manera que las proposiciones bajo los conectivos de
disyuncin y conjuncin. Por ejemplo, el Teorema 1.11 establece que (p q) p q.
Nuestras analogas nos indicaran entonces que debera existir la propiedad de los reales
(x + y) = (-x) (-y). Es claro que esta afirmacin es falsa, pero estos comparativos nos
proporcionan indicios para inferir en un momento dado nuevas propiedades las cuales
deben ser entonces demostradas con metodologas formales.

Tenemos por lo tanto ya los elementos para establecer un lgebra de


Proposiciones en la que algunas de sus propiedades son muy similares a las presentes en el
lgebra de los Nmeros Reales:

29
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Sean p, q y r cualesquiera proposiciones en :


Propiedades de Cerradura:
o p q es una proposicin en .
o p q es una proposicin en .
o p q es una proposicin en .
o p es una proposicin en .
Propiedades de Conmutatividad:
o pqqp (Teorema 1.9)
o pqqp
Propiedades de Asociatividad:
o p (q r) (p q) r (Teorema 1.1)
o p (q r) (p q) r
Propiedades de Distributividad:
o p (q r) (p q) (p r) (Teorema 1.10)
o p (q r) (p q) (p r)
Propiedades de Idempotencia:
o ppp
o ppp
Propiedad de la Doble Negacin:
o (p) = p (Teorema 1.2)
Leyes de DMorgan:
o (p q) p q (Teorema 1.11)
o (p q) p q
Existencia de Elementos Neutros:
o pFp
o pVp (Teorema 1.12)
Existencia de Elementos Complementarios:
o p p F (Teorema 1.6)
o p p V (Teorema 1.5)
Existencia de Elementos Aniquiladores:
o pVV
o pFF
Propiedad del Condicional:
o p q p q (Teorema 1.3)
Propiedad de la Bicondicional:
o p q (p q) (q p)

La idea ahora es aplicar las propiedades de nuestra nueva lgebra a fin de dar
demostracin a Teoremas referentes a equivalencia lgica de manera ms concisa respecto
al mtodo basado en Tablas de Verdad. Es necesario mencionar que las Tablas de Verdad,
como mecanismo de demostracin, no pierden de ninguna manera validez sino que al

30
Captulo 1. Lgica Matemtica

contrario, sirven como punto de sostn para la nueva lgebra debido a que para todas las
propiedades antes presentadas se tiene que su veracidad est verificada mediante esta
metodologa

Ahora ejemplificaremos el uso de las propiedades del Algebra de Proposiciones


para la demostracin de algunos Teoremas. Los enunciados que probaremos sern de la
forma p q. La idea es manipular, aplicando nuestras propiedades, a p de forma que
obtengamos proposiciones intermedias las cuales sern lgicamente equivalentes a q. Estas
proposiciones intermedias a su vez son tambin manipuladas hasta obtener precisamente a
q. Por lo tanto se tiene que p, q y las proposiciones intermedias son todas lgicamente
equivalentes, importndonos nicamente la relacin entre p y q. Debe ser claro que si se
demuestra que p es lgicamente equivalente a q entonces q es tambin lgicamente
equivalente a p. Por lo tanto, el mtodo antes propuesto no necesariamente inicia en p,
tambin puede iniciarse la demostracin con la manipulacin de q. Abordemos la
demostracin de nuestro primer Teorema aplicando lgebra de Proposiciones.

Teorema 1.15: Para cualesquiera proposiciones p, q, r en se tiene que

p (q r) (p q) r

Demostracin:

p (q r) p (q r) (Propiedad del Condicional)


(p q) r (Propiedad Asociativa de la Disyuncin)
(p q) r (Ley de DMorgan sobre p q)
(p q) r (Propiedad del Condicional: (p q) se considera
el antecedente y r como el consecuente).

La demostracin anterior no hace referencia en ningn momento a ninguno de los 8


los posibles estados para las proposiciones p (q r) y (p q) r. Uno podra
preguntarse si existir algn estado para el cual la equivalencia entre las proposiciones en
cuestin no se haga vlida. La respuesta es que para cualquier estado la equivalencia se
preserva. Ello se debe a que las propiedades utilizadas se verifican utilizando Tablas de
Verdad y en todos los casos las equivalencias resultan ser vlidas. Es por ello que, por
ejemplo, cuando se plantea inicialmente el uso de la Propiedad del Condicional de manera
que se tiene la equivalencia p (q r) p (q r) podemos tener completa seguridad
de que independientemente del valor particular de verdad o falsedad que presenten p y
(q r) los valores de p (q r) y p (q r) siempre coincidirn porque precisamente
para la Propiedad del Condicional todos los posibles estados ya fueron verificados.

31
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Por otro lado, nuestra prueba del Teorema 1.15 requiri de 4 pasos, en donde cada
paso representa una Equivalencia Lgica y por ende a una Tabla de Verdad. De hecho, por
esta ltima mencin, debe ser claro que al haber demostrado nuestro Teorema tambin
hemos probado en el trayecto otros 4 Teoremas cuya demostracin particular es
simplemente la aplicacin de una propiedad particular del lgebra de Proposiciones:

p (q r) p (q r). Demostracin: Por Propiedad del Condicional.


p (q r) (p q) r. Demostracin: Por Propiedad Asociativa de la Disyuncin.
(p q) r (p q) r. Demostracin: Ley de DMorgan sobre p q.
(p q) r (p q) r. Demostracin: Por Propiedad del Condicional.

La conclusin final, p (q r) (p q) r surge de encadenar todos estos


resultados intermedios ya que de hecho tenemos demostrada la equivalencia lgica entre 5
proposiciones, de las cuales nos interesan nicamente la primera y la ltima.

Teorema 1.16: Para cualesquiera proposiciones p, q, r en se tiene que

p (q r) (p q) (p r)

Demostracin:

p (q r) p (q r) (Propiedad del Condicional)


(p q) (p r) (Propiedad Distributiva Respecto
a la Disyuncin)
(p q) (p r) (Propiedad del Condicional: p se considera
el antecedente y q como el consecuente).
(p q) (p r) (Propiedad del Condicional: p se considera
el antecedente y r como el consecuente).

Teorema 1.17: Para cualesquiera proposiciones p, q en se tiene que

p q (p q) (r r)

Donde r es cualquier proposicin en .

32
Captulo 1. Lgica Matemtica

Demostracin:

p q p q (Propiedad del Condicional)


p (q) (Propiedad de la Doble Negacin)
(p q) (Ley de DMorgan)
(p q) F (Existencia del Elemento Neutro en la Disyuncin)
(p q) (r r) (Existencia del Elemento Complementario en
la Conjuncin: F r r)
(p q) (r r) (Propiedad del Condicional: (p q) se considera
el antecedente y (r r) como el consecuente)

El Teorema 1.17 resulta interesante debido a que se podr apreciar que el lado
izquierdo de la equivalencia hace mencin a dos proposiciones (p y q) mientras que el
derecho cuenta con 3: p, q y r. Estamos entonces ante una situacin en la cual se tiene que
una proposicin descrita en trminos de 2 proposiciones es lgicamente equivalente a una
proposicin que cuenta con esas mismas dos proposiciones ms una adicional. La
demostracin parte de manipular a p q hasta obtener a (p q) (r r). Ello implica
que de alguna manera se deber introducir a la proposicin r. Esta manera de proceder de
ninguna forma nos es extraa. Recurramos al lgebra de los Nmeros Reales. Recordemos
que uno de los principios fundamentales al manipular una ecuacin reside en el hecho de
que es posible introducir valores para sumarlos o multiplicarlos siempre y cuando esto se
haga en ambos lados de la ecuacin. Es decir, hay que preservar el equilibrio. Sin
embargo, y gracias a la existencia de los elementos neutros, es posible sumar o multiplicar
en slo un lado de una ecuacin. Recordemos que el producto por 1 o la suma con 0 de
ninguna forma alteran a una cantidad. Por ejemplo, considrese la siguiente ecuacin de
segundo grado:

9x2 + 4 = 10

Es claro que si sumamos 0 nicamente al lado izquierdo no se altera el equilibrio:

9x2 + 4 + 0 = 10

Ahora bien, sabemos que para todo nmero real existe su correspondiente inverso de tal
forma que su suma es precisamente 0. Tenemos de manera particular que 12x + (-12x) = 0.
Es claro que si sustituimos el 0 por su equivalente 12x + (-12x) nuevamente en el lado
izquierdo de la ecuacin sta sigue sin alterarse porque en realidad no hemos dejado de
sumarle cero:

9x2 + 4 + (12x + (-12x)) = 10

33
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Es claro que este tipo de manipulaciones van de acuerdo a un objetivo que deseamos
alcanzar. Por ejemplo, en el caso de nuestra ecuacin quizs desebamos poder expresar
parte de su lado izquierdo como un binomio al cuadrado:

9x2 + 4 + 12x 12x = 10


(9x2 + 4 + 12x) 12x = 10
(3x + 2)(3x + 2) 12x = 10
(3x + 2)2 12x = 10

Recordemos entonces que todo esto fue posible gracias a la existencia de nuestro elemento
neutro y los inversos bajo la operacin de suma. Algo similar es lo que se present en la
demostracin del Teorema 1.17. Unas manipulaciones iniciales nos llevan a obtener que
p q es lgicamente equivalente a (p q). En este punto tomamos en cuenta que
existe un elemento neutro para la disyuncin el cual es F: cualquier disyuncin entre una
proposicin y F da como resultado la misma proposicin. Por lo tanto podemos afirmar sin
problema alguno y sin alterar la equivalencia lgica que (p q) (p q) F. Ahora
bien, nuestra lgebra de Proposiciones nos dice que tambin existen los elementos
complementarios de tal forma que la conjuncin de stos da como resultado F. La pregunta
a plantear es qu elementos, o mejor dicho proposiciones, consideramos para sustituir a F?
En realidad cualquiera nos sirve porque es claro que toda contradiccin p p, q q,
(t s) (t s), etc., es lgicamente equivalente a F. Pero el mismo enunciado del
Teorema 1.17 nos indica que debera considerarse en particular a r r. Por lo tanto
haciendo F r r tenemos entonces la nueva proposicin (p q) (r r), con lo
cual slo resta dar por terminada la demostracin.

El Teorema 1.17 nos muestra que es posible, y cuando la demostracin as lo


requiera, agregar nuevas proposiciones haciendo uso de los elementos neutros y
complementarios ya sea bajo conjuncin o bajo disyuncin. Pero el caso en que se tiene que
una o ms proposiciones pueden llegar a desaparecer tambin se puede presentar, y la
demostracin del siguiente Teorema nos ilustrar en ese sentido:

Teorema 1.18: Para cualesquiera proposiciones p, q en se tiene que

(p q) (p q) q

34
Captulo 1. Lgica Matemtica

Demostracin:

(p q) (p q)
((p q) (p q)) (Ley de DMorgan)
((p q) (p q)) (Ley de DMorgan sobre (p q))
(q (p p)) (Propiedad distributiva respecto a la Conjuncin)
(q V) (Existencia del Elemento Complementario en la
Disyuncin: V p p)
(q) (Existencia del Elemento Neutro en la Conjuncin)
q (Propiedad de la Doble Negacin)

Teorema 1.19: Para cualesquiera proposiciones p y q en se tiene que

((p q) p) q V

Demostracin:

((p q) p) q
((p q) p) q (Propiedad del Condicional sobre p q)
((p p) (q p)) q (Propiedad Distributiva sobre (p q) p)
(F (q p)) q (Existencia de los Elementos Complementarios
para la Conjuncin)
(q p) q (Existencia del Elemento Neutro en la
Disyuncin)
(q p) q (Propiedad del Condicional)
(q p) q (Ley de DMorgan sobre (q p))
V p (Existencia de los Elementos Complementarios
para la Disyuncin)
V (Existencia del Elemento Aniquilador para la
Disyuncin)

Teorema 1.20: Para cualesquiera proposiciones p y q en se tiene que

((p q) q) p V

35
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Demostracin:

((p q) q) p
((p q) q) p (Propiedad del Condicional sobre p q)
((p q) (q q)) p (Propiedad Distributiva sobre (p q) q)
((p q) F) p (Existencia de los Elementos Complementarios
en la Conjuncin)
(p q) p (Existencia del Elemento Neutro en la
Disyuncin)
(p q) p (Propiedad del Condicional)
(p q) p (Ley de DMorgan sobre (p q))
Vq (Existencia de los Elementos Complementarios
en la Disyuncin)
V (Existencia del Elemento Aniquilador para la
Disyuncin)

Teorema 1.21: Para cualesquiera proposiciones p y q en se tiene que

(p q) (p q) V

Demostracin:

(p q) (p q)
(p q) (p q) (Propiedad del Condicional)
V (Existencia de los Elementos Complementarios
en la Disyuncin)

Teorema 1.22: Para cualesquiera proposiciones p y q en se tiene que

a) (p q) p V
b) (p q) q V

36
Captulo 1. Lgica Matemtica

Demostracin:

a) (p q) p
(p q) p (Propiedad del Condicional)
(p q) p (Ley de DMorgan sobre (p q))
V q (Existencia de los Elementos Complementarios
en la Disyuncin)
V (Existencia del Elemento Aniquilador para la
Disyuncin)

b) (p q) q
(p q) q (Propiedad del Condicional)
(p q) q (Ley de DMorgan sobre (p q))
V p (Existencia de los Elementos Complementarios
en la Disyuncin)
V (Existencia del Elemento Aniquilador para la
Disyuncin)

Teorema 1.23: Para cualesquiera proposiciones p y q en se tiene que

a) ((p q) p) q V
b) ((p q) q) p V

Demostracin:

a) ((p q) p) q
((p p) (q p)) q (Propiedad Distributiva sobre
(p q) p)
(F (q p)) q (Existencia de los Elementos
Complementarios en la Conjuncin)
(q p) q (Existencia del Elemento Neutro
en la Disyuncin)
(q p) q (Propiedad del Condicional)
(q p) q (Ley de DMorgan sobre (q p))
Vp (Existencia de los Elementos
Complementarios en la Disyuncin)
V (Existencia del Elemento Aniquilador
en la Disyuncin)

37
Una Introduccin a las Matemticas Discretas y Teora de Grafos

b) ((p q) q) p
((p q) (q q)) p (Propiedad Distributiva sobre
(p q) q)
(F (p q)) p (Existencia de los Elementos
Complementarios en la Conjuncin)
(p q) p (Existencia del Elemento Neutro
en la Disyuncin)
(p q) p (Propiedad del Condicional)
(p q) p (Ley de DMorgan sobre (p q))
Vq (Existencia de los Elementos
Complementarios en la Disyuncin)
V (Existencia del Elemento Aniquilador
en la Disyuncin)

Teorema 1.24: Para cualesquiera proposiciones p, q y r en se tiene que

((p q) (q r)) (p r) V

Demostracin:

((p q) (q r)) (p r)
((p q) (q r)) (p r) (Propiedad del Condicional sobre p q)
((p q) (q r)) (p r) (Propiedad del Condicional sobre q r)
((p q) (q r)) (p r)
(Propiedad del Condicional sobre
((p q) (q r)) (p r))
((p q) (q r)) (p r)
(Ley de DMorgan sobre
((p q) (q r)))
((p q) (q r)) (p r)
(Ley de DMorgan sobre (p q)
y sobre (q r))
((p q) (q r)) (p r) (Propiedad del Condicional)
(p q) ((q r) (p r)) (Propiedad Asociativa de la Disyuncin)
(p q) ((q (p r)) (r (p r)))
(Propiedad Distributiva sobre
(q r) (p r))
(p q) ((q (p r)) (V p))
(Existencia de los Elementos Complementarios
en la Disyuncin: r r)

38
Captulo 1. Lgica Matemtica

(p q) ((q (p r)) V) (Existencia del Elemento Aniquilador en la


Disyuncin)
(p q) (q (p r)) (Existencia del Elemento Neutro en la
Conjuncin)
((p q) q) (p r) (Propiedad Asociativa de la Disyuncin)
((p q) (q q)) (p r) (Propiedad Distributiva sobre (p q) q)
((p q) V) (p r) (Existencia de los Elementos Complementarios
en la Disyuncin)
(p q) (p r) (Existencia del Elemento Neutro en la
Conjuncin)
(V q) r (Existencia de los Elementos Complementarios
en la Disyuncin)
Vr (Existencia del Elemento Aniquilador
en la Disyuncin)
V (Existencia del Elemento Aniquilador
en la Disyuncin)

Teorema 1.25: Para cualesquiera proposiciones p y q en se tiene que

a) p (p q) V
b) q (p q) V

Demostracin:

a) p (p q) p (p q) (Propiedad del Condicional)


(p p) q (Propiedad Asociativa de la Disyuncin)
Vq (Existencia de los Elementos Inversos
en la Disyuncin)
V (Existencia del Elemento Aniquilador
en la Disyuncin)

b) q (p q) q (p q) (Propiedad del Condicional)


(q q) p (Propiedad Asociativa de la Disyuncin)
Vp (Existencia de los Elementos Inversos
en la Disyuncin)
V (Existencia del Elemento Aniquilador
en la Disyuncin)

39
Una Introduccin a las Matemticas Discretas y Teora de Grafos

1.4 Inferencia Lgica


En la Seccin anterior reconocimos al lgebra de Proposiciones como un conjunto
de herramientas que nos permiten verificar equivalencias lgicas sin tener que recurrir a las
Tablas de Verdad. Sin embargo, estas herramientas estn cimentadas, entindase
demostradas, precisamente por el mtodo basado en Tablas de Verdad. La ventaja en el uso
del lgebra Proposicional radica por un lado en que nos permite obtener demostraciones
ms concisas y por otro lado nos permite abordar casos en los cuales se consideran un
nmero elevado de proposiciones, una situacin que si bien es factible de ser atacada por
las Tablas de Verdad, hemos visto que en la prctica no es recomendable.

Hasta este punto hemos demostrado Teoremas de la forma p q. Se parte ya sea de


p (o de q), se manipulan las expresiones y se llega entonces a q (o a p). Este tipo de
enunciados nos presentan desde un principio el objetivo que debemos alcanzar. Pero en la
prctica es comn que contemos con una serie de proposiciones unidas mediante ciertos
conectivos y deseamos saber que nueva informacin podemos obtener a partir de stas. Por
ejemplo, supongamos que las proposiciones G, E, K, L, M y B contienen afirmaciones
referentes a propiedades de nuestro Universo. Y tenemos adems que stas se conjuntan en
una sola proposicin compuesta:

(G E) (E K) G (K L) (L M) (M B)

La pregunta ahora es: qu nueva informacin podemos obtener a partir de la proposicin


anterior? O en otros trminos, qu podemos Inferir a partir de tal proposicin compuesta?
La buena noticia es que algunos Teoremas que hemos probado en la Seccin anterior nos
servirn como modelos de Inferencia, o mejor dicho, Reglas de Inferencia. Toda Regla de
Inferencia se dividir en dos partes: 1) un conjunto de Premisas y 2) una Conclusin. Para
aplicarla se deber verificar primeramente que las proposiciones a considerar se ajusten
perfectamente a la manera en la cual las premisas estn especificadas. Si es el caso,
entonces simplemente se observa la forma de la conclusin y se utilizan aquellas premisas
adecuadas para ajustarla debidamente. Como veremos ms adelante una Regla de
Inferencia no es ms que una Condicional p q en la que la conclusin forma el
consecuente q mientras que las premisas son proposiciones conectadas mediante
conjunciones y con ello se forma el antecedente p. Ello quiere decir que
p = p1 p2 pm, donde p1, p2, , pm son las premisas en consideracin. Ntese que si
una de las premisas es falsa entonces por las propiedades de la conjuncin se tiene que p
ser tambin falsa. En consecuencia, por las propiedades de la Condicional, tendremos que
p q F. Ello quiere decir que para generar inferencias vlidas se deben considerar
siempre Premisas verdaderas. Ahora bien, formalmente diremos que una proposicin de la
forma p1 p2 pm q es una Regla de Inferencia si y slo si p1 p2 pm q
es una Tautologa, i.e. p1 p2 pm q V.

En el prrafo anterior mencionbamos que las premisas deben ser verdaderas para
que la conclusin sea verdadera. Sin embargo, sabemos que lgicamente una proposicin
puede ser verdadera o falsa. Este puede verse con facilidad en la Tabla de Verdad de una
Regla de Inferencia. En realidad la validez de una inferencia no depende de un estado

40
Captulo 1. Lgica Matemtica

particular en su Tabla de Verdad o de lo que afirmen sus premisas, sino de la forma que
tenga la Regla de Inferencia en consideracin. Mencionbamos previamente que para
aplicar una Regla de Inferencia se deber verificar primeramente que las proposiciones a
considerar se ajusten perfectamente a la manera en la cual las premisas estn especificadas:
a ello nos referimos cuando relacionamos a la validez de una inferencia con la forma que
tenga su correspondiente Regla de Inferencia. La existencia de premisas falsas de ninguna
manera impide que una Regla de Inferencia pueda ser aplicada, pero es claro que la
conclusin que se obtenga ser definitivamente errnea. A final de cuentas, una Regla de
Inferencia p1 p2 pm q debe ser una Tautologa para caracterizarse como tal y
debe ser vista como una Regla de Sustitucin.

A continuacin describiremos algunas Reglas de Inferencia. stas en un principio


fueron ya presentadas en la Seccin anterior como proposiciones lgicamente equivalentes
a V, es decir, son Tautologas.

El Teorema 1.19 establece que ((p q) p) q V:

Modus Ponens:

Premisa 1: p q
Premisa 2: p
Conclusin: q

Por el Teorema 1.20 tenemos que ((p q) q) p V:

Modus Tollens:

Premisa 1: p q
Premisa 2: q
Conclusin: p

El Teorema 1.21 nos dice que (p q) (p q) V:

Regla de Adjuncin:

Premisa 1: p
Premisa 2: q
Conclusin: p q

41
Una Introduccin a las Matemticas Discretas y Teora de Grafos

El Teorema 1.22 establece que (p q) p V y que (p q) q V:

Reglas de Simplificacin:

Premisa 1: p q Premisa 1: p q
Conclusin: p Conclusin q

Por el Teorema 1.23 tenemos que ((p q) p) q V y ((p q) q) p V:

Modus Tollendo Ponens:

Premisa 1: p q Premisa 1: p q
Premisa 2: p Premisa 2: q
Conclusin: q Conclusin p

El Teorema 1.24 nos dice que ((p q) (q r)) (p r) V:

Ley del Silogismo Hipottico:

Premisa 1: p q
Premisa 2: q r
Conclusin: p r

El Teorema 1.25 establece que p (p q) V y que q (p q) V:

Reglas de Adicin:

Premisa 1: p Premisa 1: q
Conclusin: p q Conclusin: p q

Ahora aplicaremos las reglas anteriores a fin de hacer inferencias sobre algunas
premisas. Por lo regular al aplicar reglas de inferencia simplemente se listan y enumeran las
premisas sobreentendiendo que stas se encuentran conectadas mediante conjunciones. La
idea es poder identificar rpidamente que premisas se utilizarn. Al aplicar una Regla de
Inferencia se debe mencionar la regla aplicada y las premisas involucradas.

42
Captulo 1. Lgica Matemtica

Ejemplo:
Sean las proposiciones:
o p: Juan est en el partido de Basketball.
o q: Juan est en la cancha.
Las proposiciones p y q darn lugar a las siguientes premisas:
o Si Juan est en el partido de Basketball entonces Juan est en la cancha.
Premisa 1: p q
o Juan est en la cancha.
Premisa 2: p
Tenemos entonces:

Premisa 1: p q
Premisa 2: p
Conclusin: q (Modus Ponens Premisas 1y 2)

Es decir, mediante la regla Modus Ponens concluimos que Juan est en la cancha.

Ejemplo:
Proposiciones:
o p: El clima est helado.
o q: El lago se helar.
Premisas:
o Si el clima no est helado entonces el lago no se helar.
Premisa 1: p q
o El clima no est helado.
Premisa 2: p
Inferencias:
Premisa 1: p q
Premisa 2: p
Conclusin: q (Modus Ponens Premisas 1 y 2)

Se ha concluido entonces que El lago no se helar.

Ejemplo: A partir del siguiente conjunto de premisas concluir la proposicin r.

Premisa 1: (s u) t
Premisa 2: (s u)
Premisa 3: t r
Conclusin/Premisa 4: t (Modus Ponens Premisas 1 y 2)
Conclusin: r (Modus Ponens Premisas 3 y 4)

43
Una Introduccin a las Matemticas Discretas y Teora de Grafos

El ejemplo anterior nos pone de muestra que una proposicin que resulte de la
aplicacin de una Regla de Inferencia, tal como sucedi con la aplicacin del Modus
Ponens sobre las premisas 1 y 2, tambin puede ser utilizada como una nueva Premisa que
permita la aplicacin de otra regla de inferencia si es que se requiere. En nuestro caso en
cuestin la nueva premisa 4 fue fundamental para aplicar nuevamente el Modus Ponens y
entonces obtener la conclusin deseada r.

Ejemplo:
Proposiciones:
o p: El objeto astral tiene luz propia.
o q: El objeto astral es una estrella.
Premisas:
o Si el objeto astral tiene luz propia entonces el objeto astral es una estrella.
Premisa 1: p q
o El objeto astral no es una estrella.
Premisa 2: q
Inferencias:
Premisa 1: p q
Premisa 2: q
Conclusin: p (Modus Tollens Premisas 1 y 2)
Se ha concluido entonces que El objeto astral no tiene luz propia.

Ejemplo: Dadas las siguientes premisas concluir (r).

Premisa 1: pq
Premisa 2: q
Premisa 3: p r
Conclusin/Premisa 4: p (Modus Tollens Premisas 1 y 2)
Conclusin/Premisa 5: r (Modus Ponens Premisas 3 y 4)
Conclusin: (r) (Propiedad de la Doble
Negacin, Premisa 5)

Nuestro ejemplo anterior nos ha ilustrado en el sentido de que para llegar a una
conclusin final por un lado pueden aplicarse diferentes reglas de inferencia, en este caso se
utiliz primeramente un Modus Tollens y posteriormente un Modus Ponens. Por otro lado,
tambin nos hace ver con claridad que es totalmente vlido recurrir a nuestras propiedades

44
Captulo 1. Lgica Matemtica

del lgebra de Proposiciones: se aplic a la Premisa 5 la propiedad de Idempotencia de la


Negacin para obtener la conclusin deseada (r). En realidad no debe sorprendernos ya
que sabemos con anterioridad que para tal propiedad se tiene que r (r).

Ejemplo: Para el siguiente par de premisas concluir a.

Premisa 1: a ((b c) (b d))


Premisa 2: b (c d)
Conclusin/Premisa 3: (b c) (b d) (Propiedad Distributiva
sobre la Premisa 2)
Conclusin/Premisa 4: ((b c) (b d)) (Propiedad de
la Doble Negacin,
Premisa 3)
Conclusin/Premisa 5: (a) (Modus Tollens Premisas
1 y 4)
Conclusin: a (Propiedad de
la Doble Negacin,
Premisa 5)

Ejemplo:
Proposiciones:
o p: Jorge es adulto.
o q: Mara es adolescente.
Premisas:
o Jorge es adulto.
Premisa 1: p
o Mara es adolescente.
Premisa 2: q
Inferencias:
Premisa 1: p
Premisa 2: q
Conclusin: p q (Regla de Adjuncin Premisas 1 y 2)
Se ha concluido entonces que Jorge es adulto y Mara es adolescente.

45
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Ejemplo: Para el siguiente conjunto de premisas concluir (r s) f.

Premisa 1: cd
Premisa 2: (c d) f
Premisa 3: f (a b)
Premisa 4: (a b) (r s)
Conclusin/Premisa 5: f (Modus Ponens
Premisas 1 y 2)
Conclusin/Premisa 6: a b (Modus Ponens
Premisas 3 y 5)
Conclusin/Premisa 7: rs (Modus Ponens
Premisas 4 y 6)
Conclusin: (r s) f (Regla de Adjuncin
Premisas 5 y 7)

Ejemplo:
Proposiciones:
o p: Jorge es adulto.
o q: Mara es adolescente.
Premisas:
o Jorge es adulto y Mara es adolescente.
Premisa 1: p q
Por la aplicacin de la Regla de Simplificacin se pueden presentar dos posibles
inferencias:
Premisa 1: p q Premisa 1: p q
Conclusin: p Conclusin: q

Ejemplo: Para el siguiente par de premisas concluir a c.

Premisa 1: a b
Premisa 2: c b
Conclusin/Premisa 3: b (Regla de Simplificacin
Premisa 1)
Conclusin/Premisa 4: (c) (Modus Tollens Premisas 2 y 3)
Conclusin/Premisa 5: c (Propiedad de la Doble
Negacin sobre Premisa 4)
Conclusin/Premisa 6: a (Regla de Simplificacin
Premisa 1)
Conclusin: ac (Regla de Adjuncin
Premisas 5 y 6)

46
Captulo 1. Lgica Matemtica

Ejemplo: Concluir s con la premisas dadas.

Premisa 1: (s g) p
Premisa 2: a
Premisa 3: pa
Conclusin/Premisa 4: p (Modus Tollens Premisas 2 y 3)
Conclusin/Premisa 5: (s g) (Modus Tollens Premisas 1 y 4)
Conclusin/Premisa 6: s g (Ley de DMorgan sobre la
Premisa 5)
Conclusin: s (Regla de Simplificacin
Premisa 6)

Ejemplo:
Proposiciones:
o p: La sustancia contiene hidrgeno.
o q: La sustancia contiene oxgeno.
Premisas:
o La sustancia contiene hidrgeno o la sustancia contiene oxgeno.
Premisa 1: p q
o La sustancia no contiene hidrgeno.
Premisa 2: p
Inferencias:
Premisa 1: pq
Premisa 2: p
Conclusin: q (Modus Tollendo Ponens Premisas 1 y 2)
Se ha concluido entonces que La sustancia contiene oxgeno.

Ejemplo: Concluir p con la premisas dadas.

Premisa 1: t (p q)
Premisa 2: (t)
Premisa 3: q
Conclusin/Premisa 4: t (Propiedad de la Doble
Negacin sobre Premisa 2)
Conclusin/Premisa 5: pq (Modus Ponens Premisas 1 y 4)
Conclusin: p (Modus Tollendo Ponens
Premisas 3 y 5)

47
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Ejemplo: concluir r con las premisas dadas.

Premisa 1: q s
Premisa 2: s
Premisa 3: (r s) q
Conclusin/Premisa 4: q (Modus Tollendo Ponens
Premisas 1 y 2)
Conclusin/Premisa 5: ((r s)) (Modus Tollens Premisas 3 y 4)
Conclusin/Premisa 6: rs (Propiedad de la Doble
Negacin sobre Premisa 5)
Conclusin: r (Regla de Simplificacin
sobre Premisa 6)

Ejemplo:
Proposiciones:
o p: Est lloviendo.
o q: El cielo est nublado.
o r: El clima est helado.
Premisas:
o Si est lloviendo entonces el cielo est nublado.
Premisa 1: p q
o Si el cielo est nublado entonces el clima est helado.
Premisa 2: q r
Inferencias:
Premisa 1: pq
Premisa 2: qr
Conclusin: p r (Ley del Silogismo Hipottico Premisas 1 y 2)
Se ha concluido entonces que Si est lloviendo entonces el clima est helado.

Ejemplo: concluir r n con las premisas dadas.

Premisa 1: r s
Premisa 2: s q
Premisa 3: q n
Conclusin/Premisa 4: rq (Ley del Silogismo Hipottico
Premisas 1 y 2)
Conclusin/Premisa 5: r n (Ley del Silogismo Hipottico
Premisas 3 y 4)
Conclusin: r n (Propiedad del Condicional
Premisa 5)

48
Captulo 1. Lgica Matemtica

Ejemplo: concluir g b con las premisas dadas.

Premisa 1: g e
Premisa 2: ek
Premisa 3: k l
Premisa 4: l m
Premisa 5: mb
Conclusin/Premisa 6: g k (Ley del Silogismo Hipottico
Premisas 1 y 2)
Conclusin/Premisa 7: g l (Ley del Silogismo Hipottico
Premisas 3 y 6)
Conclusin/Premisa 8: g m (Ley del Silogismo Hipottico
Premisas 4 y 7)
Conclusin g b (Ley del Silogismo Hipottico
Premisas 5 y 8)

1.5 Cuantificadores
Hasta ahora se han considerado proposiciones de las que se sabe o asume su valor
de verdad o falsedad. Sin embargo, en ocasiones se requiere considerar expresiones
llamadas Proposiciones Abiertas cuyo valor de verdad o falsedad depende de una
sustitucin. Por ejemplo, considrese a la siguiente proposicin:

x estudia Ingeniera en Computacin

A esta proposicin, y tal como hemos hecho antes, se le puede asignar una letra para
denotarla. Por ejemplo, usemos la letra p. Pero dado que p requiere de un valor especfico
para x a fin de poder ser evaluada, entonces indicaremos que la proposicin requiere se le
pase un valor de entrada x. De tal forma que tenemos ahora:

p(x): x estudia Ingeniera en Computacin

A x se le llama Variable Individual. El valor de p(x) depende de qu o quin sea x.


Los valores especficos que puede tomar una variable individual son llamados Constantes
Individuales. Tenemos entonces que una Proposicin Abierta es una expresin la cual se
convierte en una proposicin cuando sus variables individuales se sustituyen por constantes
individuales. Por ejemplo, retomando nuestro ejemplo p(x): x estudia Ingeniera en
Computacin, asumamos que x puede tomar el valor Juan o el valor Edna. Sin embargo
nosotros sabemos de antemano que Juan efectivamente estudia Ingeniera en Computacin
y que por otro lado Edna estudia Medicina, entonces tendremos las proposiciones y sus
correspondientes valores:
p(Juan): Juan estudia Ingeniera en Computacin (V)
p(Edna): Edna estudia Ingeniera en Computacin (F)

49
Una Introduccin a las Matemticas Discretas y Teora de Grafos

A las proposiciones abiertas tambin se les llamar Funciones Proposicionales.


Cuando una funcin proposicional espera n argumentos de entrada entonces se dice que es
de Aridad n. Es claro que nuestra primera funcin proposicional, p(x): x estudia Ingeniera
en Computacin, tiene aridad 1. Por ejemplo, la siguiente sera una funcin proposicional
de aridad 3:

y
q(x, y, z): (x + 3) =z
2

En este caso debe ser intuitivo que las variables individuales x, y, z debern ser sustituidas
por nmeros. Si los valores asignados a las variables individuales x, y al ser evaluados en el
lado izquierdo de la ecuacin proporcionan un valor igual al de la variable individual z
entonces las proposiciones resultantes sern verdaderas:
4
q(3, 4, 12): (3 + 3) = 12 (V)
2
20
q(-4, 20, -10): (-4 + 3) = -10 (V)
2
2
q(5, 2, -3): (5 + 3) = -3 (F)
2
Inicialmente recurrimos a la intuicin para determinar con que constantes individuales
podan ser sustituidas nuestras variables. Sin embargo, una falla en nuestra intuicin podra
indicarnos evaluar a la proposicin

Carlos
q(Juan, Carlos, Mara) = (Juan + 3) = Mara
2

lo cual no tendra sentido (tambin depende del contexto en que nuestras proposiciones
estn inmersas). En los siguientes prrafos se introducir notacin a fin de que se
especifiquen de manera formal los valores que pueden tomar las variables individuales en
una funcin proposicional.

Una Proposicin General se obtiene al anteponer un Cuantificador a una funcin


proposicional. La expresin Existe ser nuestro primer cuantificador, tambin llamado
Cuantificador Existencial, al cual se le denotar matemticamente como . Por ejemplo,
reconsideremos a la expresin que da a lugar a nuestra funcin proposicional p(x):

x estudia Ingeniera en Computacin

Al anteponerle el cuantificador existencial se tendr ahora la proposicin general:

(x ESTD)(x estudia Ingeniera en Computacin)

50
Captulo 1. Lgica Matemtica

La primera parte de la proposicin general est dada por

(x ESTD)

sta indica de qu conjunto x puede tomar sus posibles valores. El smbolo se interpreta
como pertenece a y est siempre seguido de un conjunto, en este caso es un conjunto que
llamamos ESTD. Formalmente el conjunto ESTD contiene a todas las constantes
individuales para x. Por el contexto de la funcin proposicional original sabemos que ESTD
deber contener nombres de estudiantes: al menos sabemos, por los prrafos anteriores, que
Juan y Edna estn en ESTD. La expresin (x ESTD) se lee entonces como existe un x
en el conjunto ESTD. La segunda parte de la proposicin general est dada por

(x estudia Ingeniera en Computacin)

Que no es ms que la expresin de nuestra funcin proposicional original. Las dos partes,
como ya comentamos antes, forman una proposicin general con cuantificador existencial.
Entonces nuestra proposicin general deber leerse como:

Existe un x en el conjunto ESTD tal que x estudia Ingeniera en Computacin

Sabemos de antemano que p(x): x estudia Ingeniera en Computacin. Entonces la


proposicin general anterior puede ser reescrita como

(x ESTD)(p(x))

Ahora tenemos que una proposicin general con cuantificador existencial es


Verdadera cuando y slo cuando encontramos una instancia de sustitucin en la funcin
proposicional que hace que la proposicin resultante sea verdadera. Tal instancia de
sustitucin deber ser tomada del conjunto que contiene a todas las constantes individuales.

Por ejemplo, nuestra proposicin general del ejemplo anterior, (x ESTD)(P(x))


se har Verdadera al asignar a x un estudiante que efectivamente estudie Ingeniera en
Computacin. Por ejemplo, sabemos que Juan cumple con lo anterior. Para asignar el valor
de verdad o falsedad final se requiere, como ya se coment con anterioridad, evaluar a
P(Juan). Sabemos que P(Juan) V por lo tanto tenemos para nuestra proposicin que

(x ESTD)(p(x)) V

Ntese que pueden existir sustituciones para x en donde se considera a un estudiante en el


conjunto ESTD que NO estudia Ingeniera en Computacin. Por ejemplo, sabemos que
Edna estudia medicina, P(Edna) F. Sin embargo, deber ser claro que (x ESTD)(P(x))
es verdadera gracias a que encontramos al menos a un valor para x que hace que la funcin
proposicional P(x) genere una proposicin verdadera, independientemente de que existan
valores de x que hacen que la funcin proposicional P(x) genere proposiciones falsas.

51
Una Introduccin a las Matemticas Discretas y Teora de Grafos

y
Retomando nuestra funcin proposicional q(x, y, z): (x + 3) = z tenemos ahora
2
a la proposicin general con cuantificador existencial:

y
(x,y,z \ ) ( x + 3) = z
2

La expresin (x,y,z \ ) deber leerse como Existen x, y, z en el conjunto de los


nmeros reales. La proposicin general se lee por completo como:

y
Existen x, y, z en el conjunto de los nmeros reales tales que ( x + 3) =z.
2

Sabemos que al menos con los valores 3, 4, 12 para x, y, z respectivamente se cumple que
y y
( x + 3) = z V. Por lo tanto, se tiene que (x,y,z \ ) ( x + 3) = z V.
2 2

Analicemos otros ejemplos. Considrense las siguientes proposicionales generales.


Encontremos un valor de x que hace que stas verdaderas. Recurdese que ` denota al
conjunto de los nmeros naturales: 1, 2, 3, 4, 5,

(x ` )(x < 3)
o Haciendo x = 1 o bien x = 2 se tiene que (x ` )(x < 3) V.

(x ` )(x es un nmero impar)


o Cualquier sustitucin de x por 2, 4, 6, 8, sirve para verificar que la
proposicin general es verdadera.

(x ` )(x es mltiplo de 5)
o Cualquier sustitucin de x por 5, 10, 15, 20, sirve para verificar que
(x ` )(x es mltiplo de 5) V.

(x ` )(1 < x < 3)


o En este caso es claro que existe un nico posible valor para x, 2, tal que la
proposicin general es verdadera.

52
Captulo 1. Lgica Matemtica

(x ` )(x2 4x + 4 = 0)
o Esta proposicin general resulta interesante porque finalmente tenemos una
conexin directa entre la lgica matemtica y el lgebra de los nmeros reales.
Ntese que se trata de encontrar un valor de x que al sustituir en el lado
izquierdo de la ecuacin proporcione la solucin 0, en el lado derecho. Dar
solucin a la ecuacin es equivalente a establecer que la proposicin general
(x ` )(x2 4x + 4 = 0) es verdadera. En este caso nos apoyamos en la bien
conocida frmula general para la solucin de ecuaciones de segundo grado para
determinar la existencia de x:

(4) (4) 2 4(1)(4) 4 16 16


x= = =2
2(1) 2

Se tiene entonces que la ecuacin x2 4x + 4 = 0 tiene solucin nica x = 2.


Ntese que efectivamente 2 es un nmero natural tal como nos lo requiere
cuantificador existencial. Por lo tanto tenemos que

(x ` )(x2 4x + 4 = 0) V

A las expresiones Para todo o Para cualesquiera se les llama Cuantificador


Universal el cual se denota como . Por ejemplo, supngase que tenemos a la funcin
proposicional f(x): 1 x. Sea el conjunto NUM aquel que contiene a los nmeros naturales
del 1 al 5. Entonces usando a f(x) y a NUM podemos formar a la proposicin general

(x NUM)(1 x)

O de manera equivalente, entendiendo que f(x): 1 x:

(x NUM)(f(x))

sta se lee como

Para todo x en el conjunto NUM se cumple que 1 x

O tambin como

Para cualesquiera x en el conjunto NUM se cumple que 1 x

Una proposicin general con cuantificador universal es verdadera cuando y slo


cuando toda instancia de sustitucin en la funcin proposicional hace que la proposicin
resultante sea verdadera. Tales instancias de sustitucin debern ser tomadas del conjunto
que contiene a todas las constantes individuales. Retomemos nuestra proposicin general

53
Una Introduccin a las Matemticas Discretas y Teora de Grafos

(x NUM)(1 x). Veamos si efectivamente es verdadera. Para ello tomamos en cuenta


que las posibles instancias de sustitucin para x estn dadas por los valores 1, 2, 3, 4 y 5.
Entonces se evaluar uno por uno cada posible valor de x en la funcin proposicional:

x = 1, f(1): 1 1 (V)
x = 2, f(2): 1 2 (V)
x = 3, f(3): 1 3 (V)
x = 4, f(4): 1 4 (V)
x = 5, f(5): 1 5 (V)

Ntese que con los 5 valores que puede tomar x hemos obtenido siempre una proposicin
que es verdadera. Por lo tanto tenemos para nuestra proposicin general con cuantificador
universal que (x NUM)(1 x) V.

Un punto interesante que puede surgir al determinar la veracidad de una proposicin


general con cuantificador universal es cuando los conjuntos que contienen a las constantes
individuales son de tamao infinito. Pensemos por ejemplo en el conjunto de los nmeros
reales \ , el conjunto de los nmeros naturales ` o inclusive en nuestro conjunto de
proposiciones . En estos casos resulta sumamente infactible verificar uno a uno cada
posible sustitucin. Es por ello que se recurre a otro tipo de argumentos y propiedades a fin
de validar a las correspondientes proposiciones generales. Por ejemplo: por qu es
verdadera la siguiente proposicin general?

(x \ )(x2 0)

En este caso debemos recurrir al hecho de que todo nmero real, ya sea positivo, negativo o
cero, al ser elevado al cuadrado siempre se obtiene un nmero positivo o el cero. Por lo
tanto, para cualesquiera x en los reales se cumple que x2 0. Es decir, tuvimos que recurrir
a una propiedad presente en el lgebra de los Nmeros Reales.

Consideremos ahora a la siguiente proposicin general:

(p, q )(p q p q)

Ntese que esta proposicin es aquella presentada originalmente en el Teorema 1.3,


simplemente que se ha reemplazado la expresin Para cualesquiera proposiciones p, q en
por la notacin formal (p, q ). Ahora bien, sabemos que tiene un conjunto
infinito de proposiciones. Pero tal como establecimos en su momento, aunque todas estas
proposiciones pueden afirmar cosas diferentes en realidad todas tienen en comn la
propiedad de que pueden ser verdaderas o falsas. Y esta es la propiedad que se utiliza para
verificar, mediante una Tabla de Verdad, que efectivamente cualesquiera dos proposiciones
p y q, independientemente de lo que afirmen, satisfacen p q p q. Por lo tanto se
tiene que, y tal como se observ en su momento, (p, q )(p q p q) V.

54
Captulo 1. Lgica Matemtica

El prrafo anterior nos ha ilustrado en el sentido de que los cuantificadores


existencial y universal nos permitirn expresar a nuestros Teoremas antes presentados de
manera estandarizada desde el punto de vista de notacin Matemtica. Por lo tanto ahora
tendremos:
Teorema 1.1: (p, q, r )((p q) r p (q r))
Teorema 1.2: (p )((p) p)
Teorema 1.3: (p, q )(p q p q)
Teorema 1.4: (p, q )((p q) p V)
Teorema 1.5: (p )(p p V)
Teorema 1.6: (p )(p p F)
Teorema 1.7: (p, q )((p q) (p q))
Teorema 1.8: (p, q )(p q q p)
Teorema 1.9: (p, q )(p q q p)
Teorema 1.10: (p, q, r )(p (q r) (p q) (p r))
Teorema 1.11: (p, q )((p q) p q)
Teorema 1.12: (p )(p V p)
Teorema 1.13: (x \ )(3x + 10 = -4)
Teorema 1.14: (x ^ )(x2 + 5 = 2)
Teorema 1.15: (p, q, r )(p (q r) (p q) r)
Teorema 1.16: (p, q, r )(p (q r) (p q) (p r))
Teorema 1.18: (p, q )((p q) (p q) q)
Teorema 1.19: (p, q )(((p q) p) q V)
Teorema 1.20: (p, q )(((p q) q) p V)
Teorema 1.21: (p, q )((p q) (p q) V)
Teorema 1.22:
a) (p, q )((p q) p V)
b) (p, q )((p q) q V)
Teorema 1.23:
a) (p, q )(((p q) p) q V)
b) (p, q )(((p q) q) p V)
Teorema 1.24: (p, q, r )(((p q) (q r)) (p r) V)
Teorema 1.25:
a) (p, q )(p (p q) V)
b) (p, q )(q (p q) V)

Mencin especial nos merece el Teorema 1.17. Tenemos que ste quedar
expresado como una proposicin general en la cual aparecen ambos cuantificadores:

(p, q )(r )(p q (p q) (r r))

El enunciado debera leerse como Para cualesquiera p, q en el conjunto existe un r en


el conjunto tal que p q (p q) (r r). Los cuantificadores se interpretan de
forma que dados un par de proposiciones p y q debe elegirse una proposicin r que permita
que se satisfaga p q (p q) (r r). Ello quiere decir que la eleccin de r va

55
Una Introduccin a las Matemticas Discretas y Teora de Grafos

directamente de la mano respecto a quienes sean las proposiciones p y q en consideracin.


Tenemos conocimiento, por la demostracin del Teorema que en realidad r es cualquier
proposicin ya que lo que nos interesa es considerar el trmino r r, el cual,
independientemente de lo que exprese r, sabemos es siempre una Contradiccin. Este
ltimo punto no causa conflicto con lo establecido respecto a la interpretacin que se debe
dar cuando los dos cuantificadores aparecen en la misma proposicin general ya que al
asegurar que se puede elegir a cualquier proposicin r implica que tambin se asegura que
existe r.

Supongamos que contamos con un conjunto U que contiene a los nmeros 2, 3, 6 y


9. Consideremos a la siguiente proposicin general con cuantificador universal:

(x U)(x es un mltiplo de 3)

Determinemos si esta proposicin efectivamente es verdadera:


x = 2, 2 es mltiplo de 3 (F)
x = 3, 3 es mltiplo de 3 (V)
x = 6, 6 es mltiplo de 3 (V)
x = 9, 9 es mltiplo de 3 (V)
Todas las instancias de sustitucin para x se cumplen excepto cuando x = 2. Para que
nuestra proposicin fuese caracterizada como verdadera se deben satisfacer todas las
instancias de sustitucin. Por lo tanto se tiene que (x U)(x es un mltiplo de 3) es falsa.

Ahora considere la siguiente proposicin general con cuantificador existencial:

(x U)(x no es un mltiplo de 3)

Determinemos su veracidad o falsedad:


x = 2, 2 no es mltiplo de 3 (V)
x = 3, 3 no es mltiplo de 3 (F)
x = 6, 6 no es mltiplo de 3 (F)
x = 9, 9 no es mltiplo de 3 (F)
Dado que hemos identificado una instancia de sustitucin que hace que la funcin
proposicional x no es un mltiplo de 3 genere una proposicin verdadera es que entonces
decimos que (x U)(x no es un mltiplo de 3) es verdadera.

Vase que de hecho la funcin proposicional utilizada en la proposicin con


cuantificador existencial es la negacin de la funcin presente en la proposicin con
cuantificador universal:

(x es un mltiplo de 3) x no es un mltiplo de 3

Tambin obsrvense los valores de verdad o falsedad obtenidos en cada sustitucin de x


para ambas proposiciones generales. Es claro que se obtienen valores complementarios
debido a que en el caso del cuantificador existencial se est utilizando la negacin de la
funcin proposicional x es un mltiplo de 3.

56
Captulo 1. Lgica Matemtica

Dado que (x U)(x es un mltiplo de 3) F es perfectamente vlido considerar


que (x U)(x es un mltiplo de 3) V. Esta ltima proposicin se leera como:

No es cierto que para todo x en el conjunto U se cumple que x es un mltiplo de 3

La parte que en principio nos interesa de este enunciado es No es cierto que para todo x en
el conjunto U. Esta debera entenderse como el hecho de que Existe un x en el conjunto U
que hace que la funcin proposicional x es un mltiplo de 3 genere una proposicin falsa.
Ello quiere decir que la negacin de nuestro cuantificador universal da a lugar al
cuantificador existencial. Si la proposicin original era verdadera, entonces aquella que se
obtenga deber ser falsa, o por otro lado, si la proposicin original era falsa, entonces
aquella que se obtenga deber ser verdadera. Esta propiedad se asegura al aplicar tambin
la negacin a la funcin proposicional. En nuestro ejemplo ya sabemos que la negacin de
x es un mltiplo de 3 es x no es un mltiplo de 3. Por lo tanto podemos establecer que

(x U)(x es un mltiplo de 3) (x U)(x no es un mltiplo de 3)

De manera general, podemos establecer entonces el mecanismo para la negacin de


proposiciones generales con cuantificadores universal o existencial. Sea p(x) una funcin
proposicional. Sea U un conjunto que contiene a todas las posibles constantes individuales
con que puede ser sustituida x. La Negacin de la Proposicin General con
Cuantificador Universal (x U)(p(x)) es la Proposicin General con Cuantificador
Existencial (x U)((p(x)). De manera que:

Si (x U)(p(x)) es verdadera entonces (x U)((p(x)) es falsa.


Si (x U)(p(x)) es falsa entonces (x U)((p(x)) es verdadera

De manera formal:

(x U)(p(x)) (x U)(p(x))

La Negacin de la Proposicin General con Cuantificador Existencial


(x U)(p(x)) es la Proposicin General con Cuantificador Universal (x U)((p(x)).
De manera que:

Si (x U)(p(x)) es verdadera entonces (x U)((p(x)) es falsa.


Si (x U)(p(x)) es falsa entonces (x U)((p(x)) es verdadera

Formalizando:

(x U)(p(x)) (x U)(p(x))

57
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Por ejemplo, al inicio de esta seccin consideramos a nuestra proposicin general

y
(x,y,z \ ) ( x + 3) = z
2

La cual sabemos es Verdadera gracias a la terna (3, 4, 12). Al negar a nuestra funcin
obtenemos:

y y
(x,y,z \ ) ( x + 3) = z (x,y,z \ ) ( x + 3) z
2 2

Por las definiciones antes dadas tenemos entonces que la proposicin general
y
(x,y,z \ ) ( x + 3) z es falsa.
2

A continuacin se presentarn algunos otros ejemplos. Obtengamos las negaciones


de las siguientes proposiciones generales:

(x ` )(1 x)

(x ` )(1 x) (x ` )((1 x))

La negacin de 1 x viene dada al razonar que todo x que no sea mayor o igual a 1
tiene que ser estrictamente menor que 1. Por lo tanto se tiene que (1 x) 1 > x.
Entonces:

(x ` )(1 x) (x ` )(1 > x)

Ahora bien, ntese que x debe ser un nmero natural. Si se busca, en la proposicin
general con cuantificar existencial, que 1 > x entonces nos encontramos con que no
existe tal nmero natural x con la propiedad de ser estrictamente menor a 1 (el cero no
es un nmero natural). Por lo tanto la proposicin (x ` )(1 > x) es falsa y en
consecuencia la proposicin (x ` )(1 x) es verdadera.

(x ` )(x2 1)

(x ` )(x2 1) (x ` )(x2 < 1)

Para entender que x2 < 1 es la negacin de x2 1 se sigue un razonamiento similar al


presentado con el ejemplo anterior. De nueva cuenta tenemos que no existe un nmero
natural x con la propiedad de que su cuadrado sea estrictamente menor a 1. Entonces
(x ` )(x2 < 1) es falsa y en consecuencia (x ` )(x2 1) es verdadera.

58
Captulo 1. Lgica Matemtica

(x ` )(x es mltiplo de 5)

(x ` )(x es mltiplo de 5) (x ` )(x no es mltiplo de 5)

Es claro que basta con tomar, por ejemplo, x = 10 para establecer que
(x ` )(x es mltiplo de 5) es verdadera. Ello implica que su negacin,
(x ` )(x no es mltiplo de 5), es falsa.

(x ` )(1 < x < 3)

(x ` )(1 < x < 3) (x ` )((1 < x < 3))

Veamos como abordar la negacin de la funcin proposicional 1 < x < 3. Desde un


punto de vista proposicional, y tambin por propiedades de las desigualdades en los
reales, tenemos que 1 < x < 3 es equivalente a (1 < x) (x < 3). Evidentemente
(1 < x < 3) ((1 < x) (x < 3)). Por una aplicacin de Ley de DMorgan obtenemos
que ((1 < x) (x < 3)) (1 < x) (x < 3). Todos aquellos valores de x que no
cumplan con 1 < x tendrn que ser 1 o bien ser estrictamente menores a 1. Por otro
lado, todos los valores de x que no satisfagan x < 3 tendrn que ser 3 o ser
estrictamente mayores a 3. Entonces:

(1 < x < 3) (1 < x) (x < 3) (1 x) (x 3)

Se tiene entonces que

(x ` )(1 < x < 3) (x ` )((1 x) (x 3))

Claramente el nmero natural x = 2 satisface la desigualdad 1 < x < 3. Por lo tanto


nuestra proposicin (x ` )(1 < x < 3) es verdadera. Por consecuencia la proposicin
(x ` )((1 x) (x 3)) es falsa.

(x ` )(x > 5 x > 2)

(x ` )(x > 5 x > 2) (x ` )((x > 5) (x 2))

La negacin de la funcin proposicional x > 5 x > 2 viene dada de la siguiente


manera:

(x > 5 x > 2) ((x > 5) (x > 2)) (Propiedad del Condicional)


((x 5) (x > 2)) (x no satisface x > 5 si es
igual a 5 o bien si es
estrictamente menor a 5)
(x 5) (x > 2) (Ley de DMorgan)

59
Una Introduccin a las Matemticas Discretas y Teora de Grafos

(x > 5) (x > 2) (Dado que (x 5) (x > 5))


(x > 5) (x 2) (x no satisface x > 2 si es
igual a 2 o bien si es
estrictamente menor a 2)

Al observar la funcin proposicional para la proposicin general con cuantificador


existencial se tiene que se buscar un natural x tal que ste sea estrictamente mayor a 5
y a la vez sea menor o igual a 2. Evidentemente x no existe. Por lo tanto
(x ` )((x > 5) (x 2)) es falsa y entonces (x ` )(x > 5 x > 2) es verdadera.

(x \ )(n ` )(x < n)

Esta proposicin claramente cuenta con una combinacin de cuantificador universal y


cuantificador existencial. El procedimiento para negarla es simplemente negar cada
cuantificador y negar la funcin proposicional x < n:

(x \ )(n ` )(x < n) (x \ )(n ` )(x n)

La forma en que se determin que x n es la negacin de x < n ya fue abordaba en los


ejemplos anteriores. La proposicin general con cuantificador universal nos dice que
para cualquier nmero real x existe un nmero natural n tal que x es estrictamente
menor a n. La eleccin de n depende del real x que se est considerando. Una opcin es
simplemente sumar una unidad a x. Pero ntese que x + 1 no es necesariamente un
natural y tampoco un nmero positivo, por ejemplo si x = -3.1416 entonces
x + 1 = -2.1416. Aplicaremos la funcin Valor Absoluto a x + 1 y posteriormente la
Funcin Piso (floor). El piso de un nmero m, denotado por m , ser aquel entero de
mayor valor que sea menor o igual a m. El piso de un nmero entero es el mismo
nmero entero. De esta forma, dado un nmero real x obtendremos su correspondiente
natural n:

n = x + 1

Ntese que la expresin est bien definida para cualquier nmero real x. Por lo tanto
tenemos verificado que para todo real x existe un natural n tal que x < n. Ello implica
que (x \ )(n ` )(x < n) es verdadera y por lo tanto (x \ )(n ` )(x n)
es falsa.

60
Una Introduccin a las Matemticas Discretas y Teora de Grafos

2. Teora de Conjuntos
Una Introduccin a las Matemticas Discretas y Teora de Grafos

62
Captulo 2. Teora de Conjuntos

2.1 Definiciones

Se dice que un Conjunto es una coleccin de distintos objetos los cuales son
llamados los Elementos del conjunto. En la Seccin 1.5 ya habamos trabajado con la
nocin de conjunto al considerarlo como aquel que contena a las posibles constantes
individuales con las que poda ser sustituida una variable en una funcin proposicional.
Considrese un conjunto A y un objeto b. Si b est contenido en el conjunto A entonces se
dice que b Pertenece al conjunto A y se denota como b A. Ntese que de hecho est
notacin tambin ya la habamos introducido en la Seccin 1.5. Si un objeto b no est
contenido en el conjunto A entonces se dice que b No Pertenece al Conjunto A y se denota
como b A.

Si un conjunto A tiene al menos un elemento, entonces para presentar a A y su


contenido simplemente se lista uno a uno sus elementos separados por comas. Tal lista
estar encerrada por los smbolos { y }. A esta forma de presentacin de un conjunto se le
llama Definicin por Extensin. Por ejemplo, supongamos que los nmeros naturales del
1 al 8 son elementos de un conjunto X. Por lo tanto la definicin por extensin de X estar
dada por:

X = {1, 2, 3, 4, 5, 6, 7, 8}

Existe otra alternativa para la presentacin de un conjunto que de hecho en muchas


ocasiones nos ser sumamente til adems de que estar sustentada en el uso de nuestras
funciones proposicionales. Sea p(x) una funcin proposicional que describe una regla o
propiedad de tal forma que la proposicin resultante al sustituir a x es verdadera si y slo si
la constante individual considerada efectivamente cumple con la regla o propiedad.
Entonces se dice que los elementos que pertenecen a un conjunto A sern nicamente
aquellos que satisfagan la condicin p(x). A esta forma de presentacin del conjunto se le
llama Definicin Intencional y se denota por:

A = {x: p(x)}

Esta expresin se lee como El conjunto A se forma por todos aquellos elementos x que
cumplen con la regla o propiedad p(x). Por ejemplo, consideremos al siguiente conjunto:

Y = {x: x ` x mod 2 = 1}

En este caso tenemos que nuestra funcin proposicional es x ` x mod 2 = 1. Ello


quiere decir que el conjunto Y se conformar por aquellos valores para x tales que x es un
nmero natural y adems x es un nmero impar (a mod b retorna el residuo del cociente
a/b). Por ejemplo, tenemos que 11 Y ya que 11 es un nmero natural y tambin es impar.
3.1416 Y por no ser un nmero natural. Los nmeros naturales pares tampoco formarn
parte de Y. Es claro que Y ser un conjunto con un nmero infinito de elementos. Si se

63
Una Introduccin a las Matemticas Discretas y Teora de Grafos

deseara presentar a Y mediante su definicin por extensin entonces nicamente se listan


algunos de sus elementos y al final se coloca para denotar que la lista de elementos es
infinita:

Y = {1, 3, 5, 7, 9, 11, 13, 15, }

Retomemos nuestro anterior ejemplo X = {1, 2, 3, 4, 5, 6, 7, 8}. La definicin


intencional de X podra estar dada por:

X = {y: y ` 1 y 8}

Los elementos dentro de un conjunto no tienen que ser listados necesariamente en


orden. Por lo tanto, nuestro conjunto X = {1, 2, 3, 4, 5, 6, 7, 8} pudo haber sido presentado
como X = {8, 1, 7, 2, 6, 3, 5, 4}. Ello implica que

X = {1, 2, 3, 4, 5, 6, 7, 8} = {8, 1, 7, 2, 6, 3, 5, 4} = {5, 6, 7, 8, 1, 2, 3, 4} = ...

En la notacin dada por la definicin intencional de un conjunto, {x: p(x)},


simplemente dijimos que constantes individuales para x sern evaluadas contra p(x) a fin de
determinar si son o no elementos del conjunto. Por lo regular siempre se sobreentender la
existencia de un Conjunto Universo denotado como 8. Este conjunto tiene a todas las
posibles constantes individuales a considerar. En nuestro ejemplo anterior,
Y = {x: x ` x mod 2 = 1}, podramos decir que 8 = \ , es decir, toda sustitucin para
evaluar si se cumple o no la regla x ` x mod 2 = 1 tiene que ser forzosamente con un
nmero real. La idea de especificar al conjunto universo tambin tiene la intencin de evitar
efectuar sustituciones que carezcan de sentido, por ejemplo, Rojo ` Rojo mod 2 = 1.
Obsrvese que si hubisemos planteado desde un principio, para nuestro ejemplo en
consideracin, que el conjunto universo fuese el conjunto de los nmeros naturales, i.e.
8 = ` , entonces nuestra regla podra reducirse simplemente a determinar que el nmero
sea impar. Entonces en este caso, y considerando que 8 = ` , tendramos:

Y = {x: x mod 2 = 1}

El Conjunto Vaco es el conjunto que no contiene ningn elemento y se le denota


por . Su definicin intencional podra establecerse como:

= {x: F}

En este caso estamos considerando a una funcin proposicional, para la cual no importa la
sustitucin de x que se efecte, sta siempre dar como resultado una contradiccin. Esto
tiene sentido ya que el conjunto vaco no puede tener elementos, por lo tanto para todo

64
Captulo 2. Teora de Conjuntos

elemento x que se quiera verificar si pertenece o no a siempre se deber obtener que


x . La definicin por extensin de es:

={}

Es decir, la lista de los elementos de est vaca.

Si A y B son conjuntos cuyos elementos se encuentran en un conjunto universo 8


entonces se dice que el conjunto A es un Subconjunto del conjunto B, denotado por
A B, si todo elemento del conjunto A es tambin un elemento del conjunto B. Al smbolo
se le denomina operador de Contencin. Formalmente:

A B (x 8)(x A x B)

Tomemos la proposicin general (x 8)(x A x B) y obtengamos su


correspondiente negacin:

(x 8)(x A x B)
(x 8)((x A x B))
(x 8)(((x A) x B)) (Por Propiedad del Condicional)
(x 8)((x A x B)) (Dado que (x A) x A)
(x 8)((x A) (x B)) (Por Ley de DMorgan)
(x 8)(x A x B)

Como podr apreciarse acabamos de obtener la condicin que debe cumplirse para
establecer cuando un conjunto A no es subconjunto de un conjunto B: que exista un
elemento presente en A pero que no est presente en B. En este caso se utiliza la notacin
A B. Formalmente se tiene:

A B (x 8)(x A x B)

Por ejemplo, consideremos a los siguientes conjuntos:

8= `
A = {2, 4, 6, 8, 10}
B = {2, 4, 6, 8, 10, 12, 14, 16}

Mostraremos que A B, es decir, se demostrar que (x 8)(x A x B)


Para x = 2, (2 A 2 B) (V V) V
Para x = 4, (4 A 4 B) (V V) V
Para x = 6, (6 A 6 B) (V V) V
Para x = 8, (8 A 8 B) (V V) V
Para x = 10, (10 A 10 B) (V V) V

65
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Por lo tanto la proposicin (x 8)(x A x B) es verdadera y entonces se concluye


que A B. Ahora mostraremos que para los mismos conjuntos el recproco es falso, es
decir, B A. Se demostrar que (x 8)(x B x A) es verdadera. Basta con tomar
el elemento x = 14 para el que se tiene que la proposicin 14 B 14 A es verdadera.
Es decir, hemos verificado que existe un elemento de B que no est en A. Por lo tanto se
concluye
B A

Consideremos ahora un ejemplo en el que nuestros conjuntos tienen un nmero


infinito de elementos. Supngase que 8 = ] = {, -3, -2, -1, 0, 1, 2, 3, }.

Teorema 2.1: Sean los conjuntos A = {x: x es mltiplo de 6} y B = {x: x es mltiplo de 2}.
Entonces A B.

Demostracin:

Sea x cualquier elemento del conjunto A.

x A (n ] )(x = 6n) (n ] )(x = (23)n)


(n ] )(x = 2(3n))
(n ] )(x = 2m m = 3n)
(n ] )(x = 2m m = 3n) (m ] )(x = 2m)
(m ] )(x = 2m) x B

Por Ley del Silogismo Hipottico: x A x B.

Dado que x es cualquier elemento en A: (x ] )(x A x B) A B.

Comentemos la manera en que la demostracin del Teorema 2.1 fue abordada. En


primer lugar debe ser evidente que tanto el conjunto A como el conjunto B tienen un
nmero infinito de elementos. Sin embargo sabemos que lo que tienen en comn los
elementos en A es ser mltiplos de 6 y mientras que los elementos en B son mltiplos de 2.
Sea x cualquier elemento del conjunto A. Debido a que x A entonces existe un entero n
tal que x puede ser expresado como 6n, i.e. (n ] )(x = 6n). Ahora bien manipularemos a
esta proposicin general, y en particular a su funcin proposicional x = 6n, a fin de obtener
proposiciones generales equivalentes. Primero ntese que 6n puede ser expresado como
(23)n. Ello quiere decir que x = (23)n = 2(3n). Es donde tenemos a las equivalencias

(n ] )(x = 6n) (n ] )(x = (23)n) (n ] )(x = 2(3n))

66
Captulo 2. Teora de Conjuntos

Ahora sea m = 3n, entonces x = 2m. Esto lo expresamos al establecer que se cumple que
x = 2m y que m = 2n. Esto da a lugar a la ltima equivalencia:

(n ] )(x = 2(3n)) (n ] )(x = 2m m = 3n)

Dado que tenemos una cadena de equivalencias entonces la condicional inicial


x A (n ] )(x = 6n) puede ser reescrita como x A (n ] )(x = 2m m = 3n).
Es claro que m es un nmero entero ya que n y 3 son enteros tambin. En consecuencia se
usar una implicacin ya que estamos considerando una nueva proposicin general en
donde n ya no est presente:

(n ] )(x = 2m m = 3n) (m ] )(x = 2m)

La proposicin (m ] )(x = 2m) expresa la propiedad que deber cumplir x para verificar
que efectivamente forma parte del conjunto B. Ello da a lugar a la nueva implicacin

(m ] )(x = 2m) x B

Hasta este punto tenemos que hemos construido nuestras premisas y es claro que todas son
verdaderas. Ahora debe verse con facilidad que la aplicacin de la Ley del Silogismo
Hipottico sobre estas premisas dar como resultado final la condicional x A x B.
Todas las premisas consideran a un mismo elemento x de A en particular. Pero es claro que
no importa el elemento de A que se considere, estas premisas seguirn conservando su
validez. De all el haber establecido en un principio Sea x cualquier elemento del conjunto
A. Por lo tanto podemos afirmar que la proposicin general (x ] )(x A x B) es
verdadera. Recalcamos que la justificacin de la veracidad de x A x B es la que se
bas en las premisas que construimos previamente y las inferencias efectuadas. Finalmente
se tiene que la proposicin general con cuantificador universal corresponde a la definicin
dada para establecer que A es efectivamente subconjunto de B. Tenemos entonces la
implicacin final y tambin verdadera:

(x ] )(x A x B) A B

Ahora se demostrarn dos importantes Teoremas:

Teorema 2.2: El conjunto vaco es subconjunto de cualquier conjunto.

Demostracin:

Sea X cualquier conjunto. Para probar que X se debe cumplir

(x 8)(x x X) V

67
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Recurramos a la negacin de la proposicin anterior:

(x 8)(x x X)
(x 8)((x x X))
(x 8)(((x ) x X)) (Propiedad del Condicional)
(x 8)((x x X)) ((x ) x )
(x 8)((x ) (x X))) (Ley de DMorgan)
(x 8)(x x X))

La funcin proposicional x x X siempre generar una contradiccin ya que si bien


es posible encontrar un elemento x que no forme parte del conjunto X, es imposible
encontrar un elemento x que forme parte del conjunto vaco. Ello quiere decir que para
cualquier x en el conjunto universo x F y entonces para la conjuncin
x x X F. En consecuencia la proposicin (x 8)(x x X)) es falsa,
pero su negacin, que es la proposicin (x 8)(x x X), es verdadera.

Por lo tanto para cualquier conjunto X se tiene que X.

Teorema 2.3: Todo conjunto es subconjunto de si mismo.

Demostracin:

Sea X cualquier conjunto. Para probar que X X se debe cumplir

(x 8)(x X x X) V

Manipulemos a la funcin proposicional x X x X:

xXxX
(x X) x X (Propiedad del Condicional)
xXxX ((x X) x X)
V (x X x X es una Tautologa)

Es decir, no importa el elemento x en X que se est considerando, la funcin proposicional


x X x X siempre generar el valor verdadero.

En consecuencia la proposicin general (x 8)(x X x X) es verdadera y nos


permite concluir que efectivamente X X.

68
Captulo 2. Teora de Conjuntos

En este punto surgen tres hechos que son consecuencia directa de los Teoremas 2.2
y 2.3:

Corolario 2.1:
a)
b) 8
c) 8 8

Demostracin:

Los incisos a) y b) se confirman por el hecho de que el Teorema 2.2 establece que el
conjunto vaco es subconjunto de cualquier conjunto. El Teorema 2.3 nos dice que todo
conjunto es subconjunto de s mismo. El conjunto universo es un conjunto y por lo tanto es
subconjunto de s mismo. Con ello se valida el inciso c).

Ntese que la proposicin que acabamos de demostrar no fue denominada Teorema.


Un Corolario debe entenderse tambin como un Teorema aunque su importancia se
considera menor debido a que su demostracin se obtiene de manera inmediata y directa a
partir de un Teorema demostrado previamente, como fue el caso de nuestro Corolario 2.1.

A partir de este punto siempre se supondr que los elementos en cualquier conjunto
A forman parte de un conjunto universo independientemente de si ste es descrito
explcitamente o no. Ello implica que para todo conjunto A se tendr que A 8.

Inicialmente se estableci que un conjunto es una coleccin de distintos objetos. Un


punto a abordar tiene que ver con el hecho de que tales objetos pueden ser a su vez
conjuntos. Ello quiere decir que es posible contar con la nocin de un conjunto cuyos
elementos son conjuntos. Por ejemplo sea el conjunto Y dado por:

Y = {{a, b, c}, {d, e}, {a}, {x, y, z, w}}

En este caso tenemos que el conjunto Y cuenta con 4 elementos. Debe ser claro que el
elemento {a} Y pero que a Y. Ello se debe a que a no es un conjunto, mientras que
{a} si lo es y est presente en Y. Por lo tanto a no puede ser equivalente a ninguno de los 4
conjuntos en Y, considerando inclusive que a forma parte de 2 de tales elementos. Ahora
bien, si tenemos al conjunto Y dado por:

Y = {{a, b, c}, {d, e}, {a}, {x, y, z, w}, a}

69
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Entonces si se cumple que a Y ya que existe un elemento en Y que efectivamente es


igual al elemento a. Aqu tambin aprovecharemos para establecer el hecho de que y
{} son conjuntos diferentes. Sabemos que representa al conjunto con cero elementos.
Por otro lado {} representa a un conjunto con un elemento y tal nico elemento es el
conjunto vaco.

Sea A cualquier conjunto. El conjunto cuyos elementos resultan ser todos los
posibles subconjuntos de A se le llamar Conjunto Potencia y se le denotar por 2A. Por
ejemplo, sea el conjunto A dado por A = {1, 2, 3}. Entonces tenemos que:

2A = {{1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}, }

Es claro que para formar al conjunto potencia, en el caso de A = {1, 2, 3}, tuvimos que
considerar a todos los subconjuntos de A formados por un nico elemento y a todos los
subconjuntos de A formados por dos elementos. Ntese que en 2A tambin est A y ya
que sabemos que A A y que A. Supongamos que el conjunto universo en el que
estn contenidos los elementos de A est dado por 8 = {1, 2, 3, 4}. Entonces tendremos
que es posible tambin calcularle su conjunto potencia:

28 = {{1}, {2}, {3}, {4}, {1, 2}, {1, 3}, {1, 4}, {2, 3}, {2, 4}, {3, 4},
{1, 2, 3}, {1, 3, 4}, {2, 3, 4}, {1, 2, 4}, {1, 2, 3, 4}, }

Dado que 8 es el universo respecto a A entonces es claro que 2A es subconjunto de 28,


aunque el recproco no es cierto, 28 2A.

Consideremos por ejemplo a 8 = ` . Entonces tendremos que

28 = 2` = {, ` , {1}, {2}, {3}, {4}, {5}, , {1, 2}, {1, 3}, {1, 4}, {1, 5}, }

Es claro que 2` tendr un nmero infinito de elementos. Ello se debe a que 2` se formar
por todos los posibles subconjuntos cuyos elementos sern tomados del conjunto de los
nmeros naturales, el cual a su vez es un conjunto con un nmero infinito de elementos. En
este punto quizs sea ms conveniente la definicin intencional de 2` :

2` = {c: c es un conjunto c ` }

Un punto importante respecto al uso de 28 tiene que ver con ste tendr un papel
anlogo al de nuestro conjunto . Recordamos que era un conjunto que contena a todas
las posibles proposiciones. A la vez nos proporcionaba un conjunto cuyos elementos son
aquellos sobre los cuales trabajan nuestras equivalencias lgicas y nuestras propiedades del
lgebra Proposicional. Es decir, el conjunto defina nuestro marco de trabajo y el
alcance de tales equivalencias y propiedades. Ahora bien, hemos visto que dado un
conjunto universo 8, 28 contiene a todos los posibles conjuntos que se pueden formar a
partir de los elementos en 8. A continuacin estableceremos una serie de operadores,

70
Captulo 2. Teora de Conjuntos

propiedades, y en la siguiente Seccin un lgebra de Conjuntos. Pero para ello necesitamos


considerar en primer lugar un conjunto universo y cules son los conjuntos formados a
partir de ste en donde nuestras propiedades y operadores sern validos. Por lo tanto 28
definir nuestro marco de trabajo, tal como lo hizo en su momento el conjunto .

Sea 8 un conjunto universo. Sean A y B cualesquiera subconjuntos en 28, i.e.


A, B 28. Se definen los siguientes operadores:

La Unin de los conjuntos A y B, denotada por A B, se define como:

A B = {x: x A x B}

Es decir, la unin de los conjuntos A y B es un nuevo conjunto en el cual estn tanto


los elementos de A como los elementos de B. Ntese que al efectuar la unin podemos
encontrar elementos que nicamente estn en A pero no en B, o viceversa, que estn en
B pero no en A. Pero dado que se utiliza el conectivo de disyuncin basta con que se
encuentren presentes en uno de los conjuntos para que se caractericen como parte de la
unin.

La Interseccin de los conjuntos A y B, denotada por A B, est dada por:

A B = {x: x A x B}

Es claro que la interseccin de dos conjuntos tambin da como resultado un nuevo


conjunto. De acuerdo a la funcin proposicional x A x B tenemos que para que
un elemento x est en A B ste debi formar parte tanto de A como de B. Es decir,
A B se conforma de los elementos comunes tanto a A como a B.

La Diferencia entre los conjuntos A y B, la cual se denota por A \ B, se define como:

A \ B = {x: x A x B}

La diferencia de los conjuntos A y B es un conjunto el cual se forma nicamente por


los elementos que estn en A pero que no estn en B. Es claro que ningn elemento en
B formar parte de la diferencia, ya que tal elemento no cumple con la proposicin
x B. Las operaciones de unin e interseccin forman conjuntos cuyos elementos
pueden estar tanto en A como en B, pero la diferencia en cambio forma un conjunto
cuyos elementos son exclusivos de A, en el sentido de que stos no pertenecen tambin
al conjunto B.

71
Una Introduccin a las Matemticas Discretas y Teora de Grafos

La Diferencia Simtrica entre los conjuntos A y B, denotada por A B, se establece


de la siguiente manera en trminos de la unin y diferencia de conjuntos:

A B = (A \ B) (B \ A)

Sabemos que la operacin A \ B retorna aquellos elementos que estn en A pero no en


B, mientras que B \ A proporciona nicamente aquellos elementos que estn en B pero
no en A. Por lo tanto la unin del conjunto A \ B con el conjunto B \ A dar como
resultado un conjunto en el cual estn todos los elementos de A y de B excepto
aquellos presentes en A B. Ello se debe a que si x est en A B entonces por la
definicin del operador de interseccin la proposicin x A x B ser verdadera.
Pero la funcin proposicional asociada al operador de diferencia claramente establece
que uno de los elementos slo puede estar presente en uno y slo uno de los conjuntos.
Por lo tanto, todo elemento en A B es excluido de la diferencia simtrica.

El Producto Cartesiano de los conjuntos A y B, cuya denotacin est dada por A B,


se define como:

A B = {(x, y): x A y B}

Es decir, el producto cartesiano produce un nuevo conjunto. Sin embargo los elementos
que lo conforman son Pares Ordenados de la forma (x, y). En este caso el primer
elemento x est presente en el conjunto A mientras que el segundo elemento y est
presente en el conjunto B.

El Complemento del conjunto A, el cual se denota por AC, es definido de la siguiente


manera:

AC = {x: x 8 x A}

Como podr se apreciar, el complemento del conjunto A es un nuevo conjunto que


tiene la propiedad de que sus elementos no son elementos de A: AC se conforma por
todos los restantes elementos del conjunto universo. O en otras palabras, todo elemento
del universo que no est en A, estar en el complemento de A.

Considrese a los siguientes conjuntos:

8 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
A = {2, 3, 5, 7}
B = {2, 4, 6, 8}
C = {9, 10}

72
Captulo 2. Teora de Conjuntos

Entonces tendremos los siguientes ejemplos:

A B = {2, 3, 5, 7, 4, 6, 8}
o Ntese que el elemento 2 es comn tanto a A como a B, pero tal como se estableci
desde un principio, la notacin de conjuntos no admite elementos repetidos. Por ello
en la unin el nmero 2 aparece slo una vez.

A B = {2}

AC=
o En este caso es claro que los conjuntos A y C no tienen elementos en comn, por lo
tanto se dice que su interseccin es vaca y ello evidentemente se denota con el
conjunto vaco.

A \ B = {3, 5, 7}
o A y B tienen en comn al elemento 2. De la definicin del operador de diferencia
tenemos entonces que 2 A 2 B F. Por lo tanto este elemento no es
considera dentro del conjunto A \ B. Para los elementos en A, 3, 5 y 7 se tiene que
x A x B V en todos los casos y en consecuencia est en la diferencia. Para
los elementos en B, 4, 6, 8, se tiene que x A x B F ya que no se cumple que
formen parte de A (x A), ni que no formen parte de B (x B). Por lo tanto los
elementos 3, 5 y 7 no estn en A \ B.

B \ A = {4, 6, 8}
o Este ejemplo claramente nos dice que el operador de diferencia no ser
conmutativo.

A \ C = {2, 3, 5, 7} = A
o Este resultado en realidad no debe sorprendernos. Para empezar se puede verificar
sin problema alguno que A C = , es decir, A y C no tienen elementos en comn.
Por lo tanto todos los elementos de A harn que la funcin proposicional
x A x C siempre sea verdadera. Los elementos en C tenemos claro que no se
toman en cuenta para formar parte de A \ C ya que no cumplen con el primer
requisito de formar parte de A.

B \ C = {2, 4, 6, 8} = B

A B = (A \ B) (B \ A) = {3, 5, 7} {4, 6, 8} = {3, 5, 7, 4, 6, 8}


o Ntese como es que a la diferencia simtrica nicamente le interesan los elementos
que exclusivamente formen parte del conjunto A y los elementos que
exclusivamente formen parte del conjunto B. Los elementos comunes, en este caso
el nmero 2, simplemente no se consideran ya que es comn tanto a A como a B, o
en trminos de la interseccin, 2 A B.

73
Una Introduccin a las Matemticas Discretas y Teora de Grafos

B C = (B \ C) (C \ B) = {2, 4, 6, 8} {9, 10} = B C = {2, 4, 6, 8, 9, 10}


o En este caso debido a que B C = es claro que todos los elementos que
conforman tanto a B como a C formarn parte de la diferencia simtrica B C.

A B = {(2, 2), (2, 4), (2, 6), (2, 8), (3, 2), (3, 4), (3, 6), (3, 8), (5, 2), (5, 4), (5, 6),
(5, 8), (7, 2), (7, 4), (7, 6), (7, 8)}
o Obsrvese que cada elemento del producto cartesiano entre A y B es un par que se
forma, y estrictamente en ese orden, primero por un elemento de A y despus por un
elemento de B. Por la definicin se deben formar todos los posibles pares. En
realidad no es difcil ver que simplemente tomamos el primer elemento de A (2) y
lo emparejamos con cada elemento de B, posteriormente tomamos al segundo
elemento de A (3) y lo emparejamos con cada elemento de B, y as sucesivamente.
El nmero total de posibles pares es el producto del nmero de elementos en A con
el nmero de elementos en B.

B A = {(2, 2), (2, 3), (2, 5), (2, 7), (4, 2), (4, 3), (4, 5), (4, 7), (6, 2), (6, 3), (6, 5),
(6, 7), (8, 2), (8, 3), (8, 5), (8, 7)}
o Este ejemplo nos hace ver que el conjunto resultante de B A es muy diferente al
obtenido en A B. Ello implica que el producto cartesiano no necesariamente ser
conmutativo. Decimos que no necesariamente ya que si existen casos en donde la
conmutatividad de cumple. Considrense a D = {1, 2, 3} y E = {1, 2, 3}. Entonces
es fcil verificar que D E = E D. En general deber siempre asumirse la no
conmutatividad del producto cartesiano.

AC = {1, 4, 6, 8, 9, 10}

BC = {1, 3, 5, 7, 9}

CC = {1, 2, 3, 4, 5, 6, 7, 8}

Resumiendo, hemos definido en total 6 operadores entre conjuntos: unin,


interseccin, diferencia, diferencia simtrica, producto cartesiano y complemento. Es clara
la aportacin dada por el lgebra Proposicional a fin de contar con las definiciones precisas
y sobre todo formales. Ahora lo que tendremos es la aplicacin de las definiciones
anteriores a fin de dar demostracin a Teoremas que nos proporcionen nuevas propiedades
referentes a las operaciones entre conjuntos. Como se ver a continuacin la metodologa a
aplicar considera el sustituir las expresiones apropiadas por sus correspondientes
definiciones y posteriormente manipular stas, mediante el lgebra de Proposiciones, a fin
de obtener funciones proposicionales que se ajusten finalmente a las expresiones deseadas.
Veamos un primer ejemplo que tiene que ver con la Propiedad Asociativa de la
Interseccin:

74
Captulo 2. Teora de Conjuntos

Teorema 2.4 (Propiedad Asociativa de la Interseccin):

(P, Q, R 28)((P Q) R = P (Q R))

Demostracin:

(P Q) R = {x: x P x Q} R (Por definicin de interseccin


sobre P Q)
= {x: (x P x Q) x R} (Por definicin de interseccin
sobre {x: x P x Q} R)
= {x: x P (x Q x R)} (Por propiedad asociativa de la
conjuncin)
= P {x: x Q x R} (Por definicin de interseccin
sobre x P (x Q x R))
= P (Q R) (Por definicin de interseccin
sobre {x: x Q x R})

Analicemos paso a paso la demostracin del Teorema 2.4. Es claro que se debe
demostrar que para cualesquiera conjuntos P, Q y R, que se asume son subconjuntos de un
conjunto universo dado, se cumple que (P Q) R = P (Q R). Ntese que contamos
con una igualdad lo que implica que se debe demostrar que la expresin (P Q) R
define al mismo conjunto que la expresin P (Q R). Como comentamos anteriormente
la idea es manipular una de las expresiones apoyndonos en las definiciones de los
operadores de conjuntos y el lgebra Proposicional hasta obtener la otra expresin en
cuestin. Dado que se tiene una igualdad podemos manipular a (P Q) R hasta obtener
a P (Q R), o bien comenzamos por manipular a P (Q R) hasta obtener a
(P Q) R. La idea es que cualquiera que sea nuestro punto de origen el resultado ser
igual de vlido. En nuestra prueba abordamos la demostracin partiendo de (P Q) R.
Iniciamos aplicando la definicin del operador interseccin sobre P Q. De esta forma
obtenemos

{x: x P x Q}

Sabemos que la interseccin de dos conjuntos produce como resultado un nuevo conjunto.
En nuestro caso se produce un conjunto para el que se tiene que su definicin intencional
establece que x ser uno de sus elementos siempre y cuando x satisfaga la propiedad
x P x Q. Ahora, ntese que este conjunto es intersectado a su vez con el conjunto R:

{x: x P x Q} R

75
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Entonces, al aplicar nuevamente la definicin del operador interseccin tenemos que se


producir un nuevo conjunto cuyos elementos cumplirn la propiedad de estar tanto en R
como en P Q. Pero recalcamos que la propiedad para determinar que un elemento x est
en P Q es x P x Q y adems estamos considerando al conjunto P Q y no a P y Q
por separado. Por lo tanto, para que un elemento x sea comn a R y a P Q deber cumplir
con la propiedad:

(x P x Q) x R

Que es precisamente la funcin proposicional que da a lugar a la definicin intencional del


conjunto (P Q) R:

{x: (x P x Q) x R}

Recordemos que nuestro objetivo es llegar a la expresin P (Q R). Observando a sta


podemos apreciar que se relacionan de manera directa, por el operador y los parntesis, a
los conjuntos Q y R. En esta fase de nuestra demostracin tenemos relacionados de manera
directa a P y Q, pero la ventaja es que la funcin proposicional (x P x Q) x R
est descrita nicamente con conectivos de conjuncin. Por lo tanto podemos aplicar la
propiedad asociativa de la conjuncin a fin de trasladar los parntesis en la funcin y
agrupar ahora a Q y R:

{x: x P (x Q x R)}

Ntese que vista como una funcin proposicional, x Q x R define intencionalmente a


un nuevo conjunto que se est intersectando con el conjunto P. Por lo tanto podemos
separar a P mediante una aplicacin de la definicin del operador de interseccin dejando
al otro conjunto an con su definicin intencional:

P {x: x Q x R}

En este punto debe ser claro que la definicin intencional {x: x Q x R} corresponde
nada ms y nada menos, y en base a la definicin del operador de interseccin, a conjunto
Q R. Solo basta invocar explcitamente a la definicin del operador interseccin para
finalmente obtener

P (Q R)

Con lo que la demostracin queda finalizada.

El operador de unin de conjuntos tambin satisface la conmutatividad. Vase como


la demostracin del Teorema 2.5 es muy similar a la del Teorema 2.4:

76
Captulo 2. Teora de Conjuntos

Teorema 2.5 (Propiedad Asociativa de la Unin):

(P, Q, R 28)((P Q) R = P (Q R))

Demostracin:

(P Q) R = {x: x P x Q} R (Por la definicin de unin


sobre P Q)
= {x: (x P x Q) x R} (Por la definicin de unin sobre
{x: (x P x Q)} R)
= {x: x P (x Q x R)} (Propiedad asociativa de la disyuncin)
= P {x: x Q x R} (Por definicin de unin sobre
x P (x Q x R))
= P (Q R) (Por definicin de unin sobre
{x: x Q x R})

Los siguientes Teoremas 2.6 y 2.7 son fciles de probar. Se relacionan con la
conmutatividad de la unin y la interseccin, respectivamente.

Teorema 2.6 (Propiedad Conmutativa de la Unin):

(P, Q 28)(P Q = Q P)

Demostracin:

P Q = {x: x P x Q} (Por definicin de unin)


= {x: x Q x P} (Propiedad conmutativa de la disyuncin)
=QP (Por definicin de unin)

Teorema 2.7 (Propiedad Conmutativa de la Interseccin):

(P, Q 28)(P Q = Q P)

77
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Demostracin:

P Q = {x: x P x Q} (Por definicin de interseccin)


= {x: x Q x P} (Propiedad conmutativa de la conjuncin)
=QP (Por definicin de interseccin)

Ahora probemos que los operadores de unin, interseccin y complemento cuentan


con la propiedad de la idempotencia:

Teorema 2.8 (Idempotencia de la Interseccin):

(P 28)(P P = P)

Demostracin:

P P = {x: x P x P} (Por definicin de interseccin)


= {x: x P} (Propiedad de idempotencia de la conjuncin)
=P ({x: x P} es una definicin intencional de P)

Teorema 2.9 (Idempotencia de la Unin):

(P 28)(P P = P)

Demostracin:

P P = {x: x P x P} (Por definicin de unin)


= {x: x P} (Propiedad de Idempotencia de la disyuncin)
=P ({x: x P} es una definicin intencional de P)

Teorema 2.10 (Ley del Doble Complemento):

(P 28)((PC)C = P)

78
Captulo 2. Teora de Conjuntos

Demostracin:

(PC)C = ({x: x 8 x P})C (Por definicin de complemento


sobre PC)
= {x: x 8 (x 8 x P)} (Por definicin de complemento
sobre {x: x 8 x P})
= {x: x 8 (x 8 x P)} (Ley de DMorgan sobre
(x 8 x P))
= {x: (x 8 x 8) (x 8 x P)} (Propiedad distributiva respecto
a la conjuncin)
= {x: F (x 8 x P)} (x 8 x 8F)
= {x: x 8 x P} (Existencia del elemento neutro
en la disyuncin)
= {x: V x P} (x 8 es una Tautologa)
= {x: x P} (Existencia del elemento neutro
en la conjuncin)
=P ({x: x P} es una definicin
intencional de P)

La demostracin del Teorema 2.10 tiene algunos puntos interesantes. En primer


lugar se tiene que aplicar la definicin del operador de complemento sobre PC. De esta
forma se obtiene un conjunto cuya definicin intencional est dada por

{x: x 8 x P}

Ntese que la funcin proposicional x 8 x P establece claramente cul es la


condicin que debe cumplir un elemento x para formar parte de PC. Ahora bien, se debe
determinar la definicin intencional del complemento del conjunto {x: x 8 x P}. Ello
quiere decir que por la definicin del operador de complemento tenemos que un elemento x
estar en ({x: x 8 x P})C si x est en el conjunto universo y adems x no est en el
conjunto {x: x 8 x P}. Por lo tanto, se tiene en consecuencia al conjunto

{x: x 8 (x 8 x P)}

Donde recalcamos que x 8 x P es la funcin proposicional que nos indica si x est o


no en el conjunto PC. Dado que requerimos que x no se encuentre en PC es que entonces
anteponemos el operador de negacin. Aplicando Ley de DMorgan sobre
(x 8 x P) obtenemos la definicin intencional equivalente

{x: x 8 (x 8 x P)}

79
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Ntese que en este punto realmente ya no es posible efectuar ms manipulaciones sobre


x 8 x P por lo que se aplica la propiedad distributiva respecto a la conjuncin:

{x: (x 8 x 8) (x 8 x P)}

La proposicin x 8 x 8 es lgicamente equivalente a F dado que se trata de una


contradiccin. Ahora se tiene

{x: F (x 8 x P)}

Recordemos que F es el elemento neutro para la operacin de disyuncin por ello


simplemente conservamos a x 8 x P:

{x: x 8 x P}

Ahora bien, ntese que el objetivo detrs de estas manipulaciones es llegar a obtener P. La
funcin proposicional x P es una definicin intencional para P, aunque est conectada
mediante una conjuncin a la funcin x 8. Sin embargo, no debe ser difcil apreciar el
hecho de que x 8 es una Tautologa y por tanto equivalente a V. Ello se debe a que
previamente establecimos que todos los elementos de nuestros conjuntos de trabajo estn
contenidos en un conjunto universo. Por lo tanto tiene sentido establecer que x 8 V ya
que todo elemento x forma necesariamente parte del universo que es nuestro conjunto
maximal. Haciendo x 8 V tenemos la funcin proposicional V x P y dado que V es
el elemento neutro para la conjuncin tenemos finalmente nuestro objetivo alcanzado:

{x: x P} = P

El operador de complemento es aplicable a cualquier conjunto, y ello incluye al


conjunto vaco y al conjunto universo. Los Teoremas 2.11 y 2.12 nos ilustrarn respecto a
los complementos de estos dos conjuntos.

Teorema 2.11:

C = 8

80
Captulo 2. Teora de Conjuntos

Demostracin:

C = {x: x 8 x } (Por definicin de complemento)


= {x: x 8 V} (x es una tautologa)
= {x: x 8} (Existencia del elemento neutro
en la conjuncin)
= 8      ({x: x 8} es una definicin
intencional de 8)

Teorema 2.12:

8C =

Demostracin:

8C = {x: x 8 x 8} (Por definicin de complemento)


= {x: x 8 F} (x 8 es una contradiccin)
= {x: F} (Existencia del elemento aniquilador
para la conjuncin)
= ({x: F} es una definicin intencional
de )

Ntense las funciones proposicionales x y x 8 en las demostraciones de los


Teoremas 2.11 y 2.12 respectivamente. En el caso de x debe ser evidente que sta es
una Tautologa ya que establece que un elemento x no formar parte del conjunto vaco.
Ello se cumple de hecho para cualquier elemento que se ponga a prueba. Por otro lado
x 8 es una contradiccin ya que establece que un elemento x no est en el universo. Pero
hemos mencionado en varias ocasiones que partimos de la suposicin de que todos los
elementos de nuestros conjuntos se asumen inmersos en el conjunto universo. Por lo tanto
decimos que x 8 F.

Ahora procederemos a demostrar una propiedad del operador de contencin:

Teorema 2.13 (Propiedad Transitiva de la Contencin):

(P, Q, R 28)(P Q Q R P R)

81
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Demostracin:

Supongamos que efectivamente es verdadero que P Q Q R. Entonces, por la


definicin del operador de contencin, se tendr la equivalencia

P Q Q R (x 8)(x P x Q) (x 8)(x Q x R)

Sea x0 cualquier elemento en P elegido de manera arbitraria. Entonces para este x0 en


particular es verdadero que

x0 P x0 Q x0 Q x0 R

Si consideramos a x0 P x0 Q y x0 Q x0 R como premisas entonces mediante


la Ley del Silogismo Hipottico concluimos que x0 P x0 R. Dado que x0 fue
cualquier elemento de P entonces no importa el elemento de P en consideracin: los
razonamientos anteriores seguirn siendo vlidos. Por lo tanto se tiene que la proposicin
(x 8)(x P x R) es verdadera. Y por la definicin del operador de contencin se
concluye que P R.

Las Leyes de DMorgan en su momento fueron presentadas bajo el contexto del


lgebra Proposicional. Ahora veremos que tambin pueden ser planteadas bajo el contexto
de la Teora de Conjuntos. En este caso el papel de la negacin lo hara el operador de
complemento mientras que para la disyuncin y conjuncin ahora se tendrn a la
interseccin y unin respectivamente.

Teorema 2.14 (Ley de DMorgan):

(P, Q 28)((P Q)C = PC QC)

Demostracin:

(P Q)C = ({x: x P x Q})C (Por definicin de unin


sobre P Q)
= {x: x 8 (x P x Q)} (Por definicin de
complemento)
= {x: x 8 (x P x Q)} (Ley de DMorgan sobre
(x P x Q))
= {x: (x 8 x P) x Q)} (Por propiedad
asociativa de la
conjuncin)

82
Captulo 2. Teora de Conjuntos

= {x: (x 8 x P) (V x Q)} (Existencia del elemento


neutro en la conjuncin
sobre x Q)
= {x: (x 8 x P) (x 8 x Q)} (x 8 es una
Tautologa, por lo tanto
x 8 V)
= {x: x 8 x P} {x: x 8 x Q} (Por definicin de
interseccin)
= PC {x: x 8 x Q} (Por definicin de
complemento sobre
{x: x 8 x P})
= PC QC (Por definicin de
complemento)

Los Teoremas 2.15 y 2.16 validarn el hecho de que para los operadores de unin e
interseccin existen sus correspondientes elementos neutros:

Teorema 2.15 (Existencia del Elemento Neutro en la Unin):

(P 28)(P = P)

Demostracin:

P = {x: x P x } (Por definicin de unin)


= {x: x P F} (x es una contradiccin)
= {x: x P} (Por existencia del elemento neutro en la
disyuncin)
=P ({x: x P} es una definicin intencional
para P)

Teorema 2.16 (Existencia del Elemento Neutro en la Interseccin):

(P 28)(P 8 = P)

83
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Demostracin:

P8 = {x: x P x 8} (Por definicin de interseccin)


= {x: x P V} (x 8 es una tautologa)
= {x: x P} (Por existencia del elemento neutro en la
conjuncin)
=P ({x: x P} es una definicin intencional
para P)

La siguiente Propiedad ser sumamente til ya que nos permite expresar al operador
de diferencia en trminos de los operadores de interseccin y complemento:

Teorema 2.17 (Propiedad de la Diferencia):

(P, Q 28)(P \ Q = P QC)

Demostracin:

P \ Q = {x: x P x Q} (Por definicin de diferencia)


= {x: x P (V x Q)} (Por existencia del elemento neutro
en la conjuncin sobre x Q)
= {x: x P} {x: V x Q} (Por definicin de interseccin)
= P {x: V x Q} ({x: x P} es una definicin intencional
para P)
= P {x: x 8 x Q} (x 8 es una tautologa)
= P QC (Por definicin de complemento)

2.2 Algebra de Conjuntos


En la Seccin anterior se demostraron algunas propiedades de los operadores de
conjuntos. Ahora, tales propiedades, junto con otras ms, formarn un lgebra de
Conjuntos que permitirn demostrar Teoremas de una manera ms directa y sin tener que
recurrir ahora al lgebra Proposicional. Sin embargo, deber ser claro que nuestra nueva
lgebra se sustentar por un lado en las definiciones de los operadores de conjuntos y por
otro lado, y de ninguna manera menos importante, sobre las propiedades del lgebra
Proposicional.

84
Captulo 2. Teora de Conjuntos

Propiedades de Cerradura:
(P, Q 28)(P Q 28)
(P, Q 28)(P Q 28)
(P 28)(PC 28)
Propiedades de Conmutatividad:
(P, Q 28)(P Q = Q P) (Teorema 2.6)
(P, Q 28)(P Q = Q P) (Teorema 2.7)
Propiedades de Asociatividad:
(P, Q, R 28)((P Q) R = P (Q R)) (Teorema 2.5)
(P, Q, R 28)((P Q) R = P (Q R)) (Teorema 2.4)
Propiedades de Distributividad:
(P, Q, R 28)(P (Q R) = (P Q) (P R))
(P, Q, R 28)(P (Q R) = (P Q) (P R))
Propiedades de Idempotencia:
(P 28)(P P = P) (Teorema 2.9)
(P 28)(P P = P) (Teorema 2.8)
Ley del Doble Complemento:
(P 28)((PC)C = P) (Teorema 2.10)
Leyes de DMorgan:
(P, Q 28)((P Q)C = PC QC) (Teorema 2.14)
(P, Q 28)((P Q)C = PC QC)
Existencia de Elementos Neutros:
(P 28)(P = P) (Teorema 2.15)
(P 28)(P 8 = P) (Teorema 2.16)
Existencia de Elementos Complementarios:
(P 28)(P PC = 8)
(P 28)(P PC = )
C = 8        Teorema 2.11)
8 = 
C
      Teorema 2.12)
Existencia de Elementos Aniquiladores:
(P 28)(P 8 = 8)
(P 28)(P = )
Propiedad de la Diferencia:
(P, Q 28)(P \ Q = P QC) (Teorema 2.17)

Veamos ahora algunos Teoremas cuyas demostraciones nos darn ilustracin


respecto a la aplicacin de las propiedades que forman a nuestra nueva lgebra de
Conjuntos. Como se ver a continuacin, todas las pruebas ya no invocan de manera directa
a las definiciones de los operadores de conjuntos y tampoco usan de forma explcita las
propiedades del lgebra Proposicional. Aunque recalcamos que stas forman precisamente
los cimientos sobre los que se sostiene nuestra nueva lgebra.

85
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Teorema 2.18:

(A, B, C 28)((C \ A) (C \ B) = C \ (A B))

Demostracin:

C \ (A B) = C (A B)C (Propiedad de la Diferencia)


= C (AC BC) (Ley de DMorgan sobre (A B)C)
= (C AC) (C BC) (Propiedad Distributiva respecto a la
Interseccin)
= (C \ A) (C BC) (Propiedad de la Diferencia sobre C AC)
= (C \ A) (C \ B) (Propiedad de la Diferencia sobre C BC)

Teorema 2.19:

(A, B, C 28)(C \ (B \ A) = (A C) (C \ B))

Demostracin:

C \ (B \ A) = C (B \ A)C (Propiedad de la Diferencia sobre


C \ (B \ A))
= C (B AC)C (Propiedad de la Diferencia sobre
B \ A)
= C (BC (AC)C) (Ley de DMorgan sobre (B AC)C)
= C (BC A) (Ley del Doble Complemento
sobre (AC)C)
= (C BC) (C A) (Propiedad Distributiva respecto
a la Interseccin)
= (C A) (C BC) (Propiedad Conmutativa de la Unin)
= (A C) (C BC) (Propiedad Conmutativa de la
Interseccin sobre C A)
= (A C) (C \ (BC)C) (Propiedad de la Diferencia sobre
C BC)
= (A C) (C \ B) (Ley del Doble Complemento
sobre (BC)C)

86
Captulo 2. Teora de Conjuntos

Teorema 2.20:

(A 28)(A \ A = )

Demostracin:

A \ A = A AC (Propiedad de la Diferencia)
= (Existencia de los Elementos Complementarios en la Interseccin)

Teorema 2.21:

(A, B, C 28)((B \ A) C = (B C) \ A)

Demostracin:

(B \ A) C = (B AC) C (Propiedad de la Diferencia sobre B \ A)


= B (AC C) (Propiedad Asociativa de la Interseccin)
= B (C AC) (Propiedad Conmutativa de la Interseccin
sobre AC C)
= (B C) AC (Propiedad Asociativa de la Interseccin)
= (B C) \ (AC)C (Propiedad de la Diferencia)
= (B C) \ A (Ley del Doble Complemento sobre (AC)C)

Teorema 2.22:

(A, B 28)((B \ A)C = A BC)

Demostracin:

(B \ A)C = (B AC)C (Propiedad de la Diferencia sobre B \ A)


= BC A (Ley de DMorgan)
= A BC (Propiedad Conmutativa de la Unin)

87
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Teorema 2.23:

(A, B, C 28)((B \ A) C = (B C) \ (A \ C))

Demostracin:

(B \ A) C = (B AC) C (Propiedad de la Diferencia sobre B \ A)


= C (B AC) (Propiedad Conmutativa de la Unin)
= (C B) (C AC) (Propiedad Distributiva respecto a la Unin)
= (B C) (C AC) (Propiedad Conmutativa de la Unin sobre
C B)
= (B C) (CC A)C (Ley de DMorgan sobre C AC)
= (B C) (A CC)C (Propiedad Conmutativa sobre CC A)
= (B C) (A \ C)C (Propiedad de la Diferencia sobre A CC)
= (B C) \ (A \ C) (Propiedad de la Diferencia)

Teorema 2.24:

(A, B, C 28)(C \ (A B) = (C \ A) \ B)

Demostracin:

C \ (A B) = C (A B)C (Por Propiedad de la Diferencia)


= C (AC BC) (Ley de DMorgan sobre (A B)C)
= (C AC) BC (Propiedad Asociativa de la Interseccin)
= (C \ A) BC (Propiedad de la Diferencia sobre C AC)
= (C \ A) \ B (Propiedad de la Diferencia)

Teorema 2.25:

(A, B 28)(A (A B) = A)

88
Captulo 2. Teora de Conjuntos

Demostracin:

A (A B) = (A 8) (A B) (Existencia del Elemento Neutro


en la Interseccin sobre A)
= A (8 B) (Propiedad Distributiva respecto
a la Interseccin)
=A8 (Existencia del Elemento Aniquilador
en la Unin)
=A (Existencia del Elemento Neutro
en la Interseccin)

89
Una Introduccin a las Matemticas Discretas y Teora de Grafos

90
Una Introduccin a las Matemticas Discretas y Teora de Grafos

3. Relaciones y
Funciones
Una Introduccin a las Matemticas Discretas y Teora de Grafos

92
Captulo 3. Relaciones y Funciones

3.1 Definiciones
Sean A y B dos conjuntos. Una Relacin Binaria de A hacia B es un subconjunto
del producto cartesiano entre A y B. Recordemos que el producto cartesiano A B forma a
todos los posibles pares ordenados en los cuales el primer elemento est en A y el segundo
elemento est en B. Por ejemplo, sean X y Y los siguientes conjuntos:

X = {1, 2, 3}
Y = {x, y, z}

Entonces

X Y = {(1, x), (2, x), (3, x), (1, y), (2, y), (3, y), (1, z), (2, z), (3, z)}

Sea el conjunto R = {(1, y), (1, z), (3, y)}. Ntese que R es una relacin binaria de X hacia
Y ya que R X Y.

Sean A y B cualesquiera conjuntos y sea R una relacin binaria de A hacia B.


Entonces ahora tendremos:
Si (a, b) R se dice que a se relaciona con b bajo R y se denota por a R b.
Si (a, b) R se dice que a no se relaciona con b bajo R y se especifica mediante
a R b.

Retomando nuestro ejemplo previo tenemos que para la relacin R presentada se


tienen las siguientes conclusiones:
(1, y) R: 1Ry
(1, z) R: 1Rz
(3, y) R: 3Ry
(1, x) R: 1Rx
(2, x) R: 2Rx
(3, z) R: 3Rz

Sea R una relacin binaria de A hacia B. El Dominio de la relacin binaria R es el


conjunto de todos los elementos de A que estn presentes en los pares ordenados que
conforman a R. Por otro lado, el Codominio de R es el conjunto de todos los elementos de
B que estn presentes en los pares ordenados de R. Por ejemplo, para la relacin binaria
R = {(1, y), (1, z), (3, y)} se tiene el dominio {1, 3} y el codominio {y, z}.

Una relacin binaria se puede representar visualmente de dos maneras. La idea es


hacer visible la forma en la que los elementos en el dominio y codominio se conectan o
relacionan entre s. En la primera representacin se figura a la relacin al listar a todos los
elementos de los conjuntos A y B, pero se conectan, mediante flechas, nicamente a
aquellos pares incluidos en la relacin. En la segunda representacin se tiene una matriz
binaria. El nmero de renglones estar dado por el nmero de elementos en A mientras que
su nmero de columnas es el nmero de elementos en B. Cada rengln estar asociado a un

93
Una Introduccin a las Matemticas Discretas y Teora de Grafos

elemento de A mientras que cada columna a un elemento de B. Todo aquel par ordenado
(a, b) en la relacin binaria se hace presente en la matriz al marcar con 1 la posicin de la
matriz correspondiente al rengln asociado a a con la columna asociada a b. Aquellas
posiciones de la matriz que no correspondan a pares ordenados en la relacin simplemente
se marcan con 0. Vase en la Figura 3.1 las dos representaciones que se tienen para nuestra
relacin R = {(1, y), (1, z), (3, y)}. La Figura 3.1.a presenta a los elementos de los conjuntos
X y Y. Se tiene una flecha que conecta al elemento 1 de X con el elemento y de Y. Con esto
se expresa la existencia del par ordenado (1, y). En el caso de la Figura 3.1.b tenemos la
representacin matricial de R. La matriz correspondiente tiene tamao 3 3. Ntese como
es que se tienen 3 posiciones marcadas con el valor 1. Estas posiciones corresponden
precisamente con los 3 pares ordenados presentes en R: (1, y), (1, z) y (3, y).

X Y
1 x R x y z
1 0 1 1
2 y 2 0 0 0
3 0 1 0
3 z

a) b)
Figura 3.1. Representaciones visuales de la relacin R = {(1, y), (1, z), (3, y)}
(vase el texto para detalles).

Sea R una relacin binaria de A hacia B. La Inversa de la Relacin Binaria R,


denotada por R-1, es la relacin binaria de B hacia A dada por:

R-1 = {(b, a): (a, b) R}

Es decir, la relacin inversa R-1 se forma por aquellos pares ordenados los cuales cuando se
invierten, stos estn en R. Por ejemplo, consideremos nuevamente a nuestra relacin
R = {(1, y), (1, z), (3, y)}. Entonces, de acuerdo a la definicin anterior, se tiene que la
relacin inversa de R est dada por R-1 = {(y, 1), (z, 1), (y, 3)}. Debe ser claro que ahora el
dominio de R-1 est dado por {y, z} B mientras que el codominio es {1, 3} A.

Sean A, B y C cualesquiera conjuntos y sea R una relacin binaria de A hacia B y


sea S una relacin binaria de B hacia C. R y S dan lugar a una relacin binaria de A hacia C
denominada Composicin de R y S la cual es denotada por S R. Un par ordenado (a, c),
donde a A y c C, estar en la composicin de R y S si existe un elemento b B tal que
a se relaciona con b por la relacin R y a su vez b se relaciona con c por la relacin S.
Formalmente:

(a, c) S R (b B)((a, b) R (b, c) S)

94
Captulo 3. Relaciones y Funciones

De esta manera podemos dar una definicin intencional para S R:

S R = {(a, c): (b B)((a, b) R (b, c) S}

Por ejemplo, consideremos a los siguientes conjuntos:

A = {1, 2, 3, 4}
B = {a, b, c, d}
C = {x, y, z}

Sea la relacin R de A hacia B dada por

R = {(1, a), (2, d), (3, a), (3, b), (3, d)}

Por otro lado, sea la relacin S de B hacia C:

S = {(b, x), (b, z), (c, y), (d, z)}

La Figura 3.2 nos presenta visualmente a las relaciones que acabamos de definir.

A B C
1 a x
2 b
y
3 c
4 d z

Figura 3.2. Visualizacin de las relaciones R = {(1, a), (2, d), (3, a), (3, b), (3, d)},
S = {(b, x), (b, z), (c, y), (d, z)} y S o R (vase el texto para detalles).

Apoyndonos en la Figura 3.2 podemos observar que nicamente contamos con 3


instancias en las cuales se tienen elementos del conjunto B que sirven como puente para
relacionar a elementos del conjunto A con elementos del conjunto C (estos pares son
resaltados en la Figura 3.2):
2Rd y dSz
3Rb y bSx
3Rb y bSz
Por lo tanto la composicin de las relaciones R y S, S o R, estar dada por:
2 (S o R) z
3 (S o R) x
3 (S o R) z
Es decir, S o R = {(2, z), (3, x), (3, z)}.

95
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Sea R una relacin binaria de un conjunto A hacia s mismo. La relacin binaria R


es Reflexiva si a R a para todo a A. Es decir, (a, a) R para todo a A. Formalmente
se tendra:

La relacin binaria R de A hacia A es Reflexiva (a A)(a R a)

Obtengamos la negacin de la proposicin general (a A)(a R a):

(a A)(a R a) (a A)(a R a)
(a A)((a, a) R)

Ello quiere decir que contamos con la condicin formal para caracterizar a una relacin
binaria R como No Reflexiva:

La relacin binaria R de A hacia A es No Reflexiva (a A)((a, a) R)

Considrense los siguientes ejemplos. Sea A = {1, 2, 3, 4}. Determinaremos cuales


de las siguientes relaciones binarias de A hacia A son reflexivas. Tambin nos ser de
utilidad visualizarlas mediante sus representaciones matriciales. Vase la Figura 3.3.

R1 = {(1,1), (1,2), (2,3), (1,3), (4,4)}


o Ntese que existe un elemento a = 2 A tal que (2, 2) R1. Por lo tanto la
relacin binaria R1 no es reflexiva. Ntese como es que en la representacin
matricial de R2, Figura 3.3.a, precisamente la posicin (2, 2) tiene asignado el
valor 0. Lo mismo sucede con la posicin (3, 3).

R2 = {(1,1), (1,2), (2,1), (2,2), (3,3), (4,4)}


o A travs de la Figura 3.3.b es posible apreciar que todas las posiciones en la
diagonal principal, de la matriz asociada a R2, tienen el valor 1 lo que nos indica
que para todo a A se cumple que (a, a) R2. Por lo tanto la relacin R2
efectivamente es Reflexiva.

R3 = {(1,3), (2,1)}
o Claramente esta relacin es No Reflexiva ya que no cuenta con ningn par
ordenado de la forma (a, a). Ntese como es que en su representacin matricial,
Figura 3.3.c, se tiene que todos los elementos sobre la diagonal principal tienen
asignado el valor 0.

96
Captulo 3. Relaciones y Funciones

R4 =
o En primer lugar tenemos que R4 = A A por lo tanto R4 es una relacin
binaria de A hacia s mismo. Ahora bien, para todo elemento de A se cumple
que (a, a) R4. Por lo tanto, R4 = es No Reflexiva. Ahora bien, esta
conclusin nicamente ser vlida cuando el conjunto A . Si A =
entonces = y en consecuencia se sigue contando con una relacin
binaria como tal. Sin embargo, ntese que es imposible encontrar en un
principio un elemento a que nos permita demostrar que (a, a) . En
otras palabras, dado que no tenemos manera de refutar la reflexividad de la
relacin del conjunto hacia s mismo, entonces debemos aceptar que sta
efectivamente es reflexiva. El argumento que acabamos de aplicar se denomina
Demostracin por Vacuidad.

R5 = A A

o En este caso es claro que todos los posibles pares de elementos tomados del
conjunto A estn presentes en R5. Ello incluye a (1, 1), (2, 2), (3, 3) y (4, 4).
Vase la Figura 3.3.e. De hecho es posible establecer que la relacin A A, para
cualquier conjunto A, ser siempre reflexiva. Esta afirmacin prevalece incluso
cuando A = (vase la descripcin antes dada para el ejemplo con R4 = ).

R1 1 2 3 4 R2 1 2 3 4 R3 1 2 3 4
1 1 1 1 0 1 1 1 0 0 1 0 0 1 0
2 0 0 1 0 2 1 1 0 0 2 1 0 0 0
3 0 0 0 0 3 0 0 1 0 3 0 0 0 0
4 0 0 0 1 4 0 0 0 1 4 0 0 0 0

a) b) c)

R4 1 2 3 4 R5 1 2 3 4
1 0 0 0 0 1 1 1 1 1
2 0 0 0 0 2 1 1 1 1
3 0 0 0 0 3 1 1 1 1
4 0 0 0 0 4 1 1 1 1

d) e)

Figura 3.3. Las representaciones matriciales de las relaciones a) R1, b) R2, c) R3, d) R4 y e) R5
(vase el texto para detalles). Se enfatizan los elementos sobre la diagonal principal de las matrices para
apoyar en las caracterizaciones de R1 a R5 como reflexivas o no reflexivas.

Sea R una relacin binaria de un conjunto A hacia s mismo. Se dice que R es una
relacin Simtrica si para todo par (a, b) en R se tiene que (b, a) tambin est en R.
Simblicamente se tiene que:

La relacin binaria R de A hacia A es simtrica (a, b A)(a R b b R a)

97
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Ntese que la proposicin general se lee como

Para cualesquiera elementos a y b en el conjunto A se tiene que si a se relaciona


con b bajo R entonces b se relaciona con a bajo R.

Un punto importante surge del hecho de que el enunciado comienza estableciendo que los
elementos a y b a considerar se toman del conjunto A. La intuicin nos podra decir que a y
b deberan de hecho formar un par en la relacin R ya que tomar cualquier a y b en A no
garantiza que el par formado est precisamente en R. Por lo tanto, podramos decir que la
proposicin general debera iniciar estableciendo Para cualquier par (a, b) en R. Sin
embargo ntese que la funcin proposicional en consideracin es una implicacin o
condicional. El par de elementos a, b que se est tomando en cuenta es sustituido tanto en
el antecedente a R b como en el consecuente b R a. Dependiendo de la veracidad o falsedad
de las proposiciones a R b y b R a es que se determina evidentemente el valor final de la
implicacin. Ahora bien, si el par (a, b) no est en R entonces el antecedente a R b ser
falso. Independientemente del valor del consecuente b R a tendremos que F b R a V.
La otra situacin bajo la cual la condicional es verdadera se presenta cuando tanto (a, b)
como (b, a) estn en R: a R b b R a V. Por otro lado, si el par (a, b) est en R pero
(b, a) no est entonces tendremos la instancia bajo la cual a R b b R a F. El punto de
esta discusin es establecer el hecho de que independientemente de los elementos a y b que
tomemos del conjunto A, tal como lo establece nuestra definicin de simetra, realmente lo
que nos interesa para caracterizar a nuestras relaciones es la presencia o ausencia del caso
a R b b R a F. Tenemos claro conocimiento de que si esta instancia nunca se presenta
entonces es que la relacin en cuestin es efectivamente simtrica. De lo contrario, la
relacin es no simtrica. En la prctica no se efecta la prueba considerando en total los n2
posibles pares formados por elementos del conjunto A, donde n es su nmero de elementos.
Sabemos que si se forma un par que no est en la relacin R la condicional a R b b R a
ser verdadera. En realidad se procede con la prueba considerando nicamente los pares
(a, b) que sabemos que efectivamente estn en la relacin R. Esta ltima observacin ser
de hecho tambin tomada en cuenta para las caracterizaciones, adems de la simetra, que
definiremos para nuestras relaciones.

Utilizando nuestros elementos de lgebra Proposicional al negar a la proposicin


general con cuantificador universal que define a una relacin como simtrica obtenemos:

(a, b A)(a R b b R a)
(a, b A)((a R b b R a))
(a, b A)(((a R b) b R a)) (Propiedad del Condicional)
(a, b A)(a R b (b R a)) (Ley de DMorgan)
(a, b A)(a R b b R a) ((b R a) b R a)

Es decir, una relacin binaria R es No Simtrica si existe un par (a, b) en R para el


cual el par (b, a) no se encuentra en R:

La relacin binaria R de A hacia A es no simtrica (a, b A)(a R b b R a)

98
Captulo 3. Relaciones y Funciones

Consideremos nuevamente a las relaciones R1 a R5 con la representacin matricial


dada en la Figura 3.3. Veamos cules de stas pueden ser caracterizadas como simtricas o
como no simtricas:

R1 = {(1,1), (1,2), (2,3), (1,3), (4,4)}


o Ntese que el par (1, 2) est en R1, sin embargo no contamos, en R1, con el par
(2, 1). Por lo tanto la proposicin general (1, 2 A)(1 R1 2 2 R1 1) se vuelve
verdadera y en consecuencia R1 es no simtrica.

R2 = {(1,1), (1,2), (2,1), (2,2), (3,3), (4,4)}


o Para este caso tenemos que el par (1, 2) est en R2 as como el par (2, 1).
Obsrvese que para los restantes pares se tiene que la proposicin
a R a a R a es siempre verdadera (V V V) para a = 1, 2, 3, 4. Ntese
que la definicin de relacin simtrica nos exige garantizar que si (a, b) est en
la relacin entonces (b, a) tambin debe estar en la relacin. Sin embargo nunca
se nos especifica que a tenga que ser diferente de b. En consecuencia la
proposicin general (a, b A = {1, 2, 3, 4})(a R2 b b R2 a) es verdadera y
R2 es caracterizada como simtrica.

R3 = {(1,3), (2,1)}
o R3 es no simtrica ya que (1, 3) R3 pero (3, 1) R3.

R4 =
o Supngase que se desea refutar que R4 es simtrica al probar que de hecho es no
simtrica. Por lo tanto debemos presentar un par (a, b) en R4 para el cual se
tenga que (b, a) no est en R4. Sin embargo R4 es el conjunto vaco. Ello se
traduce en que no contamos con al menos un caso para efectivamente refutar el
hecho de que R4 es simtrica. Por lo tanto, usando nuestro argumento de
vacuidad, concluimos que R4 debe ser caracterizada como simtrica.

R5 = A A
o Dado que todos los posibles pares de elementos tomados del conjunto
A = {1, 2, 3, 4} estn en R5 entonces podemos garantizar sin problema alguno
que para cualquier par (a, b) en R5, ya sea que a = b o bien a b, tendremos que
el par (b, a) tambin estar en R5. Entonces R5 es una relacin simtrica.

Se sabe que una matriz M de tamao n n es una Matriz Simtrica si se cumple que
M[i][j] = M[j][i], para todo i, j = 1, 2, , n. O en otras palabras la matriz M es simtrica si
sta y su transpuesta MT son iguales. Observemos las representaciones matriciales de las
relaciones R1 a R5 dadas en la Figura 3.4. Ntese la relacin directa que existe entre el
hecho de que una relacin sea caracterizada como simtrica y que su matriz
correspondiente sea tambin simtrica. Ello se debe a que el hecho de que los elementos
M[i][j] y M[j][i] de una matriz M sean iguales a 1 hacen referencia precisamente a los pares
(i, j) y (j, i) en la relacin R correspondiente. Decir que para todo elemento de la matriz
M[i][j] = 1 se cumple que M[j][i] = 1 es equivalente a decir se tiene que en la relacin tanto
el par (i, j) como el par (j, i) estn en R. Ello se traduce en que la matriz M es simtrica si y

99
Una Introduccin a las Matemticas Discretas y Teora de Grafos

slo si su correspondiente relacin R es simtrica. La Figura 3.4 claramente nos muestra


que nicamente las matrices asociadas a las relaciones R2, R4 y R5 son simtricas.
Precisamente estas fueron las relaciones que caracterizamos como simtricas. Tal y como
sucedi al observar la diagonal principal de la matriz asociada a una relacin a fin de
determinar si sta era reflexiva o no reflexiva, ahora tenemos que al observar si se cumple o
no la simetra en la matriz asociada a una relacin podemos determinar si la relacin en
cuestin es simtrica o no simtrica.

R1 1 2 3 4 R2 1 2 3 4 R3 1 2 3 4
1 1 1 1 0 1 1 1 0 0 1 0 0 1 0
2 0 0 1 0 2 1 1 0 0 2 1 0 0 0
3 0 0 0 0 3 0 0 1 0 3 0 0 0 0
4 0 0 0 1 4 0 0 0 1 4 0 0 0 0

a) b) c)

R4 1 2 3 4 R5 1 2 3 4
1 0 0 0 0 1 1 1 1 1
2 0 0 0 0 2 1 1 1 1
3 0 0 0 0 3 1 1 1 1
4 0 0 0 0 4 1 1 1 1

d) e)

Figura 3.4. Las representaciones matriciales de las relaciones a) R1, b) R2, c) R3, d) R4 y e) R5
(vase el texto para detalles). nicamente las matrices asociadas a las relaciones R2, R4 y R5 son simtricas.

Sea R una relacin binaria de un conjunto A hacia s mismo. Se dice que R es una
relacin Antisimtrica si para todos los pares tales que (a, b), (b, a) estn en R se tiene que
a = b. Simblicamente:

La relacin binaria R de A hacia A es antisimtrica (a, b A)(a R b b R a a = b)

Utilizando nuestros elementos de lgebra Proposicional al negar a la proposicin general


con cuantificador universal obtenemos:

(a, b A)(a R b b R a a = b)
(a, b A)((a R b b R a a = b))
(a, b A)(((a R b b R a) a = b)) (Propiedad del Condicional)
(a, b A)(((a R b) (b R a)) a = b)) (Ley de DMorgan)
(a, b A)(((a R b b R a) a = b)) ((a R b) a R b)
(a, b A)( (a R b b R a) (a = b)) (Ley de DMorgan)
(a, b A)( a R b b R a (a = b)) (Ley de DMorgan)
(a, b A)( a R b b R a a b) ((a = b) a b)

100
Captulo 3. Relaciones y Funciones

Es decir, R es No Antisimtrica si existen los pares (a, b) y (b, a) en R y adems a b.


Simblicamente se establece como:

La relacin binaria R de A hacia A es no antisimtrica


(a, b A)(a R b b R a a b)

Ntese que la antisimetra no es de ninguna manera la negacin de la simetra. Considrese


por ejemplo la relacin Rn = {(1, 1), (2, 2), (3, 3), , (n, n)} sobre el conjunto de los
primeros n nmeros naturales {1, 2, 3, , n}. Es claro que la relacin es simtrica ya que
se cumple para todo par (a, b) en Rn que (b, a) tambin est en Rn. Ello claramente se debe
a que siempre se tendr que a = b. Pero precisamente por esta ltima propiedad la relacin
Rn es tambin caracterizada como antisimtrica ya que para todo par (a, b) tenemos que la
condicional a Rn b b Rn a a = b V.

Reconsideremos a las relaciones R1 a R5 con la representacin matricial dada en la


Figura 3.4. Veamos cules de stas son antisimtricas o no antisimtricas.

R1 = {(1,1), (1,2), (2,3), (1,3), (4,4)} es antisimtrica ya que:


o (1, 1) R1 (1, 1) R1 1 = 1 V
o (4, 4) R1 (4, 4) R1 4 = 4 V
o Qu sucede cuando se evalan los pares (1, 2), (2, 3) y (1, 3)? Sabemos que
para el par (1, 2) se tiene que 1 R1 2 es verdadera mientras que 2 R1 1 es falsa y
obviamente 1 = 2 es tambin falsa. La conjuncin 1 R1 2 2 R1 1 es entonces
falsa y por lo tanto se tiene que la condicional 1 R1 2 2 R1 1 1 = 2 F F
es verdadera. La condicional sigue siendo verdadera cuando sta se evala con
los pares (2, 3) y (1, 3). Dado que nunca se encontr un caso en el que la
condicional a R1 b b R1 a a = b fuese falsa entonces se tiene que R1 cumple
con los requerimientos para ser caracterizada como antisimtrica.

R2 = {(1,1), (1,2), (2,1), (2,2), (3,3), (4,4)} es no antisimtrica ya que se tiene que los
pares (1, 2) y (2, 1) estn en R2 pero 1 2. Es decir, tenemos una instancia en que la
proposicin a R2 b b R2 a a b se hizo verdadera.

R3 = {(1,3), (2,1)} es antisimtrica ya que:


o (1, 3) R3 (3, 1) R3 1 = 3 V F F F F V
o (2, 1) R3 (1, 2) R3 1 = 2 V F F F F V
o Por lo tanto al no existir una instancia de sustitucin para la condicional
a R3 b b R3 a a = b que la haga falsa entonces R3 debe ser caracterizada
como antisimtrica.

101
Una Introduccin a las Matemticas Discretas y Teora de Grafos

R4 = :
o Ntese que para cualesquiera elementos a y b en A se tiene que a R4 b F y que
b R4 a F. Por lo tanto la conjuncin a R4 b b R4 a es falsa.
Independientemente de si se cumple o no que a = b tenemos que la condicional
a R4 b b R4 a a = b siempre ser verdadera. Por lo tanto, R4 es
antisimtrica. Otra manera de justificar nuestra aseveracin es simplemente
establecer que no se cuenta con pares (a, b) y (b, a) en R4 tales que a = b. Ello se
debe a que R4 es precisamente el conjunto vaco. Dado que no contamos con
elementos para validar el hecho de que R4 es no antisimtrica entonces por
argumento de vacuidad debemos aceptar que efectivamente es antisimtrica.

R5 = A A es no antisimtrica ya que contamos con al menos los pares


(1, 2), (2, 1) R5 pero 1 2.

R1 1 2 3 4 R2 1 2 3 4 R3 1 2 3 4
1 1 1 1 0 1 1 1 0 0 1 0 0 1 0
2 0 0 1 0 2 1 1 0 0 2 1 0 0 0
3 0 0 0 0 3 0 0 1 0 3 0 0 0 0
4 0 0 0 1 4 0 0 0 1 4 0 0 0 0

a) b) c)

R4 1 2 3 4 R5 1 2 3 4
1 0 0 0 0 1 1 1 1 1
2 0 0 0 0 2 1 1 1 1
3 0 0 0 0 3 1 1 1 1
4 0 0 0 0 4 1 1 1 1

d) e)

Figura 3.5. Las representaciones matriciales de las relaciones a) R1, b) R2, c) R3, d) R4 y e) R5
(vase el texto para detalles). nicamente las matrices asociadas a las relaciones R1, R3 y R4
son antisimtricas.

Los elementos de una matriz M de tamao n n pueden ser agrupados en tres


clases:
Los elementos sobre la diagonal principal: M[i][i], i = 1, 2, 3, , n.
Los elementos debajo de la diagonal principal.
Los elementos por encima de la diagonal principal.
De acuerdo a la definicin dada para caracterizar a una relacin R como antisimtrica
tenemos que no puede darse, en la matriz M asociada a R, la situacin de que
M[i][j] = M[j][i] = 1 a menos que i = j. Es decir, para todo elemento M[i][j] = 1 que se
encuentre debajo de la diagonal principal de M se debe cumplir que el valor de su
correspondiente elemento M[j][i], el cual est por encima de la diagonal principal, debe ser
0. De manera complementaria, para todo elemento M[i][j] = 1 que se encuentre por encima
de la diagonal principal de M se debe satisfacer que el valor de su correspondiente
elemento M[j][i], ubicado por debajo de la diagonal principal, debe ser 0. Ello quiere decir
que basta con observar la relacin que existe entre los elementos debajo de la diagonal
principal con los elementos por encima de la diagonal principal para determinar si

102
Captulo 3. Relaciones y Funciones

efectivamente una relacin R es antisimtrica o no. Aplicando estas observaciones, la


Figura 3.5 claramente nos muestra que nicamente las matrices asociadas a las relaciones
R1, R3 y R4 son antisimtricas.

Sea R una relacin binaria de un conjunto A hacia s mismo. Se dice que la relacin
R es Transitiva si para todos los pares (a, b) y (b, c) en R se cumple que el par (a, c)
tambin est en R. Simblicamente tendremos:

La relacin binaria R de A hacia A es Transitiva


(a, b, c A)(a R b b R c a R c)

Obtengamos la negacin de la proposicin general con cuantificador universal:

(a, b, c A)(a R b b R c a R c)
(a, b, c A)((a R b b R c a R c))
(a, b, c A)(((a R b b R c) a R c)) (Propiedad del Condicional)
(a, b, c A)(((a R b b R c) a R c)) (Ley de DMorgan)
(a, b, c A)((a R b b R c) a R c) (Ley de DMorgan)
(a, b, c A)(a R b b R c a R c) (Ley de DMorgan)

Es decir, tendremos que una relacin ser No Transitiva si se cumple que existen pares
(a, b) y (b, c) tales que ambos estn en R pero tambin se cumple que el par (a, c) no est
en R. Simblicamente se establece como:

La relacin binaria R de A hacia A es no transitiva


(a, b, c A)(a R b b R c a R c)

Ejemplos:
R1 = {(1,1), (1,2), (2,3), (1,3), (4,4)} es transitiva ya que:
o 1 R1 1 1 R1 1 1 R1 1 V V V V.
o 4 R1 4 4 R1 4 4 R1 4 V V V V.
o 1 R1 1 1 R1 2 1 R1 2 V V V V.
o 1 R1 2 2 R1 3 1 R1 3 V V V V.
o Ntese que existen an ms combinaciones de pares por revisar ya que la
definicin de transitividad nos exige que formemos pares de la forma
(a, b), (b, c) donde a, b y c son tomados del conjunto A = {1, 2, 3, 4}. Por
ejemplo, consideremos a los pares (2, 3) y (3, 1) formados a partir de a = 2,
b = 3 y c = 1. Se debe validar que con esta instancia la proposicin
a R1 b b R1 c a R1 c sea verdadera. Tenemos que el par (2, 3)
efectivamente est en R1 mientras que los pares (3, 1) y (2, 1) no estn. Por lo
tanto tenemos que el antecedente 2 R1 3 3 R1 1 es falso as como el
consecuente 2 R1 1. Sin embargo, sabemos que F F V. Realmente el caso
que nos debe ocupar es aquel en donde el antecedente a R1 b b R1 c sea
verdadero y el consecuente a R c sea falso ya que entonces tenemos la instancia
V F F. En esta situacin tanto el par (a, b) como el par (b, c) estn en la

103
Una Introduccin a las Matemticas Discretas y Teora de Grafos

relacin pero el par esperado (a, c) no lo est. Entonces, en general es claro que
si se considera un par que no est en la relacin el antecedente a R1 b b R1 c es
falso pero a final de cuentas la condicional ser verdadera. Operacionalmente
esto nos dice que para determinar si la relacin es transitiva o no se deben a
poner a prueba nicamente las combinaciones (a, b) y (b, c) tales que ambos
pares estn en la relacin. Para el caso de la relacin R1 tenemos que
nicamente hay 4 combinaciones a considerar.

R2 = {(1,1), (1,2), (2,1), (2,2), (3,3), (4,4)} es transitiva ya que:


o 1 R2 1 1 R2 1 1 R2 1 V V V V.
o 2 R2 2 2 R2 2 2 R2 2 V V V V.
o 3 R2 3 3 R2 3 3 R2 3 V V V V.
o 4 R2 4 4 R2 4 4 R2 4 V V V V.
o 1 R2 2 2 R2 1 1 R2 1 V V V V.
o 2 R2 2 2 R2 1 2 R2 1 V V V V.
o 2 R2 1 1 R2 1 2 R2 1 V V V V.

R3 = {(1,3), (2,1)} es no transitiva ya que (2, 1) y (1, 3) estn ambos en R3, pero el par
esperado (2, 3) no est en R3. Esto hace que la proposicin 2 R3 1 1 R3 3 2 R3 3 sea
verdadera.

R4 = es transitiva:
o Para cualquier combinacin de la forma (a, b), (b, c) donde a, b y c son tomados
del conjunto A = {1, 2, 3, 4} se tiene que la condicional
a R4 b b R4 c a R4 c se har verdadera ya que siempre se tendr la instancia
F F F V. Por lo tanto, R4 es transitiva. Otra manera de justificar nuestra
aseveracin es simplemente establecer que no se cuenta con pares (a, b) y (b, c)
en R4 y el par (a, c) que no est en R4. Ello se debe a que R4 es precisamente el
conjunto vaco. Dado que no contamos con elementos para validar el hecho de
que R4 es no transitiva entonces por argumento de vacuidad debemos aceptar
que efectivamente es transitiva.

R5 = A A es transitiva ya que para cualquier combinacin de la forma (a, b), (b, c) se


tiene que tanto (a, b) como (b, c) estn en R5. Pero adems, el par esperado (a, c)
tambin est en R5. Ello se debe a que A A se compone por todos los posibles pares
que se pueden formar con elementos tomados de A = {1, 2, 3, 4}.

Veamos ahora un ejemplo en donde se considera al conjunto de los enteros ] .


Claramente este conjunto tiene un nmero infinito de elementos. Por lo tanto el uso de una
metodologa de validacin exhaustiva para las caracterizaciones antes definidas no ser
factible as como tambin la consideracin de su correspondiente matriz. Definiremos a la
relacin R] de ] hacia ] como:

x R] y x y

104
Captulo 3. Relaciones y Funciones

Por ejemplo, es claro que 3 R] 5 ya que se cumple que 3 5. Por otro lado, 5 R] 3 ya que es
falso que 5 3.

Teorema 3.1: La relacin binaria R] de ] hacia ] es a) reflexiva, b) no simtrica,


c) antisimtrica y d) transitiva.

Demostracin:

a) R] es reflexiva ya que efectivamente se cumple que todo nmero entero x es menor o


igual a si mismo. Es decir, la proposicin general (x ] )(x x) es verdadera.

b) R] es no simtrica ya que, por ejemplo, tenemos que para los nmeros 1 y 2 ambos en
] se tiene que es verdadero que 1 2 pero es falso que 2 1. Este caso particular nos
permite hacer que la proposicin general (1, 2 ] )(1 2 2 1) sea verdadera.

c) Supongamos que se desea demostrar que R] no es antisimtrica. Ello implica que


debemos encontrar dos nmeros enteros x y y para los cuales la proposicin
x y y x x y es verdadera. Es claro que es simple encontrar dos enteros tales que
x y. Sin embargo el problema radica en que stos deben cumplir con que x sea menor o
igual a y pero que a la vez x sea mayor o igual a y. Las nicas instancias que cumplen
con este requerimiento se dan cuando x y y son iguales. Pero ello implica que la
proposicin x y y x x y se har siempre falsa. En consecuencia no tenemos los
elementos para demostrar que la relacin R] no es antisimtrica. Por lo tanto, la
proposicin general (x, y ] )(x y y x x = y) es verdadera y la relacin R] es
caracterizada como antisimtrica.

d) Para demostrar que R] es transitiva debemos probar que la proposicin general


(x, y, z ] )(x y y z x z) es verdadera. En realidad, debido al ordenamiento
con que cuentan los nmeros en R] , es claro que si contamos con enteros x, y, z tales
que cumplen con x y y y z entonces se garantiza que x y z se relacionan tambin bajo
R] ya que x es menor o igual tanto a y como a z, y a su vez z es mayor o igual tanto a x
como a y. Por lo tanto x z. Por otro lado, sin consideramos nmeros x, y, z que desde
un principio no cumplen con el antecedente x y y z, independientemente del valor
de verdad o falsedad del consecuente x z tenemos que la proposicin
x y y z x z ser verdadera. En conclusin, R] es transitiva.

105
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Ahora consideremos al conjunto de los nmeros naturales ` = {1, 2, 3, 4, 5, }.


Definimos a la relacin R` como

R` = {(x, y): x + 3y = 12}

Es decir, R` se conforma por aquellos pares de nmeros naturales (x, y) tales que al
sustituirlos en la expresin x + 3y se tiene el valor final 12. Se determinarn en primer lugar
los elementos de R` . Ntese que

x + 3y = 12
3y = 12 x
y = (12 x)/3

Es decir, hemos expresado a y en trminos de x. Por lo tanto para determinar los pares
asignaremos valores a x obteniendo con ello el correspondiente valor para y. Es claro que
(12 x)/3 es un cociente que para ciertos valores de x puede no proporcionarnos un nmero
natural.

x = 1: y = (12 1)/3 = 11/3 ` .


x = 2: y = (12 2)/3 = 10/3 ` .
x = 3: y = (12 3)/3 = 9/3 = 3 ` .
x = 4: y = (12 4)/3 = 8/3 ` .
x = 5: y = (12 5)/3 = 7/3 ` .
x = 6: y = (12 6)/3 = 6/3 = 2 ` .
x = 7: y = (12 7)/3 = 5/3 ` .
x = 8: y = (12 8)/3 = 4/3 ` .
x = 9: y = (12 9)/3 = 3/3 = 1 ` .
x = 10: y = (12 10)/3 = 2/3 ` .
x = 11: y = (12 11)/3 = 1/3 ` .
x = 12: y = (12 12)/3 = 0/3 = 0 ` .

Ntese que para todo x > 12 se tiene que y = (12 x)/3 ser un nmero negativo el cual
obviamente no est en ` . Por lo tanto la relacin se conforma nicamente por 3 pares:

R` = {(x, y): x + 3y = 12} = {(3, 3), (6, 2), (9, 1)}

Teorema 3.2: La relacin binaria R` de ` hacia ` es a) no reflexiva, b) no simtrica,


c) antisimtrica y d) transitiva.

106
Captulo 3. Relaciones y Funciones

Demostracin:

a) R` es no reflexiva ya que existe el nmero natural 1 tal que (1,1) R` . O en otras


palabras, con x = y = 1 se tiene que x + 3y 12. Por lo tanto la proposicin general
(1 ` )((1,1) R` ) es verdadera.

b) R` es no simtrica ya que existen los nmeros naturales 6 y 2 tales que (6, 2) R` pero
el par (2, 6) no est en R` . Esto permite verificar que la proposicin general
(6, 2 ` )(6 R` 2 2 R` 6) es verdadera.

c) En este caso se debe probar que la proposicin (x, y ` )(x R` y y R` x x = y) es


verdadera. Veamos:
(3, 3) R` (3, 3) R` 3 = 3 V V V V
(6, 2) R` (2, 6) R` 6 = 2 V F F V
(9, 1) R` (1, 9) R` 9 = 1 V F F V
Para cualesquiera naturales x, y tales que (x, y) R` tendremos que el antecedente
x R` y y R` x ser falso. Independientemente de si el consecuente x = y es
verdadero o falso tendremos siempre que la condicional ser verdadera.
Por lo tanto la proposicin (x, y ` )(x R` y y R` x x = y) es verdadera y R` es
una relacin antisimtrica.

d) Para probar que la relacin R` es transitiva debemos verificar que la proposicin


general (x, y, z ` )(x R` y y R` z x R` z) es verdadera. Ntese que con
cualquier combinacin de naturales x, y, z, incluyendo aquellos que forman pares en
R` , se tiene que el antecedente x R` y y R` z ser falso. De manera independiente a si
el consecuente x R` z es verdadero o falso tendremos en todo caso que la condicional
ser verdadera. Por lo tanto R` es transitiva.

Sea R una relacin binaria de un conjunto A hacia s mismo. Se dice que R es una
Relacin de Orden Parcial si es Reflexiva, Antisimtrica y Transitiva.

Por ejemplo, de acuerdo al Teorema 3.1 tenemos que la relacin binaria R] de ]


hacia ] es reflexiva, no simtrica, antisimtrica y transitiva. Por lo tanto, la relacin R] ,
sustentada en el uso del operador , es una Relacin de Orden Parcial sobre el conjunto de
los nmeros enteros.

107
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Si A es un conjunto diferente del vaco en el que est definida una relacin de orden
parcial R y adems tiene la propiedad de que

(a, b A)(a R b b R a)

Entonces se dice que R es una Relacin de Orden Total y tambin se dice que el conjunto
A est Totalmente Ordenado.

Teorema 3.3: La relacin binaria R] de ] hacia ] es una Relacin de Orden Total.

Demostracin:

Por el Teorema 3.1 la relacin R] es caracterizada como Relacin de Orden Parcial. Ahora
se debe probar que para R] la proposicin general (x, y ] )(x R] y y R] x) es
verdadera. Sin embargo es claro que para cualquier par de nmeros enteros x, y tales x y
que se tiene que x y o bien que y x. Si x = y entonces se cumple tanto x y como y x.
En consecuencia la relacin R] es una Relacin de Orden Total y de hecho el conjunto de
los nmeros enteros, bajo la relacin R] es un conjunto Totalmente Ordenado.

3.2 Relaciones de Equivalencia


Sea R una relacin binaria de un conjunto A hacia s mismo. Se dice que R es una
Relacin de Equivalencia si es Reflexiva, Simtrica y Transitiva. Si R es una Relacin de
Equivalencia sobre un conjunto A, entonces al conjunto

[a] = {x A: x R a}

se le llamar Clase de Equivalencia del elemento a y se dice que a es el Representante de


tal conjunto. Dado un conjunto A y la relacin de equivalencia R sobre A, al conjunto de
todas las clases de equivalencia se le llama Conjunto Cociente y se le denota por:

A/R = {[a]: a A}

Considrese el siguiente ejemplo. Sea la relacin X sobre el conjunto S = {1, 2, 3}:

X = {(1,1), (1,2), (2,1), (2,2), (3,3)}

X es claramente reflexiva ya que para todo elemento a en S se tiene que a X a. En


particular hemos hecho referencia a los pares (1, 1), (2, 2) y (3, 3).

108
Captulo 3. Relaciones y Funciones

La simetra de X es validada de la siguiente manera:


o 1X11X1VVV
o 2X22X2VVV
o 3X33X3VVV
o 1X22X1VVV
o 2X11X2VVV
En forma similar validamos tambin el hecho de que X es transitiva:
o 1X11X11X1VVVV
o 2X22X22X2VVVV
o 3X33X33X3VVVV
o 1X22X11X1VVVV
o 1X11X21X2VVVV
o 1X22X21X2VVVV
o 2X22X12X1VVVV
o 2X11X12X1VVVV
o 2X11X22X2VVVV
Por lo tanto la relacin X es una Relacin de Equivalencia. Ahora bien, las clases de
equivalencia del conjunto S estarn dadas por:
[1] = {a S: a X 1} = {1, 2}
[2] = {a S: a X 2} = {1, 2}
[3] = {a S: a X 3} = {3}
Dado que las clases [1] y [2] son iguales entonces el conjunto cociente estar dado por

S / X = {[1], [3]} = {{1, 2}, {3}}

Ahora estableceremos como un ejemplo interesante a una relacin sobre el conjunto


de los nmeros enteros. A esta relacin la caracterizaremos como relacin de equivalencia
y posteriormente analizaremos a sus clases de equivalencia a fin de construir su conjunto
cociente. Sea un m un entero positivo fijo. Se dice que dos enteros a y b son Congruentes
Modulo m, denotado por a b(mod m) si m divide a a b. Por ejemplo:
Sea m = 4 entonces:
11 3 (mod 4) ya que 4 divide a 11 3 = 8.
22 6 (mod 4) ya que 4 divide a 22 6 = 16.
22 7 (mod 4) debido a que 4 no divide a 22 7 = 15.
Ahora sea consideremos al conjunto de los enteros ] y sea m un entero positivo fijo.
Definimos a la relacin Rm sobre ] como:

x Rm y x y (mod m)

Tenemos ahora el siguiente:

Teorema 3.4: La relacin Rm sobre ] es una Relacin de Equivalencia.

109
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Demostracin:

Debemos probar que Rm se caracteriza como reflexiva, simtrica y transitiva.

Reflexividad:

Sea x cualquier entero en ] . Entonces es claro que x x (mod m) ya que m


efectivamente divide a x x = 0. Por lo tanto la proposicin (x ] )(x Rm x) es
verdadera.

Simetra:

Sean x, y cualesquiera elementos de ] . Supongamos que x y (mod m) es verdadero.


Ello implica que m efectivamente divide a x y. Pero ntese que m tambin divide a
(x y). Dado que (x y) = -x + y = y x entonces se concluye que y x (mod m). Por
otro lado, si se eligen enteros x y y tales que x y (mod m) es falso tenemos que la
condicional x Rm y y Rm x es verdadera independientemente del valor del
consecuente y Rm x. Por lo tanto hemos verificado la veracidad de la proposicin
general (x, y ] )(x Rm y y Rm x).

Transitividad:

Sean x, y, z cualesquiera elementos en ] . Si se cumple que x y (mod m) y


y z (mod m) entonces x y es divisible por m y a su vez y z es divisible tambin por
m. Consideremos la suma (x y) + (y z) = x z. La pregunta a resolver ahora es si
x z es divisible por m. Sean s1 = (x y)/m y s2 = (y z)/m. Es claro que s1 y s2 son
nmeros enteros. Entonces x y y y z pueden ser reescritos como s1m y s2m,
respectivamente:

( x y) + ( y z) = x z
s1 m + s2 m = x z
m( s1 + s2 ) = x z

El lado izquierdo de la igualdad nos dice que x z puede ser expresado como m(s1 + s2)
pero ms importante an: que m es factor de x z. Por lo tanto x z es divisible por m y
en consecuencia se tiene que x z (mod m). Se concluye que la proposicin general
(x, y, z ] )(x Rm y y Rm z x Rm z) es verdadera.

Tenemos entonces los elementos para caracterizar a la relacin Rm como una Relacin de
Equivalencia.

110
Captulo 3. Relaciones y Funciones

Ahora determinaremos a las clases de equivalencia para el conjunto de los enteros


bajo la relacin Rm con m = 5 (x R5 y x y (mod 5)). Por definicin de clase de
equivalencia debemos identificar a los siguientes conjuntos:

[a] = {x ] : x R5 a}

Es decir, debemos considerar a cada entero a en ] como representante de la clase de


equivalencia [a] y determinar que elementos la conforman. Estos elementos son aquellos
enteros x que satisfacen x a (mod 5). Iniciemos con a = 0. En esta instancia tenemos que

[0] = {x ] : x R5 0}

Un entero x estar en [0] si x 0 = x es divisible por 5. Claramente tendremos a todos los


mltiplos de 5 en [0] incluyendo al cero mismo:

[0] = {, -20, -15, -10, -5, 0, 5, 10, 15, 20, 25, }

Ahora construyamos a la clase de equivalencia con representante a = 1:

[1] = {x ] : x R5 1}

Un entero x estar en [1] si x 1 es divisible por 5. Es claro que los elementos en [1] sern
aquellos para los cuales x 1 es igual a un entero mltiplo de 5:

[1] = {, -19, -14, -9, -4, 1, 6, 11, 16, 21, 26, }

En el caso de la clase de equivalencia [2] = {x ] : x R5 2} sus miembros sern aquellos


enteros para los cuales x 2 es un entero mltiplo de 5:

[2] = {, -18, -13, -8, -3, 2, 7, 12, 17, 22, 27, }

En este punto debe ser claro como construir a las clases de equivalencia [3] y [4]:

[3] = {x ] : x R5 3} = {, -17, -12, -7, -2, 3, 8, 13, 18, 23, 28, }

[4] = {x ] : x R5 4} = {, -16, -11, -6, -1, 4, 9, 14, 19, 24, 29, }

Ahora bien, tenemos la situacin en la cual a = 5 actuar como representante de la clase de


equivalencia [5]. Nos es evidente que los elementos x en [5] sern aquellos para los cuales
x 5 es divisible por 5. Sin embargo, ntese que si x 5 es divisible por 5 entonces

x5 x 5
=
5 5 5

111
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Lo que nos indica que x desde un principio era tambin mltiplo de 5. Es claro que el
conjunto de enteros a considerar es el mismo que se uso para definir a la clase de
equivalencia [0]. Por lo tanto, tenemos que

[5] = {x ] : x R5 5} = {, -20, -15, -10, -5, 0, 5, 10, 15, 20, 25, } = [0]

Ahora veamos que una situacin similar se presenta con la clase de equivalencia con
representante a = 6 ya que los elementos que la conformarn son aquellos para los cuales
x 6 es divisible por 5. Pero ntese que:

x 6 ( x 1) 5 ( x 1) 5
= =
5 5 5 5

Por lo tanto, tenemos que x 1 es igual a un entero mltiplo de 5. Pero este requerimiento
lo presentaron los elementos que en su momento formaron a la clase de equivalencia [1].
En consecuencia:

[6] = {x ] : x R5 6} = {, -19, -14, -9, -4, 1, 6, 11, 16, 21, 26, } = [1]

En el caso de la clase de equivalencia con representante a = 7 se observa que los elementos


que la conforman son aquellos para los cuales x 7 es un nmero mltiplo de 5. Pero
x 7 = (x 2) 5, y de manera muy similar a la clase antes formada, tenemos que x 2
debe ser un mltiplo de 5. Estos elementos estuvieron presentes en la clase con
representante a = 2. Por lo tanto tendremos:

[7] = {x ] : x R5 7} = {, -18, -13, -8, -3, 2, 7, 12, 17, 22, 27, } = [2]

Los razonamientos anteriores nos proporcionan elementos para establecer que las clases de
equivalencia con representantes a = 8 y a = 9 tendrn los mismos elementos que las clases
[3] y [4] respectivamente:

[8] = {x ] : x R5 8} = {, -17, -12, -7, -2, 3, 8, 13, 18, 23, 28, } = [3]

[9] = {x ] : x R5 9} = {, -16, -11, -6, -1, 4, 9, 14, 19, 24, 29, } = [4]

Si se desea la clase de equivalencia con representante a = 10 tendremos que los elementos


que la formen sern aquellos x para los cuales x 10 es divisible por 5. Pero ntese que
stos deben ser entonces mltiplos de 5. Por lo tanto:

[10] = [0]

Observemos que de continuar con nuestro proceso, y gracias a los razonamientos antes
efectuados, podemos afirmar que:

112
Captulo 3. Relaciones y Funciones

[0] = [5] = [10] = [15] = [20] =


[1] = [6] = [11] = [16] = [21] =
[2] = [7] = [12] = [17] = [22] =
[3] = [8] = [13] = [18] = [23] =
[4] = [9] = [14] = [19] = [24] =
Ello implica que el conjunto de los nmeros enteros ] bajo la relacin R5 se particiona
nicamente en 5 clases de equivalencia: [0], [1], [2], [3] y [4]. Ello se debe a que, por
ejemplo, las clases [0], [5], [10], [15], son en realidad el mismo conjunto. Por lo tanto el
conjunto cociente est dado por:

] /R5 = {[0], [1], [2], [3], [4]}

3.3 Funciones
Considrese a una relacin R de un conjunto A hacia un conjunto B. Decimos que R
es una Funcin si satisface las siguientes dos propiedades:
(a A)(b B)(a R b)
(a A)(b1, b2 B)(a R b1 a R b2 b1 = b2)

Tomemos las dos proposiciones generales que nos definen a una funcin y
obtengamos, mediante la aplicacin del lgebra Proposicional, sus correspondientes
negaciones:

(a A)(b B)(a R b)
(a A)(b B)(a R b)

(a A)(b1, b2 B)(a R b1 a R b2 b1 = b2)


(a A)( b1, b2 B)((a R b1 a R b2 b1 = b2))
(a A)( b1, b2 B)(((a R b1 a R b2) b1 = b2))
(Propiedad del Condicional)
(a A)( b1, b2 B)(((a R b1 a R b2) b1 = b2)) (Ley de DMorgan)
(a A)( b1, b2 B)(a R b1 a R b2 b1 b2) (Ley de DMorgan)

Tenemos los criterios para establecer la situacin en la que una relacin no puede ser
caracterizada como una funcin. Decimos que R no es una funcin si una de las dos
siguientes propiedades se cumple:
(a A)(b B)(a R b)
(a A)( b1, b2 B)(a R b1 a R b2 b1 b2)

Por ejemplo, consideremos al conjunto de los nmeros reales \ . Sea R una relacin
de \ hacia \ definida como:

R/ = {(x, y): y = 1/x}

113
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Puede R/ ser caracterizada como una funcin? La primer condicin que se debe cumplir
establece que para todo x en \ debe existir su correspondiente y, tambin en \ , tal que
y = 1/x. Si manipulamos el cociente podemos encontrar que de hecho x y y son recprocos:

y = 1/x xy = 1

Entonces es claro que casi para cualquier nmero real x existe su correspondiente recproco.
Existe una excepcin: cuando x = 0. Si tomamos la expresin xy = 1 tenemos entonces que
buscamos un nmero y con la propiedad de que al ser multiplicado por x = 0 el resultado
sea 1:

0y = 1

Evidentemente, por propiedades de los nmeros reales, tenemos que 0y = 1, para cualquier
y en \ , es una contradiccin. Ello implica que la proposicin (0 \ )(y \ )(0 R/ y)
es verdadera. Por lo tanto la proposicin general (x \ )(y \ )(x R/ y) es falsa. En
consecuencia la relacin R/ = {(x, y): y = 1/x} no es una funcin.

Ahora se redefinir a la relacin R/ antes presentada de la siguiente manera: Sea R/


una relacin del conjunto \ \ {0} hacia el conjunto \ definida como:

R/ = {(x, y): y = 1/x}

Ntese que el nico cambio efectuado tiene que ver con el conjunto de valores que puede
tomar x, el cual ahora es el conjunto de todos los nmeros reales excepto el cero. Ahora es
claro que y = 1/x nos proporciona el recproco de cualquier nmero x 0. El recproco y es
tambin un nmero real. Por lo tanto es verdadera la proposicin

(x \ \ {0})(y \ )(x R/ y)

R/ no puede ser declarada an como una funcin ya que necesitamos verificar que la
proposicin general (x \ \ {0})(y1, y2 \ )(x R/ y1 x R/ y2 y1 = y2) es verdadera.
Sean x, y1 y y2 cualesquiera reales para los cuales la proposicin x R/ y1 x R/ y2 es
verdadera. Por lo tanto se cumple:

1 1
y1 = y2 =
x x
xy1 = 1 xy2 = 1
xy1 = xy2
y1 = y2

Es decir, acabamos de probar, auxiliados por la aplicacin del lgebra de los nmeros
reales, que la conjuncin inicial tiene como consecuencia que los nmeros y1 y y2 son de
hecho el mismo nmero. Por lo tanto hemos verificado que x R/ y1 x R/ y2 implica que

114
Captulo 3. Relaciones y Funciones

y1 = y2. En conclusin (x \ \ {0})(y1, y2 \ )(x R/ y1 x R/ y2 y1 = y2) es


verdadera. Dado que R/ satisface las dos propiedades:
(x \ \ {0})(y \ )(x R/ y)
(x \ \ {0})(y1, y2 \ )(x R/ y1 x R/ y2 y1 = y2)
Entonces R/ es caracterizada como una funcin.

Sea R una relacin del conjunto A hacia el conjunto B. Si R es una Funcin


entonces se le denotar por

R: A B
a R (a )

Donde el conjunto A es el Dominio de la Funcin y el conjunto B su Codominio. Es este


sentido, la expresin R:A B debe leerse como Sea la funcin R con dominio A y
codominio B. Por otro lado, la expresin a R(a) se lee como El elemento a en el
dominio es relacionado con el elemento R(a) en el codominio. Por ejemplo, la funcin R/
previamente presentada queda expresada ahora como:

R/ : \ \{0} \
1
x  R/ ( x) =
x

De hecho la expresin R(x) = 1/x tambin pudo haber sido escrita como y = 1/x haciendo
referencia al hecho de que x se relaciona mediante R/ con el elemento y.

Veamos el siguiente ejemplo. Sea f la relacin que va de A = {a, b, c, d} hacia


B = {r, s, t, u} definida como:

f = {(a, s), (b, u), (c, r), (d, s)}

El dominio y codominio de f estn dados por {a, b, c, d} y {r, s, t, u} respectivamente.


Verifiquemos si f es una funcin.
Por probar que la proposicin (x A)(y B)(x f y) es verdadera. Tomaremos cada
elemento x de A y determinaremos si cuenta con un elemento y en B tal que (x, y) est
presente en la relacin.
o Para x = a A existe y = s B tal que (a, s) f.
o Para x = b A existe y = u B tal que (b, u) f.
o Para x = c A existe y = r B tal que (c, r) f.
o Para x = d A existe y = s B tal que (d, s) f.
Por lo tanto la proposicin general (x A)(y B)(x f y) es verdadera.
Ahora se verificar que (x A)(y1, y2 B)(x R y1 x R y2 y1 = y2) tambin es
verdadera. Se tomar a cada elemento x de A y se formarn todos los posibles pares de
elementos y1, y2 tomados de B tales que (x, y1) y (x, y2) f. Para cada uno de estos tros
x, y1 y y2 se verificar si la condicional x R y1 x R y2 y1 = y2 es verdadera.

115
Una Introduccin a las Matemticas Discretas y Teora de Grafos

o Para x = a A existen y1 y y2 tales que y1 = y2 = s. En este caso


a R s a R s s = s V. Ntese que para todo par (y1, y2) diferente de (s, s) se
tiene que a R y1 a R y2 y1 = y2 F F F V.
o Para x = b A existen y1 y y2 tales que y1 = y2 = u: b R u b R u u = u V.
Por otro lado, para todo par (y1, y2) diferente de (u, u) se tiene que
b R y1 b R y2 y1 = y2 F F F V.
o Para x = c A existen y1 y y2 tales que y1 = y2 = r: c R r c R r r = r V.
Para todo par (y1, y2) diferente de (r, r) se tiene que
c R y1 c R y2 y1 = y2 F F F V.
o Finalmente, cuando x = d A existen y1 y y2 tales que y1 = y2 = s:
d R s d R s s = s V. Para todo par (y1, y2) diferente de (s, s) se tiene que
d R y1 d R y2 y1 = y2 F F F V.
Hemos verificado que toda posible instancia de sustitucin para la proposicin
x R y1 x R y2 y1 = y2 hace que sta sea siempre verdadera. Por lo tanto concluimos
que la proposicin general (x A)(y1, y2 B)(x R y1 x R y2 y1 = y2) es
verdadera.
En conclusin, f es efectivamente una funcin. Por lo tanto podemos establecer:

f: A B
x f ( x) = y

En ocasiones, y sobre todo cuando dominio y codominio son ambos conjuntos con nmero
finito de elementos, es posible reemplazar la notacin general x f(x) = y mostrando
explcitamente como se relacionan entre s los elementos en el dominio con los elementos
en el codominio. De tal forma, que para nuestra funcin f = {(a, s), (b, u), (c, r), (d, s)}
tendramos:

f: A B
a f (a) = s
b f (b) = u
c f (c ) = r
d f (d ) = s

Ahora consideremos al siguiente conjunto A = {1, 2, 3} y sea la relacin h que va


del conjunto A hacia si mismo dada por:

h = {(1, 3), (2, 1), (1, 2), (3, 1)}

Probemos que la proposicin (x A)(y A)(x h y) es verdadera:


x = 1: Existe un y = 3 A tal que 1 h 3. Ntese que otra opcin pudo haber sido y = 2.
x = 2: Existe un y = 1 A tal que 2 h 1.
x = 3: Existe un y = 1 A tal que 3 h 1.
Por lo tanto (x A)(y A)(x h y) V. Ahora veamos si se cumple la veracidad de la
proposicin (x A)(y1, y2 A)(x h y1 x h y2 y1 = y2).

116
Captulo 3. Relaciones y Funciones

Cuando x = 1 tenemos que existen un par de elementos en el codominio que hacen que
la proposicin 1 h y1 1 h y2 y1 = y2 sea falsa. Estos elementos son y1 = 3 y y2 = 2.
Ello implica que la proposicin general (1 A)(2,3 A)(1 h 2 1 h 3 2 3) es
verdadera.
Por lo tanto se concluye que la relacin h no es una funcin.

Se dice que una funcin f:A B es Inyectiva si se cumple con la siguiente


propiedad:

(a1, a2 A)(a1 a2 f(a1) f(a2))

Notemos que mediante el uso de nuestra lgebra Proposicional podemos encontrar otra
forma de expresar a la proposicin a1 a2 f(a1) f(a2):

a1 a2 f(a1) f(a2)
(a1 = a2) (f(a1) = f(a2))
((a1 = a2)) (f(a1) = f(a2) (Propiedad del Condicional)
(a1 = a2) (f(a1) = f(a2)) (Propiedad de la Doble Negacin)
(f(a1) = f(a2)) (a1 = a2) (Propiedad Conmutativa de la Disyuncin)
f(a1) = f(a2) a1 = a2 (Propiedad del Condicional)

Por lo tanto contamos con una forma alternativa para caracterizar a una funcin como
inyectiva:

f:A B es Inyectiva (a1, a2 A)(f(a1) = f(a2) a1 = a2)

Ahora determinemos la negacin de la proposicin que caracteriza a una funcin


como inyectiva a fin de establecer el criterio para caracterizar a una funcin como no
inyectiva:

(a1, a2 A)(a1 a2 f(a1) f(a2))


(a1, a2 A)((a1 a2 f(a1) f(a2)))
(a1, a2 A)(((a1 a2) f(a1) f(a2))) (Propiedad del Condicional)
(a1, a2 A)((a1 = a2 f(a1) f(a2))) ((a1 a2) a1 = a2)
(a1, a2 A)((a1 = a2) ( f(a1) f(a2))) (Ley de DMorgan)
(a1, a2 A)(a1 a2 ( f(a1) f(a2))) ((a1 = a2) a1 a2)
(a1, a2 A)(a1 a2 f(a1) = f(a2)) (( f(a1) f(a2)) f(a1) = f(a2))

Una funcin f:A B es No Inyectiva si se cumple con la siguiente propiedad:

(a1, a2 A)(a1 a2 f(a1) = f(a2))

117
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Consideremos el siguiente ejemplo. Sea la funcin f dada por:

f: \ \
x f ( x) =| x |

Recurdese que | x | denota al valor absoluto del nmero real x. Deseamos verificar que
f(x) = | x | es una funcin inyectiva. Por definicin, debemos probar que la proposicin
general (x1, x2 A)(x1 x2 | x1 | | x2 |) es verdadera. Ahora bien, recordemos que el
valor absoluto puede definirse de la siguiente manera:

x = x2

Precisamente esta ltima expresin nos proporciona informacin sumamente til. Ello se
debe a que independientemente de que x sea positivo o negativo o cero, el resultado de
x 2 es siempre un no negativo. Y esto abre la posibilidad de considerar nmeros reales
diferentes pero cuyo valor absoluto sea el mismo. Por ejemplo, sean x1 = 2 y x2 = -2. Es
claro que se cumple con el requisito de que x1 x2. Pero es claro tambin que |x1| = |x2| = 2.
Ello implica que hemos encontrado una instancia de sustitucin para la proposicin
x1 x2 | x1 | | x2 | que la hace falsa. En consecuencia, la proposicin general
(x1, x2 A)(x1 x2 | x1 | | x2 |) es falsa. O de manera equivalente, tenemos que
(-2, 2 \ )(-2 2 | -2 | = | 2 |) es verdadera. Por lo tanto la funcin valor absoluto es no
inyectiva.

Ahora consideremos a la funcin g dada por:

g: \ \
x g ( x) = 2 x + 3

Hemos de probar que la proposicin general (x1, x2 A)(x1 x2 2x1 + 3 2x2 + 3) es


verdadera. En este caso utilicemos la forma alternativa

(x1, x2 A)(2x1 + 3 = 2x2 + 3 x1 = x2)

Sean x1 y x2 cualesquiera nmeros reales tales que cumplen con 2x1 + 3 = 2x2 + 3.
Manipulemos la igualdad utilizando nuestra lgebra de los Nmeros Reales:

2x1 + 3 = 2x2 + 3
2x1 + 3 3 = 2x2 + 3 - 3
2x1 = 2x2
(1/2)2x1 = (1/2)2x2
x1 = x2

118
Captulo 3. Relaciones y Funciones

Es decir, partiendo de que x1 y x2 satisfacen la propiedad 2x1 + 3 = 2x2 + 3 hemos concluido


que x1 = x2. Por lo tanto podemos concluir que la funcin g(x) = 2x + 3 es una funcin
inyectiva.

Sean X = {1, 2, 3, 4}, Y = {7, 8, 9, 10, 11} y la funcin h1 dada por:

h1 : {1, 2,3, 4} {7,8,9,10,11}


1 h1 (1) = 7
2 h1 (2) = 8
3 h1 (3) = 9
4 h1 (4) = 10

Veamos si nuestra funcin efectivamente es inyectiva. Formalmente debemos considerar


todos los pares de elementos distintos tomados del dominio X y verificar que sus
correspondientes elementos en el codominio Y sean tambin diferentes:
x1 = 1, x2 = 2: 1 2 h1(1) h1(2) 1 2 7 8 V V V.
x1 = 1, x2 = 3: 1 3 h1(1) h1(3) 1 3 7 9 V V V.
x1 = 1, x2 = 4: 1 4 h1(1) h1(4) 1 4 7 10 V V V.
x1 = 2, x2 = 3: 2 3 h1(2) h1(3) 2 3 8 9 V V V.
x1 = 2, x2 = 4: 2 4 h1(2) h1(4) 2 4 8 10 V V V.
x1 = 3, x2 = 4: 3 4 h1(3) h1(4) 3 4 9 10 V V V.
Ntese que aparentemente no hicimos la evaluacin de los siguientes casos:
x1 = 2, x2 = 1
x1 = 3, x2 = 1
x1 = 3, x2 = 2
x1 = 4, x2 = 1
x1 = 4, x2 = 2
x1 = 4, x2 = 3
Ello se debe a que el operador satisface la conmutatividad, es decir, x y es equivalente a
y x. Entonces, por ejemplo, la proposicin 1 2 h(1) h(2) es equivalente a la
proposicin 2 1 h(2) h(1). Habiendo hecho las aclaraciones correspondientes solo
nos queda establecer que la funcin h1 es una funcin inyectiva.

Ahora sean el dominio X = {1, 2, 3, -1, -2, -3}, el codominio Y = {1, 4, 9} y la


funcin h2 = {(1, 1), (2, 4), (3, 9), (-1, 1), (-2, 4), (-3, 9)}. Determinemos si h2 es inyectiva:
x1 = 1, x2 = 2: 1 2 h2(1) h2(2) 1 2 1 4 V V V.
x1 = 1, x2 = 3: 1 3 h2(1) h2(3) 1 3 1 9 V V V.
x1 = 1, x2 = -1: 1 -1 h2(1) h2(-1) 1 -1 1 1 V F F.
En este punto no tiene sentido proseguir con la evaluacin de los posibles pares restantes ya
que encontramos una instancia con la cual se tiene la falsedad de la proposicin general
(x1, x2 X)(x1 x2 h2(x1) h2(x2)). De manera equivalente tenemos entonces que la
proposicin (-1, 1 X)(-1 1 h2(-1) = h2(1)) es verdadera y esto nos permite
caracterizar a h2 como no inyectiva.

119
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Se dice que una funcin f:A B es Suprayectiva si satisface la siguiente


propiedad:

(b B)(a A)(f(a) = b)

La suprayectividad se puede interpretar como el hecho de que todo elemento en el


codominio esta siendo efectivamente emparejado con un elemento en el dominio. O en
otras palabras, no hay elementos sobrantes en el codominio en el sentido de que no se
encuentre su correspondiente socio en el dominio. Este ltimo enunciado nos proporciona
de hecho una gua para inferir el criterio para caracterizar a una funcin como no
suprayectiva:

(b B)(a A)(f(a) = b)
(b B)(a A)((f(a) = b))
(b B)(a A)(f(a) b)

Es decir:

f:A B es No Suprayectiva (b B)(a A)(f(a) b)

Por ejemplo, sean A = {1, 2, 3, 4, 5} y B = {10, 20, 30} y sea la funcin f1 dada por:

f1 : A B
1 f1 (1) = 10
2 f1 (2) = 10
3 f1 (3) = 20
4 f1 (4) = 20
5 f1 (5) = 30

Demostremos que para todo elemento b en el conjunto B se tiene que existe un elemento a
en el conjunto A tal que f1(a) = b:
Para b = 10 existe el elemento a = 1 tal que f1(1) = 10.
Para b = 20 existe el elemento a = 3 tal que f1(3) = 20.
Para b = 30 existe el elemento a = 5 tal que f1(5) = 30.
Por lo tanto se tiene que la proposicin (b {10, 20, 30})(a {1, 2, 3, 4, 5})(f1(a) = b)
es verdadera. Entonces f1 es una funcin suprayectiva.

Ahora sea el dominio X = {1, 2, 3, 4} y el codominio Y = {7, 8, 9, 10, 11}. Sea la


funcin f2 = {(1,7), (2,8), (3,9), (4,10)}. Ntese que el elemento 11 en el codominio no esta
emparejado, en f2, con ningn elemento del dominio. Eso hace que la proposicin general
(11 B)(a A)(f2(a) 11) sea verdadera. En consecuencia f2 es caracterizada como no
suprayectiva.

120
Captulo 3. Relaciones y Funciones

Reconsideremos a nuestra funcin valor absoluto:

f: \ \
x f ( x) =| x |

Sabemos que para todo x en los reales el valor absoluto de x, independientemente de que
ste sea positivo, negativo o cero, ser un nmero no negativo. Sin embargo ntese que el
codominio de nuestra funcin considera a todos los reales: \ . Eso quiere decir que para
cualquier negativo en el codominio no existir un real en el dominio cuyo valor absoluto
sea precisamente negativo. Por ejemplo, consideremos al nmero -2. No existe un nmero x
en los reales tal que | x | = -2. De hecho con este simple ejemplo nos basta para establecer
que la proposicin general (-2 \ )(x \ )(| x | -2) es verdadera y entonces
caracterizar a la funcin valor absoluto como no suprayectiva. Ahora bien, la no
suprayectividad de | x | se debe a cmo fue definido en particular su codominio. Si la
funcin es redefinida como

f: \ \ + {0}
x f ( x) =| x |

Es decir, considerando como codominio nicamente a los nmeros reales positivos junto
con el cero, \ + {0} , entonces ser claro que para cualquier elemento y en el nuevo
codominio podremos encontrar su correspondiente x en el dominio tal que y = | x |. Con esta
modificacin tenemos entonces que la funcin valor absoluto es suprayectiva.

Reconsideremos a la funcin g presentada previamente:

g: \ \
x g ( x) = 2 x + 3

Se demostrar que g es suprayectiva. Sea y cualquier elemento de \ . Buscaremos,


apoyndonos en el lgebra de los Nmeros Reales al nmero x, tambin en \ , tal que
y = 2x + 3:

y = 2x + 3
y 3 = 2x
(y 3)/2 = x

Ntese que partimos de considerar que efectivamente se cumple que y = 2x + 3 y llegamos


a la conclusin de que (y 3)/2 = x. Es decir, hemos logrado, dado un y en el codominio,
proporcionar una frmula para ubicar a su correspondiente elemento x en el dominio tal que
ambos satisfagan la relacin y = 2x + 3. Por ejemplo, sea y = 5. Entonces x = (5 3)/2 = 1.
Evidentemente g(1) = 2(1) + 3 = 5 = y. Aunque la expresin (y 3)/2 = x es un cociente
ste est bien definido para todos los nmeros reales en el sentido de que no se presentan
casos de divisin por cero. Por lo tanto (y \ )(x \ )(2x + 3 = y) es verdadera, es
decir, g es suprayectiva.

121
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Considrese la funcin

g2 : \ \
x g 2 ( x) = x 2

Se verificar si g2 es suprayectiva. Sea y cualquier elemento de \ . Buscaremos, al nmero


x, tambin en \ , tal que y = x2:

y = x2
y=x

El problema de que debe apreciarse en este punto es que los valores que puede tomar y
pueden ser negativos, ya que el codominio se estableci era todo el conjunto de los
nmeros reales. Sin embargo, la raz cuadrada no est definida para los reales negativos.
Eso quiere decir que entonces, por ejemplo, si y = -4 concluimos que no existe ningn
nmero real x tal que x2 = -4. Esta instancia hace que la proposicin general
(-4 \ )(x \ )(x2 -4) sea verdadera y en consecuencia g2 es no suprayectiva. Tal
como sucedi con la funcin valor absoluto es posible hacer una correccin sobre el
codominio:

g 2 : \ \ + {0}
x g 2 ( x) = x 2

Bajo este nuevo contexto tenemos que nuestra frmula y = x queda bien definida ya
que los valores que ahora puede tomar y sern no negativos. Esto implica que g2 puede ser
ahora caracterizada como suprayectiva.

Se dice que una funcin f:A B es una funcin Biyectiva si f es inyectiva y


tambin suprayectiva.

Por ejemplo, previamente demostramos que la funcin

g: \ \
x g ( x) = 2 x + 3

era tanto inyectiva como suprayectiva. Por lo tanto la funcin g es una funcin biyectiva.

122
Captulo 3. Relaciones y Funciones

Sean A = {1, 2, 3} y B = {10, 20, 30}. Sea la funcin f dada por:

f: A B
1 f (1) = 10
2 f (2) = 20
3 f (3) = 30

Veamos si f es biyectiva. Para ello debemos probar inicialmente que es inyectiva y


posteriormente que es suprayectiva.
Por probar que (a1, a2 A)(a1 a2 f(a1) f(a2)) es verdadera:
o a1 = 1 y a2 = 2: 1 2 f(1) f(2) 1 2 10 20 V V V.
o a1 = 1 y a2 = 3: 1 3 f(1) f(3) 1 3 10 30 V V V.
o a1 = 2 y a2 = 3: 2 3 f(2) f(3) 2 3 20 30 V V V.
Por lo tanto f es inyectiva.
Ahora demostraremos que (b B)(a A)(f(a) = b) es verdadera:
o Para b = 10 existe a = 1 tal que f(1) = 10.
o Para b = 20 existe a = 2 tal que f(2) = 20.
o Para b = 30 existe a = 3 tal que f(3) = 30.
Por lo tanto f es suprayectiva.
Se tiene que f es inyectiva y suprayectiva. En consecuencia f es una funcin biyectiva.

Sean las funciones f:A B y g:B C. Entonces la Composicin de f y g,


denotada por g o f, es la funcin con dominio A y codominio C, es decir:

go f: A C
a ( g o f )(a )

La notacin (g o f)(a) debe entenderse como g(f(a)). Es decir, el resultado de (g o f)(a) se


obtiene al evaluar primeramente a f con a A y posteriormente el resultado de f(a) B se
evala con la funcin g.

Por ejemplo, sean los conjuntos A = {1, 2, 3}, B = {10, 20, 30} y C = {x, y, z}. Sean
las funciones f y g dadas por:

f: A B g: B C
1 f (1) = 10 10 g (10) = x
2 f (2) = 20 20 g (20) = y
3 f (3) = 30 30 g (30) = z

123
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Entonces, de acuerdo a la definicin tendremos que g o f estar especificada como:

g o f : {1, 2,3} {x, y, z}


1 ( g o f )(1) = g ( f (1) ) = g (10 ) = x
2 ( g o f )( 2 ) = g ( f ( 2 ) ) = g ( 20 ) = y
3 ( g o f )( 3) = g ( f ( 3) ) = g ( 30 ) = z

Vista como un conjunto de pares ordenados tenemos que g o f = {(1, x), (2, y), (3, z)}.

Consideremos al siguiente par de funciones:

f: \ \ g: \ \
x f ( x) = 2 x + 3 x g ( x) = 3x + 2

Entonces tenemos las siguientes composiciones (todas las funciones resultantes tendrn por
dominio y codominio a \ ):
(g o f)(x) = g(f(x)) = g(2x + 3) = 3(2x + 3) + 2 = 6x + 11
(f o g)(x) = f(g(x)) = f(3x + 2) = 2(3x + 2) + 3 = 6x + 7
(f o f)(x) = f(f(x)) = f(2x + 3) = 2(2x + 3) + 3 = 4x + 9
(g o g)(x) = g(g(x)) = g(3x + 2) = 3(3x + 2) + 2 = 9x + 8

Sea f:A B una funcin biyectiva. A la funcin f -1:B A definida como


f -1(b) = a, donde b B y el elemento a A es tal que f(a) = b se le llama Funcin Inversa
de f.

Por ejemplo, sean A = {1, 2, 3} y B = {10, 20, 30}. Sea la funcin f dada por:

f: A B
1 f (1) = 10
2 f (2) = 20
3 f (3) = 30

Previamente demostramos que esta funcin es biyectiva. Por lo tanto debe existir su
correspondiente funcin inversa. Entonces f -1 estar dada por:

f -1 : B A
10 f (10) = 1
-1

20 f -1 (20) = 2
30 f -1 (30) = 3

124
Captulo 3. Relaciones y Funciones

Ahora veamos qu sucede cuando efectuamos la composicin entre la funcin f y su


correspondiente inversa f -1:
Para f o f -1 se tiene que:

f o f -1 : B B
10 ( f o f )(10) = f ( f -1 (10)) = f (1) = 10
-1

20 ( f o f -1 )(20) = f ( f -1 (20)) = f (2) = 20


30 ( f o f -1 )(30) = f ( f -1 (30)) = f (3) = 30

Mientras que para f -1 o f :

f -1 o f : A A
1 ( f o f )(1) = f ( f (1)) = f -1 (10) = 1
-1 -1

2 ( f -1 o f )(2) = f -1 ( f (2)) = f -1 (20) = 2


3 ( f -1 o f )(3) = f -1 ( f (3)) = f -1 (30) = 3

Es claro que las funciones obtenidas son diferentes. Pero tienen en comn el hecho de que
todos los elementos en sus dominios tienen por pareja en el codominio a si mismos. En
otras palabras, tanto f o f -1 como f -1 o f pueden verse como funciones que no modifican
en manera alguna a sus valores de entrada. Este tipo de funciones nos conducen a la
siguiente definicin:

Considrese a la funcin :A A. A se le llama Funcin Identidad si satisface la


siguiente propiedad:

(x A)((x) = x)

Es claro entonces que, retomando el ejemplo anterior, tanto f o f -1 como f -1 o f son


funciones identidad. Son diferentes en el sentido de que f o f -1:B B mientras que
f -1 o f:A A.

Reconsideremos a la siguiente funcin biyectiva:

g: \ \
x g ( x) = 2 x + 3

En este caso deseamos encontrar a su correspondiente funcin inversa g -1. Por definicin,
g -1(y) = x, donde y \ y el elemento x \ es tal que g(x) = 2x + 3 = y. En otras
palabras, dado un real y en el codominio deseamos encontrar su correspondiente pareja x en
el dominio tal que ambos satisfagan la relacin 2x + 3 = y. Cuando se demostr que g(x) era

125
Una Introduccin a las Matemticas Discretas y Teora de Grafos

una funcin suprayectiva se obtuvo una expresin en trminos de y que permita ubicar al
elemento x que le corresponda:

x = (y 3)/2

Precisamente esta expresin es la que define a la funcin inversa de g. Por lo tanto se tiene:

g -1(y) = (y 3)/2

Tal como procedimos en el ejemplo anterior, veamos que sucede cuando efectuamos las
composiciones g -1 o g y g o g -1:

g -1 o g:
g 1 o g : \ \
( g 1 o g )( x) = g 1 ( g ( x))
= g 1 (2 x + 3)
x
= ((2 x + 3) 3) / 2
=x

g o g -1:
g o g 1 : \ \
( g o g 1 )( x) = g ( g 1 ( x))
= g (( x 3) / 2)
x
= 2(( x 3) / 2) + 3
=x

De nueva cuenta vemos que se obtuvieron funciones identidad. En este punto vale la pena
hacer una aclaracin. En este ejemplo, para determinar a la funcin inversa de g hicimos
uso de un resultado que se produjo al demostrar que g era efectivamente suprayectiva. Sin
embargo, en lo general, la suprayectividad por si sola no garantiza que una funcin sea
biyectiva y en consecuencia cuente con su correspondiente inversa. Se debe tener siempre
en consideracin que, por definicin, para que una funcin tenga su correspondiente inversa
sta debe ser tanto inyectiva como suprayectiva, o en trminos equivalentes, debe ser
biyectiva.

Finalizaremos este Captulo al formalizar la relacin que existe entre una funcin
biyectiva, su inversa y las composiciones entre stas:

Teorema 3.5: Sea f:A B una funcin biyectiva y sea f -1:B A su correspondiente
funcin inversa. Las composiciones f -1 o f y f o f -1 corresponden a funciones identidad.

126
Captulo 3. Relaciones y Funciones

Demostracin:

Sea x cualquier elemento en el dominio A de f. Si f(x) = y, donde y es un elemento del


codominio B, entonces, debido a que f es biyectiva, se tiene que x es el nico elemento
asociado a y y a su vez y es el nico elemento asociado a x. De hecho, la relacin entre x y y
define tambin como se comportar f -1 con estos elementos: y = f -1(x). Por definicin, la
composicin (f -1 o f)(x) produce como resultado el mismo x:

(f -1 o f)(x) = f -1(f(x)) = f -1(y) = x

Los razonamientos anteriores son vlidos para todos los elementos en el dominio A de f
dado que el elemento x considerado fue cualquiera de ellos. Por lo tanto se tiene la validez
de la proposicin general:

(x A)((f -1 o f)(x) = x)

La cual a su vez caracteriza a f -1 o f como una funcin identidad.

Ntese que para el caso f o f -1 se sigue una secuencia de pasos similar a los antes
presentados. Se llega entonces a verificar la validez de la proposicin general:

(y B)((f o f -1)(y) = y)

Con lo que f o f -1 es tambin caracterizada como una funcin identidad.

127
Una Introduccin a las Matemticas Discretas y Teora de Grafos

128
Una Introduccin a las Matemticas Discretas y Teora de Grafos

4. Sucesiones, Series
e Induccin Matemtica
Una Introduccin a las Matemticas Discretas y Teora de Grafos

130
Captulo 4. Sucesiones, Series e Induccin Matemtica

4.1 Sucesiones
Definamos el concepto de Funcin de Sucesin:

a) Una Funcin de Sucesin Finita es una funcin cuyo dominio es el conjunto de los
primeros n enteros positivos, esto es, {1, 2, 3, 4, , n}.

b) Una Funcin de Sucesin Infinita es una funcin cuyo dominio es el conjunto de los
nmeros naturales ` , es decir, el conjunto {1, 2, 3, 4, }

Los nmeros en el codominio de una funcin de sucesin se denominan Elementos.


Los elementos de una funcin de sucesin, al ser listados en orden, forman una Sucesin.
Si el dominio de la funcin de sucesin es finito entonces la sucesin es de hecho una
Sucesin Finita. Si el dominio de la funcin de sucesin es infinito entonces se tiene una
Sucesin Infinita.

Considrese el siguiente ejemplo. Sea la funcin de sucesin finita f(n) = 3n,


n {1, 2, 3, 4, 5}. Entonces se tienen los elementos

f(1) = 3
f(2) = 6
f(3) = 9
f(4) = 12
f(5) = 15

La sucesin finita queda como 3, 6, 9, 12, 15. Tal sucesin tiene adems 5 pares ordenados
(n, f(n)):

(1,3), (2,6), (3,9), (4,12), (5,15)

Ejemplo:
2n 1
Sea la funcin de sucesin infinita f (n) = , n {1, 2, 3, 4, }. Sus elementos se
n3
obtienen mediante:

f(1) = 1
3
f(2) =
8
5
f(3) =
27
7
f(4) =
64
#

131
Una Introduccin a las Matemticas Discretas y Teora de Grafos

3 5 7
Tales elementos dan lugar a la sucesin infinita 1, , , , En donde algunos de sus
8 27 64
pares ordenados son

3 5 7
(1,1), 2, , 3, , 4, ,...
8 27 64

Ahora se introducir la siguiente notacin:


a1 denotar al primer elemento de una sucesin.
a2 denotar al segundo elemento de una sucesin.
#
an = f(n) denotar al n-simo elemento de una sucesin. A tal elemento se le
denominar el Elemento General de la Sucesin.

Ejemplos:

Para f(n) = 3n se tiene que


o an = 3n
o a1 = 3
o a2 = 6
o a3 = 9

2n 1
Para f (n) = se tiene
n3
2n 1
o an =
n3
o a1 = 1
3
o a2 =
8
5
o a3 =
27

Al elemento general de una sucesin se le incluye en la misma cuando sus


elementos se listan en orden:

a1, a2, a3, , an,

2n 1
Por ejemplo, para f (n) = tenemos
n3

3 5 2n 1
1, , , , ,
8 27 n3

132
Captulo 4. Sucesiones, Series e Induccin Matemtica

Se dice que una sucesin a1, a2, , an, es igual a una sucesin b1, b2, , bn, si
y slo si ai = bi para todo i = 1, 2, 3,

Es posible que dos sucesiones tengan los mismos elementos y sean desiguales. Por
ejemplo:

1 1 1 1 1
an = 1, , , ,..., ,...
n 2 3 4 n
1 si n es impar
1 1 1
an = 2 1, ,1, ,1, ,..., an ,...
n + 2 si n es par 2 3 4

El conocer varios elementos de una sucesin no implica necesariamente la


existencia de un elemento general nico. En el caso particular de los elementos 2, 4, 6 se
pueden tener las siguientes funciones de sucesin:

an = 2n 2, 4, 6, 8, 10, 12, , an,


2n si n es impar
an = 2, 4, 6, 12, 10, 20, , an,
2an 1 si n es par
an = 2n + (n 1)(n 2)(n 3) 2, 4, 6, 14, 34, 72, , an,

Por otro lado, no siempre es posible contar, de manera explcita, con una funcin
para determinar al elemento general de una sucesin. Un ejemplo est dado por la sucesin
de los nmeros primos

2, 3, 5, 7, 11, 13, 17, 19, , an,

En donde an es el n-simo nmero primo. Para esta sucesin, hasta el da de hoy, no se ha


encontrado una funcin o ecuacin que defina a an de manera directa, sin embargo, an
puede determinarse algortmicamente para todo entero positivo n.

4.2 Series y Sumatorias


La Notacin Sigma se define por la ecuacin
n

F (i) = F (m) + F (m + 1) + F (m + 2) + ... + F (n)


i =m

En donde m, n ] y m n. El segundo miembro de la frmula consiste en una suma


formada por n-m+1 trminos:
El primer trmino se obtiene al reemplazar i por m en F(i).
El segundo trmino se obtiene al reemplazar i por m+1 en F(i).
El tercer trmino se obtiene al reemplazar i por m+2 en F(i).
#
El ltimo trmino se obtiene al reemplazar i por n en F(i).

133
Una Introduccin a las Matemticas Discretas y Teora de Grafos

El nmero m se denomina el Lmite Inferior de la Suma y n se denomina el


Lmite Superior de la Suma. El smbolo i se denomina el ndice de Sumatoria. Si m > n
entonces se dice que la suma es cero.

Al igual que los elementos que forman a una sucesin cuentan con subndices, los
trminos de la suma pueden listarse como:

a1 + a2 + a3 + ... + an

Entonces tal suma se representa por notacin sigma como:

a
i =1
i

Ejemplos: Representar las sumas mediante notacin sigma:

a) 1 + 3 + 5 + 7 + 9
Se tienen al menos cuatro posibles representaciones:
7 5 6 4

(2i 5)
i =3
(2i 1)
i =1
(2i 3)
i=2
(2i + 1)
i =0

b) -3a3 + 4a4 - 5a5 + 6a6 - 7a7 + 8a8


8

(1) ia
i =3
i
i

Cuando i es par entonces (-1)i = 1 y cuando i es impar (-1)i = -1.

c) x2 - x4 + x6 - x8 + x10 - x12 + x14


7

(1)
i =1
i 1
x 2i

Cuando i es par (-1)i-1 = -1 y cuando i es impar (-1)i-1 = 1.

Si se indica la operacin de adicin entre los elementos de una sucesin se tiene una
Serie. Por lo tanto la sucesin a1, a2, a3, ..., an tendr asociada la serie:

n
a1 + a2 + a3 + ... + an = ai
i =1

134
Captulo 4. Sucesiones, Series e Induccin Matemtica

4.3 Principio de Induccin Matemtica


Supngase que P(n) es una proposicin referente al entero positivo n. Adems,
supngase que se satisfacen las siguientes dos condiciones:
a) P(c) es verdadera. Es decir, la proposicin es vlida para n = c, donde c es una
constante entera. De hecho, P(c) es llamada el Caso Base.
b) Sea k un entero arbitrario. Si P(k) es verdadera, entonces P(k+1) es tambin verdadera
Esto es, siempre que la proposicin sea vlida para n = k, es tambin vlida para
n = k + 1.
Por lo tanto el enunciado P(n) es vlido para todos los valores enteros de n c.

Los siguientes ejemplos ilustrarn la aplicacin del Principio de Induccin


Matemtica en la demostracin de algunos Teoremas.

Ejemplo:

n
n(n + 1)
Teorema 4.1: i =
i =1 2

Demostracin:

Parte 1: Verificacin de la validez del caso base con n = 1.

1
n(n + 1) 1(1 + 1)
i =1 =
i =1 2
=
2

En consecuencia la frmula efectivamente es vlida cuando n = 1.

Parte 2: Se supone que la frmula es efectivamente vlida cuando n = k, donde k es


cualquier entero positivo:

k
k (k + 1)
i =
i =1 2
Hiptesis de induccin

Con base en la suposicin anterior, debido a que se ha asumido que la frmula se cumple
para n = k, se desea verificar que la frmula es tambin vlida cuando n = k + 1, es decir, se
desea demostrar que:

k +1
(k + 1)([k + 1] + 1)
i =
i =1 2
(i)

135
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Parte 3: Partiremos del lado izquierdo de la expresin anterior al desarrollar la sumatoria:

k +1

i = 1
i =1
+ 2
+
3 + ... +
k + (k + 1)
k

i
i =1

k (Los primeros k trminos de la suma se expresan


= i + (k + 1) en notacin sigma, dejando al (k+1)-simo trmino
i =1
libre)
(Se introdujo la hiptesis de induccin, que
k

=
k (k + 1)
+ (k + 1)
asumimos es verdadera, al sustituir a i
i =1
por
2
k (k + 1)
)
2
k (k + 1) + 2(k + 1)
=
2
(k + 1)([k + 1] + 1)
= (Se ha obtenido el miembro de la derecha en (i))
2

Conclusin:
Se ha probado que la frmula es vlida para n = 1.
Se ha demostrado que cuando se asume que la frmula es vlida para n = k es tambin
vlida para n = k + 1.
Por lo tanto, y por el Principio de Induccin Matemtica, la frmula es vlida para todo
n {1, 2,3, 4,...} .

Ejemplo:

Teorema 4.2: 2n > 2n , n {3, 4, 5, 6, }

Demostracin:

Parte 1: Verificacin de la validez del caso base cuando n = 3.

23 > 2(3) 8 > 6

La desigualdad es vlida cuando n = 3.

136
Captulo 4. Sucesiones, Series e Induccin Matemtica

Parte 2:

Establecimiento de la Hiptesis de Induccin. Se asume que la desigualdad es vlida


cuando n = k:

2 k > 2k

Por verificar que la desigualdad es vlida cuando n = k + 1:

2k +1 > 2(k + 1) (ii)

Parte 3:

Ambos miembros de 2k > 2k (la Hiptesis de Induccin) se multiplican por 2:

2 k > 2k
2 2 k > 2 2k
k +1
2N > 4Nk
a b

El trmino a ya es igual al primer trmino de (ii). El segundo miembro de (ii), 2(k+1) ahora
referenciado como el trmino c, es evaluado contra el trmino 4k (b) de la siguiente
manera:

4Nk > 2( k + 1)
b


Se verifica cuando se cumple que b > c :

4k > 2(k + 1)
2k > 2
k >1

Es decir, la desigualdad 4k > 2(k+1) se cumple para todo entero k mayor a 1. Por
propiedades de los nmeros reales se tiene que si a > b y b > c entonces se concluye que
a > c . Precisamente se aplicar este razonamiento de la siguiente manera:

k +1 k +1
2N > 4Nk 4Nk > 2(k + 1) 2N > 2( k + 1)
a b
b 
a 

c c

El consecuente de la condicional es precisamente la desigualdad en (ii).

137
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Conclusin:

La desigualdad es vlida cuando n = 3.


Se ha demostrado que cuando se asume que la desigualdad es vlida para n = k es
tambin vlida para n = k + 1.
Por el Principio de Induccin Matemtica, la desigualdad 2n > 2n es vlida para todo
n {3, 4, 5, 6, }.

Ejemplo:

Teorema 4.3: 2n + n3 es divisible por 3, n {1, 2, 3, 4, }

Demostracin:

Parte 1: Verificacin del caso base cuando n = 1

2(1) + (1)3 = 2 + 1 = 3 es divisible por 3

Parte 2: Hiptesis de induccin con n = k

2k + k 3 es divisible por 3.

Un consecuencia de aceptar como verdadera a la Hiptesis de Induccin es el garantizar


2k + k 3
que existe entonces un entero m = . Haremos uso del entero m posteriormente.
3

Se procede a demostrar que 2n + n3 es divisible por 3 cuando n = k + 1, es decir, se debe


verificar la validez de la proposicin:

2(k+1) + (k+1)3 es divisible por 3.

138
Captulo 4. Sucesiones, Series e Induccin Matemtica

Parte 3:
2(k+1) + (k+1)3 = 2k + 2 + (k3 + 3k2 + 3k + 1)
= k3 + 2k + 3k2 + 3k + 3
= (k3 + 2k) + 3(k2 + k + 1)

(k2 + k + 1) es un nmero entero, ya que k es un entero, y dado que se multiplica por 3 es


obvio que 3(k2 + k + 1) es divisible por 3. Ahora, ambos miembros de la igualdad se
dividen por 3:

2(k + 1) + (k + 1) 3 k 3 + 2k 3(k 2 + k + 1)
= +
3 
3
3
m

= m + (k2 + k + 1)

Ntese que la expresin m + (k2 + k + 1) es un nmero entero y adems divisible por 3.


Dado que se tiene una igualdad, la conclusin a la que se lleg en el lado derecho aplica
tambin al lado izquierdo. Por lo tanto se tiene que efectivamente 2(k+1) + (k+1)3 es
divisible por 3.

Conclusin:
2n + n 3 es divisible por 3 para todo n {1, 2, 3, 4, }.

Ejemplo:

n
x n +1 1
Teorema 4.4: x = i
, x \ \{1}
i =0 x 1

Demostracin:

Supondremos en todo momento que x es un nmero real constante diferente de 1.

Parte 1: Verificacin de la validez del caso base con n = 0.

0
x 0+1 1 x 1
xi = x 0 = 1 =
i =0 x 1
=
x 1

139
Una Introduccin a las Matemticas Discretas y Teora de Grafos

En consecuencia la frmula efectivamente es vlida cuando n = 0.

Parte 2: Se supone que la frmula es efectivamente vlida cuando n = k, donde k es


cualquier entero positivo:

k
x k +1 1
xi =
i =0 x 1
Hiptesis de induccin

Con base en la suposicin anterior, debido a que se ha asumido que la frmula se cumple
para n = k, se desea verificar que la frmula es tambin vlida cuando n = k + 1, es decir, se
desea demostrar que:

k +1
x ( k +1) +1 1
xi =
i =0 x 1
(i)

Parte 3: Partiremos del lado izquierdo de la expresin anterior al desarrollar la sumatoria:

k +1

x
i =0
i
= 
x 0 + x1
+ x k + x k +1
x 2 + ... +

xi
i =0

k (Los primeros k trminos de la suma se expresan


= x i + x k +1 en notacin sigma, dejando al (k+1)-simo
i =0
trmino libre)
(Se introdujo la hiptesis de induccin, que
k

=
x k +1 1 k +1
+x
asumimos es verdadera, al sustituir a x
i =0
i
por
x 1
x k +1 1
)
x 1
x k +1 1 + ( x 1) x k +1
=
x 1
x 1 + x ( k +1)+1 x k +1
k +1
=
x 1
( k +1) +1
x 1
= (Se ha obtenido el miembro de la derecha en (i))
x 1

Conclusin:
Se ha probado que la frmula es vlida para n = 0.
Se ha demostrado que cuando se asume que la frmula es vlida para n = k es tambin
vlida para n = k + 1.
Por lo tanto, y por el Principio de Induccin Matemtica, la frmula es vlida para todo
n {0,1, 2,3, 4,...} .

140
Captulo 4. Sucesiones, Series e Induccin Matemtica

4.4 Teorema del Binomio


Si n ] + la Funcin Factorial, denotada por n!, est definida por:

n! = n(n-1)(n-2)...21
O bien:
n! = n(n-1)!
Se define tambin que 0! = 1.

n
Si n, r ] + tales que r n , entonces el Coeficiente Binomial est definido
r
por:
n n(n 1)(n 2) ... (n r + 1)
=
r r!

Adems, se establece que:


n n
= 1 y = 1
0 n

Por ejemplo:
7 7 6 5
= = 35
3 3 2 1

Teorema 4.5: Si n ] + y r es un entero no negativo tal que r n , entonces:


n n!
=
r r!(n r )!

Demostracin:

Por la definicin original de coeficiente binomial se tiene:

n n(n 1)(n 2) ... (n r + 1)


=
r r!
(n r )!
Al multiplicar al lado derecho de la ecuacin por = 1 se tendr:
(n r )!
n = n(n 1)(n 2) ... (n r + 1) (n r )!
(iii)
r r! (n r )!
n!
= (iv)
r !(n r )!

141
Una Introduccin a las Matemticas Discretas y Teora de Grafos

La reduccin del numerador en (iii) a n! en (iv) se puede justificar intuitivamente


con el siguiente ejemplo: Sea n = 10, r = 4 y (n-r) = 6, entonces el numerador en (iii)
quedar como:

(10(10-1)(10-2)(10-3)) (10-4)! = (10(9)(8)(7)) (6(5)(4)(3)(2)(1)) = 10!

Ejemplos:

7 7!
a) = = 35
3 3!4!

8 8!
b) = =1
0 0!8!

8 8!
c) = =1
8 8!0!

La expansin de la potencia de un binomio es un polinomio que se denomina


Desarrollo Binomial.

Ejemplos:

(a+b)0 = 1
(a+b)1 = a + b
(a+b)2 = a2 + 2ab + b2
(a+b)3 = a3 + 3a2b + 3ab2 + b3
(a+b)4 = a4 + 4a3b + 6a2b2 + 4ab3 + b4

Los coeficientes de los trminos de los desarrollos binomiales (a+b)n forman una
estructura que se conoce como el Tringulo de Pascal:

Coeficientes del desarrollo binomial


0
(a+b) 1
(a+b)1 1 1
(a+b)2 1 2 1
(a+b)3 1 3 3 1
(a+b)4 1 4 6 4 1
(a+b)5 1 5 10 10 5 1
(a+b)6 1 6 15 20 15 6 1

142
Captulo 4. Sucesiones, Series e Induccin Matemtica

O de manera equivalente:

Coeficientes del desarrollo binomial


0
(a+b)0
0
1 1
(a+b)1
0 1
2 2 2
(a+b)2
0 1 2
3 3 3 3
(a+b)3
0 1 2 3
4 4 4 4 4
(a+b)4
0 1 2 3 4
5 5 5 5 5 5
(a+b)5
0 1 2 3 4 5
6 6 6 6 6 6 6
(a+b)6
0 1 2 3 4 5 6

Propiedades del desarrollo binomial (a+b)n:

El desarrollo se forma por n+1 trminos.


La suma de los exponentes de a y b en cualquier trmino es n.
El exponente de a disminuye en 1 de un trmino al siguiente.
El exponente de b aumenta en 1 de un trmino al siguiente.
El primer trmino en el desarrollo es:
n
a n = a nb0
0
El segundo trmino en el desarrollo es:
n
na n 1b = a n 1b1
1
El tercer trmino ser:
n n2 2
a b
2
El cuarto trmino ser:
n n 3 3
a b
3
El quinto trmino ser:
n n4 4
a b
4

143
Una Introduccin a las Matemticas Discretas y Teora de Grafos

El trmino que contiene a br ser:


n nr r
a b
r
El ltimo trmino ser:
n
b n = a 0b n
n

Ejemplo:
Encontrar el desarrollo de (a+b)6. De acuerdo a los puntos anteriores se tendr:

6 6 0 6 5 1 6 4 2 6 3 3 6 2 4 6 1 5 6 0 6
(a+b)6 = a b + a b + a b + a b + a b + a b + a b
0 1 2 3 4 5 6
= a + 6a b + 15a b + 20a b + 15a b + 6a b + b6
6 5 1 4 2 3 3 2 4 1 5

Teorema 4.6: Teorema del Binomio. Si n es un entero no negativo y a, b \ , entonces:


n n n n n 1 n n
(a + b) n = a n + a n 1b + ... + a n r b r + ... + ab + b
0 1 r n 1 n
O usando notacin sigma:
n
n
(a + b) n = a n r b r
r =0 r

Ejemplos:

a) Aplicando el Teorema del Binomio, desarrollar (2x2 + 3y)5


Entonces: n = 5, a = 2x2, b = 3y.

5
5
(2 x 2 + 3 y )5 = (2 x 2 )5 r (3 y ) r
r =0 r

5 5 5 5
= (2 x 2 )5 (3 y )0 + (2 x 2 ) 4 (3 y )1 + (2 x 2 )3 (3 y ) 2 + (2 x 2 ) 2 (3 y )3
0 1 2 3
5 5
+ (2 x 2 )1 (3 y ) 4 + (2 x 2 )0 (3 y )5
4 5

4
1
b) Aplicando el Teorema del Binomio, encontrar el desarrollo de t 3 2
t
1
Entonces: n = 4, a = t 3 , b = 2 .
t

144
Captulo 4. Sucesiones, Series e Induccin Matemtica

4
(t)
4 r
3 1 4 4 r
1


t 2
=
t r =0 r
3
2
t
4
( ) 1 4
( ) 1 4
( )
0 1 2
4 3 2
1
= t3 2 + 1
t3 2 + 2
t3 2
0 t t t
4
(t) 1 4
(t)
3 4
1 0
1
+ 3
2 + 4
3
2
3 t t

Antes de demostrar el Teorema del Binomio se verificar la validez del siguiente:

Teorema 4.7:
n n n + 1
+ =
r r 1 r

Demostracin:

n n n! n! (Por definicin de
+ = +
r r 1 r !(n r )! (r 1)!(n (r 1))! Coeficiente Binomial)
n! n!
= +
r !(n r )! (r 1)!(n r + 1)!
n! n! (Al extraer el primer factor
= +
r (r 1)!(n r )! (r 1)!(n r + 1)(n r )! de r! y (n r + 1)!)
n! 1 1
= +
(r 1)!(n r )! r n r + 1

n! n +1
(r 1)!(n r )! r (n r + 1)
=

(n + 1)!
= ((n + 1)n! = (n + 1)!)
r (n r + 1)(r 1)!(n r )!
(n + 1)!
= (r(r - 1)! = r!)
((n + 1) r )r !(n r )!
(n + 1)! ((n+1)-r)(n-r)! =
=
r !((n + 1) r )! ((n+1)r)!)
n + 1 (Por definicin de
= Coeficiente Binomial)
r

145
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Teorema del Binomio:

Si n es un entero no negativo y a, b \ , entonces:

n n n n n 1 n n
(a + b) n = a n + a n 1b + ... + a n r b r + ... + ab + b
0 1 r n 1 n

O usando notacin sigma:

n
n
(a + b) n = a n r b r
r =0 r

Demostracin:

Se proceder a probar el enunciado mediante el Principio de Induccin Matemtica.

Caso Base con n = 0:

0
0 0
r a 0 r
b r = a 0b 0 = 1 = ( a + b) 0
r =0 0

Hiptesis de Induccin con n = k:

k
k
r a k r
b r = ( a + b) k
r =0

Paso Inductivo con n = k + 1. Por demostrar que efectivamente:

k +1
k + 1 ( k +1) r r

r =0 r
a b = (a + b) k +1

Al expander la sumatoria del lado izquierdo y simplificando los exponentes se tiene:

k +1
k + 1 ( k +1) r r k + 1 k +1 k + 1 k k + 1 k 1 2

r =0 r
a b = a + a b + a b + ...
0 1 2
k + 1 2 k 1 k + 1 k k + 1 k +1
+ a b + ab + b
k 1 k k + 1

Ahora se aplicar el Teorema 4.7 a todos los trminos excepto al primero y ltimo:

146
Captulo 4. Sucesiones, Series e Induccin Matemtica

k + 1 k +1 k k k k k k 1 2
= a + + a b + + a b + ...
0 1 0 2 1
k k 2 k 1 k k k k + 1 k +1
+ + a b + + ab + b
k 1 k 2 k k 1 k + 1

k + 1 k +1 k k k k k k 1 2 k k 1 2
= a + a b + a b + a b + a b + ...
0 1 0 2 1
k 2 k 1 k 2 k 1 k k k k k + 1 k +1
+ a b + a b + ab + ab + b
k 1 k 2 k k 1 k + 1

Los trminos se distribuyen de manera que se forman dos series:

k + 1 k +1 k k k k 1 2 k 2 k 1 k k
= a + a b + a b + ... + a b + ab
0 1 2

k 1 k
Serie 1

k k k 2 k 1 k k k + 1 k +1
+ a k b + a k 1b 2 + ... + a b + ab + b
0
 1 k 2 k 1 k + 1

Serie 2

Las series se representan usando notacin Sigma:


k + 1 k +1 k k k +1 r r k 1 k k r r +1 k + 1 k +1
= a + a b + a b + b
0 r =1 r r =0 r k + 1

k
k k +1 r r k
k k r r k r r +1
k 1 k
k r r
k 1 k
Ntese que N a
r =1 r aa k r
b = a
r =1 r
a b y
r =0 r
a b
N = b a b . Por lo
r =0 r
bb r
tanto se tiene:
k + 1 k k k k r r k 1 k k r r k + 1 k
= a a + a b + b a b + b
0 r =1 r r =0 r k + 1

k + 1 k k + 1 k k + 1 k
Es claro que = =1 y = = 1 . Por lo tanto los trminos a y
0 0 k + 1 k 0
k + 1 k
b se reescriben:
k + 1
k k
k k 1 k k
= a a k + a k r b r + b a k r b r + b k
0 r =1 r r =0 r k

147
Una Introduccin a las Matemticas Discretas y Teora de Grafos

La primer sumatoria tiene como ndice inferior r = 1 mientras que la segunda tiene como
k k
lmite superior r = k 1. Al introducir los trminos a k y b k en sus
0 k
correspondientes sumatorias se tienen ndices inferior y superior r = 0 y r = k
respectivamente:
k k k k
= a a k r br + b a k r b r
r =0 r r =0 r
Cada sumatoria corresponde al desarrollo binomial (a + b)k. Se introduce la Hiptesis de
Induccin:
= a ( a + b) k + b ( a + b) k
= ( a + b)(a + b) k
= ( a + b) k +1
Por lo tanto, por el Principio de Induccin Matemtica, el enunciado
n
n
(a + b) n = a n r b r es vlido para todo entero n no negativo.
r =0 r

Finalizaremos este captulo estableciendo un par de conceptos. Sea C un conjunto.


Se dice que una Permutacin de C es un ordenamiento particular de los elementos en C.
Por ejemplo, sea C = {a, b, c, d, e}. Entonces una permutacin de C sera (b, d, a, c, e).
Otra posible permutacin est dada por (e, d, c, b, a). Una cuestin importante es que el
nmero de permutaciones posibles para un conjunto formado por n elementos est dado por
n!. En nuestro ejemplo anterior contamos con 5 elementos, por lo tanto se tendr en total
5! = 120 posibles permutaciones del conjunto C = {a, b, c, d, e}.

Sea C un conjunto. Se dice que una Combinacin de C es un subconjunto de C


formado por r elementos diferentes. Retomando nuestro ejemplo C = {a, b, c, d, e} tenemos
que los subconjuntos {a, b, c, d}, {a, c, e}, {b, d} y {c} son combinaciones de C. De hecho,
tanto y C = {a, b, c, d, e} son combinaciones del conjunto C. De aqu surge una
conexin con nuestros coeficientes binomiales. El nmero total de combinaciones de r
elementos tomados de un conjunto de n elementos est dado por:

n n!
=
r r!(n r )!

Dado que n = 5 para C = {a, b, c, d, e} tenemos que, por ejemplo, el nmero de


combinaciones de r = 3 elementos tomados de C est dado por:

5 5! 120 120
= = = = 10
3 3!(5 3)! 3!2! 12

148
Una Introduccin a las Matemticas Discretas y Teora de Grafos

5. Grafos:
Conceptos Bsicos
Una Introduccin a las Matemticas Discretas y Teora de Grafos

150
Captulo 5. Grafos: Conceptos Bsicos

5.1 Definiciones
Un Grafo Dirigido G consiste de dos conjuntos:
V(G): un conjunto finito no vaco cuyos elementos son llamados Vrtices de G.
E(G): un conjunto de pares ordenados de vrtices llamados Aristas de G. Es decir,
E(G) V(G) V(G), donde el operador denota al Producto Cartesiano de Conjuntos.
Ntese que por la definicin se tiene que la arista (u, v) no es equivalente a la arista (v, u),
i.e. (u, v) (v, u). Es decir, el orden en que son listados los vrtices indica la Direccin de
la arista.

Los grafos dirigidos son representados por diagramas en el plano de manera natural.
Especficamente, cada vrtice v en V(G) es representado por un crculo y cada arista
(v1, v2) E(G) es representada por una curva dirigida la cual sale del vrtice v1 y llega al
vrtice v2, tal que v1, v2 estn en V(G). Por ejemplo, en la Figura 5.1 se presenta un grafo
dirigido G para el cual:
V(G) consiste de los vrtices A, B, C, D, es decir, V(G) = {A, B, C, D}.
E(G) consiste de las aristas (A, B), (B, C), (C, D), (A, C) y (B, D). Formalmente,
E(G) = {(A, B), (B, C), (C, D), (A, C), (B, D)}.

A D

B C

Figura 5.1. Ejemplo de un Grafo Dirigido.

Por la definicin de producto cartesiano es posible que un grafo dirigido cuente con
aristas de la forma (v, v). Este tipo de aristas son llamadas Lazos. Tambin, en un momento
dado, puede hacerse admisible la presencia de aristas repetidas tambin conocidas como
Aristas Mltiples o Aristas Paralelas. Un grafo dirigido que admite aristas mltiples es
llamado Multigrafo. Ntese que de hecho todo grafo dirigido es un caso especial de
multigrafo sin aristas mltiples. Por ejemplo, en la Figura 5.2 se presenta un multigrafo que
tambin cuenta con dos lazos.

A D

B C

Figura 5.2. Ejemplo de un Multigrafo: se tiene un par de aristas mltiples (B, C).
Los vrtices B y D cuentan con lazos.

151
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Un grafo dirigido G libre de lazos es llamado Grafo Dirigido Simple. Un grafo G


para el cual se tiene que las aristas (u, v) y (v, u) son equivalentes, i.e. (u, v) = (v, u), es
llamado Grafo No Dirigido. Ello implica que, en este tipo de grafos, es vlido moverse del
vrtice u al vrtice v as como del vrtice v al vrtice u pasado por la arista (u, v). O en otras
palabras, la arista (u, v) se asume como Bidireccional. Los grafos no dirigidos, cuando son
representados en el plano, se dibujan de manera que ahora sus aristas se representan con
curvas en donde no hay una direccin especificada. Un grafo no dirigido libre de lazos es
llamado Grafo Simple. En la Figura 5.3 se presenta un ejemplo de grafo simple. La
descripcin formal del grafo requiere que se cite textualmente que es simple ya que sus
conjuntos de vrtices y aristas se especifican tal y como se indic anteriormente:
V(G) = {A, B, C, D}
E(G) = {(A, D), (A, C), (A, B), (B, C), (B, D), (C, D)}
Ntese que cada arista es incluida una sola vez en el conjunto E(G) no importando el orden
en que se listen sus vrtices.

A D

B C

Figura 5.3. Ejemplo de grafo simple.

A partir de este punto, slo usaremos el trmino Grafo para denotar a un


Grafo Simple. Adems, cuando usemos el trmino Grafo Dirigido estamos haciendo
referencia a un Grafo Dirigido Simple.

Sea G un grafo. Los vrtices u, v V(G) se denominan Adyacentes si existe una


arista e E(G) tal que e = (u, v). En tal caso, u y v son llamados Puntos Finales o
Extremos de e, y adems se dice que e Conecta a u y v. Adems, la arista e se dice que es
Incidente a cada uno de sus puntos finales u y v.

Sea X un conjunto. La Cardinalidad del Conjunto X, denotada por Card(X), es el


nmero de elementos que conforman a X. Si X es el conjunto vaco entonces Card(X) = 0.
Si X es finito entonces Card(X) ] + {0} , es decir, la cardinalidad de X es un nmero
entero no negativo. Si X es un conjunto infinito entonces se dice que Card(X) = .

El Grado de un Vrtice v en un grafo G, denotado como deg(v), es igual al nmero


de aristas en G que contienen a v, es decir, aquellas que son incidentes a v. Debido a que
cada arista es contada dos veces al determinar los grados de los vrtices de un grafo G, se
tiene el siguiente

152
Captulo 5. Grafos: Conceptos Bsicos

Teorema 5.1: La suma de los grados de los vrtices de un grafo G es igual a dos veces el
nmero de aristas en G. Es decir:


uV ( G )
deg (u ) = 2 Card ( E (G ))

Considrese nuevamente el grafo G de la Figura 5.3. Para tal grafo se tiene que:

deg(A) = 3 deg(B) = 3 deg(C) = 3 deg(D) = 3

La suma de los grados es igual a 12. Tal resultado es dos veces el nmero de aristas en el
grafo. Se dice que un vrtice es Par o Impar de acuerdo a si su grado es un nmero par o
impar, respectivamente. Por lo tanto, en el ejemplo de la Figura 5.3 todos sus vrtices son
de grafo impar.

El siguiente Teorema es importante ya que establece formalmente una propiedad


fundamental de todo grafo.

Teorema 5.2: El nmero de vrtices de grado impar en un grafo G es siempre par.

Demostracin:

Por el Teorema 5.1 tenemos que el nmero de aristas en G est dado por:

2 Card ( E (G )) =
uV ( G )
deg (u )

Ello implica claramente que la suma de los grados de los vrtices de G, es


decir, deg (u ) , es un nmero par. El conjunto de vrtices de G puede ser particionado
uV ( G )

en dos subconjuntos:
Vodd(G): Los vrtices de G de grado impar.
Veven(G): Los vrtices de G de grado par.
Claramente Vodd(G) y Veven(G) son conjuntos disjuntos, es decir, Veven(G) Vodd(G) = . La
suma deg (u ) ahora puede ser reescrita como:
uV ( G )


uV ( G )
deg (u ) =
uVodd ( G )
deg (u ) +
uVeven ( G )
deg (u )

153
Una Introduccin a las Matemticas Discretas y Teora de Grafos

La suma de los vrtices de grado par, es decir


uVeven ( G )
deg (u ) , es un nmero par ya que es

bien sabido que una suma de nmeros pares es siempre par. Ello quiere decir que
forzosamente la suma de los vrtices de grado impar, deg(u ) , tiene que ser tambin
uVodd ( G )

un nmero par. Si fuese lo contrario tendramos entonces que la suma de los grados de
todos los vrtices de G es impar, pero ello contradice al Teorema 5.1.

Ahora consideremos nicamente a la suma


uVodd ( G )
deg (u ) la cual sabemos es un nmero

par. Los trminos de esta suma son los grados de los vrtices impares. Eso quiere decir que
tenemos una suma cuyos trminos son todos nmeros impares. Para que esta suma de
nmeros impares proporcione como resultado un nmero par se requiere que
Card (vodd (G )) sea un nmero par. Ello implica finalmente que el nmero de vrtices de
grado impar en cualquier grafo G es par.

Un vrtice de grado cero es llamado un Vrtice Aislado. Un grafo formado por un


nico vrtice, y por tanto sin aristas, es llamado Grafo Trivial.

Sea G un grafo. Consideremos las siguientes Definiciones:


Grado Mnimo de G, (G):
(G ) = min{deg (v) : v V (G )}
Es decir, del conjunto formado por los grados de los vrtices de G, se elige el valor
mnimo.
Grafo Mximo de G, (G):
(G ) = max{deg (v) : v V (G )}
Es decir, del conjunto formado por los grados de los vrtices de G, se elige el valor
mximo.
Grado Promedio de G, d(G):

1
d (G ) = deg (v)
Card (V (G )) vV (G )

La siguiente Propiedad debe ser evidente: Para cualquier grafo G se tiene que

(G ) d (G ) (G )

Sea G un grafo. Al Radio Nmero de Aristas por Vrtice, denotado por (G), se
le define como:

Card ( E (G ))
(G ) =
Card (V (G ))

154
Captulo 5. Grafos: Conceptos Bsicos

Demostremos ahora el siguiente

Teorema 5.3: Sea G un grafo. Entonces

1
Card ( E (G )) = d (G ) Card (V (G ))
2

Demostracin:

Del Teorema 5.1 sabemos que


2 Card ( E (G )) =
uV ( G )
deg (u )

De donde obviamente se desprende que


1
Card ( E (G )) = deg (u )
2 uV ( G )

Card (V (G ))
Ahora bien, multipliquemos el lado derecho de la expresin anterior por 1 = ,
Card (V (G ))
entonces se tiene:
1 Card (V (G ))
Card ( E (G )) = deg (u )
2 Card (V (G )) uV (G )

Aplicando la Definicin de Grado Promedio de G obtenemos la demostracin del Teorema.


1
Card ( E (G )) = Card (V (G )) d (G )
2

Corolario 5.1: Sea G un grafo. Entonces:


1
(G ) = d (G )
2

Demostracin:

Por definicin de Radio Nmero de Aristas por Vrtice tenemos que:

Card ( E (G ))
(G ) =
Card (V (G ))

155
Una Introduccin a las Matemticas Discretas y Teora de Grafos

1
Sabemos por el Teorema 5.3 que Card ( E (G )) = Card (V (G )) d (G ) . Por lo tanto al
2
sustituir en (G ) obtenemos finalmente:

1 Card (V (G )) d (G )
(G ) =
2 Card (V (G ))
1
= d (G )
2

Considrese un grafo G con sus conjuntos V(G) y E(G). Un grafo H con sus
conjuntos V(H) y E(H) es llamado un Subgrafo de G si los vrtices y aristas de H estn
contenidas en los conjuntos de vrtices y aristas de G, es decir, si V ( H ) V (G ) y
E ( H ) E (G) . Consideremos algunos subgrafos especiales:

Sea U un conjunto de vrtices tal que U V(G). G[U] denota al subgrafo de G cuyas
aristas son aristas de G y sus vrtices estn en U. A G[U] se le llama el Subgrafo
Inducido por el Conjunto de Vrtices U. Por ejemplo, considrense los grafos de la
Figura 5.4 donde el grafo H es de hecho el subgrafo de G inducido por conjunto de
vrtices {B, C, X, Y}, es decir H = G[{B, C, X, Y}].

Si v es un vrtice en G, entonces G \ v es el subgrafo de G obtenido al eliminar a v de G


y al eliminar a todas las aristas en G que contienen a v:
o V(G \ v) = V(G) \ {v}
o E(G \ v) = E(G) \ {(u, v): u V(G)}

Si e es una arista en G, entonces G \ e es el subgrafo de G obtenido al eliminar la arista


e de G:
o V(G \ e) = V(G)
o E(G \ e) = E(G) \ {e}

A B C B C

X Y Z X Y

G H
V(G) = {A, B, C, X, Y, Z} V(H) = {B, C, X, Y}
E(G) = {(A,X), (A,Z), (B,X), (B,Y), (C,Y), (X,Y)} E(H) = {(B,X), (B,Y), (C,Y), (X,Y)}

Figura 5.4. Dos grafos G y H. H es el subgrafo G[{B, C, X, Y}]:


Toda arista (u, v) de H es una arista de G pero adems u, v V(H).

156
Captulo 5. Grafos: Conceptos Bsicos

Se dice que los grafos G y G* son Isomorfos si existe una funcin biyectiva
f: V(G) V(G*) tal que (u, v) es una arista de G si y slo si (f(u), f(v)) es una arista de G*.
En otras palabras, se pueden reetiquetar los vrtices de G para ser vrtices de G*,
manteniendo las aristas correspondientes en G y G*. Por ejemplo, sean G y G* los grafos
de la Figura 5.5. Considrese la siguiente funcin biyectiva f:V(G) V(G*):

u si n = 1
v si n = 2

w si n = 3
f ( n) =
x si n = 4
y si n = 5

z si n = 6

1 2

u v w x y z
6 3

5 4
G G*
V(G) = {1, 2, 3, 4, 5, 6} V(G*) = {u, v, w, x, y, z}
E(G) = {(1,2),(1,3),(1,5), (2,4),(2,5),(2,6), E(G*) = {(u,v), (u,w), (u,y), (v,y), (v,x), (v,z),
(3,6),(3,4),(4,6)} (w,x), (w,z), (x,z)}

Figura 5.5. Los Grafos G y G* se caracterizan como Isomorfos (vase el texto para detalles).

Veamos si toda arista de G es una arista de G* despus de aplicarle la funcin f:


La arista (1, 2) pertenece a E(G) y (f(1), f(2)) = (u, v) tambin pertenece a E(G*).
La arista (1, 3) pertenece a E(G) y (f(1), f(3)) = (u, w) tambin pertenece a E(G*).
La arista (1, 5) pertenece a E(G) y (f(1), f(5)) = (u, y) tambin pertenece a E(G*).
La arista (2, 4) pertenece a E(G) y (f(2), f(4)) = (v, x) tambin pertenece a E(G*).
La arista (2, 5) pertenece a E(G) y (f(2), f(5)) = (v, y) tambin pertenece a E(G*).
La arista (2, 6) pertenece a E(G) y (f(2), f(6)) = (v, z) tambin pertenece a E(G*).
La arista (3, 6) pertenece a E(G) y (f(3), f(6)) = (w, z) tambin pertenece a E(G*).
La arista (3, 4) pertenece a E(G) y (f(3), f(4)) = (w, x) tambin pertenece a E(G*).
La arista (4, 6) pertenece a E(G) y (f(4), f(6)) = (x, z) tambin pertenece a E(G*).
Hasta este punto hemos probado que si e es una arista de G entonces es tambin un arista de
G*. Ahora debemos demostrar el recproco usando la inversa de la funcin f, es decir f -1:
La arista (u, v) pertenece a E(G*) y (f -1(u), f -1(v)) = (1, 2) tambin pertenece a E(G).
La arista (u, w) pertenece a E(G*) y (f -1(u), f -1(w)) = (1, 3) tambin pertenece a E(G).
La arista (u, y) pertenece a E(G*) y (f -1(u), f -1(y)) = (1, 5) tambin pertenece a E(G).
La arista (v, x) pertenece a E(G*) y (f -1(v), f -1(x)) = (2, 4) tambin pertenece a E(G).
La arista (v, y) pertenece a E(G*) y (f -1(v), f -1(y)) = (2, 5) tambin pertenece a E(G).
La arista (v, z) pertenece a E(G*) y (f -1(v), f -1(z)) = (2, 6) tambin pertenece a E(G).

157
Una Introduccin a las Matemticas Discretas y Teora de Grafos

La arista (w, z) pertenece a E(G*) y (f -1(w), f -1(z)) = (3, 6) tambin pertenece a E(G).
La arista (w, x) pertenece a E(G*) y (f -1(w), f -1(x)) = (3, 4) tambin pertenece a E(G).
La arista (x, z) pertenece a E(G*) y (f -1(x), f -1(z)) = (4, 6) tambin pertenece a E(G).
Hemos demostrado que (u, v) es una arista de E(G) si y slo si (f(u), f(v)) es una arista de
G*. Por lo tanto G y G*, de la Figura 5.5, son isomorfos.

Los grafos de la Figura 5.6 no pueden ser caracterizados como isomorfos: Aunque
G y G* ambos tienen 5 vrtices y 7 aristas, el grafo G tiene un vrtice de grado 4 mientras
que el grafo G* no lo tiene. En general, dos grafos no son isomorfos si no cuentan con el
mismo nmero de vrtices y aristas. Si efectivamente cuentan con el mismo nmero de
vrtices y aristas tampoco se garantiza que sean isomorfos, en ese sentido, verificar la
correspondencia entre grados puede ser de utilidad. Pero an si coincidieran en
los grados de sus vrtices, ello no implica que sean isomorfos: la nica forma de probarlo
es afirmar o refutar la existencia de la funcin biyectiva f:V(G) V(G*). Sea
n = Card(V(G)) = Card(V(G*)). Entonces, de acuerdo a lo anterior, se tendran que
examinar a lo ms n! posibles funciones.

1 2

5 u v w x y

4 3

G G*
V(G) = {1, 2, 3, 4, 5} V(G*) = {u, v, w, x, y}
E(G) = {(1,2), (1,3), (1,4), (1,5), E(G*) = {(u,v), (u,w), (v,x), (v,y),
(2,3), (2,4), (4,5)} (w,y), (w,x), (x,y)}

Figura 5.6. Los grafos G y G* no son isomorfos (vase el texto para detalles).

Dado un grafo G se define al Complemento de G, denotado como G , en donde


E (G ) = {(u, v) : u, v V (G ) u v (u, v) E (G )} . Es decir, G es el grafo que contiene
exactamente a aquellas aristas que no estn en G. Un procedimiento para determinar al
complemento de un grafo consiste en la generacin de todas las posibles combinaciones de
dos vrtices, eliminar aquellas combinaciones incluidas en E(G) y de las restantes se
formar el nuevo conjunto E (G ) . En la Figura 5.7 se muestra un par de grafos G y G .

u v u v

z w z w

y x y x

G G

Figura 5.7. Un grafo G y su complemento, G .

158
Captulo 5. Grafos: Conceptos Bsicos

Considrense dos grafos G y H. El Producto Cartesiano de G y H, denotado por


G H, es un grafo cuyo conjunto de vrtices est dado por V(G H) = V(G) V(H). El
conjunto de aristas se define de la siguiente manera: Un par de vrtices de G H, (u, u) y
(v, v), formarn una arista si y slo si una de las siguientes dos condiciones se satisface:
u = v y (u, v) E(H), o bien,
u = v y (u, v) E(G).
Por ejemplo, sean los grafos G y H presentados en la Figura 5.8.a y 5.8.b respectivamente.
Entonces, su correspondiente producto Cartesiano est dado por el grafo que se presenta en
la Figura 5.8.c.

1 2 2 3

4
H
a) b)

(1,1) (1,2)

(1,3) (1,4)

(2,1) (2,2)

(2,3) (2,4)

GH
c)
Figura 5.8. a) Un grafo G de 2 vrtices. b) Un grafo H de 4 vrtices.
c) El grafo resultante del producto cartesiano de los grafos G y H.

159
Una Introduccin a las Matemticas Discretas y Teora de Grafos

5
1

6 7
2 3

4 8 9

a) G b) H

5
1

6 7
2 3

4 8 9

c) Join(G, H)
Figura 5.9. a) Un grafo G de 4 vrtices. b) Un grafo H de 5 vrtices.
c) El grafo resultante de la unin de los grafos G y H.

Considrense dos grafos G y H tales que V(G) V(H) = . La Unin de los


Grafos G y H, denotada por Join(G, H), es un grafo cuyo conjunto de vrtices est dado
por V(Join(G, H)) = V(G) V(H). El conjunto de aristas se define de la siguiente manera:
E(Join(G, H)) = E(G) E(H) {(u, v): u V(G), v V(H)}. Por ejemplo, sean los grafos
G y H presentados en la Figura 5.9.a y 5.9.b, respectivamente. Entonces
Join(G, H) est dado por el grafo presentado en la Figura 5.9.c.

5.2 Rutas, Circuitos y Conectividad


Una Ruta en un grafo G consiste de una secuencia alternante de vrtices y aristas de
la forma
(v0, e1, v1, e2, v2, ..., en-1, vn-1, en, vn)

En donde cada arista ei contiene los vrtices vi-1 y vi (los cuales aparecen antes y despus de
ei en la secuencia). Al nmero n de aristas se le denomina la Longitud de la Ruta. Por
simplicidad, se denota a una ruta slo por la secuencia de sus vrtices, asumiendo que
efectivamente existen las aristas que conectan a dos vrtices consecutivos dentro de la
misma:

(v0, v1, ..., vn-1, vn)

160
Captulo 5. Grafos: Conceptos Bsicos

Se dice que una ruta es Cerrada si v0 = vn. De lo contrario se dice que la ruta va de v0 a vn o
bien que la ruta conecta a v0 con vn. Una Ruta Simple es aquella en la cual todos sus
vrtices son distintos. Una ruta en la cual todas las aristas son distintas es llamada una Va
(trail). Un Circuito es una ruta cerrada de longitud mayor o igual 3 en la cual todos los
vrtices son distintos excepto v0 = vn. Por ejemplo, considrese el grafo de la Figura 5.10.
Sean las secuencias:
= ( P4 , P1 , P2 , P5 , P1 , P2 , P3 , P6 )
= ( P4 , P1 , P5 , P2 , P6 )
= ( P4 , P1 , P5 , P2 , P3 , P5 , P6 )
= ( P4 , P1 , P5 , P3 , P6 )

P1 P2 P3

P4 P5 P6

Figura 5.10. Un grafo conectado de 6 vrtices y 9 aristas.

La secuencia es una ruta que va de P4 a P6; sin embargo no es una va debido a


que la arista (P1, P2) es usada dos veces. La secuencia no es una ruta debido a que la
arista (P2, P6) no existe. La secuencia es una va debido a que ninguna de sus aristas es
usada en ms de una ocasin; pero no es una ruta simple debido a que el vrtice P5 es usado
en dos ocasiones. La secuencia es una ruta simple de P4 a P6; pero sta no es
necesariamente la ruta ms corta de P4 a P6 (respecto al nmero de aristas usadas). La ruta
ms corta de P4 a P6 es la ruta simple (P4, P5, P6) la cual tiene longitud 2.

Un grafo G es Conectado si existe una ruta entre cualesquiera dos de sus vrtices.
El grafo de la Figura 5.10 es conectado. El grafo de la Figura 5.11 no est conectado debido
a que, por ejemplo, no existe una ruta entre los vrtices D y E.

A B C

D E F

Figura 5.11. Un ejemplo de grafo no conectado.

161
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Sea G un grafo conectado. Un vrtice v en G es llamado un Punto de Corte


(cutpoint) si G \ v es un grafo desconectado (recurdese que G \ v es el subgrafo obtenido
de G al eliminar a v y a todas las aristas conteniendo v). Una arista e de G es llamada un
Puente si G \ e es un grafo desconectado (G \ e es el subgrafo obtenido de G al eliminar a
la arista e). Considrense los grafos a y b de la Figura 5.12. En el grafo a, el vrtice D es un
punto de corte y carece de puentes. En el grafo b la arista e = (D, F) es un puente, de hecho,
sus vrtices D y F son caracterizados como puntos de corte.

B E
B E

A D H A D F

C F C H
a b

Figura 5.12. El grafo a cuenta con un punto de corte mientras que el grafo b cuenta con un puente.

Se dice que un grafo G es Completo si para cualquier par de vrtices u, v en V(G),


u v, existe en E(G) la arista (u, v) que los conecta. Obviamente, un grafo completo G es
un grafo conectado. El grafo completo con n vrtices se denota como Kn. En la Figura 5.13
se presentan los grafos completos K1 a K6.

K1 K2 K3

K4 K5 K6

Figura 5.13. Los grafos completos de 1 a 6 vrtices.

Ntese, observando la Figura 5.13, que K1 tiene 0 aristas, K2 cuenta con 1 arista, K3
tiene 3 aristas, K4 cuenta con 6 aristas, K5 con 10 aristas y K6 tiene 15 aristas. Es decir,
tenemos la sucesin

0, 1, 3, 6, 10, 15

La idea es encontrar al elemento general de tal sucesin. Supngase que los n vrtices de Kn
se etiquetan de 1 a n. Considrese al vrtice 1. Dado que Kn es completo entonces existen
n-1 aristas de la forma (1, u), u V(G), u 1. Si los vrtices representaran personas que se
estn dando la mano entonces el vrtice 1 acaba de efectuar n-1 saludos. Supngase que los
saludos son bidireccionales, es decir, que x salude a y es equivalente a que y salude a x.

162
Captulo 5. Grafos: Conceptos Bsicos

Ahora bien, considrese al vrtice 2. El vrtice 1 y 2 ya se saludaron previamente cuando


contamos los saludos efectuados por el vrtice 1, entonces, al vrtice 2 slo le basta
efectuar n-2 saludos: un saludo con el vrtice 3, un saludo con el vrtice 4 y as
sucesivamente hasta que saluda al vrtice n. El vrtice 3 slo debe efectuar n-3 saludos ya
que previamente fue saludado por los vrtices 1 y 2. El vrtice 4 efecta n-4 saludos ya que
los vrtices 1, 2 y 3 lo saludaron antes. Este proceso contina hasta que llegamos al vrtice
n-2. A este vrtice slo le falta darse la mano con los vrtices n-1 y n, es decir, efecta slo
dos saludos. Al vrtice n-1 slo le resta 1 saludo el cual se efecta con el vrtice n. Ntese
que el vrtice n ya no debe darle la mano a nadie dado que ya fue saludado previamente por
los n-1 vrtices anteriores. Cuntos saludos se efectuaron en total entre los n vrtices? Para
ello tenemos la siguiente serie:

n 1
n(n 1)
(n-1) + (n-2) + (n-3) + (n-4) + + 2 + 1 + 0 = j=
j =0 2

Este conteo de saludos entre n elementos de un conjunto es lo que se conoce como el


Lema de los Saludos (Handshaking Lemma) y nos ha permitido identificar al elemento
general de la sucesin:

n(n 1)
0, 1, 3, 6, 10, 15, ,
2

Es decir, se tiene que el nmero de aristas en un grafo completo Kn est dado por:

n(n 1)
Card(E(Kn)) =
2

Ntese que de hecho el nmero de aristas en un grafo completo Kn representa una


cota superior para el nmero de aristas en cualquier otro grafo conectado de n vrtices.

El grafo completo Kn describe lo que en Geometra Euclidiana es conocido como un


Simplex (n-1)-Dimensional. Entonces, por ejemplo, K3 corresponde a un Simplex 2D (un
tringulo) mientras que K4 corresponde a un Simplex 3D (un tetraedro). Ahora bien, una
k-celda de Kn, 0 k < n, se define como un subgrafo de Kn el cual es completo con k+1
vrtices. Por ejemplo, considrese el grafo K4. Se puede observar, en la Figura 5.14, que K4
cuenta con cuatro 0-celdas, seis 1-celdas, cuatro 2-celdas y una 3-celda.

Figura 5.14. El grafo K4. Describe a un tetraedro en el Espacio Euclidiano 3D.

163
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Un grafo conectado G es Regular de Grado k si cada uno de sus vrtices tiene


grado k. En otras palabras, un grafo es regular si cada uno de sus vrtices tiene el mismo
grado. De hecho, todo grafo completo es regular, pero todo grafo regular no necesariamente
es completo. Los grafos regulares conectados de grados 0, 1 o 2 son fcilmente descritos. El
grafo conectado regular de grado 0 es el grafo trivial. El grafo conectado regular de grado 1
es el grafo con dos vrtices y una arista que los conecta. El grafo conectado regular de
grado 2 es el grafo que consiste de slo un circuito de longitud n. Tales grafos se presentan
en la Figura 5.15, donde tambin se pueden apreciar dos grafos regulares de grado 3 con 6
vrtices.

Regular de grado 0 Regular de grado 1

Regulares de grado 2

Regulares de grado 3 con 6 vrtices

Figura 5.15. Ejemplos de grafos regulares de grados 0 a 3.

Considrese el Producto Cartesiano

{0,1}n = {0,1} {0,1} ... {0,1}




tal que n 0. Un Grafo Hipercbico n-Dimensional, denotado por Hn, es un grafo cuyos
vrtices cuentan con etiquetas tomadas de {0, 1}n. Dos vrtices u = (x1, x2, , xi, , xn) y
v = (y1, y2, , yi, , yn) formarn una arista de Hn si y slo si la cardinalidad del conjunto
{i: xi yi, xi u, yi v} es exactamente 1. Ahora bien, una k-celda de Hn, 0 k n, se
define como un subgrafo de Hn que es conectado y regular con 2k vrtices de grado k. Por
ejemplo, considrese el grafo H3, vase la Figura 5.16. Es claro que H3 cuenta con ocho
0-celdas, doce 1-celdas, seis 2-celdas y una 3-celda.

164
Captulo 5. Grafos: Conceptos Bsicos

(0,1,1) (1,1,1)

(0,1,0) (1,1,0)

(0,0,1) (1,0,1)

(0,0,0) (1,0,0)

Figura 5.16. El grafo H3.

El grafo asociado a lo que se conoce como un Politopo Cruz n-Dimensional, n 1,


denotado por Cn, es un grafo cuyos vrtices tienen sus etiquetas en el

conjunto de permutaciones de 1,
. Dos vrtices u = (x1, x2, , xi, , xn) y
0,..., 0

n
v = (y1, y2, , yi, , yn) describen una arista en Cn si y slo si la cardinalidad del conjunto
{i: |xi| |yi|, xi u, yi v} es exactamente 2. Ahora bien, una k-celda de Cn,
0 k < n, se define como un subgrafo de Cn el cual es completo con k+1 vrtices. Por
ejemplo, considrese el grafo C3, vase la Figura 5.17. Se puede observar que C3 cuenta
con seis 0-celdas, doce 1-celdas y ocho 2-celdas.

(0,0,1)
(0,1,0)

(-1,0,0) (1,0,0)

(0,-1,0)
(0,0,-1)

Figura 5.17. El grafo C3.

Se dice que un grafo G es Bipartita si el conjunto de sus vrtices V(G) puede ser
particionado en dos subconjuntos disjuntos M y N tal que cada arista de G conecta un
vrtice de M a un vrtice de N. Cuando se hace referencia a un grafo Bipartita Completo
se dice que G es bipartita y adems cada vrtice de M est conectado a cada vrtice de N.

165
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Tal grafo se denota por Km,n en donde m es el nmero de vrtices en M y n es el nmero de


vrtices en N y adems m n . Los grafos presentados en la Figura 5.18 corresponden a
K2,3, K3,3 y K2,4.

K2,3 K3,3 K2,4

Figura 5.18. Ejemplos de grafos bipartitas completos.

Un grafo que puede ser dibujado en una superficie de tal forma que sus aristas no se
intersectan es llamado Grafo Plano. Por ejemplo, vase la Figura 5.19, aunque el grafo
completo con cuatro vrtices K4 es usualmente dibujado con algunas de sus aristas
intersectndose, tambin puede ser dibujado de manera que no existan tales intersecciones,
por lo tanto K4 es un grafo plano.

Figura 5.19. Verificando que el grafo K4 es un grafo plano.

Un grafo G es llamado Grafo Pesado si a cada arista e de G le es asignado un


nmero no negativo w(e) llamado el Peso de e. En la Figura 5.20 se muestra un ejemplo de
grafo pesado.
3 6
A1 A2 A3
3 4
7
2 2
P 2 3 1 Q

4 2
6 4
A4 A5 A6

Figura 5.20. Ejemplo de grafo pesado.

166
Captulo 5. Grafos: Conceptos Bsicos

El Peso de una Ruta en un grafo pesado G es definido como la suma de los pesos
de las aristas en la ruta. Uno de los problemas ms importantes dentro de la teora de grafos
consiste en encontrar la ruta ms corta, es decir, la ruta con el peso mnimo entre dos
vrtices dados. La ruta ms corta entre los vrtices P y Q en el grafo presentado en la
Figura 5.20 tiene un peso igual a 14 y est dada por los vrtices
(P, A1, A2, A5, A3, A6, Q)
Sea G un grafo conectado. Un Conjunto Independiente de G (Independent Set),
denotado por IS(G), es un subconjunto de los vrtices en V(G) tal que para cualesquiera
vrtices u, v IS(G) la arista (u, v) no est presente en E(G). Un Conjunto Independiente
Mximo de G (Maximal Independent Set), denotado por MIS(G), es un conjunto
independiente de G con la propiedad de que cuando se agrega un vrtice adicional v a
MIS(G) entonces la arista (v, x) est en E(G) para x MIS(G). Por ejemplo, considrese el
siguiente grafo G de la Figura 5.21. Entonces, MIS(G) = {2, 3, 6, 7}.

7 5

8 6

2 4

1 3
G
Figura 5.21. El Conjunto Independiente Mximo de G est dado por los vrtices 2, 3, 6 y 7.

Sea G un grafo y sea U un subconjunto de V(G), es decir, U V(G). La diferencia


G \ U denota al subgrafo de G que se obtiene al eliminar a todos los vrtices de G
contenidos en U y a todas las aristas que les son incidentes. Ahora sea F un subconjunto de
E(G). Entonces, la diferencia G \ F denota al subgrafo de G que se obtiene al eliminar a
todas las aristas de G contenidas en F.

Se dice que un grafo conectado G es k-Conectado Respecto a sus Vrtices si para


k < Card(V(G)) y para todo subconjunto X V(G), tal que Card(X) < k, se tiene que el
subgrafo G \ X es conectado. Ahora bien, el entero k ms grande tal que un grafo G es
k-conectado respecto a sus vrtices se denomina la Conectividad de G Respecto a sus
Vrtices. A esta conectividad se le denota como (G).

Por ejemplo, considrese el grafo G de la Figura 5.22. Si deseamos demostrar que es


2-Conectado Respecto a sus Vrtices, entonces, de acuerdo a la definicin, debemos
verificar que para todo subconjunto X de un solo vrtice, G \ X permanece conectado. El

167
Una Introduccin a las Matemticas Discretas y Teora de Grafos

grafo tiene en total 6 vrtices, por lo que entonces tendremos que formar 6 conjuntos de
prueba: X1 = {1}, X2 = {2}, X3 = {3}, X4 = {4}, X5 = {5} y X6 = {6}. En la Figura 5.23 se
muestran todos los subgrafos obtenidos. Es claro que stos son conectados. Por lo tanto,
podemos afirmar que nuestro grafo en cuestin efectivamente es 2-Conectado Respecto a
sus Vrtices. Si se requiere demostrar que el grafo es 3-conectado respecto a sus vrtices
entonces se debe verificar que con todo subconjunto X con a lo ms 2 vrtices el subgrafo
G \ X permanece conectado. Dado que ya se demostr que el grafo es 2-conectado respecto
a sus vrtices entonces slo deberamos efectuar las correspondientes pruebas con los
posibles 15 subconjuntos de 2 vrtices.

4 5

2 3
G
Figura 5.22. Un grafo conectado G de 6 vrtices.

1 1

4 5

4 5 4 5

2 3
6 6

3 2

G \ {1} G \ {2} G \ {3}


1 1 1

5 4 4 5

6 6

2 3 2 3 2 3

G \ {4} G \ {5} G \ {5}

Figura 5.23. Los subgrafos G \ {u}, u V(G), del grafo G presentado en la Figura 5.22.
Todos los subgrafos obtenidos son conectados y por lo tanto G es caracterizado como
2-Conectado Respecto a sus Vrtices.

168
Captulo 5. Grafos: Conceptos Bsicos

Se dice que un grafo conectado G tal que Card(V(G)) > 1 es O-Conectado Respecto
a sus Aristas si para todo subconjunto F E(G), tal que Card(F) < O, se tiene que el
subgrafo G \ F es conectado. El entero O ms grande tal que un grafo G es O-conectado
respecto a sus aristas se denomina la Conectividad de G Respecto a sus Aristas y se le
denota como (G).

Considrese nuevamente el grafo G de la Figura 5.22. Para verificar que es


2-Conectado Respecto a sus aristas debemos formar todos los posibles subconjuntos F de 1
arista y verificar que G \ F permanece conectado. Dado que G se forma por 12 aristas
entonces tendremos 12 subconjuntos de prueba. Realmente no es difcil apreciar que el
grafo G efectivamente es 2-Conectado respecto a sus aristas.

5.3 Circuitos Eulerianos y Circuitos Hamiltonianos


Una Ruta Euleriana en un grafo conectado G es una ruta que pasa por cada arista
de G exactamente una sola vez, aunque puede visitar a un vrtice en ms de una ocasin.
De hecho una ruta Euleriana es una va que utiliza todas las aristas del grafo. En la Figura
5.24 se presenta un ejemplo de un grafo que cuenta con una ruta Euleriana.

a b
Figura 5.24. a) Un grafo conectado.
b) La forma en que deben ser recorridas sus aristas a fin de obtener una Ruta Euleriana.

Si un grafo tiene una ruta Euleriana y adems sta es una ruta cerrada entonces se
tiene que tal ruta de hecho es un Circuito Euleriano y el grafo es caracterizado como
Grafo Euleriano. En la Figura 5.25 se presenta un ejemplo de un grafo Euleriano. Ntese
que todos sus vrtices son de grado par.

a b
Figura 5.25. a) Un grafo conectado con 4 vrtices de grado 2 y 2 vrtices de grado 4.
b) La forma en que deben ser recorridas sus aristas a fin de obtener un Circuito Euleriano.

El siguiente Teorema proporciona una condicin necesaria y suficiente para


caracterizar a un grafo como Euleriano:

169
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Teorema 5.4 (Euler): Un grafo conectado es Euleriano si y slo si cada uno de sus
vrtices tiene grado par.

Demostracin:
)
Supngase que G es un grafo Euleriano. Por lo tanto, G cuenta con un circuito Euleriano E.
Asumamos que el circuito est descrito por E = (v, , u, , w, , w, , v). Por
definicin, toda arista de G es visitada exactamente una sola vez por el circuito. Los
vrtices en E pueden ser caracterizados de la siguiente manera:
Vrtices u que aparecen una sola vez en la descripcin del circuito E. Es claro que estos
vrtices tienen exactamente grado 2 ya que les es incidente una arista que llega a u y
tambin le es incidente una arista que sale de u.
Vrtices w v que aparecen en ms de una ocasin en la descripcin del circuito E. Por
cada aparicin de w se tiene que un par de aristas de G son utilizadas: una arista que
llega a w y una arista que sale de w. En consecuencia deg(w) es un nmero par mayor o
igual a 2.
El vrtice inicial/final v. Al inicio del circuito el vrtice v se conecta con una arista, y al
final del circuito al vrtice v le es incidente una arista. Si v aparece nicamente al inicio
y al final de la descripcin de E entonces deg(v) = 2. Por otro lado, si v aparece en otras
ocasiones dentro de E entonces por cada una de stas se utilizan dos aristas de G. En
esta situacin el grado de v es un nmero par mayor o igual a 2.
Es claro entonces que todo vrtice de G es de grado par.

Ahora supngase que todos los vrtices de G son de grado par. Se demostrar que G es
Euleriano mediante el Principio de Induccin Matemtica.

El Caso Base requiere considerar a aquel grafo conectado con el menor nmero n de
vrtices y m de aristas tal que es un grafo Euleriano. Obviamente se debe tomar en cuenta
que sus vrtices sean todos de grado par. Claramente el grafo a considerar es el grafo
completo K3. En esta situacin tenemos que n = 3 y m = 3.

Ahora se requiere plantear la Hiptesis de Induccin. En nuestro caso simplemente diremos


que todo grafo conectado cuyos n vrtices son todos de grado par y con nmero de aristas
m es efectivamente un grafo Euleriano.

El Paso Inductivo requiere probar que todo grafo conectado cuyos n vrtices son todos de
grado par y con nmero de aristas m es un grafo Euleriano. En este caso supondremos que
n > n y m > m. Es decir, nuestra Hiptesis de Induccin es vlida para grafos ms
pequeos que el que se est considerando para nuestro Paso Inductivo. Sea v cualquier
vrtice elegido arbitrariamente en V(G). Ahora, partiendo de v, se elegiran sucesivamente y
de manera tambin arbitraria aristas de G hasta retornar nuevamente a v. Es decir, se ha

170
Captulo 5. Grafos: Conceptos Bsicos

formado una va W que inicia y termina en v. Dado que todo vrtice u de G es de grado par,
entonces por cada aparicin de u en W se utilizan dos aristas: una arista que incide sobre u y
una arista que conecta a u con otro vrtice adyacente en W. Por lo tanto se garantiza la
existencia de la va W.

Sea EW el conjunto de aristas de G que estn presentes en la va W. Si se remueven las


aristas en EW del grafo G entonces es claro que lo que se obtendr ser un conjunto de k
subgrafos de G: C1, C2, , Ck. Evidentemente las aristas en el i-simo subgrafo Ci,
1 i k, no estn incluidas en la va W. Por otro lado, el nmero de aristas y vrtices en
cada uno de estos subgrafos es menor a m=Card(E(G)) y n = Card(V(G)), respectivamente.

Ahora considrese a cualquiera de los subgrafos de G. Considrese el i-simo, Ci, 1 i k.


Se debern responder dos preguntas:
Ci es un grafo conectado?
Todos los vrtices de Ci son de grado par?
Para responder la primer pregunta nicamente debemos asumir que los subgrafos de G,
resultantes de la remocin de las aristas en W, fueron caracterizados de tal forma que cada
uno cuenta con nicamente un componente. La segunda pregunta es la que realmente forma
nuestro punto de inters actual. Supngase que Ci tiene al menos un vrtice ui de grado
impar. Si ui no forma parte de la va W entonces G claramente tiene un vrtice de grado
impar, lo que contradice la suposicin inicial respecto a G. Por otro lado, si ui forma parte
de la va W, tenemos que ui tiene un nmero impar de aristas incidentes las cuales no estn
en W, pero tambin tiene un nmero par de aristas incidentes que s forman parte de W. En
consecuencia el grado de ui, respecto a G, es un nmero impar, lo que de nueva cuenta nos
conduce a una contradiccin respecto a las consideraciones iniciales sobre el grafo G. Por
lo tanto podemos garantizar que el subgrafo Ci es conectado y todos sus vrtices son de
grado par.

Ahora es en este punto donde aplicamos nuestra Hiptesis de Induccin sobre cada uno de
los subgrafos C1, C2, , Ck. Sea Ei el circuito Euleriano asociado al subgrafo Ci. Tal
circuito utiliza a todas las aristas de Ci.

Dado que G es un grafo conectado entonces existe un vrtice ai en Ci, i = 1, 2, , k, tal que
ai est presente tanto en W como en Ei. Formaremos el circuito Euleriano de G de la
siguiente manera:
Se recorren los vrtices de W comenzando en el vrtice inicial v.
A partir de v se recorren los vrtices hasta encontrar al vrtice a1. En este punto se
recorre el circuito E1 y se retorna nuevamente a a1.
Partiendo de a1 en W se recorren los vrtices hasta encontrar al vrtice a2. Ahora se
recorre el circuito E2 y se retorna a a2.
Se contina recorriendo sucesivamente a W y visitando los circuitos E3, E4, , Ei-1. Al
encontrar al vrtice ai, se recorre el circuito Ei y se retorna a ai.

Cuando se encuentra al vrtice ak se recorre entonces al ltimo circuito Ek y se recorre
finalmente al resto de W, finalizando nuevamente en el vrtice v.

171
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Es claro que el recorrido descrito visita a todas las aristas de G. Tal recorrido es
precisamente un Circuito Euleriano y por lo tanto G es un grafo Euleriano.

El siguiente Corolario establece una condicin necesaria y suficiente para


determinar la existencia de una ruta Euleriana en un grafo:

Corolario 5.2: Un grafo conectado G cuenta con una Ruta Euleriana si y slo si tiene
exactamente dos vrtices de grado impar.

Demostracin:
)
Supongamos que G cuenta efectivamente con la ruta Euleriana E. Sabemos que toda
aparicin de un vrtice en E implica que dos aristas de G estn siendo utilizadas: una arista
que incide sobre el vrtice y otra arista que sale del vrtice. Sin embargo, ahora debe
agregarse un par de excepciones: si u es el vrtice inicial de E entonces nicamente se
utiliza una arista de G que conecta a u con otro vrtice adyacente. Por otro lado, si v es el
vrtice final de E entonces nicamente se utiliza una arista de G que es incidente a v.
Ntese que estos puntos implican que los vrtices inicial y final de E son ambos de grado
impar mientras que el resto es de grado par.
)
Ahora asumamos que G cuenta con exactamente dos vrtices u y v de grado impar. Ntese
que si se agrega la arista temporal (u, v) a G entonces todos sus vrtices son ahora de grado
par y aplicando el Teorema 5.4 se obtiene el correspondiente circuito Euleriano. La Ruta
Euleriana de G es identificada al remover precisamente la arista temporal (u, v).

Un Circuito Hamiltoniano en un grafo conectado G es un circuito que contiene a


todos los vrtices de G. Si G admite un circuito Hamiltoniano entonces G es llamado Grafo
Hamiltoniano. En la Figura 5.26 se presenta un ejemplo de un grafo Hamiltoniano y su
correspondiente circuito Hamiltoniano. Hasta el da de hoy no se ha encontrado un criterio
simple y eficiente, tal como sucede con los grafos Eulerianos, que indique si un grafo es o
no Hamiltoniano.

a b

Figura 5.26. a) Un grafo conectado. b) La forma en que deben ser recorridas


algunas de sus aristas a fin de obtener un Circuito Hamiltoniano.

172
Captulo 5. Grafos: Conceptos Bsicos

5.4 rboles
A un grafo T se le llama rbol si es conectado y adems T no tiene circuitos. Si un
grafo G no es conectado y no tiene circuitos, entonces se le llama Bosque. El rbol que
consiste de un solo vrtice sin aristas, i.e. el grafo trivial, es llamado rbol Degenerado.
En la Figura 5.27 se presentan ejemplos de un rbol y un bosque. A un rbol de n vrtices
se le denotar como Tn.

1 2

5 4

6 8

9
a b
Figura 5.27. a) Ejemplo de un rbol. b) Ejemplo de un bosque:
es un grafo no conectado libre de circuitos que se forma por dos rboles.

Considrese un rbol T. Claramente existe slo una ruta simple entre cualesquiera
dos vrtices de T. Adems:
a) Supngase que no existe una arista (u, v) en T. Ahora agrguese la arista
(u, v) en T. Entonces, la ruta simple original que va de u a v en T, junto con la nueva
arista (u, v), formarn un circuito y por lo tanto T dejar de ser un rbol.
b) Supngase que existe una arista (u, v) en T y que sta es eliminada de T. Entonces T ya
no est conectado debido a que ya no existir una ruta simple de u a v y finalmente T ya
no puede ser caracterizado como un rbol.
Estos razonamientos nos proporcionan los elementos para probar el siguiente:

Teorema 5.5: Sea G un grafo con n > 1 vrtices. Entonces se tendrn las equivalencias:
a) G es un rbol.
b) G no tiene circuitos y tiene n - 1 aristas.
c) G est conectado y tiene n - 1 aristas.

El Teorema indica que un rbol T con n vrtices, Tn, deber tener n - 1 aristas.
Vase, por ejemplo, el rbol de la Figura 5.27.a que cuenta con n = 8 vrtices y n - 1 = 7
aristas. Es claro entonces que contamos con una cota inferior para el nmero de aristas en
cualquier grafo conectado: n-1.

Los vrtices en cualquier rbol se caracterizan en dos clases: un Nodo Interno o


Vrtice Interno es aquel vrtice v para el cual se tiene que deg(v) 2. Por otro lado, un
Nodo Hoja o Vrtice Hoja es aquel vrtice cuyo grado es exactamente 1.

173
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Un subgrafo T de un grafo conectado G es llamado un rbol de Expansin de G si


T es un rbol y adems T incluye a todos los vrtices de G, es decir, V(T) = V(G). En la
Figura 5.28 se presenta un grafo G y tres posibles rboles de expansin T1, T2 y T3 de G.

G T1

T2 T3
Figura 5.28. Tres rboles de expansin para el grafo G.

2 3 4 6 7

1
2
5 7 6

3 2
6 8
7

8 9 3
4

4
10
9
5

10

G, g(G) = K5,5, g(K5,5) = 4 H, g(H) = 7


a) b) c)
Figura 5.29. a) Un grafo G que es un rbol de 10 vrtices. b) El grafo bipartita K5,5.
c) Un grafo conectado regular de grado 2 con 7 vrtices.

174
Captulo 5. Grafos: Conceptos Bsicos

5.5 Girths y Dimetros


Sea G un grafo. El Girth de G, denotado por g(G), se define como la longitud, en
trminos del nmero de aristas, del circuito ms corto en G. Si G es libre de circuitos
entonces se dice que su girth tiene valor infinito. Por ejemplo, considrense los grafos
presentados en la Figura 5.29. El grafo G, Figura 5.29.a, es un rbol, por lo tanto es libre de
circuitos y en consecuencia g(G) = . Para el caso del grafo bipartita K5,5, su circuito
mnimo en trminos del nmero de aristas tiene longitud 4. Entonces g(K5,5) = 4.
Finalmente, para el caso del grafo H regular de grado 2 con 7 vrtices, Figura 5.29.c, se
cuenta con un nico circuito de longitud 7: g(H) = 7.

Sea G un grafo. La ruta ms corta, en trminos del nmero de aristas,


entre dos vrtices u, v V(G) se denotar como dG(u, v). Si no existe una ruta que conecte
a u con v entonces dG(u, v) = . El Dimetro de G se define como la ruta ms corta de
mayor longitud entre cualesquiera dos vrtices de G y se denota por Diameter(G). En
trminos formales se tiene que Diameter(G) = Max{dG(u,v), u, v V(G)}. Por ejemplo, en
la Figura 5.30 se presenta al grafo Hipercbico 4-Dimensional H4. Ntese, por ejemplo, que
la ruta ms corta, en trminos del nmero de aristas, que conecta a los vrtices 1 y 16 tiene
longitud 4. Pero esta longitud es tambin la mayor existente para cualquier otra ruta ms
corta en H4. Por lo tanto el dimetro de H4 es 4.

15 16

11 12 13 14

9 10

7 8

3 4 5 6

1 2

H4, Diameter(H4) = 4

Figura 5.30. El grafo Hipercbico 4-Dimensional.

En la Figura 5.31.a tenemos un rbol T conformado por 10 vrtices. Sabemos que


para cualquier par de vrtices existe una ruta simple en T que los conecta y adems es la
ms corta. Lo contrario implicara que T cuenta con al menos dos rutas distintas para
conectar a un par de vrtices y ello a su vez conducira a la existencia de un circuito, sin
embargo T es un rbol. Es fcil apreciar que la ruta ms corta, en trminos del nmero de
aristas, que conecta al vrtice 4 con el vrtice 10 tiene longitud 7. De hecho, esta ruta es la
ms larga de entre todas las rutas ms cortas en T. Por lo tanto, Diameter(T) = 7. En la
Figura 5.31.b se tiene al grafo bipartita completo K5,5. La particin de los vrtices de K5,5
est dada por los subconjuntos V1 = {1, 2, 3, 4, 5} y V2 = {6, 7, 8, 9, 10}. Toda ruta ms

175
Una Introduccin a las Matemticas Discretas y Teora de Grafos

corta que conecta a cualquier vrtice de V1 con un vrtice de V2 tiene longitud de 1 arista.
Pero toda ruta ms corta que conecte a dos vrtices ambos en V1 o ambos en V2 tendr
longitud 2. Por lo tanto, para K5,5 tenemos que Diameter(K5,5) = 2.

6
2 3 4

2
5 7

6 7
3 8

8
9
4

9
10

10

T, Diameter(T) = 7 K5,5, Diameter(K5,5) = 2


a) b)

Figura 5.31. a) Un rbol G de 10 vrtices. b) El grafo bipartita K5,5.

176
Una Introduccin a las Matemticas Discretas y Teora de Grafos

6. Generacin
Automtica
de Grafos
Una Introduccin a las Matemticas Discretas y Teora de Grafos

178
Captulo 6. Generacin Automtica de Grafos

6.1 Representacin Computacional de Grafos


La representacin por Listas de Adyacencias de un grafo G consiste en un arreglo
Adj de n listas ligadas, n = Card(V(G)), una por cada vrtice en V(G). Para cada vrtice
u V(G), su lista de adyacencias Adj[u] contiene todos los vrtices v tales que existe una
arista (u, v) E(G). Es decir, Adj[u] consiste de todos los vrtices adyacentes a u en G. Los
vrtices en cada lista de adyacencias son por lo regular almacenados en orden arbitrario. En
la Figura 6.1 se presenta un ejemplo de listas de adyacencias para un grafo.

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

Figura 6.1. Representacin por listas de adyacencias del grafo G.

Para cualquier grafo G, la suma de las longitudes de todas sus listas de adyacencias
es 2Card(E(G)), debido a que una arista (u, v) aparecer representada tanto en Adj[u] como
en Adj[v]. Por ejemplo, para el grafo de la Figura 6.1, se tiene que las listas que describen la
conectividad de los vrtices 1, 2, 3, 4 y 5 tienen 2, 4, 2, 3 y 3 elementos respectivamente, de
manera que 2 + 4 + 2 + 3 + 3 = 14 = 27 = 2Card(E(G)).

Sea G un grafo para el cual su conjunto de n vrtices est enumerado como


1, 2, 3, ..., n. Entonces, la Representacin Matricial del grafo consiste de una matriz
binaria A de tamao n n tal que

1 si (i, j ) E (G )
A[i ][ j ] =
0 si (i, j ) E (G )

Dado que en un grafo no dirigido sus aristas son bidireccionales, por lo tanto si
(u, v) E(G) entonces A[u][v] = A[v][u] = 1. En la Figura 6.2 se presenta un ejemplo de
representacin matricial para un grafo.

1 2 1 2 3 4 5
1 0 1 0 0 1
2 1 0 1 1 1
3
3 0 1 0 1 0
4 0 1 1 0 1
5 4 5 1 1 0 1 0
G
Figura 6.2. Representacin Matricial del grafo G. Ntese que la matriz es simtrica.

179
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Se sabe que la transpuesta de una matriz A es la matriz AT tal que AT[i][j] = A[j][i],
para i = 1, 2, , n y para j = 1, 2, , n. Debido a que en un grafo (u, v) y (v, u) representan
a la misma arista, la representacin matricial de tal grafo es su propia transpuesta A = AT, o
en otras palabras, la matriz A es simtrica.

Sea v un vrtice en un grafo G. Se define a la Vecindad de v, denotado por N(v),


como el conjunto de vrtices adyacentes a v. Por ejemplo, para el grafo de la Figura 6.2, se
tiene que N(1) = {2, 5}. Es claro que si v es un vrtice aislado entonces N(v) = . De
hecho, es evidente que Card(N(u)) = deg(u). Ahora bien, el determinar a la vecindad de un
vrtice en un grafo ser una operacin que estar presente en la mayora de los algoritmos a
describir. Sea G un grafo con n = Card(V(G)). Si G est representado por listas de
adyacencias, las cuales suponemos estn implementadas como estructuras de datos
dinmicas, es claro que slo se requiere ubicarse en la posicin v del arreglo de listas Adj,
es decir, Adj[v], y retornar la referencia de la lista especfica. Por otro lado, si G tiene
representacin matricial entonces es necesario colocarse en el rengln v de la matriz y
recorrer columna por columna recolectando a sus vrtices incidentes, es decir, aquellos
valores de columnas para los cuales se cumple que A[v][j] = 1, j = 1, 2, 3, , n.

Otra operacin a considerar es la remocin de una arista en un grafo. En la


representacin matricial slo se requiere, para la arista (u, v), hacer A[u][v] = A[v][u] = 0.
En el caso de las listas de adyacencias por un lado se debe dar de baja al vrtice v en la lista
en Adj[u], y por otro, se debe dar de baja al vrtice u en la lista Adj[v].

La remocin de un vrtice v en un grafo G requiere remover al vrtice del conjunto


V(G), es decir, hacer V(G) \ {v}. Tambin deben removerse todas las aristas incidentes a v
del conjunto E(G). En el caso de la representacin por listas de adyacencias se debe
eliminar toda instancia del vrtice v, lo cual implica recorrer todas las listas (asumiendo que
no estn ordenadas) y por ltimo, eliminar la lista en Adj[v]. De hecho, a la posicin Adj[v]
le deber ser asignado un valor indicativo de que tal vrtice ya no est presente en G. En el
caso de la representacin matricial slo es necesario asignar un valor indicativo, para
denotar que el vrtice ya no existe, a todos los elementos del rengln v y a todos los
elementos de la columna v.

6.2 Permutacin Aleatoria de n Elementos


Se producir una permutacin aleatoria del conjunto de enteros {1, 2, 3, , n} al
generar una secuencia de intercambios aleatorios. Considrese, por ejemplo, la generacin
de una permutacin aleatoria de los enteros en el conjunto {1, 2, 3, 4, 5}, n = 5. Supngase
que los elementos permutados sern guardados en un arreglo de enteros perm. Una primer
etapa considerar la inicializacin del arreglo perm como perm[i] = i, i = 1, 2, n. Por lo
tanto en un principio se tendr:
perm[1] = 1
perm[2] = 2
perm[3] = 3
perm[4] = 4
perm[5] = 5

180
Captulo 6. Generacin Automtica de Grafos

La segunda etapa consistir en la generacin de la secuencia de intercambios


aleatorios de los elementos del arreglo perm. Se generar un ndice j de la siguiente manera:

j = i + getNextReal ( ) (n + 1- i ) , i = 1, 2,..., n

En donde:
getNextReal( ) denota a una funcin que genera nmeros aleatorios en el rango
[0.0, 1.0).
El operador indica el piso (floor) del nmero real obtenido al efectuar la secuencia
de operaciones i + getNextReal( )(n + 1 i). La funcin getNextReal( ) tiene por
codominio un subconjunto de los nmeros reales, sin embargo, j al ser un ndice para el
arreglo perm requiere ser un entero. Se usa la funcin piso ya que de lo contrario
pueden obtenerse enteros mayores a n.

La idea es la siguiente: se efectuarn n intercambios (swappings) entre dos


elementos del arreglo perm. De hecho, se intercambiar al elemento en perm[i] con el
elemento en perm[j]. En el ejemplo dado se podra entonces tener la secuencia de
intercambios presentada en la Tabla 6.1.

Tabla 6.1. Definiendo el conjunto de intercambios a aplicar para obtener


una permutacin de los elementos del conjunto {1, 2, 3, 4, 5} (Vase el texto para detalles).
i getNextReal( ) j
1 0.490312 j = 1 + 0.490312 * (5 + 1 - 1) = 3.45156 = 3
2 0.857475 j = 2 + 0.071558 * (5 + 1 - 2) = 2.28623 = 2
3 0.324372 j = 3 + 0.324372 * (5 + 1 - 3) = 3.97312 = 3
4 0.980483 j = 4 + 0.980483 * (5 + 1 - 4) = 5.96097 = 5
5 0.1209 j = 5 + 0.1209 * (5 + 1 - 5) = 5.1209 = 5

De acuerdo a los ndices generados, Tabla 6.1 tercer columna, se tendr entonces
que el arreglo perm queda de la siguiente manera (ntese que se pueden generar
intercambios entre elementos con el mismo ndice):
perm[1] = 3
perm[2] = 2
perm[3] = 1
perm[4] = 5
perm[5] = 4

El Algoritmo 6.1 implementa el procedimiento antes descrito. Se reciben dos


entradas:
n: El nmero de elementos a permutar.
perm[1, , n]: El arreglo donde se guardar la permutacin generada.

181
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Algoritmo 6.1. Permutacin aleatoria de los elementos en el conjunto {1, 2, ., n}.


Procedure randomPermutation(Integer n, Array perm[1, , n])
for i = 1 until n do
perm[i] = i
end-of-for
for i = 1 until n do
// Se genera un ndice aleatorio j {1, , n}.
j = i + getNextReal ( ) *(n + 1- i )
// Se efecta un intercambio entre los elementos perm[i] y perm[j].
temp = perm[i]
perm[i] = perm[j]
perm[j] = temp
end-of-for
end-of-procedure

6.3 Generacin de Grafos Aleatorios


Ahora se especificar un procedimiento para generar un grafo aleatorio dados el
nmero de vrtices y aristas deseados. El grafo a generar puede ser uno de los siguientes:
Grafo simple (sin lazos y sin aristas paralelas) o multigrafo (con lazos o aristas
paralelas).
Dirigido o no dirigido.
Acclico dirigido.
Pesado o no pesado.

El procedimiento deber ser capaz de generar un grafo vlido, por lo tanto, es


necesario tomar en cuenta algunas propiedades:
Si se desea generar un grafo simple no dirigido o bien un grafo acclico dirigido de n
vrtices, entonces el nmero de aristas m no debe ser mayor a

n(n 1)
2

Si se desea generar un grafo dirigido simple de n vrtices, entonces el nmero de aristas


m no debe ser mayor a
n(n 1)

Obviamente, si se desea generar un grafo simple, la salida omitir lazos y aristas


paralelas. Si el grafo generado es dirigido entonces los pares de vrtices que describen a
las aristas son pares ordenados. En el caso de un grafo acclico dirigido de n vrtices se
har uso del Algoritmo 6.1 (randomPermutation) para obtener una permutacin
aleatoria del conjunto {1, 2, , n}, especficamente se obtiene
(perm[1], perm[2], , perm[n]). Posteriormente sus m aristas sern de la forma
(perm[i], perm[j]) tal que i < j.

182
Captulo 6. Generacin Automtica de Grafos

Supngase que se desea generar un grafo aleatorio simple no dirigido de n = 5


vrtices y m = 8 aristas. En primer lugar se verifica que efectivamente

n(n 1)
m=8 = 10
2

Ahora supongamos que el grafo es representado por una matriz de adyacencias adj
de tamao n n. La matriz es inicializada con cero (false) en todas sus posiciones. Vase la
Tabla 6.2.

Tabla 6.2. Matriz de Adyacencias inicial


para un grafo simple no dirigido de 5 vrtices
(vase el texto para detalles).
adj 1 2 3 4 5
1 0 0 0 0 0
2 0 0 0 0 0
3 0 0 0 0 0
4 0 0 0 0 0
5 0 0 0 0 0

Las aristas que compondrn al grafo sern generadas de manera aleatoria. Los
vrtices inicial y final de la i-sima arista, i = 1, 2, , m, sern generados mediante la
siguiente regla:

Vrtice inicial i-sima arista: nodea = getNextInteger(n) + 1


Vrtice final i-sima arista: nodeb = getNextInteger(n) + 1

La funcin getNextInteger genera enteros aleatorios dentro del conjunto


{0, 1, 2, 3, , n-1}. Existe la posibilidad de que nodea y nodeb tengan el mismo valor, lo
cual implica la presencia de un lazo, sin embargo se requiere un grafo simple. En este caso,
deber verificarse que los valores de nodea y nodeb sean distintos. Supngase que se
tienen, tal como presenta la Tabla 6.3, las m = 8 aristas generadas.

Tabla 6.3. Un conjunto de 8 aristas candidatas


a ser agregadas a un grafo simple no dirigido de 5 vrtices
(Vase el texto para detalles).
Arista:
nodea nodeb
(nodea, nodeb)
5 3 (5, 3)
1 2 (1, 2)
2 1 (2, 1)
2 3 (2, 3)
4 5 (4, 5)
4 1 (4, 1)
5 1 (5, 1)
1 4 (1, 4)

183
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Tambin se puede presentar la situacin de que se hayan generado aristas repetidas


que de hecho son aristas paralelas. Para identificarlas, el par de vrtices que describe a una
arista ser ordenado de menor a mayor. Para el ejemplo tratado se tendrn las aristas, con
sus vrtices ordenados, presentadas en la Tabla 6.4.

Tabla 6.4. Un conjunto de 8 aristas candidatas


a ser agregadas a un grafo simple no dirigido de 5 vrtices.
Los vrtices que las conforman han sido ordenados
de menor a mayor. (vase el texto para detalles).
Arista:
(nodea, nodeb)
(3, 5)
(1, 2)
(1, 2)
(2, 3)
(4, 5)
(1, 4)
(1, 5)
(1, 4)

Finalmente, se proceder a identificar aristas paralelas, y si es el caso desecharlas.


Se tiene la siguiente regla:

Si (nodea, nodeb) E(G) entonces E(G) = E(G) {(nodea, nodeb)}

Es decir, la arista (nodea, nodeb) ser una arista del grafo final si sta no ha sido antes
introducida en el grafo. En el caso de que (nodea, nodeb) ya hubiese sido antes identificada
entonces se proceder a generar un nuevo par de vrtices, se verificar que stos sean
distintos y se evaluarn su pertenencia al conjunto E(G).

Para cada una de las aristas presentadas en la Tabla 6.4, y considerando la


representacin matricial de nuestro grafo, se tiene:
(3, 5), adj[3][5] = 0: La arista se agrega al grafo final y adj[3][5] = adj[5][3] = 1.
(1, 2), adj[1][2] = 0: La arista se agrega al grafo final y adj[1][2] = adj[2][1] = 1.
(1, 2), adj[1][2] = 1: La arista ya haba sido antes agregada.
o Se genera una nueva arista, por ejemplo, (4, 5):
(4, 5), adj[4][5] = 0: La arista se agrega al grafo final y adj[4][5] = adj[5][4] = 1.
(2, 3), adj[2][3] = 0: La arista se agrega al grafo final y adj[2][3] = adj[3][2] = 1.
(4, 5), adj[4][5] = 1: La arista ya haba sido antes agregada.
o Se genera una nueva arista, por ejemplo, (2, 4):
(2, 4), adj[2][4] = 0: La arista se agrega al grafo final y adj[2][4] = adj[4][2] = 1.
(1, 4), adj[1][4] = 0: La arista se agrega al grafo final y adj[1][4] = adj[4][1] = 1.
(1, 5), adj[1][5] = 0: La arista se agrega al grafo final y adj[1][5] = adj[5][1] = 1.
(1, 4), adj[1][4] = 1: La arista ya haba sido antes agregada.
o Se genera una nueva arista, por ejemplo, (3, 4):
(3, 4), adj[3][4] = 0: La arista se agrega al grafo final y adj[3][4] = adj[4][3] = 1.

184
Captulo 6. Generacin Automtica de Grafos

Las aristas que conforman finalmente a nuestro grafo simple no dirigido, el cual es
presentado en la Figura 6.3, son:

(3, 5), (1, 2), (4, 5), (2, 3), (2, 4), (1, 4), (1, 5), (3, 4)

1 3

4 5
Figura 6.3. Un grafo simple no dirigido de 5 vrtices y 8 aristas.

Supngase que ahora se busca un grafo simple dirigido acclico de 8 vrtices y 10


aristas. En primer lugar se verifica que efectivamente:

n(n 1)
m = 10 = 28
2

Se tiene inicialmente una matriz de adyacencias adj presentada en la Tabla 6.5.

Tabla 6.5. Matriz de Adyacencias inicial


para un grafo simple dirigido acclico de 8 vrtices
(vase el texto para detalles).
adj 1 2 3 4 5 6 7 8
1 0 0 0 0 0 0 0 0
2 0 0 0 0 0 0 0 0
3 0 0 0 0 0 0 0 0
4 0 0 0 0 0 0 0 0
5 0 0 0 0 0 0 0 0
6 0 0 0 0 0 0 0 0
7 0 0 0 0 0 0 0 0
8 0 0 0 0 0 0 0 0

La Tabla 6.6 presenta las m = 10 aristas generadas con sus vrtices reordenados
Recurdese que se debe verificar previamente que los vrtices inicial y final sean distintos.

185
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Tabla 6.6. Un conjunto de 10 aristas candidatas


a ser agregadas a un grafo simple dirigido acclico de 8 vrtices
(vase el texto para detalles).
Arista: Arista Reordenada:
nodea nodeb
(nodea, nodeb) (nodea, nodeb)
6 7 (6, 7) (6, 7)
1 8 (1, 8) (1, 8)
6 1 (6, 1) (1, 6)
2 4 (2, 4) (2, 4)
6 7 (6, 7) (6, 7)
6 5 (6, 5) (5, 6)
2 5 (2, 5) (2, 5)
4 5 (4, 5) (4, 5)
7 8 (7, 8) (7, 8)
8 6 (8, 6) (6, 8)

Considrese un arreglo de enteros dagpermute[1, , n]. Inicialmente se tendr que


dagpermute tiene los elementos:
dagpermute[1] = 1
dagpermute[2] = 2
dagpermute[3] = 3
dagpermute[4] = 4
dagpermute[5] = 5
dagpermute[6] = 6
dagpermute[7] = 7
dagpermute[8] = 8
Pero, mediante la aplicacin del Algoritmo randomPermutation se podra tener ahora:
dagpermute[1] = 8
dagpermute[2] = 4
dagpermute[3] = 6
dagpermute[4] = 2
dagpermute[5] = 7
dagpermute[6] = 3
dagpermute[7] = 5
dagpermute[8] = 1

El objetivo del arreglo dagpermute es el de redefinir a las aristas previamente


generadas. Cada vrtice de cada arista es redefinido mediante la siguiente regla:

nodea = dagpermute[nodea]
nodeb = dagpermute[nodeb]

Al aplicar la regla se tienen las aristas presentadas en la Tabla 6.7.

186
Captulo 6. Generacin Automtica de Grafos

Tabla 6.7. Redefinicin de las 10 aristas en la Tabla 6.6 antes de ser incorporadas
a un grafo simple dirigido acclico de 8 vrtices (vase el texto para detalles).
Arista Original dagpermute[nodea] dagpermute[nodeb] Arista Redefinida
(6, 7) 3 5 (3, 5)
(1, 8) 8 1 (8, 1)
(1, 6) 8 3 (8, 3)
(2, 4) 4 2 (4, 2)
(6, 7) 3 5 (3, 5)
(5, 6) 7 3 (7, 3)
(2, 5) 4 7 (4, 7)
(4, 5) 2 7 (2, 7)
(7, 8) 5 1 (5, 1)
(6, 8) 3 1 (3, 1)

Finalmente, se proceder a utilizar la matriz de adyacencias con el fin de identificar


aristas paralelas y desecharlas si es el caso.
(3, 5), adj[3][5] = 0: La arista se agrega al grafo final y adj[3][5] = 1.
(8, 1), adj[8][1] = 0: La arista se agrega al grafo final y adj[8][1] = 1 .
(8, 3), adj[8][3] = 0: La arista se agrega al grafo final y adj[8][3] = 1.
(4, 2), adj[4][2] = 0: La arista se agrega al grafo final y adj[4][2] = 1.
(3, 5), adj[3][5] = 1: La arista ya haba sido antes agregada.
o Se genera y redefine una nueva arista, por ejemplo, (3, 5):
(6, 7), adj[6][7] = 0: La arista se agrega al grafo final y adj[6][7] = 1.
(7, 3), adj[7][3] = 0: La arista se agrega al grafo final y adj[7][3] = 1.
(4, 7), adj[4][7] = 0: La arista se agrega al grafo final y adj[4][7] = 1.
(2, 7), adj[2][7] = 0: La arista se agrega al grafo final y adj[2][7] = 1.
(5, 1), adj[5][1] = 0: La arista se agrega al grafo final y adj[5][1] = 1.
(3, 1), adj[3][1] = 0: La arista se agrega al grafo final y adj[3][1] = 1.

Las aristas que conforman al grafo simple dirigido acclico son:


(3, 5), (8, 1), (8, 3), (4, 2), (6, 7), (7, 3), (4, 7), (2, 7), (5, 1), (3, 1)
El grafo se puede apreciar visualmente en la Figura 6.4. Dado que el grafo generado es
dirigido los pares de vrtices que conforman a las aristas deben asumirse pares ordenados,
es decir, (i, j) (j, i), i, j V(G).
2

1 3

4
8

7 5

6
Figura 6.4. Un grafo simple dirigido acclico formado por 8 vrtices y 10 aristas.

187
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Si se buscase la generacin de un multigrafo entonces el procedimiento para


generarlo no considerara el verificar la validez del nmero m de aristas requeridas, no se
requerira tampoco verificar que el vrtice inicial y el vrtice final de una arista sean
distintos y tampoco se requerira consultar en ningn si la arista est duplicada. El
Algoritmo 6.2 implementa los procedimientos antes descritos. ste recibe 7 entradas:
n: El nmero de vrtices del grafo a obtener.
m: El nmero de aristas del grafo a obtener.
Una variable Booleana simple:
o simple = true si el grafo a obtener ser simple.
o simple = false si el grafo a obtener ser un multigrafo.
Una variable Booleana directed:
o directed = true si el grafo a obtener ser dirigido.
o directed = false si el grafo a obtener ser no dirigido.
Una variable Booleana acyclic:
o acyclic = true si el grafo a obtener es acclico.
o acyclic = false si el grafo a obtener es no acclico.
Una variable Booleana weighted:
o weighted = true si el grafo a obtener es pesado.
o weighted = false si el grafo a obtener es no pesado.
minweight: El peso mnimo a aplicar a las aristas.
maxweight: El peso mximo a aplicar a las aristas.

El Algoritmo 6.2 proporcionar su salida de la siguiente manera:


Si se obtiene el valor NULL entonces la construccin del grafo solicitado no es posible.
Si la construccin del grafo fue exitosa entonces se recibe un conjunto con tres
elementos:
o V(G): El conjunto de vrtices del grafo generado.
o E(G): El conjunto de aristas del grafo generado.
o W(G): Una estructura asociada a las aristas del grafo y que contiene los pesos de
cada una de stas. Si weighted = false entonces se espera que W(G) = .
Ntese que las especificaciones de V(G) y E(G) van directamente en funcin de si el grafo
es representado por matriz de adyacencias o bien por listas de adyacencias.

Algoritmo 6.2. Generacin de Grafos Aleatorios.

Procedure randomGraph(Integer n, Integer m, Boolean simple, Boolean directed,


Boolean acyclic, Boolean weighted, Real minweight, Real maxweight)

Integer maxedges, nodea, nodeb, numedges, temp


Integer dagpermute[1, 2, , n]
// Se inicializa el grafo con n vrtices y 0 aristas. W(G) contendr los pesos de las
// aristas del grafo.
V(G) = {1, 2, , n}
E(G) =
W(G) =

188
Captulo 6. Generacin Automtica de Grafos

numedges = 0

// Se verifica si los grafos solicitados pueden ser construidos.


if simple = true then
maxedges = n * (n - 1)
if directed = false then
maxedges = maxedges / 2
end-of-if
if m > maxedges then
// Nmero de aristas excedente. El grafo no se puede construir.
return NULL
end-of-if
end-of-if

if acyclic = true then


maxedges = n * (n - 1) / 2
if m > maxedges then
// Nmero de aristas excedente. El grafo no se puede construir.
return NULL
end-of-if
// Se requiere un grafo acclico, se inicializa el arreglo dagpermute.
randomPermutation(n, dagpermute)
end-of-if

while numedges < m do


// Se generar una nueva arista para el grafo.
// getNextInteger retorna un entero aleatorio en {0, 1, , n-1}
nodea = getNextInteger(n) + 1
nodeb = getNextInteger(n) + 1

if (simple = true) (acyclic = true) then


if nodea = nodeb then
// Se ha detectado una arista con vrtices inicial y final
// iguales y el grafo solicitado es simple o acclico.
// Se reinicia la iteracin actual.
continue
end-of-if
end-of-if

if ((simple = true) (directed = false)) (acyclic = true) then


// Si el grafo solicitado es simple no dirigido o bien es un grafo
// acclico se procede a reordenar los vrtices de las arista actual
// de menor a mayor.

189
Una Introduccin a las Matemticas Discretas y Teora de Grafos

if (nodea > nodeb) then


temp = nodea
nodea = nodeb
nodeb = temp
end-of-if
end-of-if

// Si el grafo solicitado es acclico entonces se procede a redefinir


// la arista actual utilizando el arreglo dagpermute.
if acyclic = true then
nodea = dagpermute[nodea]
nodeb = dagpermute[nodeb]
end-of-if

// Si el grafo es un multigrafo entonces siempre se ejecuta el cdigo


// dentro de la siguiente estructura de decisin: la arista actual
// es vlida an cuando sea un lazo o bien si es paralela a otra arista ya
// existente.
// Si el grafo es simple se determina si la arista actual no haba sido antes
// generada.
if (simple = false) ((simple = true) ((nodea, nodeb) E(G))) then
numedges = numedges + 1
E(G) = E(G) {(nodea, nodeb)}
// Si el grafo es pesado se genera un peso dentro del intervalo
// [minweight, maxweight]
if weighted = true then
w(nodea, nodeb) = minweight +
getNextReal( ) * (maxweight + 1 - minweight)
W(G) = W(G) {w(nodea, nodeb)}
end-of-if
end-of-if
end-of-while

// El grafo fue construido exitosamente.


return {V(G), E(G), W}
end-of-procedure

6.4 Generacin de Grafos Bipartitas Aleatorios


Tenemos conocimiento de que un grafo bipartita es un grafo no dirigido cuyos
vrtices pueden ser particionados en dos subconjuntos tal que ninguna arista conecta a dos
vrtices en el mismo conjunto. Se abordar la generacin de grafos bipartitas aleatorios
dadas las cardinalidades n1 y n2 de los dos subconjuntos en los que se particiona su

190
Captulo 6. Generacin Automtica de Grafos

conjunto de n = n1 + n2 vrtices. Es posible tambin indicar el nmero m de aristas


requeridas. En este caso, el mximo de aristas que se puede llegar a tener est dado por
n1n2.

Supngase que se desea generar un grafo bipartita aleatorio con las siguientes
caractersticas:
n=7
n1 = 3
n2 = 4
m = 10
Dado que se satisface que m = 10 n1n2 = 12 se tiene que es posible construir el grafo
bipartita requerido.

Supongamos que nuestro grafo contar con representacin matricial. Entonces


inicialmente se procede a construir una matriz de adyacencias adj de tamao n n. La
matriz es inicializada con cero en todas sus posiciones. Vase la Tabla 6.8.

Tabla 6.8. Matriz de Adyacencias inicial


para un grafo bipartita de 7 vrtices
(vase el texto para detalles).
adj 1 2 3 4 5 6 7
1 0 0 0 0 0 0 0
2 0 0 0 0 0 0 0
3 0 0 0 0 0 0 0
4 0 0 0 0 0 0 0
5 0 0 0 0 0 0 0
6 0 0 0 0 0 0 0
7 0 0 0 0 0 0 0

El vrtice inicial y vrtice final de cada una de las m aristas del grafo son generados
aleatoriamente de acuerdo a la siguiente regla:

nodea = 1 + getNextReal( ) n1
nodeb = n1 + 1 + getNextReal( ) n2

En donde:
La funcin getNextReal genera nmeros aleatorios en el intervalo [0.0, 1.0).
El producto entre getNextReal y n1 es un nmero en el intervalo [0.0, n1) pero al sumar
uno a tal producto se obtiene un nmero en el intervalo [1.0, n1 + 1). Al utilizar la
funcin piso se asegura que el valor para nodea se encuentre en {1, 2, 3, , n1}. Estos
vrtices forman el primer subconjunto en la particin de los vrtices del grafo.
El producto entre getNextReal y n2 es un nmero en el intervalo [0.0, n2), pero al
sumarle n1 + 1 se obtiene un nmero en el intervalo [n1 + 1, n1 + n2 + 1). La funcin
piso asegura que el valor para nodeb forme parte de {n1 + 1, n1 + 2, , n1 + n2}. Este es
el segundo subconjunto que conforma a la particin de los vrtices del grafo.

191
Una Introduccin a las Matemticas Discretas y Teora de Grafos

En el caso de nuestro grafo bipartita se tendrn, por ejemplo, los vrtices


presentados en la Tabla 6.9.

Tabla 6.9. Generacin aleatoria de valores dentro de los conjuntos {1, 2, 3} (segunda columna)
y {4, 5, 6, 7} (cuarta columna) para la definicin de las 10 aristas candidatas
a incorporar a un grafo bipartita de 7 vrtices (vase el texto para detalles).
getNextReal( ) nodea getNextReal( ) nodeb
1 + 0.204864 3 3 + 1 + 0.666241 4
0.204864 0.666241
= 1.61459 = 1 = 6.66496 = 6
1 + 0.876297 3 3 + 1 + 0.123236 4
0.876297 0.123236
= 3.62889 = 3 = 4.49294 = 4
1 + 0.116297 3 3 + 1 + 0.851271 4
0.116297 0.851271
= 1.34889 = 1 = 7.40508 = 7

1 + 0.980568 3 3 + 1 + 0.498672 4
0.980568 0.498672
= 3.9417 = 3 = 5.99469 = 5

1 + 0.335574 3 3 + 1 + 0.647207 4
0.335574 0.647207
= 2.00672 = 2 = 6.58883 = 6

1 + 0.593103 3 3 + 1 + 0.236683 4
0.593103 0.236683
= 2.77931 = 2 = 4.94673 = 4
1 + 0.435213 3 3 + 1 + 0.819453 4
0.435213 0.819453
= 2.30564 = 2 = 7.27781 = 7
1 + 0.93808 3 3 + 1 + 0.497439 4
0.93808 0.497439
= 3.81424 = 3 = 5.98976 = 5
1 + 0.383601 3 3 + 1 + 0.057174 4
0.383601 0.057174
= 2.1508 = 2 = 4.2287 = 4

1 + 0.149941 3 3 + 1 + 0.376396 4
0.149941 0.376396
= 1.44982 = 1 = 5.50558 = 5

En consecuencia se tienen las siguientes aristas:


(1, 6)
(3, 4)
(1, 7)
(3, 5)
(2, 6)
(2, 7)
(2, 4)
(3, 5)
(2, 4)
(1, 5)

La presencia de cada arista en el grafo ser evaluada. Si una arista ya fue


previamente registrada entonces se requiere generar dos nuevos vrtices y verificar

192
Captulo 6. Generacin Automtica de Grafos

nuevamente si la arista resultante est presente o no en el grafo. La regla a utilizar es la


siguiente:

Si (nodea, nodeb) E(G) entonces E(G) = E(G) {(nodea, nodeb)}

Veamos que aristas de la Tabla 6.9, y apoyndonos en el uso de la matriz de


adyacencias, se agregarn definitivamente a nuestro grafo bipartita:
(1, 6), adj[1][6] = 0: adj[1][6] = 1 y adj[6][1] = 1.
(3, 4), adj[3][4] = 0: adj[3][4] = 1 y adj[4][3] = 1.
(1, 7), adj[1][7] = 0: adj[1][7] = 1 y adj[7][1] = 1.
(3, 5), adj[3][5] = 0: adj[3][5] = 1 y adj[5][3] = 1.
(2, 6), adj[2][6] = 0: adj[2][6] = 1 y adj[6][2] = 1.
(2, 4), adj[2][4] = 0: adj[2][4] = 1 y adj[4][2] = 1.
(2, 7), adj[2][4] = 0: adj[2][7] = 1 y adj[7][2] = 1.
(3, 5), adj[3][5] = 1: La arista fue previamente registrada.
o Se procede a generar una nueva arista, por ejemplo: (1, 4)
(1, 4), adj[1][4] = 0: adj[1][4] = 1 y adj[4][1] = 1.
(2, 4), adj[2][4] = 1: La arista fue previamente registrada.
o Se procede a generar una nueva arista, por ejemplo: (2, 5)
(2, 5), adj[2][5] = 0: adj[2][5] = 1 y adj[5][2] = 1.
(1, 5), adj[1][5] = 0: adj[1][5] = 1 y adj[5][1] = 1.

En este punto la matriz de adyacencias del grafo tiene el siguiente estado presentado
en la Tabla 6.10. Debido a que el grafo es no dirigido se tiene de hecho una matriz
simtrica.

Tabla 6.10. Matriz de Adyacencias para un grafo bipartita


de 7 vrtices una vez que se le han agregado 10 aristas
(vase el texto para detalles).
adj 1 2 3 4 5 6 7
1 0 0 0 1 1 1 1
2 0 0 0 1 1 1 1
3 0 0 0 1 1 0 0
4 1 1 1 0 0 0 0
5 1 1 1 0 0 0 0
6 1 1 0 0 0 0 0
7 1 1 0 0 0 0 0

Ahora se generarn n ndices de acuerdo a la siguiente regla:

nodec = nodea + getNextReal( ) (n + 1 - nodea )

Donde nodea = 1, 2, , n. La idea es utilizar al ndice nodec para reetiquetar, de manera


aleatoria, los vrtices del grafo. El ndice nodec es dependiente del ndice nodea. Dado un
ndice nodea y su correspondiente nodec, en toda arista en donde nodea aparezca, sta ser
actualizada al reemplazar el valor de nodea por el valor de nodec. En el caso particular de
la representacin matricial la operacin antes descrita es equivalente a utilizar al ndice

193
Una Introduccin a las Matemticas Discretas y Teora de Grafos

nodec para permutar, de manera aleatoria, a los renglones y columnas de la matriz de


adyacencia. Dado un ndice nodea y su correspondiente nodec, se procede a permutar a los
elementos en el rengln nodea con los elementos del rengln nodec, y tambin se procede a
permutar a los elementos en la columna nodea con los elementos en la columna nodec.

De acuerdo a lo anterior, se podra tener, para nuestro grafo bipartita en cuestin, la


secuencia de permutaciones presentada en la Tabla 6.11.

Tabla 6.11. Generacin aleatoria de valores dentro del conjunto {1, 2, 3, 4, 5, 6, 7} a fin de establecer
intercambios de renglones y columnas en la matriz de la Tabla 6.10 (vase el texto para detalles).
nodea getNextReal( ) nodec Permutaciones
1 + 0.283893 (7 + 1 - 1) Rengln 1 por Rengln 2
1 0.283893
= 2.98725 = 2 Columna 1 por Columna 2

2 + 0.315361 (7 + 1 - 2) Rengln 2 por Rengln 3


2 0.315361
= 3.70336 = 3 Columna 2 por Columna 3

3 + 0.202841 (7 + 1 - 3) Rengln 3 por Rengln 4


3 0.202841
= 4.01421 = 4 Columna 3 por Columna 4

4 + 0.169090 (7 + 1 - 4) Rengln 4 por Rengln 4


4 0.16909
= 4.67636 = 4 Columna 4 por Columna 4
5 + 0.407595 (7 + 1 - 5) Rengln 5 por Rengln 6
5 0.407595
= 6.22279 = 6 Columna 5 por Columna 6
6 + 0.210496 (7 + 1 - 6) Rengln 6 por Rengln 6
6 0.210496
= 6.42099 = 6 Columna 6 por Columna 6
7 + 0.086544 (7 + 1 - 7) Rengln 7 por Rengln 7
7 0.086544
= 7.08654 = 7 Columna 7 por Columna 7

Al aplicar los intercambios de renglones y columnas se tiene la matriz de


adyacencias final presentada en la Tabla 6.12.

Tabla 6.12. Matriz de Adyacencias para un grafo bipartita


de 7 vrtices una vez que se le han aplicado los intercambios de renglones
y columnas especificados en la Tabla 6.11 (vase el texto para detalles).
adj 1 2 3 4 5 6 7
1 0 0 1 0 1 1 1
2 0 0 1 0 0 1 0
3 1 1 0 1 0 0 0
4 0 0 1 0 1 1 1
5 1 0 0 1 0 0 0
6 1 1 0 1 0 0 0
7 1 0 0 1 0 0 0

Finalmente, de la matriz de adyacencias se obtienen las aristas del grafo bipartita


buscado. Especficamente, stas son extradas de su submatriz triangular superior debido a
que por definicin el grafo es no dirigido. Por lo tanto se tienen las siguientes aristas:

(1, 3), (1, 5), (1, 6), (1, 7), (2, 3), (2, 6), (3, 4), (4, 5), (4, 6), (4, 7)

194
Captulo 6. Generacin Automtica de Grafos

Vase la Figura 6.5. Analizando los vrtices que las conforman se deduce que el conjunto
de vrtices del grafo fue particionado en los siguientes dos subconjuntos:

{3, 5, 6, 7}
{1, 2, 4}

6
4

7
Figura 6.5. Un grafo bipartita de 7 vrtices. Su conjunto de vrtices
ha sido particionado en los subconjuntos {1, 2, 4} y {3, 5, 6, 7}.

El Algoritmo 6.3 implementa los procedimientos antes descritos. La


implementacin recibe tres entradas:

n1: Nmero de vrtices del primer subconjunto de vrtices en el grafo bipartita.


n2: Nmero de vrtices del segundo subconjunto de vrtices en el grafo.
m: Nmero de aristas requeridas en el grafo. Si m es cero entonces el grafo ser
generado con un nmero aleatorio de aristas.

Debe ser claro que n1n2 es el nmero mximo de aristas con que puede contar un grafo
bipartita. Por otro lado previamente se estableci que si m = 0 entonces el nmero de aristas
a generar ser determinado de manera aleatoria. El Algoritmo 6.3 proporcionar su salida
de la siguiente manera:

Se recibe un conjunto con tres elementos:


o V(G): El conjunto de vrtices del grafo generado.
o E(G): El conjunto de aristas del grafo generado.
o Un entero numedges que contiene el nmero de aristas en el grafo.

195
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Algoritmo 6.3. Generacin Automtica de Grafos Bipartitas Aleatorios.


Procedure randomBipartiteGraph(Integer n1, Integer n2, Integer m)
Integer n, nodea, nodeb, nodec, numedges
n = n1 + n2
// Se inicializa el grafo con n vrtices y 0 aristas.
V(G) = {1, 2, , n}
E(G) =

if m 0 then
// Se generar un grafo bipartita con exactamente m aristas.
if m > n1 * n2 then
// Si el nmero de aristas deseado excede al mximo posible
// entonces m es igualado a n1 * n2.
m = n1 * n2
end-of-if
numedges = 0
while numedges < m do
// Se genera un entero en el intervalo [1, n1]
nodea = 1 + getNextReal( ) * n1
// Se genera un entero en el intervalo [n1 + 1, n]
nodeb = n1 + 1 + getNextReal( ) * n2
if (nodea, nodeb) E(G) then
// Si la arista (nodei, nodej) no haba sido previamente
// identificada entonces es agregada al conjunto de aristas
// de G.
E(G) = E(G) {(nodea, nodeb)}
numedges = numedges + 1
end-of-if
end-of-while
else
// Si m = 0 entonces se genera un grafo bipartita con nmero aleatorio
// de aristas.
// El conjunto de aristas de G es inicializado aleatoriamente de manera
// que se tengan aristas con vrtices del grupo {1, 2, , n1} a vrtices
// del grupo {n1+1, n1+2, , n1+ n2}.
for nodea = 1 until n1 do
for nodeb = n1 + 1 until n do
// Se agrega una arista si y slo si el siguiente entero
// aleatorio generado es cero.
if getNextInteger(2) = 0 then
E(G) = E(G) {(nodea, nodeb)}
end-of-if
end-of-for
end-of-for
end-of-else

196
Captulo 6. Generacin Automtica de Grafos

for nodea = 1 until n do


nodec = nodea + getNextReal( ) * (n + 1 - nodea)
// El vrtice nodea ser reetiquetado como nodec.
// Por lo tanto, todas aquellas aristas de las cuales
// forma parte debern ser modificadas.
for each (u, v) E(G) do
if u = nodea then
E(G) = E(G) \ {(u, v)}
E(G) = E(G) {(nodec, v)}
end-of-if
end-of-for
for each (u, v) E(G) do
if v = nodea then
E(G) = E(G) \ {(u, v)}
E(G) = E(G) {(u, nodec)}
end-of-if
end-of-for
end-of-for
numedges = Card(E(G))
return {V(G), E(G), numedges}
end-of-procedure

6.5 Generacin de Grafos Regulares Aleatorios


Sabemos que un grafo regular es aquel en el que todos sus vrtices son del mismo
grado y adems es conectado. Se establecer un procedimiento para generar un grafo
regular aleatorio dados el nmero de vrtices n y el grado d que se desea tenga cada vrtice.

Antes de establecer nuestro algoritmo, en primer lugar plantearemos de manera


textual el siguiente procedimiento de 7 pasos el cual nos mostrar la forma en que se
generarn los grafos en cuestin:
Paso 1: Se inicia con un grafo G con n vrtices y cero aristas.
Paso 2: Si todo vrtice en el grafo es de grado d entonces el procedimiento ha
terminado.
Paso 3:
o Se eligen aleatoriamente dos vrtices no adyacentes u y v, es decir la arista
(u, v) E(G), tales que su grado sea menor a d. Si tales vrtices no son
encontrados entonces ir al Paso 5.
Paso 4: Se agrega la arista (u, v) al grafo y se retorna al Paso 2.
Paso 5: Si existe en G un nico vrtice con grado menor a d entonces ir al Paso 7.
Paso 6:
o Se eligen aleatoriamente dos vrtices adyacentes r y s, (r, s) E(G), ambos de
grado menor a d. Tambin se eligen aleatoriamente, e independientemente de su

197
Una Introduccin a las Matemticas Discretas y Teora de Grafos

grado, dos vrtices adyacentes p y q, (p, q) E(G), tales que p no es adyacente


a r y q no es adyacente a s, es decir, se debe cumplir:
(p, r) E(G) (q, s) E(G)
Se remueve la arista (p, q) y se agregan las nuevas aristas (p, r) y (q, s) a G. Se
retorna al Paso 2.
Paso 7:
o Considrese el vrtice r de grado menor a d. Se eligen aleatoriamente dos
vrtices adyacentes p y q, (p, q) E(G), tales que no sean adyacentes al vrtice
r. Es decir, se satisface que:
(p, r) E(G) (q, r) E(G)
Ahora la arista (p, q) ser removida de G y se agregarn las nuevas aristas (p, r)
y (q, r). Se retorna al paso 2.

Es necesario tomar en cuenta que si el valor de d es impar entonces el valor de n


debe ser un nmero par. Ello se debe a que sabemos, desde el Capitulo 5, que el nmero de
vrtices de grado impar es siempre par. De hecho, la situacin planteada requiere que todos
los vrtices sean de grado impar, en consecuencia, el valor de n necesariamente tiene que
ser par. Por otro lado, y de manera evidente, el valor de d debe ser siempre estrictamente
menor al de n. De lo contrario, el grafo buscado no puede ser construido. Finalmente,
hemos de tomar en cuenta que el nmero de aristas en un grafo regular de n vrtices y
grado d estar dado por (nd)/2.

El mtodo anterior ser aplicado en la ejemplificacin de la generacin de un grafo


regular de n = 10 vrtices y grado d = 3. Dado que d es impar, n es par y d < n, entonces el
grafo podr ser efectivamente construido. De acuerdo al Paso 1 se iniciar con un grafo de
10 vrtices y cero aristas. Vase la Figura 6.6.a.

Es claro que la proposicin especificada en el Paso 2 es falsa: todos los vrtices son
de grado diferente a 3. Por lo tanto se procede al Paso 3. Se deben elegir dos vrtices u y v
no adyacentes, no conectados por una arista, con grado menor a 3. En este punto contamos
con varias opciones. Supngase que se elige u = 1 y v = 2. De acuerdo al Paso 4 la arista
(1, 2) es agregada al grafo y se retorna al Paso 2. Vase la Figura 6.6.b.

Nuevamente vemos que no se satisface la proposicin especificada en el Paso 2 ya


que todos los vrtices son de grado diferente a 3, por lo tanto se procede al Paso 3. Se
eligen dos vrtices no adyacentes de grado menor a 3, u = 8 y v = 7. Se agrega entonces la
arista (8, 7), Paso 4. Vase la Figura 6.6.c. Se retorna al Paso 2.

La proposicin especificada en el Paso 2 sigue sin ser satisfecha ya que todos los
vrtices son de grado diferente a 3. Por lo tanto se procede al paso 3. Debe ser claro que la
idea es agregar aristas al grafo mientras la proposicin del Paso 2 no sea satisfecha y
mientras en el Paso 3 se encuentren pares de vrtices no adyacentes con grados menores a 3
los cuales dan lugar a una nueva arista segn el Paso 4. Las Figuras 6.6.d, 6.6.e y 6.6.f, las
Figuras 6.7.a a 6.7.f, y las Figuras 6.8.a y 6.8.b, muestran la secuencia de aristas agregadas
segn los Pasos 3 y 4. Tal secuencia finalizar, para nuestro ejemplo, cuando en el Paso 3
no se encuentre un par de vrtices no adyacentes de grado menor a 3.

198
Captulo 6. Generacin Automtica de Grafos

1 8 1 8

2 7 2 7
9 9

3 6 3 6
10 10

4 5 4 5
a) Inicializacin. b) Arista agregada: (1, 2).

1 8 1 8

2 7 2 9 7
9

10
3 6 3 6
10

4 5 4 5
c) Arista agregada: (7, 8). d) Arista agregada: (3, 6).

1 8 1 8

2 9 7 2 9 7

10 10
3 6 3 6

4 5 4 5
e) Arista agregada: (4, 7). f) Arista agregada: (2, 6).
Figura 6.6. Proceso de construccin de un grafo regular de grado 3 y 10 vrtices
(Primera Parte, vase el texto para detalles).

199
Una Introduccin a las Matemticas Discretas y Teora de Grafos

1 8 1 8

2 9 7 2 9 7

10 10
3 6 3 6

4 5 4 5
a) Arista agregada: (4, 5). b) Arista agregada: (3, 4).

1 8 1 8

2 9 7 2 9 7

10 10
3 6 3 6

4 5 4 5
c) Arista agregada: (2, 5). d) Arista agregada: (1, 8).

1 8 1 8

2 9 7 2 9 7

10 10
3 6 3 6

4 5 4 5
e) Arista agregada: (1, 7). f) Arista agregada: (5, 6).
Figura 6.7. Proceso de construccin de un grafo regular de grado 3 y 10 vrtices
(Segunda Parte, vase el texto para detalles).

200
Captulo 6. Generacin Automtica de Grafos

1 8 1 8

2 9 7 2 9 7

10 10
3 6 3 6

4 5 4 5
a) Arista agregada: (3, 8). b) Arista agregada: (9, 10).
Figura 6.8. Proceso de construccin de un grafo regular de grado 3 y 10 vrtices
(Tercera Parte, vase el texto para detalles).

En este punto de nuestro ejemplo, Figura 6.8.b, tenemos que las condiciones
impuestas en el Paso 3 no pueden ser satisfechas ya que todos los vrtices son de grado 3
excepto los vrtices 9 y 10 cuyo grado es uno. Estos ltimos vrtices tampoco pueden ser
seleccionados por el Paso 3 debido a que son adyacentes. El procedimiento tampoco puede
finalizar porque precisamente los vrtices 9 y 10 no son de grado 3 an. De acuerdo al Paso
3, debido a que los vrtices no adyacentes u y v de grado menor a 3 no pudieron ser
encontrados entonces se procede a efectuar el Paso 5.

De acuerdo al Paso 5, se debe satisfacer la existencia de un nico vrtice de grado


menor a 3. Sin embargo se tienen dos, lo que implica proceder a efectuar el Paso 6. ste
requiere de la eleccin de dos vrtices adyacentes r y s con grados menores a 3. Tambin se
requiere la eleccin de dos vrtices adyacentes p y q tales que p no es adyacente a r y q no
es adyacente a s. Sean r y s los vrtices 9 y 10 respectivamente. Sean p y q los vrtices 3 y
8 respectivamente. La arista (3, 8) debe ser removida mientras que las aristas (3, 9) y
(8, 10) son agregadas. Vase la Figura 6.9. Se retorna al Paso 2.

Por la Figura 6.9.b sabemos que los vrtices 9 y 10 son ambos de grado 2 mientras
que los restantes de grado 3. La condicin del Paso 2 no es an satisfecha. Tampoco la
condicin del Paso 3 es satisfecha ya que los vrtices 9 y 10 son adyacentes. La condicin
del Paso 5 tampoco es satisface. Nuevamente se efecta el Paso 6. La eleccin lgica para
los vrtices r y s son nuevamente los vrtices 9 y 10. Los vrtices adyacentes p y q pueden
ser los vrtices 1 y 2 ya que el vrtice 9 no es adyacente al vrtice 1 y el vrtice 10 no es
adyacente al vrtice 2. Por lo tanto la arista (1, 2) es eliminada mientras que las aristas
(1, 9) y (2, 10) son agregadas al grafo. Vase la Figura 6.10.

201
Una Introduccin a las Matemticas Discretas y Teora de Grafos

1 8 1 8

2 9 7 2 9 7

10 10
3 6 3 6

4 5 4 5
a) b)
Figura 6.9. Proceso de construccin de un grafo regular de grado 3 y 10 vrtices
(Cuarta Parte, vase el texto para detalles).

1 8 1 8

2 9 7 2 9 7

10 10
3 6 3 6

4 5 4 5
a) b)
Figura 6.10. Proceso de construccin de un grafo regular de grado 3 y 10 vrtices
(Quinta y ltima Parte, vase el texto para detalles).

Al retornar al Paso 2 se tiene que se satisface que todos los vrtices del grafo son de
grado 3 (Figura 6.10.b). En este punto el proceso finaliza.

El procedimiento computacional que permite la generacin de grafos regulares de n


vrtices de grado d, Algoritmo 6.4, opera de la siguiente manera:
Se hace uso del Algoritmo 6.1, randomPermutation, para efectuar las selecciones
aleatorias de vrtices.
Se utilizar un arreglo de enteros deg[1, , n] el cual contiene los grados de los
vrtices del grafo actual.
Etapa 1:
o Se buscan pares de vrtices no adyacentes tales que su grado sea menor a d. Si
se identifica un par, entonces la arista que los conecte es agregada. Si se
encuentra una arista que ya fue agregada pero sus vrtices son de grado menor a

202
Captulo 6. Generacin Automtica de Grafos

d entonces se utilizar una variable bandera indicando la existencia de vrtices


adyacentes de grado menor a d. Esta bandera ser utilizada en la Etapa 2 del
algoritmo. Es posible qu no se identifiquen pares de vrtices con grados
menores a d, sino que slo un vrtice con grado menor a d fue identificado el
cul no pudo ser conectado con los restantes vrtices debido a que los grados de
stos ya son iguales a d. En tal caso la mencionada bandera es tambin activada.
Etapa 2:
o Si la bandera indicando la presencia de vrtices con grados menores a d no est
encendida, entonces ello implica que todos los vrtices tienen grados iguales a d
y por lo tanto el grafo ha sido construido y por ende el proceso finaliza. Si la
bandera s se encuentra encendida entonces se procede a verificar si se encontr
una arista con vrtices de grados menores a d o bien slo un vrtice con grado
menor a d.
Si slo se identific un nico vrtice r de grado menor a d entonces se
deben buscar un par de vrtices adyacentes p y q tales que p y r, as
como q y r, no sean adyacentes. Si p y q son identificados se procede a
eliminar la arista (p, q) y se agregan las aristas (p, r) y (q, r). El grado del
vrtice r se actualiza.
Si se identificaron dos vrtices adyacentes r y s de grados menores a d
entonces se deben buscar un par de vrtices adyacentes p y q tales que p
y r, as como q y s, no sean adyacentes. Si p y q son identificados se
procede a eliminar la arista (p, q) y se agregan las aristas (p, r) y (q, s).
Los grados de los vrtices r y s se actualizan. El proceso retorna al inicio
de la Etapa 1.
En cualquier caso, el flujo del algoritmo se traslada nuevamente al inicio
de la Etapa 1.

El Algoritmo 6.4 recibe dos entradas:


n: Nmero de vrtices del grafo regular a obtener.
degree: Grado de cada vrtice en el grafo regular a obtener.
Se tendr la salida correspondiente de la siguiente manera:
Si el Algoritmo retorna un valor NULL entonces se present una de las dos siguientes
situaciones por las cuales el grafo no pudo ser construido:
o El nmero de vrtices es impar y el grado es impar.
o El nmero de vrtices es menor o igual al grado esperado en cada vrtice.
Si el algoritmo no proporcion como salida NULL entonces lo que se ha retornado es
un conjunto formado por 2 elementos:
o V(G): el conjunto de vrtices del grafo.
o E(G): el conjunto de aristas del grafo.

Algoritmo 6.4. Generacin Automtica de Grafos Regulares de Grado d.


Procedure randomRegularGraph(Integer n, Integer degree)
Integer i, j, p, q, r, s, u, v
Integer permute[1, 2, , n]
Integer deg[1, 2, , n]
Boolean more

203
Una Introduccin a las Matemticas Discretas y Teora de Grafos

r=0
s=0
v=0

// Se inicializa el grafo con n vrtices y 0 aristas.


V(G) = {1, 2, , n}
E(G) =

// El grado de cada vrtice es inicializado a cero.


for i = 1 until n do
deg[i] = 0
end-of-for

// Se verifica si es posible construir el grafo solicitado.


if degree mod 2 0 then
if n mod 2 0 then
// Si el grado es impar y el nmero de vrtices tambin
// es impar, entonces no es posible construir el grafo.
return NULL
end-of-if
end-of-if

if n degree then
// Si el nmero de vrtices es menor al grado deseado, entonces no
// es posible construir el grafo.
return NULL
end-of-if

// La etiqueta iterate identifica al ciclo while principal.


iterate: while true do
randomPermutation(n, permute)
more = false
// ETAPA 1: Se buscarn pares de nodos no adyacentes con grados
// menores a degree.
u=0
for i = 1 until n do
if deg[permute[i]] < degree then
// El vrtice en la posicin permute[i] tiene grado menor
// a degree. El indice permute[i] es guardado en la
// variable v.
v = permute[i]

// Dado que se encontr un vrtice con grado menor


// a degree, entonces la variable more es actualizada a true.
more = true

204
Captulo 6. Generacin Automtica de Grafos

for j = i+1 until n do


if deg[permute[j]] < degree then
// El vrtice en la posicin permute[j] tiene
// grado menor a degree. El indice permute[j]
// es guardado en la variable u.
u = permute[j]
if (v, u) E(G) then
// La arista (u, v) no ha sido
// previamente identificada.
// Se agrega al grafo y los grados
// de los vrtices u y v son actualizados.
E(G) = E(G) {(v, u)}
deg[v] = deg[v] + 1
deg[u] = deg[u] + 1
// Se ignora la iteracin actual del
// ciclo principal while y se inicia una
// nueva.
continue iterate
else
// Se han encontrado un par de vrtices
// adyacentes pero con grados menores
// a degree. Los vrtices de la ltima
// arista encontrada con tales
// caractersticas son guardados en las
// variables r y s. Obviamente la arista
// (r, s) no se agrega al grafo.
r=v
s=u
end-of-else
end-of-if
end-of-for
end-of-if
end-of-for

if more = false then


// No hay vrtices con grados menores a degree.
// Todos los vrtices tienen grados iguales a degree, por lo tanto,
// el grafo deseado ha sido construido. Se termina la ejecucin
// del ciclo while principal.
break
end-of-if

205
Una Introduccin a las Matemticas Discretas y Teora de Grafos

// ETAPA 2: Existen vrtices con grados menores a d pero que no pudieron


// ser conectados a los restantes vrtices del grafo.
if u = 0 then
// Se tiene que slo se identific un vrtice de grado menor a d que
// no pudo ser conectado a los vrtices restantes del grafo.
// Tal vrtice est guardado en la variable v. Ahora es renombrado
// como r.
r=v

// Se procede a buscar dos vrtices adjacentes p y q que a su vez no


// sean adyacentes al vrtice r.
for i = 1 until n - 1 do
p = permute[i] // Se tiene un vrtice candidato p.
if r p then // Se verifica que p y r sean distintos.
if (r, p) E(G) then

// Los vrtices p y r no son adyacentes.


for j = i + 1 until n do
// Se tiene un vrtice candidato q.
q = permute[j]
// Se verifica que q y r sean distintos.
if q r then
if ((p, q) E(G))
((r, q) E(G)) then
// Si p y q son
// adyacentes, y q y r no
// son adyacentes
// entonces la arista
// (p, q) se elimina y se
// agregan a la matriz de
// adyacencias las aristas
// (r,p) y (r,q).
E(G) = E(G) {(r, p)}
E(G) = E(G) {(r, q)}
E(G) = E(G) \ {(p, q)}
// Se actualiza el grado
// del vrtice r.
deg[r] = deg[r] + 1
deg[r] = deg[r] + 1
// Se ignora la iteracin
// actual del ciclo
// principal while
// y se inicia una nueva.
continue iterate
end-of-if

206
Captulo 6. Generacin Automtica de Grafos

end-of-if
end-of-for
end-of-if
end-of-if
end-of-for
else
// Se identificaron dos vrtices adyacentes de grado menor a degree.
// Tales vrtices se alojan en las variables r y s.
// Se procede a buscar dos vrtices adyacentes p y q tales que p no
// sea adyacente a r y que q no sea adyacente a s.
for i = 1 until n do
p = permute[i] // Se tiene un vrtice candidato p.
// Se verifica que p sea distinto a r y a s.
if (p r) (p s) then
if (r, p) E(G) then
// Los vrtices p y r no son adyacentes.
for j = 1 until n do
// Se tiene un vrtice candidato q.
q = permute[j]
if (q r) (q s) then
// Se verifica que q sea distinto a
// r y a s.
if ((p, q) E(G))
((s, q) E(G)) then
// Si p y q son adyacentes
// y s y q no son
// adyacentes entonces se
// remueve la arista
// (p, q) y se agrega la
// arista (p, r) y la arista
// (q, s).
E(G) = E(G) \ {(p, q)}
E(G) = E(G) {(r, p)}
E(G) = E(G) {(s, q)}
// Se actualizan los
// grados de los vrtices
// r y s.
deg[r] = deg[r] + 1
deg[s] = deg[s] + 1
// Se ignora la iteracin
// actual del ciclo
// principal while
// y se inicia una nueva.
continue iterate
end-of-if

207
Una Introduccin a las Matemticas Discretas y Teora de Grafos

end-of-if
end-of-for
end-of-if
end-of-if
end-of-for
end-of-else
end-of-while

// El grafo regular de n vrtices de grado degree ha sido construido.


return {V(G), E(G)}
end-of-procedure

6.6 Generacin de rboles de Expansin Aleatorios


El siguiente procedimiento genera un rbol de expansin aleatorio de n vrtices. El
mtodo construye el grafo requerido de la siguiente manera:

Se genera en primer lugar una permutacin aleatoria de n ndices:


(perm[1], perm[2], , perm[n]).
Se construye un rbol parcial inicial que se forma nicamente por el vrtice perm[1].
De manera sucesiva se irn agregando vrtices al rbol. Supngase que los vrtices que
conforman al rbol parcial actual son {perm[1], perm[2], , perm[i]}. Eljase
aleatoriamente un vrtice k en el rbol parcial y actualcese el grafo al agregarle tanto el
vrtice perm[i+1] as como la arista (perm[i+1], k).
El proceso de construccin termina cuando los n vrtices han sido todos incluidos en el
rbol.

Sabemos, desde el Captulo 5, que todo rbol de expansin de n vrtices tiene exactamente
n-1 aristas.

Considrese la construccin de un rbol de expansin de n = 8 vrtices. Por lo tanto


se deber generar una permutacin aleatoria del conjunto {1, 2, 3, 4, 5, 6, 7, 8}.
Supongamos que sta queda de la siguiente manera:
perm[1] = 4
perm[2] = 1
perm[3] = 2
perm[4] = 8
perm[5] = 6
perm[6] = 7
perm[7] = 3
perm[8] = 5

De acuerdo al procedimiento antes descrito se tiene que el rbol parcial inicial se


conformar nicamente por el vrtice perm[1] = 4. Vase la Figura 6.11.a.

208
Captulo 6. Generacin Automtica de Grafos

El conjunto actual de vrtices del rbol parcial es obviamente {4} (i = 1). De


acuerdo a nuestro procedimiento debe elegirse un vrtice k {4} el cul ser conectado
con el vrtice perm[i + 1] = perm[2] = 1. Evidentemente k = 4 y el rbol actual queda como
se presenta en la Figura 6.11.b.

El siguiente vrtice k a agregar debe ser elegido del conjunto {4, 1} (i = 2) y ser
conectado al vrtice perm[i + 1] = perm[3] = 2. Supngase que nuevamente k = 4. Vase la
Figura 6.11.c.

El conjunto actual de vrtices de nuestro rbol est dado por {4, 1, 2} (i = 3). El
siguiente vrtice k deber ser aleatoriamente elegido de tal conjunto y se har adyacente al
vrtice perm[i + 1] = perm[4] = 8. Haciendo que k = 1, entonces se tiene el rbol de la
Figura 6.11.d.

Dados los vrtices {4, 1, 2, 8} (i = 4) y haciendo k = 8, se tiene que se agrega la


arista con vrtice inicial 8 y vrtice final perm[i + 1] = perm[5] = 6. Vase la Figura 6.11.e.

El siguiente vrtice k debe ser elegido del conjunto {4, 1, 2, 8, 6} (i = 5) y ser


conectado al vrtice perm[i + 1] = perm[6] = 7. Supngase que k = 4. Se tiene el rbol
presentado en la Figura 6.11.f.

Para i = 6 y con el conjunto actual de vrtices {4, 1, 2, 8, 6, 7} se conectar al


vrtice perm[i + 1] = perm[7] = 3 con el vrtice, elegido aleatoriamente,
k = 6 {4, 1, 2, 8, 6, 7}. Vase la Figura 6.11.g.

Finalmente, para i = 7 el vrtice perm[i + 1] = perm[8] = 5 ser conectado con el


vrtice, supongamos, k = 8 {4, 1, 2, 8, 6, 7, 3}. Se tiene al rbol de expansin final
requerido con n = 8 vrtices y presentado en la Figura 6.11.h.

El Algoritmo 6.5, que implementa el procedimiento antes descrito, recibe como


entrada nicamente el nmero n de vrtices del rbol de expansin deseado. Como se
coment previamente, el rbol se conformar por n-1 aristas, las cuales son especificadas
en el conjunto, proporcionado como salida, E(G). Tambin se proporciona como salida el
conjunto de vrtices V(G).

209
Una Introduccin a las Matemticas Discretas y Teora de Grafos

4 4 1

a) b)

4 1 4 1 8

2 2

c) d)

4 1 8 4 1 8

2 6 2 7 6

e) f)

4 1 8

2 7 6 3

g)

4 1 8 5

2 7 6 3

h)
Figura 6.11. Proceso de construccin de un rbol de expansin de 8 vrtices (vase el texto para detalles).

210
Captulo 6. Generacin Automtica de Grafos

Algoritmo 6.5. Generacin Automtica de rboles de Expansin Aleatorios.


Procedure randomSpanningTree(Integer n)
Integer nodea, nodeb
Integer permute[1, 2, , n]

// Se inicializa el grafo con n vrtices y 0 aristas.


V(G) = {1, 2, , n}
E(G) =

// Se genera una permutacin aleatoria de n ndices.


randomPermutation(n, permute)

// Sea agregan n-1 aristas para formar el rbol de expansin.


for nodea = 2 until n do
// nodea es el vrtice a ser agregado al rbol actual.
// Se obtiene aleatoriamente un entero en el conjunto {1, 2, ..., nodea}
// Tal entero es guardado en la variable nodeb.
nodeb = getNextInteger(nodea - 1) + 1

// Se agrega la arista conformada por los vrtices nodea y nodeb.


E(G) = E(G) {(permute[nodea], permute[nodeb])}
end-of-for
return {V(G), E(G)}
end-of-procedure

6.7 Generacin de rboles Etiquetados y Cdigos de Prfer

Un rbol Etiquetado es un rbol al que le es asignada una etiqueta nica a cada


uno de sus vrtices. El nmero total de rboles etiquetados de n vrtices es nn-2. Esta
frmula tiene lugar gracias a que en 1918 Heinz Prfer proporcion un mtodo de
codificacin de rboles etiquetados al que hoy se le conoce como el Cdigo o Secuencia
de Prfer. Un Cdigo de Prfer no es ms que una cadena de n-2 enteros tomados del
conjunto {1, 2, 3, , n}, admitiendo repeticiones, para la cual est demostrado que est
asociada a uno y slo un rbol etiquetado de n vrtices. Ello quiere decir que cada posicin
en un Cdigo es uno de n posibles elementos. Dado que el Cdigo tiene longitud n-2
entonces tenemos que el nmero total de posibles cdigos es precisamente nn-2. Por ende,
este es tambin el nmero total de rboles etiquetados de n vrtices.

Considrese el rbol T presentado en la Figura 6.12. ste cuenta con el cdigo de


Prfer [3, 3, 4, 5, 4, 6]. En primer lugar vase que la longitud del cdigo es 6, por lo tanto
n = 8 = V(T). Obsrvese que el conjunto de enteros a tomar en cuenta est dado por
{1, 2, 3, 4, 5, 6, 7, 8}. Aquellos enteros que no aparecen en el cdigo son 1, 2, 7 y 8. De
acuerdo a la Figura 6.12, precisamente tales enteros corresponden a Nodos Hoja del rbol

211
Una Introduccin a las Matemticas Discretas y Teora de Grafos

T. Obsrvese tambin la relacin que existe entre el grado de cualquier vrtice v en T con el
nmero de veces que ste aparece en su Cdigo de Prfer. Los vrtices de mayor grado en
T son el 3 y el 4, ambos con grado 3. Ambos vrtices aparecen dos veces en el cdigo. A
este par le siguen los vrtices 5 y 6 cuyo grado es 2 y que aparecen nicamente una sola vez
en el cdigo. Estas observaciones conducen a establecer que todo vrtice v de grado deg(v)
que forma parte de un rbol etiquetado aparecer deg(v) 1 veces en el correspondiente
Cdigo de Prfer. Esta propiedad es consistente con los nodos hoja ya que stos al ser de
grado 1 aparecen 0 veces en el cdigo.

1 5

3 4

2 6

Figura 6.12. Un rbol Etiquetado de 8 vrtices con Cdigo de Prffer [3, 3, 4, 5, 4, 6].

El siguiente procedimiento permite obtener un rbol etiquetado de n vrtices dado


su cdigo de Prfer. Dada la cadena de n-2 enteros [p1, p2, , pn-2] se procede como sigue:
Se inicia con un rbol vaco T, V(T) = E(T) = , y se tienen dos conjuntos L1 y L2:
o L1 se inicializa con los n enteros 1, 2, , n, i.e., L1 = {1, 2, , n}.
o L2 se inicializa con los n-2 enteros en el Cdigo de Prfer dado, i.e.,
L2 = {p1, p2, , pn-2}.
Sea w1 el nmero ms pequeo contenido en L1 pero que a su vez no se encuentre en L2,
es decir: w1 = min{i: i L1 i L2}.
Se agrega la arista (w1, p1) al rbol T y se borra w1 de L1 y p1 de L2. Es decir, se efectan
las actualizaciones:
o V(T) = V(T) {w1, p1}
o E(T) = E(T) {(w1, p1)}
o L1 = L1 \ {w1}
o L2 = L2 \ {p1}
Sea w2 el nmero ms pequeo contenido en L1 pero no en L2:
o w2 = min{i: i L1 i L2}
Agregar la arista {w2, p2} al rbol T y borrar w2 de L1 y p2 de L2:
o V(T) = V(T) {w2, p2}
o E(T) = E(T) {(w2, p2)}
o L1 = L1 \ {w2}
o L2 = L2 \ {p2}

212
Captulo 6. Generacin Automtica de Grafos

El proceso anterior se efecta para cada wi, i = 1, 2, 3, , n-2:


o wi = min{i: i L1 i L2}
o V(T) = V(T) {wi, pi}
o E(T) = E(T) {(wi, pi)}
o L1 = L1 \ {wi}
o L2 = L2 \ {pi}
Es claro que cuando L2 se encuentre vaco se tendr que L1 contiene exactamente dos
enteros u y v. En este punto el rbol T es completado al agregarle la arista (u, v).
Por ejemplo, considrese el siguiente Cdigo de Prfer: [1, 2, 1, 3, 3, 5]. Se tienen 6
enteros lo que implica que su rbol asociado tiene n = 8 vrtices. Se obtendr su rbol
etiquetado asociado.
Se tienen inicialmente un rbol vaco y los conjuntos:
L1 = {1, 2, 3, 4, 5, 6, 7, 8}
L2 = {p1 = 1, p2 = 2, p3 = 1, p4 = 3, p5 = 3, p6 = 5}
Se busca al entero w1 ms pequeo en L1 pero que no est contenido en L2: 4. Se agrega la
arista {w1, p1} = (4, 1). Vase la Figura 6.13.a.
Ahora L1 = {1, 2, 3, 5, 6, 7, 8} y L2 = {p2 = 2, p3 = 1, p4 = 3, p5 = 3, p6 = 5}. Se
busca al entero w2 ms pequeo en L1 pero no contenido en L2. En este caso se tiene w2 = 6.
Se actualiza el rbol al agregar la arista (6, p2) = (6, 2) (Figura 6.13.b).
Se remueve w2 = 6 de L1 y p2 = 2 de L2:
L1 = {1, 2, 3, 5, 7, 8}
L2 = {p3 = 1, p4 = 3, p5 = 3, p6 = 5}
La siguiente arista a agregar es (2, 1) donde w3 = 2 y p3 = 1. Vase la Figura 6.13.c.
Al remover w3 y p3 de L1 y L2 respectivamente se tiene:
L1 = {1, 3, 5, 7, 8}
L2 = {p4 = 3, p5 = 3, p6 = 5}
Es claro que ahora w4 = 1, por lo que se tiene que la arista (1, 3) es agregada al rbol actual
(Figura 6.13.d).
L1 y L2 son debidamente actualizados:
L1 = {3, 5, 7, 8}
L2 = {p5 = 3, p6 = 5}
Se busca al entero w5 ms pequeo en L1 pero que no est en L2: 7. Se agrega la arista
(w5, p5) = (7, 3). Vase la Figura 6.13.e.
Ahora L1 = {3, 5, 8} y L2 = {p5 = 5}. Claramente la siguiente arista a agregar es
(3, 5), donde w6 = 3 y p6 = 5 (Figura 6.13.f). Finalmente se tiene que L1 = {5, 8} y L2 =.
Por lo que slo basta agregar la arista (5, 8) y con ello se tiene el rbol etiquetado final
presentado en la Figura 6.13.g.
En el caso de nuestro rbol etiquetado con cdigo de Prfer [1, 2, 1, 3, 3, 5] se tiene
que los enteros 4, 6, 7 y 8 son aquellos que precisamente no estn presentes en el cdigo.
De acuerdo a la representacin visual del rbol, Figura 6.13.g, se comprueba que los
vrtices con tales etiquetas corresponden a nodos hoja.

213
Una Introduccin a las Matemticas Discretas y Teora de Grafos

6 2

4 1 4 1
a) b)

6 2 6 2

4 1 4 1 3
c) d)

6 2 7

4 1 3
e)

6 2 7

4 1 3

5
f)

6 2 7

4 1 3

8 5
g)
Figura 6.13. Proceso de construccin de un rbol Etiquetado de 8 vrtices
y Cdigo de Prfer [1, 2, 1, 3, 3, 5] (Vase el texto para detalles)

214
Captulo 6. Generacin Automtica de Grafos

El Algoritmo 6.6 genera de manera aleatoria un cdigo de Prfer y a partir de ste


construye su rbol etiquetado correspondiente. Se espera como nico parmetro de entrada
el nmero n de vrtices en el rbol a generar. La salida del Algoritmo 6.6 es un conjunto
formado por 3 elementos:
El conjunto de vrtices del rbol, V(T).
El conjunto de aristas E(T).
El Cdigo de Prfer [p1, p2, , pn-2] correspondiente al rbol generado se guarda en el
arreglo prufercode de manera que prufercode[i] = pi, i = 1, 2, , n-2.

Algoritmo 6.6. Generacin Automtica de rboles Etiquetados y Cdigos de Prfer.

Procedure randomLabeledTree(Integer n)

Array prufercode[1, , n-2]


Array L2[1, , n-2]
Array L1[1, , n]
Integer u, v, i = 0, j = 0, k = 1, w = 0
Integer position = 0, selected = 0, currentEdge = 1
Boolean exists

// Si n es menor o igual 2 entonces no puede generarse un rbol mediante


// un Cdigo de Prfer.
if n 2 then
return NULL
end-of-if

// Se inicializa el rbol con n vrtices y 0 aristas.


V(T) = {1, 2, , n}
E(T) =

// Se seleccionan de manera aleatoria n-2 enteros en {1, 2, 3, ..., n}


// para generar el Cdigo de Prfer.
for i = 1 until n 2 do
L2[i] = 1 + getNextReal( ) * n
prufercode[i] = L2[i]
end-of-for

// Se inicializa el arreglo L1 de manera que L1[i] = i, i = 1, ..., n.


for i = 1 until n do
L1[i] = i
end-of-for

215
Una Introduccin a las Matemticas Discretas y Teora de Grafos

// Se procede a la construccin del rbol T mediante el cdigo de Prfer


// guardado en el arreglo L2.
while selected < n - 2 do
// Se busca al nmero w ms pequeo en L1 que no est en L2.
w=
for i = 1 until n do
if (L1[i] -1) (L1[i] < w) then
// Se tiene que el entero en L1[i] es ms pequeo
// que el w actual.
// Se verifica si L1[i] no existe en L2.
exists = false
for j = 1 until n 2 do
if L2[j] = L1[i] then
// L1[i] est en L2[i] por lo tanto se detiene
// la bsqueda y se hace exists = true
// para indicar su existencia.
exists = true
break
end-of-if
end-of-for
if exists = false then
// L1[i] es ms pequeo que el w actual y no
// est en L2.
// Se actualiza la variable w y se guarda su posicin i.
w = L1[i]
position = i
end-of-if
end-of-if
end-of-for

// Se tiene identificado al w ms pequeo en L1 que no est en L2.


// w es "removido" de L1.
L1[position] = -1
// Se agrega la arista (w, L2[k])
E(G) = E(G) {(w, L2[k])}
// L2[k] es "removido".
L2[k] = -1
// Se incrementa el contador k para apuntar al siguiente elemento de L2.
k=k+1
// Se incrementa el contador de aristas.
currentEdge = currentEdge + 1
// Se incrementa el contador de aristas agregadas al rbol.
selected = selected + 1
end-of-while

216
Captulo 6. Generacin Automtica de Grafos

// L1 tiene exactamente dos enteros u y v diferentes de -1.


// Tales enteros forman la ltima arista a agregar en el rbol.
// Se busca el primer entero y se guarda en u.
for i = 1 until n do
if L1[i] -1 then
u = L1[i]
L1[i] = -1
break
end-of-if
end-of-for

// Se busca el segundo entero y se guarda en v.


for i = 1 until n do
if L1[i] -1 then
v = L1[i]
break
end-of-if
end-of-for

// Se agrega la arista final (u, v).


// El rbol tendr todas sus aristas especificadas.
E(G) = E(G) {(u, v)}

return {V(G), E(G), prufercode}


end-of-procedure

6.8 Generacin de Grafos Hamiltonianos Aleatorios


Recordemos que un circuito Hamiltoniano en un grafo G es un circuito que visita a
cada vrtice de G exactamente una sola vez. Si G admite un circuito Hamiltoniano entonces
G es llamado grafo Hamiltoniano. En la Figura 6.14 se presenta un ejemplo de un grafo
Hamiltoniano.

Figura 6.14. Un Grafo Hamiltoniano de 6 vrtices.

Es claro que slo los grafos conectados pueden ser Hamiltonianos, en el sentido de
que existe la posibilidad de que cuenten con un circuito Hamiltoniano. Sin embargo, no
existe un criterio simple que indique si un grafo es o no Hamiltoniano.

217
Una Introduccin a las Matemticas Discretas y Teora de Grafos

El siguiente procedimiento genera un grafo Hamiltoniano aleatorio con un nmero


dado de n vrtices y m aristas. El grafo puede ser dirigido o no dirigido. El mtodo genera
inicialmente una permutacin aleatoria de n elementos (perm[1], perm[2], , perm[n]).
Cada uno de los elementos perm[i], i = 1, 2, , n, har el papel de vrtice. El grafo es
entonces descrito en principio por el circuito Hamiltoniano

(perm[1], perm[2], ..., perm[n-1], perm[n], perm[1])

Posteriormente se agregan de manera aleatoria aristas en el grafo hasta que el nmero


requerido m de stas es alcanzado.

Se deben tomar algunas consideraciones respecto a qu grafos pueden ser


construidos:
El nmero m de aristas debe ser al menos n, es decir, m n.
El nmero m de aristas debe ser a lo ms n(n-1)/2 para grafos no dirigidos y n(n-1) para
grafos dirigidos.

Supngase, por ejemplo, que se desea construir un grafo Hamiltoniano no dirigido


de n = 10 vrtices y m = 20 aristas. Es claro que m satisface

n(n 1)
= 45 m = 20 n = 10
2

Asumamos que se cuenta con la siguiente permutacin aleatoria de los elementos en el


conjunto {1, 2, , 9, 10}:
perm[1] = 9
perm[2] = 10
perm[3] = 7
perm[4] = 5
perm[5] = 8
perm[6] = 3
perm[7] = 1
perm[8] = 2
perm[9] = 6
perm[10] = 4

Tal como mencionamos con anterioridad el grafo contar con el siguiente circuito
Hamiltoniano:

(9, 10, 7, 5, 8, 3, 1, 2, 6, 4, 9)

Supongamos que el grafo es representado mediante una matriz de adyacencias. Al agregar


las 10 aristas requeridas para tal circuito (Figura 6.15) se tiene que la matriz de adyacencias
adj del grafo tiene el estado presentado en la Tabla 6.13.

218
Captulo 6. Generacin Automtica de Grafos

1 2

3 4 5

6 7 8

10 9
Figura 6.15. Las 10 aristas iniciales que conforman un Circuito Hamiltoniano
para un grafo de 10 vrtices y 20 aristas (Vase el texto para detalles).

Tabla 6.13. Representacin matricial del grafo Hamiltoniano en su fase inicial


de construccin de acuerdo a la Figura 6.15 (Vase el texto para detalles).
adj 1 2 3 4 5 6 7 8 9 10
1 0 1 1 0 0 0 0 0 0 0
2 1 0 0 0 0 1 0 0 0 0
3 1 0 0 0 0 0 0 1 0 0
4 0 0 0 0 0 1 0 0 1 0
5 0 0 0 0 0 0 1 1 0 0
6 0 1 0 1 0 0 0 0 0 0
7 0 0 0 0 1 0 0 0 0 1
8 0 0 1 0 1 0 0 0 0 0
9 0 0 0 1 0 0 0 0 0 1
10 0 0 0 0 0 0 1 0 1 0

An faltan por incorporar 10 aristas al grafo. Estas sern agregadas al generar


aleatoriamente sus vrtices inicial y final, nodea y nodeb respectivamente, de acuerdo a las
siguientes reglas:

nodea = getNextInteger(n) + 1
nodeb = getNextInteger(n) + 1

Se asume que getNextInteger(n) proporciona un entero aleatorio en el conjunto


{0, 1, , n-1}. En el caso de que nodea = nodeb o bien si la arista (nodea, nodeb) ya
existe, entonces los valores deben ser calculados nuevamente. Supngase que se tienen las
aristas generadas presentadas en la Tabla 6.14.

219
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Tabla 6.14. El conjunto de 10 aristas candidatas a ser agregadas


al grafo Hamiltoniano de la Figura 6.15 (Vase el texto para detalles).
getNextInteger(n) nodea getNextInteger(n) nodeb Arista
0 1 9 10 (1, 10)
3 4 2 3 (3, 4)
8 9 1 2 (2, 9)
7 8 3 4 (4, 8)
2 3 6 7 (3, 7}
9 10 4 5 (5, 10)
5 6 2 3 (3, 6)
1 2 4 5 (2, 5)
1 2 2 3 (2, 3)
0 1 3 4 (1, 4)

Finalmente nuestro grafo Hamiltoniano no dirigido generado queda tal como se


presenta en la Figura 6.16.

1 2

3 4 5

6 7 8

10 9
Figura 6.16. Un Grafo Hamiltoniano no dirigido conformado por 10 vrtices y 20 aristas.

Como establecimos con anterioridad, nuestro mtodo tambin permite la generacin


de grafos Hamiltonianos dirigidos. Slo debe tenerse en cuenta que las aristas son de hecho
aristas dirigidas. Por ejemplo, se desea un grafo Hamiltoniano dirigido con
n = 6 vrtices, m = 10 aristas y bajo representacin matricial. Vemos en primer lugar que
efectivamente se satisface la relacin entre el nmero de vrtices y el nmero de aristas del
grafo:
n(n 1) = 30 m = 10 n = 6
Se tiene la siguiente permutacin aleatoria de los elementos del conjunto {1, 2, 3, 4, 5, 6}:
perm[1] = 6
perm[2] = 3
perm[3] = 1
perm[4] = 4
perm[5] = 5
perm[2] = 2

220
Captulo 6. Generacin Automtica de Grafos

Por lo que grafo tendr el siguiente circuito Hamiltoniano (Figura 6.17):

(6, 3, 1, 4, 5, 2, 6)

La matriz de adyacencia asociada se presenta en la Tabla 6.15.

1 2

6 3

5 4
Figura 6.17. Las 6 aristas iniciales que conforman un Circuito Hamiltoniano
para un grafo dirigido de 6 vrtices y 10 aristas (Vase el texto para detalles).

Tabla 6.15. Representacin matricial del grafo dirigido Hamiltoniano


en su fase inicial de construccin de acuerdo a la Figura 6.17
(Vase el texto para detalles).
adj 1 2 3 4 5 6
1 0 0 0 1 0 0
2 0 0 0 0 0 1
3 1 0 0 0 0 0
4 0 0 0 0 1 0
5 0 1 0 0 0 0
6 0 0 1 0 0 0

Las cuatro aristas que complementan al grafo se generan aleatoriamente respetando


el orden en que los vrtices fueron generados ya que las aristas son dirigidas. Vase la
Tabla 6.16.

Tabla 6.16. El conjunto de 4 aristas candidatas a ser agregadas


al grafo dirigido Hamiltoniano de la Figura 6.17 (Vase el texto para detalles).
getNextInteger(n) nodea getNextInteger(n) nodeb Arista
3 4 5 6 (4, 6)
3 4 2 3 (4, 3)
5 6 1 2 (6, 2)
3 4 0 1 (4, 1)

Con lo que se tiene el grafo Hamiltoniano dirigido final de la Figura 6.18.

221
Una Introduccin a las Matemticas Discretas y Teora de Grafos

1 2

6 3

5 4
Figura 6.18. Un Grafo Dirigido Hamiltoniano conformado por 6 vrtices y 10 aristas.

El siguiente procedimiento, Algoritmo 6.7, permite la generacin de grafos


Hamiltonianos aleatorios. El algoritmo recibe 3 entradas:
n: Nmero de vrtices.
m: Nmero de aristas.
directed: Un valor Booleano.
o true si el grafo a obtener es dirigido.
o false si el grafo a obtener es no dirigido.
La salida del Algoritmo 6.7 estar constituida de la siguiente manera:
Si el grafo no pudo ser construido entonces se obtiene una salida NULL la cual implica
que una de las siguientes dos situaciones se present:
o El nmero de aristas es menor al de vrtices.
o El nmero de aristas excede al mximo permitido.
Si el grafo fue exitosamente construido entonces se obtiene como salida un conjunto
formado por V(G) y E(G).

Algoritmo 6.7. Generacin Automtica de Grafos Hamiltonianos Aleatorios.

Procedure randomHamiltonGraph(Integer n, Integer m, Boolean directed)


Integer k, maxedges, nodea, nodeb, numedges, temp
Array permute[1, , n]

// Se inicializa el grafo con n vrtices y 0 aristas.


V(G) = {1, 2, , n}
E(G) =

// Se determina si los parmetros de entrada son vlidos.


if m < n then
// El nmero de aristas es menor al de vrtices.
// El grafo no se puede construir.
return NULL
end-of-if

222
Captulo 6. Generacin Automtica de Grafos

maxedges = n * (n - 1)
if directed = false then
maxedges = maxedges / 2
end-of-if

if m > maxedges then


// Si el grafo que se desea es no dirigido pero el nmero de aristas
// es mayor a n(n-1)/2 entonces ste no puede ser construido.
// Si el grafo que se desea es dirigido pero el nmero de aristas
// es mayor a n(n-1) entonces ste tampoco puede ser construido.
return NULL
end-of-if

numedges = 0

// Se genera una permutacin aleatoria de los elementos en el


// conjunto {1, 2, 3, ..., n}
randomPermutation(n, permute)

// Se construye el circuito Hamiltoniano inicial.


for k = 1 until n do
if k = n then
nodea = permute[n]
nodeb = permute[1]
else
nodea = permute[k]
nodeb = permute[k + 1]
end-of-else

numedges = numedges + 1
// Se agrega la arista (nodea, nodeb).
E(G) = E(G) {(nodea, nodeb)}

if directed = false then


// Si el grafo es no dirigido entonces se debe sobreentender
// que la arista recien agregada (nodea, nodeb) es
// bidireccional.
end-of-if
end-of-for

223
Una Introduccin a las Matemticas Discretas y Teora de Grafos

// Se agregan las aristas aleatorias restantes.


while numedges < m do
// Se generan los vrtices inicial y final.
// getNextInteger(n) retorna un entero aleatorio en {0, 1, 2, ..., n-1}
nodea = getNextInteger(n) + 1
nodeb = getNextInteger(n) + 1
// Si los valores de nodea y nodeb son iguales entonces se cancela
// la iteracin actual del ciclo while y se inicia una nueva.
if nodea = nodeb then
continue
end-of-if
// Si el grafo es no dirigido y el valor de nodea es mayor al de nodeb,
// entonces se efecta un intercambio entre los valores de nodea y nodeb.
if (nodea > nodeb) (directed = false) then
temp = nodea
nodea = nodeb
nodeb = temp
end-of-if

if (nodea, nodeb) E(G) then


// Si la arista (nodea, nodeb) no existe entonces se agrega al grafo.
numedges = numedges + 1
E(G) = E(G) {(nodea, nodeb)}
end-of-if
end-of-while

return {V(G), E(G)}


end-of-procedure

6.9 Generacin de Grafos Regulares Isomorfos Aleatorios


Previamente, en el Captulo 5, establecimos que un Isomorfismo entre dos grafos G
y H es una biyeccin entre los conjuntos de vrtices V(G) y V(H) de los grafos G y H
respectivamente:

f : V (G ) V ( H )

De manera que cualesquiera par de vrtices u y v son adyacentes en G si y slo si f(u) y f(v)
son adyacentes en H. Si existe un Isomorfismo entre dos grafos sabemos que stos son
Isomorfos. Si se da el caso en que los grafos G y H son el mismo grafo, entonces se dice
que se tiene un Automorfismo.

Considrese el par de grafos G y H presentados en la Figura 6.19.

224
Captulo 6. Generacin Automtica de Grafos

a b

5 6

c d
1 2

8 7 e f

4 3

g h
G H
Figura 6.19. Dos grafos simples, G y H, Isomorfos.

Considrese el siguiente mapeo biyectivo:

a si n =1
b si n=2

c si n=3

d si n=4
f ( n) =
e si n=5
f si n=6

g si n=7
h n=8
si

Se verificar si los grafos G y H, de la Figura 6.19, son grafos Isomorfos. Para ello, se
determinar en primer lugar si toda arista de G es efectivamente una arista de H utilizando
la funcin f. A travs de la Tabla 6.17 podemos verificar que efectivamente el punto
planteado es cierto.

225
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Tabla 6.17. Verificando si toda arista del grafo G, de la Figura 6.19,


puede ser mapeada a una arista vlida en el grafo H mediante la funcin de mapeo f
(Vase el texto para detalles).
Arista (u, v) en G Arista (f(u), f(v)) (f(u), f(v)) es arista de H?
(1, 2) (f(1), f(2)) = (a, b) SI
(1, 4) (f(1), f(4)) = (a, d) SI
(1, 5) (f(1), f(5)) = (a, e) SI
(2, 3) (f(2), f(3)) = (b, c) SI
(2, 6) (f(2), f(6)) = (b, f) SI
(3, 4) (f(3), f(4)) = (c, d) SI
(3, 7) (f(3), f(7)) = (c, g) SI
(4, 8) (f(4), f(8)) = (d, h) SI
(5, 6) (f(5), f(6)) = (e, f) SI
(5, 8) (f(5), f(8)) = (e, h) SI
(6, 7) (f(6), f(7)) = (f, g) SI
(7, 8) (f(7), f(8)) = (g, h) SI

Dado que la funcin f fue definida como biyectiva entonces existe la funcin inversa
-1
f tal que f o f -1 y f -1 o f son funciones identidad. De hecho, f -1 est dada por:

1 iff n=a
2 iff n=b

3 iff n=c

1 4 iff n=d
f ( n) =
5 iff n=e
6 iff n= f

7 iff n=g
8 n=h
iff

Ahora se verificar si toda arista de H es efectivamente una arista de G utilizando a la


funcin f -1. De acuerdo a los resultados presentados en la Tabla 6.18 tenemos que la
respuesta a nuestro cuestionamiento es afirmativa.

Tabla 6.18. Verificando si toda arista del grafo H, de la Figura 6.19,


puede ser mapeada a una arista vlida en el grafo G mediante la inversa de la funcin de mapeo f
(Vase el texto para detalles).
Arista (u, v) en H Arista (f -1(u), f -1(v)) (f -1(u), f -1(v)} es arista de G?
(a, b) (f -1(a), f -1(b)) = (1, 2) SI
(a, d) (f -1(a), f -1(d)) = (1, 4) SI
(a, e) (f -1(a), f -1(e)) = (1, 5) SI
(b, c) (f -1(b), f -1(c)) = (2, 3) SI
(b, f) (f -1(b), f -1(f)) = (2, 6) SI
(c, d) (f -1(c), f -1(d)) = (3, 4) SI
(c, g) (f -1(c), f -1(g)) = (3, 7) SI
(d, h) (f -1(d), f -1(h)) = (4, 8) SI
(e, f) (f -1(e), f -1(f)) = (5, 6) SI
(e, h) (f -1(e), f -1(h)) = (5, 8) SI
(f, g) (f -1(f), f -1(g)) = (6, 7) SI
(g, h) (f -1(g), f -1(h)) = (7, 8) SI

226
Captulo 6. Generacin Automtica de Grafos

Por lo tanto, para los grafos dados, de la Figura 6.19, se ha demostrado que toda
arista de G es una arista de H, y viceversa, mediante la biyeccin f. Por lo tanto, los grafos
G y H son Isomorfos.

Ahora se presentar un procedimiento para la generacin de grafos Isomorfos. En


particular, se considerar la generacin de grafos regulares no dirigidos Isomorfos. El
Algoritmo 6.8 requerir se especifique el nmero n de vrtices y su grado d. En primer
lugar se genera un grafo regular aleatorio mediante el algoritmo randomRegularGraph
(Algoritmo 6.4). Posteriormente se genera una permutacin aleatoria del conjunto
{1, 2, 3, , n} que se guarda en un arreglo map. El segundo grafo se obtiene al renombrar
a los vrtices del primer grafo aleatorio utilizando la permutacin aleatoria como funcin
de mapeo. El vrtice i en el primer grafo ser renombrado como el vrtice map[i] en el
segundo grafo. Evidentemente los dos grafos generados son Isomorfos. Se reciben dos
parmetros de entrada:

n: Nmero de vrtices en los grafos.


degree: Grado de los vrtices.
La salida ser un conjunto formado por los siguientes elementos:
Grafo 1: Su conjunto de vrtices V(G) y aristas E(G).
Grafo 2: Su conjunto de vrtices V(G2) y aristas E(G2).
Se tiene un arreglo de enteros map que representa el mapeo que permite la relacin de
Isomorfismo entre los grafos obtenidos. El vrtice i del primer grafo es renombrado
como el vrtice map[i] en el segundo grafo, i = 1, 2, , n.

Algoritmo 6.8. Generacin Automtica de Grafos Isomorfos Regulares de Grado d.

Procedure randomIsomorphicRegularGraphs(Integer n, Integer degree)

Array map[1, , n]

// Se genera un grafo regular de grado degree con n vrtices.


// Se asume que los valores de n y degree son compatibles de manera que la
// construccin del grafo es exitosa.
{V(G), E(G), numedges} = randomRegularGraph(n, degree)

// Se inicializa el segundo grafo con n vrtices y 0 aristas.


V(G2) = {1, 2, , n}
E(G2) =

// Se genera una permutacin aleatoria de los elementos


// del conjunto {1, 2, ..., n}
randomPermutation(n, map)

227
Una Introduccin a las Matemticas Discretas y Teora de Grafos

// Los vrtices que conforman las aristas del primer grafo


// son renombrados a fin de obtener el segundo grafo.
for each (u, v) E(G) do
// Los vertices de la arista (u, v) del primer grafo son renombrados
// utilizando el mapeo generado con randomPermutation.
E(G2) = E(G2) {(map[u], map[v])}
end-of-for

// El arreglo map contiene el mapeo que relaciona


// a los grafos como isomorfos.
return {V(G), E(G), V(G2), E(G2), map}
end-of-procedure

228
Una Introduccin a las Matemticas Discretas y Teora de Grafos

7. Grafos:
Algoritmos Bsicos
Una Introduccin a las Matemticas Discretas y Teora de Grafos

230
Captulo 7. Grafos: Algoritmos Bsicos

7.1 Bsqueda por Profundidad


Se presentar un algoritmo el cual examina de manera sistemtica los vrtices y
aristas de un grafo G. El grafo G que se usar para ejemplificar el algoritmo de Bsqueda
por Profundidad es presentado en la Figura 7.1 junto con sus listas de adyacencias.

A
Vrtice Listas de adyacencias
A B, C, D
C B D B A, E, F
C A, F
D A
F E G E B, F, G
F B, C, E
G E, H
H H G
Figura 7.1. Un grafo con su representacin por listas de adyacencias.

Durante la ejecucin del algoritmo, cada vrtice X de G estar en uno de tres


estados, referenciados como el estatus de X tal como sigue:
STATUS(X) = 1: El vrtice X no ha sido procesado.
STATUS(X) = 2: El vrtice X est en lista de espera.
STATUS(X) = 3: El vrtice X ha sido procesado.

La lista de espera para la Bsqueda por Profundidad ser una pila (stack). La idea
general detrs del algoritmo, iniciando por el vrtice A, es como sigue:
Primero se procesa el vrtice inicial A.
Entonces se procesa cada vrtice X a lo largo de una ruta P que comienza en A; es decir,
se procesa a un vecino de A, despus a un vecino de un vecino de A y as
sucesivamente.
Despus de llegar a un punto muerto, es decir, a un vrtice sin vecinos no procesados,
se retrocede sobre la ruta P hasta que se contina a lo largo de otra ruta P' y as
sucesivamente.
El retroceso es controlado mediante una pila que contiene vrtices es espera los cuales
sern utilizados para definir posibles futuras rutas. El valor STATUS indica el estatus
actual de cualquier vrtice a fin de evitar el procesar a un vrtice en ms de una ocasin.
En el Algoritmo 7.1 se presenta nuestra implementacin de la Bsqueda por Profundidad.
La pila es controlada a travs de las bien conocidas funciones Push y Pop. Tambin se
mencionan las funciones IsEmpty e Initialize que determinan si una pila est vaca y que
inicializan una pila vaca, respectivamente.

El Algoritmo 7.1 slo procesara aquellos vrtices que estn conectados al vrtice
inicial A, es decir, aquellos vrtices a los que se puede llegar a partir de A. Por ejemplo, la
Bsqueda por Profundidad aplicada al grafo de la Figura 7.2, iniciando desde el vrtice 1,
nunca procesar al vrtice 3 debido a que no existe una ruta entre ellos.

231
Una Introduccin a las Matemticas Discretas y Teora de Grafos

1 2

4 3
Figura 7.2. Un grafo desconectado para el cual la Bsqueda por Profundad
nunca descubre al vrtice 3 por no existir una ruta que lo conecte con el vrtice inicial 1.

Algoritmo 7.1. Implementacin de la Bsqueda por Profundidad.


Procedure DepthFirstSearch(graph G, vertex A)

Initialize(S) // Se inicializa la pila vaca S.

for each vertex v V(G) do


STATUS(v) = 1
end-of-for

STATUS(A) = 2
Push(S, A) // Se introduce el vrtice inicial A en la pila S.

while(IsEmpty(S) = False) do // Mientras la pila S no est vaca.


X = Pop(S) // Es extrado un vrtice de la pila S.
STATUS(X) = 3 // Se etiqueta al vrtice X como procesado.
N(X) = getNeighborhood(X) // Se calcula la vecindad del vrtice N.
for each vertex J N(X) do
if (STATUS(J) = 1) then // Se ha descubierto un vrtice no procesado.
STATUS(J) = 2
Push(S, J) // El vrtice J se introduce a la pila S.
end-of-if
// Si STATUS(J) = 2 o 3 entonces el vrtice solo es ignorado debido
// a que ya fue previamente descubierto o visitado.
end-of-for
end-of-while
end-of-procedure

Considrese que al grafo presentado en la Figura 7.1 se le aplica una Bsqueda por
Profundidad iniciando por el vrtice A. Los vrtices sern procesados por el algoritmo en el
siguiente orden:
A, D, C, F, E, G, H, B
Especficamente, en la Tabla 7.2 se muestra la secuencia de listas de espera en la
pila y en la Tabla 7.1 el procesamiento de los vrtices junto con sus estados en cada
iteracin, denotada por T. Cada vrtice, excluyendo al inicial A, es obtenido de una
vecindad y por lo tanto tal vrtice y el vrtice propietario de la vecindad definen una arista
en el grafo. Estas aristas forman un rbol de G el cul es presentado en la Figura 7.24 (los
nmeros indican el orden en que las aristas fueron agregadas al rbol).

232
Captulo 7. Grafos: Algoritmos Bsicos

Tabla 7.1. Procesamiento de los vrtices del grafo de la Figura 7.1


en cada iteracin T de la Bsqueda por Profundidad. El vrtice inicial es A.
Estatus
Vrtice T=0 T=1 T=2 T=3 T=4 T=5 T=6 T=7 T=8
A 2 3 3 3 3 3 3 3 3
B 1 2 2 2 2 2 2 2 3
C 1 2 2 3 3 3 3 3 3
D 1 2 3 3 3 3 3 3 3
E 1 1 1 1 2 3 3 3 3
F 1 1 1 2 3 3 3 3 3
G 1 1 1 1 1 2 3 3 3
H 1 1 1 1 1 1 2 3 3

Tabla 7.2. Estado de la lista de espera (pila) en cada iteracin T


de la Bsqueda por Profundidad aplicada sobre el grafo de la Figura 7.1.
El vrtice inicial es A.

T Vrtice Procesado Pila ( TOP )

0 A
1 A D, C, B
2 D C, B
3 C F, B
4 F E, B
5 E G, B
6 G H, B
7 H B
8 B

A
2 1
7
C B D
3
5
F E G
4

6
H

Figura 7.3. rbol generado por la Bsqueda por Profundidad


aplicada sobre el grafo de la Figura 7.1 con el vrtice inicial A (los nmeros indican el orden
en que las aristas fueron agregadas al rbol).

233
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Ahora se aplicar al mismo grafo de la Figura 7.1 una Bsqueda por Profundidad
pero iniciando por el vrtice F. Los vrtices sern procesados por el algoritmo en el
siguiente orden:

F, E, G, H, B, A, D, C

En las Tablas 7.3 y 7.4 se muestran los correspondientes procesamientos de los vrtices y el
estado de la pila durante cada iteracin del algoritmo, respectivamente. Ntese que el rbol
obtenido, y presentado en la Figura 7.4, es diferente al de la Figura 7.3. El primer rbol
proporciona informacin respecto a qu vrtices son alcanzables desde el vrtice A,
mientras que el segundo muestra los vrtices alcanzables desde F. En ambos casos todos
los vrtices del grafo son alcanzables desde A o F ya que el grafo original es conectado.

Tabla 7.3. Procesamiento de los vrtices del grafo de la Figura 7.1


en cada iteracin T de la Bsqueda por Profundidad. El vrtice inicial es F.
Status
Vrtice T=0 T=1 T=2 T=3 T=4 T=5 T=6 T=7 T=8
A 1 1 1 1 1 2 3 3 3
B 1 2 2 2 2 3 3 3 3
C 1 2 2 2 2 2 2 2 3
D 1 1 1 1 1 1 2 3 3
E 1 2 3 3 3 3 3 3 3
F 2 3 3 3 3 3 3 3 3
G 1 1 2 3 3 3 3 3 3
H 1 1 1 2 3 3 3 3 3

Tabla 7.4. Estado de la lista de espera (pila) en cada iteracin T de la Bsqueda por Profundidad
aplicada sobre el grafo de la Figura 7.1. El vrtice inicial es F.

T Vrtice Procesado Pila ( TOP )

0 F
1 F E, B, C
2 E G, B, C
3 G H, B, C
4 H B, C
5 B A, C
6 A D, C
7 D C
8 C

234
Captulo 7. Grafos: Algoritmos Bsicos

A
6
5
C B D
7 4

F E G
1 2

3
H
Figura 7.4. rbol generado por la Bsqueda por Profundidad
aplicada sobre el grafo de la Figura 7.1 con el vrtice inicial F (los nmeros indican el orden
en que las aristas fueron agregadas al rbol).

7.2 Bsqueda por Amplitud

La idea general detrs de la Bsqueda por Amplitud est dada de la siguiente


manera:
Primero se procesa el vrtice inicial A.
Se procesan primero todos los vecinos de A, es decir, a aquellos vrtices en N(A). Al
momento de procesar a un vrtice en N(A) se descubrirn nuevos vrtices. Estos nuevos
vrtices son vecinos de los vecinos del vrtice A y se agregan al final de la lista de
espera.
Se procesan ahora a todos los vecinos de los vecinos de A (aquellos vrtices
descubiertos en el punto anterior). Al procesar a cada uno de estos vrtices es claro que
se descubrirn otros nuevos, pero sern agregados al final de la lista de espera. Y as
sucesivamente.
Naturalmente, se requiere mantener el seguimiento de los vecinos de un vrtice, y se deber
garantizar que ningn vecino sea procesado en dos ocasiones. Estos requerimientos se
completan al considerar el uso de una cola (queue) para mantener a los vrtices en espera
de ser procesados y tambin al considerar un estatus (1, 2, o 3) que indica el estado actual
de un vrtice. Ntese que, a diferencia de la Bsqueda por Profundidad, los vrtices sern
procesados estrictamente en el orden en que son descubiertos.

La implementacin para la Bsqueda por Amplitud se presenta en el Algoritmo 7.2.


Obsrvese que de hecho el algoritmo presentado es el mismo que el
Algoritmo 7.1 (Bsqueda por Profundidad), excepto que se consideran ahora las
instrucciones para la manipulacin de una cola: Enqueue, Dequeue, Initialize, IsEmpty.
Enqueue y Dequeue insertan y extraen un elemento de la cola, respectivamente. Initialize
inicializa una cola vaca e IsEmpty verifica si una cola est o no vaca.

235
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Algoritmo 7.2. Implementacin de la Bsqueda por Amplitud.

Procedure BreadthFirstSearch(graph G, vertex A)

Initialize(Q) //Se inicializa la cola vaca Q.

for each vertex v V(G) do


STATUS(v) = 1
end-of-for

STATUS(A) = 2
Enqueue(Q, A) //Se introduce el vrtice inicial A en la cola Q.

while(IsEmpty(Q) = False) do //Mientras la cola Q no est vaca.


X = Dequeue(Q) //Es extrado un vrtice de la cola Q.
STATUS(X) = 3 //Se etiqueta al vrtice X como procesado.
N(X) = getNeighborhood(X) //Se calcula la vecindad del vrtice N.
for each vertex J N(X) do
if (STATUS(J) = 1) then //Se ha descubierto un vrtice no procesado.
STATUS(J) = 2
Enqueue(S, J) //El vrtice J se introduce a la cola Q.
end-of-if
// Si STATUS(J) = 2 o 3 entonces el vrtice solo es ignorado debido
// a que ya fue previamente descubierto o visitado.
end-of-for
end-of-while
end-of-procedure

Tal como en la Bsqueda por Profundidad, el Algoritmo 7.2 slo procesara


aquellos vrtices que estn conectados al vrtice inicial A, es decir, aquellos vrtices para
los cuales existe una ruta que permita llegar al vrtice A.

Considrese que al grafo, usado en la ejemplificacin de la Bsqueda por


Profundidad, y presentado en la Figura 7.1, se le aplica una Bsqueda por Amplitud
iniciando por el vrtice A. Los vrtices sern procesados en el siguiente orden:

A, B, C, D, E, F, G, H

Especficamente, en la Tabla 7.6 se muestra, para cada iteracin T del algoritmo, el


estado de la lista de espera y, en la Tabla 7.5, el procesamiento de los vrtices junto con la
evolucin de sus estados. Cada vrtice procesado X es obtenido de una vecindad N(J), y por
lo tanto ambos forman una arista (X, J) presente en el grafo de entrada. Estas aristas forman
un rbol de G el cul es presentado en la Figura 7.5. En general, los rboles obtenidos
mediante Bsqueda por Amplitud son distintos a los obtenidos mediante Bsqueda por
Profundidad.

236
Captulo 7. Grafos: Algoritmos Bsicos

Tabla 7.5. Procesamiento de los vrtices del grafo de la Figura 7.1


en cada iteracin T de la Bsqueda por Amplitud. El vrtice inicial es A.
Estatus
Vrtice T=0 T=1 T=2 T=3 T=4 T=5 T=6 T=7 T=8
A 2 3 3 3 3 3 3 3 3
B 1 2 3 3 3 3 3 3 3
C 1 2 2 3 3 3 3 3 3
D 1 2 2 2 3 3 3 3 3
E 1 1 2 2 2 3 3 3 3
F 1 1 2 2 2 2 3 3 3
G 1 1 1 1 1 2 2 3 3
H 1 1 1 1 1 1 1 2 3

Tabla 7.6. Estado de la lista de espera (cola) en cada iteracin T de la Bsqueda por Amplitud
aplicada sobre el grafo de la Figura 7.1. El vrtice inicial es A.

T Vrtice Procesado Cola ( Tail Head )

0 A
1 A D, C, B
2 B F, E, D, C
3 C F, E, D
4 D F, E
5 E G, F
6 F G
7 G H
8 H

A
2 3
1
C B D
5 4
6
F E G

7
H
Figura 7.5. rbol generado por la Bsqueda por Amplitud
aplicada sobre el grafo de la Figura 7.1 con el vrtice inicial A (los nmeros indican el orden
en que las aristas fueron agregadas al rbol).

Ahora se aplicar al mismo grafo, de la Figura 7.1, una Bsqueda por Amplitud
iniciando por el vrtice F. Los vrtices sern procesados en el siguiente orden:

F, B, C, E, A, G, D, H

237
Una Introduccin a las Matemticas Discretas y Teora de Grafos

En las Tablas 7.7 y 7.8 se muestran los correspondientes procesamientos de los vrtices y el
estado de la cola durante cada iteracin del algoritmo, respectivamente. En la Figura 7.6 se
muestra el correspondiente rbol de Bsqueda por Amplitud.

Tabla 7.7. Procesamiento de los vrtices del grafo de la Figura 7.1


en cada iteracin T de la Bsqueda por Amplitud. El vrtice inicial es F.
Estatus
Vrtice T=0 T=1 T=2 T=3 T=4 T=5 T=6 T=7 T=8
A 1 1 2 2 2 3 3 3 3
B 1 2 3 3 3 3 3 3 3
C 1 2 2 3 3 3 3 3 3
D 1 1 1 1 1 2 2 3 3
E 1 2 2 2 3 3 3 3 3
F 2 3 3 3 3 3 3 3 3
G 1 1 1 1 2 2 3 3 3
H 1 1 1 1 1 1 2 2 3

Tabla 7.8. Estado de la lista de espera (cola) en cada iteracin T de la Bsqueda por Amplitud
aplicada sobre el grafo de la Figura 7.1. El vrtice inicial es F.

T Vrtice Procesado Cola ( Tail Head )

0 F
1 F E, C, B
2 B A, E, C
3 C A, E
4 E G, A
5 A D, G
6 G H, D
7 D H
8 H

A
6
4
C B D

2 1

F E G
3 5

7
H
Figura 7.6. rbol generado por la Bsqueda por Amplitud
aplicada sobre el grafo de la Figura 7.1 con el vrtice inicial F (los nmeros indican el orden
en que las aristas fueron agregadas al rbol).

238
Captulo 7. Grafos: Algoritmos Bsicos

7.3 rboles de Expansin Mnimos


Recordemos que un subgrafo T de un grafo conectado G es llamado un Arbol de
Expansin de G si T es un rbol y adems T incluye a todos los vrtices de G, es decir,
V(T) = V(G). En la Figura 7.7 se presenta un grafo G y tres posibles rboles de expansin
T1, T2 y T3 de G. Ntese que las Bsquedas por Profundidad y Amplitud, cuando reciben
como entrada un grafo conectado, forman un rbol de expansin de tal grafo de entrada.

G T1

T2 T3
Figura 7.7. Tres rboles de expansin para el grafo G.

Ahora supngase que G es un grafo conectado pesado. Es decir, cada arista de G


tiene asignado un nmero no negativo: el peso de la arista. Entonces a cualquier rbol de
expansin T de G le es asignado un peso total obtenido al sumar los pesos de las aristas en
T. Un rbol de Expansin Mnimo (Minimum Spanning Tree) de G es un rbol de
expansin cuyo peso total es tan pequeo como sea posible. Se presentarn dos soluciones
algortmicas. Para todo grafo conectado G de n vrtices es claro que todo rbol de
expansin de G tendr exactamente n-1 aristas. El primer mtodo proceder de la siguiente
manera:
1. Hacer T = G.
2. Ordenar las aristas de G en orden decreciente respecto a su peso.
3. Se procede secuencialmente, respetando el ordenamiento previo, examinando cada
arista. La arista actual e se borrar de T siempre y cuando T \ e no sea un grafo
desconectado. Se termina el proceso cuando T cuenta con exactamente n-1 aristas.
4. T es el rbol de expansin mnimo y se retorna como salida.

La otra solucin que consideraremos es conocida como el Algoritmo de Kruskal.


Se procede de la siguiente manera:
1. Se inicializa a T como un bosque formado nicamente por los vrtices de G.
2. Ordenar las aristas de G en orden ascendente respecto a su peso.
3. Se procede secuencialmente, respetando el ordenamiento previo, examinando a cada
arista. La arista actual e se agregar a T siempre y cuando T {e} (el grafo que se
obtiene al agregar la arista e a T) sea libre de circuitos. Se termina el proceso cuando T
cuenta con exactamente n-1 aristas.
4. T es el rbol de expansin mnimo y se retorna como salida.

239
Una Introduccin a las Matemticas Discretas y Teora de Grafos

El peso de un rbol de expansin mnimo es nico, pero el rbol de expansin


mnimo no necesariamente lo es. Se pueden obtener diferentes rboles de expansin
mnimos cuando dos o ms aristas tienen el mismo peso. En tal caso, el ordenamiento de
las aristas en el paso 2 de los dos procedimientos descritos no es nico y por lo tanto puede
resultar en rboles de expansin mnimos distintos.

A 8 B
7 3
7

C 4
5 D

6 4
7
E F

Figura 7.8. Un grafo G para el cual se determinar su rbol de expansin mnimo.

Consideremos el grafo G presentado en la Figura 7.8. Para este grafo se tiene que:
V(G) = {A, B, C, D, E ,F}
E(G) = {(B,C), (A,F), (A,C), (B,E), (C,E), (B,F), (A,E), (D,F), (B,D)}
w(B,C) = 8 w(A,F) = 7 w(A,C) = 7 w(B,E) = 7 w(C,E) = 6
w(B,F) = 5 w(A,E) = 4 w(D,F) = 4 w(B,D) = 3

Se aplicar el primer mtodo a fin de encontrar un rbol de expansin mnimo.


Primero se ordenan las aristas en orden decreciente respecto al peso y entonces, de manera
sucesiva, se eliminan aquellas sin desconectar a G hasta que slo se tengan cinco aristas:

Aristas (B,C) (A,F) (A,C) (B,E) (C,E) (B,F) (A,E) (D,F) (B,D)
Peso 8 7 7 7 6 5 4 4 3
Eliminar? Si Si Si No No Si

Por lo tanto, el rbol de expansin mnimo de G es obtenido y se compone por las


aristas (B,E), (C,E), (A,E), (D,F) y (B,D). El peso de tal rbol es igual a 24 y se muestra en
la Figura 7.9.

A B
3
7

C 4
D

6 4

E F

Figura 7.9. Un rbol de expansin mnimo de peso 24 para el grafo de la Figura 7.8.

240
Captulo 7. Grafos: Algoritmos Bsicos

Ahora se aplicar el algoritmo de Kruskal sobre el mismo grafo G. En primer lugar


se ordenan las aristas en orden creciente respecto al peso. Se consideran de manera sucesiva
aristas que no formen circuitos hasta que se tengan cinco aristas agregadas.

Aristas (B,D) (A,E) (D,F) (B,F) (C,E) (A,C) (A,F) (B,E) (B,C)
Peso 3 4 4 5 6 7 7 7 8
Agregar? Si Si Si No Si No Si

El peso de tal rbol es igual a 24 y se muestra en la Figura 7.10. Claramente el rbol


obtenido es distinto al encontrado mediante el primer mtodo.

A B
3

C 4
D

6 4
7
E F

Figura 7.10. Un segundo rbol de expansin mnimo de peso 24 para el grafo de la Figura 7.8.

La implementacin del primer mtodo no presenta grandes retos en el sentido de


que determinar si un grafo se desconecta al remover una de sus aristas es un problema que
puede ser resuelto, en nuestro caso, mediante una Bsqueda por Profundidad o Amplitud.
Recurdese que si una vez finalizada alguna de estas bsquedas existen vrtices con
STATUS = 1 entonces el grafo de entrada G es de hecho desconectado. El Algoritmo 7.3 es
una implementacin concretizada del primer mtodo para determinar un rbol de expansin
mnimo. Dado que la Bsqueda por Profundidad y la Bsqueda por Amplitud slo se
diferencian por la estructura de datos auxiliar requerida (pila o cola), es que cualquiera de
ellas puede ser usada. En el caso del Algoritmo de Kruskal, el decidir si al agregar una
nueva arista en un grafo G se forman circuitos es un problema cuya solucin no es
inmediata. De hecho, se requiere el uso de una estructura de datos denominada Conjuntos
Disjuntos (Disjoint Sets) la cual se presentar en la siguiente seccin y posteriormente, en
la Seccin 7.3.2, se describir la implementacin del Algoritmo de Kruskal.

Algoritmo 7.3. Determinacin del rbol de Expansin Mnimo


en un Grafo Conectado Pesado.

Procedure MinimumSpanningTree(graph G, integer n, integer m, list EW(G))

T=G
nT = m

// Se ordenan las aristas de G de manera decreciente respecto a su peso.


EWT(G) = Sort(EW(G))

241
Una Introduccin a las Matemticas Discretas y Teora de Grafos

for each edge (u, v) EWT(G) do


if (nT = n 1) then
// T ya es un rbol de expansin mnimo.
break
end-of-if
T = T \ (u, v) // Se obtiene el subgrafo de T con la arista (u, v) removida.
STATUS[ ] = DepthFirstSearch(T)
// Se cuentan los vrtices no descubiertos por la Bsqueda por Profundidad.
nonDiscovered = 0
for i = 1 until n do
if (STATUS[i] = 1) then
nonDiscovered = nonDiscovered + 1
end-of-if
end-of-for
if (nonDiscovered > 0) then
// La arista (u, v) es un puente, se debe retornar a T.
T = T {(u, v)}
else
nT = nT - 1
end-of-if
end-of-for

return T
end-of-procedure

7.3.1 Conjuntos Disjuntos


Por la Teora presentada en el Captulo 3 tenemos conocimiento de que una
relacin binaria R sobre un conjunto S es llamada Relacin de Equivalencia si cumple con
las siguientes tres propiedades:
Reflexividad: Para todo elemento a en S se tiene que a se relaciona con a:

(a S )(a R a)

Simetra: Para cualesquiera elementos a y b en S se tiene que si a se relaciona con b


entonces b se relaciona con a:

(a, b S )(a R b b R a)

Transitividad: Para cualesquiera elementos a, b, c en S se tiene que si a se relaciona con


b y b se relaciona con c entonces a se relaciona con c:

( a, b, c S )( a R b b R c a R c )

242
Captulo 7. Grafos: Algoritmos Bsicos

Por ejemplo, sea el conjunto U = {x: x es estudiante de licenciatura}. Sea la


relacin:
x R y x estudia la misma licenciatura que y.

Claramente la relacin R es:


Reflexiva ya que ( x U )( x R x )
Simtrica ya que ( x, y U )( x R y y R x )
Transitiva ya que ( x, y, z U )( x R y y R z x R z )
La relacin R es una relacin de equivalencia sobre el conjunto U.

Una relacin de equivalencia R sobre un conjunto S induce una particin de S en


conjuntos disjuntos (dos conjuntos son disjuntos si su interseccin es vaca). En el caso del
ejemplo anterior se tiene que R particionar, agrupar, o clasificar al conjunto de los
estudiantes de acuerdo a la licenciatura que estudien (asumimos que no existen estudiantes
cursando dos carreras al mismo tiempo). Tenemos pleno conocimiento de que cada
conjunto en una particin inducida por la relacin de equivalencia R es llamado una Clase
de Equivalencia de R. En el ejemplo, podramos tener cinco clases de equivalencia:
L1 = {x U: x es un estudiante de Ingeniera Gentica}
L2 = {x U: x es un estudiante de Ingeniera en Sistemas Computacionales}
L3 = {x U: x es un estudiante de Ingeniera Civil}
L4 = {x U: x es un estudiante de Ingeniera en Electrnica}
L5 = {x U: x es un estudiante de Ingeniera en Mecatrnica}
Evidentemente L1 L2 L3 L4 L5 = U y Li Lj = para i, j = 1, 2, 3, 4, 5, i j.

Considrese la estructura de datos Conjunto Disjunto (Disjoint Set). Tal estructura


soporta dos operaciones bsicas: Union y Find.
Union(x, y) indica que la clase de equivalencia que contiene a x y la clase de
equivalencia que contiene a y sern unidos en una sola clase. Ntese que en este caso,
se asume que las clases originales surgen a partir de una relacin de equivalencia, pero
la unin de stas ya no ser una clase bajo tal relacin. Se asume de hecho que el nuevo
conjunto generado es una clase de equivalencia bajo una nueva relacin. Si x y y estn
en el mismo conjunto desde un principio entonces no se efecta operacin alguna.
Find(x) debe retornar al representante de la clase de equivalencia que contiene a x.

Considrese el conjunto de la Figura 7.11 el cual sta inicialmente particionado en


8 clases de equivalencia con un elemento cada una.

0 1 2 3 4 5 6 7

Figura 7.11. Un conjunto de 8 elementos particionado en 8 clases de equivalencia.

243
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Despus de aplicar la operacin Union(4, 6) se tiene ahora una particin de 7 clases. Vase
la Figura 7.12.

0 1 2 3 4 6 5 7

Figura 7.12. El conjunto de la Figura 7.11 una vez que se aplica la operacin Union(4, 6).

Al aplicar Union(0, 1) y Union(2, 6) se obtiene la particin mostrada en la Figura 7.13.

0 1 3 2 4 6 5 7

Figura 7.13. El conjunto de la Figura 7.12 una vez que se aplicaron Union(0, 1) y Union(2, 6).

Una implementacin simple de la estructura de datos Conjunto Disjunto tomar en


cuenta las siguientes consideraciones:
Se asume que los elementos en el conjunto estn enumerados de 1 a n.
Se mantiene un arreglo A: para cada elemento i se tiene que A[i] es el nombre del
conjunto que contiene a i.
Find(i) retorna A[i].
Union(i, j) requiere recorrer al arreglo A:

for k = 1 until n
if (A[k] = A[j]) then
A[k] = A[i]
end-of-if
end-of-for

Ahora se considerar una implementacin orientada a grafos, especficamente a


rboles. Sea S una coleccin de rboles. Cada particin de S slo tendr un rbol.
Inicialmente se tendrn n rboles cada uno conteniendo nicamente un vrtice. Entonces:
Find(i) retorna la raz del rbol que contiene a i.
Union(i, j) combina a los rboles que contienen a i y a j de manera que se debe obtener
un nuevo rbol.
A cada vrtice en un rbol se le asignar un padre. Los padres de los vrtices son
guardados en un arreglo parent de manera que parent[i] es el vrtice padre del vrtice i
(si i es un vrtice raz entonces parent[i] = i). Inicialmente, dado que se tiene un bosque
con n rboles y cada rbol con un solo vrtice, se tendr que parent[i] = i para
i = 1, 2, , n.

244
Captulo 7. Grafos: Algoritmos Bsicos

De acuerdo a lo anterior, Find slo debe recorrer el rbol al que pertenece i comenzando
desde tal vrtice hasta alcanzar al nodo raz. Vase el Algoritmo 7.4. En el caso de Union,
en primer lugar se debe obtener la raz del rbol al que pertenece i as como la raz del rbol
al que pertenece j. Si las races son distintas entonces i y j estn en rboles diferentes. En
consecuencia, los rboles se mezclan haciendo que la raz de i sea ahora el padre de la raz
de j. Ntese que esta nueva asignacin garantiza que el grafo obtenido siga siendo un rbol.
Vase el Algoritmo 7.5.

Algoritmo 7.4. Implementacin de la funcin Find para la estructura Conjunto Disjunto.


Procedure Find(integer i)
j=i
while (parent[j] j) do
j = parent[j]
end-of-while
return j
end-of-procedure

Algoritmo 7.5. Implementacin de la funcin Union para la estructura Conjunto Disjunto.


Procedure Union(integer i, integer j)
root1 = Find(i)
root2 = Find(j)
if (root1 root2) then
parent[root2] = root1
end-of-if
end-of-procedure

Considrese el siguiente ejemplo con n = 9. El arreglo parent se inicializa como:


parent[1] = 1
parent[2] = 2
parent[3] = 3
parent[4] = 4
parent[5] = 5
parent[6] = 6
parent[7] = 7
parent[8] = 8
parent[9] = 9

Se tiene el bosque de la Figura 7.14.

1 2 3 4 5 6 7 8 9

Figura 7.14. Un bosque con n = 9 rboles degenerados.

Al efectuar Union(4, 6) se tiene la actualizacin parent[6] = 4 que corresponde al bosque


de la Figura 7.15.

245
Una Introduccin a las Matemticas Discretas y Teora de Grafos

1 2 3 4 5 7 8 9

Figura 7.15. El bosque de la Figura 7.14 una vez que se aplic Union(4, 6).

Al aplicar Union(1, 2) se tiene que parent[2] = 1. Vase la Figura 7.16.

1 3 4 5 7 8 9

2 6

Figura 7.16. El bosque de la Figura 7.15 una vez que se aplic la operacin Union(1, 2).

Ahora se aplicar Union(2, 6). De acuerdo al Algoritmo 7.5 se tiene que Find(2) = 1 y
Find(6) = 4. Se hace parent[4] = 1 por lo se obtiene el bosque de la Figura 7.17.
Recalcamos nuevamente que la manipulacin de un conjunto de rboles mediante la
estructura de datos Conjunto Disjunto garantiza que los grafos generados son libres de
circuitos.

1 3 5 7 8 9

2 4

Figura 7.17. El bosque de la Figura 7.16 una vez que se aplic la operacin Union(2, 6).

Es claro que si se aplica sucesivamente la operacin Union a un bosque se llegar a


un punto en el cual se obtendr nicamente un rbol. La estructura del rbol ir en funcin
del orden y los argumentos de Union. Pero, es posible, en un momento dado, obtener un
rbol con a lo ms n niveles, que en realidad sera una lista ligada.

246
Captulo 7. Grafos: Algoritmos Bsicos

7.3.2 Conjuntos Disjuntos y el Algoritmo de Kruskal


Como se habr podido observar, el Algoritmo de Kruskal determina al rbol de
expansin mnimo como la unin de los rboles de un bosque. El paso esencial consiste en
seleccionar aquellas aristas tales que al integrarse al bosque actual no generen un circuito.
El algoritmo inicia de hecho con un bosque en el que los rboles son nicamente vrtices
aislados. El bosque inicial puede verse como un conjunto mientras que cada vrtice o raz
puede ser visto como el nico miembro de una particin. Cada particin es de hecho un
conjunto disjunto. El tipo de dato definido en la seccin anterior permite, dada una arista
(u, v) (de hecho la arista con el menor peso posible), que mediante la operacin Find(u) y
Find(v) se determine si tales vrtices pertenecen o no al mismo rbol. En caso de que
pertenezcan a diferentes rboles entonces ser posible unirlos al aplicar la operacin
Union(u, v). Tal como se analiz anteriormente, estas operaciones garantizan la generacin
de grafos libres de circuitos.
Se tiene entonces una especificacin del Algoritmo de Kruskal mediante el uso de la
estructura Conjunto Disjunto. Vase el Algoritmo 7.6.
Algoritmo 7.6. Implementacin del Algoritmo de Kruskal con uso de Conjuntos Disjuntos.
Procedure MinimumSpanningTreeKruskal(graph G, list EW(G))
T=
// Se crea un bosque inicial en el que cada rbol solo tiene un vrtice.
for each vertex v V(G) do
parent[v] = v
end-of-for
EWT(G) = Sort(EW(G))
for each edge (u, v) EWT(G) do
if (Find(u) Find(v)) then
// Si los vrtices u y v estn en diferentes rboles entonces
// stos son unidos y la arista (u,v) se agrega a T.
T = T {(u, v)}
Union(u, v)
end-of-if
end-of-for
return T
end-of-procedure
Considrese el grafo de la Figura 7.18. Sobre ste efectuaremos una corrida de
escritorio del Algoritmo 7.6.
30 20
5 1 2

20 40 30 20
30

3 6 4
40 40
Figura 7.18. Un grafo pesado al que se le determinar su rbol de expansin mnimo.

247
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Para tal grafo se tendr el bosque, arreglo parent y conjunto T iniciales presentados en la
Figura 7.19.

parent[1] = 1
parent[2] = 2
parent[3] = 3
1 2 3 4 5 6 T=
parent[4] = 4
parent[5] = 5
parent[6] = 6
a) b) c)
Figura 7.19. Inicializacin del algoritmo de Kruskal. a) Un bosque con 6 vrtices,
b) su correspondiente arreglo parent y c) el rbol de expansin mnimo T actual: el conjunto vaco.

Al ordenar de manera ascendente a las aristas respecto a su peso se tiene que los elementos
de EWT(G) estarn listados de la siguiente manera:

(1, 2), w(1, 2) = 20


(2, 4), w(2, 4) = 20
(3, 5), w(3, 5) = 20
(1, 5), w(1, 5) = 30
(1, 6), w(1, 6) = 30
(2, 6), w(2, 6) = 30
(1, 3), w(1, 3) = 40
(3, 6), w(3, 6) = 40
(4, 6), w(4, 6) = 40

Se procede secuencialmente a analizar cada arista del grafo (Vase la Tabla 7.9):

Arista (1, 2):


o Find(1) = 1
o Find(2) = 2
o Find(1) Find(2) por lo tanto se efecta Union(1, 2), parent[2] = 1 y
T = {(1, 2)}.

Arista (2, 4):


o Find(2) = 1
o Find(4) = 4
o Find(2) Find(4) por lo tanto se efecta Union(2, 4), parent[4] = 1 y
T = {(1, 2), (2, 4)}.

248
Captulo 7. Grafos: Algoritmos Bsicos

Arista (3, 5):


o Find(3) = 3
o Find(5) = 5
o Find(3) Find(5) por lo tanto se efecta Union(3, 5), parent[5] = 3 y
T = {(1, 2), (2, 4), (3, 5)}.

Arista (1, 5):


o Find(1) = 1
o Find(5) = 3
o Find(1) Find(5) por lo tanto se efecta Union(1, 5), parent[3] = 1 y
T = {(1, 2), (2, 4), (3, 5), (1, 5)}.

Arista (1, 6):


o Find(1) = 1
o Find(6) = 6
o Find(1) Find(6) por lo tanto se efecta Union(1, 6), parent[6] = 1 y
T = {(1, 2), (2, 4), (3, 5), (1, 5), (1, 6)}

Arista (2, 6):


o Find(2) = 1
o Find(6) = 1
o Find(2) = Find(6), los vrtices 2 y 6 estn en el mismo rbol.

Arista (1, 3):


o Find(1) = 1
o Find(3) = 1
o Find(1) = Find(3), los vrtices 1 y 3 estn en el mismo rbol.

Arista (3, 6):


o Find(3) = 1
o Find(6) = 1
o Find(3) = Find(6), los vrtices 3 y 6 estn en el mismo rbol.

Arista (4, 6):


o Find(4) = 1
o Find(6) = 1
o Find(4) = Find(6), los vrtices 3 y 6 estn en el mismo rbol.

249
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Tabla 7.9. Procesamiento de las aristas (1, 2), (2, 4), (3, 5), (1, 5) y (1, 6)
del grafo de la Figura 7.18 por medio del Algoritmo de Kruskal.
Arista Bosque Conjunto T
20
1 2
1 3 4 5 6

(1,2)

20
1 2
1 3 5 6

(2,4) 20

2 4
4

20
1
5 1 2
3 6

(3, 5) 20 20

2 4 5
3 4

30 20
1
5 1 2
3 6

(1, 5) 20 20

2 4 5
3 4

30 20
1 3
5 1 2

(1, 6) 20 20
30
6 2 4 5
3 6 4

El rbol de expansin mnimo con peso 120 ha sido encontrado (Vase la Figura
7.20). El conjunto T contiene las aristas de tal rbol: T = {(1, 2), (2, 4), (3, 5), (1, 5), (1, 6)}.
30 20
5 1 2

20 20
30

3 6 4
Figura 7.20. El rbol de expansin mnimo asociado al grafo de la Figura 7.18.

250
Captulo 7. Grafos: Algoritmos Bsicos

El ltimo rengln de la Tabla 7.9 nos permite verificar que el rbol de expansin
mnimo y el rbol descrito por el arreglo parent no son iguales. Por lo general as ser para
cualquier grafo G. Ello se debe a que la estructura de Conjunto Disjunto slo es un auxiliar
que nos permite decidir si una arista se agrega o no al conjunto T. Es decir, se tiene una
equivalencia en el sentido de que un arista se agrega a T si y slo si los dos vrtices que la
conforman estn en rboles diferentes. Pero ello no se traduce necesariamente en que los
rboles finales sean iguales. De hecho, ntese que en el rbol bajo conjuntos disjuntos se
tienen aristas que no estn en G, vase, por ejemplo, la arista (1, 4).

7.4 Determinacin de Rutas Eulerianas


Para cualquier grafo Euleriano G, el Algoritmo de Fleury siempre produce como
salida un circuito Euleriano en G. El algoritmo se basa en la siguiente idea:
1. Seleccionar de manera arbitraria un vrtice inicial v.
2. Iniciando en v, seleccionar arbitrariamente aristas consecutivas de G de acuerdo a las
siguientes reglas:
a) Despus de seleccionar una arista e, la siguiente arista deber ser elegida del
subgrafo conectado de G que se obtiene al eliminar e y a todas las aristas
previamente seleccionadas y a todos los vrtices aislados. A tal subgrafo se le
llama subgrafo factible.
b) En cada paso, seleccionar un puente del subgrafo factible nicamente si no existe
otra arista a seleccionar.

Aplicando los conceptos anteriores se buscar circuito Euleriano en el grafo de la


Figura 7.21. Sea el vrtice inicial v = A.

A B C

E F G

Figura 7.21. Un grafo Euleriano (todos sus vrtices son de grado par)
sobre el que se aplicar el Algoritmo de Fleury.

A continuacin se mostrar, en las Tablas 7.10 a 7.13 el proceso de formacin del


circuito Euleriano usando el Algoritmo de Fleury. Cada tabla muestra la arista procesada, la
ruta actualmente formada y el subgrafo factible. En la Tabla 7.13, ltimo rengln, se tiene
un subgrafo factible vaco, indicativo de que el circuito Euleriano ha sido finalmente
encontrado.

251
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Tabla 7.10. Seleccin de las primeras 3 aristas para formar


el circuito Euleriano del grafo presentado en la Figura 7.21.
Arista Seleccionada Ruta Actual Subgrafo factible
(A,B)

A B C

(A, B) A B
D

E F G

(A,B,C)

A C

(B, C)
Puente Otra opcin D
de seleccin no A B C

disponible
E F G

(A,B,C,D)

A C

A B C

(C,D) D

D
E F G

252
Captulo 7. Grafos: Algoritmos Bsicos

Tabla 7.11. Parte 2 de la formacin del circuito Euleriano


del grafo presentado en la Figura 7.21.
Arista Seleccionada Ruta Actual Subgrafo factible
(A,B,C,D,E)

A C
A B C

(D,E) D
D

E F G
E

(A,B,C,D,E,A)

A C
A B C

(E,A) D
D

E F G
E

(A,B,C,D,E,A,C)
A C

A B C
(A,C)
E F G

253
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Tabla 7.12. Parte 3 de la formacin del circuito Euleriano


del grafo presentado en la Figura 7.21.
Arista Seleccionada Ruta Actual Subgrafo factible
(A,B,C,D,E,A,C,G)
A

D
(C,G)
A B C
Puente Otra opcin
de seleccin no
E F G
disponible.
D

E G

(A,B,C,D,E,A,C,G,E)

A B C

D
(G,E) D

E F G
E G

(A,B,C,D,E,A,C,G,E,F)

A B C

(E,F)
Puente Otra opcin D
de seleccin no D

disponible
F G
E F G

254
Captulo 7. Grafos: Algoritmos Bsicos

Tabla 7.13. Parte 4, y final, de la formacin del circuito Euleriano


del grafo presentado en la Figura 7.21. Se obtiene el circuito (A,B,C,D,E,A,C,G,E,F,G,D,A)
Arista Seleccionada Ruta Actual Subgrafo factible
(A,B,C,D,E,A,C,G,E,F,G)

A B C

(F,G)
Puente Otra opcin D
de seleccin no D

disponible
G
E F G

(A,B,C,D,E,A,C,G,E,F,G,D)

A B C

(G,D) A
Puente Otra opcin
de seleccin no D

disponible
D

E F G

(A,B,C,D,E,A,C,G,E,F,G,D,A)

A B C

(D,A)
Puente Otra opcin
de seleccin no D

disponible

E F G

255
Una Introduccin a las Matemticas Discretas y Teora de Grafos

En el ejemplo anterior se encontraron diversos puentes a lo largo del proceso de


generacin del circuito. Sin embargo, la regla b del algoritmo era aplicable dado que en
cada caso las nicas aristas disponibles para seleccin eran precisamente tales puentes.
Ahora supngase que contamos con el subgrafo factible de la Figura 7.22.
A E

C D

B F

Figura 7.22. Un subgrafo factible. Actualmente la ruta formada termina en el vrtice C.

Sea el vrtice C aquel en el cual la ruta actualmente construida finaliza. Entonces se


tienen tres opciones de eleccin: las aristas (C,A), (C,B) y (C,D). Como podr apreciarse, la
arista (C,D) es un puente. Si tal arista fuese seleccionada, en primer lugar tendra que ser
removida del subgrafo factible. Esto trae como consecuencia que el subgrafo es ahora
desconectado tenindose dos componentes: uno formado por los vrtices A, B y C, y el otro
componente formado por los vrtices D, E y F (Vase la Figura 7.23). De seguir as, la
siguientes aristas a seleccionar seran forzosamente aquellas en el componente con vrtices
D, E y F. Una vez elegidas, ya no habra manera de retornar al componente con vrtices A,
B y C, y por consecuencia, no se podra generar el circuito Euleriano.
A E

C D

B F

Figura 7.23. Remocin de la arista (C, D) del subgrafo factible de la Figura 7.22.
Se separa en dos componentes.

Por lo tanto, antes de seleccionar a la arista (C,D) debe considerarse la eleccin de


una de las aristas (C,A) o (C,B). En este caso la regla b del algoritmo de Fleury no aplica
precisamente debido a que existen aristas elegibles adicionales al puente (C,D).

El Algoritmo 7.7 corresponde a la implementacin del Mtodo de Fleury para


determinar, dado un grafo Euleriano, su correspondiente circuito Euleriano. El algoritmo
recibe como entrada el grafo G, un vrtice inicial v y el nmero m de aristas en G. El
subgrafo factible Gf es inicialmente una copia de G. Para cada vrtice v actualmente
procesado se calcula su vecindad. Por cada vrtice x en N(v), el cual es guardado en la
variable u, evidentemente se tiene la arista (v, x). Tal arista es removida del grafo y se
determina si es o no un puente. Para ello se invoca a la Bsqueda por Profundidad (o bien
Bsqueda por Amplitud), se obtienen los estatus de los vrtices. La arista (v, x) se reintegra
a Gf. Se determina cuntos vrtices cuentan con STATUS = 1. Si hay cero vrtices con
STATUS = 1 entonces la remocin de (v, x) no desconecta al subgrafo factible Gf. En este
caso el ciclo for se termina y ya no se inspeccionan los vrtices restantes en N(x). Si hay al

256
Captulo 7. Grafos: Algoritmos Bsicos

menos un vrtice con STATUS = 1 entonces (v, x) es un puente y se procesa al siguiente


vrtice disponible en N(v). Ntese que si la arista es un puente y adems es la nica opcin
entonces el ciclo for terminar debido a que ya no hay ms vrtices disponibles en N(v). En
cualquier caso la variable u tendr el ltimo vrtice de la vecindad de v que fue procesado.
La arista (v, u) es definitivamente removida del subgrafo factible. Se debe determinar, al
calcular deg(v), si esta remocin hace que v quede aislado, si es as, entonces el vrtice
debe ser removido de Gf. Ahora se determinar que arista se agregar al circuito Euleriano
partiendo del vrtice v = u. El ciclo while principal termina cuando todas las aristas del
subgrafo factible han sido procesadas y por lo tanto Gf se encuentra vaco.
Algoritmo 7.7. Implementacin del Mtodo de Fleury para Encontrar un Circuito Euleriano.
Procedure Fleury(graph G, integer v, integer m)
C = {v} // Circuito Euleriano.
Gf = G // Subgrafo factible.
mf = m
while (mf > 0) do
N(v) = getNeighborhood(v)
u = -1
for each vertex x N(v) do
u=x
Gf = Gf \ (v, x) // Se remueve la arista (v, x) del subgrafo factible.
STATUS[ ] = DepthFirstSearch(Gf)
Gf = Gf {(v,x)} // (v,x) se agrega de nuevo al subgrafo factible.
nonDiscovered = 0
for i = 1 until n do
if (STATUS[i] = 1) then
nonDiscovered = nonDiscovered + 1
end-of-if
end-of-for
if (nonDiscovered = 0) then
// La arista (v,x) no es un puente.
break
end-of-if
end-of-for
C = C {u} // Se agrega al vrtice u al circuito Euleriano.
Gf = Gf \ (v, u) // Se remueve definitivamente la arista (v, u)
mf = mf - 1
deg_v = getDegree(v)
if (deg_v = 0) then
// Si el vrtice v queda aislado despus de remover
// la arista (v, u) entonces se remueve del subgrafo factible.
Gf = Gf \ v
end-of-if
v=u
end-of-while
return C // Se retorna el circuito Euleriano de G.
end-of-procedure

257
Una Introduccin a las Matemticas Discretas y Teora de Grafos

7.5 Algoritmo de Dijkstra

Sea G un grafo pesado. Se requiere encontrar la ruta P entre dos vrtices v0 y vk tal
que sta tenga la distancia mnima. El Peso o Distancia de una Ruta P = (v0, v1, , vk) es
la suma de los pesos de sus aristas constituyentes:

k
w( P) = w(vi 1 , vi )
i =1

Ahora definamos el Peso de la Ruta Ms Corta entre u y v como:

min{w( P) : P = (u,..., v)} Si existe una ruta de u a v.


(u, v) =
Si no existe una ruta de u a v.

La ruta ms corta entre el vrtice u y el vrtice v es entonces definida como cualquier ruta P
con peso w(P)= (u, v) . El siguiente Teorema nos dice que dada una ruta ms corta P entre
dos vrtices, cualquier subruta dentro de P es tambin la ms corta entre sus
correspondientes vrtices inicial y final.

Teorema 7.1: Dado un grafo pesado G, sea P = (v0, v1, , vk) la ruta ms corta del
vrtice v0 al vrtice vk. Para cualquier i y j tales que 0 i j k, sea Pij = (vi, vi+1, , vj)
una subruta de P del vrtice vi al vrtice vj. Entonces Pij es la ruta ms corta del vrtice vi
al vrtice vj.

Algunos algoritmos para resolver el problema de la ruta ms corta utilizan la tcnica


de Relajacin. Sea root el vrtice inicial de una ruta. Por cada vrtice v V(G) se
mantiene un atributo d(v) que es una cota superior del peso de la ruta ms corta desde root
hasta v. Al valor d(v) se le llama Estimado de la Ruta Ms Corta. La tcnica de relajacin
se fundamenta de la siguiente manera: Sean u y v, u v, dos vrtices en un grafo con sus
respectivos estimados d(u) y d(v). El valor del estimado de v nos dice que existe una ruta Q
que va del vrtice inicial root a v con peso d(v). De la misma manera, el estimado de u nos
dice que existe una ruta R que va del vrtice inicial root a u y tiene peso d(u). Es posible
que las rutas Q y R compartan subrutas. Supongamos tambin que u y v son vrtices
adyacentes, es decir, estn conectados por una arista (u, v) con peso w(u, v). La idea ahora
es determinar si la ruta Q de root a v puede ser mejorada, es decir, si es posible reducir su

258
Captulo 7. Grafos: Algoritmos Bsicos

peso. Para ello, se utilizar una nueva ruta alternativa formada con la ruta R, que conecta a
root con u, y agregando la arista que conecta a u con v. Es decir, tenemos la ruta candidata
Q = (root, , u, v). El peso de tal ruta estar dado por d(u) + w(u, v). Recordemos que la
ruta original Q tiene peso d(v). Entonces, se evala la siguiente condicin:

d(v) > d(u) + w(u, v)

Si la condicin es falsa entonces la ruta actual Q seguir siendo la mejor conexin entre
root y v. Pero, si la condicin es verdadera, ello implica que la nueva ruta propuesta, que
tambin conecta a root con v pero pasando por el vrtice u, es mejor, en trminos del peso,
a la que se tena originalmente. Por lo tanto, procedemos a relajar al vrtice v al asignarle
como nuevo estimado la suma del estimado del vrtice u y el peso de la arista (u, v) que los
conecta. El nuevo estimado d(v) ahora hace referencia a la nueva ruta Q.

Sea G un grafo pesado. El Algoritmo de Dijkstra buscar la ruta ms corta entre


dos vrtices: root y target. Como comentamos previamente, cada vrtice v en el grafo
cuenta con el atributo d(v) que contiene el estimado de su distancia ms corta desde el
vrtice inicial root. Los estimados de todos los vrtices, excepto root, son inicializados
como d(v) = . Para un vrtice v, su estimado se actualizar, o relajar, cada vez que una
ruta ms corta de root hasta v sea encontrada. El algoritmo distinguir entre vrtices
procesados y no procesados. T denotar al conjunto de vrtices no procesados del grafo. La
idea es que un vrtice u caracterizado como procesado ya no puede estar sujeto a relajacin
debido a que su estimado, d(u), contiene efectivamente el peso de la ruta ms corta desde
root a u. De hecho, usando a cada vrtice procesado es que se intentar relajar a aquellos
contenidos en el conjunto T.

Ntese que todo vrtice no procesado v en T debe ser relajado por vrtices ya
procesados que tambin son sus vecinos. Si estamos en la situacin de que todos los
vecinos ya procesados de v lo han relajado, o intentado relajar, y adems v tiene el estimado
mnimo comparado con los restantes vrtices en T, entonces, por el Teorema 7.1, ello
implica que v de hecho debe ser ya caracterizado como un vrtice procesado debido a que
su estimado d(v) ya no puede ser mejorado. Si d(v) pudiese ser an mejorado, considerando
todas las condiciones anteriores, ello implicara que hay al menos un vecino ya procesado
de v cuyo estimado an se puede mejorar, pero ello es una contradiccin ya que asumimos
que todo vrtice ya procesado tiene exactamente el valor, y no una cota superior, del peso
de la ruta ms corta partiendo de root. De hecho, debe ser claro que el primer vrtice del
grafo caracterizado como procesado es root con d(root) = 0 ya que el peso de la ruta ms
corta de este vrtice hacia s mismo es cero y por consecuencia no puede ser relajado.

La implementacin presentada en el Algoritmo 7.8 hace uso de un arreglo Parent


de n elementos, n = Card(V(G)), el cul ser til en la reconstruccin de la ruta ms corta
una vez finalizada la ejecucin del algoritmo. Por otro lado, la implementacin buscar

259
Una Introduccin a las Matemticas Discretas y Teora de Grafos

todas las rutas ms cortas a partir del vrtice inicial root hacia todos los vrtices alcanzables
por ste. Ello implica, primero, que el algoritmo slo recibir como entrada al grafo G y al
vrtice inicial root, y por otro lado, se tendr que todos los vrtices, excepto root, sern
relajados hasta donde sea posible de manera que sus estimados contengan el peso exacto de
la ruta ms corta. Para ello, slo basta con terminar la ejecucin del algoritmo cuando todos
los vrtices de G sean caracterizados como procesados, es decir, cuando T = .

Algoritmo 7.8. Algoritmo de Dijkstra.


Procedure Dijkstra(graph G, vertex root)
d(root) = 0
Parent[root] = -1
for each vertex v root do
d(v) =
Parent[v] = -1
end-of-for
T = V(G)
u = root
while (T ) do
T = T \ {u} // u es vrtice procesado.
N(u) = getNeighborhood(u)
for each vertex v N(u) do
if (v T and d(v) > d(u) + w(u,v)) then
d(v) = d(u) + w(u,v)
Parent[v] = u
end-of-for
end-of-for
// u ser el vrtice en T cuyo estimado es el mnimo.
u = getMinEstimate(T)
end-of-while
return
end-of-procedure

1
B C
1 5
3 2 3
5
4
A D

F 4 6 E

Figura 7.24. Un grafo conectado y pesado G.

260
Captulo 7. Grafos: Algoritmos Bsicos

Considrese el grafo de la Figura 7.24. Formalmente, para tal grafo se tiene que:

V(G) = {A, B, C, D, E, F}
E(G) = {(A,B), (A,D), (A,E), (B,C), (B,E), (B,F), (C,F), (C,E), (C,D), (D,F), (D,E)}
Los pesos de sus aristas:

w(A, B) = 3 w(C, F) = 5 w(A, D) = 4 w(C, E) = 2


w(A, E) = 6 w(C, D) = 3 w(B, C) = 1 w(D, F) = 4
w(B, E) = 1 w(D, E) = 4 w(B, F) = 5

Se buscarn las rutas ms cortas del vrtice A a los restantes vrtices de G, entonces
root = A. En la fase de inicializacin se tiene que T = V(G) = {A, B, C, D, E, F} mientras
que los estimados y el arreglo Parent quedan como:

d(A) = 0 Parent[A] = -1
d(B) = Parent[B] = -1
d(C) = Parent[C] = -1
d(D) = Parent[D] = -1
d(E) = Parent[E] = -1
d(F) = Parent[F] = -1

En las Tablas 7.14 y 7.15 se muestran, para cada iteracin t efectuada por el ciclo
while del Algoritmo 7.8, la evolucin de los estimados de los vrtices, del arreglo Parent y
del conjunto de vrtices no procesados T. En la iteracin t = 6 se tiene que T = y la
bsqueda de rutas ms cortas finaliza. El arreglo Parent denota una relacin entre los
vrtices u y v de forma que Parent[u] = v se interpreta como v es padre de u o v se conecta
con u. Si Parent[u] = -1 entonces se tiene que el vrtice u es el inicio de una ruta. Por
ejemplo, si se desea conocer la secuencia de vrtices que forman la ruta ms corta entre el
vrtice root y F, una vez finalizada la ejecucin del algoritmo, se tendr:

Parent[F] = B
Parent[B] = A
Parent[A] = -1

De esta manera se determina que la ruta ms corta entre A y F es (A, B, F) y tiene


peso d(F) = 8. Vase la Figura 7.25.

261
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Tabla 7.14. Procesamiento de los Vrtices A, B, C del grafo


de la Figura 7.24 por el Algoritmo de Dijkstra.
Vecinos v ? Arreglo Vrtices No
t u de u tales
que vT
d(v) > d(u) + w(u,v) Estimados
Parent Procesados T
?
d(B) > d(A) + w(A,B)
B ?
> 0 + 3 = 3: Verdadero
d(B) = 3
?
d(A) = 0 Parent[A] = -1
d(D) > d(A) + w(A,D) d(B) = 3
d(C) =
Parent[B] = A
Parent[C] = -1 {B, C, D,
1 A D ?
> 0 + 4 = 4: Verdadero d(D) = 4
d(E) = 6
Parent[D] = A
Parent[E] = A
E, F}
d(D) = 4
?
d(F) = Parent[F] = -1
d(E) > d(A) + w(A,E)
E ?
> 0 + 6 = 6: Verdadero
d(E) = 6
?
d(C) > d(B) + w(B,C)
C ?
> 3 + 1 = 4: Verdadero
d(C) = 4
?
d(A) = 0 Parent[A] = -1
d(E) > d(B) + w(B,E) d(B) = 3
d(C) = 4
Parent[B] = A
Parent[C] = B
2 B E ? {C, D, E, F}
6 > 3 + 1 = 4: Verdadero d(D) = 4
d(E) = 4
Parent[D] = A
Parent[E] = B
d(E) = 4
?
d(F) = 8 Parent[F] = B
d(F) > d(B) + w(B,F)
F ?
> 3 + 5 = 8: Verdadero
d(F) = 8
?
d(D) > d(C) + w(C,D)
D ?
4 > 4 + 3 = 7: Falso
No cambia d(D) d(A) = 0 Parent[A] = -1
?
d(E) > d(C) + w(C,E) d(B) = 3 Parent[B] = A
? d(C) = 4 Parent[C] = B
3 C {D, E, F}
E 4 > 4 + 2 = 6: Falso d(D) = 4
d(E) = 4
Parent[D] = A
Parent[E] = B
No cambia d(E)
? d(F) = 8 Parent[F] = B
d(F) > d(C) + w(C,F)
?
F 8 > 4 + 5 = 9: Falso
No cambia d(F)

262
Captulo 7. Grafos: Algoritmos Bsicos

Tabla 7.15. Procesamiento de los Vrtices D, E, F del grafo


de la Figura 7.24 por el Algoritmo de Dijkstra.
Vecinos v ? Arreglo Vrtices No
t u de u tales
que vT
d(v) > d(u) + w(u,v) Estimados
Parent Procesados T
?
d(E) > d(D) + w(D,E)
E ? d(A) = 0 Parent[A] = -1
4 > 4 + 4 = 8: Falso d(B) = 3 Parent[B] = A
No cambia d(E) d(C) = 4 Parent[C] = B
4 D {E, F}
? d(D) = 4 Parent[D] = A
d(F) > d(D) + w(D,F) d(E) = 4 Parent[E] = B
F ? d(F) = 8 Parent[F] = B
8 > 4 + 4 = 8: Falso
No cambia d(F)
d(A) = 0 Parent[A] = -1
d(B) = 3 Parent[B] = A
No hay
d(C) = 4 Parent[C] = B
5 E vecinos de {F}
d(D) = 4 Parent[D] = A
E en T
d(E) = 4 Parent[E] = B
d(F) = 8 Parent[F] = B
d(A) = 0 Parent[A] = -1
d(B) = 3 Parent[B] = A
No hay
d(C) = 4 Parent[C] = B
6 F vecinos de
d(D) = 4 Parent[D] = A
F en T
d(E) = 4 Parent[E] = B
d(F) = 8 Parent[F] = B

1
B C
1 5
3 2 3
5
4
A D

F 4 6 E

Figura 7.25. La ruta ms corta entre el vrtice root = A y el vrtice F.

Supongamos que G es un grafo pesado desconectado. Ello implica que dado un


vrtice root se encontrarn las rutas ms cortas entre root y sus vrtices alcanzables. Qu
sucede con aquellos vrtices que estn en un componente de G distinto al del root? En la
fase de inicializacin se tiene que T = V(G). Ello implica que los vrtices no alcanzables
desde root sern caracterizados como vrtices no procesados. El algoritmo procesar en
primer lugar a aquellos vrtices para los cuales existe una ruta que los conecte con root.
Posteriormente, T contendr nicamente a aquellos vrtices no alcanzables desde root. Los
estimados de tales vrtices, de acuerdo al Algoritmo 7.8, sern iguales a . Ello se debe a
que ninguno de esos vrtices pudo haber sido relajado por los vrtices ya procesados y

263
Una Introduccin a las Matemticas Discretas y Teora de Grafos

alcanzables desde root. Dado que en este punto todo vrtice en T tiene estimado entonces
cualquiera puede ser usado para relajar a los restantes vrtices. Sea u el primer vrtice no
alcanzable desde root que ha salido del conjunto T. Sea v uno de los vecinos de u. Ntese
que se evaluar como siempre si d(v) > d(u) + w(u, v). Pero d(v) = d(u) = . Por lo tanto, v
nunca ser relajado y conservar su estimado . De hecho, y por la misma razn, ninguno
de los vrtices restantes tampoco podr ser relajado. Ello quiere decir que el Algoritmo de
Dijkstra terminar con un conjunto de vrtices para los cuales su estimado es y su valor
en el arreglo Parent ser -1. Es claro que esta salida es consistente con la definicin del
peso de la ruta ms corta que se present al inicio de esta seccin y por tanto los valores
de los estimados nos indican para cuales vrtices del grafo no existe una ruta que los
conecte con root.

7.6 Algoritmo de Bellman-Ford


En algunas instancias del problema de la ruta ms corta pueden existir aristas cuyo
peso es negativo. Bajo esta situacin se asumir que los grafos son dirigidos. Recurdese
que un grafo es dirigido si las aristas se asumen pares ordenados de vrtices, lo que trae
como consecuencia que (u,v) (v,u). Sea C = (u0, , un-1, un) un circuito en un grafo,
entonces u0 = un. Se dice que el peso del circuito C es la suma de los pesos de las aristas
que lo constituyen. Si para un grafo dirigido G todos sus circuitos son de peso no negativo,
y adems, existen rutas que conecten a root con estos circuitos, entonces para todo
v V(G), el peso de la ruta ms corta, (root, v), se conservar bien definido an si tuviese
un valor negativo. Ello implica que por ejemplo, dado un grafo dirigido G con las
caractersticas anteriores, el Algoritmo de Dijkstra nos proporcionar una salida correcta.
Ahora bien, por otro lado, si existe un circuito con peso negativo alcanzable desde root
entonces los pesos de la ruta ms corta no estarn bien definidos. En este caso, ninguna ruta
simple de root a un vrtice del circuito puede ser la ruta ms corta, ya que una ruta con peso
menor puede ser siempre encontrada al recorrer el circuito de peso negativo. Si existe un
circuito de peso negativo sobre alguna ruta de root a v, se define (root, v) = -.

Por ejemplo, considrese el grafo dirigido de la Figura 7.26. Debido a que existe
slo una ruta de s a a, de hecho la ruta (s, a), entonces (s, a) = w(s, a) = 3. De manera
similar existe slo una ruta de s a b tal que (s, b) = w(s, a) + w(a, b) = 3 + (-4) = -1.
Ahora bien, es claro que existe un nmero infinito de rutas (no necesariamente simples) de
s a c: (s, c), (s, c, d, c), (s, c, d, c, d, c) y as sucesivamente. Debido a que el circuito (c, d, c)
tiene peso 6 + (-3) = 3 > 0, la ruta ms corta de s a c es (s, c) con un peso
(s, c) = 5. De manera similar, la ruta ms corta de s a d es (s, c, d) con peso
(s, d) = w(s, c) + w(c, d) = 11. Ntese que tambin existe un nmero infinito de rutas de
s a e: (s, e), (s, e, f, e), (s, e, f, e, f, e) y as sucesivamente. Debido a que el circuito
(e, f, e) tiene un peso 3 + (-6) = -3 < 0 es que entonces no existe una ruta ms corta de s a e.
Ello se debe a que al recorrer el circuito de peso negativo (e, f, e) un nmero arbitrario de
veces se pueden encontrar rutas de s a e con pesos negativos cada vez ms pequeos: (s, e)
tiene peso 2, (s, e, f, e) tiene peso -1, (s, e, f, e, f, e) tiene peso -4, (s, e, f, e, f, e, f, e) es de
peso -7, y as sucesivamente. Por lo tanto (s, e) = -. De manera similar, (s, f) = -.
Debido a que g es alcanzable desde f, se pueden encontrar rutas con pesos cada vez ms
pequeos de s a g, pasando por el circuito (e,f,e), por lo tanto tambin se tiene que

264
Captulo 7. Grafos: Algoritmos Bsicos

(s, g) = -. En esta situacin, con el grafo de la Figura 7.26 como entrada, el Algoritmo de
Dijkstra terminar su ejecucin, sin embargo, los estimados que se proporcionarn en la
salida, todos diferentes de -, debern caracterizarse an como cotas superiores de los
pesos de las rutas ms cortas. En tal caso, se debera contar con un mecanismo para saber si
G cuenta o no con un circuito de peso negativo alcanzable desde el vrtice inicial root y
con ello tomar las consideraciones necesarias respecto a los estimados obtenidos.

-4
a b

6
4
3

5 -3 8
s c d g

3
2
7
-6
e f

Figura 7.26. Un grafo dirigido, conectado y pesado G.


Se tiene un circuito de peso negativo: (e, f, e).

Algunos algoritmos para la bsqueda de la ruta ms corta, como el algoritmo de


Dijkstra, son utilizados en la prctica cuando se sabe de antemano que todos los pesos de
las aristas son no negativos. El algoritmo de Bellman-Ford resuelve el problema sobre
grafos dirigidos bajo el caso en que las aristas pueden tener pesos negativos (Vase el
Algoritmo 7.9). El algoritmo de Bellman-Ford retorna un valor Booleano indicando si
existe o no un circuito de peso negativo alcanzable desde el origen root. Si tal circuito
existe, entonces el algoritmo indicar que no existe solucin y retorna False. Si no existe tal
circuito, el algoritmo producir las rutas ms cortas y sus pesos, retornando finalmente
True.

El algoritmo utilizar la tcnica de relajacin de vrtices (presentada en la seccin


anterior), decrementando de manera progresiva el estimado d(v) del peso de la ruta ms
corta desde el origen root a cada vrtice v V(G) hasta obtener el peso de la ruta ms corta
(root, v). Los estimados de todos los vrtices de G son inicializados como , excepto root
para el cual se tiene d(root) = 0. El principio fundamental sobre el que se sustenta el
Algoritmo de Bellman-Ford parte del hecho de que para todo grafo se tiene que el nmero
de aristas incidentes de cualquiera de sus vrtices ser a lo ms n-1. Ello implica que el
estimado de cualquier vrtice puede ser relajado a lo ms n-1 veces ya que precisamente la
relajacin se efecta usando a cada uno de sus vrtices adyacentes. De acuerdo a este
razonamiento, y excluyendo el concepto de vrtice procesado/no procesado presente en el
Algoritmo de Dijkstra, es posible entonces proponer un mtodo de bsqueda de rutas ms

265
Una Introduccin a las Matemticas Discretas y Teora de Grafos

cortas intentando relajar a cada vrtice de G exactamente en n-1 ocasiones. De manera ms


concreta (vase el Algoritmo 7.9), cada arista dirigida (u, v) de G es procesada n-1 veces.
Durante cada proceso se intentar relajar al estimado del vrtice v, d(v), usando el estimado
del vrtice u, d(u), y el peso de la arista que los conecta, w(u, v).

Ahora, una vez que cada vrtice de G ha sido procesado en n-1 ocasiones, el
algoritmo de Bellman-Ford efecta un intento ms de relajacin para cada vrtice. Si existe
un vrtice v, alcanzable desde root, cuyo estimado puede ser todava relajado, entonces ello
implica que el vrtice es de hecho alcanzable desde un circuito de peso negativo que
conecta a root con v. Y de hecho, si se intentar una (n+1)-sima relajacin, sta sera
exitosa. Es claro que tal vrtice puede ser relajado entonces un nmero infinito de veces. Si
esta situacin se presenta, el Algoritmo 7.9 retorna como salida False, indicando la
existencia de un circuito de peso negativo alcanzable desde root. En este caso, los valores
de los estimados obtenidos deberan ser considerados cotas superiores. Por otro lado, si
todo vrtice de G no pudo ser relajado una vez ms, ello implica que sus estimados no
pueden ser mejorados y por tanto representan los valores exactos de las rutas ms cortas
con vrtice inicial root. El algoritmo de Bellman-Ford retorna entonces True.

Algoritmo 7.9. El Algoritmo de Bellman-Ford.

Procedure BellmanFord(graph G, vertex root, integer n)


d(root) = 0
Parent[root] = -1
for each vertex v root do
d(v) =
Parent[v] = -1
end-of-for
for i = 1 to n - 1
for each edge (u, v) E(G) do
if (d(v) > d(u) + w(u,v)) then
d(v) = d(u) + w(u,v)
Parent[v] = u
end-of-if
end-of-for
end-of-for
for each edge (u, v) E(G) do
if (d(v) > d(u) + w(u, v)) then
// Se ha detectado un circuito con peso negativo
// alcanzable desde root.
return False
end-of-if
end-of-for
return True
end-of-procedure

266
Captulo 7. Grafos: Algoritmos Bsicos

-2
t x
6 -3
8
s 2 7
-4
7
y z
9

Figura 7.27. Un grafo dirigido pesado con algunas aristas de peso negativo.

Efectuaremos una corrida de escritorio del algoritmo de Bellman-Ford usando el


grafo dirigido pesado G de la Figura 7.27. Formalmente se tiene:

V(G) = {s, t, x, y, z}, n = 5.


E(G) = {(s, t), (s, y), (t, y), (t, x), (t, z), (x, t), (y, x), (y, z), (z, s), (z, x)}, m = 10.
Los pesos de sus aristas:
w(s, t) = 6 w(s, y) = 7 w(t, y) = 8 w(t, x) = 5 w(t, z) = -4
w(x, t) = -2 w(y, x) = -3 w(y, z) = 9 w(z, s) = 2 w(z, x) = 7

Sea root = s. Ahora se inicializan los estimados de cada vrtice y el arreglo Parent que
servir para reconstruir las rutas ms cortas. De tal manera que despus de este proceso se
tendr:

d(s) = 0 Parent[s] = -1
d(t) = Parent[t] = -1
d(x) = Parent[x] = -1
d(y) = Parent[y] = -1
d(z) = Parent[z] = -1

Ahora se procede a relajar los vrtices. El nmero de veces que un vrtice ser procesado
para intentar relajarlo ser n 1 = 4. En las Tablas 7.16 a 19 se muestran las 4 iteraciones
realizadas y por cada iteracin i se muestra la evaluacin para cada arista a fin de
determinar si la relajacin de su vrtice final es posible o no. Tambin se muestran los
estados de los estimados y el arreglo Parent al finalizar cada una de estas 4 iteraciones.

267
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Tabla 7.16. Iteracin 1 de la Aplicacin del Algoritmo de Bellman-Ford para el grafo de la Figura 7.27.
?
i d(v) > d(u) + w(u,v) (u,v) E(G)
?
d(v) Parent

(s,t): d(t) > d(s) + w(s, t)


?
> 0.0 + 6.0: Verdadero
d(t) = 6.0
?
(s,y): d(y) > d(s) + w(s, y)
?
> 0.0 + 7.0: Verdadero
d(y) = 7.0
?
(t,x): d(x) > d(t) + w(t, x)
?
> 6.0 + 5.0: Verdadero
d(x) = 11.0
?
(t,y): d(y) > d(t) + w(t, y)
?
7.0 > 6.0 + 8.0: Falso
No hay cambio
?
(t,z): d(z) > d(t) + w(t, z)
?
> 6.0 + -4.0: Verdadero d(s) = 0.0 Parent[s] = -1
d(z) = 2.0 d(t) = 6.0 Parent[t] = s
?
1 d(x) = 4.0 Parent[x] = y
(x,t): d(t) > d(x) + w(x, t) d(y) = 7.0 Parent[y] = s
?
6.0 > 11.0 + -2.0: Falso d(z) = 2.0 Parent[z] = t
No hay cambio
?
(y,x): d(x) > d(y) + w(y, x)
?
11.0 > 7.0 + -3.0: Verdadero
d(x) = 4.0
?
(y,z): d(z) > d(y) + w(y, z)
?
2.0 > 7.0 + 9.0: Falso
No hay cambio
?
(z,s): d(s)
?
> d(z) + w(z, s)
0.0 > 2.0 + 2.0: Falso
No hay cambio
?
(z,x): d(x) > d(z) + w(z, x)
?
4.0 > 2.0 + 7.0: Falso
No hay cambio

268
Captulo 7. Grafos: Algoritmos Bsicos

Tabla 7.17. Iteracin 2 de la Aplicacin del Algoritmo de Bellman-Ford para el grafo de la Figura 7.27.
?
i d(v) > d(u) + w(u,v) (u,v) E(G)
?
d(v) Parent

(s,t): d(t) > d(s) + w(s, t)


?
6.0 > 0.0 + 6.0: Falso
No hay cambio
?
(s,y): d(y) > d(s) + w(s, y)
?
7.0 > 0.0 + 7.0: Falso
No hay cambio
?
(t,x): d(x) > d(t) + w(t, x)
?
4.0 > 6.0 + 5.0: Falso
No hay cambio
?
(t,y): d(y) > d(t) + w(t, y)
?
7.0 > 6.0 + 8.0: Falso
No hay cambio
?
(t,z): d(z) > d(t) + w(t, z)
?
2.0 > 6.0 + -4.0: Falso d(s) = 0.0 Parent[s] = -1
No hay cambio d(t) = 2.0 Parent[t] = x
2 ? d(x) = 4.0 Parent[x] = y
(x,t): d(t) > d(x) + w(x, t) d(y) = 7.0 Parent[y] = s
?
6.0 > 4.0 + -2.0: Verdadero d(z) = 2.0 Parent[z] = t
d(t) = 2.0
?
(y,x): d(x) > d(y) + w(y, x)
?
4.0 > 7.0 + -3.0: Falso
No hay cambio
?
(y,z): d(z) > d(y) + w(y, z)
?
2.0 > 7.0 + 9.0: Falso
No hay cambio
?
(z,s): d(s) > d(z) + w(z, s)
?
0.0 > 2.0 + 2.0: Falso
No hay cambio
?
(z,x): d(x) > d(z) + w(z, x)
?
4.0 > 2.0 + 7.0: Falso
No hay cambio

269
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Tabla 7.18. Iteracin 3 de la Aplicacin del Algoritmo de Bellman-Ford para el grafo de la Figura 7.27.
?
i d(v) > d(u) + w(u,v) (u,v) E(G) d(v) Parent
?
(s,t): d(t) > d(s) + w(s, t)
?
2.0 > 0.0 + 6.0: Falso
No hay cambio
?
(s,y): d(y) > d(s) + w(s, y)
?
7.0 > 0.0 + 7.0: Falso
No hay cambio
?
(t,x): d(x) > d(t) + w(t, x)
?
4.0 > 2.0 + 5.0: Falso
No hay cambio
?
(t,y): d(y) > d(t) + w(t, y)
?
7.0 > 2.0 + 8.0: Falso
No hay cambio
?
(t,z): d(z) > d(t) + w(t, z)
?
2.0 > 2.0 + -4.0: Verdadero d(s) = 0.0
Parent[s] = -1
d(z) = -2.0 d(t) = 2.0
Parent[t] = x
d(x) = 4.0
3 ? Parent[x] = y
(x,t): d(t) > d(x) + w(x, t) d(y) = 7.0
Parent[y] = s
? d(z) = -2.0
2.0 > 4.0 + -2.0: Falso Parent[z] = t
No hay cambio
?
(y,x): d(x) > d(y) + w(y, x)
?
4.0 > 7.0 + -3.0: Falso
No hay cambio
?
(y,z): d(z) > d(y) + w(y, z)
?
-2.0 > 7.0 + 9.0: Falso
No hay cambio
?
(z,s): d(s) > d(z) + w(z, s)
?
0.0 > -2.0 + 2.0: Falso
No hay cambio
?
(z,x): d(x) > d(z) + w(z, x)
?
4.0 > -2.0 + 7.0: Falso
No hay cambio

270
Captulo 7. Grafos: Algoritmos Bsicos

Tabla 7.19. Iteracin 4 de la Aplicacin del Algoritmo de Bellman-Ford para el grafo de la Figura 7.27.
?
i d(v) > d(u) + w(u,v) (u,v) E(G)
?
d(v) Parent

(s,t): d(t) > d(s) + w(s, t)


?
2.0 > 0.0 + 6.0: Falso
No hay cambio
?
(s,y): d(y) > d(s) + w(s, y)
?
7.0 > 0.0 + 7.0: Falso
No hay cambio
?
(t,x): d(x) > d(t) + w(t, x)
?
4.0 > 2.0 + 5.0: Falso
No hay cambio
?
(t,y): d(y) > d(t) + w(t, y)
?
7.0 > 2.0 + 8.0: Falso
No hay cambio
?
(t,z): d(z) > d(t) + w(t, z)
?
-2.0 > 2.0 + -4.0: Falso d(s) = 0.0 Parent[s] = -1
No hay cambio d(t) = 2.0 Parent[t] = x
4 ? d(x) = 4.0 Parent[x] = y
(x,t): d(t) > d(x) + w(x, t) d(y) = 7.0 Parent[y] = s
?
2.0 > 4.0 + -2.0: Falso d(z) = -2.0 Parent[z] = t
No hay cambio
?
(y,x): d(x) > d(y) + w(y, x)
?
4.0 > 7.0 + -3.0: Falso
No hay cambio
?
(y,z): d(z) > d(y) + w(y, z)
?
-2.0 > 7.0 + 9.0: Falso
No hay cambio
?
(z,s): d(s) > d(z) + w(z, s)
?
0.0 > -2.0 + 2.0: Falso
No hay cambio
?
(z,x): d(x) > d(z) + w(z, x)
?
4.0 > -2.0 + 7.0: Falso
No hay cambio

271
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Sabemos que una vez finalizadas las n 1 = 4 iteraciones, el Algoritmo de


Bellman-Ford ha encontrado las rutas ms cortas desde root hasta los restantes vrtices para
un grafo dirigido asumido libre de circuitos de peso negativo alcanzables precisamente
desde root. Por ltimo, se procede a procesar una vez ms a las aristas de G. Si se
encontrase que uno de los estimados puede ser mejorado, entonces ello implica una
contradiccin respecto a la hiptesis establecida ya que por tanto el grafo dado contiene
circuitos con pesos negativos alcanzables desde root. En el caso del grafo de la Figura 7.27
ninguno de los estimados de los vrtices puede ser mejorado una vez ms, en consecuencia
el algoritmo retorna True como salida. Finalmente el arreglo Parent tendr el siguiente
estado:
Parent[s] = -1
Parent[t] = x
Parent[x] = y
Parent[y] = s
Parent[z] = t

De donde es posible obtener las rutas ms cortas partiendo del vrtice s (Vase la
Figura 7.28):
(s, t) = d(t) = 2.0 con la ruta (s, y, x, t)
(s, x) = d(x) = 4.0 con la ruta (s, y, x)
(s, y) = d(y) = 7.0 con la ruta (s, y)
(s, z) = d(z) = -2.0 con la ruta (s, y, x, t, z)
5

-2
t x
6
-3
8
s 2 7
-4

7
y z
9

Figura 7.28. Las rutas ms cortas del grafo de la Figura 7.27 con el vrtice inicial s.

7.7 Componentes Fuertemente Conectados


Se dice que un grafo dirigido es Fuertemente Conectado si para cualesquiera dos
de sus vrtices existe una ruta que los conecta. El grafo dirigido presentado en la Figura
7.29 es fuertemente conectado.

Una aplicacin del Algoritmo de Bsqueda por Profundidad o Amplitud permite


detectar de manera inmediata grafos fuertemente conectados. Considerando a cada vrtice
del grafo como inicial, si la salida proporcionada por el Algoritmo es efectivamente un
rbol que contiene a todos los vrtices de grafo, entonces el grafo dirigido de entrada es
fuertemente conectado. En el caso del grafo dirigido de la Figura 7.29, se tiene que las

272
Captulo 7. Grafos: Algoritmos Bsicos

salidas proporcionadas por una Bsqueda por Profundidad podran ser aquellas presentadas
en la Figura 7.30. Vemos que los vrtices de todos los rboles generados son precisamente
aquellos del grafo original.

1 2

4 3
Figura 7.29. Un grafo dirigido fuertemente conectado.

5 5 5

1 2 1 2 1 2

4 3 4 3 4 3

Vrtice inicial: 1 Vrtice inicial: 2 Vrtice inicial: 3

5 5

1 2 1 2

4 3 4 3

Vrtice inicial: 4 Vrtice inicial: 5


Figura 7.30. Los rboles de Bsqueda por Profundidad asociados al grafo dirigido de la Figura 7.29.
Cada vrtice del grafo es usado como vrtice inicial.

273
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Consideremos al grafo de la Figura 7.31. Este grafo no es ms que aquel presentado


originalmente en la Figura 7.29 pero con la remocin de las aristas dirigidas (4, 1) y (3, 2).
Este grafo ya no puede ser caracterizado como fuertemente conectado debido a que al
utilizar al vrtice 3 como inicial en una Bsqueda por Profundidad se obtiene un rbol, pero
ste no contiene a todos los vrtices del grafo. Vase la Figura 7.32.a. De hecho, la misma
situacin se presenta al utilizar al vrtice 4 como vrtice inicial (Figura 7.32.b).

1 2

4 3
Figura 7.31. El grafo dirigido de la Figura 7.29
al que le han sido removidas las aristas (4, 1) y (3, 2).

4 3 4 3

a) b)
Figura 7.32. Dos rboles de Bsqueda por Profundidad asociados al grafo dirigido de la Figura 7.31.
a) El rbol generado al usar al vrtice 3 como vrtice inicial.
b) El rbol generado al usar al vrtice 4 como vrtice inicial.

7.8 Grafo Mnimo Equivalente


El problema de encontrar un grafo mnimo equivalente consiste en construir un
subgrafo dirigido H de un grafo fuertemente conectado G al remover el mximo nmero de
aristas de G sin afectar sus propiedades de conectividad. Es decir, para cualesquiera dos
vrtices u y v de G existe una ruta que conecta a u con v en el grafo H.

Sea E(G) el conjunto de aristas del grafo fuertemente conectado G el cual se forma
por n vrtices y m aristas. Las aristas se asume estn arbitrariamente etiquetadas de 1 a m.
El siguiente procedimiento permite encontrar su grafo mnimo equivalente. La idea es
generar de manera directa un grafo candidato. Si se presenta la situacin en que tal
candidato tiene exactamente n aristas entonces el algoritmo termina debido a que el grafo G
de hecho tena un circuito Hamiltoniano. En caso contrario se procede a generar nuevos
grafos candidatos, si alguno de stos representa una mejora respecto a la solucin candidata
actual entonces sta es reemplazada con la nueva solucin encontrada:

274
Captulo 7. Grafos: Algoritmos Bsicos

Paso 1: Sea S el conjunto de aristas que forman a la solucin actual. Inicialmente


S = E(G). Se procede a examinar a todas las aristas de manera secuencial. Una arista
(i, j) es removida de S siempre y cuando exista una ruta alternativa que conecte al
vrtice i con el vrtice j. Tal ruta no debe incluir aristas previamente eliminadas. Ello
implica que S se actualiza al conservar nicamente aquellas aristas que no han sido
removidas. Sea F el conjunto de aristas que han sido removidas del grafo G. Si
Card(S) = n entonces el procedimiento finaliza y S contiene las aristas del grafo mnimo
equivalente. En caso contrario se procede a ejecutar el paso 2.
Paso 2: Sea S = S.
Paso 3: Mientras F o bien Card(S) = n se efectan los pasos 4 y 5:
o Paso 4: Se tienen dos movimientos a aplicar:
Movimiento 1: Se remueve de F a la arista con la etiqueta de mayor
valor k y se agrega en S.
Movimiento 2: Una vez que se ha efectuado el movimiento 1 se tiene
que se considera secuencialmente a todas las aristas en S con etiquetas
mayores que k removiendo de S cada arista (i, j) para cual existe una
ruta alternativa que conecta a i con j y agregando a la arista (i, j) en F.
o Paso 5: Si Card(S) < Card(S) entonces se actualiza la solucin actual haciendo
S = S. En cualquier caso se retorna al paso 3.

El procedimiento claramente termina cuando no es posible efectuar el movimiento 1 del


paso 4 debido a que F est vaco. La otra instancia de terminacin se presenta cuando
Card(S) = n. En cualquier caso el conjunto S contiene las aristas del grafo mnimo
equivalente.

Considrese el grafo dirigido de la Figura 7.33. Los nmeros en cada arista denotan
la etiqueta que se les ha asignado.
1
4 3
2 3

2
6 4
8
10
9 7

1 5
5
Figura 7.33. Un grafo dirigido fuertemente conectado.
Sus aristas se encuentran etiquetadas.

Se procede a examinar a cada arista (i, j) del grafo de la Figura 7.33. Tal arista es
eliminada del grafo si existe una ruta alternativa que conecte al vrtice i con el vrtice j. Si
es el caso, entonces (i, j) es agregada al conjunto F. Inicialmente tenemos que F = y
S = E(G).

275
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Arista 1: (4, 3)
o Existe una ruta alternativa: (4, 2, 1, 3). F = {(4, 3)}. S es actualizado. Vase la
Figura 7.34.a.

Arista 2: (4, 2)
o No existe una ruta alternativa que conecte al vrtice 4 con el vrtice 2 ya que
precisamente el vrtice 4 tiene como arista de salida nicamente a (4, 2). Vase
la Figura 7.34.a.

Arista 3: (3, 2)
o Existe una ruta alternativa: (3, 5, 4, 2). F = {(4, 3), (3, 2)}. S es actualizado.
Vase la Figura 7.34.b.

Arista 4: (3, 5)
o No existe una ruta alternativa ya que el vrtice 3 tiene como arista de salida
nicamente a (3, 5) (Figura 7.34.b).

Arista 5: (5, 1)
o Existe una ruta alternativa que conecta al vrtice 5 con el vrtice 1: (5, 4, 2, 1).
F = {(4, 3), (3, 2), (5, 1)}. S es actualizado, Figura 7.34.c.

Arista 6: (1, 4)
o Existe una ruta alternativa: (1, 3, 5, 4). F = {(4, 3), (3, 2), (5, 1), (1, 4)}. S es
actualizado tal y como se presenta en la Figura 7.34.d.

Arista 7: (5, 4)
o No existe una ruta alternativa ya que el vrtice 4 tiene como arista incidente
nicamente a (5, 4) (Figura 7.34.d).

Arista 8: (2, 1)
o No existe una ruta alternativa debido a que el vrtice 2 tiene como arista de
salida nicamente a (2, 1). Vase la Figura 7.34.d.

Arista 9: (1, 3)
o No existe una ruta alternativa que conecte al vrtice 1 con el vrtice 3 debido a
que el vrtice 1 tiene como arista de salida nicamente a (1, 3). Vase la Figura
7.34.d.

Arista 10: (5, 2)


o Existe una ruta alternativa que conecta al vrtice 5 con el vrtice 2: (5, 4, 2).
Entonces F = {(4, 3), (3, 2), (5, 1), (1, 4), (5, 2)}. S es actualizado tal y como se
presenta en la Figura 7.34.e.

276
Captulo 7. Grafos: Algoritmos Bsicos

4 3 4 3
2 3 2

2 2
6 4 6 4
8 8
10 10
9 7 9 7

1 5 1 5
5 5

a) b)

4 3 4 3
2 2

2 2
6 4 4
8 8
10 10
9 7 9 7

1 5 1 5

c) d)

4 3
2

2
4
8

9 7

1 5

e)
Figura 7.34. Proceso de construccin del grafo mnimo equivalente
asociado al grafo dirigido de la Figura 7.33 (Vase el texto para detalles).

En este punto se tiene que han sido inspeccionadas las 10 aristas del grafo dirigido
original (Figura 7.33). Se tiene entonces:
F = {(4, 3), (3, 2), (5, 1), (1, 4), (5, 2)}
S = {(4, 2), (3, 5), (5, 4), (2, 1), (1, 3)}
Se tiene que la cardinalidad de S es Card(S) = 5 = n. Por lo tanto, el grafo mnimo
equivalente ha sido encontrado y el procedimiento finaliza.

277
Una Introduccin a las Matemticas Discretas y Teora de Grafos

6
1 4
2

1 4
7

5
2 3
3
Figura 7.35. Un grafo dirigido fuertemente conectado.
Sus aristas se encuentran etiquetadas.

Ahora considrese el grafo dirigido G de la Figura 7.35. Se procede a examinar cada


una de sus aristas. Inicialmente se tiene que F = y S = E(G).
Arista 1: (1, 2)
o Existe una ruta alternativa: (1, 4, 2). F = {(1, 2)}. S es actualizado tal como se
presenta en la Figura 7.36.
Arista 2: (1, 4)
o No existe una ruta alternativa ya que el vrtice 1 tiene como arista de salida
nicamente a (1, 4).
Arista 3: (2, 3)
o No existe una ruta alternativa ya que el vrtice 3 tiene nicamente a (2, 3) como
arista incidente.
Arista 4: (2, 4)
o No existe una ruta alternativa que conecte al vrtice 2 con el vrtice 4.
Arista 5: (3, 2)
o No existe una ruta alternativa ya que el vrtice 3 tiene como arista de salida
nicamente a (3, 2).
Arista 6: (4, 1)
o No existe una ruta alternativa.
Arista 7: (4, 2)
o No existe una ruta alternativa.

6
1 4
2

4
7

5
2 3
3
Figura 7.36. Resultado de la primera fase de la construccin del grafo mnimo
equivalente asociado al grafo dirigido de la Figura 7.35 (Vase el texto para detalles).

278
Captulo 7. Grafos: Algoritmos Bsicos

En este punto se tiene que


F = {(1, 2)}
S = {(1, 4), (2, 3), (2, 4), (3, 2), (4, 1), (4, 2)}.
Debido a que Card(S) = 6 n = 4 entonces se hace S = S y se efectuar el paso 3 mientras
sea posible. El procedimiento busca si es posible mejorar la solucin actual S al reducir el
nmero de aristas. Ahora se buscar la arista con la mayor etiqueta k que est contenida en
F y se agregar a S (Vase la Figura 7.37.a). Se examinarn todas las aristas en S con
etiquetas mayores a k. Es claro que la etiqueta con mayor valor en F es k = 1. Ahora
tenemos:
F=
S = {(1, 2), (1, 4), (2, 3), (2, 4), (3, 2), (4, 1), (4, 2)}
Todas las aristas en S, excepto la que acabamos de agregar, tienen el valor de su etiqueta
mayor a k = 1. Por lo tanto todas estas aristas se examinarn:
Arista 2: (1, 4)
o Existe una ruta alternativa: (1, 2, 4). La arista es removida de S y agregada en F:
S = {(1, 2), (2, 3), (2, 4), (3, 2), (4, 1), (4, 2)}, F = {(1, 4)}. Vase la Figura 7.37.b.
Arista 3: (2, 3)
o No existe una ruta alternativa ya que la arista (2, 3) es la nica arista incidente al
vrtice 3 (vase la Figura 7.37.b).
Arista 4: (2, 4)
o No existe una ruta alternativa debido a que la arista (2, 4) es la nica arista incidente
al vrtice 4.
Arista 5: (3, 2)
o No existe una ruta alternativa conecte al vrtice 3 con el vrtice 2 ya que la arista
(3, 2) es precisamente la nica arista de salida en el vrtice 3.
Arista 6: (4, 1)
o No existe una ruta alternativa: la arista (4, 1) es la nica arista incidente al vrtice 1
(vase la Figura 7.37.b).
Arista 7: (4, 2)
o Existe una ruta alternativa: (4, 1, 2). La arista es removida de S y agregada en F:
S = {(1, 2), (2, 3), (2, 4), (3, 2), (4, 1)}, F = {(1, 4), (4, 2)}. El grafo S se actualiza
(Vase la Figura 7.37.c).

En este punto se ha aplicado por completo el paso 4 de nuestro proceso de


construccin. En esta fase se tiene que Card(S) = 5 < Card(S) = 6. Ello implica que se ha
encontrado una mejor solucin. Se hace S = S. Dado que Card(S) n y F se prosigue
la ejecucin del procedimiento en el paso 3 nuevamente. Se tiene:
F = {(1, 4), (4, 2)}
S = {(1, 2), (2, 3), (2, 4), (3, 2), (4, 1)}
La etiqueta con mayor valor en F es k = 7. sta corresponde a la arista (4, 2). Se actualizan
tanto F como S:
F = {(1, 4)}
S = {(1, 2), (2, 3), (2, 4), (3, 2), (4, 1), (4, 2)}
No se examina ninguna arista debido a que 7 es la etiqueta de mayor valor en S. El grafo S
queda tal como se presenta en la Figura 7.37.d.

279
Una Introduccin a las Matemticas Discretas y Teora de Grafos

La etiqueta con mayor valor en F es k = 2. Ahora se tendr:

F=
S = {(1, 2), (2, 3), (2, 4), (3, 2), (4, 1), (4, 2)}.

Vase la Figura 7.37.e. Se procede a examinar a aquellas aristas con etiquetas mayores a
k = 2.

Arista 3: (2, 3)
o No existe una ruta alternativa: la arista (2, 3) es la nica arista incidente al
vrtice 3.

Arista 4: (2, 4)
o No existe una ruta alternativa.

Arista 5: (3, 2)
o No existe una ruta alternativa: la arista (3, 2) es la nica arista de salida en el
vrtice 3.

Arista 6: (4, 1)
o No existe una ruta alternativa.

Arista 7: (4, 2)
o Existe una ruta alternativa: (4, 1, 2). La arista es removida de S y agregada en
F. Se tiene entonces S = {(1, 2), (2, 3), (2, 4), (3, 2), (4, 1)} y F = {(4, 2)}.
Vase la Figura 7.37.f.

La etiqueta con mayor valor en F es k = 7. Ahora:


F=
S = {(1, 2), (2, 3), (2, 4), (3, 2), (4, 1), (4, 2)}.
Vase la Figura 7.37.g. No se examinan aristas debido a que 7 es la etiqueta de mayor valor
en S.

Ahora se tiene que F = por lo tanto se cumple una condicin para terminar el
procedimiento. El conjunto S queda de la siguiente forma (la cual corresponde a la ltima
actualizacin S = S efectuada previamente):

S = {(1, 2), (2, 3), (2, 4), (3, 2), (4, 1)}

Esta es de hecho la mejor solucin encontrada. Por lo tanto el grafo mnimo equivalente
asociado al grafo dirigido de la Figura 7.35 es el presentado en la Figura 7.38.

280
Captulo 7. Grafos: Algoritmos Bsicos

6 6 6
1 4 1 4 1 4
2

1 4 1 4 1 4
7 7

5 5 5
2 3 2 3 2 3
3 3 3

a) b) c)

6 6 6
1 4 1 4 1 4
2 2

1 4 1 4 1 4
7 7

5 5 5
2 3 2 3 2 3
3 3 3

d) e) f)

6
1 4
2

1 4
7

5
2 3
3

g)

Figura 7.37. Proceso de construccin del grafo mnimo equivalente


asociado al grafo dirigido de la Figura 7.35 (Vase el texto para detalles).

281
Una Introduccin a las Matemticas Discretas y Teora de Grafos

6
1 4

1 4

5
2 3
3
Figura 7.38. El grafo mnimo equivalente asociado al grafo dirigido de la Figura 7.35.

7.9 Puntos de Corte y Puentes


Un grafo simple no dirigido que no est conectado puede ser dividido en
componentes conectados. Un grafo simple conectado es un grafo formado por un nico
componente. Un punto de corte (cut node, cut point) en un componente es un vrtice que al
ser removido desconecta al componente. En el grafo de la Figura 7.39, claramente el vrtice
D es un punto de corte (al remover a tal vrtice se pierden rutas que permitan conectar a los
vrtices A, B y C con los vrtices E, F y H).

B E

A D H

C F

Figura 7.39. Un grafo simple con un punto de corte: el vrtice D.

Si un grafo conectado cuenta con una arista (i, j) que al ser removida trae como
consecuencia que el grafo obtenido ser desconectado, entonces se dice que a tal arista se le
llama puente (bridge). En el grafo de la Figura 7.40 la arista (D, F) es un puente.

B E

A D F

C H
Figura 7.40. Un grafo simple con un puente: la arista (D, F).

Intuitivamente se podra pensar que los vrtices que conforman a un puente son
puntos de corte. De hecho, considerando el puente (D, F) en el grafo de la Figura 7.40
tenemos que efectivamente los vrtices D y F son puntos de corte. Sin embargo, en general

282
Captulo 7. Grafos: Algoritmos Bsicos

esta propiedad no es necesariamente cierta. Obsrvese el grafo de la Figura 7.41.a. El grafo


claramente cuenta con un puente: la arista (x, y). El vrtice x es un punto de corte ya que
separa al grafo en dos componentes, uno de los cuales contiene nicamente al vrtice y. Sin
embargo, el vrtice y no es un punto de corte: al remover al vrtice y se obtiene un subgrafo
formado por un nico componente. Es decir, el grafo resultante sigue siendo conectado. Por
otro lado, consideremos ahora al grafo de la Figura 7.41.b. Es claro que la arista (U, V) es
un puente: su remocin produce dos componentes con exactamente un vrtice cada uno.
Pero ninguno de los dos vrtices U y V pueden ser caracterizados como puntos de corte: su
respectiva remocin del grafo original produce un componente con un nico vrtice, es
decir, el subgrafo que se obtiene sigue siendo conectado.

u x y U V

w
a) b)

Figura 7.41. Dos grafos que presentan puentes cuyos vrtices


no son necesariamente puntos de corte (vase el texto para detalles).

De estas observaciones se desprenden propiedades a tomar en cuenta:

Los vrtices de un puente son puntos de corte si sus grados son mayores o iguales a 2.
Un puente se puede formar por dos vrtices de grado 1 (que no son puntos de corte).
Un puente se puede formar por un vrtice de grado 1 (que no es punto de corte) y por
un punto de corte.

El siguiente procedimiento permite identificar puntos de corte y puentes en un grafo


no dirigido conectado G. A cada arista (i, j) se le asignar una etiqueta con tres posibles
estados:

b(i, j) = 0: La arista no tiene un punto de corte en i o j.


b(i, j) = 1: La arista tiene exactamente un punto de corte en i o j.
b(i, j) = 2: Los vrtices i y j son ambos puntos de corte.

Entonces el procedimiento est dado como sigue:

Sea C el conjunto de puntos de corte identificados. Sea B el conjunto de puentes


identificados. Inicializar a tales conjuntos como C = y B = . Toda arista (i, j) en el
grafo G ser inicializada con b(i, j) = 0.

283
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Procesar secuencialmente cada vrtice i de G:

o Obtener el subgrafo G \ i, es decir, el grafo G con el vrtice i removido (tambin


deben removerse todas aquellas aristas de las cuales i forma parte).

o Efectuar una Bsqueda por Profundidad o Amplitud sobre G \ i. Se revisa la salida


producida por la bsqueda:

Si la salida proporcionada por la bsqueda es un bosque entonces vrtice i es un


punto de corte ya que G \ i es de hecho un grafo no conectado. Entonces:

Se agrega el vrtice i al conjunto C.

Se identifican todas las aristas de G incidentes al punto de corte i. Para


cada arista (i, j) efectuar b(i, j) = b(i, j) + 1. Si b(i, j) = 2 entonces se
introduce a la arista (i, j) en el conjunto B. Ntese que en este caso el
vrtice j ya estaba previamente en el conjunto C.

Si la salida proporcionada por la bsqueda es un rbol y el grado del vrtice i en


G es exactamente 1 entonces se tiene que si bien i no es punto de corte, la arista
que le es incidente si es un puente:

Se identifica a la nica arista (i, j) incidente al vrtice i. La arista es


introducida en el conjunto B.

Nuestro procedimiento evidentemente termina cuando todos los vrtices de G han sido
inspeccionados.

Considrese el grafo G presentado en la Figura 7.42. Se determinarn sus puntos de


corte y sus puentes. Inicialmente se tiene C = y B = . Adems para cada una de sus
aristas (i, j) tendremos b(i, j) = 0.

h
a d

c f g

b e
i

Figura 7.42. Un grafo simple conectado para el que se determinarn todos sus puentes y puntos de corte.

284
Captulo 7. Grafos: Algoritmos Bsicos

Se procede a analizar secuencialmente a cada uno de sus vrtices:


Vrtice a:
o Se obtiene G \ a. Vase la Figura 7.43.a. Una bsqueda por profundidad sobre
G \ a retorna el rbol de la Figura 7.43.b indicando que G \ a no es un grafo
desconectado, por lo tanto el vrtice a no es un punto de corte. Debido a que
deg(a) 1 entonces no se efecta ninguna actualizacin.

Vrtice b:
o Se obtiene G \ b. Vase la Figura 7.43.c. Una bsqueda por profundidad sobre
G \ b retorna el rbol de la Figura 7.43.d indicando que G \ b no es un grafo
desconectado, por lo tanto el vrtice b no es un punto de corte. Debido a que
deg(b) 1 entonces no se efecta ninguna actualizacin.

Vrtice c:
o Se obtiene G \ c. Vase la Figura 7.43.e. Una bsqueda por profundidad sobre
G \ c retorna al mismo G \ c pero indicando que es de hecho un bosque. Por lo
tanto el vrtice c es un punto de corte. Se efectan las siguientes
actualizaciones:
C = {c}
(a, c): b(a, c) = 1
(b, c): b(b, c) = 1
(d, c): b(d, c) = 1
(e, c): b(e, c) = 1

Vrtice d:
o Se obtiene G \ d. Vase la Figura 7.43.f. Una bsqueda por profundidad sobre
G \ d retorna el rbol de la Figura 7.43.g indicando que G \ d no es un grafo
desconectado, por lo tanto el vrtice d no es un punto de corte. Debido a que
deg(d) 1 entonces no se efecta ninguna actualizacin.

Vrtice e:
o Se obtiene G \ e. Vase la Figura 7.43.h. Una bsqueda por profundidad sobre
G \ e retorna el rbol de la Figura 7.43.i indicando que G \ e no es un grafo
desconectado, por lo tanto el vrtice e no es un punto de corte. Debido a que
deg(e) 1 entonces no se efecta ninguna actualizacin.

Vrtice f:
o Se obtiene G \ f. Vase la Figura 7.43.j. Una bsqueda por profundidad sobre
G \ f retorna el bosque de la Figura 7.44.a. Por lo tanto el vrtice f es un punto
de corte. Se efectan las siguientes actualizaciones:
C = {c, f}
(d, f): b(d, f) = 1
(e, f): b(e, f) = 1
(g, f): b(g, f) = 1

285
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Vrtice g:
o Se obtiene G \ g Vase la Figura 7.44.b. Una bsqueda por profundidad sobre
G \ g retorna el bosque de la Figura 7.44.c. Por lo tanto el vrtice g es un punto
de corte. Se efectan las siguientes actualizaciones:
C = {c, f, g}
(f, g): b(f, g) = 2
(h, g): b(h, g) = 1
(i, g): b(i, g) = 1
Dado que b(f, g) = 2 se ha encontrado el primer puente: B = {(f, g)}.

Vrtice h:
o Se obtiene G \ h. Vase la Figura 7.44.d. Una bsqueda por profundidad sobre
G \ h retorna el rbol de la Figura 7.44.e indicando que G \ h no es un grafo
desconectado, por lo tanto el vrtice h no es un punto de corte. Debido a que
deg(h) = 1 entonces la nica arista que le es incidente, (g, h), es un puente:
Se ha encontrado un segundo puente: B = {(f, g), (g, h)}.

Vrtice i:
o Se obtiene G \ i. Vase la Figura 7.44.f. Una bsqueda por profundidad sobre
G \ i retorna el rbol de la Figura 7.44.g indicando que G \ i no es un grafo
desconectado, por lo tanto el vrtice i no es un punto de corte. Debido a que
deg(i) = 1 entonces la nica arista que le es incidente, (g, i), es un puente:
Se ha encontrado un tercer puente: B = {(f, g), (g, h), (g, i)}.

Tenemos entonces que el procedimiento ha finalizado con el siguiente estado:

Se identificaron tres puntos de corte: C = {c, f, g}.


Se identificaron tres puentes: B = {(f, g), (g, h), (g, i)}.
Los valores b(i, j) nos describen la incidencia de las aristas sobre los puntos de corte del
grafo:

o b(f, g) = 2
o b(h, g) = 1
o b(i, g) = 1
o b(d, f) = 1
o b(e, f) = 1
o b(a, c) = 1
o b(b, c) = 1
o b(d, c) = 1
o b(e, c) = 1
o b(a, b) = 0

286
Captulo 7. Grafos: Algoritmos Bsicos

h h
d d

c f g c f g

b e b e
i i

a) G \ a b) rbol de Bsqueda asociado a G \ a

h h
a d a d

c f g c f g

e e
i i

c) G \ b d) rbol de Bsqueda asociado a G \ b

h h
a d a

f g c f g

b e b e
i i

e) G \ c (es su propio bosque de bsqueda) f) G \ d

h h
a a d

c f g c f g

b e b
i i

g) rbol de Bsqueda asociado a G \ d h) G \ e

h h
a d a d

c f g c g

b b e
i i

i) rbol de Bsqueda asociado a G \ e j) G \ f

Figura 7.43. Primera parte del procesamiento de los subgrafos y rboles de bsqueda por profundidad
asociados al grafo G de la Figura 7.42 a fin de determinar sus puentes y puntos de corte
(vase el texto para detalles).

287
Una Introduccin a las Matemticas Discretas y Teora de Grafos

h h
a d a d

c g c f

b e b e
i i

a) Bosque de Bsqueda asociado a G \ f b) G \ g

h
a d a d

c f c f g

b e b e
i i

c) Bsqueda de Bsqueda asociado a G \ g d) G \ h

a d h
a d

c f g
c f g
b e
i b e

e) rbol de Bsqueda asociado a G \ h f) G\i

h
a d

c f g

b e

g) Arbl de Bsqueda asociado a G \ i

Figura 7.44. Segunda parte del procesamiento de los subgrafos y rboles de bsqueda por profundidad
asociados al grafo G de la Figura 7.42 a fin de determinar sus puentes y puntos de corte
(vase el texto para detalles).

7.10 Conjunto Fundamental de Circuitos


Sea T un rbol de expansin asociado a un grafo conectado no dirigido G con n
vrtices. El Conjunto Fundamental de Circuitos de G correspondiente a T es el
conjunto de circuitos de G que se forman con una arista (i, j) de G \ T junto con la nica
ruta entre el vrtice i y el vrtice j en el rbol T.

288
Captulo 7. Grafos: Algoritmos Bsicos

9 4 9 4

G 8 T 8

6 2 6 2
Figura 7.45. Un grafo G y uno de sus rboles de expansin T.

9 4

G-T 8

6 2
Figura 7.46. El grafo G \ T. G y T fueron presentados en la Figura 7.45.

9 4 4

8 8

6 2 2
Figura 7.47. El conjunto fundamental de circuitos del grafo G correspondiente al rbol T.
G y T fueron presentados en la Figura 7.45.

Considrese el grafo G y su rbol de expansin asociado T, ambos presentados en la


Figura 7.45. El grafo G \ T se obtiene al eliminar las aristas de G que estn presentes en T.
Vase la Figura 7.46. La presencia, en G \ T, de las aristas (9, 6) y (4, 2) indica que se

289
Una Introduccin a las Matemticas Discretas y Teora de Grafos

tienen dos circuitos en el conjunto fundamental de circuitos del grafo G correspondiente al


rbol T. El primer circuito se forma por la arista (9, 6) G \ T y por las aristas que forman
la nica ruta que conecta al vrtice 9 con el vrtice 6 en el rbol T: (6, 2), (2, 8), (8, 4) y
(4, 9). Es decir, el circuito est dado por (9, 6, 2, 8, 4, 9). El segundo circuito se forma por
la arista (4, 2) G \ T y por las aristas (2, 8), (4, 8) T. Vase la Figura 7.47.

Ntese que el conjunto fundamental de circuitos vara de acuerdo al rbol de


expansin que se considere. Por ejemplo, el rbol T* de la Figura 7.48 es tambin un rbol
de expansin para el grafo original G de la Figura 7.45. En la Figura 7.49 se presenta al
grafo G \ T*. En base al rbol T* se tiene que el grafo G solo cuenta con el circuito
(4, 8, 2, 4) en su conjunto fundamental.

9 4

T* 8

6 2

Figura 7.48. Un rbol de expansin T* para el grafo G presentado en la Figura 7.45.

9 4

G \ T* 8

6 2

Figura 7.49. El grafo G \ T*. G y T* fueron presentados en las Figuras 7.45 y 7.48 respectivamente.

290
Captulo 7. Grafos: Algoritmos Bsicos

El siguiente procedimiento construye un rbol de expansin mientras que, al mismo


tiempo, encuentra el conjunto fundamental de circuitos de un grafo conectado G:

Paso 1:
o Seleccionar un vrtice u en V(G) como la raz del rbol a generar. Sea
T = {u}. El conjunto T contendr a los vrtices del grafo que ya forman parte del
rbol de expansin.
Paso 2:
o Sea x cualquier vrtice en T V(G). Si V(G) = entonces el procedimiento
finaliza.
Paso 3:
o Considerar de manera secuencial a cada arista (x, j) tal que j N(x).
Si j est en T entonces:
Obtener un circuito al incluir a la arista (x, j) junto con la nica ruta que
conecta al vrtice x con el vrtice j en el rbol.
Si j no est en T entonces:
Agregar la arista (x, j) al rbol e incluir el vrtice j en el conjunto T.
Eliminar la arista (x, j) del conjunto E(G). Remover de V(G) aquellos
vrtices que se aslen al remover la arista (x, j).
Una vez que todas las aristas han sido procesadas se retorna al paso 2.

Ntese, en el Paso 2 del procedimiento antes presentado, que todo vrtice v que no
est en T V(G) puede ser caracterizado de dos maneras:

v est en T pero no en V(G). Ello quiere decir que el vrtice ya forma parte del rbol de
expansin y todas sus aristas incidentes ya fueron previamente evaluadas y por lo tanto
removidas de E(G), tal como lo indica el Paso 3. Tales remociones provocan que en un
momento dado el vrtice v quede aislado, lo cual implica que fue removido en su
momento de V(G).

v est en V(G) pero no en T. Evidentemente el vrtice an no forma parte del rbol de


expansin. Pero adems, se tiene que el vrtice v an no ha sido descubierto al revisar
las vecindades de los vrtices previamente procesados. Dado que el grafo es conectado,
eventualmente el vrtice v ser descubierto y agregado al conjunto T tal como lo
especifica el paso 3.

La idea detrs de considerar, en el paso 2, nicamente a aquellos vrtices en T V(G)


tiene que ver con el hecho de que deseamos extender al rbol al agregarle nuevas aristas. Si
un vrtice x est en T V(G) ello quiere decir que ya forma parte del rbol y que adems
an no est aislado, es decir, an cuenta con aristas incidentes. Precisamente estas aristas
son las que utilizaremos para extender al rbol de expansin.

291
Una Introduccin a las Matemticas Discretas y Teora de Grafos

2 3

1 6

4 5
Figura 7.50. Un grafo conectado de 6 vrtices
al que se le determinar su conjunto fundamental de circuitos.

Considrese al grafo de la Figura 7.50. Se buscar su conjunto fundamental de


circuitos de acuerdo al procedimiento descrito.

Paso 1:
o V(G) = {1, 2, 3, 4, 5, 6}
o u=1
o T = {u} = {1}
Paso 2:
o T V(G) = {1} {1, 2, 3, 4, 5, 6} = {1}
o x=1
Paso 3:
o Aristas (x, j) a considerar con x = 1: (1, 2), (1, 3), (1, 4), (1, 5), (1, 6)
o Arista (1, 2), j = 2
2 T F. Entonces:
T = T {2} = {1, 2}
Se agrega la arista (1, 2) al rbol.
Se remueve la arista (1, 2) del grafo G.
Vase la Figura 7.50.a.
o Arista (1, 3), j = 3
3 T F. Entonces:
T = T {3} = {1, 2, 3}
Se agrega la arista (1, 3) al rbol.
Se remueve la arista (1, 3) del grafo G.
Vase la Figura 7.50.b.
o Arista (1, 4), j = 4
4 T F. Entonces:
T = T {4} = {1, 2, 3, 4}
Se agrega la arista (1, 4) al rbol.
Se remueve la arista (1, 4) del grafo G.
Vase la Figura 7.51.c.

292
Captulo 7. Grafos: Algoritmos Bsicos

o Arista (1, 5), j = 5


5 T F. Entonces:
T = T {5} = {1, 2, 3, 4, 5}
Se agrega la arista (1, 5) al rbol.
Se remueve la arista (1, 5) del grafo G.
Vase la Figura 7.52.a.
o Arista (1, 6), j = 6
6 T F. Entonces:
T = T {6} = {1, 2, 3, 4, 5, 6}
Se agrega la arista (1, 6) al rbol.
Se remueve la arista (1, 6) del grafo G.
El vrtice 1 ha quedado aislado, por lo tanto
o V(G) = V(G) \ {1} = {2, 3, 4, 5, 6}
Vase la Figura 7.52.b.

Todas las aristas incidentes al vrtice x = 1 han sido procesadas. Por lo tanto se retorna al
paso 2.

Paso 2:
o T V(G) = {1, 2, 3, 4, 5, 6} {2, 3, 4, 5, 6} = {2, 3, 4, 5, 6}
o x=2
Paso 3:
o Aristas (x, j) a considerar con x = 2: (2, 3), (2, 6)
o Arista (2, 3), j = 3
3 T V. Entonces:
Se forma un circuito con la arista (2, 3) y la nica ruta en T que
conecta al vrtice 2 con el vrtice 3: (2, 3, 1, 2).
Se remueve la arista (2, 3) del grafo G.
Vase la Figura 7.52.c.
o Arista (2, 6), j = 6
6 T V. Entonces:
Se forma un circuito con la arista (2, 6) y la nica ruta en T que
conecta al vrtice 2 con el vrtice 6: (2, 6, 1, 2).
Se remueve la arista (2, 6) del grafo G.
El vrtice 2 queda aislado, por lo tanto:
o V(G) = V(G) \ {2} = {3, 4, 5, 6}
Vase la Figura 7.52.d.

Todas las aristas incidentes al vrtice x = 2 han sido procesadas. Por lo tanto se retorna al
paso 2.

Paso 2:
o T V(G) = {1, 2, 3, 4, 5, 6} {3, 4, 5, 6} = {3, 4, 5, 6}
o x=3

293
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Paso 3:
o Aristas (x, j) a considerar con x = 3: (3, 4), (3, 5)
o Arista (3, 4), j = 4
4 T V. Entonces:
Se forma un circuito con la arista (3, 4) y la nica ruta en T que
conecta al vrtice 3 con el vrtice 4: (3, 4, 1, 3).
Se remueve la arista (3, 4) del grafo G.
Vase la Figura 7.53.a.
o Arista (3, 5), j = 5
5 T V. Entonces:
Se forma un circuito con la arista (3, 5) y la nica ruta en T que
conecta al vrtice 3 con el vrtice 5: (3, 5, 1, 3).
Se remueve la arista (3, 5) del grafo G.
El vrtice 3 queda aislado, por lo tanto:
o V(G) = V(G) \ {3} = {4, 5, 6}
Vase la Figura 7.53.b.
Todas las aristas incidentes al vrtice x = 3 han sido procesadas. Por lo tanto se retorna al
paso 2.
Paso 2:
o T V(G) = {1, 2, 3, 4, 5, 6} {4, 5, 6} = {4, 5, 6}
o x=4
Paso 3:
o Aristas (x, j) a considerar con x = 4: (4, 5)
o Arista (4, 5), j = 5
5 T V. Entonces:
Se forma un circuito con la arista (4, 5) y la nica ruta en T que
conecta al vrtice 4 con el vrtice 5: (4, 5, 1, 4).
Se remueve la arista (4, 5) del grafo G.
El vrtice 4 queda aislado, por lo tanto:
o V(G) = V(G) \ {4} = {5, 6}
Vase la Figura 7.53.c.
Todas las aristas incidentes al vrtice x = 4 han sido procesadas. Por lo tanto se retorna al
paso 2.
Paso 2:
o T V(G) = {1, 2, 3, 4, 5, 6} {5, 6} = {5, 6}, x=5
Paso 3:
o Aristas (x, j) a considerar con x = 5: (5, 6)
o Arista (5, 6), j = 6
6 T V. Entonces:
Se forma un circuito con la arista (5, 6) y la nica ruta en T que
conecta al vrtice 5 con el vrtice 6: (5, 6, 1, 5).
Se remueve la arista (5, 6) del grafo G.
Los vrtices 5 y 6 quedan aislados, por lo tanto:
o V(G) = V(G) \ {5, 6} =
Vase la Figura 7.53.d.

294
Captulo 7. Grafos: Algoritmos Bsicos

Todas las aristas incidentes al vrtice x = 5 han sido procesadas. Por lo tanto se retorna al
paso 2.
Paso 2:
o V(G) = . El procedimiento finaliza.

Se tiene entonces que bajo el rbol de expansin construido a lo largo de nuestro


proceso, el grafo dado G, de la Figura 7.50, tiene el siguiente conjunto fundamental de
circuitos:
(2, 3, 1, 2)
(2, 6, 1, 2)
(3, 4, 1, 3)
(3, 5, 1, 3)
(4, 5, 1, 4)
(5, 6, 1, 5)

2 3 2 3

1 6 1 6

4 5 4 5
G T
a)
2 3 2 3

1 6 1 6

4 5 4 5
G T
b)
2 3 2 3

1 6 1 6

4 5 4 5
G T
c)
Figura 7.51. Proceso de identificacin del conjunto fundamental de circuitos del grafo de la Figura 7.50
(Primera parte, vase el texto para detalles).

295
Una Introduccin a las Matemticas Discretas y Teora de Grafos

2 3 2 3

1 6 1 6

4 5 4 5
G T
a)

2 3 2 3

6 1 6

4 5 4 5
G T
b)

2 3 2 3

6 1 6

4 5 4 5
G T
c)

3 2 3

6 1 6

4 5 4 5
G T
d)

Figura 7.52. Proceso de identificacin del conjunto fundamental de circuitos del grafo de la Figura 7.50
(Segunda parte, vase el texto para detalles).

296
Captulo 7. Grafos: Algoritmos Bsicos

3 2 3

6 1 6

4 5 4 5
G T
a)

2 3

6 1 6

4 5 4 5
G T
b)

2 3

6 1 6

5 4 5
G T
c)

2 3

1 6

4 5
G T
d)

Figura 7.53. Proceso de identificacin del conjunto fundamental de circuitos del grafo de la Figura 7.50
(Tercera parte, vase el texto para detalles).

297
Una Introduccin a las Matemticas Discretas y Teora de Grafos

298
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Bibliografa
Discrete Mathematics with Combinatorics
James A. Anderson
Prentice Hall, Segunda Edicin, 2003.

A Short Course in Discrete Mathematics


Edward A. Bender, S. Gill Williamson
Dover Publications, 2004.

Mathematics for Algorithm and System Analysis


Edward A. Bender, S. Gill Williamson
Dover Publications, 2004.

Introductory Graph Theory


Gary Chartrand
Dover Publications, 1984.

Introduction to Algorithms
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest y Clifford Stein.
MIT Press, Segunda Edicin, 2001.

Mathematical Structures for Computer Science


Judith L. Gersting
Editorial W. H. Freeman, Quinta Edicin, 2002.

Discrete and Combinatorial Mathematics


Ralph P. Grimaldi
Addison-Wesley, Quinta Edicin, 2003.

Graph Theory and Its Applications


Jonathan L. Gross, Jay Yellen
Chapman & Hall/CRC, Segunda Edicin, 2005.
Una Introduccin a las Matemticas Discretas y Teora de Grafos

Discrete Mathematics
Richard Johnsonbaugh
Prentice Hall, Segunda Edicin, 2000.

A Java Library of Graph Algorithms and Optimization


Hang T. Lau
Chapman & Hall/CRC, Primera Edicin, 2006.

Discrete Mathematics
Seymour Lipschutz, Marc Lipson
Schaums Outline Series (McGraw Hill), Segunda Edicin, 1997.

Una Introduccin a las Matemticas para el Anlisis y Diseo de Algoritmos


Ricardo Prez Aguila
El Cid Editor (Argentina), Primera Edicin, 2012.

Scale-Isometric Polytopal Graphs in Hypercubes and Cubic Lattices


Mikhail Shtogrin, Michel Deza, Viatcheslav Grishukhin
Imperial College Press, Primera Edicin, 2004.

Modern Computer Algebra


Joachim von zur Gathen, Jrgen Gerhard
Cambridge University Press, Segunda Edicin, 2003.

Introduction to Graph Theory


Douglas B. West
Prentice Hall, Segunda Edicin, 2000.

300

Anda mungkin juga menyukai