Vous êtes sur la page 1sur 74

Universidad de Oviedo

TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 1

Captulo 1: AUTMATAS, LENGUAJES Y GRAMTICAS REGULARES.

Captulo 1.1. INTRODUCCIN.

Los lenguajes son fundamentales en la Computacin: mediante ellos se expresan los
programas, protocolos de comunicacin, etctera.

En la Computacin se trabaja con los lenguajes formales. Estos lenguajes se
caracterizan por poseer reglas sintcticas y semnticas rgidas, concretas y bien definidas.

Por ejemplo, en los lenguajes de programacin:
Reglas que indican cmo construir cadenas vlidas (palabras reservadas,
identificadores de variables, etctera).
Reglas que indican cmo combinar estas cadenas para formar programas vlidos.

El procesamiento de los lenguajes formales es importante en la Informtica ya que se
necesita traducir los programas escritos en lenguajes de alto nivel a programas en lenguaje
mquina. Este proceso de traduccin lo realizan los compiladores.

Por otra parte, tambin se necesita describir de forma sinttica los lenguajes,
especificando mediante reglas, cmo se escriben programas sintcticamente correctos en un
determinado lenguaje.

Para llevar a cabo estos procesos disponemos de las siguientes herramientas:
Descriptoras
Describen las reglas de un lenguaje L .
Son las gramticas y las expresiones regulares.
Reconocedoras
Reconocen si un programa P sigue las reglas del lenguaje L .
Son los autmatas.

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 2

Captulo 1.2. LENGUAJES FORMALES.

Definicin: Alfabeto:
Conjunto finito y no vaco de smbolos.

Por ejemplo:
{ } 1 , 0
1
= X , { } c b a X , ,
2
= , { } 11 , 10 , 01 , 00
3
= X
Un alfabeto es vlido si no se genera ambigedad en la formacin de palabras. Por
ejemplo:
{ } 111 , 100 , 11 , 00 = X
Palabra:11100, 100 11 00 111 ?

Definicin: Palabra o cadena:
Secuencia finita de smbolos de un alfabeto.

Por ejemplo:
Sea { } o l h a X , , , = , son palabras hola p =
1
y ola p =
2
.

Definicin: Longitud de una palabra:
Nmero de smbolos que la forman.

Por ejemplo:
Sea { } 9 ,..., 2 , 1 , 0 = X :
2 41 =
5 23456 =

Definicin: Palabra vaca, :
Dado un alfabeto X , se define como la nica palabra construida con0 smbolos del
alfabeto.
Aunque se represente por un carcter simple, es una palabra no un smbolo del alfabeto,
es decir, X .

Definicin: Universo del discurso,
*
X :
Se compone de todas las palabras que se pueden formar con smbolos del alfabeto X .
Se caracteriza por:
Contiene un nmero infinito de palabras
La palabra vaca pertenece a todos los universos

Por ejemplo:
Sea { } b a X , = , { } ,... , , , , , , , ,
*
aab aaa bb ba ab aa b a X = .

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 3

Definicin: Lenguaje sobre un alfabeto X , ( ) X L :
Todo subconjunto de
*
X .

Por ejemplo:
Dos posibles lenguajes sobre { } b a X , = seran:
{ } bab bbb aba aaa L , , ,
1
=
{ } ,... , , , ,
2
aaaa aaa aa a L =

Definicin: Lenguaje:
Conjunto de palabras, tambin llamadas sentencias o cadenas, formadas por smbolos
de un alfabeto.

Por ejemplo:
Sea el alfabeto de los smbolos ASCII. Un lenguaje sobre este alfabeto seran todas
aquellas cadenas que representen identificadores vlidos en Java:
Empieza con letra, $, y sigue con un conjunto de cero o ms letras, dgitos, $o
{ } ,... 2 , 1 , , ,
1
i i cont aux a L =

Por ejemplo:
Se el alfabeto de todos los identificadores, signos de puntuacin, palabras reservadas en
Java. Un lenguaje sobre este alfabeto sera el formado por todos los programas bien
construidos.

Descripcin de los lenguajes:

Definicin: Gramtica:
Describe la estructura de un lenguaje, proporcionando las reglas que determinan las
combinaciones vlidas de los smbolos del alfabeto.

Definicin: Expresin regular:
Describen de manera declarativa las cadenas aceptables o pertenecientes a un lenguaje
regular.

Definicin: Autmata:
Mecanismo o mquinas abstractas que son dispositivos tericos capaces de recibir,
procesar y transmitir informacin (cadenas de un lenguaje).

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 4

Relacin Gramtica Autmata Lenguaje:


Gramtica Lenguaje Autmata
Tipo 0:
Gramtica sin restricciones
Recursivamente enumerable.
Sin restricciones
Mquina de Turing (MT)
Tipo 1:
Gramtica sensible al
contexto
Dependiente del contexto
Autmata linealmente
acotado (ALA)
Tipo 2:
Gramtica libre de contexto
Independiente del contexto Autmata con pila (AP)
Tipo 3:
Gramtica regular
Regular Autmata finito (AF)

Relacin de inclusin: Relacin de Chomsky:


Tipo 0
Tipo 1
Tipo 2
Tipo 3
Lenguaje
Autmata Gramtica equivale
describe
genera
reconoce
genera
Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 5

Operaciones con palabras:

Definicin: Concatenacin:
Dado un alfabeto X , sean
n
a a a a a ...
3 2 1
= y
n
b b b b b ...
3 2 1
= palabras donde X a i
i
, y
X b i
i
, . La concatenacin de las palabras a yb , b a , es una palabra formada por los
smbolos de a seguidos de los smbolos deb , es decir,
n n
b b b b a a a a b a ... ...
3 2 1 3 2 1
= .
Adems se cumple que:
b a b a + =
es el elemento neutro para la concatenacin.
Para cualquier palabra x , x x x = =

Por ejemplo:
bocadillo dillo boca =
cocacola cola coca =

Definicin: Potencia:
La potencia i sima de una palabra x ,
i
x , se forma por la contatenacini veces de x .
Por definicin, para toda palabra x , se cumple que =
0
x .

Por ejemplo:
aaa a =
3

( ) acac ac =
2


Definicin: Potencia k :
Dado un alfabeto X y un nmero natural k , definimos:
{ } k x X x x X
k
= = y sobre palabra una es

Por ejemplo:
Sea { } 1 , 0 = X
{ } =
0
X
{ } 1 , 0
1
= X
{ } 11 , 10 , 01 , 00
2
= X

Definicin: Cierre positivo:
Dado un alfabeto X , definimos

=
+
= =
1
3 2 1
...
k
k
X X X X X

Definicin: Cierre estrella:
Dado un alfabeto X , definimos

=
= =
0
3 2 1 0 *
...
k
k
X X X X X X

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 6

Definicin: Unin o alternativa:
{ }
2 1 2 1
L x L x x L L =

Por ejemplo:
{ } b a L ,
1
= y { } d c L ,
2
=
{ } d c b a L L , , ,
2 1
=

Definicin: Concatenacin:
{ }
2 2 1 1 2 1 2 1
L x L x x x L L =

Por ejemplo:
{ } b a L ,
1
= , { } d c L ,
2
= , { } =
1
L
{ } bd bc ad ac L L , , ,
2 1
=
{ } =
3 1
L L

Definicin: Interseccin:
{ }
2 1 2 1
L x L x x L L =

Definicin: Potencia de un lenguaje:
{ } L x x x x x L
i n
n
= ...
3 2 1

{ } =
0
L

Por ejemplo:
{ } b a L , =
{ } =
0
L
{ } b a L ,
1
=
{ } bb ba ab aa L , , ,
2
=

Definicin: Clausura o cierre positivo:
...
3 2 1
=
+
L L L L

Definicin: Cierre u operacin estrella. Clausura de Kleene:
...
3 2 1 0 *
= L L L L L

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 7

Captulo 1.3. EXPRESIONES REGULARES.

Las expresiones regulares definen las cadenas vlidas de un lenguaje mediante una
descripcin algebraica (frmula).
Los lenguajes que pueden describirse mediante expresiones regulares se denominan
lenguajes regulares.
Se utilizan como lenguaje de entrada en muchos sistemas de proceso de cadenas.
Por ejemplo:
grep de UNIX y otros similares en navegadores, procesadores, etctera, usan una
notacin similar a las expresiones regulares para describi los patrones que el usuario
quiere encontrar en un archivo.
Bsqueda en Word.

Definicin: Expresin regular:
Sea X un alfabeto finito, las expresiones regulares sobre X y los lenguajes que denotan
se definen recursivamente como:
es una expresin regular y denota al conjunto vaco.
es una expresin regular y denota{ }
*
X
Si X x entonces x es una expresin regular y denota el lenguaje{ }
*
X x
Por ejemplo:
{ } d c b a X , , , = , la expresin regular a representa { } a L =
SI r y s son expresiones regulares que denotan los lenguajes R y
*
X S :
o s r + s r , denota al lenguaje S R
Por ejemplo:
a r = , b s = , b a s r + = + , ( ) { } b a s r L , = +
o s r denota al lenguaje S R
Por ejemplo:
b a s r = , ( ) { } ab s r L =
o
*
r denota al lenguaje
*
R
Por ejemplo:
* *
a r = , ( ) { } ,... , , , ,
*
aaaa aaa aa a a L =
o
+
r denota al lenguaje
+
R
Por ejemplo:
+ +
= a r , ( ) { } ,... , , , aaaa aaa aa a a L =
+


Precedencia en la utilizacin de los operadores:
De mayor a menor prioridad:
1 Operacin cierre positivo. ( )
+
,
*

2 Operacin concatenacin. ( )
3 Alternativa. ( ) , , +
Se permite el uso de parntesis para indicar la precedencia.

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 8

Ejemplos:
Sea { } b a X , = .
Expresin regular Lenguaje
( ) b a b a + + { } ab b a , ,
( ) b a a + { } ab aa,
( )
*
bb
{ } ,... , , , bbbbbbbb bbbb bb
( )
*
b a a +
{ } ,... , , , , , , abb aba aab aaa ab aa a
( )
*
* * *
ab ab b
Palabras con un nmero par de a s
( ) a b a
*
+
Palabras que terminan en a
*
ab
Palabras que empiezan en a y luego slo
tienenb s
( ) ( ) b b a b a b a a
* *
+ + +
Empiezan y terminan con la misma letra

Igual nmero de a que deb

Expresin regular Lenguaje
9 8 7 6 5 4 3 2 1 0 + + + + + + + + +
Dgitos
( )
+
digito
Nmeros naturales
( )natural , , +
Nmeros enteros
( ) natural . , . , entero
Nmeros reales sin exponente en Java
( )( )
*
digito , letra , , $ letra , , $
Identificadores en Java
( )
+
+ real real
Expresin de adiccin en Java

Equivalencia de expresiones regulares:
Dos expresiones regulares son equivalentes si designan al mismo lenguaje regular.
Sean x , v , : expresiones regulares:
+ es asociativa
( ) ( ) : v x : v x + + = + +
+ es conmutativa
x v v x + = +
es asociativa
( ) ( ) : v x : v x =
es distributiva respecto a +
( ) : x v x : v x + = +
tiene elemento neutro
x x x = =
+ tiene elemento neutro
x x x = + = +
=
*


Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 9

Equivlencia de expresiones regulares:
= = x x
=
*

x x x = +

* * *
x x x =

+
= = x x x x x
* *

( )
*
*
*
x x =
( ) ( )
* *
vx x x xv =
( )
* *
x x x + = + =
+

