Matematica Discreta
Matematica Discreta
Proposiciones equivalentes ( )
p q : Dos proposiciones p y q son equivalentes, si la proposición (p q) es una tautología.
Leyes lógicas
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.
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.
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:
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
j A r diádico
j R f m poliádico
Ejercicios:
1)Demuestre que T ⋀ S puede deducirse de las premisas
p -> q , q -> ~r , r , p ⋁ (T ⋀ S)
p->q ⋀ p->q
2) Demuestre que dado p ⋀ q , p -> r ⋀ q , r -> s ⋁ T ,
~s puede deducirse T:
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
Cuantificador Existencial:
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:
Ejemplo:
Si m y n son números enteros impares entonces su producto
es impar.
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)
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
(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).
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)
Para: n=1:
12 + 41*1 + 41 es primo
Para: n=2:
4 + 82 + 41 = 127 también es primo
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
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
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
Ejm:
Al margen de utilizar el algebra booleana para reducir circuitos
computacionales usted puede utilizar los mapas de karnaugh.
Solución:
-> f =yz’+xy+
Simplificar:
F(x,y,z) = ∑(0,2,4,5,6)
-> 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}
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
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
b) Si A y B no son disjuntos:
|A u B| = |A| + |B| - |A n B|
Ejemplo: Dado el cuadro siguiente:
a) |F u E| = |F| + |E| - |F n E|
n! P(n,r)
C(n,r) = ------------ = -------------
(n-r)!r! r!
B C
A C B
D D
C D
Usando formula: 4!
C(n,r) = ------------ = 6
(4-2)!2!
EJERCICIOS
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!
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
Demostración:
Para: n=1:
=1 1 = 1(1+1) = 1
2
Para: n=k:
= +
= k(k+1) + k + 1 -> = (k+1)(k+2)
2 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
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:
Ejemplo:
a)Relación Reflexiva
b) Relación Simétrica
c) Relación Transitiva
Ejemplo:
Sea A ={1,2,3}
R1={(1,1)(2,2)(3,3)(1,2)}
Es reflexiva
R2={(1,1),(2,2),(1,2)}
Ejemplo:
Si A={1,2,3}
R1={(1,2),(2,1),(1,3),(3,1),(3,2)} es simétrica
Relación Transitiva:
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:
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)!
10!
P(10,5) = ------------
(10 - 5)!
Su equivalente en SQL:
Select T1.A,T1.C from T1
Select (σ):
1)T4=T3*T1
2)T5=T4*T2
3)T6= Π(T5)
ENTEROS Y DIVISION
Definicion
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
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
Teorema 1:
Suponga que el polinomio característico
Δ(x)=x2-5x-t de la relación de recurrencia
Sn=5Sn-1 +tSn-2
Sn=C1(1+√5)/2+C2(1-√5)/2
Δ(x)=x3-11x2+39x-45=(x-3)2(x-5)
Sn=C1(3)n+C2n(3)n+C3(5)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.
Recorre todos los vértices sin repetirlos excepto el Vi y Vf que son el mismo.
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
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 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 (α)
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
Registro Nodo
Inicio
T Valor
Nodo *sig
FinRegistro
2 Raíz(2) 4, 5 2 3
3 Raíz(3) 9, 10 4 5 9
10
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.
(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:
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
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:
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:
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
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
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
2 C
C NODO
NODO
1 B
RESULTANDO
B
NODO1
0 A
A
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
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
0 1
S0 S0 S1
S1 S1 S0
0 0
1
S0 S1
1
MAQUINA DE ESTADO FINITA (Ejemplo1):
F
S\E a b
S0 S1 S2
S1 S2 S1
S2 S2 S3
S3 S1 S0
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
a
b
MAQUINA DE ESTADO FINITA (Ejemplo2):
Ejm:
a
b a
S0 a a b ab a aba
b b
MAQUINA DE ESTADO FINITA (Ejemplo3):
Ejm:
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
F(S1,a)={Ø}
F(S2,b)={Ø}
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}
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
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:
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:
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:
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:
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.
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 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.
Por Ejm:
AaCb , 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 ABC
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 → 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}
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
Id id c
a b
Ejemplo:
<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 Aa 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(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:
Aa, 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
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 AbA/b
a b
M:
S a A b Z
SbA
AaB b a
AbB
Aa S a A a B
BaA
BbA b
a
Z
Ejemplo
Dado el autómata finito, exprese las reglas
de la gramática.
a Solución:
b
Q0 aQ1 Q0b
q0 Q0 bQ0 Q0a
q1 Q1aQ2 Q1a
b Q1bQ0 Q1b
Q2aQ3 Q2b
a Q2bQ0
Q3aQ3
a,b b Q3bQ3
qq22
q3
Q0,Q1,Q2 ESTADOS FINALES
a
Ejemplo
a S a
S
a a
EEE
Ex
Ey
E E E + E
E + E x x E * E
x y y x
225
MAQUINA DE TURIN
Función de Transición:
Donde:
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.
/ * A Q U I * / B
Solución:
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:
En cualquier caso, se vacía la pila (es decir extrae todas las Z)el automata se para.
AUTOMATA DE PILA
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)