Vous êtes sur la page 1sur 8

TALF

D.B.Q.B.- D.A.H.S
31 de agosto de 2014

Indice
1. Lenguajes 1
1.1. Deniciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Operaciones entre palabras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.1. Concatenacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.2. Potencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3. Operaciones entre lenguajes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3.1. Concatenacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3.2. Union o alternacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3.3. Potencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4. Expresiones regulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.5. Identidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.6. Notaciones y comparaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.7. Teorema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.7.1. Idea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.7.2. Demostracion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Automata nito determinista 4
2.1. Denicion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.1. Matematicamente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2. Deniciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3. Automata nito no determinista 6
3.1. Denicion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1.1. Matematicamente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2. Deniciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4. Equivalencia RE-DFA-NFA 7
4.1. RE-NFA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.2. NFA-DFA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.3. Deniciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1. Lenguajes
1.1. Deniciones
Alfabeto: conjunto nito de smbolos atomicos (estos son, aquellos que no se pueden dividir en mas smbolos
minimales) anotado, generalmente, como .
Palabra (string): sobre , es una secuencia nita de smbolos de donde el orden importa.
Largo de una palabra: denotado por ||, es el n umero de smbolos que contiene (en realidad es el n umero
de posiciones que ocupan esos smbolos). Por convencion si || = 0 el string es (tambien anotado como ).
Lenguaje: sobre es un conjunto de palabras en (puede ser nito o innito).
Algunos ejemplos: = {} lenguaje vaco y {} lenguaje cuyo unico smbolo es la palabra vaca.
1
1.2. Operaciones entre palabras
Siendo un alfabeto y , palabras sobre el primero:
1.2.1. Concatenacion
equivale a escribir seguido de . Propiedades:
Asociativa
Existe elemento neutro ()
| | = lg( ) = || +|| = lg +lg (el largo de la concatenacion es la suma de los largos de las palabras)
1.2.2. Potencias

0
= {}

n+1
=
n

1.3. Operaciones entre lenguajes
Los lenguajes son conjuntos, por ende, son validas las operaciones comunes. Siendo L
1
, L
2
lenguajes sobre :
1.3.1. Concatenacion
Se dene como L
1
L
2
= { : L
1
L
2
}. Algunas de sus propiedades:
L
1
= L
1
= (existe absorbente)
{} L
1
= L
1
{} = L
1
(existe neutro)
L
+
1
=

n1
L
n
1
L

1
=

