Академический Документы
Профессиональный Документы
Культура Документы
Marzo, 2014
Sea = {0, 1}
= {, 0, 1, 00, 01, 10, 11, 000, 001, 010, 100, 010, 110, . . .}
Sea = {a, b, c}, entonces
= {, a, b, c, aa, ab, ac, ba, bb, bc, ca, cb, cc, aaa, aab, abc, baa, . . .}
Sea = {a, b}, entonces
= {, a, b, aa, ab, ba, bb, aaa, aab, baa, . . .}
Cadenas
Dado un alfabeto y dos cadenas u, v , la concatenacion de u y
v se denota como u v o simplemente uv y se define as:
1 Si v = , entonces u = u = u, es decir, la concatenacion de
cualquier cadena u con la cadena vaca, a izquierda o derecha,
es igual a u.
2 Si u = a1 a2 . . . an , v = b1 b2 . . . bm , entonces
u v = a1 a2 . . . an b1 b2 . . . bm
|aba| = 3, |baaa| = 4
Cadena
Definicion formal: Una cadena v es una subcadena o subpalabra de
u si existen x, y tales que u = xvy. Notese que x o y pueden ser y
por lo tanto, la cadena vaca es una subcadena de cualquier cadena.
Prefijos de u
b
bc
Sea = {a, b, c, d} y u = bcbaadb bcb
bcba
bcbaa
bcbaad
bcbaadb
Sufijos de u
b
db
adb
aadb
baadb
cbaadb
bcbaadb
Operacion binaria
Una operacion binaria en un conjunto A es una funcion
f : A A A, esta debera satisfacer las siguientes propiedades:
1 La operacion binaria debera estar definida para cada par
ordenado de A, es decir, f asigna a UN elemento f (a, b) de A a
cada par ordenado (a, b) de elementos de A.
2 Como una operacion binaria es una funcion, solo un elemento
de A se asigna a cada par (a, b).
Concatenacion
La operacion de la concatenacion es una operacion binaria
entre cadenas de un alfabeto , esto es:
| uv |=| u | + | v |
Semigrupo
Sea ( , ) es un semigrupo el cual es un conjunto no vaco junto
con una operacion binaria asociativa definida en .
Monoide
Un monoide es un semigrupo (S, ) que tiene identico.
A=A=A=A
Lenguaje
Un lenguaje es un conjunto de palabras o cadenas. Un lenguaje L
sobre un alfabeto es un subconjunto de y si L = es el
lenguaje de todas las cadenas sobre .
A B = {x|x : x A o x B}
A B = {x|x : x A y x B}
A = {x |x
/ A}
A = A
A B = {x|x : x A y x
/ B}
Lenguaje Universal
Si 6= , entonces es el conjunto de todas las cadenas sobre .
Se le llama lenguaje universal.
Teorema
Sean A y B dos lenguajes sobre el alfabeto . Entonces A = B si y
solo si A B y B A.
y sea
L = {an bn : n 0} L1 {0, 1}
La concatenacion de lenguajes de dos lenguajes A y B sobre ,
notada por A.B o simplemente AB.
AB = {uv : u A, v B}
A=A=
A = {uw : u A, w } =
A {} = {} A = A
[ [
xA Bi x = u v, u A, v Bi
iI iI
x = u v, u A, v Bj ,
j I
x A Bj , j I
[
x (A Bi )
iI
[
A Bi = A (B1 B2 )
iI=2
[
A Bi = {ab} ({a, b} {abb, b})
iI=2
{ab} ({a, b} {abb, b}) = ({ab} ({a, b}) ({ab} {abb, b})
A (B C) = {a, } =
A = {u1 u2 . . . un : ui A, n 0}
A A = A (A0 A1 A2 . . .)
= (A1 A2 A3 . . .)
= A+
A A = A
1 ), Sea un x A A , entonces x = u v, con u A y v A
Por tanto x = u v, con u = u1 u2 . . . un , ui A, n 0 y
v = v1 v2 . . . vm , vi A, m 0 De donde
x = u v = u1 u2 . . . un v1 v2 . . . vm
(A )n = A , para todo n 1
(A ) = A
A+ A+ A+
Contraejemplo de A+ A+ = A+ . Sea = {a, b}, A = {a} se
tiene que
A+ = (A1 A2 A3 . . .)
= {a} {aa} {aaa . . .}
= {an : n 1}
A+ A+ = {a, a2 , a3 , . . .} {a, a2 , a3 , . . .}
= {a2 , a3 , . . .}
= {an : n 2}
(A )+ = A
(A )+ = (A )1 (A )2 (A )3 . . .
= A A A . . .
= A
(A+ ) = A
(A+ ) = (A+ )0 (A+ )1 (A+ )2 . . .
= {} A+ A+ A+ . . .
= A (conjuntos contenidos en A+ )
= A
(A+ )+ = A+
(A+ )+ = (A+ )1 (A+ )2 (A+ )3 . . .
= (A+ )1 (conjuntos contenidos en A+ )
= A+
Inverso de un lenguaje
Sea A sobre , se define AI como:
AI = {uI : u A}
x (A B)I x = uI , donde, u A B
x = uI , donde, u = vw, v A, w B
x = (vw)I , donde, v A, w B
x = wI v I , donde, v A, w B
x = B I AI
Teorema
Si L, L1 y L2 son lenguajes regulares sobre un alfabeto , tambien lo
son:
1 L1 L2
2 L1 L2
3 L+
4 L = L
5 L
6 L1 L2
7 L1 L2
8 L1 4L2
Observacion
Un sublenguaje (subconjunto) de un lenguaje regular no es
necesariamente regular, es decir, la familia de los lenguajes
regulares no es cerrada para subconjuntos.
Observacion
Un lenguaje regular puede contener sublenguajes No-regulares.
Sea L = {an bn } es un sublenguaje del lenguaje regular a b
Todo lenguaje finito es regular y la union finita de lenguajes
regulares es regular.
La union infinita de lenguajes no necesariamente es regular.
[
L = {an bn : n 1} = {ai bi }
i1
Teorema
Sean r, s y t expresiones regulares sobre , entonces:
1. r s = s r
2. r = r = r
3. r r = r
4. (r s) t = r (s t)
5. r = r = r
6. r = = r
7. (rs)t = r(st)
8. r(s t) = rs rt y (r s)t = rt st
9. r = r = r r = ( r) = r (r ) = (r )r = rr
10. (r s) = (r s ) = (r s ) = (r s) r = r (sr )
11. r(sr) = (rs) r
12. (r s) = (r s) s
13. (rs ) = r(r s)
14. s(r ) (r ) s = sr
15. rr = r r
r = s t = ( s+ )t ya que s = s+
= ( ss )t
= s t
t s |{z}
r
= t sr
= sr t
b(a b) a
(aa ab ba bb)
1 01 01
(0 1) 0(0 1)
(Q ) 2Q
2Q = {A|A Q}
(a b ) (aa bb)(a b )
Teorema
Sea M = (Q, , q0 , T, 4) un AFN. Entonces existe un AFD
M 0 = (Q0 , 0 , q00 , T 0 , ) tal que L(M ) = L(M 0 ).
El conjunto q0 se corresponde con q00
El conjunto de estados finales T 0 de Q0 se corresponde con los
conjuntos de estados de Q que contienen un estado de T
El conjunto de estados de Q0 se corresponde con el conjunto de
estados de Q que se vaya formando mediante el analisis de una
cadena sobre M
Automatas equivalentes
Dos AFD son equivalentes M1 y M2 son equivalentes si
L(M1 ) = L(M2 ).
P
Sean M1 y M2 sobre el alfabeto = {a},
L(M1 ) = L(M2 ) = a
Teorema
Si L1 y L2 son lenguajes regulares, tambien lo es L1 L2 .
M = (Q1 Q2 , 1 2 , (q1 , q2 ), T1 T2 , )
donde
: Q1 Q2 Q1 Q2
((qi , qj ), a) = (1 (qi , a), 2 (qj , a))
2Q = {A|A Q}
Teorema
Teorema de Kleene. Un lenguaje regular si y solo si es aceptado
por un automata finito (AFD o AFN o AFN-)
Teorema
Dado un AFN- M = (Q, , q0 , T, 4), se puede construir un AFN M 0
equivalente a M , es decir L(M ) = L(M 0 ).
Teorema
Un lenguaje regular si y solo si es aceptado por un automata finito
(AFD o AFN o AFN-)
Teorema
Para toda expresion regular R se puede construir un AFN- M tal
que L(R) = L(M ).
Paso Basico
EL automata
EL automata
PASO INDUCTIVO
1. Existe un automata que acepta R S
4 = 41 42 {(s, , s1 ), (s, , s2 )}
{(T1 , , s0 ), (T2 , , s0 )}
x0 = ax1
x1 = ax2 + bx4
x2 = ax3 + bx4
x3 = ax3 + bx4 +
x4 = bx4 +
x0 = ax0 + bx1 +
x1 = ax1 + bx2
x2 = (a b)x1 +
Teorema
Sean n 2 considere el sistema de ecuaciones cuyas incognitas
x1 , x2 , . . . , xn dado por:
x1 b1 A
= E b11 x1 A
b12 x2 . . . A
b1,(n1) xn1
x2 b2 A
= E b21 x1 A
b22 x2 . . . A
b2,(n1) xn1
..
.
xn1 bn1 A
= E b(n1)1 x1 . . . A
b(n1),(n1) xn1
Entonces E
bi y A
bij se definen como:
E
bi = Ei (Ain Ann En ), i = 1, . . . , n 1
A
bij = Aij (Ain Ann Anj ), i,j = 1, . . . , n 1
Donde:
si qi
/F
Ei =
si qi F
x1 = ax1 + bx2
x2 = bx1 + ax2 +
x1 = E
b1 + A
b11 x1
Se obtiene E
b1
E
b1 = E1 + (A12 A22 E2 )
E
b1 = + (b a )
E
b1 = ba
Se obtiene A
b11
A
b11 = A11 + (A12 A22 A21 )
A
b11 = a + (b a b)
A
b11 = a + ba b
Reemplazando E
b1 y A
b11 en x1
x1 = E
b1 + A
b11 x1
x1 = ba + (a + ba b)x1
x1 = (a + ba b) ba
x1 b1 A
= E b11 x1 A
b12 x2 A
b13 x3
x2 b2 A
= E b21 x1 A
b22 x2 A
b23 x3
x3 b3 A
= E b31 x1 A
b32 x2 A
b33 x3
P N (N ) o P N (N )
Gramaticas regulares
Sobre
G = (N, , S, P )
Una gramatica es regular por la derecha si sus producciones son de
la forma: P
A wB, w ,B N
A
Gramaticas tipo 2
Una gramatica independiente del contexto G = (N, , S, P ) consiste
de un conjunto N de no terminales, un alfabeto , un smbolo inicial
S y de un conjunto de producciones P .
Definicion
Sea G = (N, , S, P ) una gramatica independiente del contexto. El
lenguaje generado por G (o el lenguaje de G) denotado por L(G), es
el conjunto de todas las cadenas de terminales que se derivan del
estado inicial S. en otras palabras:
L(G) = {w /S w}
P N (N )
S 0S1
S
S aSa | bSb | a | b |
S aSb | aSbb |
S (S)S |
S S + S | SS | S | (S) | 0 | 1 | |
P (N )+ (N )
Ambiguedad
Una gramatica se dice que es ambigua si hay dos o mas arboles de
derivacion distintos para la misma cadena. una gramatica en la cual,
para toda cadena w, todas las derivaciones de w tienen el mismo
arbol de derivacion, es no ambigua.
Forma de Backus-Naur
La forma de Backus-Naur se emplea para especificar reglas
sintacticas de muchos lenguajes de programacion y de lenguaje
natural: En lugar de utilizar el smbolo usamos ::= y colocamos
los smbolos no terminales entre <>.
La forma BNF se usa frecuentemente para especificar la sintaxis de
lenguajes de programacion, como Java y LISP; lenguajes de bases
de datos, como SQL, y lenguajes de marcado como XML.