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

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

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

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: Horas: Hrs/Semana: Crditos: Clave: Segundo 56 T 16 P 4.5 9 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 Objetivo: Aplicar las tcnicas de lgica matemtica 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 (12 horas) en los procesos

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 3 Exmenes. Tareas Total PUNTUACIN 80 20 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.

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 x3 y

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 Una compuerta Y (AND) se dibuja de la siguiente manera: x1 x2 x1 x2

FMAT-L.C.C.

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 1 1 0 0 x2 1 0 1 0 x1

x2
1 1 1 0

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

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:

1 si x=0 0 si x=1

La Tabla Lgica para una compuerta NO es la siguiente: x 1 0 Una compuerta NO se dibuja de la siguiente manera: x Ejemplo: Determine la tabla lgica de los siguientes circuitos: x1 x2 x3 x1 1 1 1 0 0 0 1 0 x2 1 1 0 1 0 1 0 0 x3 1 0 1 1 1 0 0 0 x1 x2 1 1 0 0 0 0 0 0

x
0 1

x3
0 1 0 0 0 1 1 1

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

Matemticas Discretas x1 x2

FMAT-L.C.C.

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

x1 1 1 1 0 0 0 1 0

x2 1 1 0 1 0 1 0 0

x3 1 0 1 1 1 0 0 0

x1

1 1 0 0 0 0 0 0

x2

x1 x3
0 1 0 1 1 1 1 1

(x1 x2) ( x1 x3 ) 1 1 0 1 1 1 1 1

x3
0 1 0 0 0 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 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

d) x1 x2

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. 2. 3. 4. 5.

( x1 x2 ) ( x1 ) (( x1 x2 ) x3 ) ( x3 x2 )

( x1 x3 ) ( x1 ( x2 x3 )) (( x1 x2 x3 ) ( x1 x3 )) x2 (( 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. 1. 2. 3. Determinar el valor de las expresiones booleanas para x1=1, x2=1, x3=0, x4=1

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 CIRCUITOS DE CONMUTACIN

FMAT-L.C.C.

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 como el -A est cerrado. Se dice que la salida es 1 si el A en la figura, est abierto si y solo si el interruptor 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 Propiedades de los circuitos combinatorios

FMAT-L.C.C.

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 c)

a, b Z2

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 1 1 1 1 0 0 0 0 B 1 1 0 0 1 1 0 0 C 1 0 1 0 1 0 1 0 a (b c) 1 1 1 0 0 0 0 0 (a b) (a c) 1 1 1 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 Solucin. Las expresiones booleanas que los representan son:

FMAT-L.C.C.

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 0 0 1 1

b 0 1 0 1

y1 1 0 0 0

a 0 0 1 1

b 0 1 0 1

y1 1 0 0 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 Algebra Booleana

FMAT-L.C.C.

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 c) Leyes de absorcin x+xy=x x (x + y) = x xS

FMAT-L.C.C.

x, y S

d) Ley de involucin (x) = x e) f) Leyes del 0 y 1 0 = 1 1 = 0

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 = (x+1) (x+x) = x + 1 x = x + x 1 = x + x =1 por (d) e c b d e

Tarea: Demostrar x 0 = 0 c) x + x y = x 1 + xy = x ( 1 + y) = x (y + 1) =x d c b 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 B) C) D) E) xy=yx xy=yx x, y P(U) x, y, z P(U) x P(U) x P(U)

FMAT-L.C.C.

x (y z) = (x y) (x z) x (y z) = (x y) (x z) x=x x -x = xU=x x -x =

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 0 0 1 1 X2 0 1 0 1 X1 X2 0 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 0 0 0 0 1 1 1 1 X2 0 0 1 1 0 0 1 1 X3 0 1 0 1 0 1 0 1 F(X1 , X2 , X3) 0 0 0 0 1 1 0 1

Ejemplo. Demostrar que la funcin f que corresponde a la tabla siguiente es una funcin booleana. X1 0 0 0 0 1 1 1 1 X2 0 0 1 1 0 0 1 1 X3 0 1 0 1 0 1 0 1 F(X1 , X2 , X3) 1 0 0 1 0 1 0 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 xj si aj = 1 si aj = 0 xj 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 0 si A = Ai si A Ai 23 Yj =

Matemticas Discretas 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.

FMAT-L.C.C.

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 0 0 0 0 1 1 1 1 X2 0 0 1 1 0 0 1 1 X3 0 1 0 1 0 1 0 1 x1 x2 0 0 1 1 1 1 1 1 (x1 x2) x3 0 0 0 1 0 1 0 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 0 0 1 1 X2 0 1 0 1

X1 X2 0 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 EJERCICIOS I.

FMAT-L.C.C.

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

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 A

B B

C C

26

Matemticas Discretas

FMAT-L.C.C.

A de A a C, lo que hicimos B Si observamos, para mover los 3 discos 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:

