matematica discreta.ppt

204
MATEMATICA DISCRETA Prof: Santiago Domingo Moquillaza Henríquez

Upload: luis-limber-leandro-lopez

Post on 06-Feb-2016

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Matematica Discreta.ppt

MATEMATICA DISCRETA

Prof: Santiago Domingo

Moquillaza Henríquez

Page 2: Matematica Discreta.ppt

Calculo ProposicionalCalculo Proposicional

Ejercicios:1)Demuestre que T S puede deducirse de las premisas ⋀

p -> q , q -> ~r , r , p (T S)⋁ ⋀

1) p -> q (premisa) p -> q <-> ~q -> ~p 2) q -> ~r (premisa)3) p -> ~r (silogismo hipotético)4) r -> ~p (3, contraposición (15)) 5) r (premisa)6) ~p (4,5,MP(3))7) p (T S) ⋁ ⋀ (premisa)8) ~p -> (T S) ⋀ (7,condicional (12))9) (T S) ⋀ (6,8,MP)

p->q p->q ⋀

Page 3: Matematica Discreta.ppt

2) Demuestre que dado p q , p -> r q , r -> s T , ⋀ ⋀ ⋁~s puede deducirse T: 1) p Simplificación Conjuntiva (p q -> p)⋀2) p -> r q⋀ (premisa)3) r q ⋀ (1,2,MP)4) r (Simplificación Conjuntiva)5) r -> s T⋁ (premisa)6) s T ⋁ (4,5,MP)7) ~s -> T (6,Condicional)8) ~s (premisa)9) T (7,8,MP)

Page 4: Matematica Discreta.ppt

3) Proporcione la demostración para la implicación p -> (q -> s) , (~r p) , q -> (r -> s ) es decir usted debe ⋁llegar a la implicancia r -> s

1) ~r p⋁ (premisa)2) r -> p (1,Condicional)3) p -> (q -> s ) (premisa)4) r -> (q -> s ) (2,3,Silogismo Hipotético)5) ~r (q -> s ) ⋁ (4,Disyuncion Condicional)6) ~r (~q s ) ⋁ ⋁ (5,Disyuncion Condicional)7) q8) q (~r ~q s )⋀ ⋁ ⋁ (6,7,Intersectando) 9) q ~r q ~q q s (Distribuyendo)⋀ ⋁ ⋀ ⋁ ⋀10) q ~r F q s ⋀ ⋁ ⋁ ⋀ (Falacia)11) q ~r q s ⋀ ⋁ ⋀ (Identidad)12) q (~r s)⋀ ⋁ (Distributiva) 13) ~r s⋁ (12,Simplificacion)14) r -> s (13,Condicional)

Page 5: Matematica Discreta.ppt

Métodos de Demostración:

Método directo o de Hipótesis auxiliar:Se basa en el principio p -> q si se asume como verdad p se debe demostrar que q es verdad.

Ejemplo:Si m y n son números enteros impares entonces su producto es impar.

p = m y n son números enteros imparesq = su producto es impar

m = 2k1 + 1 (impar,k1 Є Z+)n = 2k2 + 2 (impar,k2 Є Z+)

m*n = (2k1 + 1)(2k2 + 1) = 4k1k2 + 2k1 + 2k2 + 1 = 2(2k1k2 + k1 + k2 ) + 1 -> impar

Page 6: Matematica Discreta.ppt

Método por Reducción al Absurdo:

Se debe llegar a una falacia, es decir partiendo de un p llegar a un ~p.

Ejemplo _Demostrar que √2 es irracional _Asumir que √2 es racional.Si es racional p,q Z∈ + / además p y q son primos entre si. _√2 = p/q -> elevando al cuadrado2 = p2/q2 -> 2q2 = p2 -> p es par, es decir un divisor de 2

p -> qp2 es par -> p es par

Page 7: Matematica Discreta.ppt

p -> q <-> ~q -> ~p (Método Indirecto)

p es impar -> p2 es imparp=2k+1 -> (2k+1) 2 = 4k2 + 4k + 1

par impar

p=2k1 -> 2q2 = (2k1)2 -> q2 = (4k1)2

2

2k12 -> q es par (es decir divisor de 2)

Entonces se llega a una contradicción dado que p y q tienen como divisor a 2 por lo tanto p y q no son primos entre si por lo tanto √2 no es un numero racional.

Page 8: Matematica Discreta.ppt

Método Indirecto:Se utiliza la contra positiva, a veces conviene demostrar ~q -> ~p que equivale a demostrar p -> q.

Ejm:Demuestre que si n es entero y n3 es impar entonces n es par.

p = n3 es impar q = n es par

~q -> ~pn es impar -> n3+5 es par

Si n es impar se puede representar: n=2k1 +1 n3 = (2k1+1) 3+ (8k1

3+12k12+6k1+1)

n3 + 5 = (8k13+12k1

2+6k1+1+5) = (8k1

3+12k12+6k1+6)

= 2(4k13+6k1

2+3k1+3) es par lqqd.

Page 9: Matematica Discreta.ppt

Método de Demostración por Inducción Matemática

Consiste en demostrar que si la proposición es verdad para un valor inicial (paso base). Se asume como verdad la preposición para un P(k) (hipótesis inductiva) entonces se debe cumplir P(k+1), esta consecuencia ultima es la que se debe demostrar, dándole la forma de P(k).

Propiedad del Buen Orden:

Todo conjunto de enteros no negativos tiene un elemento mínimo.

Page 10: Matematica Discreta.ppt

Inducción Matemática

1) Supongamos que conocemos que P(1) es verdadera.

2) También P(k) -> P(k+1) para todos los enteros positivos k.

3) Hay que demostrar P(N).4) Asume como verdad 1 y 2.

Demostración:

Sea P(n) una proposición abierta con las condiciones (1) y (2) y sea F=[T Є Z+/P(T) es falsa] se demostrara por el absurdo.

Page 11: Matematica Discreta.ppt

Por el principio de buen orden todo conjunto que pertenece a los enteros tiene un elemento mínimo por ejemplo un T Є conjunto F ahora T ‡ 1 (porque si no estaría en contradicción con la hipótesis 1) entonces T>1 ; si T>1 -> P(T-1)(por la propiedad 2 es verdad ) Pero T-1 F -> P(T-1+1) es P(T) es también verdad por la condición 2.

Hay contradicción por lo tanto F es el conjunto vacio, entonces dado P(1) como verdad, P(k) verdad -> n se cumple p(n).

Page 12: Matematica Discreta.ppt

Ejercicios:

Demostrar = n(n+1) hallar el algoritmo y la complejidad temporal. 2 Para: n=1:

= 1 1 = 1(1+1) = 1 2

Para: n=k:

= k(k+1) (Hipótesis Inductiva) 2

Hay que probar para n=k+1

= +

Page 13: Matematica Discreta.ppt

= k(k+1) + k + 1 -> = (k+1)(k+2) 2 2

= (k+1)(k+1+1) -> Tiene la forma de HI

2

Por lo tanto = n(n+1) 2

Complejidad Temporal

Page 14: Matematica Discreta.ppt

Ejercicio 2:

Deducir la formula, luego compruebe:Realizar el algoritmo, luego la complejidad.

1*1 + 1*2 + ………….. + 1*n +2*1 + 2*2 + ………….. + 2*n + : : : : : :n*1 + n*2 + ………….. + n*n

Sumando: (1+2+3+…+n)(1+2+3+…+n)=n(n+1)*n(n+1) = n2(n+1)2

2 2 4

Page 15: Matematica Discreta.ppt

Ejercicio 3:

Demostrar que: n!>=2n-1 n>=1∀Para: n=1:

1! >= 21-1 n>1Para: n=k:

k! >= 2k-1 … HIProbar:Para: n=k+1 (k+1)!=(k+1)k!Pero: k! >= 2k-1

multiplicando por (k+1) a ambos lados (a>b ^ c>0 -> ac > bc)(k+1)k! >= 2k-1(k+1)(k+1)! >= 2k-1(k+1) >= 2*2k-1

k > 1 a>b ۸ c -> a+c > b+c 2k-1(k+1) > 2*2k-1

(k+1) >2 (k+1)! > 2k+1-1

-> n! >= 2k-1 n>=1∀

Page 16: Matematica Discreta.ppt

Algoritmo Factorial:

Dim r as doubleDim a,b,c as integer Console.Writeline(“Ingrese a:”)a=Console.Readline() Console.Writeline(“Ingrese b:”)b=Console.Readline() Console.Writeline(“Ingrese c:”)c=Console.Readline()

r=factorial(a-b) factoria(c)

Console.Writeline(“El resultado es: {0}”; r)

Page 17: Matematica Discreta.ppt

Demostrar por inducción que: n2 + 41n + 41 es un numero primo

Para: n=1: 12 + 41*1 + 41 es primo

Para: n=2: 4 + 82 + 41 = 127 también es primo

Usted comprobara que para cualquier k es un valor primo. Para n=k+1 adopta la misma forma, por lo tanto se cumple para cualquier n.

Función factorial(byval x as integer) if x=1 then

return 1 else

return x*factorial(x-1)

Page 18: Matematica Discreta.ppt

Algoritmo:

1)Lee num2)Primo=0 , i=23)if num>0 mientras(i<=sqrt(num) ^ primo==0)

if(resto(num/i)==0) { primo=0 } i=i+1

fin_mientras if(primo==1)

imprime (“numero no es primo”) else imprime (“el numero no es valido, debe

ser positivo”) fin_iffin

Page 19: Matematica Discreta.ppt

Ejemplo:

p p p I1 q T ~q I 2

r ~r r

(p q r) (p T q ~q) (p ⋁ ⋁ ⋀ ⋁ ⋁ ⋀ ⋁~q r)⋁

Rpta:

[p r (q T ~q ]⋁ ⋀ ⋀ ⋁

Page 20: Matematica Discreta.ppt

Prueba de Validez del Argumento:

Si 2 lados de un triangulo son iguales entonces los ángulos opuestos son iguales, si 2 lados de un triangulo no son iguales entonces los ángulos opuestos de un triangulo no son iguales.

Evalué si es tautología o falacia:

Page 21: Matematica Discreta.ppt

Funciones Booleanas y Circuitos Computacionales

f: Bn -> B cuyo dominio son variables booleanas y cuyo rango son 0 y 1 para cada uno de las variables se pueden asumir como variables un valor sea 0 o 1.

Ejm:

Page 22: Matematica Discreta.ppt

Al margen de utilizar el algebra booleana para reducir circuitos computacionales usted puede utilizar los mapas de karnaugh.

Dichos mapas reducen los circuitos computacionales que revisten alta complejidad.

Consiste en agrupar grupos de 2, 4, 8, etc … (potencias de 2) 1s (adyacentes o extremos adyacentes).

Mapa de 2 variables: Mapa de 3 variables:

Page 23: Matematica Discreta.ppt

Ejemplo:

Simplificar utilizando mapas de karnaugh: F=x’yz + x’yz’ + xy’z’ + xy’z donde x’ indica complemento de x. Se debe poner 1 en la celda de intersección y luego agruparlas de 2 en 2 o potencias de 2 con la condición de que sean adyacentes o extremos adyacentes.

Solución:

-> f = x’y + xy’

Page 24: Matematica Discreta.ppt

Simplificar:

F = x’yz + xy’z’ + xyz + xyz’

-> f =yz’+xy+

Simplificar:

F(x,y,z) = ∑(0,2,4,5,6)

-> f(x,y,z) = z’ + xy’

Page 25: Matematica Discreta.ppt

Reducir el circuito para un codificador de 4 entradas y 2 salidas, se conoce la tabla.

En este tipo de problemas hago 2 mayas de karnaugh, 1 para la

salida S1 y otra para S2.

-> S1 = e2 + e3

-> S2 = e2’e1 + e3

Page 26: Matematica Discreta.ppt

Reduzca la función por karnaugh

f1 = {0,1,2,3,16,17,18,19,10,14,15,13,24,30,31,29}

f = C’B’ + A’BDE’ + BCD + BCE + AC’D’E’

Page 27: Matematica Discreta.ppt

Cuantificadores

P(x) es verdadero para todos los valores de x en el universo del discurso, el cuantificador universal se denota como x ∀P(x).

Cuantificador Existencial:

al menos una x/P(x) es verdadera y se denota por medio de la notación xP(x)

Regla de Especificación Universal:

Es la regla de inferencia que establece que es posible concluir que P(c) es verdadero si xP(x) es verdadero, donde c es un miembro arbitrario del universo del discurso, esta regla recibe el nombre también de instanciación universal.

Page 28: Matematica Discreta.ppt

Regla de Especificación Existencial:

Es la regla que permite concluir que P(c) es verdadero si xP(x) que sea verdadero, donde c no es un miembro arbitrario del universo, sino para el que P(c) es verdadero se sabrá que o cual c, pero si que existe.

Regla de Generalización de Universo:

Es la regla que establece xP(x) es verdadero, si P(c) lo es, donde c es un miembro arbitrario del universo de discurso.

Regla de Generalización Existencial:

Es una regla que se usa para concluir que xP(x) es verdadero, cuando P(c) lo es, donde x es un miembro particular del universo en discurso.

Page 29: Matematica Discreta.ppt

Negación utilizando cuantificadores:

Ejemplos:

E1 ~ ( xp(x)) es equivalente a decir x ~p(x)

E2 ~ ( xq(x)) es equivalente a decir x ~q(x)

Utilizando las reglas vistas en la clase anterior demostrar:

x(p(x) q(x)) -> xp(x) xq(x)⋁ ⋁

1) Comenzamos negando la tesis, para luego llegar a una contradicción p^ ~p entonces: ~ ( xp(x) xq(x))⋁2) x~p(x)^ x ~ q(x) Utilizando 1 y Prop de Morgan negacion

Page 30: Matematica Discreta.ppt

3) x ~p(x) Por 2 y Simplificación Conjuntiva4) x ~q(x) Por 2 y Simplificación Conjuntiva5) ~p(a) Por 3 y GE6) ~q(a) Por 4 y GU7) ~p(a) ~q(a) ⋀ (5,6)8) ~(p(a) q(a)) ⋁ (7, Morgan)9) x (p(x) q(x)) ⋁ De la hipótesis o premisa10) p(a) q(a)⋁ Por 9 y EU11) Llegamos a una contradicción ~(p(a) q(a)) ^ p(a) ⋁ ⋁q(a) por 8 y 10 y falacia. ~ p ^ p

Por lo tanto se debe concluir que la hipótesis tomada inicialmente es falsa por lo tanto se cumple:

x(p(x) q(x)) -> xp(x) xq(x)⋁ ⋁

Page 31: Matematica Discreta.ppt

ALGORITMOS CON MATRICES

Ejemplo: Analizar la suma de 2 matrices

