Está en la página 1de 204

MATEMATICA DISCRETA

Prof: Santiago Domingo


Moquillaza Henrquez

Calculo Proposicional
Ejercicios:
1)Demuestre que T S puede deducirse de las premisas
p -> q , q -> ~r , r , p (T S)
1) p -> q
2) q -> ~r
3) p -> ~r
4) r -> ~p
5) r
6) ~p
7) p (T S)
8) ~p -> (T S)
9) (T S)

(premisa)
p -> q <-> ~q -> ~p
(premisa)
(silogismo hipottico)
(3, contraposicin (15))
(premisa)
(4,5,MP(3))
(premisa)
(7,condicional (12))
(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
2) p -> r q
3) r q
4) r
5) r -> s T
6) s T
7) ~s -> T
8) ~s
9) T

Simplificacin Conjuntiva (p q -> p)


(premisa)
(1,2,MP)
(Simplificacin Conjuntiva)
(premisa)
(4,5,MP)
(6,Condicional)
(premisa)
(7,8,MP)

3) Proporcione la demostracin para la implicacin 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 Hipottico)
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)

Mtodos de Demostracin:
Mtodo directo o de Hiptesis 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 nmeros enteros impares entonces su producto
es impar.
p = m y n son nmeros enteros impares
q = su producto es impar
m = 2k1 + 1
n = 2k2 + 2

(impar,k1 Z+)
(impar,k2 Z+)

m*n = (2k1 + 1)(2k2 + 1)


= 4k1k2 + 2k1 + 2k2 + 1
= 2(2k1k2 + k1 + k2 ) + 1

-> impar

Mtodo por Reduccin 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+ / adems 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
p2 es par

->
->

q
p es par

p -> q <-> ~q -> ~p


p es impar
p=2k+1

p=2k1
2k12

->

->

->
->

(Mtodo Indirecto)
p2 es impar
(2k+1) 2 = 4k2 + 4k + 1
par
impar

2q2 = (2k1)2

->

q2 = (4k1)2
2

q es par (es decir divisor de 2)

Entonces se llega a una contradiccin 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.

Mtodo 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
n es impar

->
->

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

Mtodo de Demostracin por Induccin


Matemtica
Consiste en demostrar que si la proposicin es verdad para
un valor inicial (paso base). Se asume como verdad la
preposicin para un P(k) (hiptesis inductiva) entonces se
debe cumplir P(k+1), esta consecuencia ultima es la que se
debe demostrar, dndole la forma de P(k).

Propiedad del Buen Orden:


Todo conjunto de enteros no negativos tiene un elemento
mnimo.

Induccin Matemtica
1)
2)
3)
4)

Supongamos que conocemos que P(1) es


verdadera.
Tambin P(k) -> P(k+1) para todos los enteros
positivos k.
Hay que demostrar P(N).
Asume como verdad 1 y 2.

Demostracin:
Sea P(n) una proposicin 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 mnimo por ejemplo un T
conjunto F ahora T 1 (porque si no estara en contradiccin
con la hiptesis 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
tambin verdad por la condicin 2.
Hay contradiccin por lo tanto F es el conjunto vacio,
entonces dado P(1) como verdad, P(k) verdad -> n se
cumple p(n).

Ejercicios:
Demostrar
temporal.

= n(n+1) hallar el algoritmo y la complejidad


2

Para: n=1:
=1

1 = 1(1+1) = 1
2

= k(k+1)
2

(Hiptesis Inductiva)

Para: n=k:

Hay que probar para n=k+1


=

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

->

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

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

->

Tiene la forma de HI

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:
Para: n=1:

n!>=2n-1
1! >= 21-1

n>=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
(k+1) >2

a>b c -> a+c > b+c

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


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

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 induccin que: n2 + 41n + 41 es un numero


primo
Para: n=1:
12 + 41*1 + 41
Para: n=2:
4 + 82 + 41 = 127

es primo
tambin 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.
Funcin 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

Ejemplo:
p
I1

~q

~r

I2

(p q r) (p T q ~q) (p
~q r)
Rpta:
[pr (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 tautologa 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=xyz + xyz +
xyz + xyz donde x indica complemento de x. Se debe
poner 1 en la celda de interseccin y luego agruparlas de
2 en 2 o potencias de 2 con la condicin de que sean
adyacentes o extremos adyacentes.
Solucin:
-> f = xy + xy

Simplificar:
F = xyz + xyz + 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 = e2e1 + e3

Reduzca la funcin por karnaugh


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

f = CB + ABDE + BCD + BCE + ACDE

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 notacin xP(x)
Regla de Especificacin 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 tambin de instanciacin
universal.

Regla de Especificacin 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 Generalizacin 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 Generalizacin 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.

Negacin 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
contradiccin
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 Simplificacin Conjuntiva
4) x ~q(x)
Por 2 y Simplificacin 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 hiptesis o premisa
10) p(a) q(a)
Por 9 y EU
11) Llegamos a una contradiccin ~(p(a) q(a)) ^ p(a)
q(a) por 8 y 10 y falacia.
~p
^
p
Por lo tanto se debe concluir que la hiptesis 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:

P2:

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

Captura A[i,j]

for i = 1 to n
for j = 1 to n
Lee B[i,j]
fin for
fin for

