Vous êtes sur la page 1sur 97

UNIDAD 4

Algebra booleana
Definicin: El lgebra de Boole es un retculo (A, 1,0, , +), donde el conjunto A = {1,0}, como retculo presenta las siguientes propiedades, las leyes principales son estas: 1. Ley de Idempotencia:

2. Ley de Asociatividad:

3. Ley de Conmutatividad:

4. Ley de Cancelativo

Boole tiene Estructura algebraica de Anillo:


Grupo abeliano respecto a (+) El conjunto A es un Grupo abeliano respecto a (+):

1. (+) es una operacin interna en A:

2. Es asociativa: 3. Tiene elemento neutro 4. Tiene elemento simtrico:

5. es conmutativa:

Grupo abeliano respecto a () El conjunto A es un Grupo abeliano respecto a ( ): 6. ( ) es una operacin interna en A:

7. Es asociativa:

8. Tiene elemento neutro

9. Tiene elemento simtrico:

10. es conmutativa:

El conjunto A={0,1} es un Grupo abeliano respecto a ( ):

6. ( ) es una operacin interna en A:

7. Es asociativa:

8. Tiene elemento neutro

9. Tiene elemento simtrico:

10. es conmutativa:

Distributivo El conjunto A es un Grupo abeliano respecto a (+) y ( ) y es distributiva: 11. La operacin (+) es distributiva respecto a ( ):

12. La operacin ( ) es distributiva respecto a (+):

Como resultado podemos decir que el lgebra de Boole tiene Estructura algebraica de anillo conmutativo y con elemento neutro respecto a las dos operaciones (+) y ( ).

Operaciones Hemos definido el conjunto A = {1,0} como el conjunto universal sobre el que se aplica el lgebra de Boole, sobre estos elementos se definen varias operaciones, veamos las ms fundamentales: Operacin suma La operacin suma (+) asigna a cada par de valores a, b de A un valor c de A:

aba+b 000

Su equivalencia en lgica de interruptores es un circuito de dos interruptores en paralelo.

011 101 111

Si uno de los valores de a o b es 1, el resultado ser 1, es necesario que los dos sumandos sean 0, para que el resultado sea 0.

Operacin producto aba b 000 010 100

La operacin producto ( ) asigna a cada par de valores a, b de A un valor c de A:

111

Esta operacin en lgica de interruptores es un circuito en serie de dos interruptores

solo si los dos valores a y b son 1, el resultado ser 1, si uno solo de ellos es 0 el resultado ser 0.

Operacin negacin La operacin negacin presenta el opuesto del valor de a:

a 01

Un interruptor inverso equivale a esta operacin:

10

Operaciones combinadas

Partiendo de estas tres operaciones elementales se pueden realizar otras ms complejas, que podemos representar como ecuaciones booleanas, por ejemplo:

ab 001 011

Que representado en lgica de interruptores es un circuito de dos interruptores en paralelo, siendo el primero de ellos inverso.

100 111

La distinta secuencia de valores de a y b da los resultados vistos en la tabla de verdad.

Leyes fundamentales El resultado de aplicar cualquiera de las tres operaciones definidas a variables del sistema booleano resulta en otra variable del sistema, y este resultado es nico. 1. Ley de idempotencia:

2. Ley de involucin:

3. Ley conmutativa:

4. Ley asociativa:

5. Ley distributiva:

6. Ley de cancelacin:

7. Leyes de De Morgan:

Principio de dualidad El concepto de dualidad permite formalizar este hecho: a toda relacin o ley lgica le corresponder su dual, formada mediante el intercambio de los operadores unin (suma lgica) con los de interseccin (producto lgico), y de los 1 con los 0.

Adems hay que cambiar cada variable por su negada. Esto causa confusin al aplicarlo en los teoremas bsicos, pero es totalmente necesario para la correcta aplicacin del principio de dualidad. Vase que esto no modifica la tabla adjunta. Adicin 1 2 3 4 5 6 7 8 9 En matemtica se emplea la notacin empleada hasta ahora ({0,1}, + , ) siendo la forma ms usual y la ms cmoda de representar. Por ejemplo las leyes de De Morgan se representan as: Producto Otras formas de notacin del lgebra de Boole

Cuando el lgebra de Boole se emplea en electrnica, suele emplearse la misma denominacin que para las puerta lgica AND (Y), OR (O) y NOT (NO), amplindose en ocasiones con X-OR (O exclusiva) y su negadas NAND (NO Y), NOR (NO O) y X-NOR (equivalencia). las variables pueden representarse con letras maysculas o minsculas, y pueden tomar los valores {0, 1} Empleando esta notacin las leyes de De Morgan se representan:

En su aplicacin a la lgica se emplea la notacin valores {F, V}, falso o verdadero, equivalentes a {0, 1}

y las variables pueden tomar los

Con la notacin lgica las leyes de De Morgan seran as:

En el formato de Teora de conjuntos el lgebra de Boole toma el aspecto: En esta notacin las leyes de De Morgan seran as:

Desde el punto de vista practico existe una forma simplificada de representar expresiones booleanas. Se emplean apstrofes () para indicar la negacin , la operacin suma (+) se representa de la forma normal en lgebra, y para el producto no se emplea ningn signo, las variables se representan, normalmente con una letra mayscula, la sucesin de dos variables indica el producto entre ellas, no una variable nombrada con dos letras. La representacin de las leyes de De Morgan con este sistema quedara as, con letra minsculas para las variables:

y as, empleando letras maysculas para representar las variables:

Todas estas formas de representacin son correctas, se utilizan de hecho, y pueden verse al consultar bibliografa. La utilizacin de una u otra notacin no modifica el lgebra de Boole, solo su aspecto, y depende de la rama de las matemticas o la tecnologa en la que se est utilizando para emplear una u otra notacin.

lgebra de Boole aplicada a la informtica Se dice que una variable tiene valor booleano cuando, en general, la variable contiene un 0 lgico o un 1 lgico. Esto, en la mayora de los lenguajes de programacin, se traduce en false (falso) o true (verdadero), respectivamente. Una variable puede no ser de tipo booleano, y guardar valores que, en principio, no son booleanos; ya que, globalmente, los compiladores trabajan con esos otros valores, numricos normalmente aunque tambin algunos permiten cambios desde, incluso, caracteres, finalizando en valor booleano. .. El 0 lgico

El valor booleano de negacin suele ser representado como false, aunque tambin permite y equivale al valor natural, entero y decimal (exacto) 0, as como la cadena false, e incluso la cadena 0. El 1 lgico

En cambio, el resto de valores apuntan al valor booleano de afirmacin, representado normalmente como true, ya que, por definicin, el valor 1 se tiene cuando no es 0. Cualquier nmero distinto de cero se comporta como un 1 lgico, y lo mismo sucede con casi cualquier cadena (menos la false, en caso de ser sta la correspondiente al 0 lgico).

10

4.1 Teoremas y postulados


Teoremas Teorema 1: Multiplicacin por cero (identidad) Es el factor neutro: Suma: a+1=!--------Producto: a0=0 Teorema 2: Absorcin En la suma se identifica primero de forma aislada y luego multiplicando a otra expresin. Suma: A+(AB)=A----------Producto: A(A+B)=A Teorema 3: Cancelacin I Es cuando se encuentra una expresin sumada o multiplicada con su complemento: Suma: A+A'B=A+B-------Producto: A(A'+B)=AB

Teorema 4: Cancelacin II Se identifica en 2 trminos que comparten un factor comn y otro que no es comn, uno de ellos es el complemento de la otra: Suma: AB+A'B = B--------Producto:(A+B)(A'+B)=B

Teorema 5: Idempotencia Si se suma o multiplica el termino n nmero de veces, dar por resultado el mismo. Suma: A+A+A=A---------Producto:(A)(A)(A)=A

Teorema 6: Consenso Se encuentran 2 trminos que contengan una expresin en uno afirmada y en otro negada, anotar los trminos con que se multiplica uno y otro, al final se busca otro elemento o termino que sea la multiplicacin de estos 2 ltimos, este ltimo se multiplica. Suma: AB+A'C+BC=AB+A'C---------------Producto: (A+B)(A'+C)(B+C)=(A+B)(A'+C)

Teorema 7: De Morgan Si hay suma complementada se puede hacer el producto de cada parte con su complemento. Suma: |A+B|=A'B'---------------Producto: |AB|=A'+B'

Teorema 8: Involucin El complemento de un complemento es el termino sin complementos.----||A=A

Teorema 9: Complemento de neutros El complemento de la nada es el todo y el del todo es la nada.0'=1----1'=0

11

Postulados

Postulado 1: Definicin En un sistema algebraico definido en un conjunto B, que contiene 2 o ms elementos donde pueden darse solo 2 operaciones, la suma u operacin "OR" y la multiplicacin o multiplicacin "AND"

Postulado 2: Identidad (existencia de neutros)En B, el elemento neutro de la suma determinada "0" y en la multiplicacin "!" donde X en B: a)n+0=X------------ b)X1=X

Postulado 3: Conmutatividad Para cada X,Y,Z en B: a)X+Y=Y+X-----b)XY=YX

Postulado 4: Asociatividad Para cada X,Y,Z en B: a)X+(Y+Z)=(X+Y)+Z---------b)X(YZ)=(XY)Z

Postulado 5: Distributividad Para cada X,Y,Z en B: a)X+(YZ)=(X+Y)(X+Z)-----------b)X(Y+Z)=(XY)+(XZ)

Postulado 6: Existencia de complemento Para cada X en B existe un elemento nico denotado por X' complemento tal que: a)X+X'= 1-------b)XX'=0

Ejemplos: x+x=x x + x = (x + x) . 1 x + x = (x + x) (x + x) x + x = x + xx x+x=x+0 x+x=x x + xy = x x . 1 + xy = x x (1 + y) = x x (y + 1) = x x (1) = x x=x

12

4.2 Optimizacin de expresiones booleanas.


Las expresiones booleanas se usan para determinar si un conjunto de una o ms condiciones es verdadero o falso, y el resultado de su evaluacin es un valor de verdad. Los operandos de una expresin booleana pueden ser cualquiera de los siguientes:

Expresiones relacionales: que comparan dos valores y determinan si existe o no una cierta relacin entre ellos (ver ms adelante), tal como mfn<10; Funciones booleanas: tal como p (v24), que regresa un valor de verdad (estos se explican bajo "Funciones booleanas"). Las expresiones relacionales permiten determinar si una relacin dada se verifica entre dos valores. La forma general de una expresin relacional es:

Expresin-1 operador-de-relacin expresin-2 Dnde:


Expresin-1 es una expresin numrica o de cadena Operador-de-relacin es uno de los siguientes: = Igual No igual (diferente de) < Menor que <= Menor o igual que Mayor que >= Mayor o igual que Contiene (puede ser usado slo en expresiones de cadena)

Expresin-2 es una expresin del mismo tipo que expresin-1, o sea, expresin- 1 y expresin-2 deben ser ambas expresiones numricas o ambas expresiones de cadena. Los operadores de relacin = <> < <= > >=tienen su significado convencional cuando se aplican a expresiones numricas (dentro de los lmites de precisin de los valores numricos definidos bajo "Expresiones numricas"). Cuando se comparan expresiones de cadena, se aplican las siguientes reglas:

Excepto por el operador ":" (contiene), las cadenas se comparan exactamente en la forma en que ocurren, o sea, las letras maysculas y minsculas se comparan de acuerdo con el cdigo ASCII que les corresponde (p.ej. A ser considerada menor que a); Dos expresiones de cadena no son consideradas iguales, a menos que tengan la misma longitud. Si dos expresiones generan cadenas de diferente longitud que son idnticas, carcter por carcter, hasta el total de la longitud de la ms corta, entonces, la ms corta ser considerada menor que la ms larga.

El operador: (contiene), busca una cadena de caracteres (definida por expresin-2) en otra cadena (definida por expresin-1). Si el segundo operando existe en cualquier parte del

13

segundo operando, el resultado es Verdadero (TRUE). Este operador es insensible al hecho de que los caracteres se hallen en maysculas o minsculas: por lo que las letras minsculas se consideran iguales a su letra mayscula correspondiente. Por ejemplo, el resultado de: v10: 'qumica' Ser Verdadero (True) si, y slo si, el campo 10 contiene la cadena qumica en caso contrario, el resultado ser Falso (False). Ntese que el segundo operando puede ser cualquier cadena o carcter, y no necesita ser una palabra como tal. Por lo tanto, en este ejemplo, el resultado ser Verdadero no slo si el campo 10 contiene la palabra qumica, sino tambin si contuviera bioqumica, fotoqumicas, qumicamente, etc. Los operandos de una expresin booleana pueden combinarse con los operadores siguientes:

NOT (NO) Este operador produce el valor Verdadero, si su operando es Falso; y el valor Falso, si su operando es Verdadero. El operador NOT slo puede usarse como operador signo +, o sea, siempre se aplica a la expresin booleana que le sigue; AND (Y) Este operador produce el valor Verdadero si ambos operandos son Verdadero. Si cualquiera de los dos operandos es Falso, entonces el resultado ser Falso; OR (O) Este operador realiza una operacin O-inclusivo. El resultado es Verdadero si cualquiera de los dos operandos, o ambos son Verdadero. En caso contrario, es Falso.

Al evaluar expresiones booleanas, y en ausencia de parntesis, CDS/ISIS ejecutar las operaciones NOT en primer lugar, despus las operaciones AND, y finalmente las OR. Las series de dos o ms operadores del mismo nivel, se ejecutan de izquierda a derecha. Se pueden usar parntesis para alterar el orden de evaluacin: las expresiones dentro de parntesis se evalan antes, y las expresiones entre parntesis internos a otros, son evaluadas antes que las expresiones externas a los parntesis. Ahora podemos optimizar nuestra funcin booleana y lo reducen en una forma ms compacta. Tome la funcin anterior F = x1x2 + x1 Podemos reducir la funcin mediante el uso de las reglas bsicas de lgebra y tcnicas... F = (x1) (x2 +1) He tomar x1 comn

