0% encontró este documento útil (0 votos)
352 vistas235 páginas

Matematica Discreta

Este documento presenta los conceptos fundamentales de lógica proposicional y cuantificadores en tres oraciones: 1) Introduce las proposiciones, conectivos lógicos, tablas de verdad y leyes lógicas de la lógica proposicional. 2) Explica los cuantificadores universal y existencial, así como las reglas de especificación, generalización e intercambio de cuantificadores. 3) Presenta los métodos de demostración directo y de hipótesis auxiliar para probar implicaciones

Cargado por

Railly Hugo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
352 vistas235 páginas

Matematica Discreta

Este documento presenta los conceptos fundamentales de lógica proposicional y cuantificadores en tres oraciones: 1) Introduce las proposiciones, conectivos lógicos, tablas de verdad y leyes lógicas de la lógica proposicional. 2) Explica los cuantificadores universal y existencial, así como las reglas de especificación, generalización e intercambio de cuantificadores. 3) Presenta los métodos de demostración directo y de hipótesis auxiliar para probar implicaciones

Cargado por

Railly Hugo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPT, PDF, TXT o lee en línea desde Scribd

MATEMATICA DISCRETA

Prof: Santiago Domingo


Moquillaza Henríquez
SEMANA 1
LOGICA PROPOSICIONAL

Proposiciones equivalentes ( )
p  q : Dos proposiciones p y q son equivalentes, si la proposición (p  q) es una tautología.

Leyes lógicas

1) Conmutativa: pqqp p1p pqqp p0p


2) Identidad: p  p  0 p  p  1
3) Complemento: p  (q  r)  (p  q)  (p  r) p p  (q  r)  (p  q)  (p  r) p
pp pp
4) Distributiva:
p00 p11
5) Idempotencia:
p  (p  q)  p p  (p  q)  p
6) Acotamiento:
p  (q  r)  (p  q)  r p  (q  r)  (p  q)  r
7) Absorción: (p)  p
8) Asociativa: 1  0
9) Involución: (p  q)  p  q p  q  p
10) Opuesto: q 0  1
11) De Morgan: p  q  (p  q)  ( q  p) (p  q)  p  q
12) Condicional :  (p  q)  (q  p)
13) Bicondicional:  (p  q)  (p  q)

14) Disyunción exclusiva: p  q  (p  q)  (p  q)


 (p  q)  (p  q)
15) Contraposición: p  q  q  p
16) Negación de la condicional: (p  q)  p  q
17) Neg. de la bicondicional: (p  q)  p  q  p  q  p 
q
18) Neg. de la Disy. exclusiva: (p  q)  p  q  p  q  p  q
19) Absorción generalizada: p  (p  q)  p  q p  (p  q)  p 
q

Implicación
Se dice que la proposición p implica la proposición q, si la proposición: (p  q)
es una tautología.

Inferencias lógicas
1)Adición: p  (p  q)  1 (p  q)  p
2)Simplificación: 1
3)Modus Ponens: ((p  q)  p)  q 1
4)Modus Tollens: 5) ((p  q)   q)   p  1
6) Silogismo disyuntivo: ((p  q)   p)  q 1
Silogismo hipotético: ((p  q)  (q  r))  (p  r)  1

Consecuencia lógica
La proposición q es consecuencia lógica de las proposiciones p1, p2, ..., pn, si la proposición:
(p1  p2  ... pn)  q es una tautología.

Teorema de Reducción al absurdo


La proposición q es consecuencia lógica de las proposiciones p1, p2, ..., pn, si y solo si la
proposición:
(p1  p2  ... pn  q) es una contradicción.
Lógica Matemática

 Lógica:
Es el estudio de la reglas del razonamiento. Constituye una herramienta poderosa
basada en silogismo para la aplicación en lenguajes para computadoras.
 Lógica de proposiciones:
Proposición:
 Es una afirmación que puede ser V o F, siempre que “F < V”.
 En álgebra de proposiciones de Boole: V = 1 y F = 0
Afirmación:
 Las afirmaciones se clasifican en 4 tipos:
 Declarativo: 1 cuadrado tiene sus 4 lados iguales.
 Imperativo: Báñate todos los días.
 Admirativo: ¡Eso es grandioso!
 Interrogativo: ¿Qué es eso?
 Nota:
 Afirmaciones abiertas: Las espinacas son deliciosas.
Lógica Matemática

Proposición Compuesta

Tablas: 2n
n= # variables
Conectivos Binarios:

VARIACIONES

INTERPRETACIONES
Relaciones entre sus Sentencias y Compuertas Lógicas:

Lógica Simbólica
 Ejemplos:
Si Juan toma el autobús, luego Juan pierde su
cita, si el autobús llega tarde, diseñar la expresión
lógica.
Principios Lógicos:
Son procesos de razonamiento, que a partir del principio se prueba su valides.

Doble negación ¬(¬P)≡P


Ley de Contradicción P^¬P≡F
P.P ≡ 0
Ley del tercio excluido P v ¬ P ≡ V P + P ≡ 1
Ley de implicación P→Q ≡ ¬ P v Q
Ley de Morgan ¬ ( P ^ Q) ≡ ¬ P v ¬ Q
¬ ( P v Q) ≡ ¬ P ^ ¬ Q
Principios Lógicos:
(Cont…)

Ley de Equivalencia P ↔ Q ≡ (P→Q) ^ (Q→P)


Ley de Simplificación P.P ≡ P P+P ≡ P
P.1 ≡ P P+1 ≡ 1
P.0 ≡ 0 P+0 ≡ P
Ley de Absorción P (P + Q) ≡ P
P + ( PQ ) ≡ P
P + PQ ≡ P + Q
Modus Ponens (MP) Modus Tolens (MT)

Principio de Lewis
PREDICADO
Un predicado es una función definida sobre un objeto o argumento
que se llama dominio.

Función (Objeto)

F: D1 x D2 x D3 x ... x Dm -> S
(X1, X2, X3, … , Xn) -> F(X1, X2, X3, … , Xn) = Y
argumentos

Dominio:

D = D1, D2, D3, ... , Dm

Todo predicado cumple con las mismas propiedades de una proposición.


Ejemplos

a) María es una mujer M(m)


m M

b) Si X N = {0, 1, 2, ...}

X es un numero par P(x)

Si X = 1, P(1) es F
Si X = 2, P(2) es V

c) Alguien me conoce C(x)


x C
Ejemplos

d) Juan ama a Rosario A(j, r)

j A r diádico

e) Juan regala flores a María R(j, f, m)

j R f m poliádico

f) Si a María le gusta escribir y a