Captura B[i,j]

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

APLICACIN 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

APLICACIN 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

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 campaa 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}
D = {1,2,3,4,5}
8 posibilidades de los republicanos
5 posibilidades de los democratas
En total entonces tiene 13 posibilidades

Entonces por el principio


de la suma se tiene

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

M1

H1
H2
.
.
H6

6 posibles formas para la primera


mujer, en general seria 6*8 formas
posibles de formar la pareja principal

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

PRODUCTO CARTESIANO
Definicin:
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 relacin es el subconjunto
cartesiano. Se dividen en :
a)Relacin Reflexiva
b) Relacin Simtrica
c) Relacin Transitiva
d) Relacin Anti simtrica

del

producto

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

Relacin Simtrica:
Una relacion sobre el conjunto A es simtrica 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 simtrica

Relacin 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)
(1,2)

(b,c)
(2,3)

(a,c)
(1,3)

Anti simtrica:
Es anti simtrica si : a R b

bRa

(b,a) R

Donde : a=b
adems : a y b R o bien
(a,b) 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}
A

B
C
D

C
B
D
C

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

4! * 5! = 2880 maneras

10

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 RELACIONAL
Projeccion (): Devuelve un atributo vertical (columna),crea una nueva
relacin a partir de otra,se puede extraer ms 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 relacin que cumplen una determinada condicin.
Da como resultado una nueva relacin.

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


Where T1.B>=2

Unin (U):
La unin de dos tablas R y S es el conjunto de las tuplas que estn en R, en
S o en las dos.
Si existe alguna tupla repetida slo 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 interseccin es el conjunto de las tuplas que


estn 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 relacin en la que se


encuentran las tuplas que pertenecen a R y que no pertenecen a S.

PRODUCTO CARTESIANO
Crea una nueva relacin, a travs 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 divisin
sea a un entero y b un entero positivo , existen 2 nicos enteros q y r
a=d*q+r.

0<=r<d /

MAXIMO COMUN DIVISOR


Definicin:
Sean a y b enteros no nulos el mayor entero d/a y d/b se denomina mximo
comn 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
Return x
end function
Para hallar el MCD de mas UD puede sobrecargar la funcin.

RELACIONES RECURSIVAS O DE
RECURRENCIA LINEALES CON
COEFICIENTES CONSTANTES
Una relacin recursiva de orden K es una funcin de la forma .
Sn =(Sn-1 ,Sn-2 ,Sn-k,n)
Es decir donde el n-esimo termino Sn, de una sucesin es una funcin de
los k trminos precedentes Sn-1 ,Sn-2 ,Sn-k(y posiblemente en n ) en
particular una relacin recursiva lineal de orden k con coeficientes
constantes es una relacin 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 funcin de n. A
continuacin se proporciona el significado de los trminos 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.


Sn = 5Sn-1 -4Sn-2 + n2
Es no homognea debido a la n2
a)

b) Sn = 2Sn-1 *Sn-2 + n2
Es no homognea debido a la n2 adems el producto Sn-1 *Sn-2 significa
que la relacin de recurrencia es no lineal
c) Sn = nSn-1 +3Sn-2
Se trata de una relacin de recurrencia lineal homognea 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.

SOLUCIN DE RELACIONES DE RECURRENCIA LINEALES


HOMOGNEAS DE SEGUNDO ORDEN
Teorema 1:
Suponga que el polinomio caracterstico
(x)=x2-5x-t de la relacin de recurrencia
Sn=5Sn-1 +tSn-2
Tiene races distintas r1 y r2 entonces las solucin general de la relacin de
recurrencia es la siguiente C1 y C2 son constantes arbitrarias .
Sn=C1rn +C2r2n
Ejemplo:
Sea
Sn=2Sn-1 +3Sn-2
La solucin general se obtiene al resolver el polinomio caracterstico.

X2=2x+3
X2-2x-3=0
(x-3)(x+1)=0
r1=3,r2=-1
La ecuacin 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 sucesin 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 inciales S0=0 y S1=1
La ecuacin 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 races del polinomio caracterstico son iguales.