Ahora el segundo trmino (x2 +1) le dar un valor, independientemente de cualquier valor de x2, ya que tiene una constante por lo que puede reemplazar a (x2 +1) por lo tanto uno se convierte en F

F = (x1) (1) F = x1

14

As que tenemos que reducir la funcin en forma ms sencilla mediante el uso de las tcnicas bsicas de lgebra. Ahora nos encontramos con la salida de esta funcin.

X1 0 1 0 1

F 0 1 0 1

As que usted puede ver que parte de la salida de esta funcin es igual que la salida de la funcin anterior, porque en realidad ambos son las mismas funciones y hemos reducido la funcin ms simple en el uso de tcnicas de lgebra y los teoremas de nuestra propia simplicidad. As que si se le da cualquier funcin de Boole primero trate de reducir en forma ms sencilla para que pueda obtener la salida fcil.

4.3 Aplicacin del lgebra booleana (Compuertas lgicas)


Las compuertas lgicas son dispositivos que operan con aquellos estados lgicos mencionados en lo anterior y funcionan igual que una calculadora, de un lado ingresas los datos, sta realiza una operacin, y finalmente, te muestra el resultado.

Cada una de las compuertas lgicas se las representa mediante un Smbolo, y la operacin que realiza (Operacin lgica) se corresponde con una tabla, llamada Tabla de Verdad, veamos la primera. Compuerta NOT Se trata de un inversor, es decir, invierte el dato de entrada, por ejemplo; si pones su entrada a 1 (nivel alto) obtendrs en su salida un 0 (o nivel bajo), y viceversa. Esta compuerta dispone de una sola entrada. Su operacin lgica es s igual a a invertida

15

Compuerta AND Una compuerta AND tiene dos entradas como mnimo y su operacin lgica es un producto entre ambas, no es un producto aritmtico, aunque en este caso coincidan.*Observa que su salida ser alta si sus dos entradas estn a nivel alto*

Compuerta OR Al igual que la anterior posee dos entradas como mnimo y la operacin lgica, ser una suma entre ambas... Bueno, todo va bien hasta que 1 + 1 = 1, el tema es que se trata de una compuerta O Inclusiva es como a y/o b*Es decir, basta que una de ellas sea 1 para que su salida sea tambin 1*

Compuerta OR-EX o XOR Es OR EXclusiva en este caso con dos entradas (puede tener ms) y lo que har con ellas ser una suma lgica entre a por b invertida y a invertidapor b.*Al ser O Exclusiva su salida ser 1 si una y slo una de sus entradas es 1*

16

Estas seran bsicamente las compuertas ms sencillas. Compuertas Lgicas CombinadasAl agregar una compuerta NOT a cada una de las compuertas anteriores los resultados de sus respectivas tablas de verdad se invierten, y dan origen a tres nuevas compuertas llamadas NAND, NOR y NOR-EX. Veamos ahora como son y cul es el smbolo que las representa... Compuerta NAND Responde a la inversin del producto lgico de sus entradas, en su representacin simblica se reemplaza la compuerta NOT por un crculo a la salida de la compuerta AND.

Compuerta NOR El resultado que se obtiene a la salida de esta compuerta resulta de la inversin de la operacin lgica o inclusiva es como un no a y/o b. Igual que antes, solo agregas un crculo a la compuerta OR y ya tienes una NOR.

17

Compuerta NOR-EX Es simplemente la inversin de la compuerta OR-EX, los resultados se pueden apreciar en la tabla de verdad, que bien podras compararla con la anterior y notar la diferencia, el smbolo que la representa lo tienes en el siguiente grfico.

Buffer's En realidad no realiza ninguna operacin lgica, su finalidad es amplificar un poco la seal (o refrescarla si se puede decir). Como puedes ver en el siguiente grfico la seal de salida es la misma que de entrada.

18

4.3.1 Mini y maxi trminos.


MINITRMINO (mi): Trmino producto en el que aparecen todas las variables, yasean complementadas o sin complementar. FRMULA CANNICA DISYUNTIVA O DE MINITRMINOS : suma de mintrminos (Suma de Productos).Dada la lista completa de mintrminos y asignando 1's y 0's arbitrariamente a las variables, siempre hay un, y slo un, minitrmino que toma el valor 1. Un mintrmino es un trmino producto que es 1 exactamente en una lnea de la tabla de Verdad. La frmula compuesta por todos los mintrminos ser idnticamente 1. Cada frmula de conmutacin puede expresarse como suma de mintrminos. Y esa frmula es nica. Algunas veces es conveniente expresar la funcin booleana en la forma de suma de miniterminos. Si no puede hacerse en esta forma entonces puede realizarse primero por la expansin de la expresin en una suma de los trminos AND. Despus cada trmino se inspecciona para ver si contiene todas las variables, si se han perdido una o ms variables, se aplica el operador AND con una expresin x+x en donde x es una de las variables perdidas. NOTACIN: Un mintrmino se designa por "mi" siendo i el nmero decimal correspondiente de la tabla de verdad. Para el producto, el 0 se asocia a la variable complementada y el 1 a la variable sin complementar.

EJEMPLO:C B A F(C,B,A) 0001 0010 0101 0111 1000 1010 1100 1111 F(C,B,A) = m0 + m2 + m3 +m7 = S m(0,2,3,7) F(C,B,A) = C'B'A' + C'BA' + C'BA + CBA O bien F(C,B,A) = CBA + CBA + CBA + CBA

19

Ejemplo: Expresar la funcin F = A+BC en una suma de miniterminos. F= A+BC F(A,B,C) A= A(B+B) = AB+AB = AB(C+C) + AB(C+C) = ABC + ABC + ABC +ABC BC = BC (A+A) = ABC + ABC F = ABC+ABC+ABC+ABC+ABC+ABC F = ABC+ABC +ABC+ABC+ABC F = m1+ m4+m5+ m6+ m7 F(A,B,C)=SUM(1,4,5,6,7)

La sumatoria representa al operador OR que opera en los trminos y nmeros siguientes son los minitrminos de la funcin. Las letras entre parntesis que siguen a F forman una lista de las variables en el orden tomado cuando el minitrmino se convierte en un trmino AND.

MAXTRMINO (Mi): trmino suma en el que aparecen todas las variables, ya sean complementadas o sin complementar. FRMULA CANNICA CONJUNTIVA O DE MAXTRMINOS: producto de maxtrminos (Producto de sumas). Dada la lista completa de maxtrminos y asignando 1s y 0s arbitrariamente a las variables, siempre hay un y slo un maxtrmino que toma el valor 0. Un maxtrmino es un trmino suma que es 0 exactamente en una lnea de la tabla de verdad. La frmula compuesta por todos los maxtrminos ser idnticamente 0. Cada frmula puede expresarse como producto de maxtrminos. Y es nica. NOTACIN: Un maxtrmino se designa por Mi siendo i el nmero decimal correspondiente de la tabla de verdad. En la suma, el 1 se asocia a la variable complementada y el 0 a la variable sin complementar.

20

EJEMPLO:C B A F(C,B,A) 0001 0010 0101 0111 1000 1010 1100 1111 F(C,B,A) = M1 M4 M5 M6 = P M(1,4,5,6) F(C,B,A) = (C+B+A') (C'+B+A) (C'+B+A') (C'+B'+A) O bien: F(C,B,A) = (C+B+A) (C+B+A) (C+B+A) (C+B+A)

21

Unidad 5
Relaciones
Objetivo: Comprender el uso de las relaciones en el diseo y anlisis de problemas computacionales relacionados con base de datos, estructura de datos, graficacin, sistemas operativos, redes y programacin Actividades de Aprendizaje:

Investigar los conceptos de: producto cartesiano, relacin y relacin binaria, utilizando diferentes fuentes de informacin. Utilizando conjuntos, matrices y diagramas de flechas presentar ejemplos de relaciones. Resolver en equipo ejercicios de operaciones que pueden realizarse entre relaciones: unin, interseccin, complemento, inversa y composicin. Construir individualmente un esquema que presente las propiedades de una relacin con su definicin formal y ejemplos. Encontrar las clases de equivalencia y particin de una relacin de equivalencia. Determinar cundo una relacin sea de orden parcial y determinar el diagrama de Hasse de dicha relacin. Realizar un cuadro comparativo entre una relacin de equivalencia y un orden parcial, identificando sus coincidencias y diferencias. Usar software para llevar a cabo operaciones entre relaciones as como para determinar las caractersticas de estas relaciones. Elaborar un resumen con las aplicaciones de las relaciones de equivalencia y orden parcial en las ciencias computacionales. Examinar la definicin de una funcin, resumir las diferencias con respecto al concepto de relacin. Analizar los diferentes tipos de funciones: inyectiva, suprayectiva, biyectiva. Presentar ejemplos del ambiente cotidiano donde se muestre el comportamiento de estas funciones, representar grficamente los resultados. Realizar una presentacin electrnica, en grupo de trabajo, donde se explique la aplicacin de las relaciones y las funciones en al menos una de las siguientes reas de la computacin: bases de datos (relacionales), estructura de datos (listas enlazadas), graficacin, sistemas operativos, redes y programacin.

22

Una relacin

, de los conjuntos

es un subconjunto del producto cartesiano

Una Relacin binaria es una relacin entre dos conjuntos. El concepto de relacin implica la idea de enumeracin, de algunos de los elementos, de los conjuntos que forman tuplas.

Un caso particular es cuando todos los conjuntos de la relacin son iguales: en este caso se representa como , pudindose decir que la relacin pertenece a A a la n.

En las relaciones se diferencian los tipos segn el nmero de conjuntos en el producto cartesiano, que es el nmero de trminos de la relacin: Relacin unaria: un solo conjunto Relacin binaria: con dos conjuntos Relacin ternaria: con tres conjuntos Relacin cuaternaria: con cuatro conjuntos ... Relacin n-aria: caso general con n conjuntos

23

5.1 Conceptos baSICOS


Dados dos conjuntos A y B, el producto cartesianos de estos dos conjuntos es el conjunto formado por todos los pares ordenados (a,b) donde a es un elemento de A y b es un elemento de B.

Relacin Dados dos conjuntos A y B una relacin es un subconjunto del producto cartesiano A x B. Un elemento a, que pertenece al conjunto A, est relacionado con un elemento b, que pertenece al conjunto B, si el par (a, b) pertenece a un subconjunto G (llamado grafo) del producto cartesiano A x B. Ejemplo: Sean A = {a, b, c} y B = {1, 2} dos conjuntos. El producto cartesiano A x B = {(a,1), (a,2), (b,1), (b,2), (c,1), (c,2)}. Una relacin sera R = {(a,1),(c,2)}. A las relaciones tambin se les llama correspondencias.

5.1.1 Producto cartesiano


Considere dos conjuntos arbitrarios A y B. El conjunto de todas las parejas ordenadas (a, b) en donde a A y b B se llama producto o producto cartesiano de A y B. La definicin de producto cartesiano puede extenderse fcilmente al caso de ms de dos conjuntos.

24

Se llama producto cartesiano de dos conjuntos A y B y se representa A x B, al conjunto de pares ordenados (a, b), tales que el primer elemento pertenece al primer conjunto y el segundo elemento al segundo conjunto. Es decir: A x B = {(a, b) / a A, b B} El producto cartesiano, en general, no es conmutativo. Es decir: A x B B x A. Puede ocurrir que los conjuntos A y B sean coincidentes.

EJEMPLO: Si A = {a, b, c} y B = {1, 2, 3, 4}, el producto cartesiano es: A x B = {(a, 1), (a, 2), (a, 3), (a, 4), (b, 1), (b, 2), (b, 3), (b, 4), (c, 1), (c, 2), (c, 3), (c, 4)} Se puede representar grficamente por medio de puntos en un plano, como se muestra a continuacin. Aqu, cada punto P representa una pareja ordenada (a, b) de nmeros reales y viceversa; la lnea vertical a travs de P encuentra al eje x en a, y la lnea horizontal a travs de P encuentra el eje y en b. A esta representacin se le conoce como diagrama cartesiano.

25

Hay otra manera de visualizar una relacin y es a travs de una representacin grfica, donde se destaquen los puntos en el plano que pertenecen a A y los puntos que pertenecen a B. Se trazan flechas que indican la relacin que existe entre cada elemento del conjunto A y su correspondiente en el conjunto B. A esta representacin grfica se le conoce como un diagrama de flechas.

5.1.2 RELACIN BINARIA


La relacin binaria definida en un conjunto A es un subconjunto del producto cartesiano A x A. EJEMPLO:

Sea el conjunto A = {x, y, z}. El grafo de la siguiente figura representa una relacin binaria definida en A, puesto que los pares (x, z), (y, x) (y, y) constituyen un subconjunto de A x A.

Se dice que dos elementos a y b estn relacionados, y se escribe a R b, a est relacionado con b mediante la relacin binaria R, cuando el par ordenado (a, b) pertenece al subconjunto del producto cartesiano que define la relacin. Si dos elementos a y b no estn relacionados mediante R en algn sentido, escribiremos a R b o b R a o ambas cosas.

Propiedades de una relacin binaria

26

Las principales propiedades que puede presentar una relacin binaria R definida en un conjunto A se indican en la siguiente tabla, junto con sus respectivas condiciones.

5.1.3 Representacin De Relaciones (Matrices, Conjunto, Grafos, Diagrama de flechas)


Los ejemplos de relaciones que ms se presentan en el rea de la computacin son aquellas que estn definidas sobre conjuntos finitos. En esta seccin se trataran dos formas de representar dichas relaciones y su uso para poder identificar las propiedades vistas en la seccin anterior.

Representacin De Relaciones Usando Matrices Un mtodo para el estudio de las relaciones de manera algortmica es utilizando matrices compuestas de ceros y unos. Sean A y B conjuntos finitos de la forma: Si R es una relacin de A en B. La relacin R puede ser representada por la matriz donde:

27

La matriz

se denomina matriz de R. En otras palabras la matriz, de ceros y unos, cuando . est relacionado con y un 1 en est posicin

de R tiene un 1 en la posicin si no est relacionado con