Carlos le gusta leer entonces a Pedro le gusta jugar.

G(m , e) G(c , l) G(p


 , j)
SEMANA 2
Calculo 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) q
8) 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)
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.
CUANTIFICADORES
Reglas de equivalencias entre
cuantificadores (Intercambio de
Cuantificadores IC)

a) (V x) Fx ≡ ~(Existe x ) ~ Fx
b) (Existe X) Fx ≡ ~(V x) ~ Fx
c) (Vx) ~Fx ≡ ~(Existe x) Fx
d) (Existe x) ~Fx ≡ ~(V x) Fx
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 Conjuntiva
4) x ~q(x) Por 2 y Simplificación Conjuntiva
5) ~p(a) Por 3 y GE
6) ~q(a) Por 4 y GU
7) ~p(a) ⋀ ~q(a) (5,6)
8) ~(p(a) ⋁ q(a)) (7, Morgan)
9) x (p(x) ⋁ q(x)) De la hipótesis o premisa
10) p(a) ⋁ q(a) Por 9 y EU
11) 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)


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 impares


q = 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 cuadrado
2 = p2/q2 -> 2q2 = p2 -> p es par, es decir un divisor de 2

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

p es impar -> p2 es impar


p=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 -> ~p
n es impar -> n3+5 es par

Si n es impar se puede representar: n=2k1 +1


n3 = (2k1+1) 3+ (8k13+12k12+6k1+1)
n3 + 5 = (8k13+12k12+6k1+1+5)
= (8k13+12k12+6k1+6)
= 2(4k13+6k12+3k1+3) es par lqqd.
Ejemplo:
p p p
I1 q T ~q I2
r ~r r

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

Rpta:

[p⋁r ⋀ (q ⋀ T ⋁ ~q ]
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.
Algoritmo Factorial:

Dim r as double
Dim 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 num
2)Primo=0 , i=2
3)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_if
fin
ALGORITMOS CON MATRICES

Ejemplo: Analizar la suma de 2 matrices

P1: for i = 1 to n
for j = 1 to n
Lee A[i,j] Captura A[i,j]
fin for
fin for

P2: for i = 1 to n
for j = 1 to n
Lee B[i,j] Captura B[i,j]
fin for
fin for
P3: for i = 1 to n
for j = 1 to n
S[i,j] = A[i,j] + B[i,j]
fin for
fin for

P4: for i = 1 to n
for j = 1 to n
IMPRIME (S[i,j])
fin for
fin for
APLICACIÓN EN .NET

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

Console.writeline(“Ingrese la segunda matriz”)


for i = 1 to n
for j = 1 to n
B[i,j] = Console.readline();
next
next
for i = 1 to n
for j = 1 to n
S[i,j] = A[i,j] + B[i,j]
next
next

for i = 1 to n
for j = 1 to n
Console.writrline(“{0}, S[i,j]”)
next
next
MULTIPLICACION DE MATRICES

for i = 1 to n
for j = 1 to n
r(i,j) = 0
for 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 = 1
retornar (0)
sino
si n=2
retornar (1)
sino
retornar F(n-1) + F(n-2)
fin si
fin si
FIN
APLICACIÓN EN .NET

Dim N,R as integer


N = 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 then
return (1)
else
return Fibo(n-1) + Fibo(n-2)
end if
end if
SEMANA 4
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’


SEMANA 5
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 principio


D = {1,2,3,4,5} de la suma se tiene

8 posibilidades de los republicanos


5 posibilidades de los democratas
En 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

H1
H2 6 posibles formas para la primera
M1 . mujer, en general seria 6*8 formas
. posibles de formar la pareja principal
H6
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:


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


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


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

P1 S=0 1
P2 for(i=1;i<=n;i++){ 1+n+1+n = 2n+2
S=S+1; 2n
}
P3 Imprime S 1

-> Complejidad: 4n+4


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

Complejidad
P1 = S = 0 P1. 1
P2 = for(i+1;1<=n;i++) 2n+2 P2,P3.(2n+2)(2n+2)=4n2+8n+4
P3 = for(j=1;j<=n;j++){ 2n+2 P4. 3n2
P4 = S=S+i*j; }
P5 = imprimir S -> T(n) = 7n2 + 8n + 5
Ejercicio 3:

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


Para: n=1:
1! >= 21-1 n>1
Para: n=k:
k! >= 2k-1 … HI
Probar:
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
PRODUCTO CARTESIANO
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.
RELACIONES

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


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 bRa

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


ALGEBRA RELACIONAL
Projeccion (Π): Devuelve un atributo vertical (columna),crea una nueva
relación a partir de otra,se puede extraer más de una columna, se eliminan
las tuplas duplicadas que pudieran resultar.

Su equivalente en SQL:
Select T1.A,T1.C from T1
Select (σ):

 Permite seleccionar las tuplas de una relación que cumplen una


determinada condición.
 Da como resultado una nueva relación.

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


Where T1.B>=2
Unión (U):
 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.
 Si existe alguna tupla repetida sólo se escribirá una vez en el resultado.

 Requiere que R y S tengan el mismo rango.


Interseccion(n):

 Dadas dos tablas R y S, su intersección es el conjunto de las tuplas que


están en R y en S.
 Requiere que R y S tengan el mismo rango.
Diferencia(-):

 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.
PRODUCTO CARTESIANO

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.
Ejemplo: Dada las relaciones, estudiante(sujeto) lleva(verbo)
cursos(predicado
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 es >13

1)T4=T3*T1
2)T5=T4*T2
3)T6= Π(T5)
ENTEROS Y DIVISION

Definicion

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


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

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 /
a=d*q+r.
MAXIMO COMUN DIVISOR
Definición:
Sean a y b enteros no nulos el mayor entero d/a y d/b se denomina máximo
común divisor de a y b y se denota como MCD(a,b)

Algoritmo:
Function MCD(x,y)
Mientras (x ≠y)
if(x>y)then
x=x-y
else
y=y-x
End if
Fin mientras

Para hallar el MCD de mas UD puede sobrecargar la función.


RELACIONES RECURSIVAS O DE
RECURRENCIA LINEALES CON
COEFICIENTES CONSTANTES
Una relación recursiva de orden K es una función de la forma .
Sn =δ(Sn-1 ,Sn-2 … ,Sn-k,n)

Es decir donde el n-esimo termino Sn, de una sucesión es una función de


los k términos precedentes Sn-1 ,Sn-2 … ,Sn-k(y posiblemente en n ) en
particular una relación recursiva lineal de orden k con coeficientes
constantes es una relación recursiva de la forma.
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