TEOREMA 2
Supngase que el polinomio caracterstico.
(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 inciales.
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 caracterstico (x):
Luego cada uno de los siguientes
rn, nrn,n2(rn),.(nn-1)(rn)
Es una solucin .Luego cualquier combinacin
C1(rn)+C2(nrn)++Cm((nm-1)(rn))

E1: Considere la siguiente relacin homognea 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 races r1=3 de multiplicidad 2,y r2=5,luego por la
observacin, la siguiente es la solucin general de la recurrencia.
Sn=C1(3)n+C2n(3)n+C3(5)n
Supongamos que tenemos condiciones inciales
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

ARBOLES
Sea A un conjunto , y T es un rbol si existe un vrtice Vo en A con la propiedad
de que existe una nica trayectoria en T de Vo hacia cualquier otro vrtice en A.

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


*Los vrtices 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 tamao 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
sera 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 prximo 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 vrtice del grafo es
un rbol separado
se crea un conjunto C que contenga a todas las aristas del grafo
mientras C es no vaco
eliminar una arista de peso mnimo de C
si esa arista conecta dos rboles diferentes se aade 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 expansin mnimo del grafo.
Este algoritmo fue publicado por primera vez en Proceedings of the American
Mathematical Society, pp. 4850 en 1956, y fue escrito por Joseph Kruskal.

RBOLES GENERALES (N-ARIOS)


Definicin
Un rbol A se define como un conjunto de
elementos llamados nodos o vrtices, de
forma que:
- A es vaco, en cuyo caso se llama rbol vaco
o rbol nulo, o
- A contiene un nodo distinguido v0 llamado
raz de A y los nodos restantes de A forman
un conjunto de rboles A1, A2 , A3, ..., An
Cada rbol Ai tiene como raz al nodo vi
Un rbol se representa mediante un grafo en
donde la raz v0 es el nodo en A en la parte
superior. Una lnea hacia abajo de izquierda a

RBOLES GENERALES (N-ARIOS)


Ejemplo: Considere el rbol A siguiente:
Nivel 0

Nivel 1

Nivel 2

Nivel 3

Nivel 4

12

13

17

14

18

10

11

15

16

19

RBOLES GENERALES (N-ARIOS)


Raz:
1
Momento:
19
Peso:
10
Altura:
4
Grado(3):
2
Grado(4):
3
Descendientes de 8:
Descendientes propios de 8:
Antecesores de 8:
Antecesores propios de 8: 1 y 3

8, 13, 14, 17 y 18
13, 14, 17 y 18
1, 3 y 8

RBOLES GENERALES (N-ARIOS)


Ejemplo: Sea el rbol de vrtices V y altura h
Definimos h(u) la altura del subrbol con raz u
Si V = h = -1
V = {a}
h=0

V = {a, b}
h=1

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

h(a) = h = 1

h(a) = h = 2

h(b) = h(c) =1
b

c
h(d) = h(e) = 0

h(b) = 0
d

RBOLES GENERALES (N-ARIOS)


TEOREMA
Sea A un grafo con n vrtices
Las siguientes afirmaciones son equivalentes
1. A es un rbol
2. A es conexa y acclica
3. A es conexa y tiene n-1 aristas
4. A es acclica y tiene n-1 aristas
TEOREMA
Si a, b son vrtices distintos de un rbol A,
entonces existe un nico camino que conecta
estos vrtices.
Se puede demostrar que como A es conexo,
existe al menos un camino de a hacia b. Si
hubiera ms caminos de este tipo, por medio
de dos de ellos, algunas aristas podran tener

Ms Ejemplos
A

rbol completo de
nivel 2

rbol no completo de
nivel 2

Cada nodo del nivel n


es una hoja

Un nodo del nivel n-1 es


una hoja

REPRESENTACIN EN MEMORIA DE
RBOLES GENERALES
Representacin mediante lista de hijos
Cuando los nodos estn etiquetados con
mayor informacin, 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 restriccin que el

REPRESENTACIN EN MEMORIA DE
RBOLES GENERALES
Representacin mediante lista de hijos
RAZ es un arreglo de tamao n (tamao de V)
RAZ(i) es la cabeza de la lista que contiene los
hijos del nodo i.
Lista de hijos
RAZ
1

10

5
6

10

1
2
4

3
5

9
8

10

REPRESENTACIN EN MEMORIA DE
RBOLES GENERALES
Accin Recorrido(N)
Inicio
Para I desde 1 hasta N
p = Raz(I)
Mientras p Nulo
Escribir p Valor
p p sig
FinMientras
FinPara
Fin

REPRESENTACIN EN MEMORIA DE
RBOLES GENERALES
Raz(i) es la cabeza de la lista de los hijos
deli nodo i Raz(i)
Hijos del nodo i
1

Raz(1)

2, 3

Raz(2)

4, 5

Raz(3)

9, 10

Raz(4) = Nulo

No tiene

Raz(5)

6, 7, 8

Raz(6) = Nulo

No tiene

Raz(7) = Nulo

No tiene

Raz(8) = Nulo

No tiene

Raz(9) = Nulo

No tiene

10

Raz(10) = Nulo

No tiene

REPRESENTACIN EN MEMORIA DE
RBOLES GENERALES
La accin recorre todo el vector RAZ, aunque
alguna raz sea nula, por tanto no tiene hijos. Este
recorrido resulta innecesario, y se puede solucionar
haciendo que el vector Raz sea una lista enlazada
que contenga un nodo por cada nodo del rbol que
no es hoja
RAZ
Lista de hijos
1

10

*
8

REPRESENTACIN EN MEMORIA DE
RBOLES GENERALES
Puntero al hijo de ms a la izquierda
hermano derecho (HI-HD)
Los nodos tienen dos apuntadores uno al
hijo de ms a la izquierda y el otro al
hermano derecho.

Puntero al hermano derecho


Puntero al hijo ms a la izquierda
Valor del nodo

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

REPRESENTACIN EN MEMORIA DE
RBOLES GENERALES

Representacin mediante cursores hijo ms a la


izquierda-hermano derecho
La variable CABEZA apunta a la direccin de la raz
del rbol (VALOR(i)).
HIJO(i) apunta a la posicin (NODO(HIJO(i)) donde
se encuentra la direccin del hijo de ms a la
izquierda.
SIG(i) apunta a la posicin (NODO(i)) donde se
encuentra la direccin del hermano derecho.
A

REPRESENTACIN EN MEMORIA DE
RBOLES GENERALES
Representacin mediante cursores hijo ms a la
izquierda-hermano derecho

VALOR
SIG
F

HIJO
*

CABEZA
5

NODO
1
2

Mediante hijo ms a la izquierda-hermano derecho


RAIZ
variable global apunta a la raz del rbol
VALOR(i) contiene el valor del nodo con direccin i
HI(i)
contiene la direccin del hijo ms a la
izquierda del nodo i
HD(i)
contiene la direccin del hermano derecho
HI
VALOR
del nodo i
1 HD0
F
0
2

RAIZ
5

RECORRIDO CON LOS


ARBOLES
Recorrido Preorden:
Visitar la raz , descender por la izquierda, as hasta donde se pueda
continuar, moverse a la derecha y comenzar nuevamente o volver hacia
atrs hasta que se pueda mover a la derecha y continuar
J-E-A-H-T-M-V

31-22-18-23-22-19-2429-19
31

22

22

24

19
18

2
3

F
G

2
9

19

Recorrido Inorden:
En este caso se visita primero el subrbol izquierdo hasta donde se pueda,
despus se visita la raz y por ultimo el subrbol derecho movindose un nodo
a la derecha y continuar.
A-E-H-J-M-T-V

18-22-23-31-19-22-2924-19

RECORRIDO POS
ORDEN
En este caso se visita primero el subrbol
izquierdo, as hasta donde se pueda, cuando no
se puede continuar al subrbol derecho hasta
que se pueda, y por ultimo visitar la raz ,volver
hacia atrs y comenzar nuevamente.

T-J

A-H-E-M-V-

18-23-22-19-29-19-2422-31

RBOLES BINARIOS
DE BSQUEDA (ABB)

Definicin

Es una estructura sobre la que se pueden desarrollar


eficientemente las operaciones de:

Bsqueda
Insercin
Eliminacin

Definicin formal:
Para todo nodo T del rbol debe cumplirse que
todos los valores de los nodos del subrbol izquierdo
de T deben ser menores o iguales al valor del nodo
T. De forma anloga, todos los valores de los nodos
del subrbol derecho de T deben ser mayores o
iguales al valor del nodo T

Ejemplo
120

87

140

43

22

99

65

56

93

130

135

BSQUEDA 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

BSQUEDA 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

22

99

65

56

93

130

135

INSERCIN EN UN
RBOL ABB
o

Los pasos que deben realizarse para insertar un elemento


a un rbol binario de bsqueda son los siguientes:

Debe compararse la clave a insertar con la raz


del rbol.
Si es mayor, debe avanzarse hacia el subrbol
derecho. Si es menor, debe avanzarse hacia el
subrbol izquierdo.
Repetir sucesivamente el primer paso hasta que
se cumpla alguna de las siguientes condiciones:

El subrbol derecho es igual a vaco, o el subrbol


izquierdo es igual a vaco, en cuyo caso se
proceder a insertar el elemento en el lugar que le
corresponde.
La clave que quiere insertarse es igual a la raz del
rbol, en cuyo caso no se realiza la insercin.

INSERCIN EN UN
RBOL ABB
accion INSERCION (Nodo, Val)
si (Nodo <> null) entonces
si (Val < Nodo->valor) entonces
INSERCIN (Nodo->hijo_izq, Val)
sino
si (Val > Nodo->valor) entonces
INSERCIN (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

INSERCIN 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

INSERCIN EN UN
RBOL ABB
Insertar 120, 87, 43, 65, 140, 99, 130, 22, 56
120

120

87

43

87

43

65

65

140

INSERCIN EN UN
RBOL ABB
Insertar 120, 87, 43, 65, 140, 99, 130, 22, 56
120

120

140

87

99

43

65

140

87

99

43

65

130

INSERCIN EN UN
RBOL ABB 120

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


120

140

87

43

43

99

65

99

130
22

22

140

87

65

56

130

ELIMINACIN EN UN
RBOL ABB
o

Consiste en eliminar un nodo sin violar los principios que


definen un rbol binario de bsqueda. Se deben distinguir
los siguientes casos:
o
o

Si el elemento a borrar es terminal u hoja, se


procede a eliminarlo.
Si el elemento a borrar tiene un solo
descendiente, entonces tiene que sustituirse por
ese descendiente.
Si el elemento a borrar tiene los dos
descendientes, entonces se tiene que sustituir por
el nodo que se encuentra ms a la izquierda en el
subrbol derecho o por el nodo que se encuentra
ms a la derecha en el subrbol izquierdo.

Adems, antes de eliminar un nodo debe garantizarse de


que ste exista en el rbol.

ELIMINACIN 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

ELIMINACIN 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

ELIMINACIN EN UN
RBOL ABB
accion eliminarNodo (Raiz, Val)
ELIMINACION (Raiz, Val)
fin_accion
120

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

140

87

43

22

99

65
56

130

135

ELIMINACIN EN UN
RBOL ABB
Eliminar 22, 99, 87, 120, 140, 135, 56
120

87

140

43

22

99

65

56

93

130

135

ELIMINACIN EN UN
RBOL ABB
Eliminar 22, 99, 87, 120, 140, 135, 56
120

87

140

43

99
93

65

56

93

130

135

ELIMINACIN EN UN
RBOL ABB
Eliminar 22, 99, 87, 120, 140, 135, 56
120

87
65

43

93

65
56

56

140

130

135

ELIMINACIN EN UN
RBOL ABB
Eliminar 22, 99, 87, 120, 140, 135, 56
120
93

65

43

140

93

56

130

135

ELIMINACIN EN UN
RBOL ABB
Eliminar 22, 99, 87, 120, 140, 135, 56
93

65

43

140
130

135

130

56

135

ELIMINACIN EN UN
RBOL ABB
Eliminar 22, 99, 87, 120, 140, 135, 56
93

65

43

130

135

56

ELIMINACIN EN UN
RBOL ABB
Eliminar 22, 99, 87, 120, 140, 135, 56
93

65

43

56

130

Arboles AVL

Los rboles AVL surgen con la idea de


el rendimiento de los rboles ABB, al
reacomodos o balanceos despus de
o eliminar elementos.

mejorar
realizar
insertar

Definicin 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
subrboles izquierdo y derecho no debe
diferir en ms de una unidad

Definicin

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


calcula como la altura del subrbol derecho menos la
altura del subrbol izquierdo.

FE =
=H
HSD
HSISI
FE
SD -- H

Definicin

Colocar el FE a los nodos del siguiente rbol:

-1
100
1

0
47

111

0
69

Registro
registro Nodo
valor
FE

: tipoDato

: entero

izq, der : Nodo


fin_registro

{-1, 0, 1}

INSERCIN EN UN
RBOL AVL

Insercin en un rbol AVL


o

El subrbol izquierdo (SI) y el subrbol derecho (SD) del


rbol tienen la misma altura, es decir: H SD = HSI
o

Si se inserta por el SI, entonces HSI > HSD

Si se inserta por el SD, entonces HSD > HSI

El subrbol izquierdo (SI) y el subrbol derecho (SD) del


rbol tienen alturas diferentes, es decir: H SD <> HSI
o

Si la HSI > HSD

Si se inserta por el SI, entonces se rompe el equilibrio y


es necesario reestructurar.
o Si se inserta por el SD, entonces H SD = HSI, mejorando el
equilibrio del rbol.
Si la HSI < HSD
o

Si se inserta por el SI, entonces H SD = HSI, mejorando el


equilibrio del rbol.
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 rotacin, el cual se puede
realizar de 4 maneras diferentes:
o

Rotacin derecha (DD)


2 nodos

Rotacin izquierda (II)

Rotacin derecha-izquierda (DI)


3 nodos

Rotacin izquierda-derecha (ID)

Llevando a un rbol AVL


o

Rotacin derecha (DD)

2
C
NOD
O

RESULTANDO

NODO1

NOD
O

NODOder echa
NODO1izquierda
NODO1izquierdaNODO

Reestructurar un rbol AVL


o

Rotacin izquierda (II)


C
C

-2

NOD
O
B -1

NOD
O
B

RESULTANDO

NODO1
A 0

NODOizquierda
NODO1derecha

NODO1derecha

NODO

Llevando a un arbol AVL


o

Rotacin derecha-izquierda (DI)

C
NOD
O

NOD
O

C
-1
B

RESULTANDO

NODO1
0

A
NODO2

NODO1izquierda
NODO2derecha
NODO2derecha
NODO1
NODOderecha NODO2izquierda
NODO2izquierda
NODO

Llevando a un rbol AVL


o

Rotacin izquierda-derecha (ID)

NODO

-2

RESULTANDO

B 1
NODO1

NOD
O

A
0
A
NODO2

NODO1derecha

NODO2izquierda
NODO2izquierda
NODO1
NODOizquierda NODO2derecha
NODO2derechaNODO

GRAFOS
Esta formado por vrtices y aristas.
G=(V,E)
V={V V , V }
E={e e , e }
V:vrtices
e:aristas
1,

1,

GRAFOS NO DIRIGIDOS
1)e={v,w} {w,v}
Es decir es lo mismo del vrtice v al w
del vrtice w a v.
2) GRAFO DIRIGIDO
e={v,w} {w,v}
v

Grafo no dirigido
Grafo dirigido

3)Grafo no simple
Grafo no dirigido que tiene lazos y
lados paralelos.
e1
e
V
V
e5
V
3
e2
e4
e1 y e2 aristas paralelas
e5:Lazo
1

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 vrtices en los que existe una arista entre cada par de
vrtices(no hay paralelas).
GRAFO DE SIMILITUD
Son aquellos grafos de los que se pueden derivar subgrafos.