Obsrvese en la definicin anterior que los elementos de A y B han sido escritos en un orden particular pero arbitrario. Por lo tanto, la matriz que representa una relacin. Depende de los rdenes usados para A y B. Cuando A = B usamos el mismo orden para A y B. EJEMPLO: Sean Consideremos la siguiente relacin de : Entonces la matriz de R es

Recprocamente, dando los conjuntos A y B con m y n elementos respectivamente, una matriz de m x n formada de ceros y unos determina una relacin de A en B.

Representacin De Relaciones Usando Conjuntos

Un conjunto es una coleccin de objetos considerada como un objeto en s. Los objetos de la coleccin pueden ser cualquier cosa: personas, nmeros, colores, letras, figuras, etc. Cada uno de los objetos en la coleccin es un elemento o miembro del conjunto. Por ejemplo, el conjunto de los colores del arcoris es:

AI = {Rojo, Naranja, Amarillo, Verde, Azul, Ail, Violeta}

28

Un conjunto suele definirse mediante una propiedad que todos sus elementos comparten. Por ejemplo, para los nmeros naturales, si consideramos la propiedad de ser un nmero primo, el conjunto de los nmero primos es: P = {2, 3, 5, 7, 11, 13,}

Un conjunto queda definido nicamente por sus miembros y por nada ms. En particular el orden en el que se representen estos es irrelevante. Adems, cada elemento puede aparecer de manera idntica una sola vez, esto es, no puede haber elementos totalmente idnticos repetidos. Por ejemplo:

S = {Lunes, Martes, Mircoles, Jueves, Viernes} = {Martes, Viernes, Jueves, Lunes, Mircoles} AI = {Rojo, Naranja, Amarillo, Verde, Azul, Ail, Violeta} = {Rojo, Naranja, Amarillo, Verde, Azul, Ail, Violeta, Naranja}

Los conjuntos pueden ser finitos o infinitos. El conjunto de los nmero naturales es infinito, pero el conjunto de los planetas en el sistema solar es finito (tiene ocho elementos). Adems, con los conjuntos pueden combinarse mediante operaciones, de manera similar a las operaciones con nmeros. Los conjuntos son un concepto bsico, en el sentido de que no es posible definir los en trminos de nociones ms elementales, por lo que su estudio puede realizarse de manera informal, apelando a la intuicin y a la lgica. Por otro lado, son el concepto fundamental de la matemtica: mediante ellos puede formularse el resto de objetos matemticos, como los nmeros y las funciones, entre otros. Su estudio detallado requiere pues la introduccin de axiomas y conduce a la teora de conjunto.

Representacin De Relaciones Usando Grafos

Informalmente, un grafo es un conjunto de objetos llamados vrtices o nodos unidos por enlaces llamados aristas o arcos, que permiten representar relaciones binaria entre elementos de un conjunto.

29

Tpicamente, un grafo se representa grficamente como un conjunto de puntos (vrtices o nodos) unidos por lneas (aristas).

Un grafo G es un par ordenado G = (V,E), donde: V es un conjunto de vrtices o nodos, y E es un conjunto de aristas o arcos, que relacionan estos nodos.

Normalmente V suele ser finito. Muchos resultados importantes sobre grafos no son aplicables para grafos infinitos.

Se llama orden del grafo G a su nmero de vrtices, | V | . El grado de un vrtice o nodo V es igual al nmero de arcos E que se encuentran en l.

Un bucle es una arista que relaciona al mismo nodo; es decir, una arista donde el nodo inicial y el nodo final coinciden. EJEMPLO: V:={1, 2, 3, 4, 5,6} E:={{1,2}, {1,5}, {2,3}, {2,5}, {3,4}, {4,5}, {4,6}} El hecho que el vrtice 1 sea adyacente con el vrtice 2 puede ser denotado como 1 ~ 2.

En las teoras de las categoras una categora puede ser considerada como un multgrafo dirigido, con los objetos como vrtices y los morfismos como aristas dirigidas.

Representacin De Relaciones Usando Diagramas De Flechas

Una forma de representar el producto cartesiano es el diagrama de flechas. Escriba los elementos de a y los elementos de b en dos discos disyuntos, y luego dibuje una flecha de a e a en b e b cada vez que a este relacionado con b.

30

5.2 Propiedades De Las Relaciones (Reflexiva, Simtrica, Asimtricas y Transitivas)


Relaciones Reflexivas e Irreflexivas Una relacin R en un conjunto A es reflexiva si (a, a) R para todas las a A, esto es, si a R e para todas las a e A. Una relacin R en un conjunto A es irreflexiva si a R a para toda a A.

Por consiguiente, R es reflexiva si cada elemento a e A est relacionado consigo mismo y es irreflexiva si ningn elemento est relacionado consigo mismo.

Ejemplo 1: (a) Sea = [(a, a)\ a A], de modo que A es la relacin de igualdad en el conjunto A. Entonces A es reflexiva, ya que (a, a) para todas las a e A.

(b) Sea R = {(a, b) e A x A | a + b}, R es la relacin de desigualdad en el conjunto A. Entonces R es irreflexible, ya que (a, a) R para todas las x A.

(c) Sean A = {1, 2, 3}. y J = {(1, 1), (1, 2)}. Entonces A es reflexiva ya (2,2) R y (.3,3) R. Por otra parte, R no es irreflexiva, ya que (1, l) R.

31

(d) Sea A un conjunto no vacio. Sea R = A x A, la relacin vaca. Enlaces R no es reflexiva, ya que (a, a) R para todas las a A (el conjunto vaco tiene elementos). Sin embargo, R es irreflexiva.

Relaciones Simtricas y Asimtrica

Una relacin R en un conjunto A es simtrica si cuando a R b, entonces b R a. De esto se sigue qu R no es simtrica se tiene a y b A con a R b, pero b R a. Una relacin R en un conjunto A es asimtrica si cuando a R b, entonces b Ra. De esto se sigue que R no es simtrica si se tiene a y b e A con ambos a R b y b R a. Una relacin R en un conjunto A es asimtrica si cuando a R b y b R a, entonces a = b. Otra forma de expresar esta definicin es diciendo que R es anti simtrica si cuando a b, se tiene a R b o b R a. De esto se sigue que R no es anti simtrica si se tiene a y b en A. a b, y ambas a R b y b R a. Ejemplo Sea A = [a, b, c, d, e} y sea R la relacin simtrica dada por R = {(a, b), (b, a), (a, c), (c, a), (b, c), (c, b), (b, e), (e, b), (e, a), (a, e), (c,a), (a,c)} El grafo dirigido de R se muestra en la figura 2(a), mientras que en la figura

Grafo dirigido de R Grafo dirigido de R

32

Aparece el grado de R. Obsrvese que cada arista no dirigida corresponde a dos pares ordenados en la relacin R. A una relacin simtrica R en un conjunto A se le llamar conexa si existe una trayectoria de cualquier elemento de A a cualquier otro elemento de A. Esto significa sencillamente que el grafo de R est todo en una pieza. En la figura 3 se muestran los grafos de dos relaciones simtricas. El grafo de la figura 3(a) est conectado mientras que el de la figura 3(b) no lo est.

Relaciones Transitivas Se dice que una relacin R en un conjunto A es transitiva si cuando a R b y b R e, entonces a R c. Se sigue que R no es transitiva si y slo si se puede encontrar elemento a, b y c en A tal que a R b y b R c, pero a R c.

33

Ejemplo: Sea A = Z el conjunto de los enteros y sea R la relacin considerada en el ejemplo 2 Para ver si R es transitiva, se supone que a R b y b R c. Por consiguiente, a < b; b < c. Entonces se sigue que a < c, por lo cual a R c. De aqu que R sea transitiva. Una relacin R en un conjunto A es transitiva si y slo si satisface las siguientes propiedades: Si existe una trayectoria de longitud mayor que 1 del vrtice a al vrtice b, hay una trayectoria de extensin 1 de a a b (esto es, a est relacionada con b). Establecido algebraicamente, R es transitiva si y slo si Rn R para todas las n 1.

Es posible caracterizar la relacin transitiva por su matriz MR = [mij] as: si mij =1 y mjk = 1, entonces mik = 1 Para ver qu significa transitividad en trminos del grafo dirigido de una relacin, se traducir esta definicin a trminos geomtricos. Si se examinan los vrtices particulares a y c, las condiciones a R b y b R c ocurrirn si y slo si existe una trayectoria de longitud 2 de a a c, esto es, si y slo si a R2 c. Es posible replantear la definicin de transitividad como sigue: Si a R2 c, entonces a R c, esto es, R2 R (como un subconjunto de A x A).

5.3 Relaciones De Equivalencia (Cerraduras, Clases De Equivalencia y Particiones)


Cerradura de una relacin Definicin. Sea R una relacin en un conjunto A. Una cerradura reflexiva ref( R ) de R en A es la menor relacin que la incluye y que es reflexiva, con smbolos: ( R reflexiva) (A R ref( R )) R = ref( R )) Una cerradura simtrica sim( R ) de R en A es la menor relacin que la incluye y que es simtrica, con smbolos: (R reflexiva) (A R ref( R )) R = ref( R )) Una cerradura transitiva trans( R ) de R en A es la menor relacin que la incluye y que es transitiva, con smbolos: ( R reflexiva) (A R ref( R )) R = ref( R )

34

La cerradura reflexiva y la cerradura simtrica de una relacin es muy simple de encontrar, solamente se le agregan los pares necesarios de una forma directa. Cuando conocemos la matriz asociada a la relacin, la forma de encontrar las cerraduras anteriores es muy simple. Teorema: Sea R una relacin en A y MR su matriz asociada. La cerradura reflexiva y la cerradura simtrica de R son nicas y se pueden obtener mediante las matrices siguientes Mref(R) = MR In, donde In es la matriz identidad de orden |A|. Msim(R) = [a ij], donde a ji = 1 si a ij = 1 en MR. La Matriz identidad In de orden n es: {$ {(1,,0), (vdots, ddots, vdots), (0,,1)] $} O sea que para lograr la cerradura reflexiva debemos agregar 1s en la diagonal, para la cerradura simtrica debemos agregar 1s en luagres simtricos a la diagonal principal donde existan 1s. Cierre de equivalencia Para calcular el cierre de equivalencia de una relacin binaria R sobre un conjunto A: Calcularemos primero su cierre reexivo, (R) Sobre el resultado calcularemos el cierre simtrico, ((R)) nalmente el cierre transitivo del resultado anterior, (((R))) Clases de Equivalencia

Al conjunto de los elementos del conjunto A que estn relacionados con l se llama clase de equivalencia.

Ejemplo:

35

La relacin a - b = 2.k (mltiplo de 2), siendo a y b nmeros enteros es una relacin de equivalencia porque cumple las propiedades: Reflexiva: a - a = 0 = 2.k (k = 0). Simtrica: a - b = b - a porque b - a = -(a - b). Si a - b es mltiplo de 2, -(a - b) tambin lo ser. Transitiva: a b = 2.k1 b - c = 2.k2 Sumando queda a - c = 2.k3 Entonces a - c es mltiplo de 2. En el ejemplo anterior, la clase de equivalencia del nmero cero (uno de los elementos del conjunto de los nmeros enteros) C(0) = {... -4, -2, 0, 2, 4, ...}, pues 0 - (-4) es mltiplo de 2, 0 - (-2) es mltiplo de 2 ya s sucesivamente. La clase de equivalencia del nmero 1 ser C(1) = {... -5, -3, -1, 1, 3, 5, ...} pues la diferencia entre 1 y los nmeros indicados es mltiplo de 2. Del mismo modo podramos calcular las clases de equivalencia de ms nmeros.

El conjunto formado por las clases de equivalencia se llama conjunto cociente.

En el ejemplo anterior el conjunto cociente Z / 2 es el conjunto formado por las clases de todos los elementos Z / 2 = {C(0), C(1), C(2), ... }.

Particiones Sea X un conjunto. P es una particin de X si y slo si:

Los conjuntos de P son disyuntos 2 a 2, es decir, si

entonces

Observe que si P es una particin de X, entonces todo elemento de X est en uno y slo un elemento uno y slo un elemento de modo que parte a en conjuntos disyuntos. Por ejemplo, el conjunto de barriles propuesto al comienzo de la seccin es una particin del conjunto de mangos. Otro ejemplo de una particin es de la divisin poltica de un pas: El pas (visto como un conjunto de personas) se parte en estados o departamentos no vacos disyuntos entre s. Ejemplo

36

Sea ={1, 2, 3, 4, 5, 6, 7, 8, 9} Entonces = {{1, 9}, {2, 8}, {3, 4, 5, 6, 7}} Es una particin de X en tres conjuntos: elementos externos (1,9), elementos semi-externos (2, 8) y elementos internos (3, 4, 5, 6, 7). Note que Q = {{1, 2, 9}, {2, 8}, {3, 4, 5, 6, 7}} no es particin de X (por qu?). Como lo habamos insinuado, resulta que toda relacin de equivalencia determina de manera natural una particin.

5.4 Funciones (Inyectiva, Suprayectiva, Biyectiva).


Funciones Sean A y B conjuntos. Una funcin o transformacin f de A a B, denotada por f : A B es un subconjunto de A B tal que x(x A y (y B (x,y) f )) y ((x,y1) f (x, y2) f ), y1=y2 Sean A y B dos conjuntos no vacios. Una funcion de A en B, y que notaremo s f :A B, es una relacion de A a B en la que para cada a A, existe un unico elemento b B tal que (a, b) f. Si (a, b) f, escribiremos f(a) = b y diremos que b es la imagen de a mediante f. Las funciones se especifican de diferentes maneras, una de las cuales es por medio de frmulas. f(x)=x+1. Decimos que una relacin es una funcin si para cada elemento del primer conjunto existe una nica imagen. Si cada elemento del segundo conjunto es imagen de alguien, entonces la funcin es Sobreyectiva. Si cada elemento del segundo conjunto es, a lo sumo, imagen de un elemento del primer conjunto, entonces la funcin es Inyectiva. Si una funcin es sobreyectiva e inyectiva, entonces es Biyectiva. En muchas ocasiones a cada elemento de un conjunto se le asigna un elemento particular de un segundo conjunto. Definicin 1. Sean A y B conjuntos. Una funcin f de A a B es una asignacin de exactamente un elemento de B a cada elemento de A. Escribimos f (a)=b si b es el nico elemento de B asignado por la funcin f al elemento a de f:A B A. Si f es una funcin de A en B, y se escribe 1 Matemticas Discretas.