( ) ( ) ( )
*
* *
*
* * *
v x v x v x = + = +
( ) ( ) ( )
*
* * *
*
* *
vx x x v x v x = = +
( )
* * *
v x v x + +

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 10

Captulo 1.4. AUTMATAS FINITOS.

Dispositivo para procesar palabras pertenecientes a un lenguaje regular.
Se construyen siguiendo las reglas de formacin de palabras de un lenguaje: recibe una
palabra y determina si pertenece o no al lenguaje, es decir, si sigue las reglas.

Por ejemplo:
Identificadores vlidos en Java:


Introduccin:
Disponen de una cinta de entrada, de donde van leyendo las palabras, procesando sus
smbolos secuencialmente, de izquierda a derecha.
A s $ 1 _ 3 2 V >

En cada momento, almacenan informacin acerca de la historia del sistema. Cada
almacn de informacin se denomina estado.
Tienen un nmero finito de estados:
Es necesario disearlos con cuidado para recordar la informacin interesante.
Estado: El primer smbolo fue letra, $ _
No es interesante recordar qu fue exactamente.
En cada momento, el AF puede estar en alguno de ellos y, segn va leyendo smbolos
podr ir cambiando de estado, por lo que el estado nos va a decir que tipo de cadena ha
llegado hasta ese momento.
Habr estados que activen la luz verde y otros que activen la roja.

Por ejemplo:
Los analalizadores lxicos que determinan si un identificador es vlido o no en Java.
palabra de entrada identificador vlido o no
palabra de entrada
deben empezar
por letra, & _
pertenece o no
luego tienen
letras, dgitos, $
_
Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 11

Definicin: Autmata finito determinista, AFD:
Un autmata finito determinista, AFD, es una quntupla
( ) F q Q X AFD , , , ,
0 .
= donde:
X es un conjunto finito denominado alfabeto de entrada.
Qes un conjunto finito denominado conjunto de estados.
Q Q X : llamada funcin de transicin de estados.
Q q
0
es el llamado estado inicial.
Q F recibe el nombre de conjunto de estados finales que corresponde a los
estados Q q en que se acepta la cadena de entrada.
Determinista hace referencia al hecho de que:
debe estar definida para cada estado y smbolo del alfabeto.
Para cada smbolo de entrada, existe un nico estado al que el AFDpuede llegar
partiendo del actual.

Representacin de la funcin de transicin de un AFD:

Tabla de transiciones:
Se representa mediante una matriz de X Q
Filas:
Estados Q q , estado inicial precedido de y estados finales de
*

Columnas:
Smbolos de entrada X a y en( ) q a, el estado determinado por ( ) q a,

Por ejemplo:

a
b
c ... :
0
q
1
q
2
q
n
q

0
q
1
q
...
2
q
...
...
n
q


Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 12

Diagrama de transicin de estados:
Se crea un grafo dirigido en el que, para cada estado Q q
i
se crea un nodo y, para
cada transicin ( )
k i f
q q x = , , se crea un arco de
i
q a
k
q etiquetado con
f
x .
El estado inicial tendr un arco entrante no etiquetado y los estados finales estarn
rodeados de doble crculo.

Por ejemplo:


Ejemplo:
AFDque reconozca las palabras formadas por a s yb s con un nmero par de a s y
un nmero par deb s.
{ } b a X , =
{ }
3 2 1 0
, , , q q q q Q =
o
0
q : El nmero de a ses par y el nmero deb s es par
o
1
q : El nmero de a ses par y el nmero deb s es impar
o
2
q : El nmero de a ses impar y el nmero deb s es par
o
3
q : El nmero de a ses impar y el nmero deb s es impar

0
q
{ }
0
q F =
Q Q X :

a
b
0
q
2
q
1
q
1
q
3
q
0
q
2
q
0
q
3
q
3
q
1
q
2
q

q
1

q
2

q
3

a
b
Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 13



Definicin: Configuracin:
Descripcin instantnea de un AFD, ( )
*
, , , X Q q q , donde q representa el
estado actual y la cadena que queda por procesar.

Definicin: Configuracin inicial:
( )
0
, q

Definicin: Configuracin dinal o aceptacin de palabra:
( ) F q q
f f
, ,

Definicin: Movimiento:
( ) ( ) ( )
' '
, , , , q q a q q a =

Procesamiento de palabras en un AFD:
El lenguaje del AFD es el conjunto de palabras aceptadas por el mismo.
Supongamos que
5 4 3 2 1
a a a a a es una secuencia de smbolos. Comenzamos con
el AFDen el estado inicial. Se procesa el primer smbolo
1
a aplicando ( )
0 1
,q a para encontrar
el estado al que pasa el AFDtras procesar el primer smbolo de la entrada.
Supongamos que fue
1
q . Se procesa el segundo smbolo aplicando ( )
1 2
, q a .
Continuamos as hasta procesar el ltimo de los smbolos, llegando al final a un
estado
n
q .
Si
n
q pertenece a F , la palabra es aceptada. Sino, es rechazada.

q
0
q
1

q
2
q
3

b
b
a a
b
b
a a
Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 14

Ejemplo:
Sea el AFDdel ejemplo anterior y la palabra abba :
a) Configuacin inicial
( )
0
, q abba
b) Procese la palabra representando el procesamiento mediante configuraciones y
movimientos
( ) ( ) ( ) ( ) ( )
0 2 3 2 0
, , , , , q q a q ba q bba q abba
c) Cul es la configuracin final?
( )
0
, q

Extensin a palabras de la funcin de transicin:
Si es la funcin de transicin, la funcin de transicin extendida se llamar
*
y se
construir a partir de .
Describe el comportamiento de un AFDpartiendo de un estado y procesando una
cadena de smbolos. Recibe un estado q y una cadena y devuelve un estado p , estado que
alcanza el autmata cuando comienza en el estado q y procesa la secuencia de smbolos .

Definicin: Funcin de transicin extendida:
Se define la funcin de transicin extendida a partir de Q Q X : a
Q Q X
* *
: de la forma siguiente:
( ) q q = ,
*

( ) ( ) ( ) q x q x , , ,
* *
=
Donde X x ,
*
X y Q q

Lenguaje aceptado por un AFD:

Definicin: Aceptacin de palabras:
Una palabra ser aceptada por un AFDsi y slo si ( ) F q
0
*
, .

Definicin: Lenguaje reconocido por un AFD:
Sea el AFD ( ) F q Q X M , , , ,
0
= , el lenguaje aceptado por M que se representa
como ( ) M L es el conjunto ( ) ( ) { } F q X M L =
0
* *
, .
Al conjunto de los lenguajes reconocidos por algn AF se les denomina lenguajes
regulares.
Para cada lenguaje regular existe un AF que reconoce palabras de este lenguaje y no
reconoce ninguna palabra que no pertenezca al lenguaje.

Definicin: Autmatas equivalentes:
Dos autmatas son equivalentes si aceptan el mismo lenguaje.

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 15

Equivalencia de estados:

Definicin: Estados equivalentes:
Sea el AFD ( ) F q Q X M , , , ,
0
= , dos estados p y q son equivalentes, y se
denota q p , si para toda cadena de entrada , ( ) p ,
*
es un estado final si y slo
si ( ) q ,
*
tambin lo es; es decir, sern equivalentes si tienen el mismo comportamiento ante
toda palabra.

Definicin: Estados distinguibles:
p se distingue de q si y slo si ( ) ( ) viceversa o , y ,
* * *
F q F p X .

Corolario:
Si dos estados son equivalentes, pueden ser sustituidos por uno slo con el mismo
comportamiento que los originales.

Corolario:
Existen algoritmos para minimizar un AF , es decir, hallar otro AF equivalente con el
nmero mnimo de estados.

Minimizacin de autmatas finitos deterministas:
Partimos de un AFD ( ) F q Q X A , , , ,
0
= . Hallaremos un AFDque acepta ( ) A L y
tiene el menor nmero de estados posibles, ( )
' '
0
' ' '
, , , , F q Q X A = .
El algoritmo consiste en determinar las clases de equivalencia en el conjunto de estados.
1. Se elimina cualquier estado que no sea accesible desde el inicial.
2. Se dividen los estados restantes en particiones de forma que todos los estados de
una particin sean equivalentes y no haya pares de estados equivalentes en
particiones distintas.
Construir una particin inicial dividiendo el conjuntoQen dos grupos: estados
finales F y no finales F Q .
Determinar una nueva particin
nueva
a partir deaplicando el siguiente procedimiento
para cada grupoG de:
o Dividir G en dos subgrupos tales que dos estados
i
q y
f
q deG estarn en el
mismo subgrupo si y slo si para cada entradae , los estados
i
q y
f
q tienen
transiciones cone hacia estados del mismo grupo de.
o Sustituir G por sus grupos en
nueva
.
Si
nueva
, se han creado nuevos subgrupos:
o
nueva
=
o volver al paso 2.2
en caso contrario, es decir, si ya no salen ms grupos:
o =
Iinal

o ir al paso 3
3. Se escoge un estado de cada grupo de la particin
Iinal
como representante para
formar el nuevo conjunto
'
Q .
4. Clculo de
'
en
'
A . Sea
i
q un estado representante, sea un smbolo a tal
que ( )
f i
q q a = , y sea
k
q el representante del grupo de
f
q , entonces ( )
k i
q q a = ,
Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 16

5. Estado inicial y finales.
o El estado inicial
'
0
q de
'
A se elige como el representante del grupo que
contiene al estado inicial
0
q de A.
o El conjunto de estados finales
'
F estar formado por los representantes de
grupos donde haya estados finales.

Ejemplo:
Minimizar el AFD ( ) F q Q X A , , , ,
0
= donde { } b a X , = , { } 5 , 4 , 3 , 2 , 1 = Q , 1
0
= q ,
{ }
5
q F = y viene dada por la siguiente tabla:

a
b
1 2 3
2 2 4
3 2 3
4 2 5
5 2 3
{ }
{ }
{ }
{ }
{ }
{ }

=
=
=
=

5
4
2
3 , 1
3 , 2 , 1
4 , 3 , 2 , 1
2
12
112
111
11
1
G
G
G
G
G
G

Luego, ( )
' '
0
' ' '
, , , , F q Q X A = donde { } b a X , = , { } 5 , 4 , 2 , 1
'
= Q , 1
'
0
= q , { }
5
'
q F = y
'

viene dada por:
'

a
b
1 2 1
2 2 4
4 2 5
5 2 1

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 17

Autmatas finitos no deterministas, AFND:
Permiten0 , 1 o ms transiciones desde un estado con cada smbolo de entrada.
Tiene la capacidad de disparar varias transiciones a la vez con el mismo smbolo de
entrada y, por tanto, puede estar en varios estados simultneamente.

Por ejemplo:
Si estamos buscando la palabra clave implements en un programa en Java y la
configuracin inicial es ( ) q i , palabra la de Resto es til, al llegar al smboloi , suponer que
estamos al inicio de la palabra clave buscada y utilizar una secuencia de estados para
comprobar que, efectivamente, llega a esa palabra.

Es decir, slo definimos los estados que necesitamos para aceptar palabras.

Los AFNDs reconocen los mismos lenguajes que los AFDs.

Los AFNDs son similares a los AFDs, con un conjunto finito de estados y smbolos
de entrada, un estado inicial, un conjunto de estados finales y una funcin de transicin de
estados .
Diferencia:
AFD
define para cada posible combinacin( ) q x, un estado nuevo.
AFND
puede no estar definida para alguna combinacin( ) q x, y, por el contrario, puede
definir para otras combinaciones ( ) q x, ms de un estado.