continuación se proporciona el significado de los términos lineal y
coeficientes constantes .
-Lineal se refiere cuando no hay potencias o productos de los aj.
-Coeficientes constantes: Los C1,C2,…Ck son constantes(no dependen de
n).
Considere c/u de las siguientes relaciones de recurrencia.

a) Sn = 5Sn-1 -4Sn-2 + n2
Es no homogénea debido a la n2

b) Sn = 2Sn-1 *Sn-2 + n2
Es no homogénea debido a la n2 además el producto Sn-1 *Sn-2 significa
que la relación de recurrencia es no lineal

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

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


Se trata de recurrencia lineal homogenea de tercer orden con coeficiente
constantes.
SOLUCIÓN DE RELACIONES DE RECURRENCIA LINEALES
HOMOGÉNEAS DE SEGUNDO ORDEN

Teorema 1:
Suponga que el polinomio característico
Δ(x)=x2-5x-t de la relación de recurrencia
Sn=5Sn-1 +tSn-2

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 .
Sn=C1r1n +C2r2n
Ejemplo:
Sea
Sn=2Sn-1 +3Sn-2
La solución general se obtiene al resolver el polinomio característico.
X2=2x+3
X2-2x-3=0
(x-3)(x+1)=0
r1=3,r2=-1
La ecuación es:
Sn=C1r1n+C2r2n
Sn=C1(3)n+C2(-1)n
Cuando n=0 entonces S0=1
S0=C1(3) 0+C2(-1)0
1=C1+C2 (I)
n=1
2=C1(3)+C2(-1) (II)
C1=3/4
C2=1/4
Sn=3/4*(3)n+1/4*(-1)n
E2:
Considere la sucesión de fibonacci
Sn=Sn-1+Sn-2 con So=0,S1=1
X2-x-1=0
r1=(1+√5)/2
r2=(1-√5)/2

Sn=C1(1+√5)/2+C2(1-√5)/2

Reemplazando valores de las condiciones iníciales S0=0 y S1=1


La ecuación queda así:
Los valores de C1=1/ √5 y C2=-1/ √5, al resolver las 2 ecuaciones con 2 incognitas
Por loi tanto la solucion queda:
Sn=(1/ √5 )((1+√5 )/2)n-(1/√5 )((1- √5 )/2 )n
Cuando las raíces del polinomio característico son iguales.
TEOREMA 2
Supóngase que el polinomio característico.
Δ(x)=x2-5x-t solo tiene una raiz ro
Entonces para Sn=5Sn-1+tSn-2

Se concluye que la solucion general de la relacion de recurrencia donde C1 y


C2 son constantes arbitrarias es:
Sn=C1(ro)n+C2n(ro)n

Las constantes C1 y C2 son constantes arbitrarias se determinan en forma


única mediante las condiciones iníciales.

E1:Sn=6Sn-1-9Sn-2, S1=3 y S2=27


x2-6x+9=(x-3)2
Sn=C1(3)n+nC2(3)n
Como para n=1 , S1=3
Y para n=2 y S2=27
Remplazando se llega a :C2=2 y C1=-1
Entonces:
Sn=(-1)(3)n+2n(3)n
OBSERVACION

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


Luego cada uno de los siguientes
rn, nrn,n2(rn),….(nn-1)(rn)
Es una solución .Luego cualquier combinación
C1(rn)+C2(nrn)+…+Cm((nm-1)(rn))
E1: Considere la siguiente relación homogénea de recurrencia de tercer orden.
Sn=11Sn-1-39Sn-2+45Sn-3

Δ(x)=x3-11x2+39x-45=(x-3)2(x-5)

Luego Δ(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.

Sn=C1(3)n+C2n(3)n+C3(5)n

Supongamos que tenemos condiciones iníciales

S0=5,S1=11,S2=25, llegamos a C1=4,C2 =-2 C3=1


Al resolver las ecuaciones entonces
Sn=(4-2n)(3n)+5n
FUNCIONES
SEMANA 9
GRAFOS
Esta formado por vértices y aristas.
G=(V,E)
V={V V ,… V }
1, 2 n

E={e e ,… e }
1, 2 n

V:vértices
e:aristas
GRAFOS NO DIRIGIDOS
1)e={v,w} ó {w,v}
Es decir es lo mismo del vértice v al w ó del vértice
w a v.
2) GRAFO DIRIGIDO
e={v,w} ≠ {w,v}

v w Grafo no dirigido

v w Grafo dirigido
3)Grafo no simple
Grafo no dirigido que tiene lazos y lados
paralelos.
e1
e3
V1 V2 V3 e5
e2 e4
e1 y e2 aristas paralelas
e5:Lazo
GRAFO PONDERADO
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.

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

GRAFO COMPLETO
Es aquel grafo con N vértices en los que existe una arista entre cada par de
vértices(no hay paralelas).

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

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


GRADO DE UN VERTICE:
Comprende al numero de aristas que inciden en dicho vértice.
Camino o Trayectoria
CICLO DE EULER

Reconocen todas las aristas del grafo sin repetirlas.


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
circuito de Euler.
CIRCUITO DE HAMILTON

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


Obsérvese que parte de a y recorriendo todos los vértices llega a a.

OJO: Ud debe recorrer todos los vértices.


SEMANA 10
MATRIZ DE ADYACENCIA Y DE
INCIDENCIA
Ejemplo:
LISTA DE ADYACENCIA

Entonces la lista de adyacencias


A:C
B:D,E
C:A,D,E
D:B,C
E:B,C,F
F:E
ARBOLES
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.
*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.
ALGORITMO DE DIJSTRA
Algoritmo
 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 nodos.
 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 sería 0.
 Sea a = x (tomamos a como nodo actual).

 Recorremos todos los nodos adyacentes de a, excepto los nodos


marcados, llamaremos a estos vi.
 Si la distancia desde x hasta vi guardada en D es mayor que la distancia
desde x hasta a sumada a la distancia desde a hasta vi; esta se sustituye
con la segunda nombrada, esto es:
si (Di > Da + d(a,vi)) entonces Di = Da + d(a,vi)
 Marcamos como completo el nodo a.

 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 marcados.
Una vez terminado al algoritmo, D estará completamente lleno.
ALGORITMO DE KRUSKAL

 Funciona de la siguiente manera:


 se crea un bosque B (un conjunto de árboles), donde cada vértice del grafo es
un árbol separado
 se crea un conjunto C que contenga a todas las aristas del grafo
 mientras C es no vacío
 eliminar una arista de peso mínimo de C
 si esa arista conecta dos árboles diferentes se añade al bosque,
