t04.2013.modelos de computacion-color
TRANSCRIPT
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 1/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
4. introducción a los modelos de computación
CONTENIDO
Funciones: propiedades, comparación deltamaño de conjuntos, cantidad de
funciones [H2.3], funciones de cifrados,
funciones hash [H2.3], funcionesrecursivas [H3.2]. Lógica como modelo de
computación [G1.5]. Lenguajes Formales:
características, descripciones,operaciones, usos [G8.4]. Conjuntos
contables [H2.4]. Diagonalización [H2.4].
Límites de la computabilidad [H2.4.3].
11
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 2/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
bibliografía
GERSTING, JUDITH L. “Mathematical
Structures for Computer Science: A
Modern Approach to Discrete
Mathematics”. W H Freeman & Co,
2006.
HEIN, JAMES. Discrete Structures,
Logic and Computability. Jones andBartlett Publishers. 1995 - 2001
22
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 3/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
propiedades de funciones (repaso)
Sea f: A→B una función. Diremos que f
es inyectiva si y sólo si
∀x,y∈ A x≠y → f(x) ≠ f(y).
Es decir, a elementos distintos del
conjunto de partida le correspondenelementos distintos del codominio,
o lo que
es lo mismo∀x,y∈ A f(x) = f(y) → x=y
33
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 4/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
propiedades de funciones (repaso)
Sea f: A→B una función. Diremos que f
es sobreyectiva si y sólo si
∀y∈B ∃x ∈ A : f(x) = y.
Es decir, la imagen de f es igual al
codominio de la función.
44
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 5/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
propiedades de funciones (repaso)
Una función es biyectiva si es inyectiva
y sobreyectiva a la vez.
Si f es biyectiva, entonces su inversa f -1
es también una función y además
biyectiva.
55
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 6/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
propiedades de funciones (repaso)
Ejemplos:
La función f : R→
Z definida comof ( x ) = ┌ x +1 ┐
es sobreyectiva porque para cualquier
y ∈ Z existe un número en R , y – 1 tal
que f (y – 1) = y .
Pero f no es inyectiva porque, porejemplo, f (2.5) = f (2.6).
66
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 7/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
propiedades de funciones (repaso)
Ejemplos:La función f : Z → Z definida como
f ( x ) = x +1
es sobreyectiva porque para cualquier
y ∈ Z existe un número en Z , y – 1 talque f (y – 1) = y .
Además f es inyectiva porque, ∀x,y∈ A
x≠y → 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.
77
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 8/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
propiedades de funciones (repaso)
Ejercicios
Cuáles de las siguientes funciones soninyectivas, sobreyectivas o biyectivas
(si es biyectiva encontrar la inversa):
1. f :N 3 →N 3 definida como f ( x )=2 x 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
88
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 9/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
la función modulo e inversas
Lema:Sea n > 1 y sea f : N n→ N n definida
como sigue, donde a y b son enteros:
f ( x ) = (ax + b) mod n.
Entonces f es una biyección si y sólo siel mcd(a,n)=1. Cuando esto ocurre, lafunción inversa f -1 se define como
f -1
(x)=(kx+c) mod ndonde c es un entero tal que f(c)=0 y k
es un entero tal que 1 = ak + nm para
algún entero m.
99
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 10/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
principio del palomar
Si m palomas vuelan a
un palomar que
contiene n celdasdonde m> n entonces
una celda tendrá dos
o más palomas
Si A y B son conjuntos finitos con |A| > |B|,
entonces toda función de A a B mapeaal menos dos elementos de A a un únicoelemento de B. Esto es lo mismo quedecir que no se puede definir una
función inyectiva de A a B.
1010
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 11/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
principio del palomar
Ejemplos:
1.
El juego de la silla, cuando juegan mpersonas y quedan m-1 sillas.
2. En un grupo de 8 personas dos
deben haber nacido el mismo día dela semana.
3. En un conjunto de n+1 enteros
existen (al menos) dos que tendrán el
mismo resto al ser divididos por n.
1111
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 12/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
funciones de cifrado
Función de cifrado para traducir letras de
un alfabeto, donde cada letra se
codifica con un número del 0 al 26:
f(x)=(x+5) mod 27
La función f “corre” la letra 5 posiciones.Ejemplo:
Codificamos la palabra hola como mtpf
1212
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 13/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
funciones de cifrado
Preguntas:
¿Es f una biyección?
¿Cómo decodificamos el mensaje?
f −1( x ) = ( x – 5) mod 27.
Sabemos f(26)=4
f −1(4) = (4 – 5) mod 27 =(–1) mod 27 =26
1313
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 14/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
criptoanálisis y funciones de cifrado
Criptoanálisis (del griego
kryptós, "escondido" y
analýein, "desatar") es elestudio de los métodos
para obtener el sentido de
una información cifrada,sin acceso a la información
secreta requerida para
obtener este sentidonormalmente.
Fialka (M-125)fuente: wikipedia
1414
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 15/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
funciones de cifrado
La función f(x)=(x+5) mod 27 es un ejemplo
de función de cifrado aditiva.
Las funciones de cifrado aditivas sonmonoalfabética: un carácter del alfabeto es
siempre reemplazado por un mismo carácter
del alfabeto.Dado mtpf podemos deducir fácilmente quecodifica la palabra hola.
Otra funciones de cifrado monoalfabéticas sonlas funciones de cifrado multiplicativas.
Ejemplo: g(x) = 3x mod 27
¿Es g una biyección?
1515
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 16/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
funciones de cifrado
Otro ejemplo de funciones de cifrado
monoalfabéticas son las funciones de
cifrado afines
Utilizan un par de claves: (M,A)
Ejemplo:clave (4,5)
f(x) =(4x + 5) mod 27.
Pregunta:
¿Cómo desciframos los mensajes?
1616
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 17/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
funciones de cifrado y puntos fijos
Lema
Sea n > 1 y sea f : N n → N
ndefinida
como sigue donde a y b son enteros
f ( x ) = (ax + b) mod n.
Entonces f no tiene puntos fijos si y sólosi mcd(a – 1, n) no divide a b.
1717
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 18/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
funciones de cifrado y puntos fijos
Ejemplo
La función de cifrado
f(x)=(4x + 5) mod 27
no tiene puntos fijos porque:
mcd(4-1,27)=mcd(3,27)=3, y 3 no dividea 5
Por otra parte, la función de cifradof(x)=(4x + 6) mod 27
tiene puntos fijos. ¿Cuáles son?
1818
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 19/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
funciones hash
Una función hash es una función
que mapea un conjunto S declaves a un conjunto finito de
índices 0, 1, . . . , n – 1 de una
tabla.
Una tabla cuya información seencuentra utilizando una función
de hash se denomina tabla hash.
1919
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 20/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
funciones hash
Ejemplo:
Mapear las abreviaturas de los meses
del año utilizando la función 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 código ASCII de X.
2020
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 21/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
funciones hash
Colisiones:
¿Cómo asignar un nuevo valor?
Sondeo Lineal:Buscar hasta encontrar un espacio libre:
(k + 1) mod n, (k + 2) mod n, …, (k + n) mod n.
2121
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 22/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
funciones hash
Preguntas:
¿Es posible encontrar una función inyectiva de
tal manera que no existan colisiones?
¿Si incrementamos el tamaño de la tabla,
sería más simple encontrar una función
inyectiva?
¿Si el tamaño de la tabla es incrementado,
podemos dispersar los elementos de tal
manera que las colisiones puedan serresueltas en menor tiempo?
2222
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 23/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
funciones hash
Sondeo lineal utilizando huecos (gaps)Buscar hasta encontrar un espacio libre:
(k + g ) mod n,(k + 2g ) mod n,...,(k + ng ) mod n.
Ejemplos:
Para n = 12 y g = 4k = 7:
11, 3, 7, 11, 3, 7, 11, 3, 7, 11, 3, 7.
Para n = 12 y g = 5
k=7
0, 5, 10, 3, 8, 1, 6, 11, 4, 9, 2, 7.
Si queremosencontrar unabiyecciónnecesitamosmcd(g,n)=1(1≤g<n)
2323
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 24/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
funciones hash
Aplicaciones de las funciones hash:
Acceso rápido a archivos.
Identificar archivos (por ejemplo, usado
en sistemas P2P).
Corroborar que un archivo no hayacambiado (test de integridad).
2424
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 25/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
funciones recursivas sobre naturales(tema a verse en clase práctica)
Sea suc la función sucesor
suc es tal que suc(x) = x+1.
Definición recursiva de suma
Podemos definir la función sumarecursivamente como sigue:
suma(m,0) = m
suma (m, n+1) = suc (suma (m, n))
2525
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 26/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
funciones recursivas sobre naturales(tema a verse en clase práctica)
Definición recursiva de producto:
prod(n,0) = 0
prod(m, n+1) = suma (m,prod(m, n))
Definición recursiva de exponenciación:
exp(m,0) = 1
exp(m, n+1) = prod(m,exp(m, n))
Nota: usaremos +,* y ↑ para denotar suma,producto y exponenciación,
respectivamente.
2626
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 27/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
funciones recursivas sobre naturales(tema a verse en clase práctica)
Suma de números impares
f (n)=1 + 3 + ··· + (2n + 1)
=(1 + 3 + ··· + (2n − 1)) + (2n + 1)
=(1 + 3 + ··· + 2(n − 1) + 1) + (2n +1)
= f (n − 1) + 2n + 1.
Definición recursiva de f
f (0) = 1,f (n + 1) = f (n) + 2n + 3.
2727
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 28/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
funciones recursivas sobre naturales(tema a verse en clase práctica)
Definición recursiva de fibonacci
fib(0) = 0,
fib(1) = 1,
fib(n+2 ) = fib(n+1) + fib(n)2828
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 29/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
funciones recursivas sobre cadenas(tema a verse en clase práctica)
Al trabajar con cadenas, asumiremos
que nuestro alfabeto está compuesto
sólo por los símbolos a y b.
Sea complemento una función definida
sobre cadenas tal que transforma lasa’s en b’s y viceversa.
Definición recursiva de complemento
comp(λ) = λcomp(a.w) = b.comp(w)
comp(b.w) = a.comp(w)
2929
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 30/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
funciones recursivas sobre listas(tema a verse en clase práctica)
Notación
L = [] representa la lista vacía
L = x :: T representa la lista L con
cabeza (primer elemento) x y cola T.
Definición recursiva de longitud longitud ([] ) = 0
longitud (a::T) = 1 + longitud (T) .
3030
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 31/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
funciones recursivas sobre listas(tema a verse en clase práctica)
pares([a, b, c], [1, 2, 3]) = [(a, 1), (b, 2),
(c, 3)]
Definición recursiva de pares
pares ([ ] ,[ ] ) =[ ] ,pares (a :: T, b :: T’) = (a, b) :: pares(T,T’) .
3131
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 32/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
lenguajes formales: definiciones básicas
Un alfabeto (o vocabulario) Σ es unconjunto finito no vacío de símbolos.
Una cadena sobre Σ es una secuenciafinita de símbolos de Σ.
Σ* es el conjunto de todas las cadenas
sobre Σ.Un lenguajes sobre Σ es un
subconjunto de Σ*.Una gramática para un lenguaje puede
ser descripta definiendo su procesogenerativo.
3232
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 33/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
gramáticas para lenguajes formales
Una gramática estructura de frase(tipo 0) es una 4-tupla
G= (V N , V T , S , P ), donde V N = conjunto de símbolos no terminales.
V T = conjunto de símbolos terminales.
S = símbolo inicial de la gramática.
P = conjunto finito de producciones de laforma α → β donde α es una cadena
sobre V N UV T con al menos un símbolo deV N y β es una cadena sobre V N UV T.
(usamos α → λ cuando β es la cadena
nula)
3333
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 34/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
derivaciones
Sea G=(V N ,V T , S , P ) y sean w 1 y w 2cadenas sobre V N U V T .
Decimos que w 1 deriva directamente
w 2, y lo notamos w 1 ⇒ w 2 si
α → β es una producción en P, w 1 contiene una instancia de α ,
w 2 es obtenida a partir de w 1reemplazando esa instancia de α con
β .
3434
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 35/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
derivaciones
Si w 1,w 2,...,w n son cadenas sobre V N UV T
y w 1 ⇒ w 2, w 2 ⇒ w 3,... w n−1⇒ w n,
entonces w 1 genera (deriva) w n,
Se escribe w 1 ⇒ w n
(por convención, w 1⇒
w 1)
+
*3535
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 36/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
lenguaje formal
Dada una gramática G, el lenguaje L
generado por G , denotado L(G), es el
conjunto L = {w ∈ V T * | S ⇒ w }.
En otras palabras, L es el conjunto de
todas las cadenas de terminalesgeneradas a partir de S.
Observación: Una vez que una cadena
w de terminales ha sido obtenida,ninguna producción puede ser aplicada
a w, y w no puede generar otras
palabras.
+
3636
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 37/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
ejemplo de derivación
Sea L = {0 n1n ⏐ n ≥ 1}.
Una gramática para L es G=(V N ,V T , S,
P ) donde V N = {S}, V T = {0, 1}, y P consiste de las siguientesproducciones:
1. S → 0S12. S → 01
Podemos generar 0313 como sigue:
S ⇒ 0S1⇒ 00S11⇒ 000111
3737
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 38/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
ejemplo de derivación
Sea L = {anbnc n ⏐ n ≥ 1}.
Una gramática para L es G=(V N ,V T , S,
P ) donde V N = {S, B, C }, V T = {a, b, c },y P consiste de las siguientesproducciones:
1. S → aSBC 2. S → aBC 3. CB → BC
4. aB → ab5. bB → bb6. bC → bc
7. cC → cc
3838
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 39/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
ejemplo de derivación
Podemos generar la cadena a2b2c 2
como sigue
S ⇒ aSBC
⇒ aaBCBC
⇒ aaBBCC ⇒ aabBCC
⇒aabbCC ⇒ aabbcC
⇒ aabbcc
3939
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 40/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
clases de gramáticas
Estructura de frase (tipo 0): sinrestricciones.
Sensible al contexto (tipo 1): paracada producción α → β (excepto S→ λ),|α | ≤ | β |.
Libre de contexto (tipo 2): para cadaproducción α → β (excepto S→λ),α ∈V N .
Regular (tipo 3) para cada producciónα → β (excepto S→λ), α ∈ V N y β es dela forma t o tW, donde t ∈ V T y W ∈ V N .
4040
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 41/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
clases de gramáticas
Ejercicios
Determinar qué lenguaje genera cada
una de las siguientes gramáticas
G=(V N ,V T , S , P ) . Determinar su tipo.
1)V N = {S},
V T = ∅
P: S→ λ
4141
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 42/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
clases de gramáticas
2)
V N = {S}
V T = ∅
P = ∅
3)
V N = {S}
V T = {a}P : S → a | aS
4242
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 43/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
clases de gramáticas
4)
V N = {S,A},
V T = {a}
P : S → λ | aA
A → aS
5)
V N = {S},V T = {a,b}
P : S → λ | SS | aSb | bSa
4343
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 44/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
clases de gramáticas
6)
V N = {S},
V T = {a,b}
P : S → aS
aS → bbb7)
V N = {S},
V T = {a,b}P : S → aS
aS → b
4444
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 45/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
gramáticas y lenguajes
Un lenguaje se dice de tipo N si puede ser
generado por una gramática de tipo N
tipo 3
tipo 2
tipo1
tipo 0
Jerarquía de Chomsky
Noam Chomsky(1928-)
4545
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 46/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
dispositivos computacionales
El dispositivo computacional más general se
llama máquina de Turing (se verá en
Teoría de Computabilidad) y se correspondecon los lenguajes de tipo 0.
Los lenguajes reconocidos por máquinas de
Turing son los lenguajes de tipo 0.El dispositivo computacional más básico se
llama autómata finito y se corresponde con
los lenguajes de tipo 3.
4646
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 47/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
dispositivos computacionales
Existen dispositivos computacionales
con capacidad intermedia entre
aquellos reconocidos por autómatasfinitos y máquinas de Turing (se verán
en Teoría de Computabilidad):
Autómatas a Pila para lenguajes de
tipo 2
Máquinas de Turing acotadaslinealmente para lenguajes de tipo 1.
4747
i b l j
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 48/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
operaciones sobre lenguajes
Los lenguajes son conjuntos (finitos o
infinitos) de cadenas y por tal motivo
podemos operar sobre ellos:Operaciones:
unión intersección
complemento
concatenación
estrella de Kleene
4848
i
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 49/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
operaciones
Sean L1 y L2 dos lenguajes sobre un
alfabeto Σ :
L1 ∪ L2 = {w | w ∈ L1 ó w ∈ L2}
L1 ∩ L2 = {w | w ∈ L1 y w ∈ L2}
L1’ = {w | w ∈ Σ* y w ∉ L1}L1 ° L2 = {w1w2 | w1∈ L1 y w2∈ L2}
L1* = {w1w
2… w
n| w
i∈ L1, n
≥0}
4949
i
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 50/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
operaciones
Ejercicios
Sea Σ = {a,b} y los siguientes lenguajes
definidos sobre Σ
Sea L1 = {anbn | n > 0} y sea L2 = {bn | n > 0}
Identificar:
L1 ∪ L2
L1 ∩ L2
L1’ y L2’
L1 ° L2
L1* y L2*
5050
gramáticas regulares
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 51/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
gramáticas regulares
Las gramáticas regulares sirven para
generar:
Cualquier lenguaje finito (aunquepuede volverse una tarea tediosa).
Lenguajes infinitos que presentanciertas regularidades que pueden ser
expresada de manera sencilla
utilizando las llamadas expresionesregulares (como veremos más
adelante)
5151
gramáticas regulares
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 52/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
gramáticas regulares
Ejemplos de lenguajes que pueden ser
generados por gramáticas regulares:
L=∅. El lenguaje vacío.
L=Σ*. para cualquier Σ. El lenguaje
universal. L={w| w ∈ {a,b}* donde w tiene m a’s
seguidas de n b’s para m,n >0}.
L={w| w ∈ {0,1}* donde w tieneexactamente tres 0’s y tres 1’s}.
5252
gramáticas libres de contexto
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 53/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
gramáticas libres de contexto
Las gramáticas libres de contexto tienen
ciertas características destacadas:
Son sencillas, reemplazan un símbolopor vez.
Pueden ser utilizadas para describir lasintaxis de los lenguajes de
programación.
La derivación de una gramática librede contexto puede ser vista como un
árbol de derivación.
5353
gramáticas libres de contexto
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 54/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
gramáticas libres de contexto
Ejemplo de lenguajes que pueden sergenerados por gramáticas libres de
contexto: Todos los que pueden ser generados
por gramáticas regulares
L ={anbn| n > 0} L={w|w∈{(,)}* donde los paréntesis
están balanceados}
L={w| w ∈{a,b}* y w=wr }.Observación: Si w = w1w2…wn,wi ∈{a,b}, entonces wr = wnwn-1…w1
5454
conjuntos contables
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 55/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
(se verá al final del curso)
Sean A y B conjuntos. Si existe una
biyección entre A y B denotaremos
este hecho escribiendo|A| = |B|.
En este caso diremos que A y B tienen elmismo tamaño o la misma cardinalidad
o que son equipotentes.
5555
conjuntos contables
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 56/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
(se verá al final del curso)
Cardinalidad de un conjunto finito
¿Cuál es la cardinalidad del conjunto A
definido como sigue?
A = {( x + 1)3 | 1 ≤ ( x + 1)3 ≤ 3000, x ∈ N}
Existe una biyección f :{0, 1, . . . , 13} → A
donde f ( x ) = ( x + 1)3.
Por lo tanto
| A| = |{0, 1, . . ., 13}|= 14.
5656
conjuntos contables( á l fi l d l )
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 57/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
(se verá al final del curso)
Cardinalidad de un conjunto infinito
Sea Impar el conjunto de números
naturales impares.
Sea f la función f : N → Impar definida
como f ( x ) = 2 x + 1. Dado que f es unabiyección, podemos concluir que el
conjunto Impar y N tienen el mismo
tamaño. Es decir, |Impar| = |N|.
5757
conjuntos contables( á l fi l d l )
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 58/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
(se verá al final del curso)
Un conjunto se dice contable si es finitoo si existe una biyección entre el
mismo y N. En el último caso se diceque el conjunto es infinitamentecontable.
En términos de tamaño decimos que unconjunto S es contable si
|S| = |{0, 1, . . . , n – 1}|
para algún número natural n o |S| = |N|.Si un conjunto no es contable, decimos
que es incontable.
5858
conjuntos contables( á l fi l d l )
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 59/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
(se verá al final del curso)
Propiedades de conjuntos contables
a. Todo subconjunto de N es contable.
b. S es contable si y sólo si |S| ≤ |N|.
c. Cualquier subconjunto de un conjunto
contable es contable.d. Cualquier imagen de un conjunto
contable es contable.
5959
conjuntos contables(se erá al final del c rso)
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 60/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
(se verá al final del curso)
Teorema (Hein página 117-118)
N N es un conjunto contable.
Prueba:Se describe una biyección como sigue
(0, 0), ↔ 0,(0, 1), (1, 0), ↔ 1, 2
(0, 2), (1, 1), (2, 0),↔
3, 4, 5,
(0, n), · · · ↔ (n2 + n) / 2, · · ·M
M
M
M
clave: f(x,y) =
(( x + y )2 + 3 x + y)/ 2
6060
conjuntos contables(se verá al final del curso)
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 61/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
(se verá al final del curso)
Teorema (Hein, página 118)Si S0, S1, …, Sn, … es una secuencia de
conjuntos contables. Entonces la uniónS0 ∪ S1 ∪ … ∪ Sn ∪ …
es un conjunto contable.
Ejemplos de conjuntos contables:
Los números racionales El conjunto Σ* de cadenas sobre un
alfabeto finito Σ.
clave: asociar cada tupla (m, n) en N × N con unelemento x mn en la unión de los conjuntos dados.
6161
diagonalización(se verá al final del curso)
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 62/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
(se verá al final del curso)
Sea A un alfabeto con dos o más símbolos y seaS0, S1, …, Sn, … un listado contable desecuencias de la forma Sn =(an0, an1, …, ann, …),
donde ani∈ A. Las secuencias son listadas comolas filas de la siguiente matriz infinita
entonces existe una secuencia S=(a0, a1, …, an,
…) sobre A que no está en la lista original.
6262
diagonalización(se verá al final del curso)
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 63/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
(se verá al final del curso)
Podemos construir S a partir de la lista de
elementos diagonales (a00, a11, …, ann, …)
cambiando cada elemento de tal manera que
an≠ ann para cada n. Entonces S difiere de cada
S0 en el elemento n-ésimo.
Por ejemplo, tomando dos elementos x,y ∈ Adefinimos
⎩⎨⎧
≠
==
ysi y
ysi x
nn
nn
na
aa
6363
conjuntos incontables(se verá al final del curso)
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 64/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
(se verá al final del curso)
Ejercicio
Sea (0, 1) = { x ∈ R | 0 < x < 1} y sea R +
el conjunto de reales positivos.Mostrar que la función f : (0, 1) → R +
definida como
es una biyección.
x 1
x f(x)
−=
6464
conjuntos incontables(se verá al final del curso)
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 65/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
(se verá al final del curso)
Lema (Hein, página 120)Los números reales son incontables
Prueba
Es suficiente probar que U = (0,1) es incontable. Asumamos por el absurdo que U es contable.
Entonces podemos listar todos los números entre 0y 1 como una secuencia contable r 0,r 1,r 2,… r n, …
Cada número real entre 0 y 1 puede serrepresentado como un infinito decimal. Entoncespara cada n existe una representaciónr n = 0.d n0 d n1. . . d nn. . . , donde cada d ni es un dígitodecimal. Dado que r n puede representarse por la
secuencia (0.d n0 d n1. . . d nn. . . ), entonces, pordiagonalización podemos concluir que existe undecimal infinito que no está en la lista (ver Hein).
Concluimos que U es incontable y por lo tanto R esincontable.
6565
conjuntos incontables(se verá al final del curso)
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 66/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
(se verá al final del curso)
Lema (Hein, página 121)El conjunto F de funciones de N en N es
incontable
Prueba Asumamos por el absurdo que F es contable.
Entonces podemos listar todas las funciones
de N en N como f 0 ,f 1,f 2 ,… f n, …Cada función f n puede ser representada porla secuencia de sus valores (f n(0)f n(1). . .f n(n). . . ), entonces, por diagonalización,
podemos concluir que existe una funciónque no está en la lista (ver construcción enHein).
Concluimos que F es incontable.
6666
límites de la computabilidad(se verá al final del curso)
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 67/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
(se verá al final del curso)
Teorema (Hein, página 122)El conjunto de programas que pueden ser
escritos utilizando un lenguajes deprogramación es infinitamente contable.
Prueba:Cada programa es una cadena finita de
símbolos sobre un alfabeto finito fijo. Sea P nel conjunto de todos los programas que soncadenas de longitud n sobre A. El conjunto
de todos los programas es la unión de losconjuntos P 0, P 1, … , P n, … Dado que cadaP n es finito y por lo tanto contable, podemosconcluir que la unión es contable.
6767
límites de la computabilidad(se verá al final del curso)
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 68/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
(se verá al final del curso)
Existe “sólo” un número contable de
programas de computadora. Por lo
tanto existen límites sobre lo quepuede ser computado.
Ejemplos
Dado que existe un número incontable
de funciones de N → N no todas son
computables. Existen programa paracalcular sólo un conjunto contable de
estas funciones.
6868
límites de la computabilidad(se verá al final del curso)
7/23/2019 t04.2013.Modelos de Computacion-color
http://slidepdf.com/reader/full/t042013modelos-de-computacion-color 69/69
introduccióna los modelos
de computación
LENGUAJESLENGUAJESFORMALESFORMALES
Y YAUTAUTÓÓMATASMATAS
( )
Ejemplos (cont.)
No es posible computar cualquier real hastaun número arbitrario de cifras decimales. Larazón es que existe un número contable deprogramas y un número incontable dereales.
Si extraemos los reales computables de R,el conjunto restante sigue siendo incontable.¿Por qué?
Los números racionales pueden sercomputados.
Algunos números irracionales pueden sercomputados (ejemplo:
π).
6969