Obsrvese que el subgrafo es extrado del grafo

GRADO DE UN VERTICE:
Comprende al numero de aristas que inciden en dicho vrtice.

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 vrtice a y se llega al mismo se dice que es el
circuito de Euler.

CIRCUITO DE HAMILTON
Recorre todos los vrtices 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


Obsrvese que parte de a y recorriendo todos los vrtices llega a a.
OJO: Ud debe recorrer todos los vrtices.

MATRIZ DE ADYACENCIA Y DE INCIDENCIA


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

ALGORITMO DE PRIM

El algoritmo de Prim es un algoritmo perteneciente a la teora de los grafos para


encontrar un rbol recubridor mnimo en un grafo conexo, no dirigido y cuyas
aristas estn etiquetadas.
En otras palabras, el algoritmo encuentra un subconjunto de aristas que forman
un rbol con todos los vrtices, donde el peso total de todas las aristas en el
rbol es el mnimo posible. Si el grafo no es conexo, entonces el algoritmo
encontrar el rbol recubridor mnimo para uno de los componentes conexos
que forman dicho grafo no conexo.

Pseudo cdigo del algoritmo:


La idea bsica consiste en aadir, en cada paso, una arista de peso mnimo a
un rbol previamente construido.
Ms explcitamente:
Paso 1. Se elige un vrtice u de G y se considera el rbol S={u}
Paso 2. Se considera la arista e de mnimo peso que une un vrtice de S
y un vrtice 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 diseo de