37

Por ejemplo suponer que a un grupo de carros se le asigna una letra del conjunto [A,B,C,D,G]. Suponer que se le asigna al Jaguar la A, al Audi la G, al Ferrari la D, al Porsche la B, y al Mercedes la A. La asignacin se ilustrara as Jaguar Audi Ferrari Porsche Mercedes A B C D G. Funciones Inyectivas Sea f una funcin definida de A a B f: A B, x,y A

x y
(f(x)= f (y) x = y) f es 1-1 o Inyectiva si sus pre imgenes son nicas, es decir f(y) Si x y entonces f(x)

Una funcin f entre los conjuntos A y B se dice que es inyectiva, cuando cada elemento de la imagen de f lo es, a lo sumo, de un elemento de A. Suele decirse tambin que la funcin es uno-a-uno. Dicho de otra forma: f :A B es inyectiva a1, a2 A [a1 =6 a2 = f(a1) =6 f(a2)] La mejor forma de probar en la practica la inyectividad de una funcin es utilizar la contra reciproca, es decir, f :A B es inyectiva a1, a2 A [f(a1) = f(a2) = a1 = a2]

38

En la gura anterior f es inyectiva y g no lo es. Ejemplo: Determinar si la funcin f :R R tal que f(x) = x + 2 es inyectiva. Solucin En efecto, sean x1 y x2 dos numeros reales cualesquiera, entonces f(x1) = f(x2) = x1 + 2 = x2 + 2 = x1 = x2 luego f es inyectiva.

Funcione Suprayectiva Una funcin f entre los conjuntos A y B se dice que es suprayectiva, sobreyectiva o exhaustiva, cuando cada elemento de B es imagen de, al menos, un elemento de A. Es decir, f :A B es suprayectiva b B, a A tal que f(a) = b En otras palabras, f es sobreyectiva si la imagen de f es todo el conjunto B, es decir si Img (f) = B.

En la figura anterior f es suprayectiva y, sin embargo g no lo es. Funcion Biyectiva Una funcin f entre los conjuntos A y B se dice que es biyectiva, cuando es, a un tiempo, inyectiva y suprayectiva.

39

Ejemplo: Sea f :A B tal que A = B = R y f(x) = 2x 3, x A. Es biyectiva? Solucin Veamos si es inyectiva y suprayectiva. (a) Inyectiva. Sean x1 y x2 dos numeros reales arbitrarios. Entonces, f(x1) = f(x2) = 2x1 3 = 2x2 3 = 2x1 = 2x2 = x1 = x2 luego f es inyectiva. (b) Suprayectiva. Sea y cualquiera de B. Entonces, y = 2x 3 2x = y + 3 x = y + 3 /2 luego tomando x = y + 3 / 2, se verifica que x A y

f(x) = f (y + 3) /2 = (2) ((y + 3) / 2) 3 = y

Consecuentemente,

y B, x A : f(x) = y
es biyectiva.

o sea, f es suprayectiva. Por ser inyectiva y suprayectiva, f

40

UNIDAD 6
Teora de Grafos
ELEMENTOS Y CARACTERSTICAS DE UN GRAFO

Llamaremos grafo, G, al par ordenado formado por un conjunto finito no vaco, V, y un conjunto, A, de pares no ordenados de elementos del mismo.

V es el conjunto de los vrtices o nodos del grafo.

A sera el conjunto de las aristas o arcos del grafo.

Utilizaremos la notacin G = (V,A) para designar al grafo cuyos conjuntos de vrtices y aristas son, Respectivamente, V y A.

El origen de la palabra grafo es griego y su significado etimolgico es "trazar". Aparece con gran frecuencia como respuesta a problemas de la vida cotidiana, algunos ejemplos podran ser los siguientes: un grfico de una serie de tareas a realizar indicando su secuenciacin (un organigrama),grafos matemticos que representan las relaciones binarias, una red de carreteras, la red de enlaces ferroviarios o areos o la red elctrica de una ciudad.(Vase la figura 1).En cada caso, es conveniente representar grficamente el problema dibujando un grafo como un conjunto de puntos(vrtices)con lneas conectndolos (arcos).

41

De aqu se podra deducir que un grafo es bsicamente un objeto geomtrico aunque en realidad sea un objeto combinatorio, es decir, un conjunto de puntos y un conjunto de lneas tomado de entre el conjunto de lneas que une cada par de vrtices. Por otro lado, y debido a su generalidad y a la gran diversidad de formas que pueden usarse, resulta complejo tratar con todas las ideas relacionadas con un grafo.

Para facilitar el estudio de este tipo de dato, a continuacin se realizar un estudio de la teora de grafos desde el punto de vista de las ciencias de la computacin. Considerando que dicha teora es compleja y amplia, aqu slo se realizar una introduccin a la misma, describindose el grafo como un tipo de dato y mostrndose los problemas tpicos y los algoritmos que permiten solucionarlos usando un ordenador.

Los grafos son estructuras de datos no lineales que tienen una naturaleza generalmente dinmica. Su estudio podra dividirse en dos grandes bloques:

Grafos Dirigidos. Grafos no Dirigidos(pueden ser considerados un caso particular de los anteriores).

Un ejemplo de grafo dirigido lo constituye la red de aguas de una ciudad ya que cada tubera slo admite que el agua la recorra en un nico sentido. Por el contrario, la red de carreteras de un pas representa en general un grafo no dirigido, puesto que una misma carretera puede ser recorrida en ambos sentidos. No obstante, podemos dar unas definiciones generales para ambos tipos.

A continuacin daremos definiciones de los dos tipos de grafos y de los conceptos que llevan asociados.

DEFINICIONES Y TERMINOLOGA FUNDAMENTAL.

Un grafo G es un conjunto en el que hay definida una relacin binaria, es decir G=(V,A) tal que V es un conjunto de objetos a los que denominaremos vrtices o nodos y es una relacin binaria a cuyos elementos denominaremos arcos o aristas.

42

Dados , puede ocurrir que:

1.

, en cuyo caso diremos que x e y estn unidos mediante un arco, y

2.

, en cuyo caso diremos que no lo estn.

Si las aristas tienen asociada una direccin (las aristas (x, y) y (y, x) no son equivalentes) diremos que el grafo es dirigido, en otro caso ((x, y)=(y, x)) diremos que el grafo es no dirigido.

Definicin 1 Un grafo simple G (V,E) consta de V , un conjunto no vaco de vrtices, y de E, un conjunto de pares no ordenados de elementos Distintos de V . A esos pares se les llama aristas o lados.

Ejercicio 1 Muestre que si G es simple, entonces "

En algunos casos lo grafos simples no bastan para modelar ciertas situaciones en las cuales se requiere de la existencia de mltiples aristas entre par de Vrtices. En este caso no es suficiente definir las aristas como par de vrtices;

La definicin de multgrafo es un poco ms complicada.

43

Definicin 2 Un multgrafo G (V,E) consta de un conjunto V de vrtices, un conjunto E de aristas y una funcin f de E en {{u, v}|u, v V, u 6= v}. Se dice que las aristas e1, e2 son aristas mltiples o paralelas si f (e1) = f(e2).

Los multgrafos definidos no admiten bucles o lazos (aristas que conectan Un vrtice consigo mismo). Usamos en este caso, pseudografos que son ms generales que los multgrafos.

Definicin 3 Un pseudografo G (V, E) consta de un conjunto V de vrtices, un conjunto E de aristas y una funcin f de E en {{u, v}|u, v V }. Se dice que una arista e es un bucle o lazo si f (e) = {u, u} = {u} para algn

uV.

La diferencia entre grafo y dgrafo es que el ltimo tiene los lados dirigidos y se entiende como un grafo dirigido.

Definicin 4 Un grafo dirigido o dgrafo G = (V, E) consta de un conjunto

V de vrtices, un conjunto E de aristas, que son pares ordenados de elementos de V.

Definimos los multgrafos dirigidos de la siguiente manera

Definicin 5 Un multgrafo dirigido G (V,E) consta de un conjunto V de Vrtices, un conjunto E de aristas y una funcin f de E en {(u, v)|u, v V }.

Se dice que las aristas e1, e2 son aristas mltiples o paralelas si f (e1) =

44

1.1. Adyacencia de Vrtices, Incidencia de Aristas y

Grado de los Vrtices Dos vrtices u, v de un grafo G = (V, E) se dicen adyacentes si {u, v} E, asimismo dos aristas son adyacentes si tienen un mismo vrtice como extremo; anlogamente si e = {u, v} decimos que el lado e es incidente a los vrtices u y v. El grado de un vrtice es el nmero de lados incidentes a l. El grado de un vrtice u se denota gr(u). Denotamos con (G) y (G) el mnimo y el mximo grado de los vrtices de G respectivamente.

COMPONENTES DE UN GRAFO

Aristas

Son las lneas con las que se unen las aristas de un grafo y con la que se construyen tambin caminos.

Si la arista carece de direccin se denota indistintamente {a, b} o {b, a}, siendo a y b los vrtices que une.

Si {a, b} es una arista, a los vrtices a y b se les llama sus extremos.

Aristas Adyacentes: Se dice que dos aristas son adyacentes si convergen en el mismo vrtice. Aristas Paralelas: Se dice que dos aristas son paralelas si vrtice inicial y el final son el mismo. Aristas Cclicas: Arista que parte de un vrtice para entrar en el mismo. Cruce: Son dos aristas que cruzan en un punto.

45

Vrtices

Son los puntos o nodos con los que est conformado un grafo. Llamaremos grado de un vrtice al nmero de aristas de las que es extremo. Se dice que un vrtice es `par' o `impar' segn lo sea su grado.

Vrtices Adyacentes: si tenemos un par de vrtices de un grafo (U, V) y si tenemos un arista que los une, entonces U y V son vrtices adyacentes y se dice que U es el vrtice inicial y V el vrtice adyacente. Vrtice Aislado: Es un vrtice de grado cero. Vrtice Terminal: Es un vrtice de grado 1. Caminos

Sean x, y " V, se dice que hay un camino en G de x a y si existe una sucesin finita no vaca de aristas {x,v1}, {v1,v2},..., {vn,y}. En este caso

x e y se llaman los extremos del camino El nmero de aristas del camino se llama la longitud del camino. Si los vrtices no se repiten el camino se dice propio o simple. Si hay un camino no simple entre 2 vrtices, tambin habr un camino simple entre

ellos.

Cuando los dos extremos de un camino son iguales, el camino se llama circuito o camino cerrado. Llamaremos ciclo a un circuito simple Un vrtice a se dice accesible desde el vrtice b si existe un camino entre ellos. Todo vrtice es accesible respecto a si mismo Clasificacin de grafos

Los grafos se pueden clasificar en dos grupos: dirigidos y no dirigidos. En un grafo no dirigido el par de vrtices que representa un arco no est ordenado. Por lo tanto, los pares (v1, v2) y (v2, v1) representan el mismo arco. En un grafo dirigido cada arco est representado por un par ordenado de vrtices, de forma que y representan dos arcos diferentes.

46

Ejemplos

G1 = (V1, A1)

V1 = {1, 2, 3, 4} A1 = {(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)}

G2 = (V2, A2)

V2 = {1, 2, 3, 4, 5, 6} A2 = {(1, 2), (1, 3), (2, 4), (2, 5), (3, 6)}

G3 = (V3, A3)

V3 = {1, 2, 3} A3 = {<1, 2>, <2, 1>, <2, 3>}

Grficamente estas tres estructuras de vrtices y arcos se pueden representar de la siguiente manera:

Algunos de los principales tipos de grafos son los que se muestran a continuacin:

Grafo regular: Aquel con el mismo grado en todos los vrtices. Si ese grado es k lo llamaremos k-regular.

47

Por ejemplo, el primero de los siguientes grafos es 3-regular, el segundo es 2-regular y el tercero no es regular.

Grafo bipartito: Es aquel con cuyos vrtices pueden formarse dos conjuntos disjuntos de modo que no haya adyacencias entre vrtices pertenecientes al mismo conjunto Ejemplo.- de los dos grafos siguientes el primero es bipartito y el segundo no lo es

Grafo completo: Aquel con una arista entre cada par de vrtices. Un grafo completo con n vrtices se denota Kn. A continuacin pueden verse los dibujos de K3, K4, K5 y K6

Un grafo bipartito regular: se denota Km, n donde m, n es el grado de cada conjunto disjunto de vrtices. A continuacin ponemos los dibujos de K1, 2, K3, 3, y K2, 5

Grafo nulo: Se dice que un grafo es nulo cuando los vrtices que lo componen no estn conectados, esto es, que son vrtices aislados.

Grafos Isomorfos: Dos grafos son isomorfos cuando existe una correspondencia biunvoca (uno a uno), entre sus vrtices de tal forma que dos de estos quedan unidos por una arista en comn.

48

Grafos Platnicos: Son los Grafos formados por los vrtices y aristas de los cinco slidos regulares (Slidos Platnicos), a saber, el tetraedro, el cubo, el octaedro, el dodecaedro y el icosaedro.

Grafos Eulerianos.

Para definir un camino euleriano es importante definir un camino euleriano primero. Un camino euleriano se define de la manera ms sencilla como un camino que contiene todos los arcos del grafo. Teniendo esto definido podemos hablar de los grafos eulerianos describindolos simplemente como aquel grafo que contiene un camino euleriano. El primer grafo de ellos no contiene caminos eulerianos mientras el segundo contiene al menos uno.

49

Grafos Conexos.

Un grafo se puede definir como conexo si cualquier vrtice V pertenece al conjunto de vrtices y es alcanzable por algn otro. Otra definicin que dejara esto ms claro sera: "un grafo conexo es un grafo no dirigido de modo que para cualquier par de nodos existe al menos un camino que los une".

rboles.