P1: for i = 1 to nfor j = 1 to n

Lee A[i,j] Captura A[i,j]fin for

fin for

P2: for i = 1 to nfor j = 1 to n

Lee B[i,j] Captura B[i,j]fin for

fin for

Page 32: Matematica Discreta.ppt

P3: for i = 1 to nfor j = 1 to n

S[i,j] = A[i,j] + B[i,j] fin for

fin for

P4: for i = 1 to nfor j = 1 to n

IMPRIME (S[i,j]) fin for

fin for

Page 33: Matematica Discreta.ppt

APLICACIÓN EN .NET

Sub Main()Dim i,j,n as integerDim A[10,10], B[10,10], S[10,10] as integerConsole.writeline(“Ingrese la primera matriz”)for i = 1 to n

for j = 1 to nA[i,j] = Console.readline();

nextnext

Console.writeline(“Ingrese la segunda matriz”)for i = 1 to n

for j = 1 to nB[i,j] = Console.readline();

nextnext

Page 34: Matematica Discreta.ppt

for i = 1 to nfor j = 1 to n

S[i,j] = A[i,j] + B[i,j]next

next

for i = 1 to nfor j = 1 to n

Console.writrline(“{0}, S[i,j]”)next

next

Page 35: Matematica Discreta.ppt

MULTIPLICACION DE MATRICES

for i = 1 to nfor j = 1 to n

r(i,j) = 0for R = 1 to n

r[i,j] = r(i,j) + a[i,R] + B[R,j]

next

next

next

Page 36: Matematica Discreta.ppt

ALGORITMO DE FIBONACCI

0,1,1,2,3,5,8,………

Fib(n) = Fin(n-1) + Fib(n-2)

Funcion F(n)INICIO

si n = 1retornar (0)

sinosi n=2

retornar (1)sino

retornar F(n-1) + F(n-2)fin si

fin siFIN

Page 37: Matematica Discreta.ppt

APLICACIÓN EN .NET

Dim N,R as integerN = Integer.parse(textbox1.text)R = Fibo(n)Textobox2.text = R

Function Fibo(Byval n as Integer)if n = 1 then

return (0)else

if n = 2 thenreturn (1)

elsereturn Fibo(n-1) + Fibo(n-2)

end ifend if

Page 38: Matematica Discreta.ppt

TECNICAS DE CONTEO

Regla de la Suma: Si una primera tarea puede realizarse de “m” formas mientras que una segunda tarea de “n” formas, y no es posible realizar ambas tareas simultaneamente, entonces podra llevar a cabo cualquiera de “m+n” tareas.

E1: Durante una campaña local hay 8 candidatos republicanos y 5 democratas que se nominan para presidente del consejo escolar

Si el presidente va a ser alguno de estos candidatos , cuantas posibilidades hay para escoger alguno de estos candidatos para la presidencia

R = {a,b,c,d,e,f,g,h} Entonces por el principioD = {1,2,3,4,5} de la suma se tiene

8 posibilidades de los republicanos5 posibilidades de los democratasEn total entonces tiene 13 posibilidades

Page 39: Matematica Discreta.ppt

Regla del Producto: Si un procedimiento se puede descomponer en 2 etapas 1° y 2°, y si existen “m” resultados posibles de la 1° etapa, y si para c/u de estos resultados existan “n” resultados posibles para la 2° etapa, entonces el procedimiento total se puede realizar en el orden dado de m*n formas

E1: El club de teatro de un grupo de estudiantes realizan ensayos para una obra. Si hay 6 hombres y 8 mujeres, ensayan para los papeles principales (femenino y masculino), de cuantas formas puede elegirse a la pareja principal?

M = {M1,M2, ……..., M8}H = {H1,H2,...…,H6}

Usted puede decidir que se puede formar parejas para M1

H1H2 6 posibles formas para la primera

M1 . mujer, en general seria 6*8 formas . posibles de formar la pareja principalH6

Page 40: Matematica Discreta.ppt

DIAGRAMA DE VENN Y TECNICAS DE CONTEO

Dado A y B de un universo finito U, se cumplen por teoria de conjuntos.

a) Si A y B son disjuntos, es decir:

A n B =

|A u B| = |A| + |B| Las 2 indican cantidad de sus elementos

b) Si A y B no son disjuntos:

|A u B| = |A| + |B| - |A n B|

Page 41: Matematica Discreta.ppt

Ejemplo: Dado el cuadro siguiente:

Hallar: a) Cuantos sujetos son femeninos o endomorfos b) Cuantos sujetos no son masculinos y mesomorfos

a) |F u E| = |F| + |E| - |F n E|

= 164 + 139 - 62 = 236

______ __ ___ __ ___ __ ___ b) |M n Me| = |M| u |Me| = |M| + |Me| - |M n Me|

= 164 + 252 - 126 = 290

Page 42: Matematica Discreta.ppt

Definición:

Sea A y B dos conjuntos dados llamaremos productos cartesiano de A por B y le representamos por AxB={(a,b)/a ∈ A,b ∈ B} Si A=B denotaremos con A2 a A x A.

Ejemplo:

Sean A={1,2} y B={a,b}AxB={(1,a),(1,b),(2,a),(2,b)}Es como ud. Observa el producto de 1 a 1 de lo “a ” que pertenecen a A con los ”b” que pertenecen a B.

PRODUCTO CARTESIANO

Page 43: Matematica Discreta.ppt

Una relación es el subconjunto del producto cartesiano. Se dividen en :

a)Relación Reflexiva

b) Relación Simétrica

c) Relación Transitiva

d) Relación Anti simétrica

RELACIONES

Page 44: Matematica Discreta.ppt

Relación Reflexiva:

Una relacion reflexiva es reflexiva si ∈ R (x,x) ∈ R

Ejemplo:

Sea A ={1,2,3}

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

Es reflexiva

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

No es refelxiva faltaria (3,3)

Page 45: Matematica Discreta.ppt

Relación Simétrica:

Una relacion sobre el conjunto A es simétrica si (x,y) ∈ R Entonces (y,x) ∈ R ∀ x,y ∈ A.

Ejemplo:

Si A={1,2,3}R1={(1,2),(2,1),(1,3),(3,1),(3,2)} es simétrica

Page 46: Matematica Discreta.ppt

Relación Transitiva:

Posee un conjunto A una relacion R sobre A es transitiva si ∀ x, y ,z A (x,y) (y,z) ∈ R entonces (x,z) ∈ R

Ejemplo

Si A={1,2,3}R1= { (1,2)(2,3(1,3) }

Observe que :(a,b) (b,c) (a,c)(1,2) (2,3) (1,3)

Page 47: Matematica Discreta.ppt

Anti simétrica:

Es anti simétrica si : a R b y b R a

Donde : a=b

además : a y b ∈ R o bien (a,b) ∈ R ó (b,a) ∈ R

Page 48: Matematica Discreta.ppt

PERMUTACIONES

Una permutacion de “n” objetos diferentes tomados de “r en r” es una ordenacion de “r” objetos entre los “n” dados y atendiendo a la ordenacion. El numero de permutaciones de “n” objetos, de n en n se representa por Pr n, P(n,r) o Pn,r y viene dado por:

n!P(n,r) = -----------

(n-r)!

E1: En un grupo de 10 estudiantes se eligieron a 5 para una foto. Cuantas disposiciones posibles hay?

10!P(10,5) = ------------

(10 - 5)!

Tambien lo pueden razonar asi:10 9 8 7 6--- --- --- --- ---

Luego multiplicando por las posiciones se obtiene: 10*9*8*7*6 = 30040

Page 49: Matematica Discreta.ppt

COMBINACIONES

Una combinacion de n objetos diferentes tomados de n en r es una relacion de los n objetos sin atender a la ordenacion de los mismos. El numero de combinaciones de “n” objetos tomados de n en r se representa por C(n,r), Cn,r; y viene dado por:

n! P(n,r) C(n,r) = ------------ = -------------

(n-r)!r! r!

E1: De cuantas formas puede elegirse un comité de 2 personas si hay un total de 4 personas. Personas: {A,B,C,D}

B C A C B

D D

C D

Usando formula: 4!C(n,r) = ------------ = 6

(4-2)!2!

Page 50: Matematica Discreta.ppt

EJERCICIOS

1) De un grupo de 12 alumnos deben formarse 3 equipos de 4 participantes para que asistan a 3 pruebas distintas. Cuantas clasificaciones distintas pueden formarse?

C(12,4) * C(8,4) * C(4,4) = ??

2) Hay que colocar 5 hombres y 4 mujeres en una fila de modo que las mujeres ocupan los lugares pares. De cuantas maneras puede hacerse?

H1 M1 H2 M2 H3 M3 H4 M4 H5 M5

1 2 3 4 5 6 7 8 9 10

4! * 5! = 2880 maneras

Page 51: Matematica Discreta.ppt

3) Cuantas permutaciones de los digitos 0,1,2,……,9 empiezan con 3 o terminan en 7 o cumplen ambas coincidencias.

3 0 1 2 3 4 5 6 7 8 9

7 0 1 2 3 4 5 6 7 8 9 3 7 0 1 2 3 4 5 6 7 8 9

Si asociamos: A = comienze en 3 B = termine en 7

|A u B| = |A| + |B| - |A n B| = 9! + 9! – 8!

4) Un estudiante tiene que contestar 8 de las 10 preguntas de un examen. Cuantas formas diferentes puede contestar?, Y si las 3 primeras son obligatorios?. Y si de las 5 primeras ha de contestar 4?

a) C(10,8)b) C(7,5)c) C(5,4) * C(5,4)

Page 52: Matematica Discreta.ppt

5) Cuanta palabras de 10 letras diferentes pueden formarse con 5 vocales y 5 consonantes de las 21 existentes de manera que no haya 2 vocales juntas ni 2 consonantes.

V C V C V C V C V C

ó

C V C V C V C V C V

2! * P(5,5) * P(21,5) = 586051200

Page 53: Matematica Discreta.ppt

ALGEBRA RELACIONALALGEBRA RELACIONALProjeccion (Projeccion (Π)Π):: Devuelve un atributo vertical (columna),cDevuelve un atributo vertical (columna),crea una nueva rea una nueva

relación a partir de otra,se puede extraer más de una columna, se eliminan relación a partir de otra,se puede extraer más de una columna, se eliminan las tuplas duplicadas que pudieran resultar. las tuplas duplicadas que pudieran resultar.

Su equivalente en SQL:Su equivalente en SQL:Select T1.A,T1.C from T1Select T1.A,T1.C from T1

Page 54: Matematica Discreta.ppt

Select (Select (σσ):):

Permite seleccionar las tuplas de una relación que cumplen una determinada condición. Permite seleccionar las tuplas de una relación que cumplen una determinada condición. Da como resultado una nueva relación.Da como resultado una nueva relación.

Select T1.A, T1.B,T1.c from T1Select T1.A, T1.B,T1.c from T1

Where T1.B>=2Where T1.B>=2

Page 55: Matematica Discreta.ppt

Unión (U)Unión (U):: La unión de dos tablas R y S es el conjunto de las tuplas que están en R, en La unión de dos tablas R y S es el conjunto de las tuplas que están en R, en

S o en las dos.S o en las dos. Si existe alguna tupla repetida sólo se escribirá una vez en el resultado. Si existe alguna tupla repetida sólo se escribirá una vez en el resultado. Requiere que R y S tengan el mismo rango. Requiere que R y S tengan el mismo rango.

Page 56: Matematica Discreta.ppt

Interseccion(n)Interseccion(n)::

Dadas dos tablas R y S, su intersección es el conjunto de las tuplas que Dadas dos tablas R y S, su intersección es el conjunto de las tuplas que están en R y en S. están en R y en S.

Requiere que R y S tengan el mismo rango.Requiere que R y S tengan el mismo rango.

Page 57: Matematica Discreta.ppt

Diferencia(-)Diferencia(-)::

La diferencia de dos tablas R y S es una nueva relación en la que se La diferencia de dos tablas R y S es una nueva relación en la que se encuentran las tuplas que pertenecen a R y que no pertenecen a S. encuentran las tuplas que pertenecen a R y que no pertenecen a S.

Page 58: Matematica Discreta.ppt

PRODUCTO CARTESIANOPRODUCTO CARTESIANO

Crea una nueva relación, a través de dos tablas R y S, cuyas tuplas se Crea una nueva relación, a través de dos tablas R y S, cuyas tuplas se obtienen concatenando cada tupla de R con cada tupla de S.obtienen concatenando cada tupla de R con cada tupla de S.

Page 59: Matematica Discreta.ppt

Ejemplo: Dada las relaciones, estudiante(sujeto) lleva(verbo) Ejemplo: Dada las relaciones, estudiante(sujeto) lleva(verbo) cursos(predicadocursos(predicado

Page 60: Matematica Discreta.ppt
Page 61: Matematica Discreta.ppt

a) Utilizando el algebra relacional muestre el Cod_Est,Nom_Est,Ape_Est.El a) Utilizando el algebra relacional muestre el Cod_Est,Nom_Est,Ape_Est.El Nom_Cur y la Nota para todos los estudiantes que han llevado CalculoI y cuya nota Nom_Cur y la Nota para todos los estudiantes que han llevado CalculoI y cuya nota es >13es >13

1)T4=T3*T11)T4=T3*T12)T5=T4*T22)T5=T4*T23)T6=3)T6= Π(T5) Π(T5)

Page 62: Matematica Discreta.ppt

ENTEROS Y DIVISIONENTEROS Y DIVISION

DefinicionDefinicion

Si a y b son enteros , a diferente de cero decimos que aSi a y b son enteros , a diferente de cero decimos que a \b y \b y c Enteros ∃ ∈c Enteros ∃ ∈/b=ac/b=ac

Propiedades:Propiedades:1)1) Si a\b y a\c entonces a\(b+c)Si a\b y a\c entonces a\(b+c)2)2) Si a\b entonces a\b cSi a\b entonces a\b c

entero centero c3)3) Si a\b y b\c entonces a\ cSi a\b y b\c entonces a\ c

El algoritmo de la división El algoritmo de la división sea a un entero y b un entero positivo , existen 2 únicos enteros q y r 0<=r<d / sea a un entero y b un entero positivo , existen 2 únicos enteros q y r 0<=r<d /

a=d*q+r.a=d*q+r.

Page 63: Matematica Discreta.ppt

MAXIMO COMUN DIVISOR MAXIMO COMUN DIVISOR

Definición:Definición:Sean a y b enteros no nulos el mayor entero d/a y d/b se denomina máximoSean a y b enteros no nulos el mayor entero d/a y d/b se denomina máximocomún divisor de a y b y se denota como MCD(a,b)común divisor de a y b y se denota como MCD(a,b)