circuitos digitales al nivel de matemtica discreta se
maneja bajo el concepto de grafos.

MAQUINA DE ESTADO FINITA (Ejemplos):

S0

S0

S1

S1

S1

S0

S0

S1

MAQUINA DE ESTADO FINITA (Ejemplo1):

Ej: Dada la tabla:


F

S\E

S0

S1

S2

S1

S2

S1

S2

S2

S3

S3

S1

S0

Dibuje el diagrama de estados para el FSA(Autmata


Finito Deterministico) para la cual los estados de
aceptacin 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
S0

b
S1

a
a

b
S3
b

S S

S2
a

Como S3 es un estado final se


dice que la cadena es
aceptada por FSA.

MAQUINA DE ESTADO FINITA (Ejemplo2):

Ejm:

Disee un autmata que detecte palabras que terminen en aba.

b
S0

a
b

a
b

ab

ab
a

a
b

MAQUINA DE ESTADO FINITA (Ejemplo3):

Ejm:

Disee un autmata que detecte palabras que terminen en baa.

a
b

a
S0

S1

S2

b
b

S3

MAQUINA DE ESTADO FINITA (Ejemplo4):

Ejm: Dibuje el diagrama de estados para


el NFA, cuya tabla de estados se
presentan a continuacin y los estados de
aceptacin son S1 y S3, determine el
lenguaje aceptado para este NFA.