Un rbol se define como un tipo de grafo que no contiene ciclos, es decir es un grafo tambin a cclico, pero a su vez es conexo. Tal es el caso de los siguientes dos grafos en donde se puede notar que ninguno de los dos contiene repeticiones (ciclos).

Bosques de rboles.

Los bosques de rboles son un caso similar a los rboles, son a cclicos, pero no son conexos. Como ejemplo tenemos la siguiente figura.

50

Recorrido de un grafo.

Recorrer un grafo significa tratar de alcanzar todos los nodos que estn relacionados con uno que llamaremos nodo de salida. Existen bsicamente dos tcnicas para recorrer un grafo: el recorrido en anchura; y el recorrido en profundidad.

Recorrido en anchura: El recorrido en anchura supone recorrer el grafo, a partir de un nodo dado, en niveles, es decir, primero los que estn a una distancia de un arco del nodo de salida, despus los que estn a dos arcos de distancia, y as sucesivamente hasta alcanzar todos los nodos a los que se pudiese llegar desde el nodo salida.

Recorrido en profundidad: el recorrido en profundidad trata de buscar los caminos que parten desde el nodo de salida hasta que ya no es posible avanzar ms. Cuando ya no puede avanzarse ms sobre el camino elegido, se vuelve atrs en busca de caminos alternativos, que no se estudiaron previamente. Representacin de grafos en programas.

Hay tres maneras de representar un grafo en un programa: mediante matrices, mediante listas y mediante matrices dispersas.

51

Representacin mediante matrices: La forma ms fcil de guardar la informacin de los nodos es mediante la utilizacin de un vector que indexe los nodos, de manera que los arcos entre los nodos se pueden ver como relaciones entre los ndices. Esta relacin entre ndices se puede guardar en una matriz, que llamaremos de adyacencia.

Representacin mediante listas: En las listas de adyacencia lo que haremos ser guardar por cada nodo, adems de la informacin que pueda contener el propio nodo, una lista dinmica con los nodos a los que se puede acceder desde l. La informacin de los nodos se puede guardar en un vector, al igual que antes, o en otra lista dinmica.

Representacin mediante matrices dispersas: Para evitar uno de los problemas que tenamos con las listas de adyacencia, que era la dificultad de obtener las relaciones inversas, podemos utilizar las matrices dispersas, que contienen tanta informacin como las matrices de adyacencia, pero, en principio, no ocupan tanta memoria como las matrices, ya que al igual que en las listas de adyacencia, slo representaremos aquellos enlaces que existen en el grafo. Dgrafo (grafo dirigido).

A un grafo dirigido se le puede definir como un grafo que contiene aristas dirigidas, como en el siguiente caso.

Aplicaciones de los dgrafos

Una de las aplicaciones ms importantes es de hallar el camino ms corto hacia un destino, ya sea de una ciudad a otra, de unos departamentos a otros, para el recorrido de rboles, sirve para la representacin de algoritmos, etc. Un ejemplo de esto es la tarea de frer un huevo.

52

Grado de un grafo.

Grado de incidencia positivo: El grado de incidencia positivo de un nodo nj es el nmero de arcos que tienen como nodo inicial a nj. Ejemplo: El grado de incidencia de 1 es igual a 3.

Grado de incidencia negativo: El grado de incidencia negativo de un nodo nj es el nmero de arcos que terminan en nj. Ejemplo: El grado de incidencia negativo de 1 es igual a 1.

Grado de un nodo: Paradigrafos es el grado de incidencia positivo menos el grado de incidencia negativo del nodo. Ejemplo: El grado de 1 es igual a 3 1 = 2, el grado del nodo 4 es 2 2 = 0. Para grafos no dirigidos es el nmero de lneas asociadas al nodo. Ciclo de un grafo.

Ciclo: Es una cadena finita donde el nodo inicial de la cadena coincide con el nodo terminal de la misma.

Ciclo simple: Es el ciclo que a su vez es una cadena simple.

Estructuras no lineales: Grafos

Las estructuras de datos no lineales se caracterizan por no existir una relacin de adyacencia, entre sus elementos, es decir, un elemento puede estar relacionado con cero, uno o ms elementos.

La estructura no lineal de datos ms general es el grafo donde sus nodos pueden relacionarse de cualquier manera sin una relacin de orden predefinida.

Estructuras no lineales: Grafos Entre las mltiples aplicaciones que tienen estas estructuras podemos mencionar:

53

Para modelar diversas situaciones tales como: sistemas de aeropuertos, flujo de trfico, y responder a preguntas como: Qu tiempo es ms corto?, Cmo es ms barato?, o Qu camino es ms corto?

Los grafos tambin son utilizados para realizar planificacin de actividades, tareas del computador, planificar operaciones en lenguaje de mquinas para minimizar tiempo de ejecucin. Qu tarea debo hacer primero?

Para representar circuitos elctricos, de aguas etc... , y preguntar, estn todas las componentes conectadas.

Grafos Los grafos pueden ser utilizados como la estructura bsica para mltiples aplicaciones en el rea de la Computacin. Un grafo G (N, A, f) es un conjunto no vaco, donde:

N={n1, n2, ... ,nM) es el conjunto de nodos o vrtices

A= {a1, a2,..., a K} es el conjunto de aristas y

La funcin f: R indica los pares de nodos que esta n relacionados.

Grafos Dirigidos (Dgrafos) En estos grafos, las aristas que comunican dos nodos tienen un nico sentido, una arista puede ir de x a y, pero no d y a x. Se expresa grficamente con flechas que indican el sentido de la relacin entre cada par de nodos.

Grafos

Grafos no dirigidos En estos grafos, las aristas que comunican dos nodos tienen dos sentidos. Si una arista va de x a y, la misma arista va de y a x. Se expresa grficamente por lneas. La representacin grfica de un grafo se define con un crculo o rectngulo para los

54

nodos y las relaciones con lneas o flechas segn sea un grafo no dirigido o un dgrafo, respectivamente. TIPOS DE GRAFOS.

Grafos Simples

Aqu lidiaremos con grafos simples, es decir en los que hay una arista o lado entre vrtices como mximo, y en los que no hay loops o lazos que conectan algn vrtice consigo mismo. El grado de un nodo de un grafo simple es la cantidad de aristas o lados que concurren a l.

Trayectorias y Circuitos

Si en un grafo simple se van recorriendo sucesivamente sus aristas de modo tal que dos sucesivas sean adyacentes, es decir que concurran al mismo vrtice por el que se pasa de una a la otra, se est recorriendo o determinando una trayectoria o camino. Cuando cierta trayectoria comienza y termina en el mismo nodo decimos que es un circuito. Cuando una trayectoria pasa slo una vez por todas y cada una de las aristas o lados se dice que la trayectoria es semi- euleriana, y si esta trayectoria fuera un circuito se la denomina circuito euleriano. No existe un grafo simple con un slo nodo de grado impar. Esto refiere entre otros temas las paridades de los nodos de un grafo simple, es decir cuntos nodos pares e impares tiene.

55

Dado cierto grafo, al agregarle una arista, a cada nodo de los extremos de esta arista se le suma una unidad a su grado. Es decir, que si alguno de esos nodos de los extremos tenan grado impar, pasan a tener grado par y viceversa. Analizando las posibles combinaciones de paridades de estos nodos de los extremos del nuevo vrtice: i) par-par, ii) par-impar, iii)impar-impar, Se nota que la cantidad de nodos con grados impares resulta: i)o aumentada en dos unidades, ii)o inalterada,

iii)o reducida en dos unidades.

Para mostrar esto se toma un cierto conjunto de puntos del plano sin vrtices que los conecten, y se lo considera un grafo sin vrtices. Claramente todo nodo en este caso tiene grado cero.

56

Cualquier grafo simple puede entonces obtenerse partiendo de unir los nodos de un grafo sin vrtices, agregando sucesivamente sus aristas, hasta completarlo. A partir de esto puede afirmarse que todo grafo simple tiene o ningn nodo de grado impar o por lo menos dos nodos de grado impar. Es decir, no existe un grafo simple con un slo nodo de grado impar. Grafos completos

En teora de grafos, un grafo completo es un grafo simple donde cada par de vrtices est conectado por una arista.

Un grafo completo de n vrtices tiene n(n 1) / 2 aristas, y se nota Kn. Es un grafo regular con todos sus vrtices de grado n 1. Ningn grafo completo tiene lazos y est conectado totalmente, por ende, la nica forma de hacer disconexo el grafo con una eliminacin de vrtices es aplicarla a todos. El teorema de Kuratowski dice que un grafo planar no puede contener K5 ( el grafo bipartito completo K3,3) y todo Kn incluye a Kn 1, entonces ningn grafo completo Kn con es planar

Los grafos completos de 1 a 12 vrtices son los siguientes:

K1:0

K2:1

57

K3:3

K4:6

K5:10

K6:15

58

K7:21

K8:28

K9:36

K10:45

K11:55

59

K12:66 Grafo bipartito

Un Grafo bipartito se denomina en Teora de grafos a un grafo cuyos vrtices se pueden separar en dos conjuntos disjuntos V1 y V2 y las aristas siempre unen vrtices de un conjunto con vrtices de otro:

no existe ninguna arista e = x1,x2 ni e = y1,y2

Siendo V el conjunto que contiene todos los vrtices del grafo. Los grafos bipartitos suelen representarse grficamente con dos columnas (o filas) de vrtices y las aristas uniendo vrtices de columnas (o filas) diferentes.

Los dos conjuntos U y V pueden ser pensados como un coloreo del grafo con dos colores: si pintamos los vrtices en U de azul y los vrtices deV de verde obtenemos un grafo de dos colores donde cada arista tiene un vrtice azul y el otro verde. Por otro lado, si un grfico no tiene la propiedad de que se puede colorear con dos colores no es bipartito.

Un grafo bipartito suele con la particin de los vrtices en U y V suele denotarse G = (U, V, E). Si |U| =|V|, esto es, si los dos subconjuntos tiene la misma cantidad de elementos, decimos que el grafo bipartito G es balanceado.

60

Ejemplo Grafo bipartito

6.1 Elementos y caractersticas de los grafos.


Un grafo, G, es un par ordenado de V y A, donde V es el conjunto de vrtices o nodos del grafo y A es un conjunto de pares de vrtices, a estos tambin se les llama arcos o ejes del grafo. Un vrtice puede tener 0 o ms aristas, pero toda arista debe unir exactamente a dos vrtices. Los grafos representan conjuntos de objetos que no tienen restriccin de relacin entre ellos. Un grafo puede representar varias cosas de la realidad cotidiana, tales como mapas de carreteras, vas frreas, circuitos elctricos, etc. La notacin G = A (V, A) se utiliza comnmente para identificar un grafo. Los grafos se constituyen principalmente de dos partes: las aristas, vrtices y los caminos que pueda contener el mismo grafo. Grafos simples Un grafo es simple si a lo sumo slo 1 arista une dos vrtices cualesquiera. Esto es equivalente a decir que una arista cualquiera es la nica que une dos vrtices especficos. Un grafo que no es simple se denomina Multigrfica o Grfo mltiple. Grafos conexos Un grafo es conexo si cada par de vrtices est conectado por un camino; es decir, si para cualquier par de vrtices (a, b), existe al menos un camino posible desde a hacia b. Un grafo es fuertemente conexo si cada par de vrtices est conectado por al menos dos caminos disjuntos; es decir, es conexo y no existe un vrtice tal que al sacarlo el grafo resultante sea disconexo. Grafos completos Un grafo es completo si existen aristas uniendo todos los pares posibles de vrtices. Es decir, todo par de vrtices (a, b) debe tener una arista e que los une.

61

El conjunto de los grafos completos es denominado usualmente , siendo el grafo completo de n vrtices. Un , es decir, grafo completo de n vrtices tiene exactamente aristas. Grafos bipartitos Un grafo G es bipartito si puede expresarse como G = {V_1 cup V_2, A} (es decir, sus vrtices son la unin de dos grupos de vrtices), bajo las siguientes condiciones: * V1 y V2 son disjuntos y no vacos. * Cada arista de A une un vrtice de V1 con uno de V2. * No existen aristas uniendo dos elementos de V1; anlogamente para V2. Bajo estas condiciones, el grafo se considera bipartito, y puede describirse informalmente como el grafo que une o relaciona dos conjuntos de elementos diferentes. Lazos o bucles Un lazo o bucle es una arista que relaciona al mismo nodo; es decir, una arista donde el nodo inicial y el nodo final coinciden. Grafo no dirigido Un grafo no dirigido o grafo propiamente dicho es un grafo G = (V,E) donde: * Vneqemptyset * Esubseteq {xinmathcal P(V): |x|=2} es un conjunto de pares no ordenados de elementos de V,. Un par no ordenado es un conjunto de la forma {a,b}, de manera que {a,b} = {b,a}. Para los grafos, estos conjuntos pertenecen al conjunto potencia de V de cardinalidad 2, el cual se denota por mathcal P(V). Grafo dirigido Un grafo dirigido o digrafo es un grafo G = (V,E) donde: * Vneqemptyset * E subseteq {(a,b) in V times V: a neq b }, es un conjunto de pares ordenados de elementos de V,. Dada una arista (a,b), a es su nodo inicial y b su nodo final. Por definicin, los grafos dirigidos no contienen bucles. Un grafo mixto es aquel que se define con la capacidad de poder contener aristas dirigidas y no dirigidas. Tanto los grafos dirigidos como los no dirigidos son casos particulares de este. Conectividad en grafos A diferencia de los conceptos anteriores, que afectaban a vrtices del grafo, la conectividad es una propiedad del grafo en su conjunto. Un grafo orientado puede ser conexo o fuertemente conexo. Un grafo orientado slo puede ser conexo. Ms concretamente, tenemos: Diremos que un grafo es conexo si existe al menos un ciclo entre toda pareja de vrtices. El concepto es aplicable tanto a grafos orientados como para no orientados: obsrvese que se ha definido ciclo tanto para grafos orientados como para no orientados. Diremos que un grafo orientado es fuertemente conexo si existe al menos un camino entre toda pareja de vrtices. Todo grafo orientado fuertemente conexo ser tambin conexo.

62

