Está en la página 1de 138

Notas de Curso

de la asignatura

Matemticas Discretas

elaboradas para la

Licenciatura en
Ciencias de la Computacin
Segundo Semestre

Por:
M.C. Cinhtia M. Gonzlez Segura
M.C. Michel Garca Garca

Enero Julio 2007


Matemticas Discretas FMAT-L.C.C.

Contenido

1. Carta Descriptiva......................................................................................................... 3
2. Programa del curso ..................................................................................................... 4
3. Introduccin. ................................................................................................................ 8
4. Unidad 1. Lgica Matemtica .................................................................................... 9
5. Unidad 2. Funciones recursivas................................................................................ 26
6. Unidad 3. Funciones enteras..................................................................................... 47
7. Unidad 4. Teora de grafos ....................................................................................... 55
8. Unidad 5. Teora de rboles.................................................................................... 101
9. Ejercicios .................................................................................................................. 125
Unidad 1 ......................................................................................................................... 125
Unidad 2 ......................................................................................................................... 126
Unidad 3 ......................................................................................................................... 127
Unidad 4 ......................................................................................................................... 128
Unidad 5 ......................................................................................................................... 134
10. Bibliografa............................................................................................................... 138

2
Matemticas Discretas FMAT-L.C.C.

1. Carta Descriptiva

La asignatura Matemticas Discretas se imparte en el segundo semestre de la


Licenciatura en Ciencias de la Computacin, plan 2004. El presente material est elaborado
con base en los contenidos dicha asignatura.
El material que aqu se presenta fue elaborado por los M.C. Cinhtia M. Gonzlez
Segura y M.C. Michel Garca Garca para el semestre Enero Julio 2007, y se distribuy a
los alumnos en su momento, durante el curso.
En primer lugar se incluye el manual de operaciones para un uso adecuado de estas
notas de curso. Despus se presenta el programa del curso, posteriormente se incluyen las
notas elaboradas con base en una amplia revisin bibliogrfica y al final se incluye un
conjunto de ejercicios que permiten llevar a la prctica los conceptos tericos presentados.

Datos de la Asignatura
Clave: MT-12
Nombre: Matemticas Discretas
Plan: Licenciatura en Ciencias de la Computacin (LCC)
Semestre: Segundo
Crditos: 9
Hrs semanales: 4.5
Total de horas: 72

3
Matemticas Discretas FMAT-L.C.C.

2. Programa del curso

UNIVERSIDAD AUTNOMA DE YUCATN


FACULTAD DE MATEMTICAS

MISIN

Formar profesionales altamente capacitados, desarrollar


investigacin y realizar actividades de extensin, en Matemticas
y Computacin, as como en sus diversas aplicaciones.

MATEMTICAS DISCRETAS

Segundo semestre

LICENCIATURA EN CIENCIAS DE LA COMPUTACIN


LICENCIATURA EN INGENIERA DE SOFTWARE

Enero Julio 2007

4
Matemticas Discretas FMAT-L.C.C.

LICENCIATURA EN CIENCIAS DE LA COMPUTACIN


Que el egresado sea capaz de:
a) Desarrollar modelos tericos y prcticos utilizando las ciencias matemticas
y computacionales para implementar aplicaciones novedosas y eficientes.
b) Analizar, disear, desarrollar e implantar software de base y de
aplicaciones, utilizando o creando metodologas y ambientes
computacionales, con base en la estructura, operacin y necesidades de
informacin de las organizaciones y las industrias a las que pertenecen.

LICENCIATURA EN INGENIERA DE SOFTWARE


Que el egresado:
1. Explique y aplique un proceso de desarrollo de software sistmico acorde a la
magnitud y complejidad de proyectos de aplicacin, sean o no stos nuevos
desarrollos, tomando en cuenta la evolucin y el cambio de los mismos.
2. Describa y aplique las herramientas necesarias para la especificacin, diseo,
verificacin y validacin de sistemas de software.
3. Se desempee en al menos un rea de concentracin, trabaje y se comunique
de forma profesional en equipos interdisciplinarios.
4. Aplique el conocimiento y las habilidades para mejorar el proceso de desarrollo
de software.
5. Contribuya al avance de la Ingeniera de Software con un acervo de
conocimientos tanto tericos como prcticos.

MATEMTICAS DISCRETAS

Semestre: Segundo
Horas: 56 T 16 P
Hrs/Semana: 4.5
Crditos: 9
Clave: MT-12

FECHA DE ELABORACIN: Julio 2004.


AUTORES: M. en C. Francisco Madera Ramrez, M. en C. Felipe Rosado
Vzquez.

DURACIN DEL CURSO: 72 horas.

DESCRIPCIN DE LA ASIGNATURA:
En esta asignatura se describen los conceptos matemticos fundamentales
necesarios para llevar a cabo el anlisis de los procesos algortmicos, enfatizando
en el desarrollo de algunas teoras matemticas, con sus correspondientes
teoremas y demostraciones. Se pretende que el alumno adquiera las habilidades y
destrezas en el manejo de estructuras algebraicas de uso ms frecuente en
ciencias computacionales.

RECURSOS DIDCTICOS:
Conferencia: acetatos, pizarrn.
Comisin (equipos): computadora.
5
Matemticas Discretas FMAT-L.C.C.

OBJETIVO:
Aplicar los conceptos matemticos fundamentales para analizar los procesos
algortmicos, enfatizando en el razonamiento formal de los mismos y poder
implementarlos con eficiencia.

CONTENIDO:

1. Lgica Matemtica (12 horas)


Objetivo: Aplicar las tcnicas de lgica matemtica en los procesos
computacionales bsicos y los circuitos digitales.
1.1 Circuitos de Conmutacin.
1.2 Algebra de Boole.
1.3 El Algebra de los circuitos lgicos.
1.4 Compuertas Lgicas

2. Funciones Recursivas (15 horas)


Objetivo: Elaborar algoritmos repetitivos mediante la obtencin de una frmula
general, empleando herramientas matemticas.
2.1 Algoritmos recursivos.
2.2 Mtodos de solucin de funciones recursivas.
2.3 Algoritmos de ordenamiento.
2.4 Dividiendo un problema.

3. Funciones Enteras (15 horas)


Objetivo: Resolver problemas que involucren el uso de las funciones enteras floor
y ceiling, considerando la recursividad y las operaciones aritmticas bsicas.
3.1 Introduccin.
3.2 Aplicaciones.
3.3 Recurrencias.
3.4 La operacin binaria MOD.

4. Teora de Grafos (15 horas)


Objetivo: Construir grafos para representar la solucin de problemas matemticos.
4.1 Aplicaciones de grafos.
4.2 Grafos dirigidos.
4.3 Caminos y circuitos.
4.4 Isomorfismo.

5. Teora de Arboles (15 horas)


Objetivo: Construir algoritmos eficientes utilizando rboles para representar la
solucin de los problemas tratados.
5.1 Definicin.
5.2 Propiedades.
5.3 Aplicaciones.
5.4 Bsqueda y ordenamiento.

Exmenes y ordinario (10 horas)


6
Matemticas Discretas FMAT-L.C.C.

METODOLOGA DE LA ENSEANZA:
Exposicin, Interrogatorio, Prctica, Tareas (individual y por equipo)
El maestro expone los conceptos fundamentales de los temas en cuestin, da
ejemplos y por ltimo motiva al estudiante a resolver ejercicios en clase. Para
reforzar la comprensin de estos ejercicios se dejarn tareas semanales que
consistirn en la solucin matemtica de los problemas asignados y algunas veces
de la programacin de esta solucin.

CRITERIO DE EVALUACIN:
CRITERIO PUNTUACIN
3 Exmenes. 80
Tareas 20
Total 100 puntos.

El examen ordinario se exenta con un promedio mnimo de 80 puntos. En caso de


no exentar, la calificacin final ser:
50 % puntaje obtenido hasta el momento.
50% examen ordinario.
REQUISITOS ACADMICOS: lgebra Superior I.

BIBLIOGRAFA:
1. Kenneth, Rosen. Discrete Mathematics and its Applications. Mc Graw Hill.
1991Captulos 5,7,8.
2. Anderson, James. Discrete Mathematics with Combinatorics. Prentice Hall,
2001, Captulos 5,6.
3. Mattson, H.F. Discrete Mathematics with Applications. John Wiley & Sons,
1993, Captulos 11,13,14.
4. Anderson, Ian. First Course in Discrete Mathematics. Springer, Cap 5, 7, 8.
5. Baase, Sara. Computer Algorithms. Addison Wesley, 1998, Captulos 1, 4.
6. Graham, Knuth, Patashnik. Concrethe Matematics.
7. Knuth, Donald. The Art of Computer Programming. Vol 1. Addison Wesley.
8. Johsonnbaugh, Richard. Matemticas Discretas. Editorial Iberoamericana.
1988.
9. Aho, Alfred; Ullman, Jeffrey. Foundations of Computer Sciencies. Editorial
New York, Computer Sciences Press, 1996.
http://www.cargalmathbooks.com/3%20Integer%20Functions%20.pdf
http://homepages.gac.edu/~holte/courses/mcs256/2000S/mcs256.html
http://mathworld.wolfram.com/FloorFunction.html

Perfil Profesiogrfico del profesor: Licenciado en Ciencias de la Computacin o


carrera afn, preferentemente con posgrado y experiencia docente, de
investigacin o de trabajo en el rea.

Elaborado por: M. en C. Francisco Madera Ramrez, M. en C. Felipe Rosado


Vzquez.
Fecha de elaboracin: Julio, 2004.

7
Matemticas Discretas FMAT-L.C.C.

3. Introduccin.

Las presentes notas de curso fueron elaboradas para utilizarse durante la


imparticin de la Asignatura Matemticas Discretas, como gua y material de apoyo
que permita culminar exitosamente el logro de los objetivos planteados en el
programa.
El material est dividido por unidades, en primer lugar se encuentra una
recopilacin extensa de informacin relacionada con los temas y subtemas
contenidos en el programa de la asignatura, y en segundo lugar se encuentra una
serie de ejercicios para ser resueltos durante las unidades y tambin como repaso al
final de stas.
Se sugiere distribuir el material de apoyo desde el principio de cada unidad,
y dejar los ejercicios para ser resueltos durante las sesiones y tambin planear una o
dos sesiones de repaso al final de cada unidad.
Este material ser complementado por el paquete didctico elaborado para la
asignatura por los mismos autores.

8
Matemticas Discretas FMAT-L.C.C.

4. Unidad 1. Lgica Matemtica

SISTEMA DIGITAL
Un sistema digital es cualquier dispositivo destinado a la generacin, transformacin, procesamiento y
almacenamiento de seales digitales.

Una seal digital corresponde a magnitudes lgicas limitadas a tomar solo unos determinados valores
discretos. Por ejemplo, el interruptor de la luz (seal: resistencia elctrica) solo puede tomar los valores 0
(muy pequea) o 1 (muy grande)

Las ordenaciones digitales usan lgica de dos estados: la corriente pasa o no pasa por los componentes
electrnicos del ordenador. En una computadora digital hay solo dos posibilidades, usar el 0 o bien el 1 para
representar el objeto ms pequeo e indivisible. Todos los programas y datos se reducen finalmente a
combinaciones de bits. A travs de los aos se ha utilizado una gran variedad de recursos para almacenar bits
en una computadora digital. Los circuitos electrnicos, que son sentencias digitales permiten que estos
recursos de almacenamiento se comuniquen entre si. Un bit de una parte del circuito se transmite a otra como
voltaje. Por los tanto, se necesitan dos niveles de voltaje, por ejemplo, un voltaje alto puede comunicar el 1 y,
un voltaje bajo el 0.

Los sistemas digitales pueden ser de dos tipos:

Sistemas digitales combinacionales: Son aquellos en los que la salida solo depende de la entrada presente.
Por lo tanto, no necesita mdulos de memoria, ya que la salida no depende de entradas previas.
x1
x2
y
x3

Sistemas digitales secuenciales: La salida depende de la entrada actual y de las entradas anteriores. Esta clase
de sistemas necesita de elementos de memoria que recojan la informacin de la historia pasada del sistema.
x1

x2 y

Para la implementacin de circuitos digitales, se utilizan dispositivos de estados slidos llamados compuertas,
que son capaces de hacer cambios de nivel en el voltaje (bits)

Compuertas Lgicas

Definicin: Una compuerta Y (AND) acepta x1 y x2 como datos de entrada, en donde x1 y x2 son bits, y
produce un dato de salida que se denota por x1 x2 en donde:

x1 x2 = 1 si x1=1 y x2=1
0 en otro caso

Una Tabla Lgica de un circuito combinatorio enumera todas las entradas posibles junto con las salidas
resultantes.
La Tabla Lgica para una compuerta Y (AND) es la siguiente:
x1 x2 x1 x2
1 1 1
1 0 0
0 1 0
0 0 0

9
Matemticas Discretas FMAT-L.C.C.

Una compuerta Y (AND) se dibuja de la siguiente manera:


x1 x1 x2
x2

Definicin: Una compuerta O (OR) acepta x1 y x2 como datos de entrada, en donde x1 y x2 son bits, y
produce un dato de salida que se denota por x1 x2 en donde:

x1 x2 = 1 si x1=1 o bien x2=1


0 en otro caso

La Tabla Lgica para una compuerta O (OR) es la siguiente:

x1 x2 x1 x2
1 1 1
1 0 1
0 1 1
0 0 0

Una compuerta O (OR) se dibuja de la siguiente manera:


x1 x1 x2
x2

Definicin: Una compuerta NO (o inversor) acepta x como dato de entrada, en donde x es un bit, y produce
un dato de salida que se denota por x en donde:

x = 1 si x=0
0 si x=1

La Tabla Lgica para una compuerta NO es la siguiente:

x x
1 0
0 1

Una compuerta NO se dibuja de la siguiente manera:

x x

Ejemplo: Determine la tabla lgica de los siguientes circuitos:


x1
x2
x3

x1 x2 x3 x1 x2 x3 (x1 x2) x 3
1 1 1 1 0 1
1 1 0 1 1 1
1 0 1 0 0 0
0 1 1 0 0 0
0 0 1 0 0 0
0 1 0 0 1 1
1 0 0 0 1 1
0 0 0 0 1 1

10
Matemticas Discretas FMAT-L.C.C.

x1
x2

x3

x1 x2 x3 x1 x2 x1 x3 (x1 x2) ( x1 x3 ) x3 ((x1 x2) ( x1 x3 ) ) x 3


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

Como pudimos observar en los ejemplo anterior, el circuito combinatorio con un nico dato de salida se
puede representar con una expresin usando smbolos , , . Se sigue el flujo del circuito simblicamente.
Para nuestro ejemplo, el dato de salida se puede escribir de esta forma:

((x1 x2) ( x1 x3 ) ) x 3

A esta expresin se le conoce como expresin booleana.

Definicin.
Una expresin booleana en los smbolso x1, , xn se define recursivamente como sigue:
0, 1, x1, , xn son expresiones booleanas.
Si x1 y x2 son expresiones booleanas, entonces:
a) (x1) b) x1 c) x1 x2 d) x1 x2
Son tambin expresiones booleanas.

Si x es una expresin booleana en los smbolos x1, , xn, se expresa algunas veces como:
x = x(x1, , xn)
cada smbolo o bien x1 recibe el nombre de literal.

Ejemplo.
Determinar el circuito combinatorio dado con las siguientes expresiones booleanas y obtener la tabla lgica

Solucin

Solucin
11
Matemticas Discretas FMAT-L.C.C.

Ejercicios.
Determinar el circuito combinatorio dado con las siguientes expresiones booleanas y obtener la tabla lgica.

1. ( x1 x2 ) ( x1 )
2. (( x1 x2 ) x3 ) ( x3 x2 )
3. ( x1 x3 ) ( x1 ( x2 x3 ))
4. (( x1 x2 x3 ) ( x1 x3 )) x2
5. (( x1 x3 ) ( x2 x4 )) ( x2 x3 ) x1

Ejercicios.
I. Escribir la expresin booleana que representa a los siguientes circuitos combinatorios
a)
X1
X2

X3

b)

X1
X2

X3
X4

c)

d)

e)

12
Matemticas Discretas FMAT-L.C.C.

f)

g)

II. Determinar el valor de las expresiones booleanas para x1=1, x2=1, x3=0, x4=1

1.

2.

3.

4.

5.

III. En los ejercicios de la parte II, determinar el circuito combinatorio correspondiente a cada expresin
boolenana y obtener la tabla.

13
Matemticas Discretas FMAT-L.C.C.

CIRCUITOS DE CONMUTACIN

Definicin.
Un circuito de conmutacin (o de conmutadores) es un circuito de red elctrica formada por interruptores, en
donde cada uno de ellos puede estar abierto o cerrado.

Ejemplo:

Si el interruptor X est abierto (o cerrado) se escribe X=0 (o X=1). Los interruptores que se marcan con la
misma letra, como los B en la figura de arriba, estn todos abiertos o todos cerrados. Un interruptor como
el A en la figura, est abierto si y solo si el interruptor como el -A est cerrado. Se dice que la salida es 1 si
la corriente puede fluir entre los extremos izquierdo y derecho del circuito, en caso contrario, se dice que la
salida del circuito es 0.

Una tabla de conmutacin presenta las salidas de los circuitos para todos los valores de operacin de los
interruptores.

Ejemplo.
Para el circuito anterior, la tabla de conmutacin es la siguiente:
A B C Salida del circuito
1 1 1 1
1 1 0 1
1 0 1 0
1 0 0 0
0 1 1 1
0 1 0 1
0 0 1 1
0 0 0 1

Un circuito con dos interruptores A y B como sigue:

Con la propiedad de que la salida del circuito es precisamente 1 cuando A y B estn cerrados se conoce como
circuito en serie y se etiqueta como A B.

Un circuito con dos interruptores A y B como sigue:

Con la propiedad de que la salida del circuito es precisamente 1 cuando A y B estn cerrados se conoce como
circuito en paralelo y se etiqueta como A B.

Ejercicios.
Representar cada circuito de manera simblica y proporcionar su tabla de conmutacin.

14
Matemticas Discretas FMAT-L.C.C.

1.

2.

3.

4.

5.

Representar las siguientes expresiones como circuitos de conmutacin y escribir las tablas de conmutacin.

1.

2.

3.

4.

5.

6.

15
Matemticas Discretas FMAT-L.C.C.

Propiedades de los circuitos combinatorios

Anteriormente se definieron dos operaciones binarias y en Z2= {0, 1} y un operador unario en Z2.
Tambin ser vio que estas operaciones se pueden implantar en los circuitos como compuestas. Analicemos
ahora el sistema formado por Z2 y los operadores , y .

Teorema.
Si , y son como se defini anteriormente, entonces se cumplen las siguientes propiedades:

a) Leyes asociativas
(a b) c = a (b c)
(a b) c = a (b c) a, b, c Z2

b) Leyes conmutativas
ab=ba
ab=ba a, b Z2

c) Leyes distributivas
a (b c) = (a b) (a c)
a (b c) = (a b) (a c) a, b, c Z2

d) Leyes de identidad
a0=a
a1=a a Z2

e) Leyes de complemento
a -a = 1
a -a = 0 a Z2

Demostracin.
Las demostraciones son clculos directos. Basta evaluar ambos lados de las expresiones para todos los valores
posibles de a, b y c Z2 y verificar que en ambos casos se obtiene el mismo resultado.

As, para mostrar que a (b c) = (a b) (a c) a, b, c Z2 verificamos la siguiente tabla:

A B C a (b c) (a b) (a c)
1 1 1 1 1
1 1 0 1 1
1 0 1 1 1
1 0 0 0 0
0 1 1 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 0 0

Ejemplo.
Utilizar el teorema anterior para demostrar que los siguientes circuitos combinatorios tienen salidas idnticas
para entradas idnticas dadas.

a) b)

16
Matemticas Discretas FMAT-L.C.C.

Solucin.
Las expresiones booleanas que los representan son:

a) b)

Y por el teorema anterior, a (b c) = (a b) (a c) a, b, c Z2. Los circuitos que tienen salidas


idnticas para entradas idnticas dadas, se dice que son equivalentes.

Definicin.
Sean X1 = X1 (x1,,xn) y X2 = X2 (x1,,xn) expresiones booleanas. Decimos que X1 es igual a X2 y
escribimos
X1 = X2
Si X1 (a1,,an) = X2 (a1,,an) ai Z2.

Definicin.
Decimos que dos circuitos combinatorios, cada uno con entradas x1,,xn y una nica salida, son equivalentes
si, cada vez que los circuitos reciban las mismas entradas, producen las mismas salidas.

Ejemplo.

a b y1 a b y1
0 0 1 0 0 1
0 1 0 0 1 0
1 0 0 1 0 0
1 1 0 1 1 0

Teorema.
Sean C1 y C2 circuitos combinatorios, representados por las expresiones booleanas X1 = X1 (x1,,xn) y X2 =
X2 (x1,,xn). Entonces C1 y C2 son equivalentes si y solo si X1 = X2.

Demostracin.
El valor X1 (a1,,an) y X2 (a1,,an) para ai Z2 son las salidas de los circuitos C1 y C2 respectivamente para
las entradas a1,,an. De acuerdo con la definicin anterior, C1 y C2 son equivalentes si y solo si tienen las
mismas salidas X1 (a1,,an) y X2 (a1,,an). para todas las entradas posibles a1,,an. As, los circuitos C1 y C2
son equivalentes si y solo si:
X1 (a1,,an) = X2 (a1,,an) ai Z2.
Pero por la definicin anterior, esto es vlido si y solo si X1 = X2.

Ejercicios.
I. Muestra que los circuitos combinatorios de los ejercicios 1 a 5 son equivalentes.

1.

2.

17
Matemticas Discretas FMAT-L.C.C.

3.

4.

5.

II. Verificar las ecuaciones de los ejercicios 1 a 5.

1.

2.

3.

4.

5.

Decimos que dos circuitos de conmutacin son equivalentes si las expresiones booleanas que los representan
son iguales.
III. Mostrar que los siguientes circuitos de conmutacin son iguales.

18
Matemticas Discretas FMAT-L.C.C.

Algebra Booleana

En 1854, George Boole introdujo un tratamiento sistemtico de la lgica y desarroll para este propsito un
sistema algebraico que ahora se conoce como algebra de boole o algebra booleana. En 1938 C. E. Shannon
introdujo un lgebra booleana de dos valores (variables) denominada lgebra de interruptores, en la cual
demostr que las propiedades de los circuitos elctricos y estables con interruptores pueden representarse con
esta lgebra.

Definicin.
Un lgebra booleana B consta de un conjunto S con los elementos distintos 0 y 1, los operadores binarios + y
en S y un operador unario en S que satisfacen:
a) Leyes asociativas
(x+y)+z = x + (y+z)
(x y) z = x (y z) x, y, z S

b) Leyes conmutativas
x+y=y+x
xy=yx x, y S

c) Leyes distributivas
x (y + z) = (x y ) + (x z)
x + (y z) = (x + y) (x + z) x, y, z S

d) Leyes de identidad
x+0=x
x1=x xS

e) Leyes del complemento


x + x = 1
x x = 0 xS

Si B es un lgebra booleana escribimos B = ( S, +, , , 0, 1).


El elemento 0 es llamado elemento cero, el elemento 1 es llamado elemento unitario y x es llamado el
complemento de x. Los resultados de las operaciones + y son llamados sumas y producto respectivamente.

Teorema.
En un lgebra booleana, el elemento x de la definicin anterior (e) es nico. Ms especficamente, si x+y=1 y
xy=0, entonces y=x.

Demostracin.
y = y1 def. anterior (d)
= y (x + x) def. anterior (e)
= y x + y x def. anterior (c)
= xy + yx def. anterior (b)
= 0 + yx dado
= x def. anterior (d)

Definicin.
En un lgebra booleana, el elemento x es el complemento de x.

Teorema.
Sea B = ( S, +, , , 0, 1) un lgebra booleana. Se cumplen las siguientes propiedades:
a) Leyes de idempotencia
x+x=x xx=x xS

b) Leyes de acotacin
x+1=1 x0=0 xS
19
Matemticas Discretas FMAT-L.C.C.

c) Leyes de absorcin
x+xy=x x (x + y) = x x, y S

d) Ley de involucin
(x) = x xS

e) Leyes del 0 y 1
0 = 1 1 = 0

f) Leyes de Morgan para las lgebras booleanas


(x + y) = x y (xy) = x+y x, y S

Demostracin.
a)
x = x+0 ley del idntico
= x + (xx) ley del complemento
= (x+x) (x+x) ley distributiva
= (x+x) 1 ley del complemento
=x+x ley del idntico

Tarea: Demostrar x = xx

b)
x + 1 = (x+1) 1 por (d)
= (x+1) (x+x) e
= x + 1 x c
= x + x 1 b
= x + x d
=1 e

Tarea: Demostrar x 0 = 0

c) x + x y = x 1 + xy d
= x ( 1 + y) c
= x (y + 1) b
=x d

Tarea: Demostrar x (x + y ) = x y los incisos d, e y f.

Definicin.
El dual de una afirmacin relacionada con expresiones booleanas se obtiene reemplazando 0 por 1, 1 por 0, +
por , por +.

Ejemplo.
El dual de (x+y) = x y
es (xy) = x+ y

Cada condicin de la definicin de un lgebra booleana incluye su dual.

El conjunto vaco juega el papel de 0 y el conjunto universal U juega el papel de 1. Si x, y, z son elementos
de S, las propiedades (a) a (e) de la definicin anterior se convierten en las siguientes propiedades de
conjuntos.

A) (x y) z = x ( y z)
(x y) z = x (y z) x, y, z P(U)

20
Matemticas Discretas FMAT-L.C.C.

B) xy=yx xy=yx x, y P(U)

C) x (y z) = (x y) (x z)
x (y z) = (x y) (x z) x, y, z P(U)

D) x=x xU=x x P(U)

E) x -x = x -x = x P(U)

Funciones booleanas

Un circuito se construye de modo que realice una tarea. Si queremos construir un circuito combinatorio, el
problema se puede dar entre las entradas y las salidas. Por ejemplo, supongamos que queremos construir un
circuito combinatorio que calcule el OR exclusivo de x1 y x2. Podemos enunciar el problema enumerando las
entradas y las salidas que definen al OR exclusivo.

Esto equivale a proporcionar la tabla lgica deseada.

X1 X2 X1 X2
0 0 0
0 1 1
1 0 1
1 1 0

El OR exclusivo de X1 y X2 que se denota X1 X2 se define mediante la tabla anterior.

Una tabla lgica con una salida es una funcin. El dominio es el conjunto de entradas y el rango es el
conjunto de salidas. Para la funcin OR exclusivo, el dominio es el conjunto

{ (0,0), (0,1), (1,0), (1,1) }

y el rango es el conjunto Z2 = { 0, 1}

En consecuencia, tenemos el siguiente resultado:

Teorema.
El dual de un teorema relativo a lgebras booleanas tambin es un teorema.

Demostracin.
Supongamos que T es un teorema acerca de algebras booleanas. Entonces existe una demostracin P de T que
solo implica las definiciones de un lgebra booleana. Sea P la serie de afirmaciones obtenidas al reemplazar
cada afirmacin de P por su dual. Entonces P es una demostracin del dual de P.

Ejemplo.
El dual de x+x=x es xx=x