n0
L
n
1
1.3.2. Union o alternacion
Se dene como elegir una palabra de L
1
o L
2
, se denota L
1
|L
2
L
1
L
2
L
1
+ L
2
(aqu el signo de suma
+ solo denota la operacion de union o alternacion.
1.3.3. Potencias
L
0
1
= {}
L
n+1
1
= L
n
1
L
1
1.4. Expresiones regulares
Tambien denotadas por RE. Sea un alfabeto, se denen expresiones regulares sobre y los lenguajes que
denotan:
1. es una RE, denota .
2. es una RE, denota {}.
3. Si a , a es una RE, denota {a}.
Si R y S son RE que denotan L
R
y L
S
respectivamente:
4. (R)|(S) es una RE, denota L
R
|L
S
.
2
5. (R) (S) es una RE, denota L
R
L
S
.
6. (R)

es una RE, denota (L


R
)

.
Ejemplos:
= {a, b, c}, y la RE abab denota {abab}, pero ab

c denota {ac, abc, abbc, . . .}.


= {a, b, c, d}, y la RE (a|b|c)

abc(a|b|c)

denota todas las palabras que contienen al menos una vez el string
abc.
= {a, b, c, d}, las palabras que pueden formarse (es decir, las siguientes son equivalentes):
Con RE: (a|b|c|d)

(a + b + c + d)

.
Con lenguajes: ({a}|{b}|{c}|{d})

({a} {b} {c} {d})

.
1.5. Identidades
Se usa libremente notacion de RE, a un si los lenguajes involucrados no son regulares (igualmente las identidades
son validas):
1. L
1
|L
2
= L
2
|L
1
2. L
1
|L
1
= L
1
3. L
1
(L
2
|L
3
) = (L
1
L
2
)|(L
1
L
3
)
(L
1
|L
2
) L
3
= (L
1
L
3
)|(L
2
L
3
)
4. L
+
1
= L
1
L

1
= L

1
L
1
5. L
+
1
= L

1
{} = {} L

1
6. En general, (L
1
|L
2
)

= L

1
|L

1
, basta tomar L
1
y L
2
como los lenguajes que denotan a y b respectivamente.
1.6. Notaciones y comparaciones
Abusando, sea un alfabeto, por ejemplo = {a, b, c}, las palabras que pueden formarse con el (son
equivalentes):
(a|b|c)

({a}|{b}|{c})

({a} {b} {c})

({a} +{b} +{c})

Algunas comparaciones con las operaciones mas comunes que permiten mejor comprension:
| + (se utilizan como equivalentes)


0
{} 1
1.7. Teorema
Sean A, B lenguajes sobre , entonces la ecuacion:
X = A X|B
tiene solucion X = A

B si / A. Si A entonces cualquier X

con A

B X es solucion.
3
1.7.1. Idea
Partir con aproximacion menor que la solucion, y luego iterar. Si se toma X
0
= , la ecuacion de X
1
=
A |B = B (de aqu se deduce que L| = L); con X
1
= B, da X
2
= AB|B = ({}|A)B; con X
2
= ({}|A)B da
X
3
= A({}|A)B|B = ({}|A|A
2
)B . . .. Esto sugiere que X = ({}|A|A
2
. . .)B = A

B.
1.7.2. Demostracion
Se aprecia que X = A

B es solucion, pues reemplazando:


X = AX|B
= AA

B|B
= (AA

|{})B
= (A
+
|{})B
= A

B
Suponiendo que / A, y que X es solucion de la ecuacion con X pero / A

B.
Entonces B o AX. Pero si B eso implicara que A

B por lo que esta opcion se descarta. Luego,


queda que AX. Si se elige como la palabra mas corta que pertenece a X pero que no pertenece a A

B, ello
signicara que es posible escribir = con A, X (notar que = , pues / A), o sea, || = || || < ||
indicara que existe un de largo menor que , lo que claramente es una contradiccion, por ende, dicho no existe.
2. Automata nito determinista
2.1. Denici on
Los automatas nitos utilizan estados y transiciones entre estados en respuesta a las entradas. Resultan utiles
para construir diversos tipos de software, incluyendo el componente de analisis lexico de un compilador y los
sistemas que permiten vericar la correccion de, por ejemplo, circuitos o protocolos.
Idea: un computador rudimentario que tiene memoria nita (su estado) que cambia conforme lee smbolos
de la entrada.
Se indicara:
Estado
Figura 1: Estado del automata
Inicio
Figura 2: Inicio del automata
Final
Figura 3: Final (aceptado) del automata
Transicion: si estan en p, leyendo x y se pasa a q (puede ser p = q).
4
Figura 4: Transicion
Si esta en p, leyendo x pasa a q (puede ser p = q).
Ejemplo: comentarios en C, es decir, /. . . /, se simplica el alfabeto de C a {/, , a} (a equivale a cualquier
otro caracter). Para construirlos, seguir una secuencia tal que cubra los siguientes casos:
1. /**/
2. /*aa*/
3. /***/
4. /**a**/
5. /*aa/*a*/
Sin incluir estado muerto:
Figura 5: DFA comentarios C
Incluyendo estado muerto:
Figura 6: DFA comentarios C
Consideraciones
Estado muerto (lo mostrado en rojo) corresponde a cuando pasa algo no previsto en el DFA.
Si al terminar la ejecucion se encuentra en el estado nal, entonces se acepta.
5
Solo un estado inicial.
Pueden haber muchos estados nales.
Cada smbolo que se lee ha de llevar a s olo un posible estado, o sea, si se lee a no pueden salir dos caminos
desde el y que, por ende, lleven a dos estados distintos.
2.1.1. Matematicamente
Denicion: un automata nito determinista (DFA) M = {Q, , , q
0
, F} consta de:
Q: conjunto nito de estados.
: alfabeto de entrada.
: Q Q: funcion de transicion.
q
0
Q: estado inicial.
F Q: conjunto de estados nales.
2.2. Deniciones
1. Se dene la funcion de transicion extendida
: Q

(q, ) = q q Q

(q, a) = (

(q, ), a) q Q,

, a
2. Sea M = (Q, , , q
,
F) un DFA el lenguaje aceptado por M sera L(M) = {

:

(q
0
, ) F}.
3. L(R) es el lenguaje denotado por la expresion regular R.
4. Sea M = (Q, , , q
0
, F) un DFA. Una descripcion instantanea (ID) de M es q con ,

, q Q
(suponemos Q = )
5. La relacion de transicion del DFA M = (Q, , , q
,
F), tales que (q, a) = p, se dene entre IDs de M por:
qa
M
ap
,

q, p Q

6. Sea R una relacion en A:
R

: clausura reexiva y transitiva de R (cero o mas R)


R
+
: clausura transitiva de R (una o mas R)
7. Denicion (equivalente a 2): M = (Q, , , q
0
, F) un DFA, el lenguaje aceptado por M es L(M) = {

, q
0

M
q
f
q
f
F}.
3. Automata nito no determinista
3.1. Denici on
3.1.1. Matematicamente
Un automata nito no determinista (NFA) M = {Q, , , q
0
, F} con : Q( {}) 2
Q
.
6
3.2. Deniciones
1. Una descripcion instantanea de M un NFA es:
q
M
p p (q, )
qa
M
ap p (q, a)
2. La funcion de transicion extendida:

(q
0
, ) = q
0

(q, ) donde = a siendo a el ultimo smbolo de y el resto, suponiendo



(q, ) = {p
1
, p
2
, . . . , p
k
}
y siendo

1ik
(p
i
, a) = {q
1
, q
2
, . . . , q
m
} entonces

(q, ) = {q
1
, q
2
, . . . , q
m
}. En palabras, la funcion
extendida de ning un elemento considera llevar al automata al mismo lugar donde se encuentra. El paso
inductivo indica que al procesar un smbolo el lugar de llegada sera el conjunto de estados a los que
puede llegar el automata desde los posibles estados en donde se encuentra, consumiendo el siguiente
smbolo, o sea, si el automata puede partir en {q
1
, q
2
}, entonces al consumir, por ejemplo, a lo llevara a
(q
1
, a) (1
2
, a) (conjunto de posibles estados a los que puede ir consumiendo el siguiente smbolo).
3. Seg un la denicion anterior, el lenguaje denido por un NFA sera L = {|

(q
0
, ) F = }.
4. Equivalencia RE-DFA-NFA
4.1. RE-NFA
Teorema: sea un alfabeto, R una RE sobre entonces se puede construir de manera efectiva un NFA M
tal que L(M) = L(R).
Para demostrarlo se realiza induccion estructural, donde los casos base son: considerando un alfabeto tal que
a y dos RE, R y S, tales que R, S , se tiene que:
1. La RE
Figura 7: Transicion vaca
2. La RE a
Figura 8: Transicion a
3. La RE R S
Figura 9: Concatenacion
4. La RE R S
7
Figura 10: Alternacion
5. La RE R

Figura 11: Asterisco


4.2. NFA-DFA
Teorema: dado un NFA M, se puede construir efectivamente un DFA M

tal que L(M) = L(M

).
La idea es que vez que el NFA consume un smbolo podra llegar a un conjunto de estados, ahora se considera
eso (el conjunto de estados) como estado del DFA, es decir, cada subconjunto de estados en los que puede estar el
NFA correspondera a un estado del DFA.
4.3. Deniciones
1. Sea M = (Q, , , q
0
, F) un NFA, se dene, siendo S Q, -closure(S) = {estados alcanzables desde un
estado en S consumiendo solo }.
2. Algoritmo a seguir, dado M = (Q, , , q
0
, F) un NFA se construye un DFA cuyos estados son 2
Q
:
a) Estado inicial: closure({q
0
}).
b) Si R Q se calcula: S = closure(

qR
(q, a)) y (R, a) = S.
c) Son estados nales del DFA M

aquellos conjuntos que incluyan estos 2 nales de M.


8

Vous aimerez peut-être aussi