Componentes de un grafo Un grafo (G) es un diagrama que consta de un conjunto de vrtices (V) y un conjunto de lados (L). A partir de esta figura se definen los siguientes elementos: vrtices(nodos) se indican por medio de un pequeo circulo y se les asigna un numero o letra. En el grafo anterior los vrtices son V={a,b,c,d}. Lados(ramas o aristas) Son las lneas que unen un vrtice con otro y se les asigna una letra, un numero o una combinacin de ambos. En el grafo anterior los lados son: L={1,2,3,4,5,6}. Lados paralelos Son aquellas aristas que tienen relacin con un mismo par de vrtices. En el grafo anterior los lados paralelos son: P={2,3}. Lazo Es aquella arista que sale de un vrtice y regresa al mismo vrtice. En el grafo anterior se tiene el lazo: A={6} Valencia de un vrtice Es el numero de lados que salen o entran a un vrtice. En el grafo anterior las valencias de los vrtices son: Valencia (a)=2 Valencia (b)=4 Valencia (c)=2 Valencia (d)=3 Hay que observar como en el caso del vrtice d el lazo solo se considera una vez, entrada o salida pero no ambos.

6.1.1 Componentes de un grafo (vrtices, flechas y nodo)


Un grafo (G) es un diagrama que consta de un conjunto de vrtices (V) y un conjunto de lados (L). A partir de esta figura se definen los siguientes elementos: Vrtices(nodos) se indican por medio de un pequeo crculo y se les asigna un numero o letra. En el grafo anterior los vrtices son V={a,b,c,d}. Lados (ramas o aristas) son las lneas que unen un vrtice con otro y se les asigna una letra, un numero o una combinacin de ambos. En el grafo anterior los lados son: L={1,2,3,4,5,6}. Lados paralelos Son aquellas aristas que tienen relacin con un mismo par de vrtices. En el grafo anterior los lados paralelos son: P={2,3}. Lazo Es aquella arista que sale de un vrtice y regresa al mismo vrtice. En el grafo anterior se tiene el lazo: A={6}

63

Valencia de un vrtice es el nmero de lados que salen o entran a un vrtice. En el grafo anterior las valencias de los vrtices son: Valencia (a)=2 Valencia (b)=4 Valencia (c)=2 Valencia (d)=3 Hay que observar como en el caso del vrtice d el lazo solo se considera una vez, entrada o salida pero no ambos.

6.1.2 Tipos de grafos (Simples, completos, bipartidos)


Grafos simples Son aquellos grafos que no tienen lazos ni lados paralelos. Grafo completo de n verticales (kn ) Es el grafo en donde cada vrtice est relacionado con todos los dems sin lazos ni lados paralelos. Se indica como kn en donde n es el nmero de vrtices del grafo. La valencia en cada uno de los vrtices de los grafos completos es (n - 1), y el numero de lados esta dado por la expresin Nm. De lados = n(n - 1)2 en donde n es el numero de vrtices del grafo. Complemento de un grafo (G ) Es el grafo que le falta al grafo G, de forma que entre ambos formas de grafo completo de n vrtices. Este grafo no tiene lazos ni ramas paralelas. Grafo bipartido Es el grafo que est compuesta por dos conjuntos de vrtices , A = {a1 ,a2, a3 ..., an} y B = {b1 ,b2 ,..., bm } en donde los elementos del conjunto B, pero entre los vrtices de un mismo conjunto no existe arista que los una. Una forma muy sencilla de saber si un grafo es bipartido es aplicar el hecho de que nunca tiene un ciclo de longitud impar, adems de que debe cumplir con la caracterstica mencionada anteriormente. Grafo bipartido completo (kn, m ) Es el grafo que est compuesto por dos conjuntos de vrtices, uno de ellos A ={a1 ,a2, a3 ..., an } Y otro B= {b1 ,b2 ,..., bm ), y en el cada vrtice de A esta unido con todo los vrtices de B, pero entre los vrtices de un mismo conjunto no existe arista que los una. El grafo bipartido completo se indica como kn, m .

6.2 Representacin de los grafos.

64

Definicin.- Dado un grafo G = (V, E) con n vrtices {v1,..., vn} su matriz de adyacencia es la matriz de orden nn, A(G)=(aij) donde aij es el nmero de aristas que unen los vrtices vi y vj. La matriz de adyacencia de un grafo es simtrica. Si un vrtice es aislado entonces la correspondiente fila (columna) esta compuesta slo por ceros. Si el grafo es simple entonces la matriz de adyacencia contiene solo ceros y unos (matriz binaria) y la diagonal esta compuesta slo por ceros.

Definicin .- Dado un grafo simple G = (V, E) con n=|V| vrtices {v1, ..., vn} y m=|E| aristas {e1, ..., em}, su matriz de incidencia es la matriz de orden nxm, B(G)=(bij), donde bij=1 si vi es incidente con ej y bij=0 en caso contrario. La matriz de incidencia slo contiene ceros y unos (matriz binaria). Como cada arista incide exactamente en dos vrtices, cada columna tiene exactamente dos unos. El nmero de unos que aparece en cada fila es igual al grado del vrtice correspondiente. Una fila compuesta slo por ceros corresponde a un vrtice aislado.

Representacin secuencial de un grafo: Considere el grafo siguiente "G": y suponga que los nodos se mantienen en memoria en un array DATOS tal como sigue: DATOS: X, Y, Z, W

65

Para hallar la matriz de adyacencia A del grafo "G", tenemos que tomar en cuenta que los nodos estn normalmente ordenados de acuerdo con la forma en que aparecen en memoria; es decir, asumimos que u1 = X, u2 = Y, u3 = Z, y u4 = W,la matriz de adyacencia A de G sera la Siguiente:

Aqu ai j = 1 si hay una arista ui a uj; si no aij = 0. As entonces para hallar la matriz de camino P de G mediante las potencias de la matriz de adyacencia

66

Por lo tanto la matriz de caminos P se obtiene ahora haciendo pij = 1 siempre que haya una entrada positiva en la matriz B4. As

La matriz de caminos muestra que no hay camino de u1 a u2 de hecho, no hay camino de ningn nodo a u1 por tanto, G no es fuertemente conexo.

6.2.2. Computacional
Computacional Existen dos formas de mantener un grafo G en la memoria de una computadora, una se llama Representacin secuencial de G, la cual se basa en la matriz de adyacencia A; la otra forma, es la llamada Representacin enlazada de G y se basa en listas enlazadas de vecinos. Independientemente de la forma en que se mantenga un grafo G en la memoria de una computadora, el grafo G normalmente se introduce en la computadora por su definicin formal: Un conjunto de nodos y un conjunto de aristas

Representacin secuencial de un grafo :

67

Considere el grafo siguiente G: y suponga que los nodos se mantienen en memoria en un array DATOS tal como sigue: DATOS: X, Y, Z, WPara hallar la matriz de adyacencia A del grafo G, tenemos que tomar en cuenta que los nodos estn normalmente ordenados de acuerdo con la forma en que aparecen en memoria; o sea, asumimos que V1 = X, V2 = Y, V3 = Z, y V4 = W, la matriz de adyacencia A de G seria la siguiente:

aqu ai j = 1 si hay una arista Vi a Vj ; si no ai j = 0. As entonces para hallar la matriz de camino P de G mediante las potencias de la matriz de adyacencia A, como G tiene cuatro nodos se calcula

68

por lo tanto la matriz de caminos P se obtiene ahora haciendo Pij = 1 siempre que haya una entrada positiva en la matriz B4 . as

La matriz de caminos muestra que no hay camino de u1 a u2 de hecho, no hay camino de ningn nodo a u1 por tanto, G no es fuertemente conexo.

Representacin enlazada de un grafo : Un grafo G se guarda en memoria como sigue: NODO SIG 3 ADY 8 PRINCIPIO = 1, NDISP = 5 DEST 4 0 9 0 1 10 ADISP = 8 Para dibujar el respectivo grafo G, primero debemos buscar todos los vecinos de cada NODO[K] recorriendo su lista de adyacencia que tiene el puntero de adyacencia ADY[J]. Esto da como resultado: A: 2(B) y 6(D) B: 6(D), 4(E) y 7(C) 2 3 4 5 6 7 8 6 ENL 10 3 6 0 0 0 0 4 2 6 4 6 7 4 1 1 2 2 3 5 4 5 7 6 9 7 A 7 B 4 E 6 8 D 0 C 2

69

C: 4(E) D: 4(E) E: 6(D)

Entonces procedemos a dibujar el diagrama del grafo como sigue:

Sea G un grafo dirigido con m nodos. La representacin secuencial de G en la memoria, o sea, la representacin de G por su matriz de adyacencia A, tiene unas cuantas desventajas importantes. En primer lugar, puede ser difcil insertar y eliminar nodos de G, esto es por que el tamao de A debera ser cambiado y los nodos deberan ser reordenados, as que habra muchos cambios en la matriz A; ms aun, si el numero de aristas es O(m) o O(m log2 m), entonces la matriz Aestar desperdiciada (contendr muchos ceros); por tanto, se desperdiciar una gran cantidad de espacio; entonces G normalmente se representa en memoria por una representacin enlazada, tambin llamada estructura de adyacencia.

70

6.3 Algoritmos de recorrido y bsqueda.


RECORRIDO DE GRAFOS: Recorrer un grafo significa tratar de alcanzar todos los nodos que estn relacionados con uno que llamaremos nodos de salida. Existen bsicamente dos tcnicas para recorrer un grafo: el recorrido en anchura y el recorrido en profundidad. As, para recorrer un grafo consiste en visitar todos los vrtices alcanzables a partir de uno dado. Hay dos formas.

Recorrido en profundidad (DFS) Recorrido en anchura (BFS) Algoritmo BFS El algoritmo de recorrido en anchura o BFS, explora sistemticamente todas las ramas o aristas del grafo de manera que primero se visitan los nodos o vrtices ms cercanos a un nodo inicial. Para la implementacin de este algoritmo se utiliza globalmente un contador y un vector de enteros para marcar los vrtices ya visitados y almacenar el recorrido. El algoritmo BFS requiere tambin un vector de cola auxiliar para gestionar los vrtices no visitados. En muchos casos es necesario ejecutar este algoritmo empezando en los nodos ms alejados del nodo escogido como nodo inicial. Algoritmo DFS El algoritmo de recorrido en profundidad o DFS, explora sistemticamente las ramas o aristas del grafo de manera que primero se visitan los nodos o vrtices adyacentes a los visitados ms recientemente. De esta forma se va "profundizando" en el grafo, es decir, alejndose progresivamente del nodo inicial [2]. Esta estrategia admite una implementacin simple en forma recursiva, utilizando globalmente un contador y un vector de enteros para marcar los vrtices ya visitados y almacenar el orden del recorrido.

71

BSQUEDA EN PROFUNDIDAD (BEP) Se comienza en el vrtice inicial (vrtice con ndice 1) que se marca como vrtice activo. Hasta que todos los vrtices hayan sido visitados, en cada paso se avanza al vecino con el menor ndice siempre que se pueda, pasando este a ser el vrtice activo. Cuando todos los vecinos al vrtice activo hayan sido visitados, se retrocede al vrtice X desde el que se alcanz el vrtice activo y se prosigue siendo ahora X el vrtice activo.

ALGORITMO BEP:

Sea G = (V, A) un grafo conexo, V' = V un conjunto de vrtice, A'un vector de arcos inicialmente vaco y P un vector auxiliar inicialmente vaco: 1. Se introduce el vrtice inicial en P y se elimina del conjunto V'. 2. Mientras V' no sea vaco repetir los puntos 3 y 4. En otro caso parar. 3. Se toma el ltimo elemento de P como vrtice activo. 4. Si el vrtice activo tiene algn vrtice adyacente que se encuentre en V': Se toma el de menor ndice. Se inserta en P como ltimo elemento. Se elimina de V'. Se inserta en A' el arco que le une con el vrtice activo. Si el vrtice activo no tiene adyacentes se elimina de P. BSQUEDA ANCHURA (BEA) Se comienza en el vrtice inicial (vrtice con ndice 1) y se marca como vrtice activo, a diferencia con la BEP ahora se visitan en orden creciente de ndice todos los vecinos del vrtice activo antes de pasar al siguiente. Hasta que todos los vrtices hayan sido visitados, en cada paso se van visitando en orden creciente de ndice todos los vecinos del vrtice activo. Cuando se han visitado todos los vecinos del vrtice activo, se toma como nuevo vrtice activo el primer vrtice X visitado despus del actual vrtice activo en el desarrollo del algoritmo.

ALGORITMO BEA:

Sea G = (V, A) un grafo conexo, V' = V un conjunto de vrtices, A' un vector de arcos inicialmente vaco y P un vector auxiliar inicialmente vaco: 1. Se introduce el vrtice inicial en P y se elimina del conjunto. 2. Mientras V' no sea vaco repetir los puntos 3 y 4. En otro caso parar. 3. Se toma el primer elemento de P como vrtice activo. 4. Si el vrtice activo tiene algn vrtice adyacente que se encuentre en V': Se toma el de menor ndice. Se inserta en P como ltimo elemento. Se elimina de V'. Se inserta en A' el arco que le une con el vrtice activo. Si el vrtice activo no tiene adyacentes se elimina de P.

72

6.3.1 El camino ms corto


En la Teora de grafos, el problema de los CAMINOS ms cortos es el problema que consiste en encontrar un camino entre dos vrtices (o nodos) de tal manera que la suma de los pesos de las aristas que lo constituyen es mnima. Un ejemplo es encontrar el camino ms rpido para ir de una ciudad a otra en un mapa. En este caso, los vrtices representan las ciudades, y las aristas las carreteras que las unen, cuya ponderacin viene dada por el tiempo que se emplea en atravesarlas. Formalmente, dado un grafo ponderado (que es un conjunto V de vrtices, un conjunto E de aristas y una funcin de variable real ponderada f : E R) y un elemento v V encuentra un camino P de v a v' V, tal que:

es el mnimo entre todos los caminos que conectan v y v'. El problema es tambin conocido como el problema de los caminos ms cortos entre dos nodos, para diferenciarlo de la siguiente generalizacin:

El problema de los caminos ms cortos con un destino en el cual tenemos que encontrar los caminos ms cortos desde todos los vrtices del grafo a un nico vrtice destino, esto puede ser reducido al problema anterior invirtiendo el orden. El problema de los caminos ms cortos entre todos los pares de vrtices, el cual tenemos que encontrar los caminos ms cortos entre cada par de vrtices (v , v') en el grafo.

Los algoritmos de los caminos ms cortos se aplican para encontrar direcciones de forma automtica entre localizaciones fsicas, tales como direcciones en mapas callejeros. Si un algoritmo representa una mquina abstracta no determinista como un grafo, donde los vrtices describen estados, y las aristas posibles transiciones, el algoritmo de los caminos ms cortos se usa para encontrar una secuencia ptima de opciones para llegar a un cierto estado final o para establecer lmites ms bajos en el tiempo, necesario para alcanzar un estado dado. Por ejemplo, si los vrtices representan los estados de un puzzle como el Cubo de Rubik, cada arista dirigida corresponde a un simple movimiento o giro. El algoritmo de los caminos ms cortos se usa para encontrar la solucin que utiliza el mnimo nmero posible de movimientos.

73

En el argot de las telecomunicaciones, a este algoritmo es tambin conocido como el problema del mnimo retraso, y con frecuencia se compara con el problema de los caminos ms anchos. Una aplicacin ms coloquial es la teora de los "Seis grados de separacin", a partir de la cual se intenta encontrar el camino ms corto entre dos personas cualesquiera. Otras aplicaciones incluyen la Investigacin de operaciones, instalaciones y facilidad de diseo, robtica, transporte y VLSI de diseo.

Ejemplo:

Figura 1.- Algoritmo usado por una colonia de hormigas para encontrar el camino ms corto entre dos puntos

6.3.2. A lo ancho
Bsqueda en anchura (en ingls BFS - Breadth First Search) es un algoritmo para recorrer o buscar elementos en un grafo (usado frecuentemente sobre rboles). Intuitivamente, se comienza en la raz (eligiendo algn nodo como elemento raz en el caso de un grafo) y se exploran todos los vecinos de este nodo. A continuacin para cada uno de los vecinos se exploran sus respectivos vecinos adyacentes, y as hasta que se recorra todo el rbol. Formalmente, BFS es un algoritmo de bsqueda sin informacin, que expande y examina todos los nodos de un rbol sistemticamente para buscar una solucin. El algoritmo no usa ninguna estrategia heurstica. Sea G = (V, A) un grafo conexo, V = V un conjunto de vrtices, A un vector de arcos inicialmente vaco y P un vector auxiliar inicialmente vaco:

74

1. Se introduce el vrtice inicial en P y se elimina del conjunto. 2. Mientras V no sea vaco repetir los puntos 3 y 4. En otro caso parar. 3. Se toma el primer elemento de P como vrtice activo. 4. Si el vrtice activo tiene algn vrtice adyacente que se encuentre en V: Se toma el de menor ndice. Se inserta en P como ltimo elemento. Se elimina de V. Se inserta en A el arco que le une con el vrtice activo. Si el vrtice activo no tiene adyacentes se elimina de P. Ejemplo:

6.3.3 En profundidad
Una Bsqueda en profundidad (en ingls DFS o Depth First Search) es un algoritmo que permite recorrer todos los nodos de un grafo o rbol (teora de grafos) de manera ordenada, pero no uniforme. Su funcionamiento consiste en ir expandiendo todos y cada uno de los nodos que va localizando, de forma recurrente, en un camino concreto. Cuando ya no quedan ms nodos que visitar en dicho camino, regresa (Backtracking), de modo que repite el mismo proceso con cada uno de los hermanos del nodo ya procesado.

Se comienza en el vrtice inicial (vrtice con ndice 1) que se marca como vrtice activo. Hasta que todos los vrtices hayan sido visitados, en cada paso se avanza al vecino con el menor ndice siempre que se pueda, pasando este a ser el vrtice activo. Cuando todos los

75

vecinos al vrtice activo hayan sido visitados, se retrocede al vrtice X desde el que se alcanz el vrtice activo y se prosigue siendo ahora X el vrtice activo.

ALGORITMO BEP:

Sea G = (V, A) un grafo conexo, V = V un conjunto de vrtice, Aun vector de arcos inicialmente vaco y P un vector auxiliar inicialmente vaco:

1. 2. 3. 4.

Se introduce el vrtice inicial en P y se elimina del conjunto V. Mientras V no sea vaco repetir los puntos 3 y 4. En otro caso parar. Se toma el ltimo elemento de P como vrtice activo. Si el vrtice activo tiene algn vrtice adyacente que se encuentre en V:

Se toma el de menor ndice. Se inserta en P como ltimo elemento. Se elimina de V. Se inserta en A el arco que le une con el vrtice activo. Si el vrtice activo no tiene adyacentes se elimina de P. En la siguiente figura mostramos el orden de visita, siendo los nmeros en naranja dicho orden:

6.4 Arboles.

76

Concepto de rbol Los rboles forman una de las subclases de grficas que ms se utilizan. La ciencia de la computacin hace uso de los rboles ampliamente, especialmente para organizar y relacionar datos en una base de datos. Los rboles surgen en problemas tericos como el tiempo ptimo para ordenar. Formalmente se define un rbol de tipo T como una estructura homognea que es la concatenacin de un elemento de tipo T junto con un nmero finito de rboles disjuntos, llamados subrboles. Una forma particular de rbol puede ser la estructura vaca. Un rbol es un grafo simple en el cual existe un nico camino entre cada par de vrtices. Los rboles pueden ser construidos con estructuras estticas y dinmicas. Las estticas son arreglos, registros y conjuntos, mientras que las dinmicas estn representadas por listas. Sea G =(V,A) un grafo no dirigido. G se denomina ARBOL, si es conexo y no contiene ciclos. Ejemplo de rbol:

Otros ejemplos de rbol son:

En donde: Los grafos G1 y G2 son rboles, mientras que los grafos G3 y G4 no lo son. Bosque Es un grafo donde cada componente conexa es un rbol, es decir es un conjunto de rboles no conexos entre s. Adems es un grafo sin ciclos por estar compuesto por rboles.

77

Arborescencia. Es un rbol dirigido con un nodo llamado raz, tal que existe un nico camino desde la raz a cualquier otro nodo del rbol. Ese camino es elemental y simple.

CARACTERSTICAS DE LOS ARBOLES. (RAIZ, HOJA, PADRE, HIJO, DESCENDIENTE, ANCESTRO) Un rbol est divido en tres subconjuntos separados. El primer subconjunto contiene un nico elemento llamado raz del rbol.

78

Los otros 2 subconjuntos son por si mismos rboles binarios y se les conoce como subrboles izquierdo y derecho del rbol original. Cada elemento de un rbol binario se denomina nodo. La ausencia de una ramificacin indica un subrbol vacio. Si A es la raz de un rbol binario y B es la raz de su subrbol izquierdo o derecho, se dice que A es el padre de B y se dice que B es el hijo izquierdo o derecho de A. Un nodo que no tiene hijos se denomina hoja. El nodo n1 es un ancestrodel nodo n2 ( y n2 es un descendiente de n1) si n1 es el padre de n2 o el padre de algn ancestro de n2. 2 nodos son hermanos si son los hijos izquierdo y derecho del mismo padre. Si cada nodo que no es hoja es un rbol binario tiene subrboles izquierdo y derecho que no estn vacos, el elemento se clasifica como rbol estrictamente binario. Los rboles representan las estructuras no lineales y dinmicas de datos ms importantes en computacin. Dinmicas porque las estructuras de rbol pueden cambiar durante la ejecucin de un programa. No lineales, puesto que a cada elemento del rbol pueden seguirle varios elementos. Se utiliza la recursin para definir un rbol porque representa la forma ms apropiada y porque adems es una caracterstica inherente de los mismos. Los rboles tienen una gran variedad de aplicaciones. Por ejemplo, se pueden utilizar para representar frmulas matemticas, para organizar adecuadamente la informacin, para construir un rbol genealgico, para el anlisis de circuitos elctricos y para numerar los captulos y secciones de un libro.

79

TIPOS DE RBOL rbol libre Un rbol T (libre) es una grfica simple que satisface lo siguiente; si v y w son vrtices en T, existe una trayectoria simple nica de v a w. Se muestra un ejemplo:

RBOLES DE EXPANSIN Un rbol T es un rbol de expansin de una grfica G si T es una subgrfica de G que contiene a todos los vrtices de G. Una grafica G tiene un rbol de expansin si y solo si G es conexa. El rbol de expansin para la grafica G que se presenta, se muestra con lnea seguida.

80

Existen dos mtodos para encontrar el rbol de expansin de una grafica G: 1. Por bsqueda a lo ancho: permite procesar todos los vrtices en un nivel dado antes de moverse al nivel ms alto que lo sigue; primero se selecciona un orden de los vrtices, considerando el primer vrtice de ese orden como raz. 2. Por bsqueda en profundidad: o conocido tambin como de regreso. Ejemplo Utilice la bsqueda a profundidad con el orden h, g, f, e, d, c, b, a de los vrtices para determinar un rbol de expansin de la grafica G. Tomado h como vrtice raz tenemos:

rboles de expansin mnimo Un rbol de expansin comprende un grafo que posee nodos, arcos cada uno con longitud (peso) no negativa. Para encontrar el rbol de expansin mnima se debe recorrer todos los vrtices del rbol en el que la suma de los pesos de sus aristas sea mnima, no se incluyen ciclos en la solucin. Un rbol de expansin mnima de G es un rbol de expansin de G con peso mnimo. rboles Binarios Estn entre los tipos de rboles binarios especiales con raz, su caracterstica es que todo vrtice tiene cuando mucho dos hijos. Donde cada hijo se designa como un hijo izquierdo o un hijo derecho, adems, su posicin en el rbol los identifica. Formalizando se dice que un rbol binario es un rbol con raz en el que cada vrtice tiene ningn hijo, un hijo o dos hijos. Si el vrtice tiene un hijo se designa como un hijo izquierdo o como derecho (pero no ambos). Si un vrtice tiene dos hijos, un hijo se designa como hijo izquierdo y el otro como hijo derecho.

81

Un rbol binario completo es un rbol binario en el que cada vrtice tiene dos o cero hijos. Ejemplo

Arboles degenerados: rbol con un solo vrtice y sin lados. rbol maximal: T es un rbol maximal de un grafo G conexo, si es un rbol y contiene todos los vrtices de G. Arboles generadores. Un rbol T es un rbol generador de un grafo G si T es un subgrafo de G que contiene todos los vrtices de G. Todo grafo conexo posee un rbol generador. Su algoritmo es: Si G es un grafo conexo con n vrtices:

Paso 1: Elegir un vrtice v de G y considerar el rbol Ai formado slo por v. Paso 2: Para i = 2, . . . , n formar el rbol A a partir de A eligiendo un vrtice de G que no sea vrtice de A i-1 tal que est conectado con algn vrtice de Ai-1 por una arista, y aadiendo esa arista. Paso 3: El rbol An as obtenido es rbol generador.

82

6.4.1 Componentes (raz, hoja, padre, hijo, descendientes, ancestros)


Un rbol est divido en tres subconjuntos separados.

El primer subconjunto contiene un nico elemento llamado raz del rbol. Los otros 2 subconjuntos son por si mismos rboles binarios y se les conoce como subrboles izquierdo y derecho del rbol original. Cada elemento de un rbol binario se denomina nodo. La ausencia de una ramificacin indica un subrbol vacio. Si A es la raz de un rbol binario y B es la raz de su subrbol izquierdo o derecho, se dice que A es el padre de B y se dice que B es el hijo izquierdo o derecho de A. Un nodo que no tiene hijos se denomina hoja. El nodo n1 es un ancestro del nodo n2 ( y n2 es un descendiente de n1) si n1 es el padre de n2 o el padre de algn ancestro de n2. 2 nodos son hermanos si son los hijos izquierdos y derecho del mismo padre. Si cada nodo que no es hoja es un rbol binario tiene subrboles izquierdo y derecho que no estn vacos, el elemento se clasifica como rbol estrictamente binario. Los rboles representan las estructuras no lineales y dinmicas de datos ms importantes en computacin. Dinmicas porque las estructuras de rbol pueden cambiar durante la ejecucin de un programa. No lineales, puesto que a cada elemento del rbol pueden seguirle varios elementos. Se utiliza la recursin para definir un rbol porque representa la forma ms apropiada y porque adems es una caracterstica inherente de los mismos. Los rboles tienen una gran variedad de aplicaciones. Por ejemplo, se pueden utilizar para representar frmulas matemticas, para organizar adecuadamente la informacin, para construir un rbol genealgico, para el anlisis de circuitos elctricos y para numerar los captulos y secciones de un libro. Raz: Nodo que constituye la nica entrada a la estructura (por ello es necesario tener un puntero sobre l). Ramas o Arcos: Conexin entre dos nodos del rbol que representa una relacin de jerarqua. Hojas: Nodo sin hijos

83

6.4.2 Propiedades
Un rbol es un grafo simple en el cual existe un nico camino entre cada par de vrtices. Sea G =(V,A) un grafo no dirigido. G se denomina RBOL, si es conexo con n nodos y n1 aristas y no contiene ciclos. Formas equivalentes de definir un rbol.

1. Un rbol es un grafo conexo con n nodos y n-1 aristas. 2. Un rbol es un grafo conexo que no contiene ciclos. 3. Un rbol es un grafo con n nodos, n -1 arista y sin ciclos. 4. Un rbol es un grafo tal que entre cualquier par de nodos distintos existe un camino simple nico.

Propiedades: Existe un nico paseo entre dos vrtices cualesquiera de un rbol. El nmero de vrtices es mayor en uno al nmero de aristas de un rbol. Un rbol con dos o ms vrtices tiene al menos dos hojas. Un rbol T (libre) es una grfica simple que satisface lo siguiente; si v y w son vrtices en T, existe una trayectoria simple nica de v a w. Todo rbol es a su vez un grafo bipartito. Todo rbol con slo un conjunto numerable de vrtices es adems un grafo plano. Todo grafo conexo G admite un rbol de expansin, que es un rbol que contiene cada vrtice de G y cuyas aristas son aristas de G. Dado n vrtices etiquetados, hay n n-2 maneras diferentes de conectarlos para construir un grafo. El resultado se llama frmula de Cayley. El nmero de rboles con n vrtices de grado d1 ,d2 ,...,dn es:

Los arboles son un tipo especial de grafo. G es un grafo, no digrafo sin bucles. G es un arbol si es conexo y no tiene ciclos. Teorema 1: Si a y b son dos vertices distintos de un arbol, entonces existe un unico camino elemental que conecta dichos vertices. Teorema 2: T es un arbol cualquiera, entonces |v|=|E|+1. Teorema 3: T es un arbol con |v|"2, se verifica que tiene a lmenos dos vertices terminales.

84

6.4.2 CLASIFICACION (ALTURA, NUMERO DE NODOS)

Altura La altura (o profundidad) de un rbol es el largo del mayor camino de la raz a una hoja. Dado un camino < v0, v1, v2,..., vk > el largo de este camino es k. Por lo cual el largo de un camino es igual al nmero de arcos del camino.

Numero de Nodos Nodo: Es el trmino usado para referirse a un vrtice de un rbol con raz. Un rbol estrictamente binario con n hojas siempre contiene 2n - 1 nodos. El nivel de un nodo en rbol binario se define del modo siguiente: la raz del rbol tiene el nivel 0, el nivel de cualquier otro nodo en el rbol es uno ms que el nivel de su padre. Si un rbol binario contiene m nodos en el nivel I, contiene cuando mucho 2mnodos en el nivel I + 1. Dado que un rbol binario solo contiene un nodo en el nivel 0 (raz), puede contener un mximo de 2I nodos en el nivel I. Un rbol binario completo de profundidad d es el rbol que contiene 2I nodos en el nivel Ientre 0 y d. La cantidad total de nodos en un rbol binario completo de profundidad d, tnes igual a la suma de la cantidad de nodos en cada nivel entre 0 yd. Un rbol binario de profundidad d es un rbol binario casi completo si: Cualquier nodo nd a un nivel menor que d - 1tiene 2 hijos. Para cualquier nodo nd en el rbol con un descendiente derecho en el nivel d, nd debe tener 1 hijo izquierdo y cada descendiente izquierdo de ndes una hoja en el nivel d o tiene 2 hijos . Los nodos de un rbol binario casi completo se enumeran para que se asigne a la raz el No.1, se asigne a un hijo izquierdo 2 veces el nmero asignado a su padre y se asigne a un hijo derecho 1 ms el doble del No. asignado a su padre. Un rbol estrictamente binario casi completo con n hojas tiene 2n - 1nodos, como cualquier otro rbol estrictamente binario con n hojas. Un rbol binario casi completo con n hojas que no es estrictamente binario tiene 2n nodos. Solo hay un rbol binario casi completo con n nodos. Este rbol es estrictamente binario si y solo si n es impar.

85

Igual que en el caso de los nodos de lista, los nodos de rboles se implementan como elementos de un arreglo o como asignaciones de una variable dinmica. Cada nodo contiene campos info, left, right y father. Los campos left, righty father de un modo apuntan al hijo izquierdo, al hijo derecho y al padre del nodo, respectivamente. Por definicin, los nodos de hoja no tienen hijos. En ocasiones, se usan 2 conjuntos de nodos separados para hojas y los que no son hojas. Los nodos que no son hojas contienen campos info, left y right. . se asignan como registros dinmicos o como un arreglo de registros controlados usando una lista disponible. Los nodos hojas no contienen un campo left o right y se conservan como una arreglo info nico que se asigna secuencialmente conforme se necesita. Cuando se establece la diferencia entre los nodos de hojas y los no hojas, los no hojas se llaman nodos internos y los hojas se llaman nodos externos.

6.4.3 Clasificacin (altura, nmero de nodos)


Caractersticas del rbol, en relacin a su tamao: Orden: es el nmero potencial de hijos que puede tener cada elemento de rbol. De este modo, diremos que un rbol en el que cada nodo puede apuntar a otros dos es de orden dos, si puede apuntar a tres ser de orden tres, etc. Grado: el nmero de hijos que tiene el elemento con ms hijos dentro del rbol. En el rbol del ejemplo, el grado es tres, ya que tanto 'A' como 'D' tienen tres hijos, y no existen elementos con ms de tres hijos. Nivel: se define para cada elemento del rbol como la distancia a la raz, medida en nodos. El nivel de la raz es cero y el de sus hijos uno. As sucesivamente. En el ejemplo, el nodo 'D' tiene nivel 1, el nodo 'G' tiene nivel 2, y el nodo 'N', nivel 3. Altura: la altura de un rbol se define como el nivel del nodo de mayor nivel. Como cada nodo de un rbol puede considerarse a su vez como la raz de un rbol, tambin podemos hablar de altura de ramas. El rbol del ejemplo tiene altura 3, la rama 'B' tiene altura 2, la rama 'G' tiene altura 1, la 'H' cero, etc. Si un grafo tiene un vrtice Uo que solo contiene una diferente de UoU1 (a s mismo) entonces es un rbol.

86

Altura = 3 (el nivel mas grande) raz = que no tiene padre (inicial) padre = que tiene hijo(s) hoja = no tiene hijo(s), tiene padre rbol ordenado: tiene nivel, los hijos de izquierda a derecha. n-rbol: cuando cada padre tiene a lo ms n hijos rbol binario: cada padre tiene a lo ms 2 hijos.

6.4.4 rboles con peso


El peso de un rbol en un nodo dado es el nmero de nodos en el rbol sin contarse el mismo. El peso de un nodo en un rbol es la longitud del camino ms largo del nodo a una hoja. El peso de un rbol es el peso de la raz. Un rbol con peso es un grafo donde cada lado tiene un nmero asociado o peso. Normalmente, al peso de un lado e se le designa por w(e). La suma de todos los pesos de todos los lados de un grafo con peso se llama el peso del grafo.

Ejemplo: cual es el peso de un rbol? Peso total del grafo = 19

87

6.4.5 Recorrido de un rbol: Preorden, Inorden, Postorden.


Preorden: (raz, izquierdo, derecho). Para recorrer un rbol binario no vaco en preorden, hay que realizar las siguientes operaciones recursivamente en cada nodo, comenzando con el nodo de raz: 1. Visite la raz 2. Atraviese el sub-rbol izquierdo 3. Atraviese el sub-rbol derecho

Inorden: (izquierdo, raz, derecho). Para recorrer un rbol binario no vaco en inorden (simtrico), hay que realizar las siguientes operaciones recursivamente en cada nodo:

1. Atraviese el sub-rbol izquierdo 2. Visite la raz 3. Atraviese el sub-rbol derecho

Postorden: (izquierdo, derecho, raz). Para recorrer un rbol binario no vaco en postorden, hay que realizar las siguientes operaciones recursivamente en cada nodo:

1. Atraviese el sub-rbol izquierdo 2. Atraviese el sub-rbol derecho 3. Visite la raz

88

Ejemplo: Aqu podemos observar un rbol y el recorrido de el.

89

Solucin: Profundidad-primero

Secuencia de recorrido de preorden: F, B, A, D, C, E, G, I, H (raz, izquierda, derecha) Secuencia de recorrido de inorden: A, B, C, D, E, F, G, H, I (izquierda, raz, derecha); note cmo esto produce una secuencia ordenada Secuencia de recorrido de postorden: A, C, E, D, B, H, I, G, F (izquierda, derecha, raz)

Anchura-primero

Secuencia de recorrido de orden por nivel: F, B, G, A, D, I, C, E, H

6.5 Redes.(teorema de flujo mximo, teorema de flujo mnimo, pareos y redes de Petri)
Definicin: Una Red de Transporte es una grfica dirigida, simple, con pesos y que debe cumplir las siguientes: Poseer una fuente o vrtice fijo que no tiene aristas de entrada. Poseer un sumidero o vrtice fijo que no tiene arista de salida El peso Cij de la arista dirigida de i a j llamado capacidad de ij es un numero no negativo. Una red de transporte es una grfica dirigida, simple con pesos que satisface: a) Un vrtice fijo, designado como el origen o fuente, no tiene aristas de entrada. b) Un vrtice, designado como destino o sumidero, no tiene aristas salientes. c) El peso Cij de la arista dirigida (i, j) llamada capacidad de (i, j) es un numero no negativo.