Algoritmo:Algoritmo:Function MCD(x,y)Function MCD(x,y) Mientras (x ≠y)Mientras (x ≠y)

if(x>y)thenif(x>y)thenx=x-yx=x-y

elseelsey=y-xy=y-x

End ifEnd ifFin mientrasFin mientrasReturn x end functionReturn x end functionPara hallar el MCD de mas UD puede sobrecargar la función.Para hallar el MCD de mas UD puede sobrecargar la función.

Page 64: Matematica Discreta.ppt

RELACIONES RECURSIVAS O DE RELACIONES RECURSIVAS O DE RECURRENCIA LINEALES CON RECURRENCIA LINEALES CON COEFICIENTES CONSTANTESCOEFICIENTES CONSTANTES

Una relación recursiva de orden K es una función de la forma .Una relación recursiva de orden K es una función de la forma .

Sn =Sn =δδ(Sn-1 ,Sn-2 … ,Sn-k,n)(Sn-1 ,Sn-2 … ,Sn-k,n)

Es decir donde el n-esimo termino Sn, de una sucesión es una función de Es decir donde el n-esimo termino Sn, de una sucesión es una función de los k términos precedentes los k términos precedentes Sn-1 ,Sn-2 … ,Sn-k(y posiblemente en n ) en Sn-1 ,Sn-2 … ,Sn-k(y posiblemente en n ) en particular una relación recursiva lineal de orden k con coeficientes particular una relación recursiva lineal de orden k con coeficientes constantes es una relación recursiva de la forma.constantes es una relación recursiva de la forma.

Sn = C1Sn-1 + C2Sn-2 + … + CkSn-k+f(n)Sn = C1Sn-1 + C2Sn-2 + … + CkSn-k+f(n)

Donde C1,C2,…,CK son constantes los Ck ≠0 y f(n) es una función de n. A Donde C1,C2,…,CK son constantes los Ck ≠0 y f(n) es una función de n. A continuación se proporciona el significado de los términos lineal y continuación se proporciona el significado de los términos lineal y coeficientes constantes .coeficientes constantes .-Lineal se refiere cuando no hay potencias o productos de los aj.-Lineal se refiere cuando no hay potencias o productos de los aj.-Coeficientes constantes: Los C1,C2,…Ck son constantes(no dependen de -Coeficientes constantes: Los C1,C2,…Ck son constantes(no dependen de n).n).

Page 65: Matematica Discreta.ppt

Considere c/u de las siguientes relaciones de recurrencia.Considere c/u de las siguientes relaciones de recurrencia.

a)a) Sn = 5Sn-1 -4Sn-2 + nSn = 5Sn-1 -4Sn-2 + n22

Es no homogénea debido a la Es no homogénea debido a la nn22

b)b) Sn = 2Sn-1 *Sn-2 + n Sn = 2Sn-1 *Sn-2 + n22

Es no homogénea debido a la Es no homogénea debido a la nn22 además el producto Sn-1 *Sn-2 significa además el producto Sn-1 *Sn-2 significa que la relación de recurrencia es no linealque la relación de recurrencia es no lineal

c)c) Sn = nSn-1 +3Sn-2 Sn = nSn-1 +3Sn-2Se trata de una relación de recurrencia lineal homogénea de segundo Se trata de una relación de recurrencia lineal homogénea de segundo orden, pero sin coeficientes constantes por que el coeficiente de orden, pero sin coeficientes constantes por que el coeficiente de Sn-1 es Sn-1 es nn

d)d) Sn = 2Sn-1 +5Sn-2 -6Sn-3 Sn = 2Sn-1 +5Sn-2 -6Sn-3

Se trata de recurrencia lineal homogenea de tercer orden con coeficiente Se trata de recurrencia lineal homogenea de tercer orden con coeficiente constantes.constantes.

Page 66: Matematica Discreta.ppt

SOLUCIÓN DE RELACIONES DE RECURRENCIA LINEALESSOLUCIÓN DE RELACIONES DE RECURRENCIA LINEALES

HOMOGÉNEAS DE SEGUNDO ORDENHOMOGÉNEAS DE SEGUNDO ORDEN

Teorema 1:Teorema 1:

Suponga que el polinomio característico Suponga que el polinomio característico

ΔΔ(x)=x(x)=x22-5x-t de la relación de recurrencia -5x-t de la relación de recurrencia

Sn=5Sn-1 +tSn-2Sn=5Sn-1 +tSn-2

Tiene raíces distintas r1 y r2 entonces las solución general de la relación de Tiene raíces distintas r1 y r2 entonces las solución general de la relación de recurrencia es la siguiente C1 y C2 son constantes arbitrarias .recurrencia es la siguiente C1 y C2 son constantes arbitrarias .

Sn=CSn=C11rrnn +C +C22r2r2nn

Ejemplo:Ejemplo:

Sea Sea

Sn=2Sn-1 +3Sn-2Sn=2Sn-1 +3Sn-2

La solución general se obtiene al resolver el polinomio característico.La solución general se obtiene al resolver el polinomio característico.

Page 67: Matematica Discreta.ppt

XX22=2x+3=2x+3

XX22-2x-3=0-2x-3=0

(x-3)(x+1)=0(x-3)(x+1)=0

rr11=3,r=3,r22=-1=-1

La ecuación es:La ecuación es:

Sn=CSn=C11rr11nn+C+C22rr22

nn

Sn=CSn=C11(3)(3)nn+C+C22(-1)(-1)nn

Cuando n=0 entonces SCuando n=0 entonces S00=1=1

SS00=C=C11(3) (3) 00+C+C22(-1)(-1)00

1=C1=C11+C+C2 2 (I)(I)

n=1n=1

2=C2=C11(3)+C(3)+C22(-1) (II)(-1) (II)

CC11=3/4=3/4

CC22=1/4=1/4

SSnn=3/4*(3)=3/4*(3)nn+1/4*(-1)+1/4*(-1)nn

E2:E2:

Considere la sucesión de fibonacci Considere la sucesión de fibonacci

SSnn=S=Sn-1n-1+S+Sn-2n-2 con S con Soo=0,S=0,S11=1=1

Page 68: Matematica Discreta.ppt

XX22-x-1=0-x-1=0

rr11=(1+=(1+√5)/2√5)/2

rr22=(1-=(1-√5)/2√5)/2

Sn=CSn=C11(1+(1+√5)/2+C√5)/2+C22(1-(1-√5)/2√5)/2

Reemplazando valores de las condiciones iníciales SReemplazando valores de las condiciones iníciales S00=0 y S=0 y S11=1=1

La ecuación queda así:La ecuación queda así:

Los valores de CLos valores de C11=1/=1/ √5 y √5 y CC22=-1/=-1/ √5, al resolver las 2 ecuaciones con 2 √5, al resolver las 2 ecuaciones con 2 incognitasincognitas

Por loi tanto la solucion queda:Por loi tanto la solucion queda:

Sn=(1/ Sn=(1/ √5√5 )((1+ )((1+√5√5 )/2) )/2)nn-(1/-(1/√5√5 )((1- )((1- √√5 )/2 )5 )/2 )nn

Cuando las raíces del polinomio característico son iguales.Cuando las raíces del polinomio característico son iguales.

Page 69: Matematica Discreta.ppt

TEOREMA 2

Supóngase que el polinomio característico.Supóngase que el polinomio característico.

ΔΔ(x)=x(x)=x22-5x-t solo tiene una raiz ro-5x-t solo tiene una raiz ro

Entonces para SEntonces para Snn=5S=5Sn-1n-1+tS+tSn-2n-2

Se concluye que la solucion general de la relacion de recurrencia donde C1 y C2 son constantes Se concluye que la solucion general de la relacion de recurrencia donde C1 y C2 son constantes arbitrarias es:arbitrarias es:

Sn=CSn=C11(ro)(ro)nn+C+C22n(ro)n(ro)nn

Las constantes CLas constantes C11 y C y C22 son constantes arbitrarias se determinan en forma son constantes arbitrarias se determinan en formaúnica mediante las condiciones iníciales.única mediante las condiciones iníciales.

E1:SE1:Snn=6S=6Sn-1n-1-9S-9Sn-2n-2, S, S11=3 y S=3 y S22=27=27xx22-6x+9=(x-3)-6x+9=(x-3)22

SSnn=C=C11(3)(3)nn+nC+nC22(3)(3)nn

Como para n=1 , SComo para n=1 , S11=3=3Y para n=2 y SY para n=2 y S22=27 =27 Remplazando se llega a :CRemplazando se llega a :C22=2 y C=2 y C11=-1=-1Entonces:Entonces:Sn=(-1)(3)Sn=(-1)(3)nn+2n(3)+2n(3)nn

Page 70: Matematica Discreta.ppt

OBSERVACION

Si r es una raiz de multiplicidad m del polinomio característico Si r es una raiz de multiplicidad m del polinomio característico ΔΔ(x):(x):

Luego cada uno de los siguientes Luego cada uno de los siguientes

rrnn, nr, nrnn,n,n22(r(rnn),….(n),….(nn-1n-1)(r)(rnn))

Es una solución .Luego cualquier combinación Es una solución .Luego cualquier combinación

CC11(r(rnn)+C)+C22(nr(nrnn)+…+C)+…+Cmm((n((nm-1m-1)(r)(rnn))))

Page 71: Matematica Discreta.ppt

E1: Considere la siguiente relación homogénea de recurrencia de tercer orden.E1: Considere la siguiente relación homogénea de recurrencia de tercer orden.

SSnn=11S=11Sn-1n-1-39S-39Sn-2n-2+45S+45Sn-3n-3

ΔΔ(x)=x(x)=x33-11x-11x22+39x-45=(x-3)+39x-45=(x-3)22(x-5)(x-5)

Luego Luego ΔΔ(x) tiene 2 raíces r1=3 de multiplicidad 2,y r2=5,luego por la (x) tiene 2 raíces r1=3 de multiplicidad 2,y r2=5,luego por la observación, la siguiente es la solución general de la recurrencia.observación, la siguiente es la solución general de la recurrencia.

Sn=CSn=C11(3)(3)nn+C+C22n(3)n(3)nn+C+C33(5)(5)nn

Supongamos que tenemos condiciones inícialesSupongamos que tenemos condiciones iníciales

SS00=5,S=5,S11=11,S=11,S22=25, llegamos a C=25, llegamos a C11=4,C=4,C22 =-2 C =-2 C33=1=1

Al resolver las ecuaciones entonces Al resolver las ecuaciones entonces Sn=(4-2n)(3Sn=(4-2n)(3nn)+5)+5nn

Page 72: Matematica Discreta.ppt

FUNCIONESFUNCIONES

Page 73: Matematica Discreta.ppt
Page 74: Matematica Discreta.ppt
Page 75: Matematica Discreta.ppt
Page 76: Matematica Discreta.ppt

ARBOLESARBOLES

Sea A un conjunto , y T es un árbol si existe un vértice Vo en A con la propiedad Sea A un conjunto , y T es un árbol si existe un vértice Vo en A con la propiedad de que existe una única trayectoria en T de Vo hacia cualquier otro vértice en A.de que existe una única trayectoria en T de Vo hacia cualquier otro vértice en A.

Page 77: Matematica Discreta.ppt

*El nivel mas grande de un árbol es la altura de este.*El nivel mas grande de un árbol es la altura de este.

*Los vértices del árbol que no tienen hijos son las hojas del árbol.*Los vértices del árbol que no tienen hijos son las hojas del árbol.

Page 78: Matematica Discreta.ppt

ALGORITMO DE DIJSTRAALGORITMO DE DIJSTRAAlgoritmoAlgoritmo Teniendo un grafo dirigido ponderado de N nodos no aislados, sea x el nodo inicial, un Teniendo un grafo dirigido ponderado de N nodos no aislados, sea x el nodo inicial, un

vector D de tamaño N guardará al final del algoritmo las distancias desde x al resto de los vector D de tamaño N guardará al final del algoritmo las distancias desde x al resto de los nodos.nodos.

Inicializar todas las distancias en D con un valor infinito relativo ya que son desconocidas al Inicializar todas las distancias en D con un valor infinito relativo ya que son desconocidas al principio, exceptuando la de x que se debe colocar en 0 debido a que la distancia de x a x principio, exceptuando la de x que se debe colocar en 0 debido a que la distancia de x a x sería 0.sería 0.

Sea a = x (tomamos a como nodo actual).Sea a = x (tomamos a como nodo actual). Recorremos todos los nodos adyacentes de Recorremos todos los nodos adyacentes de aa, excepto los nodos marcados, llamaremos a , excepto los nodos marcados, llamaremos a

estos vestos vii..

Si la distancia desde x hasta vSi la distancia desde x hasta vii guardada en D es mayor que la distancia desde x hasta a guardada en D es mayor que la distancia desde x hasta a

sumada a la distancia desde a hasta vsumada a la distancia desde a hasta vii; esta se sustituye con la segunda nombrada, esto es:; esta se sustituye con la segunda nombrada, esto es:

si (Dsi (Dii > D > Daa + d(a,v + d(a,vii)) entonces D)) entonces Dii = D = Daa + d(a,v + d(a,vii)) Marcamos como completo el nodo a.Marcamos como completo el nodo a. Tomamos como próximo nodo actual el de menor valor en D (puede hacerse almacenando Tomamos como próximo nodo actual el de menor valor en D (puede hacerse almacenando

los valores en una cola de prioridad) y volvemos al paso 3 mientras existan nodos no los valores en una cola de prioridad) y volvemos al paso 3 mientras existan nodos no marcados.marcados.

Una vez terminado al algoritmo, D estará completamente lleno.Una vez terminado al algoritmo, D estará completamente lleno.

Page 79: Matematica Discreta.ppt
Page 80: Matematica Discreta.ppt
Page 81: Matematica Discreta.ppt
Page 82: Matematica Discreta.ppt
Page 83: Matematica Discreta.ppt
Page 84: Matematica Discreta.ppt

ALGORITMO DE KRUSKALALGORITMO DE KRUSKAL

Funciona de la siguiente manera:Funciona de la siguiente manera: se crea un bosque se crea un bosque BB (un conjunto de árboles), donde cada vértice del grafo es (un conjunto de árboles), donde cada vértice del grafo es

un árbol separadoun árbol separado se crea un conjunto se crea un conjunto CC que contenga a todas las aristas del grafo que contenga a todas las aristas del grafo mientras mientras CC es es no vacíono vacío

eliminar una arista de peso mínimo de eliminar una arista de peso mínimo de CC si esa arista conecta dos árboles diferentes se añade al bosque, si esa arista conecta dos árboles diferentes se añade al bosque,

combinando los dos árboles en un solo árbolcombinando los dos árboles en un solo árbol en caso contrario, se desecha la aristaen caso contrario, se desecha la arista

