Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
1
CONTENIDO
Funciones: propiedades, comparacin del
tamao de conjuntos, cantidad de
funciones [H2.3], funciones de cifrados,
funciones hash [H2.3], funciones
recursivas [H3.2]. Lgica como modelo de
computacin [G1.5]. Lenguajes Formales:
caractersticas, descripciones,
operaciones, usos [G8.4]. Conjuntos
contables [H2.4]. Diagonalizacin [H2.4].
Lmites de la computabilidad [H2.4.3].
bibliografa
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
2
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
3
o lo que
es lo mismo
x,yA f(x) = f(y) x=y
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
4
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
5
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
6
Ejemplos:
La funcin f : R Z definida como
f(x) = x+1
es sobreyectiva porque para cualquier
y Z existe un nmero en R, y 1 tal
que f(y 1) = y.
Pero f no es inyectiva porque, por
ejemplo, f(2.5) = f(2.6).
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
7
Ejemplos:
La funcin f : Z Z definida como
f(x) = x+1
es sobreyectiva porque para cualquier
y Z existe un nmero en Z, y 1 tal
que f(y 1) = y.
Adems f es inyectiva porque, x,yA
xy f(x) f(y).
Concluimos que f es biyectiva.
La inversa de f, f-1: Z Z se define
como f-1 (y) = y-1.
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
8
Ejercicios
Cules de las siguientes funciones son
inyectivas, sobreyectivas o biyectivas
(si es biyectiva encontrar la inversa):
1. f:N3 N3 definida como f(x)=2x mod 3.
2. Sea ={a,b}
f:* N definida como f(w)=|w|.
f:* Z definida como f(w)=|w|.
f:* * definida como f(w)=aw
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
9
Lema:
Sea n > 1 y sea f : Nn Nn definida
como sigue, donde a y b son enteros:
f(x) = (ax + b) mod n.
Entonces f es una biyeccin si y slo si
el mcd(a,n)=1. Cuando esto ocurre, la
funcin inversa f-1 se define como
f-1 (x)=(kx+c) mod n
donde c es un entero tal que f(c)=0 y k
es un entero tal que 1 = ak + nm para
algn entero m.
Si m palomas vuelan a
un palomar que
contiene n celdas
introduccin donde m> n entonces
a los modelos
de computacin una celda tendr dos
10
o ms palomas
LENGUAJES
FORMALES
Y
AUTMATAS
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
11
Ejemplos:
1. El juego de la silla, cuando juegan m
personas y quedan m-1 sillas.
2. En un grupo de 8 personas dos
deben haber nacido el mismo da de
la semana.
3. En un conjunto de n+1 enteros
existen (al menos) dos que tendrn el
mismo resto al ser divididos por n.
funciones de cifrado
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
12
funciones de cifrado
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
13
Preguntas:
Es f una biyeccin?
Cmo decodificamos el mensaje?
f1(x) = (x 5) mod 27.
Sabemos f(26)=4
f1(4) = (4 5) mod 27 =(1) mod 27 =26
fuente: wikipedia
Fialka (M-125)
funciones de cifrado
funciones de cifrado
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
16
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
17
Lema
Sea n > 1 y sea f : Nn Nn definida
como sigue donde a y b son enteros
f(x) = (ax + b) mod n.
Entonces f no tiene puntos fijos si y slo
si mcd(a 1, n) no divide a b.
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
18
Ejemplo
La funcin de cifrado
f(x)=(4x + 5) mod 27
no tiene puntos fijos porque:
mcd(4-1,27)=mcd(3,27)=3, y 3 no divide
a5
Por otra parte, la funcin de cifrado
f(x)=(4x + 6) mod 27
tiene puntos fijos. Cules son?
funciones hash
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
19
funciones hash
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
20
Ejemplo:
Mapear las abreviaturas de los meses
del ao utilizando la funcin de hash f:
S {0,1,,11} de la siguiente
manera.
f(XYZ) = (ord(X)+ord(Y)+ord(Z)) mod 12
donde ord(X) el cdigo ASCII de X.
funciones hash
LENGUAJES
FORMALES
Y
AUTMATAS
Colisiones:
introduccin
a los modelos
de computacin
21
funciones hash
Preguntas:
Es posible encontrar una funcin inyectiva de
tal manera que no existan colisiones?
introduccin
a los modelos Si incrementamos el tamao de la tabla,
de computacin
22
sera ms simple encontrar una funcin
inyectiva?
Si el tamao de la tabla es incrementado,
podemos dispersar los elementos de tal
manera que las colisiones puedan ser
resueltas en menor tiempo?
LENGUAJES
FORMALES
Y
AUTMATAS
funciones hash
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
23
Si queremos
encontrar una
biyeccin
Para n = 12 y g = 5
necesitamos
k=7
mcd(g,n)=1
0, 5, 10, 3, 8, 1, 6, 11, 4, 9, 2, 7. (1g<n)
funciones hash
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
24
introduccin
a los modelos
de computacin
25
introduccin
a los modelos
de computacin
26
introduccin
a los modelos
de computacin
27
introduccin
a los modelos
de computacin
28
introduccin
a los modelos
de computacin
29
introduccin
a los modelos
de computacin
30
Notacin
L = [] representa la lista vaca
L = x :: T representa la lista L con
cabeza (primer elemento) x y cola T.
Definicin recursiva de longitud
longitud ([] ) = 0
longitud (a::T) = 1 + longitud (T) .
introduccin
a los modelos
de computacin
31
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
32
Un alfabeto (o vocabulario) es un
conjunto finito no vaco de smbolos.
Una cadena sobre es una secuencia
finita de smbolos de .
* es el conjunto de todas las cadenas
sobre .
Un lenguajes sobre es un
subconjunto de *.
Una gramtica para un lenguaje puede
ser descripta definiendo su proceso
generativo.
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
33
derivaciones
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
34
derivaciones
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
35
lenguaje formal
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
36
ejemplo de derivacin
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
37
ejemplo de derivacin
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
38
ejemplo de derivacin
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
39
clases de gramticas
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
40
clases de gramticas
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
41
Ejercicios
Determinar qu lenguaje genera cada
una de las siguientes gramticas
G=(VN,VT, S, P) . Determinar su tipo.
1)
VN = {S},
VT =
P: S
clases de gramticas
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
42
2)
VN = {S}
VT =
P=
3)
VN = {S}
VT = {a}
P : S a | aS
clases de gramticas
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
43
4)
VN = {S,A},
VT = {a}
P : S | aA
A aS
5)
VN = {S},
VT = {a,b}
P : S | SS | aSb | bSa
clases de gramticas
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
44
6)
VN = {S},
VT = {a,b}
P : S aS
aS bbb
7)
VN = {S},
VT = {a,b}
P : S aS
aS b
gramticas y lenguajes
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
45
Noam Chomsky
(1928-)
Jerarqua de Chomsky
dispositivos computacionales
dispositivos computacionales
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
47
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
48
operaciones
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
49
operaciones
Ejercicios
Sea = {a,b} y los siguientes lenguajes
definidos sobre
introduccin
n n | n > 0} y sea L2 = {bn | n > 0}
a los modelos Sea L1 = {a b
de computacin
50
Identificar:
L1 L2
L1 L2
L1 y L2
L1 L2
L1* y L2*
LENGUAJES
FORMALES
Y
AUTMATAS
gramticas regulares
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
51
gramticas regulares
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
52
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
53
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
54
conjuntos contables
(se ver al final del curso)
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
55
conjuntos contables
(se ver al final del curso)
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
56
conjuntos contables
(se ver al final del curso)
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
57
conjuntos contables
(se ver al final del curso)
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
58
conjuntos contables
(se ver al final del curso)
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
59
conjuntos contables
(se ver al final del curso)
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
60
conjuntos contables
(se ver al final del curso)
LENGUAJES
FORMALES
Y
AUTMATAS
diagonalizacin
(se ver al final del curso)
LENGUAJES
FORMALES
Y
AUTMATAS
de computacin
62
diagonalizacin
(se ver al final del curso)
x si ann = y
an =
y si ann y
conjuntos incontables
(se ver al final del curso)
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
64
Ejercicio
Sea (0, 1) = {x R | 0 < x < 1} y sea R+
el conjunto de reales positivos.
Mostrar que la funcin f : (0, 1) R+
definida como
x
f(x) =
1 x
es una biyeccin.
conjuntos incontables
(se ver al final del curso)
Lema (Hein, pgina 120)
Los nmeros reales son incontables
Prueba
Es suficiente probar que U = (0,1) es incontable.
introduccin
Asumamos por el absurdo que U es contable.
a los modelos
de computacin
Entonces podemos listar todos los nmeros entre 0
65
y 1 como una secuencia contable r0,r1,r 2, rn,
Cada nmero real entre 0 y 1 puede ser
representado como un infinito decimal. Entonces
para cada n existe una representacin
rn = 0.dn0dn1. . . dnn. . . , donde cada dni es un dgito
decimal. Dado que rn puede representarse por la
secuencia (0.dn0dn1. . . dnn. . . ), entonces, por
diagonalizacin podemos concluir que existe un
decimal infinito que no est en la lista (ver Hein).
Concluimos que U es incontable y por lo tanto R es
incontable.
LENGUAJES
FORMALES
Y
AUTMATAS
conjuntos incontables
(se ver al final del curso)
lmites de la computabilidad
(se ver al final del curso)
lmites de la computabilidad
(se ver al final del curso)
LENGUAJES
FORMALES
Y
AUTMATAS
introduccin
a los modelos
de computacin
68
lmites de la computabilidad
(se ver al final del curso)
Ejemplos (cont.)
No es posible computar cualquier real hasta
un nmero arbitrario de cifras decimales. La
razn es que existe un nmero contable de
introduccin
a los modelos
programas y un nmero incontable de
de computacin
69
reales.
Si extraemos los reales computables de R,
el conjunto restante sigue siendo incontable.
Por qu?
Los nmeros racionales pueden ser
computados.
Algunos nmeros irracionales pueden ser
computados (ejemplo: ).
LENGUAJES
FORMALES
Y
AUTMATAS