Ya hemos demostrado que x+x=x. Si escribimos el dual de cada afirmacin que aparece en la demostracin
de ese teorema, obtenemos la siguiente demostracin
x = x 1
= x (x + x)
= x x + x x
= xx + 0
= xx

21
Matemticas Discretas FMAT-L.C.C.

La estructura numrica utilizada para representar a los circuitos combinatorios y conmutativos es un lgebra
booleana.
(Z2, , , , 0, 1)

Ya que Z2 = {0,1}, los operadores , , son los operadores +, , de la definicin correspondiente, y las
propiedades de la definicin se verifican con el teorema similar.

Sea U un conjunto universal y sea S = P(U) el conjunto potencia de U, si definimos las siguientes operaciones

x+y=xy xy=xy y x = x

en S, entonces (S, , , , , U) es un lgebra booleana.

Si pudiramos desarrollar una frmula para la funcin OR exclusivo, de la forma

X1 X2 = X (X1 , X2)

donde X es una expresin booleana, podra resolver el problema de construccin del circuito combinatorio.
Bastara con construir el circuito correspondiente a X.

Las funciones que se pueden representar mediante expresiones booleanas se llaman FUNCIONES
BOOLEANAS.

Definicin.
Sea X (X1 ,, Xn) una expresin booleana. Una funcin f de la forma
F(X1 ,, Xn) = X(X1 ,, Xn)
es una funcin booleana.

Ejemplo.
La funcin f : Z32 = Z2 definida como
F(X1 , X2 , X3) = X1 ( X2 X3)
es una funcin booleana. Las entradas y salidas aparecen en la siguiente tabla:

X1 X2 X3 F(X1 , X2 , X3)
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 0
1 1 1 1

Ejemplo.
Demostrar que la funcin f que corresponde a la tabla siguiente es una funcin booleana.

X1 X2 X3 F(X1 , X2 , X3)
0 0 0 1
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 0

22
Matemticas Discretas FMAT-L.C.C.

Solucin.
El procedimiento es claro: considrese el primer rengln de la tabla, cuya salida es 1 y la combinacin
X1 X2 X3 (I)
Si observamos, si X1 = X2 = X3 = 1 como indica el primer rengln de la tabla, entonces (I) es igual a 1. Los
valores de Xi dados por cualquier otro rengln de la tabla dan a (I) el valor de 0.

De manera anloga, para el rengln 1 de la tabla podemos construir


X1 X2 X3 (II)
La expresin (II) tiene el valor de 1 para todos los valores de Xi dados en el cuarto rengln, mientras que los
valores de de Xi dados por cualquier otro rengln de la tabla dan a (I) el valor de 0.

As, el procedimiento sera:


1. Considerar un rengln R de la tabla donde la salida sea 1.
2. Luego, formar la combinacin X1 X2 X3 y colocar una barra sobre cada Xi cuyo valor sea 0 en
el rengln R.
3. La combinacin formada es 1 si y solo si las Xi tienen los valores dados en el rengln R.

As, para el rengln 6 obtenemos la combinacin


(X1 X2 X3 ) (III)

A continuacin formamos el OR de los trminos I, II y III para obtener la expresin booleana


(X1 X2 X3 ) (X1 X2 X3 ) (X1 X2 X3 ) (IV)

Afirmamos que F(X1 , X2 , X3) y (IV) son iguales.

Para verificar esto, primero supongamos que X1, X2 y X3 tienen los valores dados por un rengln de la tabla
para los cuales f(X1 , X2 , X3)=1, entonces una de las expresiones (I), (II) o (III) es igual a 1 por lo que el valor
de (IV) es 1.

Por otro lado, si X1, X2 y X3 tienen los valores dados por un rengln de la tabla para el cual que F(X1 , X2 ,
X3) = 0, las tres expresiones (I), (II) y (III) son iguales a 0 de modo que el valor de (IV) es igual a 0.

As, F y la expresin booleana (IV) coinciden en Z32., por tanto


F(X1 , X2 , X3) = (X1 X2 X3 ) (X1 X2 X3 ) (X1 X2 X3 )
como se afirmaba.

Definicin.
Un minitrmino en los smbolos X1 ,, Xn es una expresin booleana de la forma
y1 y2 yn
donde cada yi es xi o xi
Teorema.
Si f: Zn2 Z2 entonces f es una funcin booleana. Si f no es idnticamente nula, sean A1 ,, Ak los elementos
Ai de Zn2 para los cuales f(Ai)=1. Para cada Ai = (a1 ,, an), sea
mi = y1 yk
donde

Yj = xj si aj = 1
xj si aj = 0
Entonces f(X1 ,, Xn) = m1 m2 mk

Demostracin.
Si f(X1 ,, Xn) = 0 Xi , entonces f es una funcin booleana, pues 0 es una expresin booleana.
Supongamos que f no es idnticamente nula. Sea mi(a1 ,, an) el valor obtenido de mi al reemplazar cada xi
por aj. La definicin de mi implica que

mi (A) = 1 si A = Ai
0 si A Ai

23
Matemticas Discretas FMAT-L.C.C.

Sea A Zn2. Si A = Ai para algn i {1, , k} entonces f(A) = 1, mi(A) = 1 y

m1(A) mk(A) = 1

Por otro lado, si A Ai para algn i {1, , k} entonces f(A) = 0, mi(A) = 0 y

m1(A) mk(A) = 0
Por lo tanto, se cumple la afirmacin anterior.

Definicin.
La representacin de f como f(x1 ,, xn) = m1 mk de una funcin booleana f: Zn2 Z2 es la forma
disyuntiva normal de la funcin f.

Ejemplo.
Expresar en su forma disyuntiva normal la siguiente funcin booleana:
F(x1 , x2, x3) = (x1 x2) x3

Solucin.
Primero obtenemos su tabla lgica

X1 X2 X3 x1 x2 (x1 x2) x3
0 0 0 0 0
0 0 1 0 0
0 1 0 1 0
0 1 1 1 1
1 0 0 1 0
1 0 1 1 1
1 1 0 1 0
1 1 1 1 1

Obtenemos para los renglones 4, 6 y 8 las expresiones X1 X2 X3, X1 X2 X3 y X1 X2 X3


respectivamente.
As, F(x1 , x2, x3) = (X1 X2 X3) ( X1 X2 X3) (X1 X2 X3)

Ejemplo.
Disear un circuito combinatorio que calcule el OR exclusivo de X1 y X2.

Solucin.
La tabla lgica de X1 X2 es:
X1 X2 X1 X2
0 0 0
0 1 1
1 0 1
1 1 0

As, la forma disyuntiva normal de esta funcin es:


X1 X2= (X1 X2) (X1 X2)

Y el circuito combinatorio correspondiente es

24
Matemticas Discretas FMAT-L.C.C.

EJERCICIOS

I. En los siguientes ejercicios determine la forma disyuntiva normal de cada funcin y dibuje el
circuito combinatorio correspondiente a dicha forma

II. II. En los siguientes ejercicios determine la forma disyuntiva normal de cada funcin mediante
tcnicas algebraicas

25
Matemticas Discretas FMAT-L.C.C.

5. Unidad 2. Funciones recursivas


UNIDAD 2
FUNCIONES RECURSIVAS

INTRODUCCION

Antes de comenzar, consideremos el siguiente problema, que durante aos se ha utilizado para ejemplificar el
concepto de recurrencia. Este problema hizo famoso a un matemtico francs en el siglo XIX llamado E.
Lucas y que se denomina El problema de las torres de Hanoi

EJEMPLO 1.Considere n discos, todos de diferentes tamaos, con agujeros en el centro y 3 postes verticales
en los que los discos pueden ser apilados. Inicialmente los discos estn en uno de los postes ordenados de
acuerdo a su tamao, estando el ms grande en la parte de abajo, formando una torre

A B C
Se requiere mover los discos uno a la vez, de tal forma que al final los n discos estn apilados de la misma
manera en cualquiera de los otros dos postes. Hay un requisito importante que dice que ningn disco puede
ser puesto encima de otro de menor tamao. Cul es el nmero mnimo de movimientos que se requieren
para realizarlo?

Hagamos que an denote el menor nmero de movimientos requeridos para mover los n discos. As,
claramente a1=1. Tambin a2=3 y a3=7

A B C

A B C

A B C

A B C

A B C 26
A B C
Matemticas Discretas FMAT-L.C.C.

A B C

A de A a C, lo que hicimos
Si observamos, para mover los 3 discos B puede verse comoCmover los 2 discos mas
pequeos de A a B, luego el disco ms grande de A a C y por ltimo mover nuevamente los dos discos ms
pequeos de B a C. As,
a3 = a2 + 1 + a2 = 2a2 + 1

de manera general, para calcular el nmero de pasos requeridos para mover n discos de A a C, puede verse
como:
an = 2an-1 + 1
Puede comprobarse por induccin que

an = 1 + 2an-1 = 1 + 2(1 + 2an-2) = 1 + 2 + 22an-2


= 1 + 2 + 22(1 + 2an-3) = 1 + 2 + 22 + 23an-3
= 1 + 2 + 22 + + 2n-2 + 2n-1a1
= 1 + 2 + 22 + + 2n-1 = 2n-1

En la historia mtica asociada a los rompecabezas (puzzle), existan unos monjes que tenan la tarea de mover
64 discos de oro puro y cuando terminaran de hacerlo, sera el final del mundo. Sin embargo, para n = 64 el
numero de movimientos necesarios es 264-1 = 18,446,744,073,709,551,615. Suponiendo que movieran un
disco por segundo, se necesitaran 5.82x1011 aos, por tanto, no haba de que preocuparse. Este es un buen
ejemplo de lo que se conoce como explosin combinatoria.

RELACIONES DE RECURRENCIA

DEFINICIN 1. Una relacin de recurrencia para una secuencia {an} es una frmula que expresa a an en
trminos de uno o ms elementos previos de la secuencia, llamados, a1, a2, , an-1, para todos los enteros n
n0, donde n0 es un entero no negativo. Una secuencia es llamada una solucin de una relacin de recurrencia
si sus trminos satisfacen la relacin de recurrencia.

EJEMPLO 2. Sea {an} una secuencia que satisface la relacin de recurrencia an = an-1 - an-2 para n = 2, 3,
4, y suponga que a0=3 y a1=5 Cules son los valores a2 y a3?

Solucin: Podemos ver de la relacin de recurrencia que a2 = a1 a0 = 5 3 = 2 y a3 = a2 a1 = 2 5 = -3


--
EJEMPLO 3. Determine si la secuencia {an} es solucin de la relacin de recurrencia an = 2an-1 - an-2 para n
= 2, 3, 4,, donde an = 3n para cada entero no negativo n. Determina tambin la secuencia cuando an = 2n y
cuando an = 5.

Solucin: Suponga que an = 3n para cada entero no negativo n. Entonces para n 2, vemos que an = 2an-1 -
an-2 = 2[3(n - 1)] - 3(n - 2) = 3n. Entonces, {an}, donde an = 3n, es una solucin de la relacin de recurrencia.

Suponga que an = 2n para cada entero no negativo n. Note que a0 = 1, a1 = 2 y a2 = 4. Desde que a2 2a1
a0 = 22 - 1 = 3 vemos que {an} donde an = 2n no es una solucin de la relacin de recurrencia.

Suponga que an = 5 para cada entero no negativo n. Entonces, para n 2, vemos que an = 2an-1 - an-2 = 25
5 = 5. Entonces, {an}, donde an = 5, es una solucin de la relacin de recurrencia.
27
Matemticas Discretas FMAT-L.C.C.

--

Las condiciones iniciales para una secuencia, especifican los trminos que preceden al primer trmino
cuando la relacin de recurrencia toma efecto. As, en el EJEMPLO 1, a0 = 3 y a1 = 5 son las condiciones
iniciales. As la relacin de recurrencia, junto con las condiciones iniciales proveen una definicin recursiva
de la secuencia. Cualquier trmino de la secuencia puede ser encontrado a partir de las condiciones iniciales y
usando la relacin de recurrencia un nmero suficiente de veces.

EJEMPLO 4. Existen 3n secuencias de n dgitos en los que cada dgito es 0, 1 o 2. Cuntas de stas
secuencias tienen un nmero impar de 0s?

Supongamos que bn denota el nmero de secuencias de longitud n con un nmero impar de 0s. Cada una de
estas secuencias termina en 0, 1 o 2. Una secuencia que termina en 1, tiene cualquiera de las bn-1 secuencias
de longitud n-1 precediendo al 1.De manera similar, hay las bn-1 secuencias de longitud n-1 precediendo al 2.
Si una secuencia termina en 0, el 0 debe ser precedido por una secuencia de longitud n - 1 con un nmero par
de de 0s; pero el nmero de estas secuencias es 3n-1 (el nmero total de secuencias de longitud n-1) menos
bn-1 (el nmero de secuencias de longitud n-1 con un nmero par de 0s) entonces hay 3n-1 - bn-1 secuencias
terminando en 0. As que sumando tenemos:

bn = bn-1 + bn-1 + 3n-1 - bn-1 = bn-1 + 3n-1

Como en el caso de las torres de Hanoi, podemos encontrar bn por iteracin:

bn = 3n-1 + bn-1 = 3n-1 + (3n-2 + bn-2) =


3n-1 + 3n-2 + + 31 + b1

Pero b1 = 1, as:

bn = 1 + 3 + + 3n-1 = (3n - 1)/2


--

EJEMPLO 5. Un camino que mide 2 metros de ancho y n de largo quiere pavimentarse usando piedras de
1m x 2m de tamao. De cuntas formas diferentes puede ser hecha la pavimentacin?

Solucin. Supongamos que pn denota el nmero de pavimentaciones diferentes del camino de 2 x n.


Claramente p1=1, ya que solamente se puede pavimentar con una piedra.
Tambin, p2=2, las dos posibles soluciones se muestran a continuacin.

Para n=3, p3=3

Aparentemente pn=n para toda n, sin embargo p4=5. Entonces, Cmo se obtiene pn?
Para un camino de 2 x n, la pavimentacin puede comenzar de una de las dos siguientes maneras:

1 n-1 2 n-2
28
Matemticas Discretas FMAT-L.C.C.

El primer caso puede ser completado de pn-1 formas, mientras que en el segundo caso, se puede completar de
pn-2 formas. As que por el principio de adicin

pn = pn-1 + pn-2 (n 3)

Esta es una relacin recursiva (de recurrencia) de segundo orden, ya que cada pn est dada en trminos de las
dos anteriores. Obtenemos p5 = 5 + 3 = 8, p6 = 8 + 5 = 13, p7 = 13 + 8 = 21, etc.

La secuencia (pn) secuencia es conocida como la Secuencia de Fibonacci (Fn). Fibonacci, o Leonardo de
Pisa (1200 D.C.) introdujo esta secuencia cuando investigaba el crecimiento de la poblacin de conejos. Esta
se presenta con mucha frecuencia en diversas situaciones matemticas.
--

EJEMPLO 6. Una bandera consiste de n rayas horizontales, donde cada raya puede ser de uno de los colores
rojo, blanco o azul, pero dos rayas adyacentes no pueden tener el mismo color. Bajo esta condicin, la
primera raya puede ser de cualquiera de los 3 colores, la segunda raya tiene 2 posibilidades, la tercera tiene 2
y as sucesivamente (cada raya que aadamos, no puede ser del color de la anterior). As tenemos que el
nmero de los posibles diseos es 3x2n-1.

Supongamos ahora que para evitar una posible confusin, al poner la bandera correctamente o de cabeza, se
establece que la raya de ms arriba y la de ms abajo tienen que ser de diferentes colores.

Sea an el nmero de banderas con n rayas. Entonces a1= 0 y a2= 6. Adems, ya que hay una correspondencia
uno a uno entre banderas de n rayas con la ltima raya igual a la primera y banderas de n-1 rayas con la
ltima raya diferente de la primera, tenemos:

an = 3x2n-1 (no. de banderas con la raya de abajo igual a la primera)


n-1
an = 3x2 (no. de banderas de n-1 rayas con la raya de abajo diferente de la primera)

Entonces:
an = 3x2n-1 an-1

As:
an + an-1 = 3x2n-1

Tambin tenemos:
an-1 + an-2 = 3x2n-2

Donde:
2(an-1 + an-2) = 3x2n-1 = an + an-1

Entonces:
an = an-1 + 2an-2

Esta es de nuevo una relacin de recurrencia de segundo orden.


--

EJERCICIOS

I. Encontrar los 5 primeros elementos de la secuencia que se forma con las siguientes relaciones de
recurrencia. Intentar encontrar una frmula para la secuencia.
1
1. an = an-1 +1, a1 =1
2
2. an = 5an-1 - 6an-2, a1 =-1, a2 =1

29
Matemticas Discretas FMAT-L.C.C.

3. an = 6an-1 - 9an-2, a1 =1, a2 =9

4. an = 4an-1 - 3an-2 + 2n, a1 =1, a2 =11

II. II. Sea bn el nmero de secuencias binarias de n dgitos que no contienen dos ceros
consecutivos. Sea bn = bn-1 + bn-2 (n3). Encontrar bn (en forma de secuencia y no de relacin
de recurrencia)

Al intentar resolver los ejercicios anteriores, nos habremos dado cuenta de que una vez que tenemos una
relacin de recurrencia, no es tan sencillo obtener la regla o trmino general de la secuencia que es solucin
de dicha relacin de recurrencia.

Afortunadamente existe un mtodo ya establecido para obtener ese trmino general y se llama el Mtodo de
la Ecuacin Auxiliar.

MTODO DE LA ECUACIN AUXILIAR

Nos concentraremos en las relaciones de recurrencia de la forma:

an=Aan-1 + Ban-2 (n 3) (i)

donde A y B son constantes, B 0 y donde a1 y a2 estn dadas. La ecuacin (i) es llamada Relacin de
Recurrencia Lineal de Segundo Orden con coeficientes constantes y resulta que hay un mtodo muy claro
para resolver dichas recurrencias.

Primero, nos preguntamos si hay nmeros reales 0 tales que an= n satisface la ecuacin (i)? Sustituyendo
an= n en la ecuacin (i) obtenemos n =An-1 + Bn-2 donde un caso particular sera por ejemplo 2 =A + B.
As, an= n es solucin de (i) precisamente cuando es solucin de la Ecuacin Auxiliar:
x2 =Ax + B (ii)

As, si y son races distintas de (ii), an= n y an= n ambas satisfacen (i). Si la ecuacin auxiliar tiene una
raz repetida , entonces:

x2 - Ax - B = (x - )2 = x2 - 2x + 2

por tanto A = 2 y B = -2. En este caso an =nn tambin satisface (i), ya que

Aan-1 + Ban-2 = A(n - 1)n-1 + B(n - 2)n-2


= 2(n - 1)n - (n - 2)n = nn = an

TEOREMA 1. Suponga que (an) satisface (i), y que a1 y a2 estn dadas. Sean , las races de la ecuacin
auxiliar (ii). Entonces:

1) Si , hay constantes K1 y K2 tales que an = K1n + K2n para toda n 1

2) Si = , hay constantes K3 y K4 tales que an = (K3 + nK4)n para toda n 1

Demostracin.

1) Escojamos K1 y K2 tales que a1= K1 + K2, a2= K12 + K22, por ejemplo tomemos:

(iii)
Entonces, la afirmacin de que an = K1n + K2n es ciertamente verdadera para n = 1, 2. Procedamos
ahora por induccin. Asumamos que la afirmacin es verdadera para todo n k. Entonces:

30
Matemticas Discretas FMAT-L.C.C.

2) Escojamos K3 y K4 tales que a1= (K3 + K4), a2= (K3 + 2K4)2, por ejemplo tomemos:

(iv)
n
Entonces, la afirmacin de que an = (K3 + nK4) es ciertamente verdadera para n = 1, 2. Asumamos
que la afirmacin es verdadera para todo n k. Entonces:

Con lo que queda demostrado.

EJEMPLO 6 (Continuacin). En el problema de las banderas, obtuvimos la relacin de recurrencia

an = an-1 + 2an-2

donde a1=0, a2=6. La ecuacin auxiliar x2 - x - 2 = 0 tiene las races = -1, = 2, as

Donde 0 = -K1 + 2K2 y 6 = K1 + 4K2. De donde K1 = 2, K2 = 1 y

Nota: Para hallar las races de una ecuacin de segundo grado de la forma ax2 + bx + c =0, podemos utilizar
b b 2 4ac
la frmula general que es: x =
2a
--

EJEMPLO 5 (Continuacin). La secuencia de Fibonacci (Fn) est dada por

1
La ecuacin auxiliar x2-x-1=0 tiene como soluciones (1 5 ) , as
2

Donde La condicin inicial F1=1, F2=2 junto con (iii) produce


tal que:

31
Matemticas Discretas FMAT-L.C.C.

Este resultado pudiera parecer un poco extrao por el hecho de que Fn debe ser un entero, sin embargo, para
cualquiera de los valores que puede tomar n (n 3) se cancelan todos los trminos que involucran a 5.
--

EJEMPLO 7. Resolver la relacin de recurrencia an=4an-1 - 4an-2, a1=1 y a2=3.

La ecuacin auxiliar es x2 - 4x +4 = 0, que puede verse tambin como (x - 2)2, as tenemos:

Las condiciones iniciales hacen que 1 = 2(K1 + K2), 3 = 4(K1 + 2K2), por lo que K1 = K2 = y entonces:

--

El mtodo de la ecuacin auxiliar se extiende a relaciones de recurrencia de orden mayor de una manera
relativamente sencilla.

EJEMPLO 8. Suponga que a1=3, a2=6, a3=14, y para n 4,

Entonces, la ecuacin auxiliar es x3 6x2 + 11x 6 = 0, que factorizada queda (x - 1)(x - 2)(x - 3) = 0, as an
= K11n + K22n + K33n . Usando las condiciones iniciales tenemos tres ecuaciones con tres incgnitas (K1, K2,
K3) que al resolverlas nos queda K1 = K2 = K3 = 1, por lo que an queda como:

--

RELACIONES DE RECURRENCIA NO-HOMOGENEAS

El mtodo de la ecuacin auxiliar ha sido usado para relaciones de recurrencia de la forma an=an-1 + 2an-2.
Estas se llaman relaciones de recurrencia lineales homogneas con coeficientes constantes: an es una
combinacin lineal de algunos elementos previos ai. Ahora consideraremos el caso de las no-homogneas,
que son de la forma:
an = Aan-1 + Ban-2 + tn

donde tn es alguna funcin de n. Un ejemplo de este tipo es el de las Torres de Hanoi, en la que se obtuvo an =
2n-1 manipulando la relacin de recurrencia an = 2an-1 + 1. Sin embargo, podemos usar un mtodo
alternativo. Para poder obtener la solucin, primero encontremos la solucin de la relacin de recurrencia
obtenida al reemplazar tn por 0, y entonces aadir a sta cualquier solucin particular de la recurrencia no
homognea.

EJEMPLO 6 (de nuevo). Para el ejemplo de las banderas, ya habamos encontrado la relacin de recurrencia
an = 3x2n-1 an-1, pero luego, haciendo una serie de transformaciones llegamos a la relacin an = an-1 + 2an-2.
Esta ltima ya puede ser resuelta con el mtodo de la ecuacin auxiliar para relaciones homogneas, sin
embargo, la primera tambin pudo haberse resuelto con el mtodo para relaciones de recurrencia lineales
no-homogneas.

Resolvamos entonces an = an-1 + 3x2n-1 con a1 = 0

El procedimiento es resolver primero an = an-1 usando la ecuacin auxiliar x = -1, para la que la solucin es
obvia y es = -1.
32
Matemticas Discretas FMAT-L.C.C.

Ahora por el TEOREMA 1 sabemos que an = Kn , es decir, an = K(-1)n.

Para hallar una solucin particular a an = an-1 + 3x2n-1 probamos con algo sensato como an = A2n.
Sustituyendo nos queda A2n = -A2n-1 + 3(2)n-1, de donde A=1

As tenemos an = K(-1)n + 2n y ya que a1 = 0 tenemos que K = 2

Finalmente tenemos que an = 2(-1)n + 2n

Ntese que las condiciones iniciales no son usadas hasta el final del procedimiento
--

En resumen, si an = c1an-1 + c2an-2 + cman-m + g(n) para n m se dice que la relacin de recurrencia es lineal
no homognea de orden m. A la relacin an = c1an-1 + c2an-2 + cman-m resultante de eliminar g(n) se le
llama relacin de recurrencia lineal homognea asociada.

Pasos para resolver una relacin de recurrencia lineal no homognea:

1. Se obtiene la solucin general de la ecuacin homognea asociada


2. Se obtiene una solucin particular de la relacin de recurrencia no homognea
3. La suma de la solucin general de la ecuacin lineal homognea asociada y de una solucin
particular de la relacin de recurrencia lineal no homognea nos da la solucin general de la relacin
de recurrencia lineal no homognea.
4. La solucin especfica se obtiene a partir de las condiciones iniciales.

Observacin: quiz lo ms difcil de el procedimiento anterior sea encontrar una solucin particular de la
relacin de recurrencia no homognea, ya que no existe un mtodo determinado. Pero en algunos casos
especiales se puede encontrar de la siguiente forma:

Si g(n) = Pk(n) (polinomio de grado k), entonces xn = Qk(n) (polinomio de grado k), excepto
si 1 es raz caracterstica con multiplicidad s, en cuyo caso xn = ns Qk(n)

Si g(n) = pan , p R, entonces xn = qan, q R, excepto si a es raz caracterstica con


multiplicidad s, en cuyo caso xn = qnsan.

Si g(n) = an Pk(n), entonces xn = an Qk(n), q R, excepto si a es raz caracterstica con


multiplicidad s, en cuyo caso xn = nsan Qk(n).

Algoritmos de Ordenamiento
Qu es ordenamiento?

Es la operacin de arreglar los registros de una tabla en algn orden secuencia! de acuerdo a un
criterio de ordenamiento. El ordenamiento se efecta con base en el valor de algn campo en un
registro.

El propsito principal de un ordenamiento es el de facilitar las bsquedas de los miembros del


conjunto ordenado. Ejemplos de ordenamientos: Dir. telefnico, tablas de contenido, bibliotecas y
diccionarios, etc.

El ordenar un grupo de datos significa mover los datos o sus referencias para que queden en una
secuencia tal que represente un orden, el cual puede ser numrico, alfabtico o incluso
alfanumrico, ascendente o descendente.

Cundo conviene usar un mtodo de ordenamiento?

33
Matemticas Discretas FMAT-L.C.C.

Cuando se requiere hacer una cantidad considerable de bsquedas y es importante el factor


tiempo.

Tipos de ordenamientos:
Los 2 tipos de ordenamientos que se pueden realizar son: los internos y los externos.

Los internos: Son aquellos en los que los valores a ordenar estn en memoria principal, por lo que
se asume que el tiempo que se requiere para acceder cualquier elemento sea el mismo (a[1],
a[500], etc).

Los externos: Son aquellos en los que los valores a ordenar estn en memoria secundaria (disco,
cinta, cilindro magntico, etc), por lo que se asume que el tiempo que se requiere para acceder a
cualquier elemento depende de la ltima posicin accesada (posicin 1, posicin 500, etc).

Eficiencia en tiempo de ejecucin:


Una medida de eficiencia es:
Contar el # de comparaciones (C)
Contar el # de movimientos de tems (M)
Estos estn en funcin de el #(n) de tems a ser ordenados.
Un "buen algoritmo" de ordenamiento requiere de un orden nlogn comparaciones.