Al acabar el algoritmo, el bosque tiene un solo componente, el cual forma un Al acabar el algoritmo, el bosque tiene un solo componente, el cual forma un árbol de expansión mínimo del grafo.árbol de expansión mínimo del grafo.

Este algoritmo fue publicado por primera vez en Este algoritmo fue publicado por primera vez en Proceedings of the American Proceedings of the American Mathematical SocietyMathematical Society, pp. 48–50 en 1956, y fue escrito por Joseph Kruskal., pp. 48–50 en 1956, y fue escrito por Joseph Kruskal.

Page 85: Matematica Discreta.ppt
Page 86: Matematica Discreta.ppt
Page 87: Matematica Discreta.ppt
Page 88: Matematica Discreta.ppt

ÁRBOLES GENERALES (N-ARIOS)ÁRBOLES GENERALES (N-ARIOS)

DefiniciónDefinición

Un árbol A se define como un conjunto de Un árbol A se define como un conjunto de elementos llamados nodos o vértices, de elementos llamados nodos o vértices, de forma que:forma que:

- A es vacío, en cuyo caso se llama árbol vacío - A es vacío, en cuyo caso se llama árbol vacío o árbol nulo, oo árbol nulo, o

- A contiene un nodo distinguido v- A contiene un nodo distinguido v00 llamado llamado raíz de A y los nodos restantes de A forman raíz de A y los nodos restantes de A forman un conjunto de árboles Aun conjunto de árboles A11, A, A22 , A , A33, ..., A, ..., Ann

Cada árbol ACada árbol Aii tiene como raíz al nodo v tiene como raíz al nodo vii

Un árbol se representa mediante un grafo en Un árbol se representa mediante un grafo en donde la raíz vdonde la raíz v00 es el nodo en A en la parte es el nodo en A en la parte superior. Una línea hacia abajo de izquierda a superior. Una línea hacia abajo de izquierda a derecha, un arco señala a los hijos de vderecha, un arco señala a los hijos de v00

Page 89: Matematica Discreta.ppt

ÁRBOLES GENERALES (N-ARIOS)ÁRBOLES GENERALES (N-ARIOS)

Ejemplo: Considere el árbol A siguiente:

1

2 3 4

65 7 8

12 13

17 18

14

9 10 11

16

19

15

Nivel 0

Nivel 1

Nivel 2

Nivel 3

Nivel 4

Page 90: Matematica Discreta.ppt

ÁRBOLES GENERALES (N-ARIOS)ÁRBOLES GENERALES (N-ARIOS)

Raíz: 1Momento: 19Peso: 10Altura: 4Grado(3): 2Grado(4): 3Descendientes de 8: 8, 13, 14, 17 y 18Descendientes propios de 8: 13, 14, 17 y 18Antecesores de 8: 1, 3 y 8Antecesores propios de 8: 1 y 3

Page 91: Matematica Discreta.ppt

Á RBOLES GENERALES (N-ARIOS)Á RBOLES GENERALES (N-ARIOS)

Ejemplo: Sea el árbol de vértices V y altura hDefinimos h(u) la altura del subárbol con raíz uSi V = h = -1

V = {a} V = {a, b} V= {a, b, c, d, e}h = 0 h = 1 h = 2

a a

b

a

b c

d e

h(a) = h = 2

h(b) = h(c) =1

h(d) = h(e) = 0h(b) = 0

h(a) = h = 1

Page 92: Matematica Discreta.ppt

ÁRBOLES GENERALES (N-ARIOS)ÁRBOLES GENERALES (N-ARIOS)TEOREMATEOREMA

Sea A un grafo con n vérticesSea A un grafo con n vértices

Las siguientes afirmaciones son equivalentesLas siguientes afirmaciones son equivalentes

1. A es un árbol1. A es un árbol

2. A es conexa y acíclica2. A es conexa y acíclica

3. A es conexa y tiene n-1 aristas3. A es conexa y tiene n-1 aristas

4. A es acíclica y tiene n-1 aristas4. A es acíclica y tiene n-1 aristas

TEOREMATEOREMA

Si a, b son vértices distintos de un árbol A, Si a, b son vértices distintos de un árbol A, entonces existe un único camino que conecta entonces existe un único camino que conecta estos vértices.estos vértices.

Se puede demostrar que como A es conexo, Se puede demostrar que como A es conexo, existe al menos un camino de a hacia b. Si existe al menos un camino de a hacia b. Si hubiera más caminos de este tipo, por medio hubiera más caminos de este tipo, por medio de dos de ellos, algunas aristas podrían tener de dos de ellos, algunas aristas podrían tener ciclos, pero sabemos que un árbol no tiene ciclos, pero sabemos que un árbol no tiene ciclos.ciclos.

Page 93: Matematica Discreta.ppt

Más EjemplosMás Ejemplos

A

F

CB

D E G

A

CB

D E

Árbol completo de nivel 2

Cada nodo del nivel n es una hoja

Árbol no completo de nivel 2

Un nodo del nivel n-1 es una hoja

Page 94: Matematica Discreta.ppt

REPRESENTACIÓN EN MEMORIA DEREPRESENTACIÓN EN MEMORIA DE ÁRBOLES GENERALESÁRBOLES GENERALES

Representación mediante lista de hijosRepresentación mediante lista de hijos

Cuando los nodos están etiquetados con Cuando los nodos están etiquetados con mayor información, es conveniente utilizar mayor información, es conveniente utilizar una estructura de listas, en donde cada una estructura de listas, en donde cada nodo es una estructura de la formanodo es una estructura de la forma

RegistroRegistro NodoNodo

InicioInicio

TT ValorValor

NodoNodo *sig*sig

FinRegistroFinRegistro

Este modelo presenta la restricción que el Este modelo presenta la restricción que el número de nodos está limitado al tamaño número de nodos está limitado al tamaño del vector.del vector.

Page 95: Matematica Discreta.ppt

REPRESENTACIÓN EN MEMORIA DEREPRESENTACIÓN EN MEMORIA DE ÁRBOLES GENERALESÁRBOLES GENERALES

Representación mediante lista de hijosRepresentación mediante lista de hijos

RAÍZ RAÍZ es un arreglo de tamaño n (tamaño de V) es un arreglo de tamaño n (tamaño de V)

RAÍZ(i) RAÍZ(i) es la cabeza de la lista que contiene los es la cabeza de la lista que contiene los hijos del nodo i.hijos del nodo i.

1

2

3

4 *

5

6 *

7 *

8 *

9 *

10 *

2 3 *

4 5 *

9

6 7 8 *

10 *

RAÍZ Lista de hijos

1

2 3

4 5

6

910

7 8

Page 96: Matematica Discreta.ppt

REPRESENTACIREPRESENTACIÓÓN EN MEMORIA DE N EN MEMORIA DE ÁRBOLES GENERALESÁRBOLES GENERALES

Acción Recorrido(N)Acción Recorrido(N)

InicioInicio

Para I desde 1 hasta NPara I desde 1 hasta N

p = Raíz(I)p = Raíz(I)

Mientras p Mientras p Nulo Nulo

Escribir p Escribir p Valor Valor

p p p p sig sig

FinMientrasFinMientras

FinParaFinPara

FinFin

Page 97: Matematica Discreta.ppt

REPRESENTACIREPRESENTACIÓÓN EN MEMORIA DE N EN MEMORIA DE ÁRBOLES GENERALESÁRBOLES GENERALES

Raíz(i) es la cabeza de la lista de los hijos Raíz(i) es la cabeza de la lista de los hijos del nodo idel nodo ii Raíz(i) Hijos del nodo i

1 Raíz(1) 2, 3

2 Raíz(2) 4, 5

3 Raíz(3) 9, 10

4 Raíz(4) = Nulo No tiene

5 Raíz(5) 6, 7, 8

6 Raíz(6) = Nulo No tiene

7 Raíz(7) = Nulo No tiene

8 Raíz(8) = Nulo No tiene

9 Raíz(9) = Nulo No tiene

10 Raíz(10) = Nulo No tiene

Page 98: Matematica Discreta.ppt

REPRESENTACIREPRESENTACIÓÓN EN MEMORIA DE N EN MEMORIA DE ÁRBOLES GENERALESÁRBOLES GENERALES

La acción recorre todo el vector RAÍZ, aunque alguna raíz sea nula, por tanto no tiene hijos. Este recorrido resulta innecesario, y se puede solucionar haciendo que el vector Raíz sea una lista enlazada que contenga un nodo por cada nodo del árbol que no es hoja

1

2

3

5

2 3 *

4 5 *

9 10 *

6 7 8 *

RAÍZ Lista de hijos

Page 99: Matematica Discreta.ppt

REPRESENTACIREPRESENTACIÓÓN EN MEMORIA DE N EN MEMORIA DE ÁRBOLES GENERALESÁRBOLES GENERALES

Puntero al hijo de más a la izquierda–Puntero al hijo de más a la izquierda–hermano derecho (HI-HD)hermano derecho (HI-HD)

Los nodos tienen dos apuntadores uno al Los nodos tienen dos apuntadores uno al hijo de más a la izquierda y el otro al hijo de más a la izquierda y el otro al hermano derecho.hermano derecho.

Puntero al hermano derecho

Puntero al hijo más a la izquierda

Valor del nodo

Page 100: Matematica Discreta.ppt

REPRESENTACIREPRESENTACIÓÓN EN MEMORIA DE N EN MEMORIA DE ÁRBOLES GENERALESÁRBOLES GENERALES

Ejemplo:Ejemplo: El árbol de la figura (a) puede El árbol de la figura (a) puede representarse mediante el modelo HI-HD representarse mediante el modelo HI-HD mostrado en la figura (b)mostrado en la figura (b)

(a) (b)

Page 101: Matematica Discreta.ppt

REPRESENTACIREPRESENTACIÓÓN EN MEMORIA DE N EN MEMORIA DE ÁRBOLES GENERALESÁRBOLES GENERALES

Representación mediante cursores hijo más a la Representación mediante cursores hijo más a la izquierda-hermano derecho izquierda-hermano derecho

La variable La variable CABEZACABEZA apunta a la dirección de la raíz apunta a la dirección de la raíz del árbol (del árbol (VALOR(i)VALOR(i)))..