combinando los dos árboles en un solo árbol
 en caso contrario, se desecha la arista
 Al acabar el algoritmo, el bosque tiene un solo componente, el cual forma un
árbol de expansión mínimo del grafo.
 Este algoritmo fue publicado por primera vez en Proceedings of the American
Mathematical Society, pp. 48–50 en 1956, y fue escrito por Joseph Kruskal.
Prim
SEMANA 11
ÁRBOLES GENERALES (N-ARIOS)
Definición
Un árbol A se define como un conjunto de elementos
llamados nodos o vértices, de forma que:
- A es vacío, en cuyo caso se llama árbol vacío o árbol nulo,
o
- A contiene un nodo distinguido v0 llamado raíz de A y los
nodos restantes de A forman un conjunto de árboles A1, A2
, A3, ..., An
Cada árbol Ai tiene como raíz al nodo vi

Un árbol se representa mediante un grafo en donde la raíz v0


es el nodo en A en la parte superior. Una línea hacia abajo
de izquierda a derecha, un arco señala a los hijos de v0
ÁRBOLES GENERALES (N-ARIOS)
Ejemplo: Considere el árbol A siguiente:

Nivel 0 1

Nivel 1 2 3 4

Nivel 2 5 6 7 8 9 10 11

Nivel 3 12 13 14 15 16

Nivel 4 17 18 19
ÁRBOLES GENERALES (N-ARIOS)
Raíz: 1
Momento: 19
Peso: 10
Altura: 4
Grado(3): 2
Grado(4): 3
Descendientes de 8: 8, 13, 14, 17 y 18
Descendientes propios de 8: 13, 14, 17 y 18
Antecesores de 8: 1, 3 y 8
Antecesores propios de 8: 1y3
Á RBOLES GENERALES (N-ARIOS)
Ejemplo: Sea el árbol de vértices V y altura h
Definimos h(u) la altura del subárbol con raíz u
Si V =  h = -1

V = {a} V = {a, b} V= {a, b, c, d, e}


h=0 h=1 h=2

a a h(a) = h = 1 a h(a) = h = 2

h(b) = h(c) =1
b b c
h(d) = h(e) = 0
h(b) = 0
d e
ÁRBOLES GENERALES (N-ARIOS)
TEOREMA
Sea A un grafo con n vértices
Las siguientes afirmaciones son equivalentes
1. A es un árbol
2. A es conexa y acíclica
3. A es conexa y tiene n-1 aristas
4. A es acíclica y tiene n-1 aristas
TEOREMA
Si a, b son vértices distintos de un árbol A, entonces existe
un único camino que conecta estos vértices.
Se puede demostrar que como A es conexo, existe al menos
un camino de a hacia b. Si hubiera más caminos de este tipo,
por medio de dos de ellos, algunas aristas podrían tener
ciclos, pero sabemos que un árbol no tiene ciclos.
Más Ejemplos
A A

B C B C

E G D E
D F

Árbol completo de nivel 2 Árbol no completo de nivel 2


Cada nodo del nivel n es una Un nodo del nivel n-1 es una
hoja hoja
Arboles (Teoremas)
Teorema: en un árbol completo se
cumple |v|= m * i + 1 esto si se tiene m
hijos en todos sus niveles a partir del
nivel 1 i nodos internos
Demostración

Árbol binario completo


Cumple |v| = 2 * 3 + 1 = 7
m=2
i = 3(nodos internos)
Demostración

Árbol 3 – completo
Cumple: |v| = 3 * 4 +1 = 13
m=3
i=4
En general cada nodo interno tiene m nodos,
entonces i nodos tiene: m*i nodo, incluyendo la
raíz seria |v| = m * i +1 (α)

También se sabe que |v| = i + L (β) esto es la


cantidad de vértices, es igual a: la cantidad de
nodos internos mas la cantidad de hojas

i = 1, L = 2
|v| = i + L = 1 + 2 = 3
De aquí se puede igualar α con β
|v| = L + i = m * i + 1
L = i (m – 1) +1
REPRESENTACIÓN EN MEMORIA DE ÁRBOLES
GENERALES

Representación mediante lista de hijos


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

Registro Nodo
Inicio
T Valor
Nodo *sig
FinRegistro

Este modelo presenta la restricción que el número de


nodos está limitado al tamaño del vector.
REPRESENTACIÓN EN MEMORIA DE ÁRBOLES
GENERALES
Representación mediante lista de hijos
RAÍZ es un arreglo de tamaño n (tamaño de V)
RAÍZ(i) es la cabeza de la lista que contiene los hijos del nodo i.

RAÍZ Lista de hijos


1 2 3 *
2 4 5 *
3 9 10 *
4 *
5 6 7 8 *
1
6 *
2 3
7 *
8 * 4 10
5 9
9 *
10 * 6 8
REPRESENTACIÓN EN MEMORIA DE
ÁRBOLES GENERALES
Acción Recorrido(N)
Inicio
Para I desde 1 hasta N
p = Raíz(I)
Mientras p  Nulo
Escribir p  Valor
p  p  sig
FinMientras
FinPara
Fin
REPRESENTACIÓN EN MEMORIA DE
ÁRBOLES GENERALES
Raíz(i) es la cabeza de la lista de los hijos del nodo i
i Raíz(i) Hijos del nodo i
1 Raíz(1) 2, 3 1

2 Raíz(2) 4, 5 2 3

3 Raíz(3) 9, 10 4 5 9
10

4 Raíz(4) = Nulo No tiene


5 Raíz(5) 6, 7, 8 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
REPRESENTACIÓN EN MEMORIA DE
Á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
RAÍZ Lista de hijos
4 10
5 9
1 2 3 *
6 7 8

2 4 5 *

3 9 10 *

5 6 7 8 *
REPRESENTACIÓN EN MEMORIA DE
ÁRBOLES GENERALES
Puntero al hijo de más a la izquierda–hermano
derecho (HI-HD)
Los nodos tienen dos apuntadores uno al hijo de más a la
izquierda y el otro al hermano derecho.

Puntero al hermano derecho

Puntero al hijo más a la izquierda

Valor del nodo


REPRESENTACIÓN EN MEMORIA DE
ÁRBOLES GENERALES
Ejemplo: El árbol de la figura (a) puede representarse
mediante el modelo HI-HD mostrado en la figura (b)