La eficiencia de los algoritmos se mide por ei nmero de comparaciones e intercambios que tienen
que hacer, es decir, se toma n como el nmero de elementos que tiene el arreglo o vector a
ordenar y se dice que un algoritmo realiza O(n2) comparaciones cuando compara n veces los n
elementos, n x n = n2.

Algoritmos de ordenamiento:

Internos:
9 Insercin directa
o Insercin directa
o Insercin binaria
9 Seleccin directa
o Seleccin directa
9 Intercambio directo
o Burbuja
o Shake
9 Insercin disminucin incremental
o Shell.
9 Ordenamiento de rbol
o Heap
o Tournament
9 Sort particionado
o Quick sort
9 Merge sort
9 Radix sort
9 Clculo de direccin

Externos:

9 Straight merging
9 Natural merging
9 Balanced multiway merging
9 Poiyphase sort
9 Distribution of initial runs

34
Matemticas Discretas FMAT-L.C.C.

Clasificacin de los algoritmos de ordenamiento de informacin:

El hecho de que la informacin est ordenada, nos sirve para poder encontrarla y accesarla de
manera ms eficiente ya que de lo contrario se tendra que hacer de manera secuencial.
A continuacin se describirn 4 grupos de algoritmos para ordenar informacin:

Algoritmos de insercin:
En este tipo de algoritmo los elementos que van a ser ordenados son considerados uno a la vez.
Cada elemento es INSERTADO en la posicin apropiada con respecto al resto de los elementos ya
ordenados.
Entre estos algoritmos se encuentran el de INSERCIN DIRECTA, SHELL SORT, INSERCIN
BINARIA y HASHING.

Algoritmos de intercambio:
En este tipo de algoritmos se toman los elementos de dos en dos, se comparan y se
INTERCAMBIAN si no estn en el orden adecuado. Este proceso se repite hasta que se ha
analizado todo el conjunto de elementos y ya no hay intercambios.
Entre estos algoritmos se encuentran el BURBUJA y QUICK SORT.

Algoritmos de seleccin:
En este tipo de algoritmos se SELECCIONA o se busca el elemento ms pequeo (o ms grande)
de todo el conjunto de elementos y se coloca en su posicin adecuada. Este proceso se repite para
el resto de los elementos hasta que todos son analizados.
Entre estos algoritmos se encuentra el de SELECCIN DIRECTA.

Algoritmos de enumeracin:
En este tipo de algoritmos cada elemento es comparado contra los dems. En la comparacin se
cuenta cuntos elementos son ms pequeos que el elemento que se est analizando, generando
as una ENUMERACIN. El nmero generado para cada elemento indicar su posicin.
Los mtodos simples son: Insercin (o por insercin directa), seleccin, burbuja y shell, en dnde el
ltimo es una extensin al mtodo de insercin, siendo ms rpido. Los mtodos ms complejos
son el quick-sort (ordenacin rpida) y el heap sort.
A continuacin se mostrarn los mtodos de ordenamiento ms simples.

INSERCIN DIRECTA
La idea central de este algoritmo consiste en insertar un elemento del arreglo en la parte izquierda
del mismo, que ya se encuentra ordenada. Este proceso se repite desde el segundo hasta el n-
simo elemento. Ejemplo: Supngase que se desea ordenar las siguientes claves del arreglo A
utilizando el mtodo de insercin directa.

15 67 08 16 44 27 12 35

PRIMERA PASADA
A[2] < A[1] ( 67 < 15 ) no hay intercambio

15 67 08 16 44 27 12 35

SEGUNDA PASADA
A[3] < A[2] ( 08 < 67 ) s hay intercambio
A[2] < A[1] ( 08 < 15 ) s hay intercambio

08 15 67 16 44 27 12 35

TERCERA PASADA
A[4] < A[3] ( 16 < 67 ) s hay intercambio
A[3] < A[2] ( 16 < 15 ) no hay intercambio
08 15 16 67 44 27 12 35
35
Matemticas Discretas FMAT-L.C.C.

Obsrvese que una vez que se determina la posicin correcta del elemento se interrumpen las
comparaciones. Por ejemplo, en el caso anterior no se realiz la comparacin A[2] < A[1],

Las restantes pasadas se presentan a continuacin:

4 pasada
08 15 16 44 67 27 12 35
5 pasada
08 15 16 27 44 67 12 35
6 pasada
08 12 15 16 27 44 67 35
7ma pasada
08 12 15 16 27 35 44 67

Algoritmo

void insercion_directa(int n)
{
int i,j.aux;
for ( j=1 ; j<n ; j++)
for ( i=j ; i>0 && (arr[i]) < arr[i-1] ; i-- )
{
aux=arr[i];
arr[i]=arr[i+1];
arr[i+1]=aux;
}
}

SELECCIN DIRECTA

Este mtodo se basa en buscar el elemento menor del vector y colocarlo en primera posicin.
Luego se busca el segundo elemento ms pequeo y se coloca en la segunda posicin, y as
sucesivamente. Los pasos sucesivos a dar son:

1. Seleccionar el elemento menor del vector de n elementos.


2. Intercambiar dicho elemento con el primero
3. Repetir estas operaciones con los n - 1 elementos restantes, seleccionando el segundo
elemento; continuar con los n - 2 elementos restantes hasta que slo quede el mayor.

Un ejemplo aclarar el mtodo. Clasificar la siguiente lista de nmeros en orden ascendente:

320 96 16 90 120 80 200 64

El mtodo comienza buscando el nmero ms pequeo.


La lista nueva ser

1 iteracin
16 96 320 90 120 80 200 64

A continuacin se busca el siguiente nmero ms pequeo, 64, Y se realizan las operaciones 1 y


2. La nueva lista sera:

2 iteracion
16 64 320 90 120 80 200 96

36
Matemticas Discretas FMAT-L.C.C.

Las siguientes iteraciones seran:

3 iteracin
16 64 80 90 120 320 200 96

4a iteracin
16 64 80 90 120 320 200 96

5 iteracin
16 64 80 90 96 320 200 120

6 iteracin
16 64 80 90 96 120 200 320

7 iteracin
16 64 80 90 96 120 200 320

Hasta ah termina el algoritmo, ya que el ltimo elemento debe ser ms grande y por consiguiente
estar en la posicin correcta.

Algoritmo

void seleccion_directa(int n)
{
int i,j,min,k;
int cambio;
for (i=0 ; j<n-1 ; i++)
{
min=arr[i];
k=0;
cambio=0;
for (j=i+1 ; j<n ; j++)
{
if (arr[j]<min)
{
min=arr[j];
k=j;
cambio=1;
}
}
if (cambio)
{
arr[k]=arr[i];
arr[i]=min;
}
}
}

BURBUJA

El mtodo de intercalacin directo, conocido coloquialmente con el nombre de la burbuja, es el ms


utilizado entre los estudiantes de computacin, por su fcil compresin y programacin. Pero es
preciso sealar que es probablemente el mtodo ms ineficiente.

El mtodo de intercambio directo puede trabajar de dos maneras diferentes. Llevando los
elementos ms pequeos hacia la parte izquierda del arreglo o bien llevando los elementos ms
grandes hacia la parte derecha del mismo.

37
Matemticas Discretas FMAT-L.C.C.

La idea bsica de este algoritmo consiste en comparar pares de elementos adyacentes e


intercambiarlos entre s hasta que todos se encuentran ordenados. Se realizan (n-1) pasadas,
transportando en cada una de las mismas el menor o mayor elemento (segn sea el caso) a su
posicin ideal. Al final de las (n-1) pasadas los elementos del arreglo estarn ordenados.

Ejemplo: Supngase que desean ordenar las siguientes claves del arreglo A, transportando en
cada pasada el menor elemento hacia la parte izquierda del arreglo.

15 67 08 16 44 27 12 35

Las comparaciones que se realizarn son las siguientes:

PRIMERA PASADA
a[7]>a[8] (12>35) no hay intercambio
a[6]>a[7] (27>12) si hay intercambio
a[5]>a[6] (44>12) si hay intercambio
a[4]>a[5] (16>12) si hay intercambio
a[3]>a[4](08>12) no hay intercambio
a[2]>a[3] (67>08) si hay intercambio
a[1]>a[2] (15>08) si hay intercambio

Luego de la primera pasada, el arreglo queda como sigue:

08 15 67 12 16 44 27 35

Obsrvese que el elemento 08 fue situado en la parte izquierda del arreglo.

SEGUNDA PASADA
a[7]>a[8] (27>35) no hay intercambio
a[6]>a[7] (44>27) si hay intercambio
a[5]>a[6] (16>27) no hay intercambio
a[4]>a[5] (12>16) no hay intercambio
a[3]>a[4] (67>12) si hay intercambio
a[2]>a[3] (15>12) si hay intercambio

Luego de la primera pasada, el arreglo queda como sigue:

08 12 15 67 16 27 44 35

y el segundo elemento ms pequeo del arreglo, en este caso 12, fue situado en la segunda
posicin.
A continuacin se muestra el resultado de las siguientes pasadas:

Tercera Pasada:
08 12 15 16 67 27 35 44

Cuarta Pasada
08 12 15 16 27 67 35 44

Quinta Pasada
08 12 15 16 27 35 67 44

Sexta Pasada
08 12 15 16 27 35 44 67

Septima Pasada
08 12 15 16 27 35 44 67

38
Matemticas Discretas FMAT-L.C.C.

El algoritmo de ordenacin por el mtodo de intercambio directo que transporta en cada pasada el
menor elemento hacia la parte izquierda del arreglo es el siguiente:

Algoritmo
void lntercambo_Directo(int n)
{
int i,j,aux;
i=0;
j=n-1
for (j=n-1;j>0;j--)
for(i=0;i<j;i++) //recorre el arreglo de O a n-1
if (arr[i]>arr[i+1]) //si el elemento actual es mayor que el elemento siguiente
{
aux=arr[i]; //intercambio de elementos arr[i]=arr[i+1];
arr[i]=arr[i+1];
arr[i+1]=aux;
}
}

SHAKE
La idea bsica de este algoritmo consiste en mezclar las dos formas en que se puede realizar el
mtodo de la burbuja. En este algoritmo cada pasada tiene dos etapas. En la primera etapa "de
derecha a izquierda" se trasladan los elementos ms pequeos hacia la parte izquierda del arreglo,
almacenando en una variable la posicin del ltimo que ser tomado en cuenta para la siguiente
etapa. Las sucesivas pasadas trabajan con los componentes del arreglo comprendidos entre las
posiciones almacenadas en las variables.

Ejemplo:
Supngase que desea ordenarse las siguientes claves del arreglo A utilizando el mtodo de la
sacudida.

15 67 08 16 44 27 12 35

PRIMERA PASADA
Primera etapa (de derecha a izquierda)
a[7]>a[8] (12>35) no hay intercambio
a[6]>a[7] (27>12) si hay intercambio
a[5]>a[6] (44>12) si hay intercambio
a[4]>a[5] (16>12) si hay intercambio
a[3]>a[4](08>12) no hay intercambio
a[2]>a[3] (67>08) si hay intercambio
a[1]>a[2] (15>08) si hay intercambio

ltima posicin de intercambio de derecha a izquierda: 2


Luego de la primera etapa de la primera pasada, el arreglo queda de la siguiente forma:

08 15 67 12 16 44 27 35

Segunda etapa (de izquierda a derecha)


A[2]>A[3] (15>67) no hay intercambio
A[3]>A[4] (67>12) si hay intercambio
A[4]>A[5] (67>16) si hay intercambio
A[5]>A[6] (67>44) si hay intercambio
A[6]>A[7] (67>27) si hay intercambio
A[7]>A[8] (67>35) si hay intercambio

ltima posicin de intercambio de izquierda a derecha: 7


39
Matemticas Discretas FMAT-L.C.C.

Luego de la segunda etapa de la primera pasada, el arreglo queda de la siguiente forma:

08 15 12 16 44 27 35 67

SEGUNDA PASADA

Primera etapa (de derecha a izquierda)


a[6]>a[7] (27>35) no hay intercambio
a[5]>a[6] (44>27) si hay intercambio
a[4]>a[5] (16>27) no hay intercambio
a[3]>a[4] (12>16) no hay intercambio
a[2]>a[3] (15>12) si hay intercambio

ltima posicin de intercambio de derecha a izquierda: 3

Luego de la primera etapa de la segunda pasada, el arreglo queda de la siguiente forma:

08 12 15 16 27 44 35 67

Segunda etapa (de izquierda a derecha)


A[3]>A[4] (15>16) no hay intercambio
A[4]>A[5] (16>27) no hay intercambio
A[5]>A[6] (27>44) no hay intercambio
A[6]>A[7] (44>35) si hay intercambio

ltima posicin de intercambio de izquierda a derecha: 6

Luego de la segunda etapa de la segunda pasada, el arreglo queda de la siguiente forma:

08 12 15 16 27 35 44 67

TERCERA PASADA

Primera etapa (de derecha a izquierda)


a[5]>a[6] (27>35) no hay intercambio
a[4]>a[5] (16>27) no hay intercambio
a[3]>a[4] (15>16) no hay intercambio

Al realizar la primera etapa de la tercera pasada se observa que no se realizaron intercambios, por
lo tanto la ejecucin del algoritmo termina.

SHELL
El mtodo de Shell es una versin mejorada del mtodo de insercin directa. Recibe ese nombre
en honor a su autor, Donald L. Shell, quien lo propuso en 1959. Este mtodo tambin se conoce
con el nombre de insercin con incrementos decrecientes.

En el mtodo de ordenacin por insercin directa cada elemento se compara para su ubicacin
correcta en el arreglo con los elementos que se encuentran en la parte izquierda del mismo. Si el
elemento a insertar es ms pequeo que el grupo de elementos que se encuentran a su izquierda,
es necesario efectuar entonces varias comparaciones antes de su ubicacin.

Shell propone que las comparaciones entre elementos se efecten con saltos de mayor tamao
pero con incrementos decrecientes, as, los elementos quedarn ordenados en el arreglo ms
rpidamente. Para comprender mejor este algoritmo analice el siguiente caso.

40
Matemticas Discretas FMAT-L.C.C.

Considere un arreglo que contenga 16 elementos. En primer lugar, se dividirn los elementos del
arreglo en ocho grupos, teniendo en cuenta los elementos que se encuentran a ocho posiciones de
distancia entre s y se ordenarn por separado. Quedarn en el primer grupo los elementos (A[l],
A[9]); en el segundo, (A[2], A[10]); en el tercero, (A[3], A[11]), y as sucesivamente. Despus de
este primer paso se dividirn los elementos del arreglo en cuatro grupos, teniendo en cuenta ahora
los elementos que se encuentren a cuatro posiciones de distancia entre s y se les ordenar por
separado. Quedarn en el primer grupo los elementos (A[l], A[5], A[9], A[13]); en el segundo, (A[2],
A[6], A[10], A[14]), y as sucesivamente. En el tercer paso se dividirn los elementos del arreglo en
grupos, tomando en cuenta los elementos que se encuentran ahora a dos posiciones de distancia
entre s y nuevamente se les ordenar por separado. En el primer grupo quedarn (A[l], A[3], A[5],
A[7], A[9], A[ll], A[13], A[15]) y en el segundo grupo (A[2], A[4], A[6], A[8], A[10], A[12], A[14],
A[16]).

Finalmente se agruparn y ordenarn los elementos de manera normal, es decir, de uno en uno.
Vase el siguiente ejemplo.

Ejemplo1:

Suponga que se desean ordenar los elementos que se encuentran en el arreglo A utilizando el
mtodo de Shell.

A: 15 67 08 16 44 27 12 35 56 21 13 28 60 36 07 10

PRIMERA PASADA

Se dividen los elementos en 8 grupos:

La ordenacin produce

A: 15 21 08 16 44 27 07 10 56 67 13 28 60 36 12 35

SEGUNDA PASADA

Se dividen los elementos en 4 grupos:

La ordenacin produce

A: 15 21 07 10 44 27 08 16 56 36 12 28 60 67 13 35

TERCERA PASADA

41
Matemticas Discretas FMAT-L.C.C.

Se dividen los elementos en 2 grupos:

La ordenacin produce

A: 07 10 08 16 12 21 13 27 15 28 44 35 56 36 60 67

CUARTA PASADA

Dividimos los elementos en un solo grupo:

La ordenacin produce

A: 07 08 10 12 13 15 16 21 27 28 35 36 44 56 60 67

El algoritmo en pseudocdigo es el siguiente

El anlisis de la eficiencia del mtodo Shell es un problema muy complicado y an no resuelto. No


se ha podido establecer hasta el momento la mejor secuencia de incrementos cuando N es grande.
Cabe recordar que cada vez que se produce una secuencia de intervalos es necesario correr el
algoritmo para analizar el tiempo de ejecucin del mismo. En 1969 Pratt descubri que el tiempo
de ejecucin del algoritmo es del orden n*(logn)2. Unos estudios realizados en la Universidad de
Stanford en 1971 por Peterson y Russell muestran que las mejores secuencias para valores de N
comprendidos entre 100 y 60,000 son:

1, 3, 5, 9, , 2k + 1
1, 3, 7, 15, , 2k 1
1, 3, 5, 11, , (2k 1)/3
1, 4, 13, 40, , (3k 1)/2

42
Matemticas Discretas FMAT-L.C.C.

Donde k = 1, 2, 3,
Ejemplo2:

Suponga que se desea ordenar las siguientes claves del arreglo A utilizando el mtodo de Shell. La
secuencia de intervalos que se utilizar corresponde a la frmula 2k 1 presentada por Petterson y
Russell

A: 15 67 08 16 44 27 12 35 56 21 13 28 60 36 07 10

Donde PAS es el nmero de pasada e INT el intervalo en el que se esta trabajando

Relaciones Divide y Vencers


Muchos algoritmos recursivos toman un problema con una entrada dada y lo dividen en uno o ms
problemas ms pequeos. Esta reduccin es sucesivamente aplicada hasta que las soluciones de
los problemas pequeos pueden ser resueltas rpidamente. Por ejemplo, cuando realizamos una
bsqueda binaria, reducimos la bsqueda de un elemento en una lista a la bsqueda de un
elemento en una lista de la mitad de tamao. Sucesivamente aplicamos esta reduccin hasta que
solo queda un elemento. Este tipo de procedimientos son llamados algoritmos de Divide y
Vencers.
Suponga que un algoritmo divide un problema de tamao n en a subproblemas, donde cada
subproblema es de tamao n/b (por simplicidad suponga que b divide a n exactamente; en
realidad, los problemas pequeos son frecuentemente del tamao del entero mas cercano ya sea
menor o igual, o mayor o igual a n/b). Tambin suponga que un total de g(n) operaciones extra son
requeridas cuando se hace esta divisin del problema en problemas mas pequeos.
Entonces, si f(n) representa el nmero de operaciones requeridas para resolver el problema,
tenemos que f satisface la relacin de recurrencia
f(n) = af(n/b) + g(n)
Esta es llamada relacin de recurrencia de Divide y Vencers
Ejemplo1. El algoritmo de bsqueda binaria reduce la bsqueda de un elemento en una secuencia
de tamao n en una bsqueda binaria de ese elemento en una secuencia de tamao n/2, para
cualquier n par. (As, un problema de tamao n es reducido a un problema de tamao n/2). Se
necesitan dos comparaciones para implementar esta reduccin (una para determinar que mitad de
la lista va a ser usada y la otra para determinar si queda algn trmino en la lista). As si f(n) es el

43
Matemticas Discretas FMAT-L.C.C.

nmero de comparaciones requeridas para buscar un elemento en una secuencia de tamao n,


entonces f(n)= f(n/2) + 2 cuando n es par.

Ejemplo2. Considere el siguiente algoritmo para localizar el elemento mnimo y mximo de una
secuencia a1, a2, , an . Si n=1 entonces a1 es el mximo y el mnimo. Si n>1, divide la secuencia
en dos secuencias donde ambas tienen el mismo nmero de elementos o una tiene un elemento
mas que la otra. El problema es reducido a encontrar el mximo y mnimo de cada una de las dos
secuencias ms pequeas. La solucin del problema original ser el resultado de la comparacin
de los mximos y mnimos de las dos secuencias ms pequeas obteniendo el mximo y el mnimo
general.

Sea f(n) el nmero total de comparaciones necesarias para encontrar el elemento mnimo y
mximo de la secuencia de n elementos. Este problema de tamao n puede ser reducido a dos
problemas de tamao n/2 para cualquier n par usando dos comparaciones, una para comparar los
mnimos de las dos secuencias y una para comparar los mximos. Esto da la relacin de
recurrencia f(n)=2f(n/2) + 2 para una n par.

Ejemplo3. Hay algoritmos que multiplican dos matrices de n x n, donde n es par usando siete
multiplicaciones cada una de ellas de 2 matrices de (n/2) x (n/2) y 15 adiciones de matrices de (n/2)
x (n/2). Entonces, si f(n) es el numero de operaciones (multiplicaciones y adiciones) usadas,
tenemos que
f(n) = 7f(n/2) + 15n2/4 donde n es par
---

Las relaciones de recurrencia de la forma f(n) = af(n/b) + g(n) estn presentes en muchas
situaciones. Es posible hacer estimaciones del tamao de las funciones que satisfacen estas
relaciones de recurrencia. Suponga que f satisface esta relacin de recurrencia si n es divisible
entre b. Sea n = bk, donde k es un entero positivo entonces:

f(n) = af(n/b) + g(n)


= a2f(n/b2) + ag(n/b) + g(n)
= a3f(n/b3) + a2g(n/b2) + ag(n/b) + g(n)
. ..
k 1
= a f (n / b ) +
k k
a
j =0
j
g (n / b j )

k 1
Ya que n/bk = 1, tenemos f(n) = a f (1) +
k
a
j =0
j
g (n / b j )

44
Matemticas Discretas FMAT-L.C.C.

Teorema1. Sea f una funcin creciente que satisface la relacin de recurrencia

f(n) = af(n/b) + c

donde n es divisible entre b, a 1, b es un entero mayor que 1 y c es un nmero real positivo,


entonces

f(n) = O(nlogba) si a > 1


O(logn) si a = 1

Ejemplo4. Sea f(n) = 5f(n/2) + 3 y f(1)=7. Estime el orden de f(n) si f es una funcin creciente.

Para a=5, b=2 y c=3 vemos que por el teorema1 f(n) = O(nlogba) = O(nlog25)

Ejemplo5. Estimar el nmero de comparaciones usadas para una bsqueda binaria.

En el ejemplo1 se mostr que f(n)= f(n/2) + 2 cuando n es par, donde f es el nmero de


comparaciones requeridas para realizar una bsqueda binaria en una secuencia de tamao n. As
por el teorema1 f(n) = O(logn)

Ejemplo6. Estimar el nmero de comparaciones usadas para localizar los elementos mximo y
mnimo de una secuencia usando el algoritmo dado en el ejemplo2.

En el ejemplo2 se mostr que f(n)=2f(n/2) + 2 para una n par, donde f es el nmero de


comparaciones necesarias para este algoritmo. Entonces, por el teorema1 f(n) = O(nlogba) =
O(nlog22) = O(n).

De manera ms general (y ms complicado) al teorema1 tenemos el siguiente teorema que es til


para el anlisis de la complejidad de los algoritmos del tipo divide y vencers.

Teorema2. Sea f una funcin creciente que satisface la relacin de recurrencia


f(n) = af(n/b) + cnd

donde n = bk, k es un entero positivo, a 1, b es un entero mayor que 1 y c y d son nmero reales
positivos, entonces

f(n) = O(nd) si a < bd


O(nd logn) si a = bd
O(nlogba) si a > bd
45
Matemticas Discretas FMAT-L.C.C.

Ejemplo7. Estimar el nmero de multiplicaciones y adiciones requeridas para multiplicar dos


matrices usando el algoritmo de multiplicacin de matrices mencionado en el ejemplo3

Sea f(n) el nmero de multiplicaciones y adiciones usadas por el algoritmo mencionado en el


ejemplo3 para multiplicar dos matrices de n x n. Tenemos que f(n) = 7f(n/2) + 15n2/4 donde n es
par, entonces por el teorema2 f(n) = O(nlog27)

Note que log27 2.8 mientras que el algoritmo convencional para la multiplicacin de dos matrices
de n x n usa O(n3) adiciones y multiplicaciones. Para valores de n lo suficientemente grandes esto
constituye una mejora considerable

46
Matemticas Discretas FMAT-L.C.C.

6. Unidad 3. Funciones enteras

Un par de funciones enteras fundamentales

La funcin entera que constituye el corazn de esta seccin es la funcin mdulo. Sin embargo
antes de que la obtengamos vamos a ver algunas funciones muy simples. La primera y ms
importante de estas es la funcin floor. Denotamos esta funcin como x , aunque tambin

podemos denotarla como floor(x). Tambin es ampliamente conocida como la funcin mayor entero
y es encontrada en muchos lenguajes de computacin como la funcin integer (algunas veces
denotada como INT(x)). La funcin floor de x devuelve el entero ms grande que es menor o igual
a x, por ejemplo 4 = 4, 2.5 = 2, 2 = -2, 2.5 = -3, = 3, = -4. (debemos ser

cuidadosos al usar la funcin truncate encontrada en algunos lenguajes de computacin, ya que


sta solo se comportar similar a la funcin floor cuando se trate de nmeros positivos). Ntese
que la funcin floor es una funcin entera que siempre retorna un entero, sin embargo puede ser
aplicada a todos los nmero reales.

La funcin ceiling complementa a la funcin floor. Esta es denotada como x o como ceiling(x).

La funcin ceiling de x devuelve el entero ms pequeo que es ms grande o igual a x. Por


ejemplo 4 = 4, 2.5 = 3, 2 = -2, 2.5 = -2, = 4, = -3.

Informalmente podemos decir que, la funcin floor(x), x redondea a x hacia abajo. La funcin ceiling(x), x

redondea a x hacia arriba. Si x es un entero, entonces x = x = x. x = x solo si x es un entero, por tanto

x - x = 0; en otro caso, es igual a 1.

Un ejemplo bastante extico de la funcin ceiling es el siguiente: La siguiente funcin para enteros
mayores que 4 evala a 1 si n es un nmero primo, en otro caso evala a 0.

(n 1)! (n 1)!
f ( n) = n . Esto est basado en un teorema de Wilson.
n

Aplicaciones bsicas para la funcin floor

Si queremos redondear un nmero x al entero ms cercano, podemos usar el siguiente truco

x + 0.5 , lo que nos dar el resultado deseado.

47
Matemticas Discretas FMAT-L.C.C.

La divisin entera, que es algunas veces denotada como \ significa una divisin sin decimales, es
decir, ignorando el residuo de la divisin. Ejemplo 8 \ 3 = 2, 6 \ 2 = 3, 7 \ 2 = 3. x \ y es equivalente

x
a .
y
Para redondear un nmero a exactamente dos dgitos, por ejemplo para redondear 3.14159 a 3.14

podemos usar la frmula


100 x . O tambin para redondear al nmero ms cercano (de dos
100

dcimales)
100 x + 0.5 .
100
Suponga que queremos dividir el intervalo de nmeros reales 0 x 1 en 20 subintervalos de
longitud 0.05. Dado un nmero, y, tal que 0 y 1, podramos preguntar dentro de que

y
subintervalo est y, y la respuesta es 0.05 + 1 . Por ejemplo el nmero 0.07 cae en el segundo