HIJO(i) HIJO(i) apunta a la posición (NODO(HIJO(i)) donde apunta a la posición (NODO(HIJO(i)) donde se encuentra la dirección del hijo de más a la se encuentra la dirección del hijo de más a la izquierda.izquierda.

SIG(i)SIG(i) apunta a la posición (NODO(i)) donde se apunta a la posición (NODO(i)) donde se encuentra la dirección del hermano derecho.encuentra la dirección del hermano derecho.

A

B C

GE FD

Page 102: Matematica Discreta.ppt

REPRESENTACIREPRESENTACIÓÓN EN MEMORIA DE N EN MEMORIA DE ÁRBOLES GENERALESÁRBOLES GENERALES

Representación mediante cursores hijo más a la Representación mediante cursores hijo más a la izquierda-hermano derecho izquierda-hermano derecho

1 F * 1

2 2 7 5

3 B 2 3

4 E * 4

5 A 6 5 4 8

6 G * 6 3 7

7 D * 7 8 *

8 C 9 8 1 *

9 9 6 *

5

VALOR HIJO NODO SIG

CABEZA

Page 103: Matematica Discreta.ppt

Mediante hijo más a la izquierda-hermano derechoMediante hijo más a la izquierda-hermano derecho

RAIZRAIZ variable global apunta a la raíz del árbolvariable global apunta a la raíz del árbol

VALOR(i)VALOR(i) contiene el valor del nodo con dirección icontiene el valor del nodo con dirección i

HI(i)HI(i) contiene la dirección del hijo más a la izquierda contiene la dirección del hijo más a la izquierda del nodo idel nodo i

HD(i)HD(i) contiene la dirección del hermano derecho del contiene la dirección del hermano derecho del nodo inodo i 1 0 F 0

2

3 7 B 8

4 0 E 1

5 3 A 0

6 0 G 0

7 0 D 4

8 6 C 0

9

5

RAIZ

HI VALOR HD

A

B C

GE FD

Page 104: Matematica Discreta.ppt

RECORRIDO CON LOS RECORRIDO CON LOS ARBOLESARBOLES

Recorrido PreordenRecorrido Preorden::

Visitar la raíz , descender por la izquierda, así hasta donde se pueda Visitar la raíz , descender por la izquierda, así hasta donde se pueda continuar, moverse a la derecha y comenzar nuevamente o volver hacia continuar, moverse a la derecha y comenzar nuevamente o volver hacia atrás hasta que se pueda mover a la derecha y continuaratrás hasta que se pueda mover a la derecha y continuar

J-E-A-H-T-M-VJ-E-A-H-T-M-V

Page 105: Matematica Discreta.ppt

31-22-18-23-22-19-24-31-22-18-23-22-19-24-29-1929-19

31

BC D

23 FG

29 19

22

18

22

1924

Page 106: Matematica Discreta.ppt

Recorrido InordenRecorrido Inorden::

En este caso se visita primero el subárbol izquierdo hasta donde se pueda,En este caso se visita primero el subárbol izquierdo hasta donde se pueda,

después se visita la raíz y por ultimo el subárbol derecho moviéndose un nododespués se visita la raíz y por ultimo el subárbol derecho moviéndose un nodo

a la derecha y continuar.a la derecha y continuar.

A-E-H-J-M-T-VA-E-H-J-M-T-V

Page 107: Matematica Discreta.ppt

18-22-23-31-19-22-29-18-22-23-31-19-22-29-24-1924-19

Page 108: Matematica Discreta.ppt

RECORRIDO POS RECORRIDO POS ORDENORDEN

En este caso se visita primero el subárbol En este caso se visita primero el subárbol izquierdo, así hasta donde se pueda, cuando no izquierdo, así hasta donde se pueda, cuando no se puede continuar al subárbol derecho hasta se puede continuar al subárbol derecho hasta que se pueda, y por ultimo visitar la raíz ,volver que se pueda, y por ultimo visitar la raíz ,volver hacia atrás y comenzar nuevamente.hacia atrás y comenzar nuevamente.

A-H-E-M-A-H-E-M-V-T-JV-T-J

Page 109: Matematica Discreta.ppt

18-23-22-19-29-19-24-18-23-22-19-29-19-24-22-3122-31

Page 110: Matematica Discreta.ppt

ÁRBOLES BINARIOS ÁRBOLES BINARIOS DE BÚSQUEDA (ABB)DE BÚSQUEDA (ABB)

Page 111: Matematica Discreta.ppt

DefiniciónDefinición Es una estructura sobre la que se pueden desarrollar Es una estructura sobre la que se pueden desarrollar

eficientemente eficientemente las operaciones de:las operaciones de:

BúsquedaBúsqueda InserciónInserción EliminaciónEliminación

Definición formal:Definición formal: ““Para todo nodo Para todo nodo TT del árbol debe cumplirse que del árbol debe cumplirse que

todos los valores de los nodos del subárbol izquierdo todos los valores de los nodos del subárbol izquierdo de de TT deben ser menores o iguales al valor del nodo deben ser menores o iguales al valor del nodo TT. De forma análoga, todos los valores de los nodos . De forma análoga, todos los valores de los nodos del subárbol derecho de del subárbol derecho de TT deben ser mayores o deben ser mayores o iguales al valor del nodo iguales al valor del nodo TT””

Page 112: Matematica Discreta.ppt

EjemploEjemplo

120

14087

130

135

9943

9322 65

56

Page 113: Matematica Discreta.ppt

BÚSQUEDA EN UN BÚSQUEDA EN UN ÁRBOL ABBÁRBOL ABB

accion BUSQUEDA (Nodo, Val_bus) si (Nodo <> null) entonces si (Val_bus < Nodo->valor) entonces

BUSQUEDA (Nodo->hijo_izq , Val_bus) sino

si (Val_bus > Nodo->valor) entonces BUSQUEDA (Nodo->hijo_der , Val_bus) sino

Escribir (“El nodo ha sido hallado en el árbol”) fin_si

fin_si sino Escribir (“El nodo no se encuentra en el árbol”) fin_sifin_accion

Page 114: Matematica Discreta.ppt

BÚSQUEDA EN UN BÚSQUEDA EN UN ÁRBOL ABBÁRBOL ABB

accion buscarNodo (Raiz, Val_bus) BUSQUEDA (Raiz, Val_bus) fin_accion

Ubicar 65 y 170 en el siguiente árbol: 120

14087

130

135

9943

9322 65

56

Page 115: Matematica Discreta.ppt

o Los pasos que deben realizarse para insertar un elemento a un árbol binario de búsqueda son los siguientes:

Debe compararse la clave a insertar con la raíz del árbol.

Si es mayor, debe avanzarse hacia el subárbol derecho. Si es menor, debe avanzarse hacia el subárbol izquierdo.

Repetir sucesivamente el primer paso hasta que se cumpla alguna de las siguientes condiciones:

El subárbol derecho es igual a vacío, o el subárbol izquierdo es igual a vacío, en cuyo caso se procederá a insertar el elemento en el lugar que le corresponde.

La clave que quiere insertarse es igual a la raíz del árbol, en cuyo caso no se realiza la inserción.

INSERCIÓN EN UN INSERCIÓN EN UN ÁRBOL ABBÁRBOL ABB

Page 116: Matematica Discreta.ppt

INSERCIÓN EN UN INSERCIÓN EN UN ÁRBOL ABBÁRBOL ABB

accion INSERCION (Nodo, Val) si (Nodo <> null) entonces si (Val < Nodo->valor) entonces

INSERCIÓN (Nodo->hijo_izq, Val) sino si (Val > Nodo->valor) entonces

INSERCIÓN (Nodo->hijo_der, Val) sino Escribir (“El nodo ya se encuentra en el árbol”)

fin_si fin_si

sinon <- nuevo Nodo

n->hijo_izq <- null n->hijo_der <- null n->valor <- Val Nodo <- n fin_sifin_accion

Page 117: Matematica Discreta.ppt

accion insertarNodo (Raiz, Val) INSERCION (Raiz, Val) fin_accion

Insertar 120, 87, 43, 65, 140, 99, 130, 22, 56

INSERCIÓN EN UN INSERCIÓN EN UN ÁRBOL ABBÁRBOL ABB

120

120

87

120

87

43

Page 118: Matematica Discreta.ppt

Insertar 120, 87, 43, 65, 140, 99, 130, 22, 56

INSERCIÓN EN UN INSERCIÓN EN UN ÁRBOL ABBÁRBOL ABB

120

87

43

65

120

87

43

65

140

Page 119: Matematica Discreta.ppt

Insertar 120, 87, 43, 65, 140, 99, 130, 22, 56

INSERCIÓN EN UN INSERCIÓN EN UN ÁRBOL ABBÁRBOL ABB

120

87

43

65

140

99

120

87

43

65

140

99 130

Page 120: Matematica Discreta.ppt

Insertar 120, 87, 43, 65, 140, 99, 130, 22, 56

INSERCIÓN EN UN INSERCIÓN EN UN ÁRBOL ABBÁRBOL ABB

120

87

43

65

140

99 130

22

120

87

43

65

140

99 130

22

56

Page 121: Matematica Discreta.ppt

ELIMINACIÓN EN UN ELIMINACIÓN EN UN ÁRBOL ABBÁRBOL ABB

o Consiste en eliminar un nodo sin violar los principios que definen un árbol binario de búsqueda. Se deben distinguir los siguientes casos:

o Si el elemento a borrar es terminal u hoja, se procede a eliminarlo.

o Si el elemento a borrar tiene un solo descendiente, entonces tiene que sustituirse por ese descendiente.

o Si el elemento a borrar tiene los dos descendientes, entonces se tiene que sustituir por el nodo que se encuentra más a la izquierda en el subárbol derecho o por el nodo que se encuentra más a la derecha en el subárbol izquierdo.

o Además, antes de eliminar un nodo debe garantizarse de que éste exista en el árbol.

Page 122: Matematica Discreta.ppt

ELIMINACIÓN EN UN ELIMINACIÓN EN UN ÁRBOL ABBÁRBOL ABB

accion ELIMINACION (Nodo, Val) si (Nodo <> null) entonces si (Val < Nodo->valor) entonces

ELIMINACION (Nodo->hijo_izq, Val) sino si (Val > Nodo->valor) entonces ELIMINACION (Nodo->hijo_der, Val) sino

n <- Nodo si (n->hijo_der = null) entonces

Nodo <- (n->hijo_izq) sino

si (n->hijo_izq = null) entonces Nodo <- (n->hijo_der) sino AUX <- (Nodo->hijo_izq)

bandera <- Falso

Page 123: Matematica Discreta.ppt

ELIMINACIÓN EN UN ELIMINACIÓN EN UN ÁRBOL ABBÁRBOL ABB

mientras (AUX->hijo_der <> null) hacer TEMP <- AUX

AUX <- (AUX->hijo_der) bandera <- Verdadero

fin_mientras(Nodo->valor) <- (AUX->valor)n <- AUXsi bandera = VERDADERO entonces

(TEMP->hijo_der) <- (AUX->hijo_izq)

sino(Nodo->hijo_izq) <- (AUX->hijo_izq)

fin_sifin_si

fin_sifin_si

fin_sisino

Escribir (“El nodo no se encuentra en el árbol”)fin_si

fin_accion

Page 124: Matematica Discreta.ppt

accion eliminarNodo (Raiz, Val) ELIMINACION (Raiz, Val)fin_accion

Eliminar 22, 99, 87, 120, 140, 135, 56

ELIMINACIÓN EN UN ELIMINACIÓN EN UN ÁRBOL ABBÁRBOL ABB

120

87

43

65

140

99 130

22

56

135

Page 125: Matematica Discreta.ppt

120

87

43

65

140

99130

22

56

Eliminar 22, 99, 87, 120, 140, 135, 56

ELIMINACIÓN EN UN ELIMINACIÓN EN UN ÁRBOL ABBÁRBOL ABB

93 135

Page 126: Matematica Discreta.ppt

120

87

43

65

140

99130

56

Eliminar 22, 99, 87, 120, 140, 135, 56

ELIMINACIÓN EN UN ELIMINACIÓN EN UN ÁRBOL ABBÁRBOL ABB

93

93

135

Page 127: Matematica Discreta.ppt

120

87

43

65

140

93130

56

Eliminar 22, 99, 87, 120, 140, 135, 56

ELIMINACIÓN EN UN ELIMINACIÓN EN UN ÁRBOL ABBÁRBOL ABB

65

56 135

Page 128: Matematica Discreta.ppt

120

65

43

56

140

93130

Eliminar 22, 99, 87, 120, 140, 135, 56

ELIMINACIÓN EN UN ELIMINACIÓN EN UN ÁRBOL ABBÁRBOL ABB

135

93

Page 129: Matematica Discreta.ppt

93

65

43

56

140

130

Eliminar 22, 99, 87, 120, 140, 135, 56

ELIMINACIÓN EN UN ELIMINACIÓN EN UN ÁRBOL ABBÁRBOL ABB

135

130

135

Page 130: Matematica Discreta.ppt

93

65

43

56

130

Eliminar 22, 99, 87, 120, 140, 135, 56

ELIMINACIÓN EN UN ELIMINACIÓN EN UN ÁRBOL ABBÁRBOL ABB

135

Page 131: Matematica Discreta.ppt

93

65

43

56

130

Eliminar 22, 99, 87, 120, 140, 135, 56

ELIMINACIÓN EN UN ELIMINACIÓN EN UN ÁRBOL ABBÁRBOL ABB

Page 132: Matematica Discreta.ppt

Los árboles AVL surgen con la idea de mejorar Los árboles AVL surgen con la idea de mejorar el rendimiento de los árboles ABB, al realizar el rendimiento de los árboles ABB, al realizar reacomodos o balanceos reacomodos o balanceos después de insertar después de insertar o eliminar elementos.o eliminar elementos.

Definición formal:Definición formal: ““Un árbol AVL se define como un ABB en el Un árbol AVL se define como un ABB en el

cual se cumple que para todo nodo cual se cumple que para todo nodo TT del árbol del árbol debe cumplirse que la altura de los debe cumplirse que la altura de los subárboles izquierdo y derecho no debe subárboles izquierdo y derecho no debe diferir en más de una unidad”diferir en más de una unidad”

Arboles AVLArboles AVL

Page 133: Matematica Discreta.ppt

El El FACTOR DE EQUILIBRIOFACTOR DE EQUILIBRIO (FE) de un nodo (FE) de un nodo TT se se

calcula como la altura del subárbol derecho menos la calcula como la altura del subárbol derecho menos la

altura del subárbol izquierdo.altura del subárbol izquierdo.

FE = HSD - HSIFE = HSD - HSI

DefiniciónDefinición

Page 134: Matematica Discreta.ppt

Colocar el FE a los nodos del siguiente árbol:Colocar el FE a los nodos del siguiente árbol:

100

47

69

111

0

-1

1

0

DefiniciónDefinición

Page 135: Matematica Discreta.ppt

registro Nodo

valor : tipoDato

FE : entero {-1, 0, 1}

izq, der : Nodo

fin_registro

RegistroRegistro

Page 136: Matematica Discreta.ppt

INSERCIÓN EN UN INSERCIÓN EN UN ÁRBOL AVLÁRBOL AVL

Page 137: Matematica Discreta.ppt

o El subárbol izquierdo (SI) y el subárbol derecho (SD) del árbol tienen la misma altura, es decir: HSD = HSI

o Si se inserta por el SI, entonces HSI > HSD

o Si se inserta por el SD, entonces HSD > HSI

o El subárbol izquierdo (SI) y el subárbol derecho (SD) del árbol tienen alturas diferentes, es decir: HSD <> HSI

o Si la HSI > HSD

o Si se inserta por el SI, entonces se rompe el equilibrio y es necesario reestructurar.

o Si se inserta por el SD, entonces HSD = HSI, mejorando el equilibrio del árbol.

o Si la HSI < HSD

o Si se inserta por el SI, entonces HSD = HSI, mejorando el equilibrio del árbol.

o Si se inserta por el SD, entonces se rompe el equilibrio y es necesario reestructurar.

Inserción en un árbol AVLInserción en un árbol AVL

Page 138: Matematica Discreta.ppt

o Para reestructurar un árbol que ha violado el principio de equilibrio (FE <> {-1,0,1}) hay que efectuar un proceso conocido como rotación, el cual se puede realizar de 4 maneras diferentes:

o Rotación derecha (DD)

o Rotación izquierda (II)

o Rotación derecha-izquierda (DI)

o Rotación izquierda-derecha (ID)

2 nodos

3 nodos

Llevando a un arbol AVLLlevando a un arbol AVL

Page 139: Matematica Discreta.ppt

o Rotación derecha (DD)

C

B

A

B

A0

1

2 C

NODO→der echa← NODO1→izquierda

NODO1→izquierda←NODO

NODO←NODO1

NODO

NODO1

NODO

Llevando a un árbol AVLLlevando a un árbol AVL

RESULTANDO

Page 140: Matematica Discreta.ppt

o Rotación izquierda (II)

C

B

A

B

A0

-1

-2

C

NODO→izquierda ← NODO1→derecha

NODO1→derecha ←NODO

NODO←NODO1

NODO

NODO1

NODO

Reestructurar un árbol AVLReestructurar un árbol AVL

RESULTANDO

Page 141: Matematica Discreta.ppt

o Rotación derecha-izquierda (DI)

C

B

A

B

A0

-1

2C

NODO1→izquierda ←NODO2→derecha

NODO2→derecha ←NODO1

NODO→derecha ← NODO2→izquierda

NODO2→izquierda ← NODO

NODO← NODO2

NODO

NODO1

NODO2

NODO

Llevando a un arbol AVLLlevando a un arbol AVL

RESULTANDO

Page 142: Matematica Discreta.ppt

o Rotación izquierda-derecha (ID)

C

B

A0

1

-2

B

A

C

NODO1→derecha ← NODO2→izquierda

NODO2→izquierda ← NODO1

NODO→izquierda← NODO2→derecha

NODO2→derecha←NODO

NODO←NODO2

NODO

NODO1

NODO2

NODO

Llevando a un árbol AVLLlevando a un árbol AVL

RESULTANDO

Page 143: Matematica Discreta.ppt

GRAFOSGRAFOS

Esta formado por vértices y aristas.Esta formado por vértices y aristas.

G=(V,E)G=(V,E)

V={VV={V1,1, V V22,…,… V Vnn}}

E={eE={e1,1, e e22,…,… e enn}}

V:vérticesV:vértices

e:aristase:aristas

Page 144: Matematica Discreta.ppt

GRAFOS NO DIRIGIDOSGRAFOS NO DIRIGIDOS

1)e={v,w} ó {w,v}1)e={v,w} ó {w,v}Es decir es lo mismo del vértice v al w Es decir es lo mismo del vértice v al w ó del vértice w a v.ó del vértice w a v.

2) GRAFO DIRIGIDO2) GRAFO DIRIGIDO e={v,w} ≠ {w,v}e={v,w} ≠ {w,v}

Grafo no dirigidoGrafo no dirigido

Grafo dirigidoGrafo dirigido

v w

v w

Page 145: Matematica Discreta.ppt

3)Grafo no simple3)Grafo no simple

Grafo no dirigido que tiene lazos y Grafo no dirigido que tiene lazos y lados paralelos.lados paralelos.

ee11 y e y e22 aristas paralelas aristas paralelas

ee55:Lazo:Lazo