90

Flujo mximo

En una red G, el flujo mximo es un flujo mximo. Generalmente existen varios flujos con el mismo valor mximo. Para encontrar el flujo mximo consideraremos un flujo inicial en cada arista igual a cero, despus se determina un camino especfico de la fuente al sumidero y se incrementa el flujo. Si una arista est dirigida hacia la fuente decimos que esta arista esta dirigida en forma impropia, en caso contrario est dirigida en forma propia. Si se determina un camino P de la fuente al sumidero en donde cada arista de P esta orientada en forma propia y el flujo en cada arista es menor que la capacidad de la arista, es posible aumentar el valor de flujo. Es posible incrementar el flujo en ciertos caminos de la fuente al sumidero que tenga aristas orientadas en forma impropia y propia. Sea P un camino de a a z y sea x un vrtice en P que no sea a ni z

Ambas aristas estn orientadas en forma propia, en este caso, si incrementamos el flujo en ", el flujo en la entrada en x seguir siendo igual al flujo de salida de x. Si incrementamos el flujo en e2 en ", debemos disminuir el flujo en e1 en " de modo que el flujo de entrada en x siga siendo igual al flujo de salida en x. Es anlogo en el caso b Disminuimos el flujo en ambas aristas en ". En cada caso las asignaciones resultantes de las aristas dan como resultado un flujo.

Para realizar estas alteraciones debemos tener un flujo menor que la capacidad en una arista orientada en forma propia y un flujo distinto de cero en una arista orientada en forma impropia. Teorema 2:

91

Sea P un camino de a a z en una red G tal que:

Para cada arista (i,j) de P, orientada en forma propia.

Fij <Cij

Para cada arista (i,j) de P, orientada en forma impropia

0 <Fij Se define F'ij = Si no existieran caminos que concuerden con el teorema 2, el flujo es mximo, entonces se considera el algoritmo:

Iniciar con un flujo Buscar un camino que satisfaga con las condiciones del teorema 2 Si no existe el camino el flujo es mximo. Se incrementa el flujo en ", y se regresa a lnea 2.

A dicho algoritmo se le llama Algoritmo etiquetado.

Ejemplo del Flujo Mximo.-

92

Flujo mnimo Pareos Haz clic aqu para modificar. Redes de petri Una red de Petr es un grafo dirigido bipartito, con un estado inicial, llamado marcacin inicial. Los dos componentes principales de la red de Petr son los sitios (tambin conocidos como estados) y las transiciones. Grficamente, los sitios son dibujados como crculos y las transiciones como barras o rectngulos. Las aristas del grafo son conocidas como arcos. Estos tienen un peso especfico, el cual es indicado por un nmero entero positivo, y van de sitio a transicin y viceversa. Por simplicidad, el peso de los arcos no se indica cuando ste es igual a 1. Un arco que est etiquetado con k puede ser interpretado como k arcos paralelos.

Ejemplo de una Red de Petr Es una grafica dirigida G = (V, E) donde V = P U T y P "T = , cualquier arista e en E es incidente en un miembro de P y un miembro de T, el conjunto P es el conjunto de lugares y el conjunto T es en conjunto de Transiciones. Un marcado de una Red de Petr asigna a cada lugar un entero no negativo, una red de Petr con un marcado es una Red de Petr Marcada (o simplemente una Red de Petr). Con un marcado se asigna al valor no negativo n al lugar p, decimos que existen n elementos en p, mediante los elementos a representar son los puntos.

93

Los lugares representan condiciones, las transiciones representan eventos, y la presencia de al menos un elemento en un lugar (condicin) indica que tal condicin se cumple.

6.6 Aplicaciones de grafos y rboles.


Aplicaciones de grafos y rboles Gracias a la teora de grafos se pueden resolver diversos problemas como por ejemplo la sntesis de circuitos secuenciales, contadores o sistemas de apertura. Se utiliza para diferentes reas por ejemplo, Dibujo computacional, en todas las reas de Ingeniera. Los grafos se utilizan tambin para modelar trayectos como el de una lnea de autobs a travs de las calles de una ciudad, en el que podemos obtener caminos ptimos para el trayecto aplicando diversos algoritmos como puede ser el algoritmo de Floyd. Para la administracin de proyectos, utilizamos tcnicas como PERT en las que se modelan los mismos utilizando grafos y optimizando los tiempos para concretar los mismos.

La teora de grafos tambin ha servido de inspiracin para las ciencias sociales, en especial para desarrollar un concepto no metafrico de red social que sustituye los nodos por los actores sociales y verifica la posicin, centralidad e importancia de cada actor dentro de la red. Esta medida permite cuantificar y abstraer relaciones complejas, de manera que la estructura social puede representarse grficamente. Por ejemplo, una red social puede representar la estructura de poder dentro de una sociedad al identificar los vnculos (aristas), su direccin e intensidad y da idea de la manera en que el poder se transmite y a quines. Los grafos son importantes en el estudio de la biologa y hbitat. El vrtice representa un hbitat y las aristas (o "edges" en ingls) representa los senderos de los animales o las migraciones. Con esta informacin, los cientficos pueden entender cmo esto puede cambiar

94

o afectar a las especies en su hbitat. Por ejemplo, supongamos que unas lneas areas realizan vuelos entre las ciudades conectadas por lneas como se ve en la figura anterior (ms adelante se presentaran grafos con estructuras de datos); la estructura de datos que refleja esta relacin recibe el nombre de grafo.

Algunos ejemplos son los siguientes:

Socio grama de una red social Ismeros Organigramas Arquitectura de redes de telefona Draws de eliminacin directa (ej: tenis) Circuito elctrico Mapas conceptuales Plano de estaciones del metro Topologa de red de computadores Plano de autopistas

95

96

97

Vous aimerez peut-être aussi