0.07
subintervalo ya que + 1 = 2.
0.05
Ejercicios:
1. Al menos, todos los lenguajes de computadora tienen la funcin floor, o algn
equivalente. Muestra que puedes definir la funcin ceiling en trminos de la funcin
floor como x = x , es decir muestra que esta identidad es verdadera.

2. Muestra que la funcin round(x), que redondea a x al entero ms cercano, puede ser
definido como round(x) = x + 0.5 .

Una aplicacin de la funcin floor para nmeros aleatorios


Tpicamente, los generadores de nmeros aleatorios retornan variables uniformes. Estos son
nmeros que pretenden estar entre 0 y 1 de tal forma que todos los nmeros tienen igual
oportunidad de ser seleccionados1. Suponga, que por alguna razn queremos tomar variables
uniformes de dos generadores y combinarlas. Por ejemplo, supongamos que el primer generador
nos da u y el segundo generador nos da v; sumemos ambas variables para obtener una nueva
llamada w = u + v. El rango de w es de 0 a 2, as que si dividimos a w entre 2, nuestra nueva
variable w/2 cae entre 0 y 1. Sin embargo, w/2 no esta uniformemente distribuida. Es mucho ms
fcil estar cerca de 0.5 que de los extremos 0 o 1. Sin embargo, si definimos w como
w = u + v u + v , esta est uniformemente distribuida entre 0 y 1. Para entender porqu, es
necesario mirar la grfica de distribucin de u+v.

Cuando tomamos una variable uniforme u distribuida entre 0 y 1, si creamos una nueva variable v=au + b, v
est uniformemente distribuida entre b y b+a. En particular v =au est uniformemente distribuida entre 0 y a.

48
Matemticas Discretas FMAT-L.C.C.

Sea u una variable uniformemente distribuida entre 0 y 1. Sea n un entero positivo. n u + 1 nos da los enteros

1, 2, 3 hasta n (uniformemente distribuida). Si a es cualquier entero n u + a nos da los enteros a, a+1, a+2

hasta a+n-1.

______
1
Muchos programas de computadora retornan nmeros aleatorios en varios esquemas. Sin embargo, los nmeros
distribuidos aleatoriamente entre 0 y 1 son los preferidos. Casi siempre es posible transformar estos nmeros de una
manera simple a la forma que se quiera, ya sea a enteros uniformemente distribuidos entre 1 y 100, o variables normales
con una media y una desviacin estndar dadas.

La funcin mdulo

0 [-6, -3, 0, 3, 6, 9, ]

1 2 [-4, -1, 2, 5, 8, 11, ]

[-5, -2, 1, 4, 7, 10, ]

Fig 1 Los enteros mdulo 3

Hay dos definiciones de mdulo: una es la funcin mdulo usada por las computadoras cientficas
y la otra es la relacin mdulo usada por los matemticos. Exploraremos ambas versiones,
comenzando por la relacin mdulo.

Considere la grfica de la figura 1, los vrtices estn numerados con 0, 1 y 2. Los corchetes
prximos a cada vrtice cuentan los nmeros de arcos a viajar del vrtice 0 al vrtice en cuestin.
Los corchetes del vrtice 0 contienen el entero 0 porque decimos que podemos llegar al vrtice 0
desde el vrtice 0 con cero pasos. Siguiendo los arcos del vrtice 0 al vrtice 1, al vrtice 2 y luego
de retorno al vrtice 0 habremos recorrido 3 arcos. Si recorremos el mismo camino pero en el
orden opuesto, que es contrario a las direcciones de los arcos, decimos que hemos recorrido -3
arcos. De manera similar, podemos viajar del vrtice 0 al vrtice 0 en -6 arcos , o 9, o 102 arcos.
Claramente hay un nmero infinito de posibilidades como lo indican los tres puntos (). Los
corchetes del vrtice 1 indican que es posible ir del vrtice 0 al vrtice 1 en 1 paso, 4, -2, y as por
el estilo. Note que los nmeros en los corchetes particionan todos los enteros en tres clases.
Denotaremos estas clases de los vrtices como sigue: [0] denota la clase [-6, -3, 0, 3, 6, 9, ], y
las otras clases son denotadas como [1] y [2] respectivamente.
49
Matemticas Discretas FMAT-L.C.C.

Hay algunas observaciones que pueden hacerse acerca de estas clases de nmeros. La clase [0]
tiene la propiedad de que contiene las diferencias de cada par de nmeros en la clase. Por
ejemplo, como 18 y 54 estn en la clase, hacemos 18 54 = -36 y 54 18 = 36 y vemos que -36 y
36 estn tambin en la clase. Definimos un mdulo como cualquier clase de nmeros que contiene
al menos dos nmeros y contiene las diferencias de cada par de nmeros en la clase. As, decimos
que [0] es un mdulo pero [1] y [2] no lo son. Si tomamos cualquiera de las 3 clases, la diferencia
en cualesquiera dos nmeros pertenece a [0]. De manera mas concisa, la diferencia entre
cualesquiera dos nmeros en cualquier clase es un mltiplo de 3 (El nmero de nodos en la
grfica).

Escojamos ahora dos de las tres clases (incluso podramos escoger la misma clase dos veces).
Escojamos ahora dos nmeros (uno de cada clase). Primero sumemos los nmeros y observemos
en que clase se encuentra la suma. Ahora hagamos el mismo experimento una y otra vez pero con
las mismas dos clases y encontraremos que la suma siempre cae en la misma clase de la primera
vez. Intente lo mismo con la multiplicacin y obtendr el mismo fenmeno. Por ejemplo, cada vez
que sumamos un nmero de [1] a un nmero de [1] obtenemos un nmero de [2],
independientemente de los nmeros que hayamos escogido. De manera similar, cada vez que
multiplicamos un nmero de [2] por un nmero de [2], obtenemos un nmero de [1]. Por lo tanto,
podemos ahorrar tiempo al hacer operaciones sobre las clases [0], [1] y [2].

Ejercicio:
3. Escriba las tablas de adicin y de multiplicacin para las clases [0], [1], [2]. Segn la
discusin anterior, para construir la tabla simplemente tome un nmero cualquiera de
cada clase. Para hacerlo mas sencillo podramos seleccionar 0, 1, 2. Note que en
efecto hemos descubierto un algebra consistente de tres nmeros, ya que hemos
particionado a los enteros en tres clases. En el lenguaje matemtico indicamos que los
enteros A y B pertenecen a la misma clase diciendo A B (mod 3) o en palabras: A es
congruente a B mdulo 3. En general, podemos usar cualquier entero ms grande que
otro como su mdulo. En cualquier caso, aplica una interpretacin grfica como la de
la figura 1.

La divisin entera ser importante por un tiempo, as que usaremos una notacin especial para
ella. Diremos que el entero x es dividido por el entero y, si existe otro entero z tal que x = yz.
Escribimos esto como y|x. Si el entero x divide a ambos (y, z) escribimos x|y,z. En otras palabras,
A B (mod n) es equivalente a n|A-B.

Podemos definir tambin el mdulo aritmtico diciendo A B (mod n) cuando n divide a A-B. Esto es tanto
rpido como prctico. Esta relacin particiona a los enteros en n clases.

50
Matemticas Discretas FMAT-L.C.C.

Es usual escribir parntesis alrededor de las palabras mod n. Sin embargo, con frecuencia se pone
sin parntesis en los casos en que sea redundante, lo que no tiene importancia a menos que haya
una inconsistencia.

De nuevo, cuando observamos las clases de enteros mdulo 3, que son las tres clases dadas en la
figura 1, podemos escoger cualquier nmero de una clase para representar la clase. La
representacin estndar de una clase es el primer entero no negativo en la clase.

Ejemplo:
Considere los enteros mod 5. Esto nos da cinco clases de enteros, para las que las
representaciones estndar son 0, 1, 2, 3, 4. Por ejemplo 0 es la representacin estndar de la
clase { -10, -5, 0, 5, 10, 15} y escribimos:
[0] = { -10, -5, 0, 5, 10, 15}
[1] = { -9, -4, 1, 6, 11, 16}
[2] = { -8, -3, 2, 7, 12, 17}
[3] = { -7, -2, 3, 8, 13, 18}
[4] = { -6, -1, 4, 9, 14, 19}

Dado un entero, digamos 10, cul es la representacin estndar para su clase mdulo 3?, Ya que
10 est en la clase [1], la respuesta es 1, y escribimos 1 10 mod 3. Claramente esta definicin
funciona para cualquier mdulo (con lo cual queremos decir un entero positivo mayor que 1). De la
figura 1 podemos ver que -5 mod 3 es 1, esto es, 1 -5 mod 3. Sin embargo, una advertencia, no
confe en que un compilador le de la respuesta correcta cuando se tome el mdulo de un nmero
negativo. La implementacin general de la funcin mdulo, que es bsicamente como nosotros la
vamos a usar, es que mod es una funcin de dos nmeros a veces escrita mod(x,y) y en la
mayora de las implementaciones escrita x mod y, donde y es un entero positivo y x es un entero
no negativo con la funcin x mod y definida como el residuo de x dividida por y. Por ejemplo 7 mod
2 = 1, 25 mod 7 = 4, 5 mod 6 = 5, 0 mod 8 = 0.

El reloj de tiempo de 12 horas ordinario es un mdulo aritmtico. Si un trabajo comienza a las 10 en punto y
termina 4 horas despus, entonces termina a las 2 en punto. La nica diferencia entre el reloj de tiempo y el
mdulo 12 aritmtico es que en el mdulo 12 usamos comnmente 0 en vez de 12.

Ejercicio:
4. Una aplicacin muy buena de la funcin mdulo es para darle formato a la salida de la
computadora. Trate de escribir un programa que imprima los primeros n enteros
positivos en m columnas donde n y m sean datos de entrada dados por el usuario.

51
Matemticas Discretas FMAT-L.C.C.

Otra aplicacin de la funcin mdulo es para monitorear un programa. Si se tiene un nmero


grande de iteraciones para i y se imprime cada i, se pierde una enorme cantidad de tiempo
escribiendo en la pantalla y las is cambian muy rpido para leerlas. Entonces podemos usar una
instruccin como if i MOD 100 = 0 then print 1. En se caso solo se pintan los mltiplos de 100.

k mod n = h significa que h es el residuo de k dividida entre n


k mod n h significa que n|h-k (n divide la diferencia entre h y k)

5. La diferencia entre la funcin mdulo y la relacin mdulo es sutil. Muestra que si A


mod n = B entonces A B (mod n), pero esta implicacin no funciona en el sentido
contrario.
6. Suponga que tiene un compilador que realiza la funcin mdulo para enteros positivos.
Escribe una extensin de esa funcin de tal manera que funcione para enteros
negativos. En otras palabras, suponga que tiene una computadora que retornar x mod
y cuando x es no negativo y y es positivo. Escriba la definicin de una funcin, sea
FNMOD(x,y) tal que FNMOD funciona cuando x es tanto negativa como no negativa (y
es siempre positiva).

Ejemplo:
Estamos escribiendo un programa que simula la reparticin de un paquete de cartas (barajas).
Queremos repartir una carta del paquete de tal forma que cada carta tenga igual probabilidad de
ser escogida. Primero usamos un generador de nmeros aleatorios para obtener un nmero real,
rand, con 0 < rand < 1. Calculamos entonces floor de rand52: rand 52 . Esto nos da los

enteros 0, 1, 2, hasta 51. cada uno con igual probabilidad de ocurrencia. Sea n = rand 52 . Para

encontrar el valor de la carta usamos rand 52 mod 13 + 1. Por ejemplo, 9 mod 13 + 1 = 10; 51

mod 13 +1 = 13 es un Rey; 26 mod 13 +1 = 1 es un Haz. Si tomamos rand 52 mod 4, nos da el

tipo de la carta. 9 mod 4 = 1 es Diamantes; 51 mod 4 = 3 es Espadas; 2 mod 4 =2 es Corazones; 8


mod 4 =0 es de Garrotes.

La siguiente definicin es siempre correcta. Esta funciona incluso sea para un negativo u (v debe
ser positivo) y es frecuentemente til.

u
u mod v = u v
v
Otra definicin para la funcin mdulo

52
Matemticas Discretas FMAT-L.C.C.

Modulo Aritmtico

Uno de los aspectos agradables de los nmeros mdulo es que ellos casi obedecen las reglas
usuales que conocemos para el algebra y la aritmtica.

Recordemos por un momento: De vuelta al primer ejemplo, construimos los enteros mdulo 3 como
tres clases de nmeros [0], [1], [2]. Nos percatamos de que las clases nos daban una aritmtica,
porque podamos usar cualquier representante de la clase para representar la clase en la
aritmtica y siempre obtenamos el mismo resultado. En general escogimos los representantes
estndar como los elementos no negativos ms pequeos de su clase. En el caso de la aritmtica
mod n, esos nmeros son 0, 1, 2, 3 , n-1. Estos nos dan un sistema aritmtico y los matemticos
frecuentemente denotan este sistema de enteros mod n como Zn. En Zn no escribimos A B (mod
n), solo escribimos A=B. Si por ejemplo en Z8 tenemos un nmero, X, fuera del dominio 0,1,,7
podemos ver que este es equivalente a X mod 8. Por ejemplo en mod 8 escribimos 23 = 7, 16 = 0,
-3 = 5.

Dentro de los enteros mod n o dentro de Zn (Podemos usar estos de forma intercambiable), la
adicin, sustraccin y multiplicacin funcionan de manera usual. En particular

Si X Y(mod n) entonces, para cualquier entero Z


X + Z Y + Z (mod n)
X - Z Y - Z (mod n)
X Z Y Z (mod n)

Todas las reglas de arriba son como en el lgebra bsica. Sin embargo, no es un accidente que no
se diga nada de la divisin.

Ejemplo:
Queremos resolver x + 8 = 5 (mod 10). Sumando 2 a ambos lados tenemos x + 10 = x = 7 (mod
10). Recuerda, en (mod 10) o Z10, 10 = 0

Ejercicio:
7. Resolver los siguientes problemas en Z7 para X:
X+3=6
X+5=3
X4=5
X+1=6

53
Matemticas Discretas FMAT-L.C.C.

El problema de las dos reinas (Con el uso de las funciones floor y mdulo)

En el ajedrez, las reinas pueden moverse (y comer) a lo largo de las filas, columnas y diagonales.
Suponga que numeramos a los cuadrados del tablero, comenzando por la izquierda de la fila de
arriba y movindonos de izquierda a derecha hasta finalizar en el cuadro de la derecha de ms
abajo, numerando los cuadrados del 0 al 63. Entonces, escojamos dos nmeros diferentes del 0 al
63 (inclusive). Sean las posiciones de las reinas los dos enteros diferentes x, y. Cmo
numricamente podemos decidir si moviendo cualquier reina puede comer a la otra? No es difcil
mostrar que las siguientes reglas funcionarn: Los nmeros de las filas de las dos posiciones son

x y
respectivamente 8 y 8 (dndonos nmeros del 0 al 8). Los nmeros de las columnas estn

dadas por x mod 8 y y mod 8, con los nmeros de columna del 0 al 7. Las reinas estn en la misma
fila o en la misma columna si tienen los mismos nmeros de fila o columna respectivamente. Ellas
estn en la misma diagonal si la diferencia absoluta de los nmeros de fila es igual a la diferencia
absoluta de los nmeros de columna. Por ejemplo, suponga que nuestros nmeros de posicin son
x=20 y y=41. Entonces los nmeros de fila son respectivamente 2 (la tercera fila) y 5 (la sexta fila).
Los nmeros de columna son 4 y 9. Las reinas estn en la misma diagonal si |2-5| = |4-9|, esto es,
si 3 = 5. Ya que esto es falso, estn en diferentes diagonales.

54
Matemticas Discretas FMAT-L.C.C.

7. Unidad 4. Teora de grafos

La teora de grafos es un tema antiguo con muchas aplicaciones modernas. Sus ideas bsicas
fueron introducidas en el siglo XVIII por el gran matemtico suizo Leonhard Euler. El, us grafos
para resolver el famoso problema de puente de Knigsberg, que se discutir ms adelante.

Los grafos son usados para resolver problemas en muchos campos. Por ejemplo, los grafos
pueden ser usados para determinar si un circuito puede ser implementado sobre un panel de
circuitos plano. Se puede distinguir entre dos compuestos qumicos con la misma frmula
molecular pero diferentes estructuras utilizando grafos. Podemos determinar si dos computadoras
estn conectadas por un enlace de comunicaciones usando modelos de grafos de redes de
computadoras.

Los grafos con pesos asignados a sus arcos pueden ser usados para resolver problemas tales
como encontrar el camino mas corto entre dos ciudades en una red de transporte. Tambin se
pueden usar grafos para programar exmenes y asignar canales a las estaciones de televisin.

Introduccin a los grafos

Los grafos son estructuras discretas que consisten de vrtices y arcos que conectan estos vrtices.
Hay muchos tipos diferentes de grafos que difieren con respecto al nmero y tipo de arcos que
pueden conectar un par de vrtices. Los problemas de casi todas las disciplinas concebibles
pueden ser resueltos usando modelos de grafos.

Tipos de grafos

Introduciremos los diferentes tipos de grafos mostrando cmo cada uno puede ser usado para
modelar una red de computadoras. Suponga que una red es construida con computadoras y lneas
de telfono entre las computadoras. Podemos representar la localizacin de cada computadora
con un punto y cada lnea telefnica con un arco como se muestra en la figura 1

55
Matemticas Discretas FMAT-L.C.C.

Podemos hacer las siguientes observaciones a cerca de la red en la figura 1. Hay al lo sumo una
lnea telefnica entre dos computadoras en esta red, cada lnea opera en ambas direcciones, y no
hay computadoras que tengan una lnea telefnica hacia s misma. Consecuentemente esta red
puede ser modelada usando un grafo simple, consistente de vrtices que representan las
computadoras y arcos no dirigidos, que representan lneas telefnicas, donde cada arco conecta
dos vrtices distintos y no hay dos arcos que conecten el mismo par de vrtices.

Definicin 1. Un grafo simple G = (V, E) consiste de V, un conjunto no vaco de Vrtices, y E, un


conjunto de pares no ordenados de distintos elementos de V llamados Arcos.

Algunas veces hay mltiples lneas telefnicas entre computadoras en una red. Este caso se da
cuando existe trfico muy pesado entre computadoras. A continuacin se muestra una red con
mltiples lneas.

Los grafos simples no son suficientes para modelar redes como estas. En lugar de ellos, se usan
los multigrafos, que consisten de vrtices y arcos no dirigidos entre estos vrtices, pero
permitiendo mltiples arcos entre los pares de vrtices.

Todo grafo simple es un multigrafo. Sin embargo, no todos los multigrafos son grafos simples,
por el hecho de que en un multigrafo dos o ms arcos pueden conectar al mismo par de vrtices.
No podemos usar un par de vrtices para especificar un arco de un grafo cuando ste representa a
mltiples arcos. Esto hace a la definicin formal de multigrafo algo ms complicada.

Definicin 2. Un multigrafo G = (V, E) consiste de un conjunto de Vrtices V, un conjunto de


arcos E y una funcin f de E a {{u, v} | u, v V, u v}. Los arcos e1 y e2 son llamados arcos
mltiples o paralelos si f(e1) = f(e2).

Una red de computadoras podra contener una lnea telefnica de una computadora a si misma
(quiz para propsitos de diagnstico) A continuacin se muestra una red como esta:

56
Matemticas Discretas FMAT-L.C.C.

No podemos usar multigrados para modelar una red como sta. En ves de estos, se usan los
pseudografos. Los pseudografos son ms generales que los multigrafos ya que un arco de un
pseudografo puede conectar a un vrtice consigo mismo. Para formalizar la definicin de
pseudografo, debemos ser capaces de asociar arcos a conjuntos que contengan incluso a un solo
vrtice.

Definicin 3. Un pseudografo G = (V, E) consiste de un conjunto de Vrtices V, un conjunto de


arcos E y una funcin f de E a {{u, v} | u, v V}. Un arco es un lazo si f(e) = {u} para algn u
V.

Podemos notar que los arcos mltiples en un pseudografo estn asociados al mismo par de
vrtices. Sin embargo, diremos que {u, v} es un arco del grafo G = (V, E) si hay al menos un arco e
con f(e) = {u, v} . No distinguiremos entre el arco e y el conjunto {u, v} asociado a l a menos que
la identidad individual de los mltiples arcos sea importante.

Resumiendo, los pesudografos son el tipo ms general de grafos no dirigidos ya que contienen
arcos cclicos y arcos mltiples. Los multigrados son grafos no dirigidos que pueden contener arcos
mltiples pero no pueden contener lazos. Finalmente, los grafos simples son grafos no dirigidos
que no tienen arcos mltiples ni tampoco lazos.

Las lneas telefnicas en una red de computadoras no pueden operar en ambas direcciones, por
ejemplo, en la figura 4, el host de Nueva York solo puede recibir datos de otras computadoras y no
puede enviar datos. Las otras lneas telefnicas operan en ambas direcciones y estn
representadas por pares de arcos en direcciones opuestas.

57
Matemticas Discretas FMAT-L.C.C.

Para modelar este tipo de redes se usan los grafos dirigidos. Los arcos de los grafos dirigidos son
pares ordenados. Los lazos, son pares ordenados del mismo elemento y estn permitidos, pero los
arcos mltiples en la misma direccin entre dos vrtices, no.

Definicin 4. Un grafo dirigido G = (V, E) consiste de un conjunto de vrtices V y un conjunto de


arcos E que son pares ordenados de elementos de V.

Finalmente, mltiples lneas pueden estar presentes en la red de computadoras, as pueden haber
muchas lneas de un solo sentido hacia el host en Nueva York desde cualquier lugar, y quiz ms
de una lnea de regreso a cada computadora remota desde el host. La figura 5 muestra una red
como sta.

Los grafos dirigidos no son suficientes para modelar redes como esta, ya que los arcos mltiples
no estn permitidos en estos grafos. En cambio, los multigrafos dirigidos, pueden tener arcos
mltiples dirigidos de un vrtice a otro (posiblemente el mismo). La definicin formal de los
multigrafos dirigidos es la siguiente.

Definicin 5. Un multigrafo dirigido G = (V, E) consiste de un conjunto de vrtices V, un conjunto


de arcos E, y una funcin f de E a {{u, v} | u, v V }. Los arcos e1 y e2 son arcos mltiples si f(e1)
= f(e2).

Podemos notar que arcos dirigidos mltiples estn asociados con el mismo par de vrtices. Sin
embargo, podemos decir que (u, v) es un arco de G = (V, E) en la medida en que exista al menos

58
Matemticas Discretas FMAT-L.C.C.

un arco e con f(e)=(u, v). No haremos distincin entre el arco e y el par ordenado (u, v) asociado a
l, a menos que la identidad individual de los arco mltiples sea importante.

Esta terminologa para los varios tipos de grafos queda clara, ya sea que los arcos de un grafo
estn asociados con un par ordenado o no ordenado de vrtices, estn o no estn permitidos los
arcos mltiples y estn o no permitidos los lazos. Usaremos grafo para describir grafos con arcos
dirigidos o no dirigidos con o sin lazos o arcos mltiples. Usaremos los trminos grafo no dirigido
o pseudografo para un grafo no dirigido que puede tener arcos mltiples y lazos. Siempre
usaremos el adjetivo dirigido cuando hagamos referencia a grafos que tienen pares ordenados de
vrtices asociados con sus arcos. El resumen se muestra en la siguiente tabla:

Tipo Arcos Arcos mltiples permitidos lazos permitidos


Grafo simple No dirigido No No
Multigrado No dirigido Si No
Pseudografo No dirigido Si Si
Grafo dirigido Dirigido No Si
Multigrafo dirigido Dirigido Si Si

Modelos de grafos

Los grafos son usados en una amplia variedad de modelos, presentaremos unos cuantos modelos
de grafos de diversos campos.

Ejemplo 1. El grafo del traslape del nicho en ecologa. Los grafos son usados en muchos modelos,
incluyendo la interaccin de diferentes especies de animales. Por ejemplo, la competencia entre
especies en un ecosistema puede ser modelado usando el grafo del traslape del nicho. Cada
especie es representada por un vrtice, un arco no dirigido conecta dos vrtices si las dos especies
representadas por esos vrtices compiten (esto es, algn recurso de comida que ellos utilizan es el
mismo). El grafo de la figura 6 modela el ecosistema de un bosque. Podemos ver en el grafo, que
las ardillas y los mapaches compiten, pero los cuervos y las musaraas no.

59
Matemticas Discretas FMAT-L.C.C.

Ejemplo 2. Grafos de influencia. En el estudio de comportamiento de grupos, se observa que


cierta gente puede influenciar en el pensamiento de otros. Un grafo dirigido llamado grado de
influencia puede ser usado para modelar este comportamiento. Cada persona del grupo es
representada por un vrtice. Hay un arco dirigido del vrtice a al vrtice b cuando la persona
representada por a influye en la persona representada por b. La figura 7 muestra un ejemplo de un
grafo de influencia para miembros de un grupo. En el grupo modelado por este grafo de influencia,
Deborah puede influenciar a Brian, Fred y Linda, pero nadie puede influenciarla a ella. Tambin,
Ivonne y Brian pueden influenciarse uno al otro.

Ejemplo 3. Torneos Round-Robin. Un torneo en el que cada equipo juega con otro exactamente
una vez, se llama torneo Round-Robin. Estos torneos pueden ser modelados usando grafos
dirigidos, donde cada equipo es representado por un vrtice. Note que (a, b) es un arco si el equipo
a gana al equipo b. La figura 8 muestra un ejemplo. Note que el equipo 1 est invicto en este
torneo y el equipo 3 no ha ganado ningn encuentro.

Ejemplo 4. Grafos de precedencia y procesamiento concurrente. Los programas de computadora


pueden ser ejecutados ms rpidamente si se ejecutan ciertas instrucciones de manera
concurrente. Es importante no ejecutar una instruccin que requiere del resultado de instrucciones
que no han sido ejecutadas an. La dependencia de instrucciones de otras instrucciones previas
puede ser representada por un grafo dirigido. Cada instruccin puede ser representada por un
vrtice, y hay un arco de un vrtice a otro si la instruccin representada por el segundo vrtice no
puede ser ejecutada antes de que la instruccin representada por el primer vrtice haya sido
ejecutada. Este grafo es llamado grafo de precedencia. La figura 9 muestra un fragmento de un
programa de computadora y su grafo. As, el grafo muestra que la instruccin S5 no puede ser
ejecutada antes que las instrucciones S1, S2 y S4 sean ejecutadas

60
Matemticas Discretas FMAT-L.C.C.

61
Matemticas Discretas FMAT-L.C.C.

Terminologa de grafos

Terminologa Bsica
Primero, daremos alguna terminologa que describe los vrtices y los arcos de los grafos no
dirigidos.

Definicin 1. Dos vrtices, u y v en un grafo no dirigido G se llaman adyacentes (o vecinos) en G,


si {u, v} es un arco de G. Si e = {u, v}, el arco e es llamado incidente con los vrtices u y v. El arco
e es tambin llamado conector de u y v. Los vrtices u y v son llamados puntos terminales del
arco {u, v}.

Para mantener la pista de cuantos arcos son incidentes a un vrtice, daremos la siguiente
definicin

Definicin 2. El grado de un vrtice, en un grafo no dirigido, es el nmero de arcos incidentes en