Solucin:

S0

a
b

F
S\E

S0

S2

S1

S1

S1, S2

S3

S2

S3

S2, S3

S2

a
a

a
S3

S2
b

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

Conversin 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)={}


En consecuencia: F({S1,S2},a)= {} y
F({S1,S2},b)={S1,S2} U ={S1,S2}

b
S0

S1

S2

Conversin de un NFA a un DFA


(Ejemplo 1)

Para pasar este NFA a un DFA se hace


la matriz de transicin.
S/E

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

{S1
}

{S1,
S2}

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

bbb
S\E

F
a

S0

S0, S1 S2

S1

S0

S1

S2

S1

S0,
S1

b
S0

S1

a
b
b

b
a

S2

Conversin de un NFA a un DFA


(Ejemplo
2):a
S\E
b

b
{S0
}

{S1
}

{S0}

{S0, S1}

{S2}

{S1}

{S0}

{S1}

{S2}

{S1}

{S0, S1}

{S0,
S1}

{S0, S1}

{S1, S2}

{S1,
S22}
{S

{S0, S1}

{S0, S1}

b
a

{S0,
S1}

b
{S1,
S2}

a
a,
b

ELEMENTOS BASICOS DE EXPRESIONES


REGULARES

CERRADURA DE KLEENE:
Se representa con el smbolo *. La cadena se forma al realizar 0
mas repeticiones, en concatenacin de los smbolos o
caracteres que enmarcan.
Ejm:
b* = { ,b , bb, bbb, bbbb, , etc.}

CERRADURA POSITIVA:
Se representa con el smbolo +. La cadena se forma al realizar
por lo menos 1 mas repeticiones en concatenacin de los
smbolos o caracteres que enmarcan.
Ejm:
Lu+ = {lu, luu, luuu, luuuu, , etc.}

APARICION:
Se representa con el smbolo ?. Indica si el carcter que
lo procede puede aparecer o no dentro de una cadena.
Ejm:
(Inter)? milan = {Intermilan, milan}

ALTERNATIVA:
Se representa con el smbolo /. Indica que puede existir
alguna alternativa dentro de los smbolos o caracteres que
contiene una expresin.
Ejm:
(d/s) ueo= {dueo, sueo}

AGRUPACION:
Se utiliza los parntesis () 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 smbolos relacionados entre si utilizando
uno de ellos.
Ejm:
[A - Z] = {A, B, C, Y, M, .. }
[0 - 9] = digito

GRAMATICA DE ESTRUCTURA DE
FRASE

Una gramatica de estructura de frase o simplemente gramtica G se define


como:

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


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

ii) Vt: es un conjunto finito de smbolos terminales de V, que


no pueden sustituirse por otros smbolos.

iii) S: Es un smbolo especial de Vn que se denomina como


el smbolo de inicio, a partir del cual siempre se empieza a
construir palabras.