Ejemplo:
Autmata que reconoce aquellas palabras formadas por 0 s y1s que terminan en01.


Definicin: Autmata finito no determinista, AFND:
Un AFNDes una quntupla ( ) F q Q X AFND , , , ,
0
= con el mismo significado que para
un AFDsalvo que es en este caso un una aplicacin no determinista o relacin de la forma:
( ) Q P Q X : , donde ( ) Q P es un subconjunto deQ.

Definicin: Configuracin:
Descripcin instantnea de AFND.
( )
*
, , , X Q q q , donde q representa el estado actual y la cadena que queda por
procesar.

Definicin: Configuracin inicial:
( )
0
, q .

A B C
0,1
0 1
Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 18

Definicin: Configuracin final:
( )
f
q , , con F q
f
.

Definicin: movimiento:
Es el trnsito entre dos configuraciones.
Se representa: ( ) ( )
'
, , q q a , donde ( ) q a q ,
'
.

Representacin de un AFND:

Tabla de transiciones:
Se diferencian de los AFDen que el contenido de las casillas es un conjunto, incluso el
vaco.
Por ejemplo:
0 1
A { } B A,
A
B { }
C
C { } { }


Diagrama de transicin de estados:
Igual que los AFDs.

Definicin: Funcin de transicin extendida:
Se extiende ( ) Q P Q X : a ( ) Q P Q X
* *
: como sigue:
( ) q q = ,
*

( ) ( ) ( ) q x q x , , ,
* *
=
Donde X x ,
*
X y Q q

Lenguaje aceptado por un AFND:

Definicin: Aceptacin de palabras:
Una palabra ser aceptada por un AFNDsi y slo si ( ) F q
0
*
, .

Definicin: Lenguaje reconocido por un AFD:
Sea el AFND ( ) F q Q X M , , , ,
0
= , el lenguaje aceptado por M que se representa
como ( ) M L es el conjunto ( ) ( ) { } = F q X M L
0
* *
, .

Teorema: Equivalencia entre AFDy AFND:
Si
*
X L es aceptado por un AFND, existe un AFDque acepta L .

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 19