(a) (b)
REPRESENTACIÓN EN MEMORIA DE ÁRBOLES
GENERALES
Representación mediante cursores hijo más a la izquierda-
hermano derecho
La variable CABEZA apunta a la dirección de la raíz del árbol
(VALOR(i)).
HIJO(i) apunta a la posición (NODO(HIJO(i)) donde se encuentra
la dirección del hijo de más a la izquierda.
SIG(i) apunta a la posición (NODO(i)) donde se encuentra la
dirección del hermano derecho.

B C

D E F G
REPRESENTACIÓN EN MEMORIA DE ÁRBOLES
GENERALES
Representación mediante cursores hijo más a la izquierda-hermano
derecho
VALOR HIJO NODO SIG

1 F * 1
2 2 7 5

CABEZA 3 B 2 3
4 E * 4
5
5 A 6 5 4 8
6 G * 6 3 7
7 D * 7 8 *
8 C 9 8 1 *
9 9 6 *
Mediante hijo más a la izquierda-hermano derecho
RAIZ variable global apunta a la raíz del árbol
VALOR(i) contiene el valor del nodo con dirección i
HI(i) contiene la dirección del hijo más a la izquierda del nodo i
HD(i) contiene la dirección del hermano derecho del nodo i
HI VALOR HD
1 0 F 0
2

RAIZ 3 7 B 8
4 0 E 1 A
5
5 3 A 0
6 0 G 0 B C
7 0 D 4
8 6 C 0
D E F G
9
RECORRIDO CON LOS
ARBOLES
Recorrido Preorden:

Visitar la raíz , descender por la izquierda, así hasta donde se pueda


continuar, moverse a la derecha y comenzar nuevamente o volver hacia
atrás hasta que se pueda mover a la derecha y continuar
J-E-A-H-T-M-V
31-22-18-23-22-19-24-29-19
31

22
22
B D
C
24
19

18 23 F
G
29 19
Recorrido Inorden:
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 nodo
a la derecha y continuar.

A-E-H-J-M-T-V
18-22-23-31-19-22-29-24-19
RECORRIDO POS ORDEN
En este caso se visita primero el subárbol izquierdo, así hasta
donde se pueda, cuando no se puede continuar al subárbol
derecho hasta que se pueda, y por ultimo visitar la raíz ,volver
hacia atrás y comenzar nuevamente.

A-H-E-M-V-T-J
18-23-22-19-29-19-24-22-31
ÁRBOLES BINARIOS DE
BÚSQUEDA (ABB)
Definición
 Es una estructura sobre la que se pueden desarrollar eficientemente las
operaciones de:

 Búsqueda
 Inserción
 Eliminación

 Definición formal:
 “Para todo nodo T del árbol debe cumplirse que todos los valores de
los nodos del subárbol izquierdo de T deben ser menores o iguales al
valor del nodo T. De forma análoga, todos los valores de los nodos
del subárbol derecho de T deben ser mayores o iguales al valor del
nodo T”
Ejemplo
120

87 140

43 99 130

22 65 93 135

56
BÚSQUEDA EN UN Á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_si
fin_accion
BÚSQUEDA EN UN ÁRBOL
ABB
accion buscarNodo (Raiz, Val_bus)
BUSQUEDA (Raiz, Val_bus)
fin_accion

Ubicar 65 y 170 en el siguiente árbol: 120

87 140

43 99 130

22 65 93 135

56
INSERCIÓN EN UN
ÁRBOL ABB
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
ÁRBOL
accion INSERCION (Nodo, Val)
ABB
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
sino
n <- nuevo Nodo
n->hijo_izq <- null
n->hijo_der <- null
n->valor <- Val
Nodo <- n
fin_si
fin_accion
INSERCIÓN EN UN
ÁRBOL ABB
accion insertarNodo (Raiz, Val)
INSERCION (Raiz, Val)
fin_accion

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

120

120
87

120
87
43
INSERCIÓN EN UN
ÁRBOL ABB
Insertar 120, 87, 43, 65, 140, 99, 130, 22, 56

120 120

87 87 140

43 43

65 65
INSERCIÓN EN UN
ÁRBOL ABB
Insertar 120, 87, 43, 65, 140, 99, 130, 22, 56

120 120

87 140 87 140

43 99 43 99 130

65 65
INSERCIÓN EN UN
ÁRBOL ABB 120
Insertar 120, 87, 43, 65, 140, 99, 130, 22, 56

120 140
87

87 140
43 99 130

43 99 130
22 65

22 65 56
ELIMINACIÓN EN UN
Á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
Á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
ÁRBOL ABB
mientras (AUX->hijo_der <> null) hacer
TEMP <- AUX
AUX <- (AUX->hijo_der)
bandera <- Verdadero
fin_mientras
(Nodo->valor) <- (AUX->valor)
n <- AUX
si bandera = VERDADERO entonces
(TEMP->hijo_der) <- (AUX->hijo_izq)
sino
(Nodo->hijo_izq) <- (AUX->hijo_izq)
fin_si
fin_si
fin_si
fin_si
fin_si
sino
Escribir (“El nodo no se encuentra en el árbol”)
fin_si
fin_accion
ELIMINACIÓN EN UN
ÁRBOL ABB
accion eliminarNodo (Raiz, Val)
ELIMINACION (Raiz, Val)
fin_accion

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

87 140

43 99 130

22 65 135

56
ELIMINACIÓN EN UN
ÁRBOL ABB
Eliminar 22, 99, 87, 120, 140, 135, 56
120

87 140

43 99
130

22 65 93 135

56
ELIMINACIÓN EN UN
ÁRBOL ABB
Eliminar 22, 99, 87, 120, 140, 135, 56
120

87 140

43 99
93
130

65 93 135

56
ELIMINACIÓN EN UN
ÁRBOL ABB
Eliminar 22, 99, 87, 120, 140, 135, 56
120

87
65 140

43 93
130

65
56 135

56
ELIMINACIÓN EN UN
ÁRBOL ABB
Eliminar 22, 99, 87, 120, 140, 135, 56
120
93

65 140

43 93
130

56 135
ELIMINACIÓN EN UN
ÁRBOL ABB
Eliminar 22, 99, 87, 120, 140, 135, 56
93

65 140
130

43 135
130

56 135
ELIMINACIÓN EN UN
ÁRBOL ABB
Eliminar 22, 99, 87, 120, 140, 135, 56
93

65 130

43 135

56
ELIMINACIÓN EN UN
ÁRBOL ABB
Eliminar 22, 99, 87, 120, 140, 135, 56
93

65 130

43

56
Arboles AVL

 Los árboles AVL surgen con la idea de mejorar el rendimiento


de los árboles ABB, al realizar reacomodos o balanceos
después de insertar o eliminar elementos.

 Definición formal:
 “Un árbol AVL se define como un ABB en el cual se cumple
que para todo nodo T del árbol debe cumplirse que la altura
de los subárboles izquierdo y derecho no debe diferir en más
de una unidad”
Definición

 El FACTOR DE EQUILIBRIO (FE) de un nodo T se calcula


como la altura del subárbol derecho menos la altura del subárbol
izquierdo.

FE = HSD - HSI
Definición
 Colocar el FE a los nodos del siguiente árbol:

-1

100

1 0

47 111

0
69
Registro

registro Nodo

valor : tipoDato
FE : entero {-1, 0, 1}
izq, der : Nodo

fin_registro
INSERCIÓN EN UN
ÁRBOL AVL
Inserción en un á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.
Llevando a un arbol 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) 2 nodos