iv) P: Es el conjunto de reglas de produccin (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 combinacin de smbolos no
terminales y terminales.

Las reglas de produccion se escriben por ejemplo:


SaAB
, A Bba (que quiere decir, S deriva en aAB)
B bB
, B C

FORMA DE BACKUS_NAUR

Hay otra notacin que se denomina forma de BACKUS NAUR,


que algunas veces se usa para describir las producciones de
una gramtica libre de contexto (tipo 2) especficamente.

i) ::= se usa en lugar de

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

iii) Toda la produccin con el mismo miembro izquierdo no


terminal se combinan en una proposicin con todos los
miembros derechos enumerados a la derecha de ::=
separadas por barra verticales.

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

GRAMATICAS INDEPENDIENTES
DEL CONTEXTO
En este tipo de gramtica se puede reemplazar un no terminal
por otra derivacin ya sea con smbolos no terminales o
terminales.
En la gramtica 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 gramtica dependiente del contexto Ud. Puede reemplazar B
por
esta derivacin siempre y cuando este rodeado por a y b.
Por Ejm:
AaCb ,
A abb
Es una gramtica independiente del contexto. Ud. Puede
reemplazar por otra derivacin no importando las restricciones.
Por Ejm(1):
A B ABC
B C A CC
C a A aa

DERIVACION
Derivar es desarrollar la gramtica
G={(S,A,B),(a,b),(S,P)}
donde p es el conjunto de producciones SAB, SAA
,AaB,A ab,Bb}
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


produccin:
{S 11S, S 0}
SOLUCION
S 0 S 11S 110 tambin
S 11S 1111S 11110 etctera
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 ms a la izquierda se sustituye por a)
aabbaS (la A ms 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 ms a la derecha se sustituye por SbA)
aSbbaa (la A ms a la derecha se sustituye por ba)
aabbaa (S ma a la derecha se sustituye por a)

ANALISIS GRAMATICAL
DE ARRIBA HACIA
ABAJO

Determine el anlisis gramatical de arriba hacia abajo p


si la cadena abab pertenece a la gramtica; se conoce:
Si G={(S,A,B),(a,b),S,P}, y P consiste en las produccion
{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 anlisis gramatical de arriba hacia abajo p


si la cadena abab pertenece a la gramtica; se conoce
Si G={(S,A,B),(a,b),S,P}, y P consiste en las produccion
{S AB, AB BA , A aA , B Bb , A a, B b}

Entonces si derivamos de abajo hacia arriba , esto es pa


Cadena:
abab aBab aBAb aABb ABb AB
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

EE+T
E T

T T*F

T F
F id

Id a|b|c

T
F

id

Id

id
c

DERIVACION POR LA DERECHA

A Bzw0 : w0 es un no terminal, usted debe derivar a partir de W


que esta mas a la derecha.

EE+T
E T

T T*F
T F

F id

Id a|b|c

id

Id

id

T
*

Ejemplo:
Crear las reglas de
produccin que
reconozca: double a;
Solucin:
<VAR><TIPO> <id>;
<tipo> double
<id> a

<VAR>

<TIPO>

double

<id>

Ejemplo:

<var>
<tipo>

Crear las reglas de


produccin que reconozca:
int a,b,c;
<var><tipo><vars>;
<vars><unaV>
<vars><unaV>,<vars>
<unaV> id
<tipo> int
<tipo> double
<id> a|b|c

<vars>

<int> <unaV> ,<vars>


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

id

id
c

TIPOS DE GRAMATICA

Las gramticas se clasifican segn los tipos de produccin que se le permiten.


La siguiente clasificacin de gramticas se debe a NOAM CHOMSKY.
-Una gramtica es de tipo 0 si no tiene restricciones en las
producciones.
Ejemplo : S aAB, AB a , A b, B AB
-Una gramtica G es de tipo 1 si cualquier produccin es de la forma
donde | | <=| | (Las || indican cardinalidad) , o de la forma
)
es cadena vaca)
Ejemplo: S aAB, AB bB, B b, A aB
-Una gramtica G es de tipo 2 si cualquier produccin es de la forma A
donde
el miembro izquierdo A es un no terminal.
Ejemplo: S aA, A aAB, B b, A a
- Una gramtica G es de tipo 3 si toda produccin es de la forma A a o
AaB, 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(Observacin)

Las gramticas constituyen una jerarqua, toda gramtica toda


gramtica tipo 3 es de tipo 2, toda gramtica de tipo 2 es de tipo
1 y toda gramtica tipo 1 es de tipo 0.
A) Una gramtica es sensible al contexto si las producciones son
de la forma
A
B) Una gramtica es libre de contexto si las producciones son de
la forma A
La expresin libre del contexto proviene del hecho de que es
posible sustituir la variable A por sin tomar en cuenta donde
aparece A.
C) Una gramtica es regular si las producciones son de la forma:
Aa, A a B, S
Observacin:
Una gramtica libre del contexto es lo mismo que una
gramtica tipo 2, una gramtica regular es similar al tipo 3.

AUTOMATAS Y GRAMATICAS

Decimos que una gramtica G es equivalente a un automata


M(GM) si el lenguaje reconocido por el automata es igual al
lenguaje generado por la gramtica, es decir si L(G)=L(M)