Algoritmo AFD AFND :
1. Definicin del nuevo conjunto de estados
'
Q .
o ( ) Q P Q =
'
(conjunto de partes deQ)
o Notacin: al conjunto{ }
n k f i
q q q q ,..., , , lo denotamos por [ ]
n k f i
q q q q ...
o A menudo, no todos los estados de
'
Q sern accesibles desde el estado
inicial
'
0
q . En el paso 2 se determin cuales son accesibles.
o
[ ] [ ] [ ] [ ] [ ] [ ] [ ]
[ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
[ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
[ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
[ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
[ ] [ ] [ ] [ ] [ ] [ ]


=
5 , 4 , 3 , 2 , 1 , 5 , 4 , 3 , 2 , 5 , 3 , 2 , 1 , 4 , 3 , 2 , 1 , 5 , 4 , 3 , 0 , 5 , 4 , 2 , 0
, 5 , 3 , 2 , 0 , 4 , 3 , 2 , 0 , 5 , 4 , 1 , 0 , 5 , 3 , 1 , 0 , 4 , 3 , 1 , 0 , 5 , 2 , 1 , 0 , 4 , 2 , 1 , 0 , 3 , 2 , 1 , 0
, 5 , 4 , 3 , 5 , 4 , 2 , 5 , 3 , 2 , 4 , 3 , 2 , 5 , 4 , 1 , 5 , 3 , 1 , 4 , 3 , 1 , 5 , 2 , 1 , 4 , 2 , 1 , 3 , 2 , 1
, 5 , 4 , 0 , 5 , 3 , 0 , 4 , 3 , 0 , 5 , 2 , 0 , 4 , 2 , 0 , 3 , 2 , 0 , 5 , 1 , 0 , 4 , 1 , 0 , 3 , 1 , 0 , 2 , 1 , 0
, 5 , 4 , 5 , 3 , 4 , 3 , 5 , 2 , 4 , 2 , 3 , 2 , 5 , 0 , 4 , 0 , 3 , 0 , 2 , 0 , 1 , 0
, 5 , 4 , 3 , 2 , 1 , 0 ,
'
Q

2. Definicin de la nueva funcin de transicin
'
.
o Para cada conjunto de estados
'
Q C y para cada smbolo X a ,
( ) ( )

C p
p a C a
en
'
, , =
Para cada conjunto de estados que sea accesible desde el
'
0
q , miramos para
todos los estados del conjunto a qu estados transita con la entrada a y
tomamos la unin de todos ellos.
o
'
Q estar formada por aquellos estados que sean accesibles desde el inicial
al definir
'
.
3. Definicin del nuevo estado inicial
'
0
q .
o [ ]
'
0
'
0
q q =
4. Definicin del nuevo conjunto de estados finales
'
F .
o [ ] [ ] { } F q i Q q q q q q q q q q q F
i n n
=
'
3 2 1 0 3 2 1 0
'
... ...
5. Eliminacin de estados inaccesibles.
o Todos aquellos estados de
'
Q (ver paso 1) que no hayan hecho falta en el
paso 2.

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 20

Ejemplo:
Sea el siguiente AFND, calcular el AFDequivalente:


a
b

0 { } 3 , 0 { } 1 , 0

1 2

*
2
2 2

3 4

*
4
4 4


'

a
b

[ ] 0 [ ] 3 , 0 [ ] 1 , 0

[ ] 3 , 0 [ ] 4 , 3 , 0 [ ] 1 , 0

[ ] 1 , 0 [ ] 3 , 0 [ ] 2 , 1 , 0

[ ]
*
4 , 3 , 0
[ ] 4 , 3 , 0 [ ] 4 , 1 , 0

[ ]
*
2 , 1 , 0
[ ] 3 , 2 , 0 [ ] 2 , 1 , 0

[ ]
*
4 , 1 , 0
[ ] 4 , 3 , 0 [ ] 4 , 2 , 1 , 0

[ ]
*
3 , 2 , 0
[ ] 4 , 3 , 2 , 0 [ ] 2 , 1 , 0

[ ]
*
4 , 2 , 1 , 0
[ ] 4 , 3 , 2 , 0 [ ] 4 , 2 , 1 , 0

[ ]
*
4 , 3 , 2 , 0
[ ] 4 , 3 , 2 , 0 [ ] 4 , 2 , 1 , 0

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 21

Autmatas finitos no deterministas con s movimiento :
Extensin de AFNDque permite cambios de estado con la entrada vaca( ) , es decir,
permite evolucionar de un estado a otro sin consumir ningn smbolo de la cadena de entrada.

Los autmatas aceptarn las secuencias de etiquetas que pasan por algn camino que
lleve desde el estado inicial a algn estado final. Cada que se encuentre en el camino es
invisible.

No expande la clase de lenguajes hasta ahora aceptados por los AF , pero proporciona
facilidades para construirlos.

Por ejemplo:
{ }
* * *
2 1 0 = L


Definicin: Autmata finito no deterministas con s movimiento :
Un AFND con s movimiento se define como ( ) F q Q X M , , , ,
0
= donde
slo difiere de un AFND.
{ } { } ( ) Q P Q X :

En el ejemplo anterior:
0 1 2
A A B
B B C
C C


Definicin: Configuracin:
Descripcin instantnea de AFND con s movimiento .
( )
*
, , , X Q q q , donde q representa el estado actual y la cadena que queda por
procesar.

Definicin: Configuracin inicial:
( )
0
, q .

Definicin: Configuracin final:
( )
f
q , , con F q
f
.

Definicin: movimiento:
Es el trnsito entre dos configuraciones.
Se representa: ( ) ( )
'
, , q q a , donde ( ) q a q ,
* '
.
A B C
0

1
2

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 22

Definicin: clausura de un estado, ( ) ( ) Q P Q q : Cl :
( ) { } { } con a de camino Cl
' '
q q Q q q q =
Es decir:
1. ( ) q q Cl
2. si ( ) ( ) ( ) q p q p Cl , Cl
*


Por ejemplo, en el autmata definido anteriormente:

Cl
A { } C B A , ,
B { } C B,
C
{ } C

Definicin: clausura de un conjunto de estados, ( ) ( ) ( ) Q P Q P Q : Cl
'
:
( ) ( )

' '
, Cl : Cl Q q q Q

Observaciones:
( ) ( ) B A B A si Cl Cl
( ) ( ) ( )
' '
Cl Cl Cl Q Q =

Por ejemplo:

Cl
{ } A { } C B A , ,
{ } B A, { } C B A , ,
{ } C B A , , { } C B A , ,

Definicin: Funcin de transicin extendida:
Se extiende { } { } ( ) Q P Q X : a ( ) Q P Q X
* *
: donde:
1. ( ) ( ) q q Cl ,
*
=
2. ( ) ( ) ( ) [ ] q s s x q x Cl , , Cl ,
*
=


3. ( ) ( ) ( ) [ ] q r r x q x , , Cl ,
* *
=



Lenguaje aceptado por un AFND con s movimiento :

Definicin: Aceptacin de palabras:
Una palabra ser aceptada por un AFNDcon s movimiento si y slo
si ( ) F q
0
*
, .
Una palabra es aceptada por un AFNDcon s movimiento si existe algn camino
etiquetado con los smbolos de la palabra que, partiendo del estado inicial lleve a algn estado
final. Pueden aparecer en el camino actos etiquetados con .

Definicin: Lenguaje reconocido por un AFD con s movimiento :
Sea el AFNDcon s movimiento ( ) F q Q X M , , , ,
0
= , el lenguaje aceptado
por M que se representa como ( ) M L es el conjunto ( ) ( ) { } = F q X M L
0
* *
, .
Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 23

Equivalencia entre AFNDcon y sin s movimiento :

Teorema:
Si
*
X L es aceptado por un AFNDcon s movimiento , entonces L es aceptado
por un AFNDsin s movimiento y, por tanto, L es un lenguaje regular.

Algoritmo AFNDcon s movimiento AFNDsin s movimiento :
Dado un AFNDcon s movimiento ( ) F q Q X M , , , ,
0
= , el nuevo autmata lo
definimos como ( )
'
0
' '
, , , , F q Q X M = .
1. Definicin de
'
: ( ) Q P Q X :
'

( ) ( ) q x q x , ,
* '
=
o Calculamos ( ) q P Cl
1
=
o Calculamos ( ) [ ]
1 2
, P q q x P
i i
=


o Calculamos ( )
2 3
Cl P P =
2. Definicin de
'
F :
o Si ( ) F q
0
Cl entonces { } F q F =
0
'

o Si ( ) = F q
0
Cl entonces F F =
'


Ejemplo:
Sea el siguiente AFNDcon s movimiento , calcular el AFNDequivalente:


0 1 2

A A B

B B C

*
C
C


SIN

0 1 2

A { } C B A , , { } C B, { } C

B
{ } C B, { } C

*
C
{ } C

A B C
0

1
2

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 24

Equivalencia entre expresin regular ( ) er y autmata finito( ) AF :

Teorema:
Si r es una expresin regular, entonces existe un AFNDcon s movimiento y con, a
lo sumo, un estado final del que no sale niguna transicin, que acepta ( ) r L .

Demostracin:
Aplicamos el mtodo de induccin al nmero de operadores de la expresin regular:
Caso bsico.
Con0 operadores.
= r = r


x r = con X x


Caso general.
Con1 ms operadores.
o Sean
1
r y
2
r dos expresiones regulares, por tanto, para
1
r existe
( )
1 1 1 1 1 1
, , , , F q X Q M = tal que ( ) ( )
1 1
M L r L = y para
2
r existe
( )
2 2 2 2 2 2
, , , , F q X Q M = tal que ( ) ( )
2 2
M L r L = .
o Supongamos =
2 1
Q Q (renombrar estados) y construimos M .
q q
0

x
q q
0
q
Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 25

o Caso A: ( )
2 1
r r r + =
{ } { } ( )
0 0 2 1 0 0 2 1
, , , , , f q X X f q Q Q M = , con :

( ) ( ) ( ) { }
2 1
o M L M L M L =
o Caso B: ( )
2 1
r r r =
{ } ( )
2 1 2 1 2 1
, , , , f q X X Q Q M = , con :

( ) ( ) ( ) { }
2 2 1 1 2 1
y M L M L M L =
q
1
M
1
f
1


q
2
M
2
f
2

q
0

q
1

f
0

f
1

q
2
f
2

M
1

M
2





Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 26

o Caso C: ( )
*
1
r r =
{ } { } ( )
02 0 1 0 0 1
, , , , , f q X f q Q M = , con :

( ) ( ) { }
*
1
M L M L =
o Reglas de desarrollo:






Teorema:
Si
*
X L es un lenguaje aceptado por un AFD, entonces L se puede describir por una
expresin regular.

Corolario:
Sea X un conjunto finito, y
*
X L . Son equivalentes las siguientes afirmaciones:
L es un lenguaje regular
L es un lenguaje aceptado por algn AFD
L es un lenguaje aceptado por algn AFNDsin s movimiento
L es un lenguaje aceptado por algn AFNDcon s movimiento
L se puede describir por una expresin regular
q
i
q
j
q
k


q
i
q
j

a
b
q
i
q
j
q
k

a b
q
i
a
*
q
j

q
i
a+b q
j

q
i
ab q
j

q
1
M
1
f
1


q
0


f
2




Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 27

Equivalencia entre autmata finito( ) AF y expresin regular ( ) er :
Se trada de, dado un AFDencontrar una expresin regular de tal forma que describan el
mismo lenguaje.
Dado un AFDse denota por
q
L al lenguaje reconocido por el AFDcuando se considera
al estado q como estado inicial.
Se denota por
q
l a la expresin regular que denota al lenguaje
q
L , por tanto, ( )
q q
l L L = .

Definicin: Ecuacin caracterstica:
( )
( )

=
q x q
x q q m
,
'
'
,



Por ejemplo, en el autmata:

( ) 0 , = A A m ( ) = B A m , ( ) = C A m ,
( ) = A B m , ( ) 1 , = B B m ( ) = C B m ,
( ) = A C m , ( ) = B C m , ( ) 2 , = C C m

( )


+ =
Q q
q
q
q
t l q q m l
' '
.
'
, donde:
=
q
t si F q

=
q
t si F q

As, en el autmata del ejemplo:

+ =
+ =
+ =
C C
C B B
B A A
l l
l l l
l l l
2
1
0


Definicin: Equivalencia entre autmata finito( ) AF y expresin regular ( ) er :
Se trata de, dado un AFDencontrar una expresin regular de tal forma que describan el
mismo lenguaje.

Definicin: Regla de Arden:
Sean R , S yT tres expresiones regulares tal que S , entonces:
T S R T R S R
*
= + =

*
S T R T S R R = + =

A B C
0

1
2

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 28

Algoritmo . .r e AFD :
1. Obtener las ecuaciones carctersticas del AF calculando
q
l para todo Q q .
2. Despejar
q
l aplicando las propiedades de las expresiones regulares (principalmente
regla de Arden y distributiva).
3. Si
0
q es el estado inicial,
0
q
l es la expresin regular que denota aquellas cadenas que
partiendo de
0
q llegan a un estado final y por tanto la expresin que denota al
lenguaje reconocido por el AFD.


Ejemplo:
Hallar la expresin regular que describe el lenguaje definido por el autmata:

*
* *
* * *
*
*
*
*
*
*
2
2 1
2 1 0
2
1
0
2
1
0
2
1
0
=
=
=

=
=
=

=
=
=

+ =
+ =
+ =
C
B
A
C
C B
B A
C
C B
B A
C C
C B B
B A A
l
l
l
l
l l
l l
l
l l
l l
l l
l l l
l l l


As,
* * *
2 1 0 = =
A
l er

A B C
0

1
2

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 29

Captulo 1.5. PROPIEDADES DE LOS LENGUAJES REGULARES.

Lema de Pumping:
Cuestin pendiente: Dado un lenguaje L , es regular?
El lema de Pumping sirve para demostrar que un lenguaje L no es regular.

Definicin: Lema de Pumping:
Sea L un lenguaje aceptado por un AFD M con n estados. Sea L y n .
Entonces, es posible descomponer en la forma v v x = , donde la subcadenav es no vaca,
0 , i L v v x
i
y n v x < .

Hiptesis:
L con n
v v x = con 0 , i L v v x
i

n v x <

Tsis:
El lenguaje L es regular.

Propiedades de clausura de los lenguajes regulares:
Las propiedades de clausura expresan la idea de que, cuando uno o varios lenguajes
son regulares, otros relacionados con ellos tambin lo son.
Los lenguajes regulares son cerrados para la unin, concatenacin y clausura
(operador
*
).
Sean
1
L y
2
L dos lenguajes regulares;
1
M y
2
M los autmatas finitos y
1
r y
2
r las
expresiones regulares.
Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 30

Caso A:
2 1
L L
{ } { } ( )
0 0 2 1 0 0 2 1
, , , , , f q X X f q Q Q M = , con :

Caso B:
2 1
L L
{ } ( )
2 1 2 1 2 1
, , , , f q X X Q Q M = , con :

q
1
M
1
f
1


q
2
M
2
f
2

q
0

q
1

f
0

f
1

q
2
f
2

M
1

M
2





Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 31

Caso C:
*
1
L
{ } { } ( )
02 0 1 0 0 1
, , , , , f q X f q Q M = , con :


Teorema:
Si
*
X L es un lenguaje regular, entonces su complementario L X L =
*
tambin lo
es.

Demostracin:
Sea ( ) A L L = para un AFD ( ) F q Q X A , , , ,
0
= , se define ( ) B L L = donde B es
el AFD ( ) F Q q Q X B = , , , ,
0
.
( ) B L si y slo si ( ) F Q q
0
*
, , lo que significa que ( ) A L .

q
1
M
1
f
1


q
0


f
2




Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 32

Teorema:
Si L y M son lenguajes regulares, tambin lo es M L .
M L M L = .

Construccin del AFD:
Sea ( )
L L L L L L
F q Q X A , , , , = y ( )
M M M M M M
F q Q X A , , , , = los AFDs tales
que ( )
L
A L L = y ( )
M
A L M = ,
AFD Aque simule el comportamiento de ambos autmatas:
( ) ( )
M L M L M L
F F q q Q Q X A = , , , , ,
Los estados de Ason pares de estados, el primero de
L
A y el segundo de
M
A .
Estado inicial: ( )
M L
q q ,
Estados finales:
M L
F F
Transiciones de A: Si Aest en el estado( ) q p, y a es el smbolo a la entrada,
suponiendo que ( ) r p a
L
= , y ( ) s q a
M
= , , ( ) ( ) ( ) s r q p a , , , = .
( ) ( ) ( ) ( ) ( ) q a p a q p a
M L
, , , , , =
Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 33

Captulo 1.6. APLICACIONES DE LOS AUTMATAS FINITOS.

La aplicacin ms inmediata de los AF es la construccin de analizadores lxicos.
La tarea del analizador lxico es la de leer carcter a carcter el fichero de entrada y
reconocer las unidades sintcticas, es decir:
Subcadenas de caracteres consecutivos que forman una agrupacin lgica
con significado lxico para lenguaje.
Palabra reservada, identificador, nmero, etctera.
El analizador lxico se construir como un AF , que habitualmente ser
un AFNDcon s movimiento .


Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 34

Captulo 2: LENGUAJES LIBRES DE CONTEXTO.

Captulo 2.1. DEFINICIONES BSICAS.

Definicin: Autmata:
Permite decidir directamente si una palabra dada pertenece a un lenguaje.

Definicin: Gramtica:
Permite definir un lenguaje mediante reglas generadoras de palabras.

Por ejemplo, para representar un nombre seguido de un adjetivo utilizando una
gramtica, decimos:
Todo sustantivo puede ir seguido de un adjetivo
Los sustantivos vlidos sern chico, casa, perro
Los adjetivos vlidos sern pequeo, grande
Es decir:
pequeo , grande Adjetivo
perro , casa , chico Sustantivo
Adjetivo Sustantivo Frase





Definicin: Gramtica:
Una gramtica es una cudrupla ( ) P S JT JN G , , , = donde:
JN (vocabulario no terminal):
Conjunto finito de smbolos que permiten representar estados intermedios de la
generacin de las palabras del lenguaje.
JT (vocabulario terminal):
Conjunto finito de smbolos que forman las palabras del lenguaje.
JN S (smbolo inicial o axioma):
A partir del que se aplican las reglas de la gramtica para obtener las distintas
palabras del lenguaje.
P (conjunto de producciones o reglas de derivacin):
Permiten obtener las palabras del lenguaje.
Par ordenado de palabras ( )
*
, JT JN , representado mediante .
o Esto significa que si es una subcadena de una palabra p , entonces se
puede sustituir por en p .
o En general, las reglas son de la forma , con ( )
+
JT JN y
( )
*
JT JN

Ejemplo:
Operaciones aritmticas con enteros.
/ , * , , Operador
9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 , 0 Digito
Digito , Entero Digito Entero
Entero Operador Entero aritmetica Expresion
+




Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 35

Definicin: Derivacin directa:
Se representa mediante w v y es la aplicacin de una produccin v x a una
palabrav para convertirla en otra palabra w, de tal forma que si x v = , entonces v w = .

Se dice que la produccin v x se aplica a la palabrav para obtener la palabra wo
se dice que dev se deriva directamente w.

Por ejemplo:
2 3 Entero 3 + +

Definicin: Derivacin:
Se representa mediante w v
*
y es la aplicacin de una secuencia de producciones a
una palabra.

Si
1
a ,
2
a ,
3
a ,,
n
a son palabras y
2 1
a a ,
3 2
a a ,
4 3
a a ,,
n n
a a
1
son reglas de derivacin, entonces se dice que
n
a a
*
1
.

Por ejemplo:
7 * 9 Entero Operador Entero
*


Definicin: Derivacin ms a la izquierda:
Cuando se utiliza en cada derivacin directa la produccin aplicada a los smbolos ms a
la izquieda de la palabra.

Definicin: Derivacin ms a la derecha:
Cuando se utiliza en cada derivacin directa la produccin aplicada a los smbolos ms a
la derecha de la palabra.

Definicin: Sentencia:
Se dice que x es una sentencia si x S
*
y
*
JT x .

Definicin: Lenguaje generado por una gramtica:
Es el conjunto de todas las sentencias de la gramtica, es decir, todas las palabras que
se pueden obtener a partir del axioma por la aplicacin de derivaciones.
( ) { }
* *
y = S JT G L

Definicin: Gramticas equivalentes:
Dos gramticas
1
G y
2
G son equivalentes si ( ) ( )
2 1
G L G L = .

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 36

Captulo 2.2. GRAMTICAS LIBRES DE CONTEXTO.

Definicin: Lenguajes regulares:
Los lenguajes regulares se describen mediante autmatas finitos o expresiones
regulares.

Definicin: Lema de Pumping:
Permite demostrar que no todos los lenguajes son regulares.

Definicin: Lenguajes libres de contexto:
Los lenguajes libres de contexto se describen mediante las gramticas libres de
contexto( ) GLC .

Todos los lenguajes regulares son lenguajes libres de contexto, pero no todos los
lenguajes libres de contexto son lenguajes regulares.
Los lenguajes libres de contexto no pueden denotarse mediante expresiones
regulares ni pueden ser reconocidos mediante autmatas finitos.
Los lenguajes libres de contexto sirven para especificar parte de los lenguajes de
programacin.

Definicin: Gramtica libre de contexto, GLC :
Sus producciones responden al modelo A , donde JN A y ( )
*
JT JN .

Definicin: Notacin BNF , Backus Naur Form:
Esta notacin se utiliza para representar la gramtica libre de contexto de un lenguaje
libre de programacin.
Smbolos terminales entre<>
Sustitucin de por = ::

Por ejemplo:
> >< < = > < sentencia condicion :: Ior sentencia for

Definicin: Lenguaje libre de contexto, LLC :
Es el lenguaje generado por una gramticaGLC .
( ) { }
* *
y = S JT G L , es decir ( ) G L si consiste solamente en
smbolos terminales y puede ser derivada desde el smbolo inicial.


Definicin: Simplificacin deGLC :
Consiste en restringir el formato de las producciones de la gramtica sin reducir su poder
generativo de palabras de un LLC .
Cada smbolo no terminal y cada smbolo terminal aparece en la derivacin de
alguna palabra del LLC generado por laGLC .
No hay producciones de la forma B A donde JN B A , .

Los pasos a seguir son los siguientes:
Eliminar smbolos intiles
Eliminar es produccion o producciones vacas
Eliminar producciones unidad
Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 37

Definicin: Smbolos muertos:
Smbolos no terminales de los que no se deriva ninguna cadena de smbolos
terminales.

Definicin: Smbolos inaccesibles:
Smbolos terminales o no terminales a los cuales no se puede llegar desde el smbolo
inicial.

Definicin: Smbolos intiles:
Smbolos terminales o no terminales que no pueden aparecer en la derivacin de
ninguna palabra del LLC .

Lema: Eliminar smbolos muertos:
Dada unaGLC ( ) P S JT JN G , , , = con ( ) G L , se puede encontrar otraGLC
( )
' ' '
, , , P S JT JN G = equivalente aG tal que
'
JN A existe al menos una
palabra
*
JT tal que
*
A .

Algoritmo: Eliminar smbolos muertos:
1. Clculo de
'
JN .
o Si una produccin es de la forma A con
*
JT entonces se aade
el smbolo Aen
'
JN .
o Si una produccin es de la forma
n
x x x x A ...
3 2 1
con
i
x smbolos
terminales o no terminales que ya han sido incluidos en
'
JN , entoncese se
aade el smbolo Aen
'
JN .
2. Clculo de
'
P .
o
'
P ser el conjunto de todas las producciones de P que contengan slo
smbolos pertenecientes a JT JN
'
.

Ejemplo:
Eliminar los smbolos muertos de la gramtica:
B b B
aA A
aB AB S
,
,





B b B
aB S
,




Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 38

Lema: Eliminar smbolos inaccesibles:
Dada unaGLC ( ) P S JT JN G , , , = con ( ) G L , se puede encontrar otraGLC
( )
' ' ' '
, , , P S JT JN G = equivalente aG tal que ( )
' '
JT JN X existe ( )
*
' '
, JT JN tal
que X S
*
.

Algoritmo: Eliminar smbolos inaccesibles:
1. Clculo de
'
JN y
'
JT .
o Se coloca el smbolo inicial en
'
JN .
o Si
'
JN A y la produccin P A
n
, ... , , ,
3 2 1
, se aade a
'
JN
todos los smbolos no terminales que aparecen en cada
i
y a
'
JT todos los
smbolos terminales que aparecen en cada
i
-
2. Clculo de
'
P .
o
'
P ser el conjunto de todas las producciones de P que contengan slo
smbolos pertenecientes a
' '
JT JN .

Ejemplo:
Eliminar los smbolos inaccesibles de la gramtica:
a D
c Cc C
b Bb B
a BC A
A S





,
,
,


c Cc C
b Bb B
a BC A
A S
,
,
,






Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 39

Lema: Eliminar smbolos intiles.
Es importante eliminar primero los smbolos muertos y luego los inaccesibles.

Ejemplo:
Al eliminar smbolos muertos pueden aparecer smbolos inaccesibles.
abc C
CB B
a aB S


,


Eliminamos smbolos muertos:
abc C
a S




Eliminamos smbolos inaccesibles:
a S

Teorema:
Todo LLC no vaco es generado por algunaGLC sin smbolos intiles.

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 40

Lema: Eliminar es produccion o producciones vacas.
Si ( ) G L entonces no se pueden eliminar todas las es produccion deG . Por el
contrario, si ( ) G L entonces s se pueden eliminar todas las es produccion deG .

Definicin: Smbolo anulable:
Un smbolo no terminal Aes anulable si y slo si
*
A .

Por ejemplo:
Dadas las producciones:

,
,
c C
a A
AbC S




Entonces AyC son anulables.

Teorema:
Si ( ) G L es generado por unaGLC G , entonces ( ) { } G L es generada por unaGLC
'
G sin smbolos intiles ni es produccion .

Algoritmo: Eliminar es produccion :
1. Determinar los smbolos anulables.
o Si A es una produccin, entonces Aes anulable.
o Si B es una produccin y todos los smbolos de son anulables,
entonces B es anulable.
2. Determinar
'
P .
Si
n
x x x x A ...
3 2 1
est en P entonces se aade a
'
P todas las producciones
posibles de la forma
n
A ...
3 2 1
donde:
o Si
i
x no es anulable entonces
i i
x =
o Si
i
x es anulable entonces
i i
x = o bien =
i

o No todas las
i
son

Ejemplo:
Eliminar es produccion de la gramtica:
c C
b B
aBC A
Ab S
,
,







c C
b B
c aB aC aBC A
Ab S




, , ,

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 41

Definicin: Produccin unidad:
Las producciones unidad son producciones de la forma B A , es decir, la parte
derecha es un nico smbolo no terminal.

Teorema:
Todo lenguaje libre de contexto sin es produccion est definido por una gramtica sin
smbolos intiles, ni es produccion , ni producciones unidad.

Algoritmo: Eliminar producciones unidad:
1. Por el teorema anterior se puede suponer que no existen es produccion .
2. Clculo de
'
P .
o En
'
P estarn todas las producciones no unidad de P
o Si B A , se aade a
'
P todas las producciones de la forma A ,
siendo B una produccin no unidad de P

Ejemplo:
Encontrar una gramtica equivalente sin producciones unidad:
be E
SABC E D
C d cA C
ggg Sf B
aaC A
D Cbh S






,
, ,
,
,


d cA C
ggg Sf B
aaC A
SABC be Cbh S
,
,
, ,





Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 42

Captulo 2.3. RBOLES DE DERIVACIN. DERIVACIONES Y AMBIGEDAD.

Definicin: rbol de derivacin:
Sea ( ) P S JT JN G , , , = unaGLC . Un rbol es un rbol de derivacin paraG si:
Todo vrtice tiene una etiqueta tomada de { } JT JN
La etiqueta de la raz es el smbolo inicial S
Los vrtices interiores tienen etiquetas deJN
Si un nodo n tiene etiqueta Ay
k
n n n n ,..., , ,
3 2 1
respectivamente son hijos del vrtice n ,
ordenados de izquierda a derecha, con etiquetas
k
x x x x ,..., , ,
3 2 1
respectivamente,
entonces:
k
x x x x A , ... , , ,
3 2 1

debe ser una produccin en P
Si el vrtice n tiene etiqueta , entonces n es una hoja y es el nico hijo de su padre.

Ejemplo:
Sea ( ) P S JT JN G , , , = unaGLC con P : aSb ab S , . La derivacin de la cadena
aaabbb ser:
aaabbb aaSbb aSb S y el rbol de derivacin:


Definicin: Produccin del rbol de derivacin:
Si leemos las etiquetas de las hojas de izquierda a derecha tenemos una sentencia.
Llamamos a esta cadena la produccin del rbol de derivacin.

Teorema:
Sea ( ) P S JT JN G , , , = unaGLC . Entonces
*
S (de S se deriva ) si y slo si hay
un rbol de derivacin en la gramticaG con la produccin de .

Si es una cadena de ( ) G L para la gramtica libre de contextoG , entonces tiene al
menos un rbol de derivacin. Referido a un rbol de derivacin particular, tendr una nica
derivacin a la izquierda y otra a la derecha.
S
a S b
S a b
a b
Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 43

Ambigedad:
Es posible que exista ms de un rbol de derivacin para una nica cadena.

Por ejemplo:
Sea ( ) P S JT JN G , , , = con { } ) (, ,, , num , id + = JT , { } E JN = y P :
num , id , ) ( , , E E E E E S + .
La cadena id id id + tiene dos rboles de derivacin:




Definicin: Ambigedad:
Una gramtica libre de contextoG se dice que es ambigua si existe alguna palabra
perteneciente al lenguaje que genera que tenga ms de un rbol de derivacin.

Definicin: Lenguaje intrnsecamente ambiguo:
Un lenguaje es intrnsecamente ambiguo cuando no existe ninguna gramtica libre de
contexto que lo genere que no sea ambigua.
E
E + E
E id
id
E
id
E
E E
E id +
id
E
id
Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 44

Captulo 2.4. AUTMATAS DE PILA.

Podramos encontrar un autmata finito que reconociera el lenguaje { } 0 1 0 = n L
n n
?
La longitud de la cadena puede ser infinita y no podemos contruir infinitos estados. El
lema de Pumping nos dice que no.

Idea:
No tenemos forma de memorizar el nmero de ceros que han llegado para compararlo
con el nmero de unos.

Autmata de pila:
Un autmata de pila es aquella mquina que reconoce lenguajes generados por
gramticas libres de contexto.
La aceptacin de las cadenas por parte de estos autmatas puede ser:
Por vaciado de pila
Por estados finales

Definicin: Autmata de pila:
Un autmata de pila es una sptupla ( ) F f q Z Q A , , , , , ,
0 0
= donde:
es el alfabeto de entrada
es el alfabeto de la pila
Qes el conjunto de estados
Z es el smbolo inicial de la pila

0
q es el estado inicial
f es una aplicacin { } ( )
*
: Q P Q f
F es un subconjunto deQque contiene los estados finales

Definicin: Configuracin:
Descripcin instantnea del AP .
( ) , , q , donde q representa el estado actual del autmata,
*
la cadena que
queda por procesar (si = toda la cadena de entrada ha sido leda) y es el contendo de la
pila en el instante actual (si = la pila est vaca,
*
)

Definicin: Configuracin inicial:
( ) Z q , ,
0
,
*
.

Definicin: Configuracin final:
Autmata de pila por estados finales:
( ) X p , , , con F p y
*
X .

Autmata de pila por vaciado de pila:
( ) , , p , con F p .

Definicin: movimiento:
Es el trnsito entre dos configuraciones.
Se representa: ( ) ( ) , , , ,
'
q Z a q , donde la funcin f para esta entrada toma
el valor:
( ) ( ) Z a q f q , , ,
'
.
Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 45

Lenguaje aceptado por un AP :

Definicin: Lenguaje aceptado por estados finales:
El lenguaje aceptado por estados finales por el AP ( ) F f q Z Q A , , , , , ,
0 0
= es:
( ) ( ) { }
* *
0
*
y con , , , , , X F p X p Z q

Definicin: Lenguaje aceptado por vaciado de pila:
El lenguaje aceptado por vaciado de pila por el AP ( ) = , , , , , ,
0 0
f q Z Q A es:
( ) ( ) { } Q p p Z q con , , , , ,
*
0
*


Ejemplo:
Autmata de pila que reconozca el lenguaje libre de contexto { } 0 1 0 = n L
n n
.
( ) F f q Z Q A , , , , , ,
0 0
= con:
Alfabeto de entrada. { } 1 , 0 =
Alfabeto de la pila. { } C Z, =
o Llega un cero. Introducimos unaC en la pila
o Llega un uno. Retiramos unaC de la pila
o Estado inicial de la pila. Z
Conjunto de estados. { } q p Q , =
o Estado p . Leyendo ceros (apilando)
o Estado q . Leyendo unos (desapilando)
Estado inicial. p q =
0

Comenzamos leyendo ceros.
Estados finales. = F
El autmata funcionar por vaciado de pila.
La funcin f .
( ) ( ) { }
( ) ( ) { }
( ) ( ) { }
( ) ( ) { }
( ) ( ) { }

, , ,
, , 1 ,
, , 1 ,
, , 0 ,
, , 0 ,
q Z q f
q C q f
p C p f
CC p C p f
CZ p Z p f
=
=
=
=
=

Con f definimos aquellos movimientos que hacen que las cadenas del lenguaje sean
aceptadas, no definimos aquellas transiciones que no nos conduzcan a una
aceptacin.

Definicin: Autmata de pila determinista:
Se dice que un AP es determinista cuando cumple que:
1. Q q y X , si ( ) X q f , , entonces ( ) = a X a q f , , ,
Es decir, no se podr obtar por un funcionamiento independiente de la entrada u otro
dependiente de la entrada.
2. Q q , A y { } ( ) a debe cumplir que ( ) ( ) 1 , , cardinal A a q f
No habr para ningn estado ms de un posible movimiento dado un determinado
smbolo de entrada y uno en la cima de la pila.

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 46

Teorema:
El conjunto de lenguajes aceptados por estado final es igual al conjunto de lenguajes
aceptados por vaciado de pila.

Teorema:
A toda gramtica libre de contexto, le corresponde un AP que reconoce, por vaciado de
pila, el lenguaje generado por ella y viceversa.

Corolario:
El conjunto de lenguajes reconocidos por los AP son los lenguajes libres de contexto y
todo LLC tiene un autmata de pila que lo reconoce.

Tambin se puede deducir que existe una correspondencia entre los lenguajes libres de
contexto, las gramticas libres de contexto y los autmatas de pila.


Lenguaje
Autmata Gramtica equivale
describe
genera
reconoce
genera
Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 47

Algoritmo AP GLC :
Sea la gramtica libre de contexto ( ) P S JT JN G , , , = , construimos un AP
( ) = , , , , , ,
0
f q Z Q A donde:
JT =
JT JN =
{ } q Q =
S Z =
q q =
0

f se define como:
( ) ( ) JT a a a q f q = , , , ,
( ) ( ) A q f q , , , = si y slo si P A , donde JN A y ( ) JT JN

Ejemplo:
Sea la gramtica ( ) P S JT JN G , , , = tal que { } ) (, ,, , id + = JT , { } F T E JN , , = , E S =
y P :
( ) id ,
,
,
E F
F F T T
T T E E


+

Hallar el autmata de pila equivalente:
( ) = , , , , , ,
0
f q Z Q A , donde:
{ } ) (, ,, , id + =
{ } F T E , , ), (, ,, , id + =
{ } q Q =
E Z =
q q =
0

f :
( ) ( ) { }
( ) ( ) { }
( ) ( ) { }
( ) ( ) { }
( ) ( ) { }
( ) ( ) ( ) { }
( ) ( ) ( ) { }
( ) ( ) ( ) ( ) { } id , , , E , ,
, , , , ,
, , , E , ,
, ) , ) ,
, ( , ( ,
, , ,
, , ,
, id , id ,
q E q q f
F q F T q T q f
T q T E q q f
q q f
q q f
q q f
q q f
q q f
=
=
+ =
=
=
=
= + +
=




Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 48

Captulo 2.5. ALGORITMOS DE DECISIN. FNC Y CYK.

Teorema:
Cualquier lenguaje libre de contexto sin es generado por una gramtica en la que todas
las producciones son de la forma a A BC A , donde JN C B A , , y JT a .

Definicin: Forma normal de Chomsky, FNC :
Una gramtica que tiene todas las producciones en la forma indicada por el teorema
anterior se dice que estn en forma normal de Chomsky( ) FNC .

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 49

Algoritmo FNC GLC :
SuponemosG unaGLC de forma que ( ) G L no contiene .
1. Paso previo: Eliminar es produccion , producciones unidad y smbolos intiles.
En este momento, cualquier produccin de la forma x A ya est en FNC ,
porque x tiene que ser un terminal (no hay producciones unidad).
2. Nos ocuparemos de producciones de la forma
m
x x x x A ...
3 2 1
, con 2 m .
o Si
i
x es un smbolo terminal, a , introducimos un nuevo smbolo no
terminal
a
C y una produccin a C
a
y reemplazamos
i
x por
a
C .
o Repetimos el proceso para cada smbolo terminal y para cada produccin.
3. Tendremos producciones de la forma
m
B B B B A ...
3 2 1
, con 2 m .
o Si 2 = m ya est en FNC .
o Sino, creamos smbolos no terminales
2 3 2 1
,..., , ,
m
D D D D y reemplazamos la
produccin
m
B B B B A ...
3 2 1
por el conjunto de producciones:
n m m
D B D
D B D
D B D
D B A
1 2
3 3 2
2 2 1
1 1
...







Ejemplo:
Consideremos laGLC { } { } ( ) S P b a B A S G , , , , , , = con P el conjunto de producciones:
b bS aBB B
a aS bAA A
aB bA S
, ,
, ,
,




Buscar una gramtica equivalente en FNC :
b Y
a X
XB D
YA C
b YS DB B
a XS CA A
XB YA S







, ,
, ,
,



Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 50

Cuestin: Es un lenguaje libre de contexto vaco?
Un lenguaje libre de contexto ser vaci si, a partir de S (el axioma), no podemos llegar a
cadenas de smbolos terminales. Es decir, basta estudiar si S es un smbolo muerto.

Cuestin: Es un lenguaje libre de contexto infinito?
Para ver si ( ) G L es finito, buscamos unaGLC
'
G en FNC y sin smbolos intiles, que
genere ( ) { } G L . ( )
'
G L ser finito si ( ) G L lo es.

Construimos un grafo dirigido con un vrtice para cada variable y una flecha del
vrtice Aal vrtice B si hay una produccin de la forma BC A CB A para
cualquier C .
Entonces, el lenguaje creado es finito si y slo si este grafo no tiene ciclos.

Por ejemplo:
a C
b CC B
a BC A
AB S




,
,


El grafo carece de ciclos y por tanto el lenguaje es finito.

A
S
B
C
Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 51

Cuestin: Dada unaGLC ( ) P S JT JN G , , , = ,
*
JT x , ( ) G L x ?
Para responder a esta cuestin utilizaremos el algoritmo Cocke Younger Kasami
( ) CYK .
Partimos de unaGLC en forma normal de Chomsky.
Se trata de reconstruir el rbol de derivacin para x de abajo arriba. Iremos obteniendo
losJN que generan las distintas subcadenas de x . Estos conjuntos deJN se denominarn
if
J y
contienen smbolosJN que derivan la subcadena de x que comienza en la posicini y con
longitud f .
El objetivo es obtener losJN del conjunto
n
JN
1
(toda la cadena x ), si uno de ellos es el
axioma, entonces ( ) G L x .

AlgoritmoCYK :
Formalmente, podemos expresar el algoritmo anterior como sigue:
begin
for i := 1 to n do
Vij := {A | A -> a es una produccin de P y el i - simo smbolo de x es a}
/* Longitudes sucesivas */
for j := 2 to n do
/* Principio de la palabra */
for i := 1 to n - j + 1 do
begin
Vij := 0;
for k := 1 to j - 1 do
V ij := Vij U {A | A -> BC es una produccin de P, B
est en Vik y C est en Vi+j-k}
end

end

El algoritmo va a ir rellenando la siguiente matriz:
11
J

21
J
31
J
41
J
51
J
12
J

22
J
32
J
42
J

13
J

23
J
33
J

14
J

24
J

15
J



Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 52

Ejemplo:
Dada unaGLC ( ) P S JT JN G , , , = , con P :
a AB C
b CC B
a BA A
BC AB S
,
,
,
,





Determinar si la palabrabaaba pertenece al lenguaje generado por G .

b
a a
b
a
1
11
J
{ } B
21
J
{ } C A,
31
J
{ } C A,
41
J
{ } B
51
J
{ } C A,
2
12
J
{ } S A,
22
J
{ } B
32
J
{ } C S,
42
J
{ } S A,

3
13
J

23
J
{ } B
33
J
{ } B

4
14
J

24
J
{ } C A,

5
15
J
{ } S C A , ,


Como
15
J S , la palabra pertenece al lenguaje.

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 53

Captulo 2.6. PROPIEDADES DE LOS LENGUAJES LIBRES DE CONTEXTO.

Teorema:
Los lenguajes libres de contexto son cerrados bajo la unin, la concatenacin y el cierre
de Kleene.
Sean
1
L y
2
L dos lenguajes libres de contexto y
1
G y
2
G las gramticas libres de
contexto que reconocen cada lenguaje, respectivamente:
Caso A:
2 1
L L
{ } ( ) P S JT JT S JN JN G , , ,
3 1 2 1
= , donde P tiene
2 1
P P y adems las
producciones:
2 1
, S S S
Caso B:
2 1
L L
{ } ( ) P S JT JT S JN JN G , , ,
3 1 2 1
= , donde P tiene
2 1
P P y adems la
produccin:
2 1
S S S
Caso C: ( )
*
1
L :
{ } ( ) P S JT S JN G , , ,
1 1
= , donde P tiene
1
P , ms las producciones:
,
1
S S S

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 54

Apndice A: LGORITMOS.

Minimizacin de autmatas finitos deterministas:
Partimos de un AFD ( ) F q Q X A , , , ,
0
= . Hallaremos un AFDque acepta ( ) A L y
tiene el menor nmero de estados posibles, ( )
' '
0
' ' '
, , , , F q Q X A = .
El algoritmo consiste en determinar las clases de equivalencia en el conjunto de estados.
6. Se elimina cualquier estado que no sea accesible desde el inicial.
7. Se dividen los estados restantes en particiones de forma que todos los estados de
una particin sean equivalentes y no haya pares de estados equivalentes en
particiones distintas.
Construir una particin inicial dividiendo el conjuntoQen dos grupos: estados
finales F y no finales F Q .
Determinar una nueva particin
nueva
a partir deaplicando el siguiente procedimiento
para cada grupoG de:
o Dividir G en dos subgrupos tales que dos estados
i
q y
f
q deG estarn en el
mismo subgrupo si y slo si para cada entradae , los estados
i
q y
f
q tienen
transiciones cone hacia estados del mismo grupo de.
o Sustituir G por sus grupos en
nueva
.
Si
nueva
, se han creado nuevos subgrupos:
o
nueva
=
o volver al paso 2.2
en caso contrario, es decir, si ya no salen ms grupos:
o =
Iinal

o ir al paso 3
8. Se escoge un estado de cada grupo de la particin
Iinal
como representante para
formar el nuevo conjunto
'
Q .
9. Clculo de
'
en
'
A . Sea
i
q un estado representante, sea un smbolo a tal
que ( )
f i
q q a = , y sea
k
q el representante del grupo de
f
q , entonces ( )
k i
q q a = ,
10. Estado inicial y finales.
o El estado inicial
'
0
q de
'
A se elige como el representante del grupo que
contiene al estado inicial
0
q de A.
o El conjunto de estados finales
'
F estar formado por los representantes de
grupos donde haya estados finales.

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 55

Ejemplo:
Minimizar el AFD ( ) F q Q X A , , , ,
0
= donde { } b a X , = , { } 5 , 4 , 3 , 2 , 1 = Q , 1
0
= q ,
{ }
5
q F = y viene dada por la siguiente tabla:

a
b
1 2 3
2 2 4
3 2 3
4 2 5
5 2 3
{ }
{ }
{ }
{ }
{ }
{ }

=
=
=
=

5
4
2
3 , 1
3 , 2 , 1
4 , 3 , 2 , 1
2
12
112
111
11
1
G
G
G
G
G
G

Luego, ( )
' '
0
' ' '
, , , , F q Q X A = donde { } b a X , = , { } 5 , 4 , 2 , 1
'
= Q , 1
'
0
= q , { }
5
'
q F = y
'

viene dada por:
'

a
b
1 2 1
2 2 4
4 2 5
5 2 1

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 56

Algoritmo AFD AFND :
6. Definicin del nuevo conjunto de estados
'
Q .
o ( ) Q P Q =
'
(conjunto de partes deQ)
o Notacin: al conjunto{ }
n k f i
q q q q ,..., , , lo denotamos por [ ]
n k f i
q q q q ...
o A menudo, no todos los estados de
'
Q sern accesibles desde el estado
inicial
'
0
q . En el paso 2 se determin cuales son accesibles.
o
[ ] [ ] [ ] [ ] [ ] [ ] [ ]
[ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
[ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
[ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
[ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
[ ] [ ] [ ] [ ] [ ] [ ]


=
5 , 4 , 3 , 2 , 1 , 5 , 4 , 3 , 2 , 5 , 3 , 2 , 1 , 4 , 3 , 2 , 1 , 5 , 4 , 3 , 0 , 5 , 4 , 2 , 0
, 5 , 3 , 2 , 0 , 4 , 3 , 2 , 0 , 5 , 4 , 1 , 0 , 5 , 3 , 1 , 0 , 4 , 3 , 1 , 0 , 5 , 2 , 1 , 0 , 4 , 2 , 1 , 0 , 3 , 2 , 1 , 0
, 5 , 4 , 3 , 5 , 4 , 2 , 5 , 3 , 2 , 4 , 3 , 2 , 5 , 4 , 1 , 5 , 3 , 1 , 4 , 3 , 1 , 5 , 2 , 1 , 4 , 2 , 1 , 3 , 2 , 1
, 5 , 4 , 0 , 5 , 3 , 0 , 4 , 3 , 0 , 5 , 2 , 0 , 4 , 2 , 0 , 3 , 2 , 0 , 5 , 1 , 0 , 4 , 1 , 0 , 3 , 1 , 0 , 2 , 1 , 0
, 5 , 4 , 5 , 3 , 4 , 3 , 5 , 2 , 4 , 2 , 3 , 2 , 5 , 0 , 4 , 0 , 3 , 0 , 2 , 0 , 1 , 0
, 5 , 4 , 3 , 2 , 1 , 0 ,
'
Q

7. Definicin de la nueva funcin de transicin
'
.
o Para cada conjunto de estados
'
Q C y para cada smbolo X a ,
( ) ( )

C p
p a C a
en
'
, , =
Para cada conjunto de estados que sea accesible desde el
'
0
q , miramos para
todos los estados del conjunto a qu estados transita con la entrada a y
tomamos la unin de todos ellos.
o
'
Q estar formada por aquellos estados que sean accesibles desde el inicial
al definir
'
.
8. Definicin del nuevo estado inicial
'
0
q .
o [ ]
'
0
'
0
q q =
9. Definicin del nuevo conjunto de estados finales
'
F .
o [ ] [ ] { } F q i Q q q q q q q q q q q F
i n n
=
'
3 2 1 0 3 2 1 0
'
... ...
10. Eliminacin de estados inaccesibles.
o Todos aquellos estados de
'
Q (ver paso 1) que no hayan hecho falta en el
paso 2.

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 57

Ejemplo:
Sea el siguiente AFND, calcular el AFDequivalente:


a
b

0 { } 3 , 0 { } 1 , 0

1 2

*
2
2 2

3 4

*
4
4 4


'

a
b

[ ] 0 [ ] 3 , 0 [ ] 1 , 0

[ ] 3 , 0 [ ] 4 , 3 , 0 [ ] 1 , 0

[ ] 1 , 0 [ ] 3 , 0 [ ] 2 , 1 , 0

[ ]
*
4 , 3 , 0
[ ] 4 , 3 , 0 [ ] 4 , 1 , 0

[ ]
*
2 , 1 , 0
[ ] 3 , 2 , 0 [ ] 2 , 1 , 0

[ ]
*
4 , 1 , 0
[ ] 4 , 3 , 0 [ ] 4 , 2 , 1 , 0

[ ]
*
3 , 2 , 0
[ ] 4 , 3 , 2 , 0 [ ] 2 , 1 , 0

[ ]
*
4 , 2 , 1 , 0
[ ] 4 , 3 , 2 , 0 [ ] 4 , 2 , 1 , 0

[ ]
*
4 , 3 , 2 , 0
[ ] 4 , 3 , 2 , 0 [ ] 4 , 2 , 1 , 0

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 58

Algoritmo AFNDcon s movimiento AFNDsin s movimiento :
Dado un AFNDcon s movimiento ( ) F q Q X M , , , ,
0
= , el nuevo autmata lo
definimos como ( )
'
0
' '
, , , , F q Q X M = .
3. Definicin de
'
: ( ) Q P Q X :
'

( ) ( ) q x q x , ,
* '
=
o Calculamos ( ) q P Cl
1
=
o Calculamos ( ) [ ]
1 2
, P q q x P
i i
=


o Calculamos ( )
2 3
Cl P P =
4. Definicin de
'
F :
o Si ( ) F q
0
Cl entonces { } F q F =
0
'

o Si ( ) = F q
0
Cl entonces F F =
'


Ejemplo:
Sea el siguiente AFNDcon s movimiento , calcular el AFNDequivalente:


0 1 2

A A B

B B C

*
C
C


SIN

0 1 2

A { } C B A , , { } C B, { } C

B
{ } C B, { } C

*
C
{ } C

A B C
0

1
2

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 59

Equivalencia entre expresin regular ( ) er y autmata finito( ) AF :

Teorema:
Si r es una expresin regular, entonces existe un AFNDcon s movimiento y con, a
lo sumo, un estado final del que no sale niguna transicin, que acepta ( ) r L .

Demostracin:
Aplicamos el mtodo de induccin al nmero de operadores de la expresin regular:
Caso bsico.
Con0 operadores.
= r = r


x r = con X x


Caso general.
Con1 ms operadores.
o Sean
1
r y
2
r dos expresiones regulares, por tanto, para
1
r existe
( )
1 1 1 1 1 1
, , , , F q X Q M = tal que ( ) ( )
1 1
M L r L = y para
2
r existe
( )
2 2 2 2 2 2
, , , , F q X Q M = tal que ( ) ( )
2 2
M L r L = .
o Supongamos =
2 1
Q Q (renombrar estados) y construimos M .
q q
0

x
q q
0
q
Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 60

o Caso A: ( )
2 1
r r r + =
{ } { } ( )
0 0 2 1 0 0 2 1
, , , , , f q X X f q Q Q M = , con :

( ) ( ) ( ) { }
2 1
o M L M L M L =
o Caso B: ( )
2 1
r r r =
{ } ( )
2 1 2 1 2 1
, , , , f q X X Q Q M = , con :

( ) ( ) ( ) { }
2 2 1 1 2 1
y M L M L M L =
q
1
M
1
f
1


q
2
M
2
f
2

q
0

q
1

f
0

f
1

q
2
f
2

M
1

M
2





Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 61

o Caso C: ( )
*
1
r r =
{ } { } ( )
02 0 1 0 0 1
, , , , , f q X f q Q M = , con :

( ) ( ) { }
*
1
M L M L =
o Reglas de desarrollo:






q
i
q
j
q
k


q
i
q
j

a
b
q
i
q
j
q
k

a b
q
i
a
*
q
j

q
i
a+b q
j

q
i
ab q
j

q
1
M
1
f
1


q
0


f
2




Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 62

Equivalencia entre autmata finito( ) AF y expresin regular ( ) er :
Se trada de, dado un AFDencontrar una expresin regular de tal forma que describan el
mismo lenguaje.
Dado un AFDse denota por
q
L al lenguaje reconocido por el AFDcuando se considera
al estado q como estado inicial.
Se denota por
q
l a la expresin regular que denota al lenguaje
q
L , por tanto, ( )
q q
l L L = .

Definicin: Ecuacin caracterstica:
( )
( )

=
q x q
x q q m
,
'
'
,



Por ejemplo, en el autmata:

( ) 0 , = A A m ( ) = B A m , ( ) = C A m ,
( ) = A B m , ( ) 1 , = B B m ( ) = C B m ,
( ) = A C m , ( ) = B C m , ( ) 2 , = C C m

( )


+ =
Q q
q
q
q
t l q q m l
' '
.
'
, donde:
=
q
t si F q

=
q
t si F q

As, en el autmata del ejemplo:

+ =
+ =
+ =
C C
C B B
B A A
l l
l l l
l l l
2
1
0


Definicin: Regla de Arden:
Sean R , S yT tres expresiones regulares tal que S , entonces:
T S R T R S R
*
= + =

*
S T R T S R R = + =

A B C
0

1
2

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 63

Algoritmo . .r e AFD :
4. Obtener las ecuaciones carctersticas del AF calculando
q
l para todo Q q .
5. Despejar
q
l aplicando las propiedades de las expresiones regulares (principalmente
regla de Arden y distributiva).
6. Si
0
q es el estado inicial,
0
q
l es la expresin regular que denota aquellas cadenas que
partiendo de
0
q llegan a un estado final y por tanto la expresin que denota al
lenguaje reconocido por el AFD.


Ejemplo:
Hallar la expresin regular que describe el lenguaje definido por el autmata:

*
* *
* * *
*
*
*
*
*
*
2
2 1
2 1 0
2
1
0
2
1
0
2
1
0
=
=
=

=
=
=

=
=
=

+ =
+ =
+ =
C
B
A
C
C B
B A
C
C B
B A
C C
C B B
B A A
l
l
l
l
l l
l l
l
l l
l l
l l
l l l
l l l


As,
* * *
2 1 0 = =
A
l er

A B C
0

1
2

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 64

Simplificacin deGLC :
Consiste en restringir el formato de las producciones de la gramtica sin reducir su poder
generativo de palabras de un LLC .
Cada smbolo no terminal y cada smbolo terminal aparece en la derivacin de
alguna palabra del LLC generado por laGLC .
No hay producciones de la forma B A donde JN B A , .

Los pasos a seguir son los siguientes:
Eliminar smbolos intiles
Eliminar es produccion o producciones vacas
Eliminar producciones unidad

Definicin: Smbolos muertos:
Smbolos no terminales de los que no se deriva ninguna cadena de smbolos
terminales.

Definicin: Smbolos inaccesibles:
Smbolos terminales o no terminales a los cuales no se puede llegar desde el smbolo
inicial.

Definicin: Smbolos intiles:
Smbolos terminales o no terminales que no pueden aparecer en la derivacin de
ninguna palabra del LLC .

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 65

Lema: Eliminar smbolos muertos:
Dada unaGLC ( ) P S JT JN G , , , = con ( ) G L , se puede encontrar otraGLC
( )
' ' '
, , , P S JT JN G = equivalente aG tal que
'
JN A existe al menos una
palabra
*
JT tal que
*
A .

Algoritmo: Eliminar smbolos muertos:
3. Clculo de
'
JN .
o Si una produccin es de la forma A con
*
JT entonces se aade
el smbolo Aen
'
JN .
o Si una produccin es de la forma
n
x x x x A ...
3 2 1
con
i
x smbolos
terminales o no terminales que ya han sido incluidos en
'
JN , entoncese se
aade el smbolo Aen
'
JN .
4. Clculo de
'
P .
o
'
P ser el conjunto de todas las producciones de P que contengan slo
smbolos pertenecientes a JT JN
'
.

Ejemplo:
Eliminar los smbolos muertos de la gramtica:
B b B
aA A
aB AB S
,
,





B b B
aB S
,




Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 66

Lema: Eliminar smbolos inaccesibles:
Dada unaGLC ( ) P S JT JN G , , , = con ( ) G L , se puede encontrar otraGLC
( )
' ' ' '
, , , P S JT JN G = equivalente aG tal que ( )
' '
JT JN X existe ( )
*
' '
, JT JN tal
que X S
*
.

Algoritmo: Eliminar smbolos inaccesibles:
3. Clculo de
'
JN y
'
JT .
o Se coloca el smbolo inicial en
'
JN .
o Si
'
JN A y la produccin P A
n
, ... , , ,
3 2 1
, se aade a
'
JN
todos los smbolos no terminales que aparecen en cada
i
y a
'
JT todos los
smbolos terminales que aparecen en cada
i
-
4. Clculo de
'
P .
o
'
P ser el conjunto de todas las producciones de P que contengan slo
smbolos pertenecientes a
' '
JT JN .

Ejemplo:
Eliminar los smbolos inaccesibles de la gramtica:
a D
c Cc C
b Bb B
a BC A
A S





,
,
,


c Cc C
b Bb B
a BC A
A S
,
,
,






Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 67

Lema: Eliminar smbolos intiles.
Es importante eliminar primero los smbolos muertos y luego los inaccesibles.

Ejemplo:
Al eliminar smbolos muertos pueden aparecer smbolos inaccesibles.
abc C
CB B
a aB S


,


Eliminamos smbolos muertos:
abc C
a S




Eliminamos smbolos inaccesibles:
a S


Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 68

Lema: Eliminar es produccion o producciones vacas.
Si ( ) G L entonces no se pueden eliminar todas las es produccion deG . Por el
contrario, si ( ) G L entonces s se pueden eliminar todas las es produccion deG .

Definicin: Smbolo anulable:
Un smbolo no terminal Aes anulable si y slo si
*
A .

Por ejemplo:
Dadas las producciones:

,
,
c C
a A
AbC S




Entonces AyC son anulables.

Teorema:
Si ( ) G L es generado por unaGLC G , entonces ( ) { } G L es generada por unaGLC
'
G sin smbolos intiles ni es produccion .

Algoritmo: Eliminar es produccion :
3. Determinar los smbolos anulables.
o Si A es una produccin, entonces Aes anulable.
o Si B es una produccin y todos los smbolos de son anulables,
entonces B es anulable.
4. Determinar
'
P .
Si
n
x x x x A ...
3 2 1
est en P entonces se aade a
'
P todas las producciones
posibles de la forma
n
A ...
3 2 1
donde:
o Si
i
x no es anulable entonces
i i
x =
o Si
i
x es anulable entonces
i i
x = o bien =
i

o No todas las
i
son

Ejemplo:
Eliminar es produccion de la gramtica:
c C
b B
aBC A
Ab S
,
,







c C
b B
c aB aC aBC A
Ab S




, , ,

Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 69

Definicin: Produccin unidad:
Las producciones unidad son producciones de la forma B A , es decir, la parte
derecha es un nico smbolo no terminal.

Teorema:
Todo lenguaje libre de contexto sin es produccion est definido por una gramtica sin
smbolos intiles, ni es produccion , ni producciones unidad.

Algoritmo: Eliminar producciones unidad:
3. Por el teorema anterior se puede suponer que no existen es produccion .
4. Clculo de
'
P .
o En
'
P estarn todas las producciones no unidad de P
o Si B A , se aade a
'
P todas las producciones de la forma A ,
siendo B una produccin no unidad de P

Ejemplo:
Encontrar una gramtica equivalente sin producciones unidad:
be E
SABC E D
C d cA C
ggg Sf B
aaC A
D Cbh S






,
, ,
,
,


d cA C
ggg Sf B
aaC A
SABC be Cbh S
,
,
, ,






Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 70

Algoritmo AP GLC :
Sea la gramtica libre de contexto ( ) P S JT JN G , , , = , construimos un AP
( ) = , , , , , ,
0
f q Z Q A donde:
JT =
JT JN =
{ } q Q =
S Z =
q q =
0

f se define como:
( ) ( ) JT a a a q f q = , , , ,
( ) ( ) A q f q , , , = si y slo si P A , donde JN A y ( ) JT JN

Ejemplo:
Sea la gramtica ( ) P S JT JN G , , , = tal que { } ) (, ,, , id + = JT , { } F T E JN , , = , E S =
y P :
( ) id ,
,
,
E F
F F T T
T T E E


+

Hallar el autmata de pila equivalente:
( ) = , , , , , ,
0
f q Z Q A , donde:
{ } ) (, ,, , id + =
{ } F T E , , ), (, ,, , id + =
{ } q Q =
E Z =
q q =
0

f :
( ) ( ) { }
( ) ( ) { }
( ) ( ) { }
( ) ( ) { }
( ) ( ) { }
( ) ( ) ( ) { }
( ) ( ) ( ) { }
( ) ( ) ( ) ( ) { } id , , , E , ,
, , , , ,
, , , E , ,
, ) , ) ,
, ( , ( ,
, , ,
, , ,
, id , id ,
q E q q f
F q F T q T q f
T q T E q q f
q q f
q q f
q q f
q q f
q q f
=
=
+ =
=
=
=
= + +
=



Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 71

Algoritmo FNC GLC :
SuponemosG unaGLC de forma que ( ) G L no contiene .
4. Paso previo: Eliminar es produccion , producciones unidad y smbolos intiles.
En este momento, cualquier produccin de la forma x A ya est en FNC ,
porque x tiene que ser un terminal (no hay producciones unidad).
5. Nos ocuparemos de producciones de la forma
m
x x x x A ...
3 2 1
, con 2 m .
o Si
i
x es un smbolo terminal, a , introducimos un nuevo smbolo no
terminal
a
C y una produccin a C
a
y reemplazamos
i
x por
a
C .
o Repetimos el proceso para cada smbolo terminal y para cada produccin.
6. Tendremos producciones de la forma
m
B B B B A ...
3 2 1
, con 2 m .
o Si 2 = m ya est en FNC .
o Sino, creamos smbolos no terminales
2 3 2 1
,..., , ,
m
D D D D y reemplazamos la
produccin
m
B B B B A ...
3 2 1
por el conjunto de producciones:
n m m
D B D
D B D
D B D
D B A
1 2
3 3 2
2 2 1
1 1
...







Ejemplo:
Consideremos laGLC { } { } ( ) S P b a B A S G , , , , , , = con P el conjunto de producciones:
b bS aBB B
a aS bAA A
aB bA S
, ,
, ,
,




Buscar una gramtica equivalente en FNC :
b Y
a X
XB D
YA C
b YS DB B
a XS CA A
XB YA S







, ,
, ,
,


Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 72

Es un lenguaje libre de contexto vaco?
Un lenguaje libre de contexto ser vaci si, a partir de S (el axioma), no podemos llegar a
cadenas de smbolos terminales. Es decir, basta estudiar si S es un smbolo muerto.

Es un lenguaje libre de contexto infinito?
Para ver si ( ) G L es finito, buscamos unaGLC
'
G en FNC y sin smbolos intiles, que
genere ( ) { } G L . ( )
'
G L ser finito si ( ) G L lo es.

Construimos un grafo dirigido con un vrtice para cada variable y una flecha del
vrtice Aal vrtice B si hay una produccin de la forma BC A CB A para
cualquier C .
Entonces, el lenguaje creado es finito si y slo si este grafo no tiene ciclos.

Por ejemplo:
a C
b CC B
a BC A
AB S




,
,


El grafo carece de ciclos y por tanto el lenguaje es finito.

A
S
B
C
Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 73

Dada unaGLC ( ) P S JT JN G , , , = ,
*
JT x , ( ) G L x ?
Para responder a esta cuestin utilizaremos el algoritmo Cocke Younger Kasami
( ) CYK .
Partimos de unaGLC en forma normal de Chomsky.
Se trata de reconstruir el rbol de derivacin para x de abajo arriba. Iremos obteniendo
losJN que generan las distintas subcadenas de x . Estos conjuntos deJN se denominarn
if
J y
contienen smbolosJN que derivan la subcadena de x que comienza en la posicini y con
longitud f .
El objetivo es obtener losJN del conjunto
n
JN
1
(toda la cadena x ), si uno de ellos es el
axioma, entonces ( ) G L x .

AlgoritmoCYK :
Formalmente, podemos expresar el algoritmo anterior como sigue:
begin
for i := 1 to n do
Vij := {A | A -> a es una produccin de P y el i - simo smbolo de x es a}
/* Longitudes sucesivas */
for j := 2 to n do
/* Principio de la palabra */
for i := 1 to n - j + 1 do
begin
Vij := 0;
for k := 1 to j - 1 do
V ij := Vij U {A | A -> BC es una produccin de P, B
est en Vik y C est en Vi+j-k}
end

end

El algoritmo va a ir rellenando la siguiente matriz:
11
J

21
J
31
J
41
J
51
J
12
J

22
J
32
J
42
J

13
J

23
J
33
J

14
J

24
J

15
J



Universidad de Oviedo
TEORA DE AUTMATAS
Escuela Universitaria de Ingeniera Tcnica en Informtica de Oviedo (E.U.I.T.I.O)

Alberto Surez Lpez
Pgina 74

Ejemplo:
Dada unaGLC ( ) P S JT JN G , , , = , con P :
a AB C
b CC B
a BA A
BC AB S
,
,
,
,





Determinar si la palabrabaaba pertenece al lenguaje generado por G .

b
a a
b
a
1
11
J
{ } B
21
J
{ } C A,
31
J
{ } C A,
41
J
{ } B
51
J
{ } C A,
2
12
J
{ } S A,
22
J
{ } B
32
J
{ } C S,
42
J
{ } S A,

3
13
J

23
J
{ } B
33
J
{ } B

4
14
J

24
J
{ } C A,

5
15
J
{ } S C A , ,


Como
15
J S , la palabra pertenece al lenguaje.

Vous aimerez peut-être aussi