l, excepto que los lazos (loops) de un vrtice contribuyen en dos al grado de ese vrtice. El grado
de un vrtice es denotado por deg (v).

Ejemplo 1. Cul es el grado de los vrtices en los grafos G y H mostrados en la figura 1?


Solucin.
En G, deg(a) = 2, deg(b) = deg(c) = deg (f) = 4, deg(d) = 1, deg(e) = 3, deg(g) = 0
En H, deg(a) = 4, deg(b) = deg(e) = 6, deg (c) = 1, deg(d) = 5

Un vrtice de grado 0 es llamado aislado. Esto significa que un vrtice aislado no es adyacente a
ningn vrtice. El vrtice g en el grafo G en el ejemplo 1 es aislado. Un vrtice es pendiente si y
solo si es de grado 1. Consecuentemente, un vrtice pendiente es adyacente a exactamente otro
vrtice. El vrtice d en el grafo G del ejemplo1 es pendiente.

Qu obtenemos cuando sumamos los grados de todos los vrtices de un grafo G = (V, E)? Cada
arco contribuye en 2 en la suma de los grados de los vrtices, ya que un arco es incidente con
exactamente dos (posiblemente iguales) vrtices Esto significa que la suma de los grados de los
vrtices es dos veces el nmero de los arcos. Tenemos el siguiente resultado que es llamado

62
Matemticas Discretas FMAT-L.C.C.

algunas veces el teorema de Handshaking (apretn de manos) por la analoga entre los arcos que
tienen dos puntos terminales y el apretn de manos que involucra dos manos.

Teorema 1. El teorema del apretn de manos (handshaking). Sea G = (V, E) un grafo no


dirigido con e arcos. Entonces:

2e = deg(v)
vV

(Ntese que aplica incluso si estn presentes arcos mltiples y lazos (loops))

Ejemplo 2. Cuntos arcos hay en un grafo con 10 vrtices, cada uno de grado 6?
Solucin. Ya que la suma de los vrtices es 6 x 10 = 60, decimos que 2e = 60. As, e = 30

El Teorema 1 muestra que la suma de los grados de los vrtices de un grafo no dirigido es par.
Este simple hecho tiene muchas consecuencias, una de ellas est dada en el Teorema 2.

Teorema 2. Un grafo no dirigido, tiene un nmero par de de vrtices de grado impar.


Demostracin. Sean V1 y V2 el conjunto de vrtices de grado par y el conjunto de vrtices de grado
impar respectivamente, en un grafo no dirigido G = (V, E). Entonces

2e = deg(v) = deg(v) + deg(v)


vV vV1 vV2

Ya que deg(v) es par para v V1, el primer trmino de la parte derecha de la igualdad anterior es
par. Adems, la suma de los dos trminos de la parte derecha de la igualdad es par, ya que la
suma es 2e. As, el segundo trmino de la suma es tambin par. Ya que el todos los trminos en
esta suma son impares, debe haber un nmero par de estos trminos. As, hay un nmero par de
vrtices de grado impar.

Definicin 3. Cuando (u, v) es un arco del grafo G con arcos dirigidos, se dice que u es adyacente
hacia(to) v y v es adyacente desde(from) u. El vrtice u es llamado vrtice inicial de (u, v), y v es
llamado vrtice terminal o final de (u, v). El vrtice inicial y final de un lazo (loop) son el mismo.

Ya que los arcos en un grafo con arcos dirigidos son pares ordenados, la definicin del grado de un
vrtice puede ser refinada para reflejar el nmero de arcos que tienen a ese vrtice como inicial y
el nmero de arcos que los tienen como final.

Definicin 4. En un grafo con arcos dirigidos, el grado entrante (in-degree) de un vrtice v,


denotado por deg-(v), es el nmero de arcos con v como su vrtice Terminal. El grado saliente (out-
degree) de v, denotado por deg+(v), es el nmero de vrtices con v como su vrtice inicial. (Note
que los lazos contribuyen en 1 a ambos, grado entrante y grado saliente de ese vrtice).

63
Matemticas Discretas FMAT-L.C.C.

Ejemplo 3. Encuentra el grado entrante y el grado saliente de cada uno de los vrtices en el grafo
G con arcos dirigidos mostrado en la figura 2.
Solucin. Los grados entrantes en G son deg-(a) = 2, deg-(b) = 2, deg-(c) = 3, deg-(d) = 2, deg-(e) =
3, deg-(f) = 0. Los grados salientes son deg+(a) = 4, deg+(b) = 1, deg+(c) = 2, deg+(d) = 2, deg+(e) =
3, deg+(f) = 0.

Ya que cada arco tiene un vrtice inicial y uno terminal, la suma de los grados entrantes y la suma
de los grados salientes de todos los vrtices en el grafo con arcos dirigidos es la misma. Ambas
sumas son iguales al nmero de arcos en el grafo. Este resultado es manifestado en el siguiente
teorema.

Teorema 3. Sea G = (V, E) un grafo con arcos dirigidos. Entonces

deg
vV

(v) = deg + (v) =| E |
vV

Hay muchas propiedades para los grafos con arcos dirigidos que no dependen de la direccin de
sus arcos. En consecuencia, en ocasiones es conveniente ignorar estas direcciones. El grafo no
dirigido que resulta de ignorar las direcciones de los arcos es llamado el grafo no dirigido
subyacente. Un grafo dirigido y su grafo no dirigido subyacente tienen el mismo nmero de arcos.

Algunos grafos simples especiales

Ahora introduciremos algunos casos de grafos simples. Estos grafos son en ocasiones usados
como ejemplos y sugeridos en muchas aplicaciones.

Ejemplo 4. Grafos completos. El grafo completo de n vrtices, denotado por Kn, es el grafo
simple que contiene exactamente un arco entre cada par de vrtices distintos. Los grafos para n =
1, 2, 3, 4, 5, 6 se muestran en la figura 3

64
Matemticas Discretas FMAT-L.C.C.

Ejemplo 5. Ciclos. El ciclo Cn, n 3, consiste de n vrtices v1, v2, , vn y arcos {v1, v2}, {v2, v3}, ,
{vn-1, vn} y {vn, v1}. Los ciclos C3, C4, C5 y C6 se muestran en la figura 4

Ejemplo 6. Ruedas (wheels). Obtenemos la rueda Wn cuando aadimos un vrtice adicional al


ciclo Cn, para n 3, y conectamos este nuevo vrtice con cada uno de los n vrtices en Cn, por
medio de nuevos arcos. Las ruedas W3, W4, W5 y W6 se muestran en la figura 5

Ejemplo 7. n-Cubos. El n-cubo, denotado por Qn, es el grafo que tiene vrtices que representan
las 2n cadenas de bits de longitud n. Dos vrtices son adyacentes si y solo si las cadenas de bits
que ellos representan difieren en exactamente un bit. Los grafos Q1, Q2 y Q3 se muestran en la
figura 6.

Grafos Bipartitos

65
Matemticas Discretas FMAT-L.C.C.

A veces un grafo tiene la propiedad de que su conjunto de vrtices puede ser dividido en dos
subconjuntos disjuntos tales que cada arco conecta un vrtice de uno de esos subconjuntos a un
vrtice en el otro subconjunto. Por ejemplo, considere el grafo que represente los matrimonios
entre la gente de una villa, donde cada persona es representada por un vrtice y un matrimonio es
representado por un arco. En este grafo, cada arco conecta un vrtice del subconjunto de vrtices
que representan a los hombres con un vrtice del subconjunto de vrtices que representan a las
mujeres. Esto nos da la siguiente definicin.

Definicin 5. Un grafo simple G es llamado bipartito si su conjunto de vrtices V puede ser


particionado en dos conjuntos disjuntos no vacos V1 y V2 tal que cada arco en el grafo conecta un
vrtice en V1 y un vrtice en V2 (de tal forma que no hay un arco en G que conecte ya sea dos
vrtices en V1 o dos vrtices en V2)

En el ejemplo 8 se muestra que C6 es bipartito, en el ejemplo 9 se muestra que K3 es no bipartito.

Ejemplo 8. C6 es bipartito, como se muestra en la figura 7, ya que su conjunto de vrtices puede


ser particionado en los dos conjuntos V1 = {v1, v3, v5} y V2 = {v2, v4, v6} y cada arco de C6 conecta a
un vrtice en V1 y a un vrtice en V2.

Ejemplo 9. K3 no es bipartito. Para ver esto notemos que si dividimos el conjunto de vrtices de K3
en dos conjuntos disjuntos, uno de los dos conjuntos debe contener 2 vrtices. Si el grafo fuera
bipartito, estos dos vrtices no podran estar conectados por un arco, pero en K3, cada vrtice esta
conectado a todos los otros vrtices por medio de un arco.

Ejemplo 10. Son los grafos G y H de la figura 8 bipartitos?


Solucin. El grafo G es bipartito, ya que su conjunto de vrtices es la unin de dos conjuntos
disjuntos, {a, b, d} y {c, e, f, g}, y cada arco conecta un vrtice de uno de los subconjuntos a otro
del otro subconjunto. (Ntese que el hecho de que G sea bipartito no hace necesario que cada
vrtice en {a, b, d} sea adyacente a cada vrtice en {c, e, f, g}. por ejemplo b y g no son
adyacentes).
El grafo H no es bipartito, ya que su conjunto de vrtices no puede ser particionado en dos
subconjuntos de tal forma que los arcos no conecten dos vrtices del mismo subconjunto.

66
Matemticas Discretas FMAT-L.C.C.

Ejemplo 11. Grafos bipartitos completos. El grafo bipartito completo Km,n es el grafo que tiene su
conjunto de vrtices particionado en dos subconjuntos de m y n vrtices, respectivamente. Hay un
arco entre dos vrtices si y solo si un vrtice est en el primer subconjunto y el otro vrtice en el
otro subconjunto. Los grafos bipartitos completos K2,3, K3,3, K3,5 y K2,6 se muestran en la figura 9.

67
Matemticas Discretas FMAT-L.C.C.

Algunas aplicaciones de los tipos especiales de grafos

Se mostrar como los tipos especiales de grafos son usados en modelos de comunicacin de
datos.

Ejemplo 12. Redes de rea local. Las diversas computadoras, tales como minicomputadoras y
computadoras personales, as como dispositivos perifricos tales como impresoras y plotters en un
edificio pueden ser conectadas usando una red de rea local. Algunas de estas redes estn
basadas en una topologa de estrella, donde todos los dispositivos estn conectados a un
dispositivo de control central. Una red de rea local puede ser representada usando un grafo
bipartito completo K1,n, como el que se muestra en la figura 10(a). Los mensajes son enviados de
dispositivo a dispositivo a travs del dispositivo de control central.

Otras redes de rea local estn basadas en una topologa anillo, donde cada dispositivo es
conectado exactamente a otros dos. Las redes de rea local con una topologa de anillo son
modeladas usando n-ciclos, Cn como muestra la figura 10(b). Los mensajes son enviados de
dispositivo a dispositivo a travs del ciclo hasta que se alcanza al receptor que se pretende.

Finalmente, algunas redes de rea local utilizan una topologa hbrida de estas dos topologas. Los
mensajes deben ser enviados a travs del anillo o a travs del dispositivo central. Esta
redundancia hace a la red ms confiable. Las redes de rea local con esta redundancia pueden ser
modeladas usando ruedas (wheels) Wn como se muestra en la figura 10(c).

Grafos nuevos a partir de viejos

Algunas veces necesitamos solo una parte de un grafo para resolver un problema. Por ejemplo,
podemos estar interesados solamente en la parte de una gran red de computadoras que involucra
los centros de cmputo en Nueva York, Denver, Detroit y Atlanta. Entonces podemos ignorar los
otros centros de cmputo y todas las lneas telefnicas que no estn enlazando a dos de estos
cuatro centros de cmputo especficos. En el modelo del grafo de la red grande, podemos remover
los vrtices correspondientes a los centros de cmputo que no representen a alguno de los cuatro
que nos interesan, y podemos remover todos los arcos incidentes con un vrtice que fue removido.

68
Matemticas Discretas FMAT-L.C.C.

Cuando los arcos y los vrtices son removidos de un grafo, sin remover los puntos terminales de
algunos arcos especficos, se obtiene un grafo ms pequeo. Los grafos como estos son llamados
subgrafos del grafo original.

Definicin 6. Un subgrafo de un grafo G = (V, E) es un grafo H = (W, F) donde W V y F E.

Ejemplo 14. El grafo mostrado en la figura 14 es un subgrafo de K5.

Dos o ms grafos pueden ser combinados de varias maneras. El nuevo grafo que contiene todos
los vrtices y arcos de esos grafos es llamado la unin de esos grafos.

Definicin 6. La unin de dos grafos simples G1 = (V1, E1) y G2 = (V2, E2) es el grafo simple con el
conjunto de vrtices V1 V2 y el conjunto de arcos E1 E2. La unin de G1 y G2 es denotada como
G1 G2

Ejemplo 15. Encuentre la unin de los grafos G1 y G2 mostrados en la figura 15(a).


Solucin. El conujunto de vrtices de la unin G1 G2 es la unin de los dos conjuntos de vrtices,
{a, b, c, d, e, f}. El conjunto de arcos es la unin de los dos conjuntos de arcos. La unin se
muestra en la figura 15(b).

Representacin Grafos e Isomorfismo en Grafos

Introduccin
69
Matemticas Discretas FMAT-L.C.C.

Hay muchas formas tiles de representar a los grafos. Al trabajar con un grafo es til ser capaz de
escoger su representacin ms conveniente. Veremos como representar a los grafos de diferentes
maneras.

En ocasiones, dos grafos tienen exactamente la misma forma, en el sentido de que hay una
correspondencia uno a uno entre sus conjuntos de vrtices, lo que preserva los lados. En este
caso decimos que los grafos son isomorfos. Determinar cuando dos grafos son isomorfos, es un
problema importante en teora de grafos y ser estudiado en esta seccin.

Representando Grafos

Una forma de representar a un grafo sin arcos mltiples, es listar todos los arcos del grafo. Otra
forma de representar un grafo sin arcos mltiples es usando listas de adyacencia, que especifican
los vrtices que son adyacentes a cada vrtice del grafo.

Ejemplo 1. Usar listas de adyacencia para describir el grafo simple dado en la figura 1.
Solucin. La tabla 1 lista aquellos vrtices que son adyacentes a cada vrtice del grafo.

Ejemplo 2. Representar el grafo dirigido mostrado en la figura 2 listando todos los vrtices que son
los vrtices terminales de arcos que comienzan en cada vrtice del grafo.
Solucin. La tabla 2 representa el grafo dirigido de la figura 2.

70
Matemticas Discretas FMAT-L.C.C.

Matrices de Adyacencia

Seguir los algoritmos de grafos usados en la representacin de grafos con listas de arcos, o por
listas de adyacencia, puede ser difcil si hay muchos arcos en el grafo. Para simplificar el clculo,
los grafos pueden ser representados usando matrices. Un tipo de matriz comnmente usada est
basada en la adyacencia de los vrtices, otra est basada en la incidencia de los vrtices y los
arcos.

Suponga que G = (V, E) es un grafo simple donde |V| = n. Suponga que los vrtices de G estn
listados arbitrariamente como v1, v2, , vn. La matriz de adyacencia (o AG) de G, con respecto a
esta lista de vrtices, es la matriz de ceros y unos de n x n con unos sus las posiciones (i, j) donde
vi y vj son adyacentes, y ceros en sus posiciones (i, j), cuando vi y vj no son adyacentes. En otras
palabras, si su matriz de adyacencia es A = [ai,j], entonces:

ai,j = 1 si {vi,,vj} es un arco de G


0 en otro caso

Note que una matriz de adyacencia de un grafo est basada en el ordenamiento escogido para los
vrtices. As, hay n! matrices de adyacencia diferentes para un grafo con n vrtices.

La matriz de adyacencia de un grafo simple es simtrica, esto es, ai,j = aj,i, ya que ambas entradas
son 1 cuando vi y vi son adyacentes, y ambas son 0 en otro caso. Adems, ya que un grafo simple
no tiene lazos, cada entrada ai,j, i = 1, 2, 3, , n es 0.

Ejemplo 3. Use una matriz de adyacencia para representar el grafo mostrado en la figura 3.
Solucin. Ordenamos los vrtices como a, b, c, d. La matriz que representa a este grafo es:

71
Matemticas Discretas FMAT-L.C.C.

Ejemplo 4. Dibuja un grafo con la matriz de adyacencia:

Tomando los vrtices en orden como a, b, c, d.


Solucin. La figura 4 muestra un grafo con esta matriz de adyacencia.

Las matrices de adyacencia pueden ser usadas tambin para representar grafos no dirigidos con
lazos y arcos mltiples. Un lazo en el vrtice ai es representado por un 1 en la posicin (i, i) de la
matriz de adyacencia. Cuando los arcos mltiples estn presentes, la matriz de adyacencia ya no
es una matriz de ceros y unos, sino que la entrada (i, j) de esta matriz es igual al nmero de arcos
que estn asociados a {vi, vj}. Todos los grafos no dirigidos, incluyendo los multigrados y
pseudografos, tienen matrices de adyacencia simtricas.

Ejemplo 5. Use una matriz de adyacencia para representar al pseudografo de la figura 5.


Solucin. Ordenamos los vrtices como a, b, c, d. La matriz que representa a este grafo es:

72
Matemticas Discretas FMAT-L.C.C.

La matriz para un grafo dirigido G = (V, E) tiene un 1 en su posicin (i, j) si hay un arco de vi hacia
vj donde v1, v2, , vn es una lista arbitraria de los vrtices del grafo dirigido. En otras palabras, si A
= [ai,j] es la matriz de adyacencia para el grafo dirigido con respecto a esta lista de vrtices,
entonces

ai,j = 1 si {vi,,vj} es un arco de G


0 en otro caso

La matriz de adyacencia de un grafo dirigido no tiene que ser simtrica, ya que no tiene que haber
un arco de vj a vi cuando hay un arco de vi a vj.

Las matrices de adyacencia pueden tambin ser usadas para representar multigrados dirigidos. De
nuevo, tales matrices no son matrices de ceros y uno cuando hay arcos mltiples en la misma
direccin conectando dos vrtices. En la matriz de adyacencia para un multigrado dirigido, ai,j es
igual al nmero de arcos asociados a (vi, vj)

Matrices de Incidencia

Otra manera comn de representar a los grafos es usando matrices de incidencia. Sea G = (V, E)
un grafo no dirigido. Suponga que v1, v2, , vn son los vrtices y e1, e2, , em son los arcos de G.
Entonces la matriz de incidencia con respecto a este ordenamiento de V y E es la matriz de n x m
M = [mi,j] donde:

mi,j = 1 cuando el arco ej es incidente con vi


0 en otro caso

Ejemplo 6. Representa el grafo mostrado en la figura 6 con una matriz de incidencia.


Solucin. La matriz de incidencia es

73
Matemticas Discretas FMAT-L.C.C.

Las matrices de incidencia pueden tambin ser usadas para representar arcos mltiples y lazos.
Los arcos mltiples son representados en la matriz de incidencia usando columnas con entradas
idnticas, cuando estos arcos son incidentes con el mismo par de vrtices. Los lazos son
representados usando una columna con exactamente una entrada igual a 1, correspondiendo al
vrtice que es incidente con este lazo.

Ejemplo 7. Represente el pseudografo mostrado en la figura 7 usando una matriz de incidencia.


Solucin. La matriz de incidencia para este grafo es:

Isomorfismo de grafos

Con frecuencia se necesita conocer si es posible dibujar dos grafos de la misma manera. Por
ejemplo, en qumica, los grafos son utilizados para modelar compuestos. Diferentes compuestos
pueden tener la misma frmula molecular pero pueden diferir en estructura. Tales compuestos,
sern representados por grafos que no pueden ser dibujados de la misma forma. Los grafos que
representan los compuestos previamente conocidos pueden ser usados para determinar si un
compuesto supuestamente nuevo ha sido estudiado antes.

Definicin 1. Los grafos simples G1 = (V1, E1) y G2 = (V2, E2) son isomorfos, si hay un funcin f
uno a uno de V1 a V2 con la propiedad de que a y b son adyacentes en G1 si y solo si f(a) y f(b) son
adyacentes en G2, para todas las a y b en V1. Tal funcin f es llamada un isomorfismo.

En otras palabras, cuando dos grafos simples son isomorfos, hay una correspondencia uno a uno
entre los vrtices de los dos grafos que preserva la relacin de adyacencia.
74
Matemticas Discretas FMAT-L.C.C.

Ejemplo 8. Muestra que los grafos G = (V, E) y H = (W, F) mostrados en la figura 8 son isomorfos.

Solucin. La funcin f con f(u1) = v1 , f(u2) = v4, f(u3) = v3 y f(u4) = v2 es una correspondencia uno a
uno entre V y W. Para ver que esta correspondencia preserva la relacin de adyacencia note que
los vrtices adyacentes en G son u1 y u2, u1 y u3, u2 y u4, y u3 y u4, y cada uno de los pares f(u1) =
v1 y f(u2) = v4, f(u1) = v1 y f(u3) = v3, f(u2) = v4 y f(u4) = v2, y f(u3) = v3 y f(u4) = v2 son adyacentes en
H.
Con frecuencia es difcil determinar si dos grafos simples son isomorfos. Hay n! posibles
correspondencias uno a uno entre los conjuntos de vrtices de dos grafos simples con n vrtices.
Probar cada una de las correspondencias posibles para ver si stas preservan la adyacencia y la
no adyacencia es impractico si n es muy grande.

Sin embargo, podemos con frecuencia mostrar que dos grafos no son isomorfos mostrando que
ellos no comparten una propiedad que debe tener un par de grafos simples isomorfos. Esta
propiedad es llamada una invariante (invariant) con respecto al isomorfismo de los grafos
simples. Por ejemplo, los grafos simples isomorfos deben tener el mismo nmero de vrtices, ya
que existe una correspondencia uno a uno entre los conjuntos de vrtices de los grafos. Adems,
los grafos simples isomorfos deben tener el mismo nmero de arcos, porque la correspondencia
uno a uno de los vrtices establece una correspondencia uno a uno entre los arcos. Adems, los
grados de los vrtices de los grafos simples isomorfos deben ser los mismos. Esto es, un vrtice v
de grado d en G debe corresponder a un vrtice f(v) de grado d en H, ya que un vrtice w en G es
adyacente a v si y solo si f(v) y f(w) son adyacentes en H.

Ejemplo 9. Muestre que los grafos mostrados en la figura 9 no son isomorfos.

75
Matemticas Discretas FMAT-L.C.C.

Solucin. Tanto G como H tienen cinco vrtices y seis arcos. Sin embargo H tiene un vrtice de
grado 1, llamado e, mientras que G no tiene vrtices de grado 1. Esto indica que G y H no son
isomorfos.
--
El nmero de vrtices, el nmero de arcos, y los grados de los vrtices, son todos invariantes en el
isomorfismo. Si alguna de estas cantidades difiere en dos grafos simples, esos grafos no pueden
ser isomorfos. Sin embargo, cuando estas invariantes son las mismas, no necesariamente significa
que los dos grafos son isomorfos. No hay conjuntos tiles de invariantes actualmente conocidos
que puedan ser usados para determinar si dos grafos simples son isomorfos.
Ejemplo 10. Determine si los grafos mostrados en la figura 10 son isomorfos.

Solucin. Los grafos G y H tienen ambos 8 vrtices y 10 arcos. Tambin tienen 4 vrtices de grado
2 y 4 de grado 3. Ya que todas estas invariantes concuerdan, existe todava la posibilidad de que
los grafos sean isomorfos.

Sin embargo, G y H no son isomorfos, para ver esto note que, deg(a) = 2 en G implica que a debe
corresponder a alguno de los vrtices t, u, x o y en H, ya que estos son vrtices de grado 2 en H.
Sin embargo, cada uno de estos 4 vrtices en H es adyacente a otro vrtice de grado 2 en H, lo
que no ocurre con a en G.

Otra forma de ver que G y H no son isomorfos, es notar que los subgrafos de G y H construidos
con los vrtices de grado 3 y los arcos que los conectan deben ser isomorfos si G y H lo son. Sin
embargo, estos subgrafos, mostrados en la figura 11, no son isomorfos.

76
Matemticas Discretas FMAT-L.C.C.

Para mostrar que una funcin f del conjunto de vrtices de un grafo G al conjunto de vrtices del
grafo H es un isomorfismo, necesitamos mostrar que f preserva los arcos. Una forma muy til de
hacer esto es usando las matrices de adyacencia. En particular, para mostrar que es un
isomorfismo, podemos mostrar que la matriz de adyacencia de G es la misma que la matriz de
adyacencia de H, cuando las filas y columnas de la matriz de adyacencia de H son etiquetadas
para corresponder con las imgenes de f (al ser evaluada con los vrtices de G, que son las
etiquetas de las filas y las columnas en la matriz de adyacencia de G).

Ejemplo 11. Determine si los grafos G y H mostrados en la figura 12 son isomorfos.

Solucin. Tanto G como H tienen 6 vrtices y 7 arcos. Ambos tienen 4 vrtices de grado 2 y 2
vrtices de grado 3. Es fcil ver que los subgrafos de G y H consistentes de todos los vrtices de
grado 2 y los arcos que los conectan son isomorfos. Ya que H y G concuerdan con estas
invariantes, es razonable tratar de encontrar un isomorfismo f.

Ahora definiremos una funcin f y entonces determinaremos si es un isomorfismo. Ya que deg(u1)


= 2 y u1 no es adyacente a ningn otro vrtice de grado 2, la imagen de u1 puede ser ya sea v4 o
v6, los nicos vrtices de grado 2 en H que no son adyacentes a otro vrtice de grado 2.
Arbitrariamente escogemos f(u1) = v6 (si vemos que con esta eleccin no se genera un
isomorfismo, podramos intentar con f(u1) = v4). Ya que u2 es adyacente a u1, las posibles
imgenes de u2 son v3 y v5. Arbitrariamente escogemos f(u2) = v3. Continuando de esta manera,
77
Matemticas Discretas FMAT-L.C.C.

usamos la adyacencia de los vrtices y los grados como una gua. Hacemos f(u3) = v4, f(u4) = v5,
f(u5) = v1 y f(u6) = v2. Ahora tenemos una correspondencia uno a uno entre el conjunto de vrtices
de G y el conjunto de vrtices de H, que es: f(u1) = v6, f(u2) = v3, f(u3) = v4, f(u4) = v5, f(u5) = v1 y f(u6)
= v2.

Para ver se f preserva los arcos, examinamos la matriz de adyacencia de G,

Y la matriz de adyacencia de H con las filas y las columnas etiquetadas con las imgenes de los
vrtices correspondientes en G,

Ya que AG = AH, decimos que f preserva los arcos. Concluimos que f es un isomorfismo, as que G
y H son isomorfos. Note que si f resulta no ser un isomorfismo, no habramos establecido que G y
H no son isomorfos, ya que otra correspondencia de los vrtices en G y H puede ser un
isomorfismo.

Conectividad
Introduccin

Muchos problemas pueden ser modelados con caminos (paths) formados por viajar o moverse a
travs de los arcos de los grafos. Por ejemplo, el problema de determinar si un mensaje puede ser
enviado entre dos computadoras usando enlaces intermedios puede ser estudiado con un modelo
de grafo. Los problemas de planeacin de rutas de manera eficiente, para reparto de correo, la
recoleccin de basura, diagnsticos en una red de computadoras, etctera, pueden ser resueltos
usando modelos de grafos que involucren caminos en los grafos.