Ejemplo
Sea la gramtica G con V={a,b,c,d}, ={a,b}, variables={S,A},
el smbolo inicial es S y la regla de produccin son:
S aS/aA
AbA/b
a
b
M:
S
A
a
b Z

Observe que G y M reconocen a+ b+

Ejemplo

Convertir la gramtica regular a un autmata finito.


SaA
Solucin

SbA

AaB
AbB
Aa
BaA
BbA

a
a
a

aB

A
b

Ejemplo

Dado el autmata finito, exprese


las reglas de la gramtica.
a

q0

q1
b

a
a,b

qq2
2

q3
a

Solucin:
Q0 aQ1
Q0 bQ0

Q0b
Q0a

Q1aQ2
Q1bQ0

Q1a
Q1b

Q2aQ3
Q2bQ0

Q2b

Q3aQ3
Q3bQ3

Q0,Q1,Q2 ESTADOS

FINALES

Ejemplo

Sea una gramtica 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
dig dig frac
dig dig . ent
dig dig . dig ent
dig dig . dig dig
2 dig . dig dig
* 2 1 . 0 7
Entonces:
n0 * 2 1 . 0 7 L(G)

Ejemplo:

Sea una gramtica G = (ST,SN,n0,R), donde:


ST= {Juan, Ana, corre, come, salta, rpido, lento}
SN= {oracin, sujeto, predicado, verbo, adverbio}
n0= oracin
r1: oracin sujeto predicado
r2: predicado verbo adverbio
r3: sujeto
Juan
r4: sujeto
Ana
r5: verbo
corre
r6: verbo
come
r7: verbo
salta
r8: adverbio rpido
r9: adverbio lento

Ejemplo:

Ejemplo de una cadena:


Soporta esta gramtica Ana corre rapido?
oracin sujeto predicado
Ana predicado
Ana verbo adverbio
Ana corre adverbio
Ana corre rpido
Entonces:
n0 * Ana corre rpido,
Ana corre rpido L(G)

Ambigedad en GLC

Una GLC es ambigua si existe una cadena w L(G) que tiene


ms de una derivacin por la izquierda o ms de una derivacin
por la derecha o si tiene dos o ms rboles de derivacin. En
caso de que toda cadena w L(G) tenga un nico rbol de
derivacin, la gramtica es no ambigua.
Ejemplo: la gramtica S aS | Sa | a es ambigua porque aa tiene
dos derivaciones por la izquierda

S aSS
aa S Sa aa

S
a

Esta gramtica genera el lenguaje a+ que tambin es el lenguaje


193
generado por la gramtica no ambigua
S aS | a.

Otro ejemplo:

a gramtica para expresiones aritmticas sobre las


variables x y y:
E E + E
E E E
E x
E y
es ambigua porque tiene dos rboles de derivacin:
E
E

E
E

y
194

MAQUINA DE TURIN

Estos autmatas detectan cadena de caracteres


escribindolos en una cinta. Esta compuesto por:
Q: Estado de la unidad de control .
Alfabetos: Smbolos de entrada que es el alfabeto de
la cinta.
Funcin de Transicin:
Donde:
q0 :
Estado inicial de la unidad de control que
posee la maquina de Turn
B: espacios en blanco(alfabeto de la cinta)

F: Conjunto de estados finales.

MAQUINA DE TURIN(Ejemplo 1):

Ejm: Disee una maquina que detecte cadenas de unos y ceros.


Solucin:

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 q 0 que es el vacio.

(q0,
(q1,
(q2,
(q1,

) (q1, ,D)
1) (q2, 1,D)
0) (q1, 0,D)
B) (q3, B,I)

MAQUINA DE TURIN(Ejemplo 2):

Ejm: Disee el algoritmo de la U. C. que detecte.

/ * A Q U I * / B

Solucin:

(q0, ) (q1, ,D)


(q1, /) (q2, /,D)

(q3, *) (q4, *,D)


(q4, /) (q5, /,D)

(q2, *) (q3, *,D)


(q3, C) (q3, C,D)

(q5, B) (q6, B,I)

MAQUINA DE TURIN(Ejemplo 3):

Ejm: Disee el algoritmo que detecte que una cadena siempre


comienza con un carcter luego del carcter puede venir un
numero o carcter.

Solucin:

(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
autmata capaz de reconocer los lenguajes libres de contexto,
o de tipo 2. Los autmatas de pila se pueden representar como
una maquina de Turng, 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 definicin, 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 funcin de ei, qj(el estado en que se encuentra la
cinta), y Z(el valor de la pila), el control pasa a otro estado q 1, 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 vaca 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
sptupla 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 funcin de transicin.
q0 es el estado inicial y cumple
que q0 Q.
Z0 es el smbolo 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}


Solucin:
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) = (q1,AZ)
(q1,a,A) = (q0,AA)
(q0,b,A) = (q1,)
(q1,b,A) = (q1,)

q0

b
a

q1

q2

(q1,,Z) = (q2,Z)
Sea w= aabb veamos el procedimiento de al cadena.
(q0, aabb, Z) (q1, abb, AZ)(q0, bb, AAZ)
(q1, b, AZ)(q1, , Z)

(q2, Z)
La ltima es una configuracin de aceptacin 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
configuracin de aceptacin, por tanto w no
es aceptada.