o Rotación derecha-izquierda (DI)

o Rotación izquierda-derecha (ID) 3 nodos


Llevando a un árbol AVL
o Rotación derecha (DD)

2 C
C NODO
NODO
1 B
RESULTANDO
B

NODO1
0 A
A

NODO→der echa← NODO1→izquierda


NODO1→izquierda←NODO
NODO←NODO1
Reestructurar un árbol AVL
o Rotación izquierda (II)

C
-2
C
NODO NODO

RESULTANDO B
B -1

NODO1

0 A
A

NODO→izquierda ← NODO1→derecha
NODO1→derecha ←NODO
NODO←NODO1
Llevando a un arbol AVL
o Rotación derecha-izquierda (DI)

NODO
2
C C

NODO -1
B RESULTANDO B

NODO1
0
A A

NODO2
NODO1→izquierda ←NODO2→derecha
NODO2→derecha ←NODO1
NODO→derecha ← NODO2→izquierda
NODO2→izquierda ← NODO
NODO← NODO2
Llevando a un árbol AVL
o Rotación izquierda-derecha (ID)

NODO

-2 C
NODO C

RESULTANDO B
B 1

NODO1
A
0
A
NODO1→derecha ← NODO2→izquierda
NODO2 NODO2→izquierda ← NODO1
NODO→izquierda← NODO2→derecha
NODO2→derecha←NODO
NODO←NODO2
ALGORITMO DE PRIM

 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, no dirigido y cuyas
aristas están etiquetadas.
 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
á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
que forman dicho grafo no conexo.

Pseudo código del algoritmo:


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

Más explícitamente:
Paso 1. Se elige un vértice u de G y se considera el árbol S={u}
Paso 2. 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
Paso 3. Si el nº de aristas de T es n-1 el algoritmo termina. En caso
contrario se vuelve al paso 2
MAQUINA DE ESTADO FINITA

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

Entrada Salida

La maquina de estados finita se aplican en el diseño de circuitos digitales al nivel


de matemática discreta se maneja bajo el concepto de grafos.
MAQUINA DE ESTADO FINITA (Ejemplos):

 Ej.: Hallar la tabla de transición de estados.

0 1

S0 S0 S1
S1 S1 S0

0 0
1
S0 S1
1
MAQUINA DE ESTADO FINITA (Ejemplo1):

 Ej: Dada la tabla:

F
S\E a b
S0 S1 S2
S1 S2 S1
S2 S2 S3
S3 S1 S0

 Dibuje el diagrama de estados para el FSA(Autómata Finito


Deterministico) para la cual los estados de aceptación son S1 y S3.
Determine si la cadena aaababbab es aceptada.
MAQUINA DE ESTADO FINITA (Ejemplo1):
Para que la cadena sea aceptada debe
terminar la cadena en S1 ó S3

a
b
S0 S1
S1 S2 S2 S3 S1 S1 S1 S2 S3
a
a a a b a b b a b
b a

b Como S3 es un estado final se dice que la


S3
S2 cadena es aceptada por FSA.

a
b
MAQUINA DE ESTADO FINITA (Ejemplo2):

 Ejm:

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

a
b a

S0 a a b ab a aba

b b
MAQUINA DE ESTADO FINITA (Ejemplo3):

 Ejm:

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

a
b
a

S0 b S1 a S2 a S3

b
MAQUINA DE ESTADO FINITA (Ejemplo4):
 Ejm: Dibuje el diagrama de estados para el NFA, cuya F
tabla de estados se presentan a continuación y los
estados de aceptación son S1 y S3, determine el S\E a b
lenguaje aceptado para este NFA. S0 S2 S1
S1 S1, S2 S3
S2 Ø Ø
S3 S2, S3 S2

• Solución:
a a a

S0 b S1 S2 S3
a

a b b

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


Conversión de un NFA a un DFA
 Ejemplo 1:
 F(S0,a)=S1 , F(S0,b)= S0

 F(S1,a)={Ø}

 F(S1,b)=S1 ó S2, esto es {S1,S2}; F(S2,a)={Ø}

 F(S2,b)={Ø}

 En consecuencia: F({S1,S2},a)= {Ø} y

F({S1,S2},b)={S1,S2} U Ø={S1,S2}

b b

S0 a S1 b S2
Conversión de un NFA a un DFA (Ejemplo 1)
 Para pasar este NFA a un DFA se hace la matriz de
transición.
S/E a b
{S0} {S1} {S0}
{S1} {Ø} {S1,S2}
{S1,S2} {Ø} {S1,S2}

 Para pasar el NFA al DFA hay que cubrir todos los


estados.
b
b

{S0} a {S1} b {S1, S2}


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

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

F a b
S\E a b
S0 a S1 a S2
S0 S0, S1 S2
S1 S0 S1 b
a
S2 S1 S 0, S 1 b

b
Conversión de un NFA a un DFA (Ejemplo 2):
S\E a b
F
{S0} {S0, S1} {S2}
S\E a b
{S1} {S0} {S1}
S0 S0, S1 S2
{S2} {S1} {S0, S1}
S1 S0 S1
{S0, S1} {S0, S1} {S1, S2}
S2 S1 S 0, S 1
{S1, S2} {S0, S1} {S0, S1}
b

{S0} a {S1} a {S2}

b
a b
{S0, S1} b

a {S1, S2}

a, b
ELEMENTOS BASICOS DE EXPRESIONES
REGULARES

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

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

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

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


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

(Inter)? milan = {Intermilan, milan}

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

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


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

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


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

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

[A - Z] = {A, B, C, Y, M, ….. }
[0 - 9] = digito
SEMANA 12
GRAMATICA DE ESTRUCTURA DE
FRASE
 Una gramatica de estructura de frase o simplemente gramática G se define como:

 G= {Vn, Vt, S, P} donde


 i) Vn: Es un conjunto finito de símbolos no terminales de un
vocabulario V, que puede sustituirse por otros símbolos.

 ii) Vt: es un conjunto finito de símbolos terminales de V, que no