78
Matemticas Discretas FMAT-L.C.C.

Caminos (Paths)
Comencemos definiendo la terminologa bsica de teora de grafos para tratar a los grafos.

Definicin 1. Un camino de longitud n de u a v, donde n es un entero positivo, en un grafo no


dirigido, es una secuencia de arcos e1, , en del grafo tal que f(e1) = {x0, x1}, f(e2) = {x1, x2}, , f(en)
= {xn-1, xn}, donde x0 = u y xn = v. Cuando el grafo es simple, denotamos este camino con su
secuencia de vrtices x0, x1, , xn (ya que listando los vrtices se determina de manera nica el
camino). El camino es un circuito si comienza y termina en el mismo vrtice, esto es si u = v. El
camino o circuito se dice que pasa a travs o atraviesa los vrtices x1, x2, , xn-1. Un camino o
circuito es simple si no contiene el mismo arco ms de una vez.

Cuando no es necesario distinguir entre arcos mltiples, denotaremos el camino e1,e2, , en donde
f(ei) = {xi-1, xi} para i = i, 2, , n por su lista de vrtices x0, x1, , xn. Esta notacin identifica un
camino solamente con los vrtices sobre los que pasa. Puede haber ms de un camino que pase a
travs de esta secuencia de vrtices.

Ejemplo1. En el grafo simple mostrado en la figura1, a, d, c, f, e es un camino simple de longitud 4,


ya que {a, d}, {d, c}, {c, f} y {f, e} son todos arcos. Sin embargo, d, e, c, a, no es un camino, ya que
{e, c} no es un arco. Note que b, c, f, e, b es un circuito de longitud 4 ya que {b, c}, {c, f}, {f, e} y {e,
b} son arcos y este camino comienza y termina en b. El camino a, b, e, d, a, b, de longitud 5, no es
simple, ya que contiene al arco {a, b} dos veces.

Definicin 2. Un camino de longitud n, donde n es un entero positivo, de u a v en un multigrafo


dirigido es una secuencia de arcos e1,e2, , en del grafo tal que f(e1) = (x0, x1), f(e2) = (x1, x2), ,
f(en) = (xn-1, xn), donde x0 = u y xn = v. Cuando no hay arcos mltiples en el grafo, este camino es
denotado por su secuencia de vrtices x0, x1, , xn. Un camino que comienza y termina en el
mismo vrtice se llama circuito o ciclo. Un camino o circuito es llamado simple si ste no
contiene el mismo arco ms de una vez.

Cuando no es necesario distinguir entre arcos mltiples, denotaremos un camino e1, e2, , en
donde f(ei) = (xi-1, xi) para i = 1, 2, , n por su lista de vrtices x0, x1, , xn. Esta notacin identifica
un camino solamente con los vrtices sobre los que pasa. Puede haber ms de un camino que
pase a travs de esta secuencia de vrtices.

79
Matemticas Discretas FMAT-L.C.C.

Conexiones en grafos no dirigidos

Cundo una red de computadoras tiene la propiedad de que cada par de computadoras puede
compartir informacin, si los mensajes pueden ser enviados a travs de una o ms computadoras
intermedias? Cuando un grafo es usado para representar esta red de computadoras, donde los
vrtices representan las computadoras y los arcos representan los enlaces de comunicacin, esta
pregunta se convierte en: Cundo existe siempre un camino entre dos vrtices en el grafo?

Definicin 3. Un grafo no dirigido se llama conectado si existe un camino entre cada par de
vrtices distintos en el grafo.

Entonces, cualquier par de computadoras en la red pueden comunicarse si y solo si el grafo de esa
red es conectado.

Ejemplo 2. El grafo G en la figura 2 es conectado, ya que para cada par de vrtices distintos existe
un camino entre ellos. Sin embargo, el grafo H en la figura 2 no es conectado. Por ejemplo, no
existe un camino en H entre los vrtices a y d.

Teorema 1. Existe un camino simple entre cada par de vrtices distintos en un grafo no dirigido
conectado.
Demostracin. Sean u y v dos vrtices distintos del grafo no dirigido conectado G = (V, E). Ya que
G es conectado, existe al menos un camino entre u y v. Sea x0, x1, , xn, donde x0 = u y xn = v la
secuencia de vrtices de un camino de longitud mnima. Este camino de longitud mnima es simple.
Para ver esto, suponga que no es simple. Entonces xi = xj para alguna i y j con 0 i < j. Esto
significa que existe un camino de u a v de longitud mnima con la secuencia de vrtices x0, x1, ,
xi-1,xj, , xn obtenido de borrar los arcos correspondientes a la secuencia de vrtices xi, , xj-1.
---

80
Matemticas Discretas FMAT-L.C.C.

Un grafo que no es conectado, es la unin de dos o ms subgrafos conectados, cada par de estos
no tienen vrtices en comn. Estos subgrafos conectados desarticulados (no conectados entre si)
son llamados componentes conectados del grafo.

Ejemplo 3. Cules son los componentes conectados del grafo G mostrado en la figura 3?
Solucin. El grafo G es la unin de 3 subgrafos conectados desarticulados, G1, G2 y G3, mostrados
en la figura 3. Estos 3 subgrafos, son los componentes conectados de G.

Algunas veces, el remover un vrtice y todos los arcos incidentes en l produce un subgrafo con
ms componentes conectados que el grafo original. Los vrtices como estos son llamados vrtices
de corte (o puntos de articulacin). Al remover un vrtice de corte de un grafo conectado se
produce un subgrafo que es no conectado. Anlogamente, un arco que al ser removido produce un
grafo con ms componentes conectados que el grafo original se llama arco de corte o puente.

Ejemplo 4. Encontrar los vrtices de corte y los arcos de corte en el grafo G de la figura 4.

Solucin. Los vrtices de corte de G son b, c y e. El remover uno de estos (y sus arcos
adyacentes) vrtices desconecta el grafo. Los arcos de corte son {a, b} y {c, e}. Remover uno
cualquiera de ellos desconecta a G.

Conexiones en grafos dirigidos


Existen dos nociones de conexiones en grafos dirigidos, dependiendo de si son consideradas las
direcciones de los arcos.

81
Matemticas Discretas FMAT-L.C.C.

Definicin 4. Un grafo dirigido, est fuertemente conectado si existe un camino de a a b y de b a


a, donde a y b son vrtices del grafo.

Para que un grafo dirigido este fuertemente conectado, debe haber una secuencia de arcos
dirigidos de un vrtice cualquiera a otro vrtice cualquiera del grafo. Un grafo dirigido puede no ser
fuertemente conectado pero continuar siendo una pieza. Para hacer esto ms preciso se da la
siguiente definicin.

Definicin 4. Un grafo dirigido, est dbilmente conectado, si existe un camino entre cuales
quiera dos vrtices del grafo no dirigido subyacente.

Esto es, un grafo dirigido est dbilmente conectado si y solo si existe siempre un camino entre
dos vrtices cuando las direcciones de los arcos desaparecen. Claramente, cualquier grafo dirigido
fuertemente conectado est tambin dbilmente conectado.

Ejemplo 5. Estn los grafos dirigidos G y H mostrados en la figura 5 fuertemente conectados?


Estn dbilmente conectados?

Solucin. G est fuertemente conectado, porque hay un camino entre cualesquiera dos vrtices en
este grafo dirigido. As, G est tambin dbilmente conectado. El grafo H no est fuertemente
conectado. No existe un camino dirigido de a a b en este grafo. Sin embargo H est dbilmente
conectado, ya que existe un camino entre cualesquiera dos vrtices en el grafo no dirigido
subyacente de H.

Caminos e Isomorfismo

Hay muchas formas de que los caminos y los circuitos nos puedan ayudar a determinar si dos
grafos son isomorfos. Por ejemplo, la existencia de un circuito simple de una longitud particular es
una invariante til que puede ser usada para mostrar que dos grafos no son isomorfos.
Como hemos mencionado, una invariante de isomorfismo til para grafos simples es la existencia
de un circuito simple de longitud k, donde k es un entero positivo mayor que 2.

82
Matemticas Discretas FMAT-L.C.C.

Ejemplo 6. Determine si los grafos G y H de la figura 6 son isomorfos.

Solucin. Tanto G como H tienen seis vrtices y ocho arcos. Cada uno tiene cuatro vrtices de
grado 3 y dos vrtices de grado 2. As, estas tres invariantes concuerdan para los dos grafos. Sin
embargo H tiene un circuito simple de longitud 3, llamado v1, v2, v6, v1 mientras que G no tiene un
circuito simple de longitud 3, que puede ser visto inspeccionando el grafo (todos los circuitos
simples en G tienen al menos longitud 4). Ya que la existencia de un circuito de longitud 3 es una
invariante de isomorfismo, G y H no son isomorfos.

Hemos mostrado como la existencia de un tipo de camino, llamado un circuito simple de una
longitud particular puede ser usado para mostrar que dos grafos no son isomorfos. Podemos usar
tambin caminos para encontrar mapeos que son isomorfismos potenciales.

Contando caminos entre vrtices

El nmero de caminos entre dos vrtices en un grafo puede ser determinado usando su matriz de
adyacencia.

Teorema 2. Sea G un grafo con la matriz de adyacencia A con respecto al orden v1, v2, , xn (Con
arcos dirigidos o no dirigidos, con arcos mltiples y lazos permitidos). El nmero de caminos
diferentes de longitud r de vi a vj, donde r es un entero positivo, es igual a la entrada (i, j) de Ar.

Demostracin. El teorema se prueba por induccin matemtica. Sea G un grafo con matriz de
adyacencia A (asumamos un orden v1, v2, , xn de vrtices de G). El nmero de caminos de vi a vj
de longitud 1 es la entrada (i, j) de A, ya que esta entrada es el numero de arcos de vi a vj.

Asumamos que la entrada (i, j) de Ar es el nmero de caminos diferentes de longitud r de vi a vj.


Esta es la hiptesis de induccin. Ya que Ar+1=ArA, la entrada (i, j) de Ar+1 es bi1a1j + bi2a2j + +

83
Matemticas Discretas FMAT-L.C.C.

binanj donde bik es la entrada (i, k) de Ar. Por la hiptesis de induccin, bik es el nmero de caminos
de longitud r de vi a vk.

Un camino de longitud r+1 de vi a vj est formado de un camino de longitud r de vi a algn vrtice


intermedio vk y un arco de vk a vj. Por la regla del producto para el conteo, el nmero de estos
caminos es el producto del nmero de caminos de longitud r de vi a vk, llamado bik, y el nmero de
arcos de vk a vj, llamado akj. Cuando estos productos son sumados para todos los posibles vrtices
vk, el resultado deseado se obtiene por la regla de la suma para contar.

Ejemplo 8. Cuantos caminos de longitud 4 hay de a a d en el grafo simple G mostrado en la figura


8?

Solucin. La matriz de adyacencia de G (ordenando los vrtices como a, b, c, d) es

As, El nmero de caminos de longitud 4 de a a d es el valor de la entrada (1, 4) de A4.

Hay exactamente ocho caminos de longitud 4 de a a d. Inspeccionando el grafo, podemos ver que
los ocho caminos de a a d son: a, b, a, b, d; a, b, a, c, d; a, b, d, b, d; a, b, d, c, d; a, c, a, b, d; a,
c, a, c, d; a, d, b, d; a, c, d, c, d.

El teorema 2 puede ser usado para encontrar la longitud del camino ms corto entre dos vrtices
de un grafo, tambin puede ser usado para determinar si un grafo est conectado.

84
Matemticas Discretas FMAT-L.C.C.

Caminos de Euler y Hamilton

Introduccin

El pueblo de Knigsberg, Prusia, estaba dividido en cuatro secciones por las ramas del ro Pregel.
Estas cuatro secciones, incluan las dos regiones de las orillas del Pregel, la isla Kneiphof, y la
regin entre las dos orillas del ro. En el siglo XVIII, siete puentes conectaban estas regiones. La
figura 1 ilustra las regiones y los puentes.

La gente del pueblo realizaba largas caminatas los domingos. Ellos se preguntaban si era posible
comenzar en un lugar del pueblo y pasar a travs de todos los puentes sin cruzar un puente dos
veces y retornar al lugar donde se comenz.

El matemtico suizo Leonhard Euler resolvi este problema. Su solucin publicada en 1736, pudo
ser el primer uso de la teora de grafos. Euler estudi el problema usando el multigrafo obtenido
cuando las cuatro regiones son representadas por vrtices y los puentes por arcos. Este multigrafo
se muestra en la figura 2.

85
Matemticas Discretas FMAT-L.C.C.

El problema de recorrer todos los puentes sin cruzar ninguno ms de una vez puede ser repasado
en trminos de este modelo. La pregunta se transforma en: existe un circuito simple en este
multigrafo que contenga a cada arco?

Definicin 1. Un circuito de Euler en un grafo G es un circuito simple que contiene a cada arco
de G. Un camino de Euler es un camino simple que contiene a cada arco de G.

Ejemplo 1. Cul de los grafos no dirigidos de la figura 3 tiene un circuito de Euler? En el caso de
no tener, cul tiene un camino de Euler?

Solucin. El grafo G1 tiene un circuito de Euler, por ejemplo a, e, c, d, e, b, a. Ninguno de los grafos
G2 o G3 tiene un circuito de Euler. Sin embargo, G3 tiene un camino de Euler, llamado a, c, d, e, b,
d, a, b. G2 no tiene un camino de Euler.

Ejemplo 2. Cul de los grafos dirigidos de la figura 4 tiene un circuito de Euler? En el caso de no
tener, cul tiene un camino de Euler?

Solucin. EL grafo H2 tiene un circuito de Euler, por ejemplo a, g, c, b, g, e, d, f, a. Ninguno de los


grafos H2 o H3 tiene un circuito de Euler. H3 tiene un camino de Euler llamado c, a, b, c, d, b, pero
H1 no tiene.

86
Matemticas Discretas FMAT-L.C.C.

Condiciones necesarias y suficientes para los caminos y circuitos de Euler

Existen criterios simples para determinar cuando un multigrafo tiene un circuito de euler o un
camino de Euler. Euler los descubri cuando resolvi el famoso problema de los puentes de
Knisberg. Asumiremos que todos los grafos discutidos en esta seccin tienen un nmero finito de
vrtices y arcos.

Qu podemos decir si un multigrafo conectado tiene un circuito de Euler? Algo que podemos
mostrar es que cada vrtice debe tener grado par. Para hacer esto, primero notemos que un
circuito de Euler comienza con un vrtice a y contina con un arco incidente en a, digamos {a, b}.
El arco {a, b} contribuye en uno a deg(a). Cada vez que un circuito pasa a travs de un vrtice,
contribuye en 2 a su grado, ya que el circuito entra va un arco incidente en este vrtice y lo
abandona va otro arco. Finalmente, el circuito termina donde comenz, contribuyendo en 1 a
deg(a). Entonces, deg(a) debe ser par, porque el circuito contribuye en 1 cuando comienza, en 1
cuando termina y en 2 cada vez qua pasa a travs de a (si es que pasa). Un vrtice distinto de a
tiene un grado par, ya que el circuito contribuye en 2 a su grado cada vez que pasa a travs del
vrtice. Concluimos que si un grafo conectado tiene un circuito de Euler, cada uno de sus vrtices
debe tener un grado par.

Esta condicin, que es necesaria para la existencia de un circuito de Euler, es tambin suficiente?
Esto es, debe existir un circuito de Euler en un multigrafo conectado si todos sus vrtices tienen
grado par? Esta pregunta puede ser respondida de manera afirmativa con una explicacin.

Suponga que G es un multigrafo conectado y el grado de cada vrtice de G es par. Formaremos un


circuito simple que comience en un vrtice arbitrario a de G. Hagamos x0 = a. Primero escojamos
arbitrariamente un arco {x0, x1} incidente con a. Continuemos con la construccin de un camino
simple {x0, x1}, {x1, x2}, , {xn-1, xn} tan largo como sea posible. Por ejemplo, en el grafo G de la
figura 5 comencemos con a y escojamos en sucesin los arcos {a, f}, {f, c}, {c, b}, y {b, a}.

El camino termina, puesto que el grafo tiene un nmero finito de arcos. ste comienza en a con un
arco de la forma {a, x}, y termina en a con un arco de la forma {y, a}. Esto se puede ya que cada

87
Matemticas Discretas FMAT-L.C.C.

vez que el camino pasa a travs de un vrtice con grado par, este usa solo un arco para entrar a
este vrtice, as que al menos sobra un arco para que el camino abandone el vrtice. Este camino
puede usar todos los arcos, o puede no hacerlo.

Se ha construido un circuito de Euler si todos los arcos han sido usados. De otra forma, considere
el subgrafo H obtenido de G al borrar los arcos ya usados y los vrtices que no son incididos por
ningn arco sobrante. Cuando borramos el circuito a, f, c, b, a del grafo en la figura 5, obtenemos
el subgrafo etiquetado como H.

Ya que G est conectado, H tiene al menos un vrtice en comn con el circuito que ha sido
borrado. Sea w ese vrtice (en nuestro ejemplo, es el vrtice c)

Cada vrtice en H tiene grado par (porque en G todos los vrtices tienen grado par, y para cada
vrtice, se han borrado pares de arcos incidentes con este vrtice para formar H). Note que H no
puede estar conectado. Comenzando con w, construyamos un camino simple en H, escogiendo
arcos, tan largo como sea posible, como fue hecho en G. Este camino debe terminar en w. Por
ejemplo, en la figura 5, c, d, e, c es un camino en H. A continuacin, formemos un circuito en G
para encajar el circuito en H con el circuito original en G (esto puede ser hecho ya que w es uno de
los vrtices en este circuito). Cuando esto este hecho en el grafo de la figura 5, obtenemos el
circuito a, f, c, d, e, c, b, a.

Continuemos este proceso hasta que todos los arcos hayan sido usados (el proceso debe terminar,
ya que existe un nmero finito de arcos en el grafo). Esto produce un circuito de Euler. La
construccin muestra que si todos los vrtices de un multigrado conectado tienen grado par,
entonces el grafo tiene un circuito de Euler.

Teorema 1. Un multigrado conectado tiene un circuito de Euler, si y solo si sus vrtices tienen
grado par.

Ahora podemos resolver el problema de los puentes de Knigsberg. Ya que el multigrafo que
representa a los puentes, mostrado en la figura 2, tiene cuatro vrtices de grado impar, este no
tiene un circuito de Euler. No hay manera de comenzar en un punto dado, recorrer cada puente
exactamente una vez, y regresar al punto de inicio.

El algoritmo 1 nos da un procedimiento constructivo para encontrar circuitos de Euler. (ya que los
circuitos en el procedimiento son escogidos de manera arbitraria, hay cierta ambigedad).

88
Matemticas Discretas FMAT-L.C.C.

Ejemplo 3. Muchos acertijos nos piden que dibujemos una figura con un movimiento continuo sin
levantar el lpiz de tal forma que ninguna parte de la figura sea repintada. Podemos resolver
adivinanzas de este tipo usando circuitos y caminos de Euler. Por ejemplo, pueden los sables
curvos mostrados en la figura 6 ser dibujados de esta forma, donde el dibujo comienza y termina
en el mismo punto?

Solucin: Podemos resolver este problema, ya que el grafo G mostrado en la figura 6 tiene un
circuito de Euler. Este tiene precisamente un circuito, puesto que todos sus vrtices tienen grado
par. Podemos usar el algoritmo 1 para construir un circuito de Euler. Primero, formemos el circuito
a, b, d, c, b, e, i, f, e, a. Obtenemos el subgrafo H borrando los arcos en este circuito y todos los
vrtices que queden aislados cuando borremos los arcos. Entonces formamos el circuito d, g, h, j, i,
h, k, g, f, d en H. Luego de formar este circuito, habremos usado todos los arcos en G.
Acomodando este nuevo circuito dentro del primer en el lugar adecuado produce el circuito de
Euler: a, b, d, g, h, j, i, h, k, g, f, d, c, b, e, i, f, e, a. este circuito nos muestra una forma de dibujar
los sables sin levantar el lpiz o repintar parte de la figura.

Teorema 2. Un multigrafo conectado, tiene un camino de Euler pero no un circuito de Euler si y


solo si tiene exactamente dos vrtices de grado impar.

Ejemplo 4. Cuales de los grafos mostrados en la figura 7 tienen un camino de Euler?

89
Matemticas Discretas FMAT-L.C.C.

Solucin. G1 contiene exactamente dos vrtices de grado impar, llamados b y d. As, ste tiene un
camino de Euler que puede tener a b o a d como vrtices finales. Uno de estos caminos de Euler
es d, a, b, d, b. De manera similar, G2 tiene exactamente dos vrtices de grado impar, llamados b y
f. As, este tiene un camino de Euler puede tener a b o a f como vrtices finales. Uno de estos
caminos de Euler es b, a, g, f, e, d, c, g, b, c, f. G3 no tiene un camino de Euler, ya que tiene seis
vrtices de grado impar.

Caminos y circuitos de Hamilton

Hemos visto las condiciones necesarias y suficientes para la existencia de circuitos y caminos que
contienen cada arco de un multigrafo exactamente una vez. Podemos hacer lo mismo para
circuitos y caminos simples que contienen cada vrtice exactamente una vez?

Definicin 1. Un camino x0, x1,, xn-1, xn en el grafo G = (V, E) es llamado un camino de Hamilton
si V = {x0, x1,, xn-1, xn} y xi xj para 0 i < j n. Un circuito x0, x1,, xn-1, xn, x0 con (n > 1) en un
grafo G = (V, E) es llamado un circuito de Hamilton si x0, x1,, xn-1, xn es un camino de Hamilton.

Esta terminologa proviene de un juego inventado en 1857 por el matemtico irlands Sir William
Rowan Hamilton. El juego de Hamilton consista en un dodecaedro de madera (un polinomio con
doce caras en forma de pentgonos regulares, como se muestra en la figura 8a), con una tachuela
en cada vrtice del dodecaedro y un hilo. Los 20 vrtices del dodecaedro eran etiquetados con
diferentes ciudades del mundo. El objetivo del juego era comenzar en una ciudad y viajar a travs
de las aristas del dodecaedro, visitando cada una de las otras 19 ciudades exactamente una vez, y
terminar en la misma ciudad en la que se comenz. El circuito viajado era marcado usando el hilo y
las tachuelas.

90
Matemticas Discretas FMAT-L.C.C.

Ya que no podemos hacer que cada lector tenga un dodecaedro de madera con tachuelas y un
hilo, consideremos esta pregunta equivalente: existe un circuito en el grafo mostrado en la figura
8b que pase a travs de cada vrtice exactamente una vez? Esto resuelve el juego, ya que este
grafo es isomorfo al grafo formado por los vrtices y las aristas del dodecaedro. La figura 9 muestra
una solucin al juego de Hamilton.

Ejemplo 5. Cul de los grafos simples de la figura 10 tiene un circuito de Hamilton, o en caso de
no tenerlo, cul tiene un camino de Hamilton?

Solucin. G1 tiene un circuito de Hamilton: a, b, c, d, e, a. No hay un circuito de Hamilton en G2


(esto puede verificarse, notando que cualquier circuito que contenga a todos los vrtices debe
contener al arco {a, b} dos veces), pero G2 tiene un camino de Hamilton, llamado a, b, c, d. G3 no
tiene ni un circuito ni un camino de Hamilton, ya que ningn camino que contenga todos los
vrtices debe contener uno de los arcos {a, b}, {e, f}, y {c, d} ms de una vez.

Existe una manera simple de determinar cuando un grafo tiene un circuito o un camino de
Hamilton? De primera instancia, pareciera que debera haber una manera fcil de determinar esto,

91
Matemticas Discretas FMAT-L.C.C.

ya que existe una manera simple de determinar cuando un grafo tiene un circuito de Euler.
Sorpresivamente, no existe una condicin necesaria y suficiente, que se conozca, para la
existencia de circuitos de Hamilton. Sin embargo, se conocen muchos teoremas que nos dan las
condiciones suficientes para la existencia de circuitos de Hamilton. Adems, ciertas propiedades
pueden ser usadas para mostrar que un grafo no tiene un circuito de Hamilton. Por ejemplo, un
grafo con un vrtice de grado 1 no puede tener un circuito de Hamilton, ya que en un circuito de
Hamilton cada vrtice es incidente con dos arcos del circuito. Adems, si un vrtice en el grafo
tiene grado 2, entonces los dos arcos que inciden en l deben ser parte de cualquier circuito de
Hamilton. Adems, note que cuando un circuito de Hamilton se empieza a construir y este circuito
pasa a travs de un vrtice, entonces todos los arcos restantes incidentes en este vrtice (los otros
exceptuando a los dos usados en el circuito) pueden ser descartados. As, un circuito de Hamilton
no puede contener a un circuito ms pequeo dentro de l.

Ejemplo 6. Muestra que ninguno de los grafos de la figura 11 tiene un circuito de Hamilton.

Solucin. No existe un circuito de Hamilton en G, ya que tiene un vrtice de grado 1 llamado e.


Ahora considere H. Ya que los grados de los vrtices a, b, d y e son todos 2, cada arco incidente
con estos vrtices debe ser parte de cualquier circuito de Hamilton. Ahora, es fcil de ver que
ningn circuito de Hamilton puede existir en H, ya que cualquier circuito de Hamilton tendra que
contener cuatro arcos incidentes con c, lo que es imposible.

Ejemplo 7. Muestra que Kn tiene un circuito de Hamilton para cualquier n 3.


Solucin. Podemos formar un circuito de Hamilton en Kn comenzando en cualquier vrtice. Tal
circuito puede ser construido visitando vrtices en cualquier orden que escojamos mientras el
camino comience y termine en el mismo vrtice y visite cada vrtice exactamente una vez. Esto es
posible, ya que en Kn hay arcos entre cualquier par de vrtices.

Teorema 3. Si G es un grafo simple conectado con n vrtices donde n 3, entonces G tiene un


circuito de Hamilton si el grado de cada vrtice es al menos n/2.

Ejemplo 8. Cdigos de Gray. La posicin de una aguja rodante puede ser representada en forma
digital. Una forma de hacer esto es dividir el crculo en 2n arcos de igual longitud y asignar una
cadena de bits de longitud n a cada arco. La figura 12 muestra dos formas de hacer esto usando
cadenas de bits de longitud 3.
92
Matemticas Discretas FMAT-L.C.C.

La representacin digital de la posicin de la flecha puede ser determinada usando un conjunto de


n contactos. Cada contacto es usado para leer un bit en la representacin digital de la posicin. En
la figura 13 se ilustra para los dos ejemplos de la figura 12.

Cuando la aguja esta cerca de la frontera de dos arcos, se puede cometer un error en la lectura de
su posicin. Esto puede resultar en un error ms grande en la lectura de la cadena de bits. Por
ejemplo, en el esquema de codificacin de la figura 12a, si se comete un pequeo error al
determinar la posicin del puntero, la cadena de bits 100 puede ser leda como 011. Los tres bits
93
Matemticas Discretas FMAT-L.C.C.

son incorrectos! Para minimizar el efecto de un error al determinar la posicin de la aguja, la


asignacin de la cadena de bits de los 2n arcos podra ser hecha de tal forma que solo un bit sea
diferente en las cadenas de bits que representan arcos adyacentes. Esta es exactamente la
situacin en el esquema de codificacin de la figura 12b. Un error al determinar la posicin de la
aguja nos da la cadena 010 en vez de 011. Donde solo un bit es incorrecto.