n-1

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 = 3x2 Entonces: As: Tambin tenemos: Donde: Entonces: an = an-1 + 2an-2 Esta es de nuevo una relacin de recurrencia de segundo orden. -EJERCICIOS I. 1. 2. an = Encontrar los 5 primeros elementos de la secuencia que se forma con las siguientes relaciones de recurrencia. Intentar encontrar una frmula para la secuencia. an n-1 = 3x2n-1 (no. de banderas con la raya de abajo igual a la primera) (no. de banderas de n-1 rayas con la raya de abajo diferente de la primera) an = 3x2n-1 an-1 an + an-1 = 3x2n-1 an-1 + an-2 = 3x2n-2 2(an-1 + an-2) = 3x2n-1 = an + an-1

1 an-1 +1, a1 =1 2

an = 5an-1 - 6an-2, a1 =-1, a2 =1 29

Matemticas Discretas 3. 4. II. an = 6an-1 - 9an-2, a1 =1, a2 =9 an = 4an-1 - 3an-2 + 2n, a1 =1, a2 =11

FMAT-L.C.C.

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) 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:
n

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 la frmula general que es: x = -EJEMPLO 5 (Continuacin). La secuencia de Fibonacci (Fn) est dada por

b b 2 4ac 2a

La ecuacin auxiliar x2-x-1=0 tiene como soluciones

1 (1 5 ) , as 2

Donde tal que:

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

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 -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:

5.

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 Ahora por el TEOREMA 1 sabemos que an = Kn , es decir, an = K(-1)n.

FMAT-L.C.C.

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. 2. 3. 4. Se obtiene la solucin general de la ecuacin homognea asociada Se obtiene una solucin particular de la relacin de recurrencia no homognea 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. 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 9 9 9 9 Straight merging Natural merging Balanced multiway merging Poiyphase sort Distribution of initial runs

34

Matemticas Discretas Clasificacin de los algoritmos de ordenamiento de informacin:

FMAT-L.C.C.

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 nsimo 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 5 pasada 08 15 16 6 pasada 08 12 15 7ma pasada 08 12 15 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; } }

44 27 16 16

67 44 27 27

27 67 44 35

12 12 67 44

35 35 35 67

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 Las siguientes iteraciones seran: 3 iteracin


16 64 80 90 120 320 200 96

FMAT-L.C.C.

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 Cuarta Pasada 08 12 15 Quinta Pasada 08 12 15 Sexta Pasada 08 12 15 16 16 16 67 27 27 27 27 27 67 35 35 35 35 35 67 44 44 44 44 44 67 67 38

Septima Pasada 08 12 15 16

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 Se dividen los elementos en 2 grupos:

FMAT-L.C.C.

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 Donde k = 1, 2, 3, Ejemplo2:

FMAT-L.C.C.

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 --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) . .. = a f (n / b ) +
k k k 1 j =0

donde n es par

g (n / b j )

Ya que n/bk = 1, tenemos f(n) = a f (1) +


k

a
j =0

k 1

g (n / b j )
44

Matemticas Discretas Teorema1. Sea f una funcin creciente que satisface la relacin de recurrencia f(n) = af(n/b) + c

FMAT-L.C.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) O(nd logn) O(nlogba) si a < bd si a = bd 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

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 a . Para redondear un nmero a exactamente dos dgitos, por ejemplo para redondear 3.14159 a 3.14 podemos usar la frmula

x y

100 x .
100

O tambin para redondear al nmero ms cercano (de dos

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 subintervalo est y, y la respuesta es

y + 1 . Por ejemplo el nmero 0.07 cae en el segundo 0.05

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

0.07

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

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

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

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

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 Modulo Aritmtico

FMAT-L.C.C.

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 El problema de las dos reinas (Con el uso de las funciones floor y mdulo)

FMAT-L.C.C.

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 respectivamente

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

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 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:

V, u v}. Los arcos e1 y e2 son llamados arcos

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. 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.

V}. Un arco es un lazo si f(e) = {u} para algn u

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 = 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

V }. Los arcos e1 y e2 son arcos mltiples si f(e1)

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 Grafo simple Multigrado Pseudografo Grafo dirigido Multigrafo dirigido Arcos No dirigido No dirigido No dirigido Dirigido Dirigido Arcos mltiples permitidos No Si Si No Si lazos permitidos No No Si 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 Terminologa de grafos

FMAT-L.C.C.

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 (outdegree) 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 Algunas aplicaciones de los tipos especiales de grafos

FMAT-L.C.C.

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 Caminos (Paths)

FMAT-L.C.C.

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 Ejemplo 6. Determine si los grafos G y H de la figura 6 son isomorfos.

FMAT-L.C.C.

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 Condiciones necesarias y suficientes para los caminos y circuitos de Euler

FMAT-L.C.C.

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. ii. iii. 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.

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 es completo y balanceado, entonces, = Aplicaciones de los rboles

log m l . Si el rbol m-ario

log m l .

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 Algoritmos de recorrido

FMAT-L.C.C.

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. 7. 8. 9.

( x1 x2 ) ( x1 ) (( x1 x2 ) x3 ) ( x3 x2 ) ( x1 x3 ) ( x1 ( x2 x3 ))

(( 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 6. Encuentra un grafo isomorfo al que se presenta.

FMAT-L.C.C.

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 12. Dibuja el grafo con la matriz de adyacencia dada

FMAT-L.C.C.

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. 5.

Cmo son las matrices de adyacencia de dos grafos isomorfos? 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.

6.

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 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