Autómatas: Lenguajes

Anuncio
TEMA I: Teoría de Conjuntos
1.1 Conjuntos
Def: Un conjunto es una colección de objetos o elementos
Def: Sean A y B conjuntos. Se define f aplicación de A en B
f: A ! B
x ! f(x)
• f: A ! B es inyectiva si y sólo si x " y, x, y " A ! f(x) " f(y)
• f: A ! B es suprayectiva si y sólo si " y " B " x " A / y = f(x)
• f: A ! B es biyectiva si es inyectiva y suprayectiva.
Def: Se define cardinal de un conjunto øXø el número de elementos de X si X es finito.
Def: Se define el conjunto Partes de X como el conjunto formado por todos los subconjuntos de X.
Teorema: Si X es finito, øP(X)ø= 2øXø.
n=1 ! øXø=1; X={1}. P(X)={, {1}} ! øP(X)ø=2=21=2øXø.
øXø=n, supongo que øP(X)ø=2øXø. X={x1, x2, x3...xn}.
Sea Y={ x1, x2, x3...xn, y} con y " xi. øYø=n+1.
P(Y)=P(X) " (P(Y)\P(X)) ! øP(Y)ø= øP(X)ø+ øP(Y)\P(X)ø= 2øXø+øY2ø.
La aplicación de P(X) en Y2 es biyectiva, por tanto, øY2ø=øP(X)ø
! øP(Y)ø= 2øXø+2øXø= 2øXø+1=2øYø.
Corolario: " X conjunto finito, øP(X)ø>øXø
Def: Sean X, Y conjuntos. Se dice ø Xø<øYø si f: X ! Y es inyectiva.
Se dice ø Xø=øYø si f: X ! Y es biyectiva.
Teorema: Sean X, Y conjuntos. Si ø Xø<=øYø y ø Yø<=øXø ! ø Xø=øYø.
Teorema: Si X conjunto entonces ø Xø<øP(X)ø.
Corolario: No " cardinal máximo.
Axioma de Elección: Dada una colección de conjuntos no vacíos, existe una función g cuyo dominio es la
colección de conjuntos de forma que " los conjuntos X de la colección la imagen de ese conjunto es un
elemento de ese conjunto:
1
g / x " C, g(X) " X, dom(g) = C.
Teorema: øNø " øXø " X infinito.
Def: Un conjunto X es numerable si X es finito o si " f: X ! N inyectiva.
Un conjunto X no es numerable si no cumple ls anteriores.
1.2 Relaciones
Def: Se dice que existe Relación de A en B si (a, b) " A*B
Propiedades: Sea S conjunto y R relación en S. R es:
• Reflexiva si " a " S, aRa.
• Simétrica si aRb ! bRa.
• Transitiva si aRb " bRc ! aRc.
• Irreflexiva si " a " S, a¬Ra.
• Antisimétrica si aRb ! b¬Ra.
Sean A y B conjuntos y R relación binaria de A en B.
Dom(R) = {x "A / " y " B " (x, y) " R};
Im(R) = {y " B / " x " A " (x, y) " R}
R−1 = {(b, a) " B*A / (a, b) " R}
Partición de A:
Def: Una colección de subconjuntos no vacío A de A es una partición si y sólo si
• B, C " A ! (B = C) " (B " C = ).
•
Def: Sean A, B, C conjuntos y R " A*B y S " B*C.
Definimos R compuesta con S (SoR) como
SoR={(a, c) " A*C / " b " B (a, b) " R y (b, c) " S}
Relación de Equivalencia:
Def: R en A es de equivalencia si es reflexiva, transitiva y simétrica.
Teorema: Toda relación de equivalencia provoca una partición en el conjunto.
Teorema: Toda partición A de A induce una relación de equivalencia.
Def: Sea S conjunto y R de equivalencia en S. Al conjunto formado por todas las clases de equivalencia de R
se denomina conjunto cociente de R en S: SøR.
Def: Sea P un conjunto de propiedades de relaciones de un conjunto.
2
Sea R una relación. Se llama P clausura de R a la menor relación que incluye todos los pares de R y cumple
todas las propiedades de P. Lo notamos R+.
1.3 Funciones
Def: Una función de A en B es un conjunto de A x B en el que no existen pares con el mismo primer
componente: Dom(f) = {x " A / " y " B ,, (x, y) " f}.
Teorema: Sean f y g funciones totales de A en B. f = g ! f(x) = g(x) " x " A.
Def: Sean A, B y C conjuntos y f y g funciones. Se define g o f como
g o f = {(a, c) " A x C / " b " B, b = f(a) " c = g(b)};
g o f = (a, g(f(a));
Cálculo
Homomorfismos e isomorfismos:
Def: Sean f: A A y g: B B y sea t la aplicación t: A B (x u = t(x)) tal que g(t(x)) = t(f(x)). Se dice que f y g
son homomorfas y t un homomorfismo. Si t es biyección, se dice que f y g son isomorfas y que t es un
isomorfismo.
TEMA II: Alfabetos y Palabras
2.1 Alfabetos
Def: Alfabeto es el conjunto no vacío y finito de letras.
Def: Palabra es toda sucesión finita de letras.
Def: La longitud de una palabra respecto de un alfabeto øxø es el número de letras del alfabeto que
compone la palabra x.
Se llama palabra vacía a aquella formada por letras de . øø= .
Aplicación x ! x = {0, ..., m − 1} ! con øxø = m.
Def: m es el conjunto de todas las palabras X tal que øxø = m.
Universo de discurso *
, tiene la palabra ; , no la tiene, + = * \ { }
corolarios: i) " * "
• * es infinito "
ø ø: * ! N donde øø = 0 y øaø = 1 + øø con a " , y " *
• Operaciones entre palabras
3
• Concatenación
Sean x e y palabras de un mismo alfabeto x, y " *. Se llama concatenación a colocar el segundo término
después del primero: = x . y
Propiedades:
i) Es aplicación: recoge palabras y devuelve como resultado una palabra, es pues una operación cerrada en el
universo de discurso. * . * ! *
ii) Es asociativa: (x . y) . z = x . (y . z)
iii) Elem. Neutro: " U " * / x . u = u . x = x, u = .
PERO no es conmutativo. Concluimos que (*, .) es un semigrupo con elemento neutro, o monoide libre.
Ley: Todo monoide libre cumple la ley de Cancelación por la izquierda. Esta ley se cumple para todo
monoide: a . b = a . c ! b = c
Ley: La ley de Cancelación por la derecha no se cumplirá para todos los monoides libres. b . a = c . a ! b = c
Sean x, y, z " * tal que z = x . y. x es prefijo propio de z si y "
Y es sufijo propio de z si x "
Observación: La función longitud es isomorfa a la función logaritmo, respecto de la concatenación. øx . yø =
øxø + øyø, igual que log (x . y) = log x + log y.
Def: sub−cadena o sub−palabra de z si " x, y " * / z = x . . y
x " *, i " N, x[i] " i−ésima letra de x.
• Potencia de una letra
Sea a " y n " N. Potencia n−ésima de a, an, se defina como:
• a0 =
• a1 = a
• ai+1 = a . ai con i " N
Teorema: Sea un alfabeto ! * es numerable.
Como no es finito, hay que demostrar que " f: * ! N es inyectiva.
• Orden parcial
Definimos la relación "entre palabras como: (x, y " *)
x"y:!"z"*/y=x.z
x"y:!x"y"x"y
4
• Orden total o lexicográfico
Sean x, y " *, = {a1 . . . an}
x "y ! x "y " " u, v, w " * " " i, j " N / x = u . ai . v, y = u . aj . w " i < j
• o bien x es prefijo de y
• o bien no es un prefijo, y empiezan a ser iguales y dejan de serlo.
Def: Sea x " *, x = x[1] . x[2] . . . x[k]
Se define la palabra inversa x−1 como: x−1 = x[k] . x[k−1] . . . x[2] . x[1]
• øxø = øx−1ø
• −1 =
• Funciones Algorítmicas
Sea un alfabeto, a un algoritmo sobre que admite un dato de entrada y devuelve un dato de salida:
Def: Sea una función parcial n−ária (con n argumentos) sobre , es
algorítmica si " a algoritmo tal que .
Conjetura de Fermat: x, y. z " R; xn + yn = zn, con n > 2
• Lenguajes
Def: Llamamos lenguaje sobre un alfabeto a cualquier subconjunto del universo de discurso: L " *.
El conjunto vacío es un lenguaje sobre cualquier alfabeto.
El conjunto formado sólo por la palabra vacío es también lenguaje sobre cualquier alfabeto (" " { } por que
ø"ø = 0 y ø{ }ø = 1)
Operaciones entre lenguajes
Sean L1, L2, L3 lenguajes sobre un mismo alfabeto .
• Unión
L1 " L2 = {x " * / (x " L1) " (x " L2)}
Es operación cerrada, la unión de lenguajes es un lenguaje.
Es asociativa: (L1 " L2) " L3 = L1 " (L2 " L3).
Tiene elemento neutro (el lenguaje vacío).
Es conmutativa: L1 " L2 = L2 " L1.
Es una proposición idempotente: L " L = L.
5
• Concatenación de lenguajes
L = L1 . L2 = {z " L / " x " L1 " " y " L2 . . z = x . y}
Es cerrada, asociativa y elemento neutro: { }.
Teorema: Sean A, B, C " *
• A . (B " C) = (A . B) " (A . C)
• (A " B) . C = (A . C) " (B . C)
Es por tanto distributiva por derecha y por izquierda.
• Potencia de un lenguaje
Sea L " *. Definimos la potencia i−ésima de L como Li, resultado de concatenarse a si mismo i veces.
También definimos L1 como L y L0 como { }.
• Clausuras de un lenguaje
A la clausura de L la llamamos L* y está definida como la unión de todas las potencias de L (Cierre de
Kleene): .
La clausura positiva, L+: .
Teorema: i) L* = L+ " { }.
ii) L+ = L . L* = L* . L
• Reflexión de L
L−1 = {x " * / x−1 " L}
Teorema: i) (L−1)−1 = L
ii) (A . B)−1 = A−1 . B−1
Operaciones con lenguajes sobre distintos alfabetos
• Homomorfismos
Def: f: A* ! B* es homomorfismo si f( ) = y si f(x, y) = f(x) . f(y)
TEMA III: Lenguajes Regulares y Autómatas Finitos
3.1 Lenguajes y expresiones regulares
• Analizador léxico
Diagrama de estados
6
Código
Estado := 1;
Repite
Leer siguiente símbolo de la palabra;
Case estado is
1 ! if símbolo = letra then estado := 3;
elsif símbolo = digito then estado := 2;
else rutine _ error;
2 ! rutine _ error;
3 ! if símbolo = letra then estado := 3;
elsif símbolo = digito then estado := 3;
else rutine _ error;
fin del case;
hasta fin de cadena;
if estado " 3 then rutine _ error;
Tabla de estados
Letra
3
Error
3
1
2
3
Dígito
2
Error
3
Fin de cadena
Error
Error
Aceptar
• Lenguaje regular
Def: sea alfabeto. El conjunto de lenguajes regulares se define como
• " es lenguaje regular.
• {} es lenguaje regular.
• " a " , {a} es lenguaje regular.
• si A y B son lenguaje regular ! A " B, A . B y A* son lenguajes regulares.
• Ningún otro lenguaje es regular.
Ej. = {a, b}
L1 = {a, ab, b} = {a} " {a} . {b} " {a} es lenguaje regular.
L2 = {ai / i " 0} = {} " {a} " ... " {a ... a} lenguaje regular.
7
L3 = {aibj / i " 0 " j " 0} = {ai / i " 0} . {bj / j " 0} es lenguaje regular.
• Expresión regular
Def: alfabeto. El conjunto de lenguajes regulares se define como
• " es expresión regular.
• es expresión regular.
• a " es expresión regular.
• ð y ð son expresión regular ! ð ð ð, ð ð ð son expresión regular.
• ð es expresión regular ! ð* es expresión regular.
• Sólo son expresiones regulares las que se pueden formar aplicando las reglas anteriores un número finito de
veces con las letras de , " y .
Dado ð expresión regular, decimos que L es lenguaje asociado, L(ð) si
• ð = " ! L(ð) = "
• ð = ð ! L(ð) = {ð}
• ð = a ! L(ð) = {a}, a "
• ð ð ð ð ! L(ð) = L(ð) + L()
• ð ð ð ð ! L(ð) = L(ð) . L()
• ð ð ð* ! L(ð) = L(ð*) = L(ð)*
Def: Sean ð y ð expresión regular. Diremos que ð y ð son equivalentes si L(ð) = L(ð)
Teorema: L es regular ! " ð expresión regular / L = L(ð).
Propiedades:
• + es asociativa
• + es conmutativa
• . es asociativa
• . es distributiva con respecto de la suma
• . tiene elemento neutro: ð ð ð ð ð ð ð ð ð
• + tiene elemento neutro: " ð ð ð ð ð " ð ð
• ð* = ð
•"ððððð"ðð
• "* = ð
• ð* . ð* = ð*
• ð* . ð = ð ð ð*
• (ð*)* = ð*
• ð* = ð ð ð ð ð2 + ... + ðn + ðn+1 . ð*
• ð* = ð ð ð ð ð*
• ð* = (ð ð ð)n−1 + ðn . ð*
• (ð* + ð*)* = (ð* . ð*)* = (ð ð ð)*
• (ð ð ð)*. ð = ð . (ð ð ð)*
• (ð* ð ð)*. ð* = (ð ð ð)*
• (ð ð ð)* = (ð ð ð)* . ð ð ð, (ð* ð ð)* = ð ð (ð ð ðð* +
• R = S* . T ! R = S . R + T
Si " S ,, R = S . R + T! R = S* . T
8
3.2 Autómatas finitos
Es una máquina que recibe una entrada, la procesa y devuelve un valor booleano. Un autómata finito
determinista es M = (ð, Q, , q0, F) con
: alfabeto de entrada
Q: conjunto de estados
: función de transición
q0: estado inicial
F: " Q, conjunto de estados finales
Teoría de Autómatas y Lenguajes Formales
Página 13
! (x, f(x)) " A * B ,, " x " A " ! y " B ,, y = f(x)
Y2={A"Y/y"A}
fct. longitud
1
2
3
dígito
letra
letra
dígito
Leyes de Inferencia
9
Documentos relacionados
Descargar