Un Cdigo Gray, consiste en etiquetar los arcos del crculo de tal forma que los arcos adyacentes
estn etiquetados con cadenas de bits que difieren exactamente en un bit. La asignacin de la
figura 12b es un Cdigo de Gray. Podemos encontrar un cdigo de Gray listando todas las
cadenas de bits de longitud n de tal forma que cada cadena difiera en exactamente una posicin
con respecto a la cadena de bits anterior y la ltima cadena difiere de la primera en exactamente
una posicin. Podemos modelar este problema usando un n-cubo Qn. Lo que se necesita para
resolver este problema es un circuito de Hamilton en Qn. Tal circuito de Hamilton puede
encontrarse fcilmente. Por ejemplo, la figura 14 muestra un circuito de Hamilton para Q3. La
secuencia de cadenas de bits producidas por el circuito de Hamilton difieren en exactamente un bit,
el circuito es 000, 001, 011, 010, 110, 111, 101, 100.

Problemas del camino ms corto


Introduccin

Muchos problemas pueden ser modelados usando grafos con pesos asociados a sus lados. Como
ilustracin, considere ahora en cmo un sistema de una aerolnea puede ser modelado.
Construyamos el grafo del modelo bsico representando las ciudades con vrtices y los vuelos con
arcos. Los problemas que involucran distancias pueden ser modelados asignando las distancias
entre las ciudades a los arcos. Los problemas que involucran las tiempos de vuelo, pueden ser
modelados asignando los tiempos de vuelo a los arcos. Los problemas que involucran las tarifas de
vuelo, pueden ser modelados asignando las tarifas de vuelo a los arcos. La figura 1 muestra tres
diferentes asignaciones de pesos a los arcos de un grafo representando distancias, tiempos de
vuelo, y tarifas respectivamente.

94
Matemticas Discretas FMAT-L.C.C.

Los grafos que tienen un nmero asignado a cada arco son llamados Grafos con Peso. Los grafos
con peso son usados para modelar los costos de las comunicaciones de las redes de
computadoras (como el costo mensual de la renta de la lnea telefnica), los tiempos de respuesta
de las computadoras sobre esas lneas, o la distancia entre las computadoras, todos pueden ser
estudiados usando grafos con peso. La figura 2 muestra los grafos con peso que representan tres
formas de asignar pesos a los arcos de un grafo de una red de computadoras, correspondientes a
costos, tiempos de respuesta sobre las lneas, y distancia.

95
Matemticas Discretas FMAT-L.C.C.

Frecuentemente surgen muchos tipos de problemas que involucran grafos con peso. Determinar el
camino de longitud mnima entre dos vrtices en una red es uno de estos problemas. Para ser ms
especficos, hagamos que la longitud de un camino en un grafo con peso sea la suma de los
pesos de los arcos de ese camino. La pregunta es: Cul es el camino ms corto, esto es, el
camino de longitud mnima entre dos vrtices dados? Por ejemplo, en el sistema de la aerolnea
representado por el grafo con pesos mostrado en la figura 1, Cul es el camino ms corto (en
distancia area) entre Boston y Los Angeles? Qu combinaciones de vuelos tiene el tiempo de
vuelo total ms corto entre Boston y Los Angeles? Cul es la tarifa ms barata entre estas dos
ciudades? En la red de computadoras mostrada en la figura 2 Cul es el conjunto de lneas
telefnicas que se necesitan para conectar las computadoras en San Francisco con las de Nueva
York de forma que sea lo menos costoso? Qu conjunto de lneas telefnicas da el tiempo de
respuesta ms rpido para comunicaciones entre San Francisco y Nueva York? Qu conjunto de
lneas tiene la distancia ms corta total?

96
Matemticas Discretas FMAT-L.C.C.

Un algoritmo del camino ms corto

Hay muchos algoritmos diferentes para encontrar el camino ms corto entre dos vrtices en un
grafo con pesos. Presentaremos un algoritmos descubierto por el matemtico alemn E. Dijkstra en
1959. La versin que describiremos resuelve este problema en grafos con pesos no dirigidos,
donde todos los pesos son positivos. Es fcil de adaptarlo para resolver problemas del camino ms
corto en grafos dirigidos.

Antes de ver la presentacin formal del algoritmo, veamos el siguiente ejemplo.

Ejemplo 1. Cul es la longitud del camino ms corto entre a y z en el grafo con pesos mostrado
en la figura 3?

Solucin. Aunque el camino ms corto es fcil de encontrar por simple inspeccin, desarrollaremos
algunas ideas tiles para entender el algoritmo de Dijkstra. Resolveremos este problema
encontrando la longitud del camino ms corto de a hacia vrtices sucesivos, hasta que z sea
alcanzada.

Los nicos caminos que comienzan en a que no contienen otro vrtice ms que a (hasta que el
vrtice final sea alcanzado), son a, b y a, d. Ya que las longitudes de a, b y a, d son 4 y 2
respectivamente, decimos que d es el vrtice ms cercano a a.

Podemos encontrar el siguiente vrtice ms cercano mirando todos los caminos que pasan
solamente a travs de a y d (hasta que el vrtice terminal sea alcanzado). El camino ms corto a b,
sigue siendo a, b, con longitud 4, y el camino ms corto a e es a, d, e, con longitud 5. En
consecuencia, el siguiente vrtice ms cercano a a es b.

Para encontrar el tercer vrtice ms cercano a a, solo necesitamos examinar los caminos que
pasan nicamente a travs de a, d y b (hasta que el vrtice terminal sea alcanzado). Hay un
camino de longitud 7 a c llamado a, b, c y un camino de longitud 6 a z, llamado a, d, e, z. En
consecuencia, z es el siguiente vrtice ms cercano y la longitud del camino ms corto a z es 6.

97
Matemticas Discretas FMAT-L.C.C.

El ejemplo 1 ilustra los principios generales usados en el algoritmo de Dijkstra. Note que el camino
ms corto de a a z puede ser encontrado por simple inspeccin. Sin embargo, la inspeccin es
imprctico para humanos y computadoras para grafos con un gran nmero de arcos.
Consideraremos ahora el problema general de encontrar la longitud del camino ms corto entre a y
z en un grafo simple con pesos conectado. El algoritmo de Dijkstra procede encontrando la
longitud del camino ms corto de a hacia un primer vrtice, la longitud del camino ms corto de a
hacia un segundo vrtice, y as por el estilo, hasta que se encuentre la longitud del camino ms
corto de a a z.

El algoritmo se basa en una serie de iteraciones. Se construye un conjunto marcado de vrtices


aadiendo un vrtice en cada iteracin. Tambin se lleva a cabo un proceso de etiquetado en cada
iteracin. En este proceso de etiquetado, un vrtice w es etiquetado con la longitud del camino ms
corto de a hacia w que contiene solo vrtices que ya estn en el conjunto marcado. El vrtice
aadido al conjunto marcado es uno con la etiqueta de cantidad mnima de aquellos vrtices que
todava no estn en el conjunto.

Ahora daremos los detalles del algoritmo de dijkstra. Este comienza etiquetando a a con 0 y los
otros vrtices con . Usamos la notacin L0(a) = 0 y L0(v) = para estas etiquetas antes de que
cualquier iteracin tome lugar (el subndice 0 representa la iteracin nmero 0). Estas etiquetas
son las longitudes de los caminos ms cortos de a hacia esos vrtices, donde los caminos
contienen solo al vrtice a.

El algoritmo de Dijkstra procede formando un grupo de vrtices marcados. Sea Sk este conjunto
despus de k iteraciones del proceso de etiquetado. Comenzamos con S0 = . El conjunto Sk se
forma a partir de Sk-1 y aadiendo un vrtice u que no se encuentra en Sk-1 y que tiene la etiqueta
ms corta. Una vez que u es aadido a Sk, actualizamos las etiquetas para todos los vrtices que
no estn en Sk, tal que Lk(v), la etiqueta del vrtice v en la k-sima iteracin, es la longitud del
camino ms corto de a hacia v que contiene vrtices solamente de Sk . (Esto es, vrtices que ya
estaban en el conjunto de vrtices marcados junto con u)

Sea v un vrtice que no est en Sk. Para actualizar la etiqueta de v, note que Lk(v) es la longitud del
camino ms corto de a hacia v conteniendo solamente vrtices de Sk. La actualizacin puede
realizarse de manera exitosa cuando se usa la siguiente observacin: el camino ms corto de a
hacia v que contiene solamente elementos de Sk, es ya sea el camino ms corto de a hacia v que
contiene solamente elementos de Sk-1 (esto es los vrtices marcados no incluyendo a u), o es el
camino ms corto de a hacia u en la iteracin k-1 con el arco (u, v) aadido. En otras palabras:

Lk (a, v) = min{ Lk-1 (a, v), Lk-1 (a, u) + w(u, v)}

98
Matemticas Discretas FMAT-L.C.C.

Este procedimiento es iterado y se van aadiendo sucesivamente vrtices al conjunto de vrtices


marcados hasta que z sea aadida.

El algoritmo queda asi:

Ejemplo 2. Use el algoritmo de Dijkstra para encontrar el camino ms corto entre a y z en el grafo
mostrado en la figura 4a.

99
Matemticas Discretas FMAT-L.C.C.

Teorema 1. El algoritmo de Dijkstra encuentra la longitud del camino ms corto entre dos vrtices
en un grafo con pesos no dirigido simple.

Teorema 2. El algoritmo de dijkstra usa O(n2) operaciones (adiciones y comparaciones) para


encontrar la longitud del camino ms corto entre dos vrtices en un grafo con pesos no dirigido
simple.

100
Matemticas Discretas FMAT-L.C.C.

8. Unidad 5. Teora de rboles

rboles

Un grafo conectado que contiene circuitos no simples se llama rbol. Los rboles son usados
desde 1857, cuando el matemtico ingls Arthur Cayley los us para contar ciertos tipos de
componentes qumicos. Desde esos tiempos, los rboles han sido usados para resolver problemas
en una amplia variedad de disciplinas.

Los rboles son particularmente usados en ciencias de la computacin. Por ejemplo, los rboles
son empleados para construir redes con el conjunto de lneas telefnicas menos costosas
enlazando computadoras distribuidas. Los rboles pueden ser usados para construir cdigos
eficientes para almacenamiento y transmisin de datos. Los rboles pueden modelar
procedimientos que son llevados a cabo usando una secuencia de decisiones. Esto hace a los
rboles muy valiosos en el estudio de algoritmos de ordenamiento.

Introduccin a los rboles

La figura 1 muestra una grfica genealgica de los Bernoullis, una famosa familia de matemticos
suizos. Este tipo de grficas es tambin llamada rbol familiar. Un rbol familiar es un grafo donde
los vrtices representan a los miembros de la familia y los arcos representan la relacin de
parentesco. El grafo no dirigido que representa una grfica genealgica es un ejemplo de un tipo
especial de grafo llamado rbol.

Definicin 1. Un rbol es un grafo no dirigido conectado con circuitos no simples.

101
Matemticas Discretas FMAT-L.C.C.

Ya que un rbol no tiene circuitos simples. Un rbol no puede contener arcos mltiples o lazos.
Entonces, un rbol debe ser un grafo simple.

Ejemplo 1. Cules de los grafos de la figura 2 son rboles?

Solucin. G1 y G2 son rboles, ya que ambos son grafos conectados con circuitos no simples. G3
no es un rbol, porque e, b, a, e es un circuito simple en este grafo. Finalmente, G4 no es un rbol,
ya que no est conectado.

Cualquier grafo conectado que contiene circuitos no simples es un rbol. Qu sucede con los
grafos que contienen circuitos no simples que no son necesariamente conectados? Estos rboles
son llamados bosques y tienen la propiedad de que cada uno de sus componentes conectados es
un rbol. La figura 3 muestra algunos bosques.

Los rboles son con frecuencia definidos como grafos no dirigidos con la propiedad de que hay un
nico camino simple entre cada par de vrtices. El siguiente teorema, muestra que esta definicin
alternativa es equivalente a nuestra definicin.

102
Matemticas Discretas FMAT-L.C.C.

Teorema 1. Un grafo no dirigido es un rbol si y solo si hay un camino simple nico entre
cualesquiera dos de sus vrtices.
Demostracin. Primero asumamos que T es un rbol. Entonces T es un grafo conectado con
circuitos no simples. Sean x y y dos vrtices de T. Ya que T es conectado, entonces existe un
camino entre x y y. Adems, este camino debe ser nico, porque si hay un segundo camino como
ste, el camino formado por la combinacin del primer camino de x a y seguido por el camino de y
a x obtenido al invertir el orden del segundo camino de x a y formara un circuito. Esto implica que
hay un circuito simple en T (por una propiedad). Por lo tanto, existe un nico camino simple entre
cualesquiera dos vrtices del rbol.
Ahora asumamos que hay un nico camino simple entre cualesquiera dos vrtices del grafo T.
entonces T es conectado, ya que hay un camino entre cualesquiera dos de sus vrtices. Adems,
T puede tener circuitos no simples. Para ver que esto es verdadero, suponga que T tiene un
circuito simple que contiene a los vrtices x y y. entonces debera haber dos caminos simples entre
x y y, ya que un circuito simple es construido con un camino simple de x a y y un segundo camino
simple de y a x. Por lo tanto, un grafo con un nico camino simple entre cualesquiera dos de sus
vrtices es un rbol.
---
En muchas aplicaciones de rboles, se designa a un vrtice particular del rbol como la raz. Una
vez que especificamos la raz, podemos asignar una direccin a cada arco como sigue. Ya que hay
un camino nico de la raz a cada vrtice del grafo (por el teorema 1), dirigimos cada arco
alejndose de la raz. Entonces, un rbol junto con su raz producen un grafo dirigido llamado rbol
con raz. Podemos transformar un rbol sin raz a un rbol con raz escogiendo un vrtice como su
raz. Note que si escogemos diferentes vrtices como raz, se producen diferentes rboles con raz.
Por ejemplo, la figura 4 muestra rboles con raz formados por la designacin de a y c para ser las
races respectivamente en el rbol T. normalmente dibujamos un rbol con raz con su raz en la
parte de arriba del grafo. Las flechas indicando la direccin de los arcos en un rbol con raz
pueden ser omitidas, ya que al escoger la raz se determina la direccin de los arcos.

La terminologa para los rboles tiene orgenes botnicos y genealgicos. Suponga que T es un
rbol con raz, si v es un vrtice en T diferente de la raz, El padre de v es el nico vrtice u tal que
hay un arco dirigido de u a v. cuando u es el padre de v, v es llamado un hijo de u. Los vrtices

103
Matemticas Discretas FMAT-L.C.C.

con el mismo padre son llamados hermanos. Los ancestros de un vrtice diferente de la raz son
los vrtices en el grafo de la raz a ese vrtice, excluyendo el vrtice mismo e incluyendo a la raz.
Los descendientes de un vrtice v son aquellos vrtices que tienen a v como ancestro. Un vrtice
de un rbol es llamado hoja si no tiene hijos. Los vrtices que tienen hijos son llamados vrtices
internos. La raz es un vrtice interno a menos que sea el nico vrtice del grafo, en ese caso es
una hoja. Si a es un vrtice en un rbol, el subrbol con a como raz, es el subgrafo del rbol que
consiste de a y sus descendientes y todos los arcos incidentes en estos descendientes.

Ejemplo 2. En el rbol con raz T (con raz a) mostrado en la figura 5, encuentra el padre de c, el
hijo de g, los hermanos de h, todos los ancestros de e, todos los descendientes de b, todos los
vrtices internos y todas las hojas. Cul es el subrbol con raz en g?

Solucin. El padre de c es b. Los hijos de g son h, i y j. Los hermanos de h son i y j. Los ancestros
de e son c, b y a. Los descendientes de b son c, d y e. Los vrtices internos son a, b, c, g, h y j. Las
hojas son d, e, f, i, k, l y m. El subrbol con raz en g se muestra en la figura 6.

Los rboles con raz con la propiedad de que todos sus vrtices internos tienen el mismo nmero
de hijos son usados en muchas aplicaciones deferentes.

Definicin 2. Un rbol con raz es llamado rbol m-ario si cada vrtice interno no tiene ms de m
hijos. El rbol es llamado rbol m-ario completo si cada vrtice tiene exactamente m hijos. Un
arbol m-ario con m=2 es llamado rbol binario.

104
Matemticas Discretas FMAT-L.C.C.

Ejemplo 3. Son los rboles con raz de la figura 7 rboles m-arios completos para algn entero
positivo m?

Solucin. T1 es un rbol binario completo ya que cada uno de sus vrtices internos tiene dos hijos.
T2 es un rbol 3-ario completo que cada uno de sus vrtices internos tiene tres hijos. En T3 cada
vrtice interno tiene 5 hijos, as, T3 es un rbol 5-ario completo. T4 no es un rbol m-ario completo
para alguna m ya que algunos de sus vrtices internos tienen dos hijos y otros tienen tres hijos.

Un rbol con raz ordenado, es un rbol con raz donde los hijos de cada vrtice interno estn
ordenados. Los rboles con raz ordenados son dibujados de tal forma que los hijos de cada
vrtice interno son mostrados en orden de izquierda a derecha. Note que la representacin de un
rbol con raz de forma convencional, determina un orden para sus arcos. Usaremos este
ordenamiento de arcos en los dibujos sin mencionar explcitamente que estamos considerando que
un rbol con raz ordenado.

En un rbol con raz ordenado, si un vrtice interno tiene dos hijos, el primer hijo es llamado hijo
izquierdo y el segundo hijo es llamado hijo derecho. El rbol con raz en el hijo izquierdo de un
vrtice es llamado subrbol izquierdo de ese vrtice, el rbol con raz en el hijo derecho de un
vrtice es llamado subrbol derecho de ese vrtice. El lector puede notar que para algunas
aplicaciones, cada vrtice de un rbol binario, que no sea la raz, es designado como hijo derecho
o izquierdo de su padre. Esto ocurre incluso cuando algunos vrtices tienen un solo hijo.

105
Matemticas Discretas FMAT-L.C.C.

Ejemplo 4. Cuales son los hijos izquierdo y derecho de d en el rbol binario T mostrado en la
figura 8a (donde el orden est insinuado por el dibujo)? Cules son los subrboles izquierdo y
derecho de c?

Solucin. El hijo izquierdo de d es f y el hijo derecho es g. Los subrboles izquierdo y derecho de c


se muestran en las figuras 8(b) y 8(c) respectivamente.

No existe una terminologa estndar usada para describir rboles, rboles con raz, rboles con
raz ordenados y rboles binarios, esto es porque la terminologa toma lugar desde que los rboles
son usados extensamente en las ciencias de la computacin, que es un campo relativamente
nuevo.

Los rboles como modelos

Los rboles son usados como modelos en diversas reas como ciencias de la computacin,
qumica, geologa, botnica, y psicologa.

Ejemplo 5. Los Hidrocarburos saturados y los rboles. Los grafos pueden ser usados para
representar molculas, donde los tomos son representados por los vrtices y los enlaces entre
ellos por los arcos. El matemtico ingls Arthur Cayley descubri los rboles en 1857, cuando
estaba tratando de enumerar los ismeros de los compuestos de la forma CnH2n+2 que son
llamados hidrocarburos saturados.

En los modelos de grafos de los hidrocarburos saturados, cada tomo de carbono es representado
por un vrtice de grado 4, y cada tomo de hidrgeno es representado por un tomo por un vrtice
de grado 1. Hay 3n+2 vrtices en un grafo que representa un compuesto de la forma CnH2n+2. el
nmero de arcos en este grafo es la mitad de la suma de los grados de los vrtices. As, hay (4n +
2n + 2)/2 = 3n + 1 arcos en este grafo. Ya que el grafo es conectado y el nmero de arcos es uno
menos que el nmero de vrtices, ste debe ser un rbol (por una propiedad).

106
Matemticas Discretas FMAT-L.C.C.

Los rboles no isomorfos con n vrtices de grado 4 y 2n+2 de grado 1 representan los diferentes
ismeros de CnH2n+2. Por ejemplo, cuando n = 4 hay exactamente dos rboles no isomorfos de este
tipo, como muestra la figura 9.

Ejemplo 6. Representando organizaciones. La estructura de una organizacin grande puede ser


modelada usando un rbol con raz. Cada vrtice en este rbol representa una posicin en la
organizacin. Un arco de un vrtice a otro indica que la persona representada por el vrtice inicial
es el jefe directo de la persona representada por el vrtice final. La figura 10 muestra un ejemplo.

Ejemplo 7. Sistemas de archivos de computadora. Los archivos en la memoria de una


computadora pueden ser organizados en directorios. Un directorio puede contener tanto archivos
como subdirectorios. El directorio raz contiene al sistema de archivos completo. Entonces el
sistema de archivos puede ser representado por un rbol con raz, donde la raz representa el
directorio raz, los vrtices internos representan los subdirectorios, y las hojas representan los
archivos ordinarios o directorios vacos. La figura 11 muestra un ejemplo.

107
Matemticas Discretas FMAT-L.C.C.

Propiedades de los rboles

Teorema 2. Un rbol con n vrtices tiene n-1 arcos


Demostracin. Escojamos el vrtice r como la raz del rbol. Podemos hacer una correspondencia
uno a uno entre los arcos y los vrtices que no sean r asociando el vrtice terminal de un arco a
ese arco. Ya que hay n - 1 vrtices que no son r, hay n 1 arcos en el rbol.

Teorema 3. Un rbol m-ario completo con i vrtices internos contiene n = mi + 1 vrtices.


Demostracin. Cada vrtice excepto la raz es hijo de un vrtice interno. Ya que cada uno de los i
vrtices internos tienen m hijos, hay mi vrtices en el rbol que no son la raz. Entonces, el rbol
contiene n = mi + 1 vrtices.

Teorema 4. Un rbol m-ario completo con


i. n vrtices tiene i = (n - 1)/m vrtices internos y l = [(m-1)n + 1]/m hojas.
ii. i vrtices internos tiene n = mi + 1 vrtices y l = (m-1)i +1hojas.
iii. l hojas tiene n = (ml - 1)/(m - 1) vrtices y i = (l - 1)/(m - 1) vrtices internos.
Demostracin. Sea n el nmero de vrtices, i el nmero de vrtices internos y l el nmero de hojas.
Las tres partes del teorema pueden ser probadas usando la igualdad dada en el teorema 3, esto
es, n = mi + 1, junto con la igualdad n = l + i, lo que es verdadero ya que cada vrtice es ya sea
hoja o un vrtice interno.

Ejemplo 8. Suponga que alguien comienza una cadena de cartas. A cada persona que recibe la
carta se le dice que se la enve a 4 personas. Algunas personas hacen esto, pero otras no envan
ninguna carta. Cunta gente ha visto la carta, incluyendo la primera persona si nadie recibe ms

108
Matemticas Discretas FMAT-L.C.C.

de una carta y la cadena termina despus de que 100 personas han ledo la carta pero no la
enviaron? Cunta gente envi la carta?

Solucin. La cadena de cartas puede ser representada usando un rbol 4-ario. Los vrtices
internos corresponden a la gente que enva la carta, y las hojas corresponden a la gente que no
enva la carta. Ya que 100 personas no enviaron la carta, el nmero de hojas en este rbol con raz
es l = 100. As, la parte (iii) del teorema 4 muestra que el nmero de personas que ha visto la carta
es n = (4*100 - 1)/(4 - 1) = 133. Tambin el nmero de vrtices internos es 133 - 100 = 33, as que
33 personas enviaron la carta.

Algunas veces es deseable usar un rboles con raz que estn Balanceados, de tal forma que los
subrboles en cada vrtice contengan caminos de aproximadamente la misma longitud. Para ver
este concepto se requieren algunas definiciones. El nivel de un vrtice v en un rbol con raz es la
longitud del camino nico de la raz a ese vrtice. El nivel de la raz es definido como cero. La
altura de un rbol con raz es el mximo de los niveles de los vrtices. En otras palabras, la altura
de un rbol es la longitud del camino ms largo de la raz a cualquier vrtice.

Ejemplo 9. Encuentre el nivel de cada vrtice en el rbol con raz mostrado en la figura 13, cul
es la altura de este rbol?

Solucin. La raz a es de nivel 0, los vrtices b, j, y k son de nivel 1. Los vrtices c, e, f, y l son de
nivel. Los vrtices d, g, i, m, y n son de nivel 3. Finalmente, el vrtice h es de nivel 4. Ya que el
nivel ms grande para cualquier vrtice es 4, este rbol tiene altura 4.

Un rbol con raz m-ario de altura h se llama balanceado si sus hojas son de nivel h o nivel h-1.

Ejemplo 10. Cul de los rboles con raz mostrado en la figura 14 son balanceados?

109
Matemticas Discretas FMAT-L.C.C.

Solucin. T1 y T3 son balanceados, T2 no lo es.

Teorema 5. Hay a lo ms mh hojas en un rbol m-ario de altura h.


Corolario 1. Si un rbol m-ario de altura h tiene l hojas, entonces h log m l . Si el rbol m-ario
es completo y balanceado, entonces, = log m l .
Aplicaciones de los rboles

Introduccin

En esta seccin se muestran problemas que pueden ser estudiados usando rboles. El primer
problema es: Cmo los elementos de una lista pueden ser ordenados de tal forma que se pueda
localizar fcilmente a un elemento?

rboles binarios de bsqueda

La bsqueda de elementos en una lista es una de las tareas ms importantes que surge en las
ciencias de la computacin. El primer objetivo es implementar un algoritmo de bsqueda que
encuentre elementos de manera eficiente cuando los elementos estn totalmente ordenados. Esto
se puede realizar a travs del uso de un rbol binario de bsqueda, que es un rbol binario en el
que cada hijo de un vrtice es designado como hijo derecho o hijo izquierdo, ningn vrtice tiene
ms de un hijo derecho o un hijo izquierdo, y cada vrtice es etiquetado con una clave, que es uno
de los elementos. Adems, a los vrtices les son asignadas las claves, tal que la clave de un
vrtice es mayor que las claves de todos los vrtices en su subrbol izquierdo y menor que las
claves de los vrtices de su subrbol derecho.

110
Matemticas Discretas FMAT-L.C.C.

El siguiente procedimiento recursivo es usado para formar el rbol binario de bsqueda para una
lista de elementos:
Comienza con un rbol que contiene solamente un elemento, llamado la raz.
El primer elemento en la lista es asignado como la clave de la raz.
Para aadir un nuevo elemento, primero comprelo con las claves de los vrtices que ya
estn en el rbol comenzando por la raz y
o movindose a la izquierda si el elemento resulta ser menor que la clave del vrtice
respectivo y ste tiene un hijo izquierdo, o
o movindose a la derecha si el elemento es ms grande que la clave del vrtice
respectivo y ste tiene un hijo derecho.
Cuando el elemento es menor que el vrtice respectivo y ste no tiene un hijo izquierdo,
entonces el nuevo vrtice con ese elemento como clave es insertado como el nuevo hijo
izquierdo.
De manera similar, cuando el elemento es mayor que el vrtice respectivo y ste no tiene
un hijo derecho, entonces el nuevo vrtice con ese elemento como clave es insertado
como el nuevo hijo derecho.

Veamos el siguiente ejemplo en el que se forma un rbol binario de bsqueda para las palabras
mathematics, physics, geography, zoology, meteorology, geology, psychology y chemistry usando
el orden alfabtico.