V 1

V 2

V 3

e1

e2

e3

e4

e5

Page 146: Matematica Discreta.ppt

GRAFO PONDERADOGRAFO PONDERADO

Se presentan pesos de cada arista y se puede obtener la longitud de una ruta,Se presentan pesos de cada arista y se puede obtener la longitud de una ruta,

que es la suma de todos los pesos de las aristas.que es la suma de todos los pesos de las aristas.

GRAFO SIMPLEGRAFO SIMPLE

No contiene ni lazos ni aristas paralelas ni aristas dirigidas.No contiene ni lazos ni aristas paralelas ni aristas dirigidas.

GRAFO COMPLETOGRAFO COMPLETOEs aquel grafo con N vértices en los que existe una arista entre cada par deEs aquel grafo con N vértices en los que existe una arista entre cada par devértices(no hay paralelas).vértices(no hay paralelas).

GRAFO DE SIMILITUDGRAFO DE SIMILITUDSon aquellos grafos de los que se pueden derivar subgrafos.Son aquellos grafos de los que se pueden derivar subgrafos.

Obsérvese que el subgrafo es extraído del grafo

Page 147: Matematica Discreta.ppt

GRADO DE UN VERTICE:GRADO DE UN VERTICE:

Comprende al numero de aristas que inciden en dicho vértice.Comprende al numero de aristas que inciden en dicho vértice.

Page 148: Matematica Discreta.ppt

Camino o TrayectoriaCamino o Trayectoria

Page 149: Matematica Discreta.ppt

CICLO DE EULERCICLO DE EULER

Reconocen todas las aristas del grafo sin repetirlas.Reconocen todas las aristas del grafo sin repetirlas.

a,b,c,d,b,e,d,f,e,c,a a,b,c,d,b,e,d,f,e,c,a

Cuando partiendo de un vértice a y se llega al mismo se dice que es el Cuando partiendo de un vértice a y se llega al mismo se dice que es el circuito de Euler.circuito de Euler.

Page 150: Matematica Discreta.ppt

CIRCUITO DE HAMILTONCIRCUITO DE HAMILTON

Recorre todos los vértices sin repetirlos excepto el Vi y Vf que son el mismo.Recorre todos los vértices sin repetirlos excepto el Vi y Vf que son el mismo.

Un circuito de Hamilton posible es: a,e,b,g,c,h,j,f,i,d,aObsérvese que parte de a y recorriendo todos los vértices llega a a.

OJO: Ud debe recorrer todos los vértices.

Page 151: Matematica Discreta.ppt

MATRIZ DE ADYACENCIA Y DE MATRIZ DE ADYACENCIA Y DE INCIDENCIAINCIDENCIA

Ejemplo:Ejemplo:

Page 152: Matematica Discreta.ppt

LISTA DE ADYACENCIALISTA DE ADYACENCIA

Entonces la lista de adyacenciasA:CB:D,EC:A,D,ED:B,CE:B,C,FF:E

Page 153: Matematica Discreta.ppt

ALGORITMO DE PRIMALGORITMO DE PRIM

El algoritmo de Prim es un algoritmo perteneciente a la teoría de los grafos para El algoritmo de Prim es un algoritmo perteneciente a la teoría de los grafos para encontrar un árbol recubridor mínimo en un grafo conexo, encontrar un árbol recubridor mínimo en un grafo conexo, nono dirigido y cuyas dirigido y cuyas aristas están etiquetadas.aristas están etiquetadas.

En otras palabras, el algoritmo encuentra un subconjunto de aristas que forman En otras palabras, el algoritmo encuentra un subconjunto de aristas que forman un árbol con todos los vértices, donde el peso total de todas las aristas en el un árbol con todos los vértices, donde el peso total de todas las aristas en el árbol es el mínimo posible. Si el grafo no es conexo, entonces el algoritmo árbol es el mínimo posible. Si el grafo no es conexo, entonces el algoritmo encontrará el árbol recubridor mínimo para uno de los componentes conexos encontrará el árbol recubridor mínimo para uno de los componentes conexos que forman dicho grafo no conexo.que forman dicho grafo no conexo.

Pseudo código del algoritmoPseudo código del algoritmo::

La idea básica consiste en añadir, en cada paso, una arista de peso mínimo aLa idea básica consiste en añadir, en cada paso, una arista de peso mínimo aun árbol previamente construido.un árbol previamente construido.

Más explícitamente:Más explícitamente:    Paso 1    Paso 1. Se elige un vértice u de G y se considera el árbol S={u}. Se elige un vértice u de G y se considera el árbol S={u}    Paso 2    Paso 2. Se considera la arista e de mínimo peso que une un vértice de S . Se considera la arista e de mínimo peso que une un vértice de S

y un vértice que no es de S, y se hace S=S+e y un vértice que no es de S, y se hace S=S+e    Paso 3    Paso 3. Si el nº de aristas de T es n-1 el algoritmo termina. En caso . Si el nº de aristas de T es n-1 el algoritmo termina. En caso contrario se vuelve al paso 2 contrario se vuelve al paso 2

Page 154: Matematica Discreta.ppt
Page 155: Matematica Discreta.ppt
Page 156: Matematica Discreta.ppt
Page 157: Matematica Discreta.ppt

MAQUINA DE ESTADO FINITAMAQUINA DE ESTADO FINITA

Una maquina de estado finita es un sistema que puede Una maquina de estado finita es un sistema que puede aceptar una entrada de datos y en base a estos dato aceptar una entrada de datos y en base a estos dato obtener obtener una salida. obtener obtener una salida.

EntradaEntrada Salida Salida

La maquina de estados finita se aplican en el diseño de La maquina de estados finita se aplican en el diseño de circuitos digitales al nivel de matemática discreta se circuitos digitales al nivel de matemática discreta se maneja bajo el concepto de grafos.maneja bajo el concepto de grafos.

Page 158: Matematica Discreta.ppt

MAQUINA DE ESTADO FINITA (Ejemplos):MAQUINA DE ESTADO FINITA (Ejemplos):

0 1

S0 S0 S1

S1 S1 S0

S0 S1

Page 159: Matematica Discreta.ppt

MAQUINA DE ESTADO FINITA (Ejemplo1):MAQUINA DE ESTADO FINITA (Ejemplo1):

Ej: Dada la tabla:Ej: Dada la tabla:

Dibuje el diagrama de estados para el FSA(Autómata Dibuje el diagrama de estados para el FSA(Autómata Finito Deterministico) para la cual los estados de Finito Deterministico) para la cual los estados de aceptación son S1 y S3. Determine si la cadena aceptación son S1 y S3. Determine si la cadena aaababbab es aceptada.aaababbab es aceptada.

F

S\E a b

S0 S1 S2

S1 S2 S1

S2 S2 S3

S3 S1 S0

Page 160: Matematica Discreta.ppt

MAQUINA DE ESTADO FINITA (Ejemplo1):MAQUINA DE ESTADO FINITA (Ejemplo1):

Para que la cadena sea Para que la cadena sea aceptada debe terminar la aceptada debe terminar la cadena en Scadena en S11 ó S ó S33

Como SComo S3 3 es un estado final se es un estado final se dice que la cadena es dice que la cadena es aceptada por FSA.aceptada por FSA.

S2

S0 S1

S3

b

a

b

b

a

a

b

a

S1

S2

S2

S3

S1

S1

S1

S2

S3

a a a b a b b a b

Page 161: Matematica Discreta.ppt

MAQUINA DE ESTADO FINITA (Ejemplo2):MAQUINA DE ESTADO FINITA (Ejemplo2):

Ejm: Ejm:

Diseñe un autómata que detecte palabras que terminen en aba.Diseñe un autómata que detecte palabras que terminen en aba.

abS0abaa

ba

aba

bb

a

Page 162: Matematica Discreta.ppt

MAQUINA DE ESTADO FINITA (Ejemplo3):MAQUINA DE ESTADO FINITA (Ejemplo3):

Ejm: Ejm:

Diseñe un autómata que detecte palabras que terminen en baa.Diseñe un autómata que detecte palabras que terminen en baa.

S2S0 S3S1

ab

aab

b

b

a

Page 163: Matematica Discreta.ppt

MAQUINA DE ESTADO FINITA (Ejemplo4):MAQUINA DE ESTADO FINITA (Ejemplo4): Ejm: Dibuje el diagrama de estados para Ejm: Dibuje el diagrama de estados para

el NFA, cuya tabla de estados se el NFA, cuya tabla de estados se presentan a continuación y los estados de presentan a continuación y los estados de aceptación son S1 y S3, determine el aceptación son S1 y S3, determine el lenguaje aceptado para este NFA.lenguaje aceptado para este NFA.

S2S0S3

a

ab

a

F

S\E a b

S0 S2 S1

S1 S1, S2 S3

S2 Ø Ø

S3 S2, S3 S2

• Solución:

• L(M)= { ban n≥0 U bamban / m, n ≥0 }

S1

a b

a

b

Page 164: Matematica Discreta.ppt

Conversión de un NFA a un DFAConversión de un NFA a un DFA

Ejemplo 1:Ejemplo 1: F(SF(S00,a)={S,a)={S11} , F(S} , F(S00,b)= {S,b)= {S00}}

F(SF(S11,a)={Ø},a)={Ø}

F(SF(S11,b)=S,b)=S11 ó S ó S22, esto es {S, esto es {S11,S,S22}; F(S}; F(S22,a)={Ø},a)={Ø}

En consecuencia: F({SEn consecuencia: F({S11,S,S22},a)= {Ø} y },a)= {Ø} y

F({SF({S11,S,S22},b)={S},b)={S11,S,S22} U Ø={S} U Ø={S11,S,S22}}

S2S0 S1

b

ba

b

Page 165: Matematica Discreta.ppt

Conversión de un NFA a un DFA Conversión de un NFA a un DFA (Ejemplo 1)(Ejemplo 1)

Para pasar este NFA a un DFA se hace Para pasar este NFA a un DFA se hace la matriz de transición.la matriz de transición.

Para pasar el NFA al DFA hay que Para pasar el NFA al DFA hay que cubrir todos los estados.cubrir todos los estados.

S/E a b

{S0} {S1} {S0}

{S1} Ø {S1,S2}

{S1,S2} Ø {S1,S2}

{S1, S2}

{S0

}{S1

}

b

ba

b

Page 166: Matematica Discreta.ppt

Conversión de un NFA a un DFA Conversión de un NFA a un DFA (Ejemplo 2):(Ejemplo 2):

Encuentre el DFA equivalente al NFA para el cual la tabla de Encuentre el DFA equivalente al NFA para el cual la tabla de estados se indica,Sestados se indica,S22 es ele estado de aceptación. es ele estado de aceptación.

bb

F

S\E a b

S0 S0, S1 S2

S1 S0 S1

S2 S1 S0, S1

S2S0 S1 aa

a b

a

b

b

Page 167: Matematica Discreta.ppt

Conversión de un NFA a un DFA Conversión de un NFA a un DFA (Ejemplo 2):(Ejemplo 2):

S\E a b

{S0} {S0, S1} {S2}

{S1} {S0} {S1}

{S2} {S1} {S0, S1}

{S0, S1}

{S0, S1} {S1, S2}

{S1, S2}

{S0, S1} {S0, S1}

{S2

}{S0

}{S1

} ba

{S1, S2}

{S0, S1}

a, b

a

bba

b

b

Page 168: Matematica Discreta.ppt

ELEMENTOS BASICOS DE EXPRESIONES ELEMENTOS BASICOS DE EXPRESIONES REGULARESREGULARES

CERRADURA DE KLEENE:CERRADURA DE KLEENE:

Se representa con el símbolo “*”. La cadena se forma al realizar 0 Se representa con el símbolo “*”. La cadena se forma al realizar 0 ó mas repeticiones, en concatenación de los símbolos o ó mas repeticiones, en concatenación de los símbolos o caracteres que enmarcan.caracteres que enmarcan. Ejm: Ejm:

b* = { ,b , bb, bbb, bbbb, …, etc.} b* = { ,b , bb, bbb, bbbb, …, etc.}

CERRADURA POSITIVA:CERRADURA POSITIVA:

Se representa con el símbolo “+”. La cadena se forma al realizar Se representa con el símbolo “+”. La cadena se forma al realizar por lo menos 1 ó mas repeticiones en concatenación de los por lo menos 1 ó mas repeticiones en concatenación de los símbolos o caracteres que enmarcan.símbolos o caracteres que enmarcan. Ejm:Ejm:

LuLu++ = {lu, luu, luuu, luuuu, …, etc.} = {lu, luu, luuu, luuuu, …, etc.}

Page 169: Matematica Discreta.ppt

APARICIONAPARICION::

Se representa con el símbolo “?”. Indica si el carácter que Se representa con el símbolo “?”. Indica si el carácter que lo procede puede aparecer o no dentro de una cadena.lo procede puede aparecer o no dentro de una cadena. Ejm:Ejm:

(Inter)? milan = {Intermilan, milan} (Inter)? milan = {Intermilan, milan}

ALTERNATIVAALTERNATIVA::

Se representa con el símbolo “/”. Indica que puede existir Se representa con el símbolo “/”. Indica que puede existir alguna alternativa dentro de los símbolos o caracteres que alguna alternativa dentro de los símbolos o caracteres que contiene una expresión.contiene una expresión. Ejm:Ejm:

(d/s) ueño= {dueño, sueño} (d/s) ueño= {dueño, sueño}

Page 170: Matematica Discreta.ppt

AGRUPACIONAGRUPACION::

Se utiliza los paréntesis “()” para agrupar los caracteres del Se utiliza los paréntesis “()” para agrupar los caracteres del alfabeto que se utilizan. Hay que tener en cuenta la procedencia alfabeto que se utilizan. Hay que tener en cuenta la procedencia de los operadores que se utilizan (precedentes internos o de los operadores que se utilizan (precedentes internos o siguientes).siguientes). Ejm:Ejm:

(mi)? bol(sa/a)= {mi bolsa, mi bola, bolsa} (mi)? bol(sa/a)= {mi bolsa, mi bola, bolsa}

(a/b) c = {ac, bc}(a/b) c = {ac, bc}

AGRUPACION DE CARACTERES:AGRUPACION DE CARACTERES:

Se utiliza los corchetes “[]” para agrupar clases de caracteres así Se utiliza los corchetes “[]” para agrupar clases de caracteres así se define una gama de símbolos relacionados entre si utilizando se define una gama de símbolos relacionados entre si utilizando uno de ellos.uno de ellos. Ejm:Ejm:

[A - Z] = {A, B, C, Y, M, ….. }[A - Z] = {A, B, C, Y, M, ….. }

[0 - 9] = digito[0 - 9] = digito

Page 171: Matematica Discreta.ppt