pueden sustituirse por otros símbolos.

 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 construir palabras.

 iv) P: Es el conjunto de reglas de producción (reglas gramaticales)


cada uno de la forma W0  W1, lo cual significa que W0 puede
sustituirse por w1, W0 debe contener al menos un simbolo no
terminal en tanto que W1 puede consistir en cualquier combinación
de símbolos no terminales y terminales.
 Las reglas de produccion se escriben por ejemplo:
SaAB , A Bba (que quiere decir, S deriva en aAB)
B bB , B C
FORMA DE BACKUS_NAUR

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

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

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

 iii) Toda la producción con el mismo miembro izquierdo no terminal se


combinan en una proposición con todos los miembros derechos enumerados
a la derecha de “::=” separadas por barra verticales.

 Por ejemplo:
 A aB , Ab , ABC
 Se combinan en BACKUS NAUR como:
 A::= a[B] |b| [B][C]
GRAMATICAS INDEPENDIENTES DEL
CONTEXTO
 En este tipo de gramática se puede reemplazar un no terminal por otra
derivación ya sea con símbolos no terminales o terminales.
En la gramática dependiente del contexto influye el entorno para
poder derivarlos.

Ejm: Sea: A aBb


BC
Observe que el no terminal B esta rodeado por los terminales a y b, es
una gramática dependiente del contexto Ud. Puede reemplazar B por
esta derivación siempre y cuando este rodeado por a y b.

Por Ejm:
AaCb , A abb
Es una gramática independiente del contexto. Ud. Puede reemplazar por otra
derivación no importando las restricciones.
Por Ejm(1):
A B ABC
B C A CC
C a A aa
DERIVACION
Derivar es desarrollar la gramática
G={(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 →abab
En consecuencia:
L(G)={abb,abab}
DERIVACION

 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
IZQUIERDA
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
DERECHA
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 DE
ARRIBA HACIA ABAJO
Determine 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
S → AB →aAB → aABb →aBAb →abAb →abab
ANALISIS GRAMATICAL DE
ABAJO HACIA ARRIBA
Determine el análisis gramatical de abajo hacia arriba 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 ←ABS
De manera la cadena ‘abab’ pertenece a L(G)
DERIVACION POR LA IZQUIERDA

 A Bzwa : B es un no terminal, usted debe derivar a partir de B que esta mas a la


izquierda.

E→E+T E
E →T
T →T*F E + T
T →F
F →id T F
Id →a|b|c
T * F id

F id c

Id b

a
DERIVACION POR LA DERECHA

 A Bzw0 : w0 es un no terminal, usted debe derivar a partir de W que esta mas a la


derecha.
 E→E+T
 E →T E
 T →T*F
 T →F E + T
 F →id
T T * F
 Id →a|b|c
F F id

Id id c

a b
Ejemplo:

 Crear las reglas de producción que <VAR>


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

 <id> a

double a
<var>
Ejemplo:
<tipo> <vars> ;
 Crear las reglas de producción que
reconozca: int a,b,c;
 <var><tipo><vars>; <int> <unaV> ,<vars>
 <vars><unaV>
 <vars><unaV>,<vars>
 <unaV> id <id>
 <tipo> int <unaV>,<vars>
 <tipo> double
 <id> a|b|c
a id <unaV>

b id

c
TIPOS DE GRAMATICA
 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 CHOMSKY.
-Una gramática es de tipo 0 si no tiene restricciones en las producciones.
Ejemplo : S aAB, AB a , A b, B AB
-Una gramática “G” es de tipo 1 si cualquier producción es de la forma αβ
donde | α | <=| β | (Las || indican cardinalidad) , o de la forma α  ‫ג ( ג‬
es cadena vacía)
Ejemplo: S aAB, AB bB, B b, A aB
-Una gramática “G” es de tipo 2 si cualquier producción es de la forma A β donde
el miembro izquierdo A es un no terminal.
Ejemplo: S aA, A aAB, B b, A a
- Una gramática “G” es de tipo 3 si toda producción es de la forma Aa o A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 , o de la forma S‫ג‬
S aB, B bA, B b, B a, A aB, A a
TIPOS DE GRAMATICA(Observación)

 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 1 y toda gramática tipo 1 es de tipo 0.
 A) Una gramática es sensible al contexto si las producciones son de la forma
 αA α‘ α β α’
 B) Una gramática es libre de contexto si las producciones son de la forma A β
 La expresión libre del contexto proviene del hecho de que es posible sustituir la
variable A por β sin tomar en cuenta donde aparece A.
 C) Una gramática es regular si las producciones son de la forma:
 Aa, A a B, S‫ג‬
 Observación:
 Una gramática libre del contexto es lo mismo que una gramática tipo 2, una
gramática regular es similar al tipo 3.
AUTOMATAS Y GRAMATICAS

 Decimos que una gramática G es equivalente a un automata 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)

Ejemplo
 Sea la gramática G con V={a,b,c,d}, ∑={a,b}, variables={S,A}, el símbolo inicial es S
y la regla de producción son:
 S aS/aA AbA/b
a b
 M:
S a A b Z

 Observe que G y M reconocen a+ b+


Ejemplo

 Convertir la gramática regular a un autómata finito.


 SaA Solución

 SbA
 AaB b a
 AbB
 Aa S a A a B
 BaA
 BbA b
a

Z
Ejemplo
 Dado el autómata finito, exprese las reglas
de la gramática.

a  Solución:
b
 Q0 aQ1 Q0b
q0  Q0 bQ0 Q0a
q1  Q1aQ2 Q1a
b  Q1bQ0 Q1b
  Q2aQ3 Q2b
a  Q2bQ0
 Q3aQ3
a,b b  Q3bQ3
qq22
q3
 Q0,Q1,Q2 ESTADOS FINALES
a
Ejemplo

 Sea una gramática G = (ST,SN,n0,R), donde:


 ST= {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ., +, -}
 SN= {real, frac, ent, dig, sign}
 n0= real
 r1:<real>::=<ent>|<frac>|<ent><frac>|<sign><real>
 r2: <frac> ::= . <ent>
 r3: <ent> ::= <dig>| <dig><ent>
 r4: <dig> ::= 0|1|2|3|4|5|6|7|8|9
 r5: <sign> ::= +| -
Ejemplo:

 Verificar si 21.07  L(G)


 real  ent frac
  dig ent frac
r1:<real>::=<ent>|<frac>|<ent><frac>|<sig
  dig dig frac n><real>
  dig dig . ent r2: <frac> ::= . <ent>
  dig dig . dig ent r3: <ent> ::= <dig>| <dig><ent>