Solucin. La figura 1 muestra los pasos usados para construir el rbol binario de bsqueda. La
palabra mathematics es la clave de la raz. Ya que physics va despus de mathematics (en orden
alfabtico) se le aade un hijo derecho a la raz con la clave physics.

111
Matemticas Discretas FMAT-L.C.C.

Ya que geography va antes que mathematics, se le aade un hijo izquierdo a la raz con la clave
geography. Luego, aadimos un hijo derecho al vrtice con la clave physics y asignamos la clave
zoology, ya que zoology va despus de mathematics y despus que physics. De manera similar, se
contina el procedimiento con las dems claves.

Para localizar un elemento, trata de aadirlo al rbol binario de bsqueda. Si est presente lo
localizaremos. El algoritmo 1 muestra un pseudocdigo para localizar un elemento en un rbol
binario de bsqueda o aadir un nuevo vrtice con ste elemento si la clave del elemento no es
encontrada.

El algoritmo 1 localiza x si sta ya es una clave de un vrtice. Cuando x no es una clave, se aade
un nuevo vrtice con la clave x. En el pseudocdigo, v es el vrtice que tiene a x como clave y
label(v) representa la clave del vrtice v.
112
Matemticas Discretas FMAT-L.C.C.

Si el rbol binario de bsqueda es balanceado, localizar o aadir un elemento no requiere ms de

log(n + 1) comparaciones. Un rbol binario de bsqueda puede desbalancearse cuando se le

aaden elementos. Ya que los rboles binarios de bsqueda balanceados nos dan una
complejidad ptima en las bsquedas binarias, existen varios algoritmos para rebalancear el rbol
binario de bsqueda conforme los elementos le son aadidos al rbol.

rboles de decisin

Los rboles con raz pueden ser usados para modelar problemas en los que una serie de
decisiones conucen a la solucin. Por ejemplo, un rbol binario de bsqueda puede ser usado para
localizar elementos basado en una serie de comparaciones, donde cada comparacin nos dice si
hemos localizado al elemento o si debemos ir a la izquierda o a la derecha. Un rbol con raz en el
que cada vrtice interno corresponde a una decisin, con un subrbol en esos vrtices para cada
posible resultado de la decisin, de llama rbol de decisin. El siguiente ejemplo ilustra una
aplicacin de los rboles de decisin.

Ejemplo 2. Suponga que hay 7 monedas, todas con el mismo peso y una moneda falsa que pesa
menos que las otras. Cuntas pesadas son necesarias usando una balanza para determinar cul
de las ocho monedas es la falsa? Da un algoritmo para encontrar esta moneda falsa.

Solucin. Hay tres posibilidades cada vez que realizamos una pesada con la balanza, Las dos
charolas tienen un mismo peso, la primera charola pesa ms o la segunda pesa ms. En
consecuencia, el rbol de decisin de la secuencia de pesadas es un rbol 3-ario. Hay al menos 8
hojas en el rbol de decisin, ya que hay ocho posibles resultados (ya que cada una de las ocho
monedas puede ser la moneda falsa que pesa menos), y cada posible resultado tiene que ser
representado por al menos una hoja. El nmero ms grande de pesadas que se necesita para
determinar la moneda falsa es la altura del rbol de decisin. Del corolario 1 de la seccin anterior
se tiene que la altura del rbol de decisin es al menos log3 8 = 2. As, al menos dos pesadas

son necesarias. Es posible determinar la moneda falsa usando dos pesadas. La figura 3 ilustra el
rbol de decisin.

113
Matemticas Discretas FMAT-L.C.C.

Prefix codes

Considere el problema de usar cadenas de bits para codificar las letras del alfabeto ingls (sin
distinguir entre maysculas y minsculas). Podemos representar cada letra con una cadena de bits
de longitud 5, ya que hay 26 letras y hay 32 cadenas posibles de bits de longitud 5. El nmero total
de bits usados para codificar datos es cinco veces el nmero de caracteres en el texto cuando
cada carcter es codificado con 5 bits. Es posible encontrar un esquema de codificacin de estas
letras, tal que cuando los datos sean codificados, se utilicen menos bits? Podramos ahorrar
memoria y reducir el tiempo de transmisin si esto pudiera ser hecho.

Considere usar cadenas de bits de diferentes longitudes para codificar las letras. Las letras suelen
presentarse con mayor frecuencia deben ser codificadas usando las cadenas de bits mas cortas, y
las cadenas de bits ms largas pueden ser usadas para codificar las letras que rara vez se
presentan. Cuando las letras son codificadas usando un nmero de bits variable, se debe usar
algn mtodo para determinar cuando comienzan y cuando terminan los bits de cada carcter. Por
ejemplo si e es codificada con 0, a con 1 y t con 01, entonces la cadena de bits 0101 podra
corresponder a eat, tea, eaea o tt.

Para asegurarnos de que una cadena de bits no corresponda a ms de una secuencia de letras, la
cadena de bits para una letra nunca debe ocurrir en la primera parte de la cadena de bits de otra
letra. Los cdigos con esta propiedad son llamados prefix codes (cdigos de prefijos). Por
ejemplo, la codificacin de e como 0, de a como 10 y de t como 11 es un prefix code. Una palabra
puede ser recobrada de una nica cadena de bits que codifica sus letras. Por ejemplo, la cadena
10110 es la codificacin de ate. Para ver esto, note que el 1 inicial no representa un carcter, pero
10 representa la a. Entonces el siguiente 1 no representa un carcter, pero 11 representa la t y lo
luego 0 representa la e.

114
Matemticas Discretas FMAT-L.C.C.

Un prefix code puede ser representado usando un rbol binario, donde los caracteres son las
etiquetas de las hojas del rbol. Los arcos del rbol estn etiquetados de tal forma que un arco que
conduce a un hijo izquierdo tiene un 0 y uno que conduce a un hijo derecho tiene un 1. La cadena
de bits usada para codificar un carcter es la secuencia de etiquetas de los arcos del camino nico
que va de la raz a la hoja que tiene ese carcter como etiqueta. Por ejemplo en la figura 4 se
muestra un rbol que representa la codificacin de e como 0, a como 10, t como 110, n como 1110
y s como 1111.

El rbol que representa un cdigo puede ser utilizado para decodificar una cadena de bits. Por
ejemplo, al decodificar 11111011100 usando el rbol de la figura 4 queda como sane.
nicamente tenemos que comenzar en la raz, seguir la secuencia de arcos a la izquierda o a la
derecha segn sea 0 o 1 el bit correspondiente y cuando alcancemos una hoja, damos el carcter
correspondiente y comenzamos de nuevo desde la raz con el siguiente bit.

Recorrido de los rboles

Introduccin

Los rboles con raz ordenados son usados con frecuencia para almacenar informacin.
Necesitamos procedimientos para visitar cada vrtice de un rbol con raz ordenado para acceder
a los datos. Los rboles con raz ordenados pueden tambin ser usados para representar varios
tipos de expresiones tales como expresiones aritmticas que involucran nmeros, variables y
operaciones.

Sistemas de direccionamiento universal

Los procedimientos para recorrer todos los vrtices de un rbol con raz ordenado se basan en el
ordenamiento de los hijos. En los rboles con raz ordenados, los hijos de un vrtice interno son
mostrados de izquierda a derecha.

115
Matemticas Discretas FMAT-L.C.C.

Para producir este ordenamiento, debemos etiquetar a todos los vrtices. Podemos hacer esto
recursivamente como sigue:

1. Etiquete a la raz con el entero 0. Entonces etiquete a sus k hijos (del nivel 1) de izquierda
a derecha como 1, 2, 3, , k.
2. Para cada vrtice v en el nivel n con etiqueta A, etiquete sus kv hijos como estos estn
dibujados de izquierda a derecha, con A.1, A.2, , A.kv.

Siguiendo este procedimiento, un vrtice v en el nivel n, para n 1, es etiquetado x1.x2..xn, donde


el nico camino de la raz a v, pasa a travs del vrtice x1 del nivel 1, del vrtice x2 del nivel 2, y as
por el estilo. Esta forma de etiquetar se llama sistema de direccionamiento universal del rbol
con raz ordenado.

Podemos ordenar totalmente los vrtices usando el ordenamiento lexicogrfico de sus etiquetas en
el sistema de direccionamiento universal del rbol con raz ordenado.

Ejemplo 1. Mostramos los etiquetados del sistema de direccionamiento universal junto a los
vrtices en el rbol con raz ordenado mostrado en la figura 1. El ordenamiento lexicogrfico de las
etiquetas es: 0 < 1 < 1.1 < 1.2 < 1.3 < 2 < 3 < 3.1 < 3.1.1 < 3.1.2 < 3.1.2.1 < 3.1.2.2 < 3.1.2.3 <
3.1.2.4 < 3.1.3 < 3.2 < 4 < 4.1 < 5 < 5.1 < 5.1.1 < 5.2 < 5.3.

116
Matemticas Discretas FMAT-L.C.C.

Algoritmos de recorrido

Los procedimientos para visitar sistemticamente cada vrtice en un rbol con raz ordenado son
llamados algoritmos de recorrido. Describiremos tres de los ms comnmente usados de estos
algoritmos, recorrido preorden, recorrido inorden y recorrido postorden. Cada uno de estos
algoritmos puede ser definido recursivamente.

Definicin 1. Sea T un rbol con raz ordenado con raz r. Si T consiste solamente de r, entonces r
es el recorrido preorden de T. Suponga que T1, T2, , Tn son los subrboles de r de izquierda a
derecha en T. El recorrido preorden comienza visitando r. Contina visitando T1 en preorden,
luego T2 en preorden y as hasta que Tn es recorrido en preoden.

Como se puede verificar, el recorrido preorden de un rbol con raz ordenado, nos da el mismo
ordenamiento de vrtices que el orden obtenido usando un sistema de direccionamiento universal.
La figura 2 muestra cmo el recorrido preorden es llevado a cabo.

Ejemplo 2. En qu orden visita los vrtices el recorrido preorden en el rbol con raz ordenado T
de la figura 3?

117
Matemticas Discretas FMAT-L.C.C.

Solucin. Los pasos para el recorrido preorden de T se muestran en la figura 4. Recorremos T en


preorden listando primero a la raz a, seguida de la lista en preorden del subrbol con raz en b, la
lista en preorden del subrbol con raz en c (que es solo c) y la lista en preorden del subrbol con
raz en d. Luego vamos desglosando el recorrido en preorden de b y el recorrido en preorden de d
como muestra la figura 4.

118
Matemticas Discretas FMAT-L.C.C.

Definicin 2. Sea T un rbol con raz ordenado con raz r. Si T consiste solamente de r, entonces r
es el recorrido inorden de T. De otra manera, suponga que T1, T2, , Tn son los subrboles de r
de izquierda a derecha en T. El recorrido inorden comienza visitando T1 en inorden, luego visita r.
Contina visitando T2 en inorden, luego T3 en inorden y as hasta que Tn es recorrido en inoden.

La figura 5 muestra cmo el recorrido inorden es llevado a cabo.

119
Matemticas Discretas FMAT-L.C.C.

Ejemplo 3. En qu orden visita los vrtices el recorrido inorden en el rbol con raz ordenado T de
la figura 3?
Solucin: Los pasos del recorrido inorden del con raz ordenado T son mostrados en la figura 6.

120
Matemticas Discretas FMAT-L.C.C.

Definicin 3. Sea T un rbol con raz ordenado con raz r. Si T consiste solamente de r, entonces r
es el recorrido postorden de T. De otra manera, suponga que T1, T2, , Tn son los subrboles de r
de izquierda a derecha en T. El recorrido postorden comienza visitando T1 en postorden, luego
visita T2 en postorden, , luego Tn en postorden y termina visitando r.

La figura 7 muestra cmo el recorrido postorden es llevado a cabo.

Ejemplo 4. En qu orden visita los vrtices el recorrido postorden en el rbol con raz ordenado T
de la figura 3?
Solucin: Los pasos del recorrido postorden del con raz ordenado T son mostrados en la figura 8.

121
Matemticas Discretas FMAT-L.C.C.

Existen formas fciles de listar los vrtices de un rbol con raz ordenado en preorden, inorden y
postorden. Para hacer esto, primero dibuja una curva alrededor del rbol con raz ordenado,
empezando con la raz, y movindose a lo largo de los arcos como se muestra en la figura 9

122
Matemticas Discretas FMAT-L.C.C.

Podemos listar los vrtices en preorden listando cada vrtice la primera vez que la curva pase por
l.
Podemos listar los vrtices en inorden listando cada hoja la primera vez que la curva pase por ella
y listando cada vrtice interno la segunda vez que la curva pase por ella.
Podemos listar los vrtices en postorden listando cada vrtice la ltima vez que ste es visitado en
el camino que sube hacia su padre.

Cuando esto se aplica al rbol de la figura 9, el recorrido preorden queda: a, b, d, h, e, i, j, c, f, g, k.


El recorrido inorden queda: h, d, b, i, e, j, a, f, c, k, g. El recorrido postorden queda: h, d, i, j, e, b, f,
k, g, c, a.

Los algoritmos de recorrido preorden, inorden y postorden, son expresados de forma ms fcil de
manera recursiva

123
Matemticas Discretas FMAT-L.C.C.

124
Matemticas Discretas FMAT-L.C.C.

9. Ejercicios

Unidad 1
Ejercicios de Matemticas Discretas
Unidad 1
Estos ejercicios debern ser entregados como tarea correspondiente a la primera Unidad. Podrn hacerse
en equipos de 2 personas.

IV. Para las siguientes expresiones booleanas, determinar:


a) Determinar el circuito combinatorio
b) El circuito utilizando compuertas lgicas
c) La tabla lgica
d) Su expresin dual asociada
e) La expresin simplificada

6. ( x1 x2 ) ( x1 )
7. (( x1 x2 ) x3 ) ( x3 x2 )
8. ( x1 x3 ) ( x1 ( x2 x3 ))
9. (( x1 x2 x3 ) ( x1 x3 )) x2
10. (( x1 x3 ) ( x2 x4 )) ( x2 x3 ) x1

V. Escriba la expresin booleana que representa a los siguientes circuitos combinatorios

a)
X1
X2

X3

b)
X1
X2

X3
X4

VI. Demostrar las siguientes equivalencias:

125
Matemticas Discretas FMAT-L.C.C.

Unidad 2
Ejercicios de Matemticas Discretas
Unidad 2
1. Consideremos las siguientes instrucciones para generar una sucesin:
Comenzar con 5
Dado cualquier nmero, sumarle 3 para obtener el siguiente.
Calcular la sucesin que se genera y escribir el pseudocdigo de un algoritmo recursivo
que la genere.

2. Determinar una relacin de recurrencia y las condiciones iniciales que generan una
sucesin que comienza con los siguientes trminos
3, 7, 11, 15,
3, 6, 9, 15, 24, 39,
1, 1, 2, 4, 16, 128, 4096,

3. Encontrar la funcin de recurrencia de la Serie de Fibonachi:


1, 1, 2, 3, 5, 8, 13,

4. Encontrar los 5 primeros elementos de las secuencias


a(n) = a(n)-1 +1, a(1) =1
a(n) = 5a(n)-1 - 6a(n)-2, a(1) =-1, a(2) =1

5. Resolver las siguientes ecuaciones recursivas:


Cn = Cn-1 + 1.5 , C1 = 2.5
g(n) = 3g(n-1) - 2g(n-2) , g(0)= 1 y g(1) = -1.

6. Resolver la relacin de recurrencia


Sn = 2 Sn-1
Sujeta a la condicin inicial S0 = 1

7. Resolver la relacin de recurrencia


c(n) = 2 c(n)-1+1
Sujeta a la condicin inicial c(1) = 1

8. Resolver la relacin de recurrencia


Fn = Fn-1+ Fn-2
Condiciones iniciales F1 = 1 y F2 = 2

126
Matemticas Discretas FMAT-L.C.C.

Unidad 3

1. Calcular los siguientes valores:


= 3.1416
e = 2.7182

2. Calcular los siguientes valores:


Ceiling (1.5)
Ceiling (-1.5)
Ceiling (5/2)
Floor (2.4)
Floor (-2.4)
Floor (-4/3)

3. Calcular los siguientes valores:


MOD (1/5)
MOD (-1/5)
MOD (4/3)
DIV (5/2)
DIV (2/4)
DIV (2/4)

4. Escribir un programa que encuentre los primeros 100 nmeros primos, en el lenguaje
de su preferencia

5. Los soldados de un cuartel no pasan de 500 y pueden formarse en grupos de 16, 20 y


25 sin que sobre ni falte ninguno. Cuntos soldados son?

127
Matemticas Discretas FMAT-L.C.C.

Unidad 4

1. Dibuja modelos de grafos, declarando (diciendo) el tipo de grafo usado para representar
rutas de aerolneas donde cada da hay:

4 vuelos de Boston a Newark


2 vuelos de Newark a Boston
3 vuelos de Newark a Miami
2 vuelos de Miami a Newark
1 vuelo de Newark a Detroit
2 vuelos de Detroit a Newark
3 vuelos de Newark a Washington
2 vuelos de Washington a Newark
1 vuelo de Washington a Miami

2. Determina si el grafo mostrado es un grafo simple, un multigrafo, un pseudografo, un grafo


dirigido o un multigrafo dirigido.

3. El grafo interseccin de una coleccin de conjuntos A1, A2,, An es el grafo que tiene un
vrtice por cada uno de sus conjuntos y tiene un arco conectando los vrtices que
128
Matemticas Discretas FMAT-L.C.C.

representan dos conjuntos si esos conjuntos tienen una interseccin no vaca. Construye el
grafo de interseccin de las siguientes colecciones de conjuntos:

4. En un torneo round-robin los Tigres le ganaron a los Azulejos, los Tigres ganaron a los
Cardenales, los Tigres ganaron a los Orioles, los Azulejos ganaron a los Cardenales, los
Azulejos ganaron a los Orioles y los Cardenales ganaron a los Orioles. Modele estos
resultados con un grafo dirigido.

5. Encuentra el nmero de vrtices, el nmero de arcos, y el grado de cada vrtice en el grafo


no dirigido dado. Identifica los vrtices aislados y los vrtices pendientes.

129
Matemticas Discretas FMAT-L.C.C.

6. Encuentra un grafo isomorfo al que se presenta.

7. Es posible obtener el resultado de la funcin floor empleando la funcin ceiling?


a. x = x
8. Es posible obtener el resultado de la funcin round(x) (que redondea a x al entero ms
cercano) empleando la funcin ceiling?
a. round(x) = x + 0.5
9. Considere los enteros mod 5. Esto nos da cinco clases de enteros, para las que las
representaciones estndar son 0, 1, 2, 3, 4. Por ejemplo 0 es la representacin estndar de
la clase { -10, -5, 0, 5, 10, 15}. Encuentra el conjunto de valores para [0], [1], , [4].
[0] = { -10, -5, 0, 5, 10, 15}
[1] = { -9, -4, 1, 6, 11, 16}
[2] = { -8, -3, 2, 7, 12, 17}
[3] = { -7, -2, 3, 8, 13, 18}
[4] = { -6, -1, 4, 9, 14, 19}
10. Resolver los siguientes problemas en Z7 para X:
X+3=6
X+5=3
X4=5
X+1=6
11. Encuentra la matriz de adyacencia para representar los grafos dados

130
Matemticas Discretas FMAT-L.C.C.

12. Dibuja el grafo con la matriz de adyacencia dada

13. Representa el siguiente grafo usando una matriz de adyacencia

14. Dibuja un grafo no dirigido representado por la matriz de adyacencia dada

15. Encuentra la matriz de adyacencia del multigrafo dirigido:

16. Dibuja el grafo representado por la matriz de adyacencia

17. Determina si los dos grafos dados son isomorfos

131
Matemticas Discretas FMAT-L.C.C.

18. Determina si los dos grafos dirigidos dados son isomorfos

19. 1. Son las siguientes listas de vrtices caminos en el siguiente grafo? Cules son
caminos simples? Cules son circuitos? Cules son las longitudes de aquellos que son
caminos?
a) a, e, b, c, d
b) a, e, a, d, b, c, a
c) e, b, a, d, b, e
d) c, b, d, a, e, c

20. Son las siguientes listas de vrtices caminos en el siguiente grafo? Cules son caminos
simples? Cules son circuitos? Cules son las longitudes de aquellos que son caminos?
a) a, b, e, c, d
b) a, d, a, d, a
c) a, d, b, e, a
d) a, b, e, c, b, d, a

21. Determine si los siguientes grafos son conexos

132
Matemticas Discretas FMAT-L.C.C.

22. Encuentre el nmero de caminos entre c y d en el grafo de la figura 1 de longitud 2, 3, y 4


23. Encuentre el nmero de caminos de a hacia e en el grafo dirigido del ejercicio 2 de
longitud 2, 3, y 4

24. Determina cul de los grafos tiene un circuito de Euler. Construya el circuito en caso de
existir.

25. Determine cul de los grafos tiene un circuito de Hamilton. Construya el circuito en caso de
existir

133
Matemticas Discretas FMAT-L.C.C.

Unidad 5

Ejercicios 1 de rboles

1. Cules de los siguientes grafos son rboles?

2. Contesta las siguientes preguntas acerca del siguiente rbol con raz

a) Cul es el vrtice raz?


b) Cules son los vrtices internos?
c) Qu vrtices son hojas?
d) Cules vrtices son los hijos de i?
e) Qu vrtice es el padre de h?
f) Cules son los hermanos de o?
g) Qu vrtices son ancestros de m?
h) Qu vrtices son descendientes de b?
3. Es el grafo del ejercicio anterior un rbol m-ario completo para algn entero positivo m?
4. Cul es el nivel de cada vrtice del rbol del ejercicio 2?
5. Dibuja el subrbol con raz en i del ejercicio 2
6. Cuntos arcos tendr un rbol con 10,000 vrtices?
7. Cuntos vrtices tendr un rbol 5-ario completo con 100 vrtices internos?
134
Matemticas Discretas FMAT-L.C.C.

8. Cuntos arcos tendr un rbol binario completo con 1,000 vrtices internos?
9. Cuntas hojas tendr un rbol 3-ario completo con 100 vrtices?

Ejercicios de rboles

1. En los siguientes grafos:


a. Hallar la matriz de adyacencia
b. Hallar la matriz de incidencia
c. Encontrar un rbol de expansin

2. dibuja el grafo con la matriz de adyacencia dada

3. Encontrar un rbol de expansin para el grafo de la siguiente figura:

4. Cmo son las matrices de adyacencia de dos grafos isomorfos?


5. En una conocida casa de venta por catlogo se premia a cada empleada por ingresar a 3 nuevas
vendedoras a la compaa. Algunas lo hacen y otras no. Si al cabo de un ao, existen 181 personas
nuevas en la compaa, incluyendo a la que inici esa cadena, cuntas empleadas llevaron a 3
nuevas vendedoras? cuntas empleadas no llevaron ms vendedoras?
Solucin:
Se tiene un rbol m-ario completo con
n vrtices tiene i = (n - 1)/m vrtices internos y l = [(m-1)n + 1]/m hojas
i vrtices internos tiene n = mi + 1 vrtices y l = (m-1)i +1hojas.
l hojas tiene n = (ml - 1)/(m - 1) vrtices y i = (l - 1)/(m - 1) vrtices internos

135
Matemticas Discretas FMAT-L.C.C.

a. Nmero de hijos: m=3


b. Nmero total de vrtices: n =181
c. Vrtices internos: i =(181 - 1)/3 = 60 personas llevaron a sus 3 vendedoras
d. Hojas: l = [(3-1)181 + 1]/3 = 121 personas no llevaron ms vendedoras
6. Si al final del segundo ao se sabe que hubieron 251 vendedoras nuevas que no invitaron a ms
gente, cuntas s lo hicieron? cunta gente hay en total ahora?
a. Nmero de hojas: l = 251
b. Vrtices internos: i = (251-1)/(3-1) = 125 vendedoras s llevaron a ms gente nueva
c. Nmero total de vrtices: n = (3*251)/(3-1) = 376 personas en total

Juego de coloreo de aristas, donde pierdes al formar un ciclo:


http://www.dbai.tuwien.ac.at/proj/ramsey/

Ejercicios 2 de rboles

10. Construye un rbol binario de bsqueda para las palabras: pltano, durazno, manzana,
pera, nuez, mango y papaya, usando el orden alfabtico.

11. Cuntas comparaciones necesitamos para localizar o para aadir las siguientes palabras
al rbol binario de bsqueda obtenido del ejercicio anterior?
a. Pera
b. Pltano
c. Kiwi
d. Naranja

12. Cuantas pesadas seran necesarias en una balanza para encontrar una moneda falsa (que
pesa menos) si se tienen 4 monedas? Dibuja el rbol de decisin que utilizaras.
13. Cules de los siguientes son cdigos prefijos?
a) a:11, e:00, t::10, s:01
b) a:0, e:1, t::01, s:001
c) a:101, e:11, t::001, s:011, n:010
d) a:010, e:11, t::011, s:1011, n:1001, i:10101

14. Cules son los cdigos para a, e, i, k, o, p y u si el esquema de codificacin es


representado por el siguiente rbol?

136
Matemticas Discretas FMAT-L.C.C.

1. Para los siguientes rboles con raz ordenados, etiqueta los vrtices usando el sistema de
direccionamiento universal.

2. Determine la lista que resulta del recorrido preorden de los siguientes grafos

3. Determine la lista que resulta del recorrido inorden de los grafos del ejercicio 2
4. Determine la lista que resulta del recorrido postorden de los grafos del ejercicio 2

137
Matemticas Discretas FMAT-L.C.C.

10. Bibliografa

1. Aho, Alfred; Ullman, Jeffrey. Foundations of Computer Sciencies. Editorial New


York, Computer Sciences Press, 1996.
2. Anderson, Ian. First Course in Discrete Mathematics. Springer, 1994
3. Anderson, James. Discrete Mathematics with Combinatorics. Prentice Hall, 2001
4. Baase, Sara. Computer Algorithms. Addison Wesley, 1998.
5. C. L. LIU, Elementos de Matemticas discretas. Mc Graw Hill. Mxico 1996.
6. Gajski Daniel D. Principios de diseo digital. Prentice Hall. Madrid 1997.
7. Graham, Knuth, Patashnik. Concrethe Matematics.
8. Grimaldi Ralph, Matemticas Discreta y combinatoria. Addison Wesley. Mxico
1990.
9. Johsonnbaugh, Richard. Matemticas Discretas. Editorial Iberoamericana. 1988.
10. Kenneth, Rosen. Discrete Mathematics and its Applications. Mc Graw Hill. 1991
11. Knuth, Donald. The Art of Computer Programming. Vol 1.
12. Mattson, H.F. Discrete Mathematics with Applications. John Wiley & Sons, 1993
13. Newman, James R. Sigma: El Mundo de las Matemticas. Editorial
Grijalbo. Barcelona, 1994.
14. Kolman, Bernard. Estructuras de matemticas discretas para la computacin.
Prentice Hall Hispanoamericana. Mxico 1995.
15. Ogata Katsuhiko, Sistemas de control tiempo discreto. Prentice Hall. Mxico
1996.
16. Oppenheim, Alan V. Seales y Sistemas. Prentice Hall Hispanoamericana.
Mxico 1998.
17. Tremblay Jean Paul, Matemticas Discretas. CECSA. Mxico 1996.

138

También podría gustarte