GRAMATICA DE ESTRUCTURA DE GRAMATICA DE ESTRUCTURA DE FRASEFRASE

Una gramatica de estructura de frase o simplemente gramática G se define Una gramatica de estructura de frase o simplemente gramática G se define como:como:

G= {Vn, Vt, S, P} donde G= {Vn, Vt, S, P} donde i) Vn: Es un conjunto finito de símbolos no terminales de un i) Vn: Es un conjunto finito de símbolos no terminales de un

vocabulario V, que puede sustituirse por otros símbolos.vocabulario V, que puede sustituirse por otros símbolos.

ii) Vt: es un conjunto finito de símbolos terminales de V, que ii) Vt: es un conjunto finito de símbolos terminales de V, que no pueden sustituirse por otros símbolos.no pueden sustituirse por otros símbolos.

iii) S: Es un símbolo especial de Vn que se denomina como iii) S: Es un símbolo especial de Vn que se denomina como el símbolo de inicio, a partir del cual siempre se empieza a el símbolo de inicio, a partir del cual siempre se empieza a construir palabras.construir palabras.

iv) P: Es el conjunto de reglas de producción (reglas iv) P: Es el conjunto de reglas de producción (reglas gramaticales) cada uno de la forma W0 gramaticales) cada uno de la forma W0 W1, lo cual W1, lo cual significa que W0 puede sustituirse por w1, W0 debe significa que W0 puede sustituirse por w1, W0 debe contener al menos un simbolo no terminal en tanto que W1 contener al menos un simbolo no terminal en tanto que W1 puede consistir en cualquier combinación de símbolos no puede consistir en cualquier combinación de símbolos no terminales y terminales.terminales y terminales.

Las reglas de produccion se escriben por ejemplo:Las reglas de produccion se escriben por ejemplo:SSaABaAB , A, A Bba (que quiere decir, S deriva Bba (que quiere decir, S deriva

en aAB)en aAB)BB bB bB , B, B C C

Page 172: Matematica Discreta.ppt

FORMA DE BACKUS_NAURFORMA DE BACKUS_NAUR

Hay otra notación que se denomina forma de BACKUS Hay otra notación que se denomina forma de BACKUS NAUR, que algunas veces se usa para describir las NAUR, que algunas veces se usa para describir las producciones de una gramática libre de contexto (tipo 2) producciones de una gramática libre de contexto (tipo 2) específicamente.específicamente.

i) “::=“ se usa en lugar de “i) “::=“ se usa en lugar de “””

ii) Cualquier no terminal se escribe entre corchetes [ ].ii) Cualquier no terminal se escribe entre corchetes [ ].

iii) Toda la producción con el mismo miembro izquierdo no iii) Toda la producción con el mismo miembro izquierdo no terminal se combinan en una proposición con todos los terminal se combinan en una proposición con todos los miembros derechos enumerados a la derecha de “::=” miembros derechos enumerados a la derecha de “::=” separadas por barra verticales.separadas por barra verticales.

Por ejemplo:Por ejemplo: AA aB aB , A, Abb , A, ABCBC Se combinan en BACKUS NAUR como:Se combinan en BACKUS NAUR como: A::= a[B] |b| [B][C]A::= a[B] |b| [B][C]

Page 173: Matematica Discreta.ppt

GRAMATICAS INDEPENDIENTES GRAMATICAS INDEPENDIENTES DEL CONTEXTODEL CONTEXTO

En este tipo de gramática se puede reemplazar un no terminal En este tipo de gramática se puede reemplazar un no terminal por otra derivación ya sea con símbolos no terminales o por otra derivación ya sea con símbolos no terminales o terminales.terminales.

En la gramática dependiente del contexto influye el entorno paraEn la gramática dependiente del contexto influye el entorno parapoder derivarlos.poder derivarlos.

Ejm: Sea: AEjm: Sea: A aBb aBb BBCC

Observe que el no terminal B esta rodeado por los terminales a y Observe que el no terminal B esta rodeado por los terminales a y b, esb, es

una gramática dependiente del contexto Ud. Puede reemplazar B una gramática dependiente del contexto Ud. Puede reemplazar B porpor

esta derivación siempre y cuando este rodeado por a y b.esta derivación siempre y cuando este rodeado por a y b.

Por Ejm:Por Ejm:AAaCbaCb ,, AA abb abbEs una gramática independiente del contexto. Ud. Puede Es una gramática independiente del contexto. Ud. Puede

reemplazar por otra derivación no importando las reemplazar por otra derivación no importando las restricciones.restricciones.

Por Ejm(1):Por Ejm(1):AA B B AABCBCBB C C AA CC CCCC a a AA aa aa

Page 174: Matematica Discreta.ppt

DERIVACION DERIVACION

Derivar es desarrollar la gramáticaG={(S,A,B),(a,b),S,P)}donde p es el conjunto de producciones S→AB, S→AA ,A→aB,A →ab,B→b}

Solucion

S → AB → aBB, → abB →abbóS →AA →aBA →abA →ababóS →AA →aBaB →abaB →ababEn consecuencia:L(G)={abb,abab}

Page 175: Matematica Discreta.ppt

DERIVACIONDERIVACION

G={(S),(0,1),S, P}, donde P consiste en la producción:

{S →11S, S →0} SOLUCION S →0 ó S →11S →110 ó también S →11S →1111S →11110 ó etcétera En consecuencia

L(G)={12n0} donde n>=0

Page 176: Matematica Discreta.ppt

DERIVACION MAS A LA DERIVACION MAS A LA IZQUIERDAIZQUIERDA

Si G={(S,A),(a,b),S,P}, donde P consiste en las producciones{S→ aAS, S →a, A →SbA, A →ba} genere la cadena aabbaa

S → aAS →aSbAS(La A mas a la izquierda se sustituye por SbA) → aabAS(la S más a la izquierda se sustituye por a) →aabbaS (la A más a la izquierda se sustituye po ba) →aabbaa (S se sustituye por a)

Page 177: Matematica Discreta.ppt

DERIVACION MAS A LA DERIVACION MAS A LA DERECHADERECHA

Si G={(S,A),(a,b),S,P}, donde P consiste en las producciones{S→ aAS, S →a, A →SbA, A →ba} genere la cadena aabbaa

S → aAS →aAa(La S mas a la derecha se sustituye por a) → aSbAa(la A más a la derecha se sustituye por SbA) →aSbbaa (la A más a la derecha se sustituye por ba) →aabbaa (S máa a la derecha se sustituye por a)

Page 178: Matematica Discreta.ppt

ANALISIS GRAMATICAL ANALISIS GRAMATICAL DE ARRIBA HACIA DE ARRIBA HACIA

ABAJOABAJODetermine el análisis gramatical de arriba hacia abajo para determinar si la cadena ‘abab’ pertenece a la gramática; se conoce:Si G={(S,A,B),(a,b),S,P}, y P consiste en las producciones{S→ AB, AB →BA, A →aA, B →Bb, A →a,B →b}

Entonces si derivamosS → AB →aAB → aABb →aBAb →abAb →abab

Page 179: Matematica Discreta.ppt

ANALISIS GRAMATICAL ANALISIS GRAMATICAL DE ABAJO HACIA DE ABAJO HACIA

ARRIBAARRIBADetermine el análisis gramatical de arriba hacia abajo para determinar si la cadena ‘abab’ pertenece a la gramática; se conoce:Si G={(S,A,B),(a,b),S,P}, y P consiste en las producciones{S→ AB, AB →BA , A →aA , B →Bb , A →a, B →b}

Entonces si derivamos de abajo hacia arriba , esto es partiendo de la Cadena:abab ← aBab ← aBAb ← aABb ← ABb ←ABDe manera la cadena ‘abab’ pertenece a L(G)

Page 180: Matematica Discreta.ppt

DERIVACION POR LA IZQUIERDADERIVACION POR LA IZQUIERDA

AA B Bzwa zwa : B es un no terminal, usted debe derivar a partir de B : B es un no terminal, usted debe derivar a partir de B que esta mas a la izquierda.que esta mas a la izquierda.

E

E + T

T F

T * F id

F id c

Id b a

E→E+T

E →T

T →T*F

T →F

F →id

Id →a|b|c

Page 181: Matematica Discreta.ppt

E

E + T

T T * F

F F id

Id id c

a b

DERIVACION POR LA DERECHADERIVACION POR LA DERECHA

AA B Bzzww00 : w : w00 es un no terminal, usted debe derivar a partir de W es un no terminal, usted debe derivar a partir de W que esta mas a la derecha.que esta mas a la derecha.

E→E+TE→E+T

E →TE →T

T →T*FT →T*F

T →FT →F

F →idF →id

Id →a|b|cId →a|b|c

Page 182: Matematica Discreta.ppt

EjemploEjemplo::

Crear las reglas de Crear las reglas de producción que producción que reconozca: double a;reconozca: double a;

Solución:Solución: <VAR><VAR><TIPO> <id>;<TIPO> <id>; <tipo><tipo> double double <id><id> a a

<VAR><VAR>

<TIPO> <id> <TIPO> <id> ; ;

double adouble a

Page 183: Matematica Discreta.ppt

Ejemplo:Ejemplo:

Crear las reglas de Crear las reglas de producción que reconozca: producción que reconozca: int a,b,c;int a,b,c;

<var><var><tipo><vars>;<tipo><vars>; <vars><vars><unaV><unaV> <vars><vars><unaV>,<vars><unaV>,<vars> <unaV><unaV> id id <tipo><tipo> int int <tipo><tipo> double double <id> <id> a|b|ca|b|c

<var><var>

<tipo> <vars> ;<tipo> <vars> ;

<int> <unaV> ,<vars><int> <unaV> ,<vars>

<id> <id> <unaV>,<vars><unaV>,<vars>

a id a id <unaV><unaV>

b idb id

cc

Page 184: Matematica Discreta.ppt

TIPOS DE GRAMATICATIPOS DE GRAMATICA Las gramáticas se clasifican según los tipos de producción que se le Las gramáticas se clasifican según los tipos de producción que se le

permiten. La siguiente clasificación de gramáticas se debe a NOAM permiten. La siguiente clasificación de gramáticas se debe a NOAM CHOMSKY.CHOMSKY.

-Una gramática es de tipo 0 si no tiene restricciones en las -Una gramática es de tipo 0 si no tiene restricciones en las producciones.producciones.

Ejemplo : S Ejemplo : S aAB, AB aAB, AB a , A a , A b, B b, B AB AB

-Una gramática “G” es de tipo 1 si cualquier producción es de la forma -Una gramática “G” es de tipo 1 si cualquier producción es de la forma ααββ

donde |donde | α α | <=|| <=| β β | (Las || indican cardinalidad) , o de la forma | (Las || indican cardinalidad) , o de la forma α α גג ( (גג

es cadena vacía)es cadena vacía)

Ejemplo: S Ejemplo: S aAB, AB aAB, AB bB, B bB, B b, A b, A aBaB

-Una gramática “G” es de tipo 2 si cualquier producción es de la forma A-Una gramática “G” es de tipo 2 si cualquier producción es de la forma A β β dondedonde

el miembro izquierdo A es un no terminal.el miembro izquierdo A es un no terminal.

Ejemplo: S Ejemplo: S aA, A aA, A aAB, B aAB, B b, A b, A aa

- Una gramática “G” es de tipo 3 si toda producción es de la forma A- Una gramática “G” es de tipo 3 si toda producción es de la forma Aa o a o AAaB, Es decir donde el miembro izquierdo A es un solo no terminal y el aB, Es decir donde el miembro izquierdo A es un solo no terminal y el lado derecho es un solo terminal , o un terminal seguido por un no terminal , lado derecho es un solo terminal , o un terminal seguido por un no terminal , o de la forma So de la forma S גג

S S aB, B aB, B bA, B bA, B b, B b, B a, A a, A aB, A aB, A a a

Page 185: Matematica Discreta.ppt

TIPOS DE TIPOS DE GRAMATICA(Observación)GRAMATICA(Observación)

Las gramáticas constituyen una jerarquía, toda gramática toda Las gramáticas constituyen una jerarquía, toda gramática toda gramática tipo 3 es de tipo 2, toda gramática de tipo 2 es de tipo gramática tipo 3 es de tipo 2, toda gramática de tipo 2 es de tipo 1 y toda gramática tipo 1 es de tipo 0.1 y toda gramática tipo 1 es de tipo 0.

A) Una gramática es sensible al contexto si las producciones son A) Una gramática es sensible al contexto si las producciones son de la forma de la forma

ααAA α α‘‘ α β α α β α’’ B) Una gramática es libre de contexto si las producciones son de B) Una gramática es libre de contexto si las producciones son de

la forma Ala forma A β β La expresión libre del contexto proviene del hecho de que es La expresión libre del contexto proviene del hecho de que es

posible sustituir la variable A por posible sustituir la variable A por ββ sin tomar en cuenta donde sin tomar en cuenta donde aparece A.aparece A.

C) Una gramática es regular si las producciones son de la forma:C) Una gramática es regular si las producciones son de la forma: AAa, Aa, A a B, S a B, S גג ObservaciónObservación::

Una gramática libre del contexto es lo mismo que una Una gramática libre del contexto es lo mismo que una gramática tipo 2, una gramática regular es similar al tipo 3.gramática tipo 2, una gramática regular es similar al tipo 3.

Page 186: Matematica Discreta.ppt

AUTOMATAS Y GRAMATICASAUTOMATAS Y GRAMATICAS

Decimos que una gramática G es equivalente a un automata Decimos que una gramática G es equivalente a un automata M(G≡M) si el lenguaje reconocido por el automata es igual al M(G≡M) si el lenguaje reconocido por el automata es igual al lenguaje generado por la gramática, es decir si L(G)=L(M)lenguaje generado por la gramática, es decir si L(G)=L(M)

EjemploEjemplo Sea la gramática G con Vn={S,A}, ∑={a,b}, variables={S,A}, el Sea la gramática G con Vn={S,A}, ∑={a,b}, variables={S,A}, el

símbolo inicial es S y la regla de producción son:símbolo inicial es S y la regla de producción son: SS aS/aA aS/aA AAbA/bbA/b

aa b b M:M:

a ba b

Observe que G y M reconocen aObserve que G y M reconocen a++ b b++

S A Z

Page 187: Matematica Discreta.ppt

EjemploEjemplo

Convertir la gramática regular a un autómata finito.Convertir la gramática regular a un autómata finito. SSaAaA Solución Solución

SSbAbA AAaBaB b ab a AAbBbB AAaa a a a a BBaAaA BBbA bA b b

b b

S A B

Z

a

Page 188: Matematica Discreta.ppt

EjemploEjemplo Dado el autómata finito, exprese Dado el autómata finito, exprese

las reglas de la gramática.las reglas de la gramática.

