matematica discreta.ppt
Post on 06-Feb-2016
9 Views
Preview:
TRANSCRIPT
MATEMATICA DISCRETA
Prof: Santiago Domingo
Moquillaza Henríquez
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 ⋀
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)
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)
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
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
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.
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.
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.
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.
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).
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
= +
= 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
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
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∀
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)
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)
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
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 ]⋁ ⋀ ⋀ ⋁
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:
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:
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:
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’
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’
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
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’
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.
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.
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
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)⋁ ⋁
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
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
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
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
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
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
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
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
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
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|
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
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
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
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)
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
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)
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
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
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!
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
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)
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
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
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
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.
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.
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.
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.
Ejemplo: Dada las relaciones, estudiante(sujeto) lleva(verbo) Ejemplo: Dada las relaciones, estudiante(sujeto) lleva(verbo) cursos(predicadocursos(predicado
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)
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.
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.
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).
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.
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.
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
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.
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
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))))
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
FUNCIONESFUNCIONES
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.
*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.
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.
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.
Á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
Á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
Á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
Á 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
Á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.
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
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.
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
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
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
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
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
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)
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
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
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
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
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
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
18-22-23-31-19-22-29-18-22-23-31-19-22-29-24-1924-19
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
18-23-22-19-29-19-24-18-23-22-19-29-19-24-22-3122-31
ÁRBOLES BINARIOS ÁRBOLES BINARIOS DE BÚSQUEDA (ABB)DE BÚSQUEDA (ABB)
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””
EjemploEjemplo
120
14087
130
135
9943
9322 65
56
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
registro Nodo
valor : tipoDato
FE : entero {-1, 0, 1}
izq, der : Nodo
fin_registro
RegistroRegistro
INSERCIÓN EN UN INSERCIÓN EN UN ÁRBOL AVLÁRBOL AVL
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
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
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
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
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
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
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
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
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
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
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.
Camino o TrayectoriaCamino o Trayectoria
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.
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.
MATRIZ DE ADYACENCIA Y DE MATRIZ DE ADYACENCIA Y DE INCIDENCIAINCIDENCIA
Ejemplo:Ejemplo:
LISTA DE ADYACENCIALISTA DE ADYACENCIA
Entonces la lista de adyacenciasA:CB:D,EC:A,D,ED:B,CE:B,C,FF:E
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
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.
MAQUINA DE ESTADO FINITA (Ejemplos):MAQUINA DE ESTADO FINITA (Ejemplos):
0 1
S0 S0 S1
S1 S1 S0
S0 S1
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
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
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
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
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
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
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
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
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
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.}
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}
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
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
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]
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
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}
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
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)
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)
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
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)
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
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
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
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
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
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.
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
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
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
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> ::= +| -
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)
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
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)
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
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
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..
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
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
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)
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.
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.
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.
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.
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
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.
top related