r4: <dig> ::= 0|1|2|3|4|5|6|7|8|9
  dig dig . dig dig r5: <sign> ::= +| -
  2 dig . dig dig
 * 2 1 . 0 7
 Entonces:
 n0 * 2 1 . 0 7  L(G)
Ejemplo:

 Sea una gramática G = (ST,SN,n0,R), donde:


 ST= {Juan, Ana, corre, come, salta, rápido, lento}
 SN= {oración, sujeto, predicado, verbo, adverbio}
 n0= oración
 r1: oración  sujeto predicado
 r2: predicado verbo adverbio
 r3: sujeto  Juan
 r4: sujeto  Ana
 r5: verbo  corre
 r6: verbo  come
 r7: verbo  salta
 r8: adverbio  rápido
 r9: adverbio  lento
Ejemplo:

 Ejemplo de una cadena:


¿Soporta esta gramática Ana corre rapido?
 oración  sujeto predicado r1: oración  sujeto predicado
  Ana predicado r2: predicado verbo adverbio
r3: sujeto  Juan
  Ana verbo adverbio r4: sujeto  Ana
  Ana corre adverbio r5: verbo  corre
  Ana corre rápido r6: verbo  come
r7: verbo  salta
 Entonces: r8: adverbio  rápido
 n0 * Ana corre rápido, r9: adverbio  lento

 Ana corre rápido  L(G)


Ambigüedad en GLC
 Una GLC es ambigua si existe una cadena w  L(G) que tiene 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 caso de que toda cadena w  L(G) tenga un único árbol de
derivación, la gramática es no ambigua.
 Ejemplo: la gramática S  aS | Sa | a es ambigua porque aa tiene dos derivaciones
por la izquierda

S  aS  aa S  Sa  aa
S S

a S a
S

a a

Esta gramática genera el lenguaje a+ que también es el lenguaje generado por la


gramática no ambigua S  aS | a.
224
Otro ejemplo:
 a gramática para expresiones aritméticas sobre las variables x y y:
 EE+E

 EEE

 Ex

 Ey

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


E E

E  E E + E

E + E x x E * E

x y y x

225
MAQUINA DE TURIN

 Estos autómatas detectan cadena de caracteres escribiéndolos en una


cinta. Esta compuesto por:
 Q: Estado de la unidad de control .

 Alfabetos: Símbolos de entrada que es el alfabeto de la cinta.

 Función de Transición:

 Donde:

 q0: Estado inicial de la unidad de control que posee la maquina


de Turín
 B: espacios en blanco(alfabeto de la cinta)

 F: Conjunto de estados finales.


MAQUINA DE TURIN(Ejemplo 1):

 Ejm: Diseñe una maquina que detecte cadenas de unos y ceros.


 Solución:

1 0 1 0 1 0 . . . 1 0 B

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

 Se comienza siempre de un estado inicial q0 que es el vacio.


(q0, Ø) (q1, Ø,D)
(q1, 1) (q2, 1,D)
(q2, 0) (q1, 0,D)
(q1, B) (q3, B,I)
MAQUINA DE TURIN(Ejemplo 2):

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

/ * A Q U I * / B

 Solución:

(q0, Ø) (q1, Ø,D) (q3, *) (q4, *,D)


(q1, /) (q2, /,D) (q4, /) (q5, /,D)
(q2, *) (q3, *,D) (q5, B) (q6, B,I)
(q3, C) (q3, C,D)
MAQUINA DE TURIN(Ejemplo 3):

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

 Solución:

(q0, Ø) (q1, Ø,D)


(q1, L) (q2, L,D)
(q2, L) (q2, L,D)
(q2, n) (q2, n, D)
(q2, B) (q3, B,I)
AUTOMATA DE PILA

Un automata de pila AP, en ingles pushdown automata, es un


autómata capaz de reconocer los lenguajes libres de contexto,
o de tipo 2. Los autómatas de pila se pueden representar como
una maquina de Turíng, que solo puede leer de una cinta, y que
puede guardar resultados intermedios en una pila.

De hecho su capacidad de procesamiento es inferior a la ALA,


debido a las siguientes restricciones sobre las posibles
operaciones con la cinta y la pila:
- La cinta se desplaza en un solo sentido, y su cabeza solo puede leer.
- La pila, esta limitada en un extremo por definición, cuando se lee un
elemento de al pila, este desaparecerá o se saca y cuando se escribe es la pila,
se introduce un elemento.
AUTOMATAS DE PILA(TIPOS):

 DEPENDIENTES DE LA ENTRADA: Se lee e1  ∑, y se desplaza la cinta, y en


función de ei, qj(el estado en que se encuentra la cinta), y Z(el valor de la pila), el
control pasa a otro estado q1, y en la pila se introduce Z+, o se extrae Z, o no se hace
nada.

 INDEPENDIENTES DE LA ENTRADA: Puede ocurrir lo mismo que en el caso


anterior, solo que e1, no interviene, la cinta no se mueve, lo que permite manejar la pila
sin las informaciones de entrada.

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

 Un automata de pila se puede definir


formalmente como una séptupla
AP(Q,∑,R,ℓ,q0,Z0,F)
 Q es el conjunto finito de estados.
 ∑ es el alfabeto de entrada, es finito.
 R es el alfabeto de la pila.
 ℓ es la función de transición.
 q0 es el estado inicial y cumple que q0 Q.
 Z0 es el símbolo inicial que contiene la pila
antes de comenzar Z0  r.
 F es el conjunto de estados finales.
EJEMPLO

 Sea L={aibi : i>= 1} sobre ∑={a,b}


Solución:
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 aceptable si es procesada
completamente y en la pila solo queda el marcador en el fondo Z.
EJEMPLO

 q0,a,Z) = (q0,AZ) a b
 (q0,a,A) = (q0,AA)

 (q0,b,A) = (q1,) q0 b q1  q2
 (q1,b,A) = (q1,)

 (q1,,Z) = (q2,Z)

 Sea w= aabb veamos el procedimiento de al cadena.


(q0, aabb, Z)├ (q0, abb, AZ)├(q0, bb, AAZ)
├ (q1, b, AZ)├(q1, , Z)
├ (q2, Z)
La última es una configuración de aceptación por tanto “w”
es aceptada.
EJEMPLO

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


(q0, aaabb, Z)├ (q0, aabb, AZ)├(q0, abb, AAZ)
├ (q0, bb, AAAZ)├(q1, b, AAZ)
├ (q1, ,AZ)

A pesar que la cadena se proceso completamente (q1,


,AZ) no es una configuración de aceptación, por
tanto “w” no es aceptada.

También podría gustarte