Solución:Solución: QQ00 aQ aQ1 1 Q Q00bb

QQ00 bQ bQ00 Q Q00aa

QQ11aQaQ22 Q Q11aa

QQ11bQbQ00 Q Q11bb

QQ22aQaQ33 Q Q22bb

QQ22bQbQ00

QQ33aQaQ33

QQ33bQbQ33

Q0,Q1,Q2Q0,Q1,Q2 ESTADOS ESTADOS

FINALESFINALES

q2q3

q1

q0

b

b

a

a

b

a

a,b

q2

Page 189: Matematica Discreta.ppt

EjemploEjemplo

Sea una gramática G = (ST,SN,nSea una gramática G = (ST,SN,n00,R), donde:,R), donde: ST= {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ., +, -}ST= {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ., +, -} SN= {real, frac, ent, dig, sign}SN= {real, frac, ent, dig, sign} nn00= real= real r1:<real>::=<ent>|<frac>|<ent><frac>|<sign><real>r1:<real>::=<ent>|<frac>|<ent><frac>|<sign><real> r2: <frac> ::= . <ent>r2: <frac> ::= . <ent> r3: <ent> ::= <dig>| <dig><ent>r3: <ent> ::= <dig>| <dig><ent> r4: <dig> ::= 0|1|2|3|4|5|6|7|8|9r4: <dig> ::= 0|1|2|3|4|5|6|7|8|9 r5: <sign> ::= +| -r5: <sign> ::= +| -

Page 190: Matematica Discreta.ppt

Ejemplo:Ejemplo:

Verificar si 21.07 Verificar si 21.07 L(G) L(G) real real ent frac ent frac dig ent fracdig ent frac dig dig fracdig dig frac dig dig . entdig dig . ent dig dig . dig entdig dig . dig ent dig dig . dig digdig dig . dig dig 2 dig . dig dig2 dig . dig dig * 2 1 . 0 7* 2 1 . 0 7 Entonces:Entonces: nn00 2 1 . 0 7 2 1 . 0 7 L(G) L(G)

Page 191: Matematica Discreta.ppt

Ejemplo:Ejemplo:

Sea una gramática G = (ST,SN,nSea una gramática G = (ST,SN,n00,R), donde:,R), donde: ST= {Juan, Ana, corre, come, salta, rápido, lento}ST= {Juan, Ana, corre, come, salta, rápido, lento} SN= {oración, sujeto, predicado, verbo, adverbio}SN= {oración, sujeto, predicado, verbo, adverbio} nn00= oración= oración r1: oración r1: oración sujeto predicado sujeto predicado r2: predicador2: predicado verbo adverbio verbo adverbio r3: sujetor3: sujeto Juan Juan r4: sujetor4: sujeto Ana Ana r5: verbo r5: verbo corre corre r6: verbo r6: verbo come come r7: verbo r7: verbo salta salta r8: adverbio r8: adverbio rápido rápido r9: adverbio r9: adverbio lento lento

Page 192: Matematica Discreta.ppt

Ejemplo:Ejemplo:

Ejemplo de una cadena:Ejemplo de una cadena:¿Soporta esta gramática Ana corre rapido?¿Soporta esta gramática Ana corre rapido?

oración oración sujeto predicado sujeto predicado Ana predicadoAna predicado Ana verbo adverbioAna verbo adverbio Ana corre adverbioAna corre adverbio Ana corre rápidoAna corre rápido Entonces:Entonces: nn00 * Ana corre rápido,* Ana corre rápido,

Ana corre rápido Ana corre rápido L(G) L(G)

Page 193: Matematica Discreta.ppt

Ambigüedad en GLCAmbigüedad en GLC Una GLC es Una GLC es ambiguaambigua si existe una cadena si existe una cadena ww L(G) que tiene L(G) que tiene

más de una derivación por la izquierda o más de una derivación más de una derivación por la izquierda o más de una derivación por la derecha o si tiene dos o más árboles de derivación. En por la derecha o si tiene dos o más árboles de derivación. En caso de que toda cadena caso de que toda cadena ww L(G) tenga un único árbol de L(G) tenga un único árbol de derivación, la gramática es no ambigua.derivación, la gramática es no ambigua.

Ejemplo: la gramática Ejemplo: la gramática SS aSaS || SaSa | | aa es ambigua porque es ambigua porque aaaa tiene dos derivaciones por la izquierdatiene dos derivaciones por la izquierda

SS aS aS aaaa SS Sa Sa aaaa

Esta gramática genera el lenguaje Esta gramática genera el lenguaje aa++ que también es el que también es el lenguaje generado por la gramática no ambigua lenguaje generado por la gramática no ambigua SS aSaS | | aa..

193

S

a S

a

S

S a

a

Page 194: Matematica Discreta.ppt

Otro ejemplo:Otro ejemplo: a gramática para expresiones aritméticas sobre las a gramática para expresiones aritméticas sobre las

variables variables xx y y yy:: EE EE + + EE EE EE EE EE xx EE yy

es ambigua porque es ambigua porque tiene dos árboles de derivación: tiene dos árboles de derivación:

x y y x x y y x

194

E

E E

E + E x

E

E E+

E * Ex

Page 195: Matematica Discreta.ppt

MAQUINA DE TURINMAQUINA DE TURIN

Estos autómatas detectan cadena de caracteres Estos autómatas detectan cadena de caracteres escribiéndolos en una cinta. Esta compuesto por:escribiéndolos en una cinta. Esta compuesto por: Q: Estado de la unidad de control .Q: Estado de la unidad de control . Alfabetos: Símbolos de entrada que es el alfabeto de Alfabetos: Símbolos de entrada que es el alfabeto de

la cinta.la cinta. Función de Transición: Función de Transición:

Donde:Donde: qq00: Estado inicial de la unidad de control que : Estado inicial de la unidad de control que

posee la maquina de Turínposee la maquina de Turín B: espacios en blanco(alfabeto de la cinta) B: espacios en blanco(alfabeto de la cinta) F: Conjunto de estados finalesF: Conjunto de estados finales..

Page 196: Matematica Discreta.ppt

MAQUINA DE TURIN(Ejemplo 1):MAQUINA DE TURIN(Ejemplo 1):

Ejm: Diseñe una maquina que detecte cadenas de unos y ceros.Ejm: Diseñe una maquina que detecte cadenas de unos y ceros. Solución:Solución:

La unidad de control, mediante un algoritmo va a detectar La unidad de control, mediante un algoritmo va a detectar par luego reinscribir en un cinta la cadena de entrada.par luego reinscribir en un cinta la cadena de entrada.

Se comienza siempre de un estado inicial qSe comienza siempre de un estado inicial q00 que es el vacio. que es el vacio.

(q(q0,0, Ø) Ø) (q (q11, Ø,D), Ø,D)

(q(q1,1, 1) 1) (q (q22, 1,D), 1,D)

(q(q2,2, 0) 0) (q (q11, 0,D), 0,D)

(q(q1,1, B) B) (q (q33, B,I), B,I)

1 0 1 0 1 0 . . .

1 0

q0

q1 q2

B

Page 197: Matematica Discreta.ppt

MAQUINA DE TURIN(Ejemplo 2):MAQUINA DE TURIN(Ejemplo 2):

Ejm: Diseñe el algoritmo de la U. C. que detecte.Ejm: Diseñe el algoritmo de la U. C. que detecte.

Solución:Solución:

(q(q0,0, Ø) Ø) (q (q11, Ø,D), Ø,D) (q (q3,3, *) *) (q (q44, *,D), *,D)

(q(q1,1, /) /) (q (q22, /,D), /,D) (q (q4,4, /) /) (q (q55, /,D), /,D)

(q(q2,2, *) *) (q (q33, *,D), *,D) (q (q5,5, B) B) (q (q66, B,I), B,I)

(q(q3,3, C) C) (q (q33, C,D), C,D)

/ * A Q U I *

/ B

Page 198: Matematica Discreta.ppt

MAQUINA DE TURIN(Ejemplo 3):MAQUINA DE TURIN(Ejemplo 3):

Ejm: Diseñe el algoritmo que detecte que una cadena siempre Ejm: Diseñe el algoritmo que detecte que una cadena siempre comienza con un carácter luego del carácter puede venir un comienza con un carácter luego del carácter puede venir un numero o carácter.numero o carácter.

Solución:Solución:

(q(q0,0, Ø) Ø) (q (q11, Ø,D), Ø,D)

(q(q1,1, L) L) (q (q22, L,D), L,D)

(q(q2,2, L) L) (q (q22, L,D), L,D)

(q(q2,2, n) n) (q (q22, n, D), n, D)

(q(q2,2, B) B) (q (q33, B,I), B,I)

Page 199: Matematica Discreta.ppt

AUTOMATA DE PILAAUTOMATA DE PILA

Un automata de pila AP, en ingles pushdown automata, es unUn automata de pila AP, en ingles pushdown automata, es unautómata capaz de reconocer los lenguajes libres de contexto,autómata capaz de reconocer los lenguajes libres de contexto,o de tipo 2. Los autómatas de pila se pueden representar comoo de tipo 2. Los autómatas de pila se pueden representar comouna maquina de Turíng, que solo puede leer de una cinta, y queuna maquina de Turíng, que solo puede leer de una cinta, y quepuede guardar resultados intermedios en una pila.puede guardar resultados intermedios en una pila.

De hecho su capacidad de procesamiento es inferior a la ALA,De hecho su capacidad de procesamiento es inferior a la ALA,debido a las siguientes restricciones sobre las posiblesdebido a las siguientes restricciones sobre las posiblesoperaciones con la cinta y la pila:operaciones con la cinta y la pila:

- La cinta se desplaza en un solo sentido, y su cabeza solo - La cinta se desplaza en un solo sentido, y su cabeza solo puede leer.puede leer.- La pila, esta limitada en un extremo por definición, cuando - La pila, esta limitada en un extremo por definición, cuando se lee un elemento de al pila, este desaparecerá o se saca y se lee un elemento de al pila, este desaparecerá o se saca y cuando se escribe es la pila, se introduce un elemento. cuando se escribe es la pila, se introduce un elemento.

Page 200: Matematica Discreta.ppt

AUTOMATAS DE PILA(TIPOS):AUTOMATAS DE PILA(TIPOS):

DEPENDIENTES DE LA ENTRADA: Se lee eDEPENDIENTES DE LA ENTRADA: Se lee e11 ∑, y se desplaza la ∑, y se desplaza la cinta, y en función de ecinta, y en función de eii, q, qjj(el estado en que se encuentra la (el estado en que se encuentra la cinta), y Z(el valor de la pila), el control pasa a otro estado qcinta), y Z(el valor de la pila), el control pasa a otro estado q11, y , y en la pila se introduce Zen la pila se introduce Z++, o se extrae Z, o no se hace nada., o se extrae Z, o no se hace nada.

INDEPENDIENTES DE LA ENTRADA: Puede ocurrir lo mismo INDEPENDIENTES DE LA ENTRADA: Puede ocurrir lo mismo que en el caso anterior, solo que eque en el caso anterior, solo que e11, no interviene, la cinta no se , no interviene, la cinta no se mueve, lo que permite manejar la pila sin las informaciones de mueve, lo que permite manejar la pila sin las informaciones de entrada.entrada.

En cualquier caso, se vacía la pila (es decir extrae todas las Z)el En cualquier caso, se vacía la pila (es decir extrae todas las Z)el automata se para. automata se para.

Page 201: Matematica Discreta.ppt

AUTOMATA DE PILAAUTOMATA DE PILA

Un automata de pila se puede Un automata de pila se puede definir formalmente como una definir formalmente como una séptupla AP(Q,∑,R, ,qℓséptupla AP(Q,∑,R, ,qℓ 00,Z,Z00,F),F)

Q es el conjunto finito de estados.Q es el conjunto finito de estados. ∑ ∑ es el alfabeto de entrada, es es el alfabeto de entrada, es

finito.finito. R es el alfabeto de la pila.R es el alfabeto de la pila. ℓ ℓ es la función de transición.es la función de transición. qq00 es el estado inicial y cumple es el estado inicial y cumple

que qque q00 Q.Q.

ZZ00 es el símbolo inicial que es el símbolo inicial que contiene la pila antes de comenzar contiene la pila antes de comenzar ZZ0 0 r. r.

F es el conjunto de estados F es el conjunto de estados finales.finales.

Page 202: Matematica Discreta.ppt

EJEMPLOEJEMPLO

Sea L={aSea L={aiibbii : i>= 1} sobre ∑={a,b} : i>= 1} sobre ∑={a,b}

Solución:Solución:

La idea es copiar las (a)es en la pila y borrar una “a” La idea es copiar las (a)es en la pila y borrar una “a” por cada “b” que sea leida en la cinta. Una cadena es por cada “b” que sea leida en la cinta. Una cadena es aceptable si es procesada completamente y en la aceptable si es procesada completamente y en la pila solo queda el marcador en el fondo Z. pila solo queda el marcador en el fondo Z.

Page 203: Matematica Discreta.ppt

EJEMPLOEJEMPLO

qq00,a,Z) = (q,a,Z) = (q00,AZ),AZ) a a b b

(q(q00,a,A) = (q,a,A) = (q00,AA),AA)

(q(q00,b,A) = (q,b,A) = (q11,,)) b b

(q(q11,b,A) = (q,b,A) = (q11,,))

(q(q11,,,Z) = (q,Z) = (q22,Z),Z) Sea w= aabb veamos el procedimiento de al cadena. Sea w= aabb veamos el procedimiento de al cadena.

(q (q00, aabb, Z)├ (q, aabb, Z)├ (q00, abb,, abb, AZ AZ)├(q)├(q00, bb, AAZ), bb, AAZ)

├ ├ (q(q11, b,, b, AZ AZ)├(q)├(q11, , , Z), Z)

├ ├ (q(q22, Z), Z)

La última es una configuración de aceptación por tanto La última es una configuración de aceptación por tanto “w”“w”

es aceptada.es aceptada.

q0 q1 q2

Page 204: Matematica Discreta.ppt

EJEMPLOEJEMPLO

Sea w= aaabb veamos el procedimiento de al Sea w= aaabb veamos el procedimiento de al cadena. cadena.

(q(q00, aaabb, Z)├ (q, aaabb, Z)├ (q00, aabb,, aabb, AZ AZ)├(q)├(q00, abb, AAZ), abb, AAZ)

├ ├ (q(q00, bb,, bb, AAAZ AAAZ)├(q)├(q11, b, AAZ), b, AAZ)

├ ├ (q(q11, , ,AZ),AZ)

A pesar que la cadena se proceso A pesar que la cadena se proceso completamente (qcompletamente (q11, , ,AZ) no es una ,AZ) no es una configuración de aceptación, por tanto “w” no configuración de aceptación, por tanto “w” no es aceptada.es aceptada.