autÓmatas, lenguajes y gramÁticas regulares

74
Capítulo 1.1. INTRODUCCIÓN. Los lenguajes son fundamentales en la Computación: mediante ellos se expresan los programas, protocolos de comunicación, etcétera. En la Computación se trabaja con los lenguajes formales. Estos lenguajes se caracterizan por poseer reglas sintácticas y semánticas rígidas, concretas y bien definidas. Por ejemplo, en los lenguajes de programación: Reglas que indican cómo construir cadenas válidas (palabras reservadas, identificadores de variables, etcétera). Reglas que indican cómo combinar estas cadenas para formar programas válidos. El procesamiento de los lenguajes formales es importante en la Informática ya que se necesita traducir los programas escritos en lenguajes de alto nivel a programas en lenguaje máquina. Este proceso de traducción lo realizan los compiladores. Por otra parte, también se necesita describir de forma sintética los lenguajes, especificando mediante reglas, cómo se escriben programas sintácticamente correctos en un determinado lenguaje. Para llevar a cabo estos procesos disponemos de las siguientes herramientas: Descriptoras Describen las reglas de un lenguaje . Son las gramáticas y las expresiones regulares. Reconocedoras Reconocen si un programa sigue las reglas del lenguaje . Son los autómatas. www. .com Matematica1

Upload: amin20122

Post on 28-Oct-2014

1.536 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 1

Capítulo 1: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES. Capítulo 1.1. INTRODUCCIÓN. Los lenguajes son fundamentales en la Computación: mediante ellos se expresan los

programas, protocolos de comunicación, etcétera. En la Computación se trabaja con los lenguajes formales. Estos lenguajes se

caracterizan por poseer reglas sintácticas y semánticas rígidas, concretas y bien definidas. Por ejemplo, en los lenguajes de programación: • Reglas que indican cómo construir cadenas válidas (palabras reservadas,

identificadores de variables, etcétera). • Reglas que indican cómo combinar estas cadenas para formar programas válidos. El procesamiento de los lenguajes formales es importante en la Informática ya que se

necesita traducir los programas escritos en lenguajes de alto nivel a programas en lenguaje máquina. Este proceso de traducción lo realizan los compiladores.

Por otra parte, también se necesita describir de forma sintética los lenguajes,

especificando mediante reglas, cómo se escriben programas sintácticamente correctos en un determinado lenguaje.

Para llevar a cabo estos procesos disponemos de las siguientes herramientas: • Descriptoras

Describen las reglas de un lenguaje � . Son las gramáticas y las expresiones regulares.

• Reconocedoras Reconocen si un programa� sigue las reglas del lenguaje � . Son los autómatas.

www.

.com

Mat

emat

ica1

Page 2: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 2

Capítulo 1.2. LENGUAJES FORMALES. Definición: Alfabeto: Conjunto finito y no vacío de símbolos. Por ejemplo:

{ }���� =� , { }���� ��� = , { }������������ =� Un alfabeto es válido si no se genera ambigüedad en la formación de palabras. Por

ejemplo: { }�������������=�

Palabra:����� , ¿ ������ ó ������ ? Definición: Palabra o cadena: Secuencia finita de símbolos de un alfabeto. Por ejemplo: Sea { }���� ���= , son palabras ��� =� y ��� =� . Definición: Longitud de una palabra: Número de símbolos que la forman. Por ejemplo: Sea { }��������=� :

• �� =

• ����� =

Definición: Palabra vacía, λ : Dado un alfabeto � , λ se define como la única palabra construida con� símbolos del

alfabeto. Aunque se represente por un carácter simple, es una palabra no un símbolo del alfabeto,

es decir, �∉λ . Definición: Universo del discurso, � : Se compone de todas las palabras que se pueden formar con símbolos del alfabeto � .

Se caracteriza por: • Contiene un número infinito de palabras • La palabra vacía pertenece a todos los universos Por ejemplo: Sea { }��� �= , { }��������� ����������������� λ= .

www.

.com

Mat

emat

ica1

Page 3: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 3

Definición: Lenguaje sobre un alfabeto � , ( )�� :

Todo subconjunto de � . Por ejemplo: Dos posibles lenguajes sobre { }��� �= serían:

• { }������������� ���� =

• { }������ ����������� λ= Definición: Lenguaje: Conjunto de palabras, también llamadas sentencias o cadenas, formadas por símbolos

de un alfabeto. Por ejemplo: Sea el alfabeto de los símbolos ASCII. Un lenguaje sobre este alfabeto serían todas

aquellas cadenas que representen identificadores válidos en Java: • Empieza con letra, � , � y sigue con un conjunto de cero o más letras, dígitos, �o �

• { }��������� ����� ����� = Por ejemplo: Se el alfabeto de todos los identificadores, signos de puntuación, palabras reservadas en

Java. Un lenguaje sobre este alfabeto sería el formado por todos los programas bien construidos.

Descripción de los lenguajes: Definición: Gramática: Describe la estructura de un lenguaje, proporcionando las reglas que determinan las

combinaciones válidas de los símbolos del alfabeto. Definición: Expresión regular: Describen de manera declarativa las cadenas aceptables o pertenecientes a un lenguaje

regular. Definición: Autómata: Mecanismo o máquinas abstractas que son dispositivos teóricos capaces de recibir,

procesar y transmitir información (cadenas de un lenguaje).

www.

.com

Mat

emat

ica1

Page 4: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 4

Relación Gramática – Autómata – Lenguaje:

Gramática Lenguaje Autómata Tipo 0: Gramática sin restricciones

Recursivamente enumerable. Sin restricciones Máquina de Turing (MT)

Tipo 1: Gramática sensible al contexto

Dependiente del contexto Autómata linealmente acotado (ALA)

Tipo 2: Gramática libre de contexto Independiente del contexto Autómata con pila (AP)

Tipo 3: Gramática regular Regular Autómata finito (AF)

Relación de inclusión: Relación de Chomsky:

Tipo 0

Tipo 1

Tipo 2 Tipo 3

Lenguaje

Autómata Gramática ���������

���������

�������

���������

�������

www.

.com

Mat

emat

ica1

Page 5: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 5

Operaciones con palabras: Definición: Concatenación: Dado un alfabeto � , sean ������ ���= y ������ ���= palabras donde ��� � ∈∀ � y

��� � ∈∀ � . La concatenación de las palabras� y� , ��� , es una palabra formada por los

símbolos de� seguidos de los símbolos de� , es decir, �� ���������� � ������= . Además se cumple que: • ���� +=�

• λ es el elemento neutro para la concatenación. Para cualquier palabra � , ��� == �� λλ

Por ejemplo: • ������������������� = • ����������������� = Definición: Potencia: La potencia i – ésima de una palabra � , �� , se forma por la contatenación � veces de � .

Por definición, para toda palabra � , se cumple que λ=�� . Por ejemplo: • ���� =�

• ( ) ������ =�

Definición: Potencia � : Dado un alfabeto � y un número natural � , definimos:

{ }������ � == ���������� ��������������

Por ejemplo: Sea { }���=�

• { }λ=��

• { }���� =�

• { }������������ =� Definición: Cierre positivo:

Dado un alfabeto � , definimos �∞

=

+ ∪∪∪==�

��� �

� �����

Definición: Cierre estrella:

Dado un alfabeto � , definimos �∞

=

∪∪∪∪==�

���� �

� ������

www.

.com

Mat

emat

ica1

Page 6: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 6

Definición: Unión o alternativa: { }���� ������� ∈∨∈=∪

Por ejemplo:

{ }��� �� = y { }��� �� =

• { }������ ����� =∪ Definición: Concatenación:

{ }�������� �� �������� ∈∧∈= Por ejemplo:

{ }��� �� = , { }��� �� = , { }∅=��

• { }���������� ���� �� =

• { }∅=����� Definición: Intersección:

{ }���� ������� ∈∧∈=∩ Definición: Potencia de un lenguaje:

{ }������� ��

� ∈= ���� ���

{ }λ=�� Por ejemplo:

{ }��� �=

• { }λ=��

• { }��� �� =

• { }��������� ���� = Definición: Clausura o cierre positivo:

��� ∪∪∪=+ ���� Definición: Cierre u operación estrella. Clausura de Kleene:

���� ∪∪∪∪= �����

www.

.com

Mat

emat

ica1

Page 7: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 7

Capítulo 1.3. EXPRESIONES REGULARES. Las expresiones regulares definen las cadenas válidas de un lenguaje mediante una

descripción algebraica (fórmula). 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, etcétera, usan una

notación similar a las expresiones regulares para describi los patrones que el usuario quiere encontrar en un archivo.

• Búsqueda en Word. Definición: Expresión regular: Sea � un alfabeto finito, las expresiones regulares sobre � y los lenguajes que denotan

se definen recursivamente como: • ∅ es una expresión regular y denota al conjunto vacío.

• λ es una expresión regular y denota{ } �⊂λ

• Si ��∈ entonces � es una expresión regular y denota el lenguaje{ } �� ⊂ Por ejemplo:

{ }����� ���= , la expresión regular� representa { }�� =

• SI � y � son expresiones regulares que denotan los lenguajes� y �� ∈ : o �� + ó �� ! denota al lenguaje ��∪

Por ejemplo: �� = , �� = , ���� +=+ , ( ) { }����� �=+

o ��� denota al lenguaje ��� Por ejemplo:

���� �� = , ( ) { }����� =�

o � denota al lenguaje � Por ejemplo:

�� = , ( ) { }����� ������������ λ=

o +� denota al lenguaje +� Por ejemplo:

++ = �� , ( ) { }���� ������������ =+ Precedencia en la utilización de los operadores: De mayor a menor prioridad: • 1º Operación cierre positivo. ( )+�

• 2º Operación concatenación. ( )�

• 3º Alternativa. ( )!�+ Se permite el uso de paréntesis para indicar la precedencia.

www.

.com

Mat

emat

ica1

Page 8: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 8

Ejemplos: Sea { }��� �= .

Expresión regular Lenguaje ( )���� �++ { }���� ��

( )��� +� { }�����

( ) �� { }���� ��������������λ

( ) � ��� + { }������� �����������������

( ) ����� Palabras con un número par de� ´s

( ) ��� + Palabras que terminan en�

�� Palabras que empiezan en� y luego sólo tienen� ´s

( ) ( ) �������� +++ Empiezan y terminan con la misma letra

Igual número de � que de�

Expresión regular Lenguaje �"#������ +++++++++ Dígitos

( )+����$� Números naturales

( )��$����!! λ−+ Números enteros

( )��$����!!��$��� λ Números reales sin exponente en Java

( )( ) ����$�!��$��!�!���$��!�!� Identificadores en Java

( )++ �������� Expresión de adicción en Java

Equivalencia de expresiones regulares: Dos expresiones regulares son equivalentes si designan al mismo lenguaje regular. Sean � , � , � expresiones regulares: • + es asociativa

( ) ( ) ������ ++=++ • + es conmutativa

���� +=+ • · es asociativa

( ) ( ) ������ ���� = • · es distributiva respecto a +

( ) ������� ��� +=+

• · tiene elemento neutro λ ��� == �� λλ

• + tiene elemento neutro∅ ��� =+∅=∅+

• λλ =

www.

.com

Mat

emat

ica1

Page 9: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 9

Equivlencia de expresiones regulares: • ∅=∅=∅ �� ��

• λ=∅ • ��� =+

• ��� =

• +== ����� ��

• ( ) �� =

• ( ) ( ) ������ =

• ( ) ��� +=+= + λλ

• ( ) ( ) ( ) ������ =+=+

• ( ) ( ) ( ) �������� ==+

• ( ) ���� +≠+

www.

.com

Mat

emat

ica1

Page 10: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 10

Capítulo 1.4. AUTÓMATAS FINITOS. Dispositivo para procesar palabras pertenecientes a un lenguaje regular. Se construyen siguiendo las reglas de formación 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 válidos en Java:

Introducción: Disponen de una cinta de entrada, de donde van leyendo las palabras, procesando sus

símbolos secuencialmente, de izquierda a derecha. A s $ 1 _ 3 2 V >

En cada momento, almacenan información acerca de la historia del sistema. Cada

almacén de información se denomina estado. Tienen un número finito de estados: • Es necesario diseñarlos con cuidado para recordar la información interesante. • Estado: El primer símbolo fue letra, $ ó _ • No es interesante recordar qué fue exactamente. En cada momento, el �� puede estar en alguno de ellos y, según va leyendo símbolos

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 léxicos que determinan si un identificador es válido o no en Java.

palabra de entrada identificador válido o no

palabra de entrada

deben empezar por letra, & ó _

pertenece o no

luego tienen letras, dígitos, $ ó _

www.

.com

Mat

emat

ica1

Page 11: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 11

Definición: Autómata finito determinista, ��� : Un autómata finito determinista, ��� , es una quíntupla

( )������� ���� �δ= donde:

• � es un conjunto finito denominado alfabeto de entrada. • � es un conjunto finito denominado conjunto de estados.

• ��� →×%δ llamada función de transición de estados.

• �� ∈� es el llamado estado inicial.

• �� ⊂ recibe el nombre de conjunto de estados finales que corresponde a los

estados ��∈ en que se acepta la cadena de entrada. Determinista hace referencia al hecho de que: • δ debe estar definida para cada estado y símbolo del alfabeto. • Para cada símbolo de entrada, existe un único estado al que el ��� puede llegar

partiendo del actual. Representación de la función de transición de un ��� : Tabla de transiciones: Se representaδ mediante una matriz de �� ×

• Filas: Estados ��∈ , estado inicial precedido de → y estados finales de

• Columnas: Símbolos de entrada ��∈ y en ( )��� el estado determinado por ( )���δ

Por ejemplo:

δ � � � �

�� �� �� �� ��

��

��

��

www.

.com

Mat

emat

ica1

Page 12: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 12

Diagrama de transición de estados: Se crea un grafo dirigido en el que, para cada estado ��� ∈ se crea un nodo y, para

cada transición ( ) ��� ��� =�δ , se crea un arco de �� a �� etiquetado con �� .

El estado inicial tendrá un arco entrante no etiquetado y los estados finales estarán rodeados de doble círculo.

Por ejemplo:

Ejemplo: ��� que reconozca las palabras formadas por� ´s y� ´s con un número par de� ´s y

un número par de� ´s. • { }��� �=

• { }���� ��� ����� =

o �� : El número de� ´ses par y el número de� ´s es par

o �� : El número de � ´ses par y el número de� ´s es impar

o �� : El número de� ´ses impar y el número de� ´s es par

o �� : El número de� ´ses impar y el número de� ´s es impar

• ��

• { }��� =

• ��� →×%δ

δ � �

�� �� ��

�� �� ��

�� �� ��

�� �� ��

q1

q2

q3

a

b

www.

.com

Mat

emat

ica1

Page 13: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 13

Definición: Configuración: Descripción instantánea de un ��� , ( ) ��� ���� ∈∈ ωω , donde� representa el

estado actual yω la cadena que queda por procesar. Definición: Configuración inicial: ( )�� �ω Definición: Configuración dinal o aceptación de palabra: ( ) ��� �� ∈��λ

Definición: Movimiento: ( ) ( ) ( ) && ����� ������ =δωω � Procesamiento de palabras en un ��� : El “lenguaje del ��� ” es el conjunto de palabras aceptadas por el mismo. Supongamos que ���� ����� es una secuencia de símbolos. Comenzamos con

el ��� en el estado inicial. Se procesa el primer símbolo �� aplicando ( )�����δ para encontrar

el estado al que pasa el ��� tras procesar el primer símbolo de la entrada. Supongamos que fue �� . Se procesa el segundo símbolo aplicando ( )�� ���δ . Continuamos así hasta procesar el último de los símbolos, llegando al final a un

estado �� .

Si �� pertenece a � , la palabra es aceptada. Sino, es rechazada.

q0 q1

q2 q3

b

b

a a

b

b

a a

www.

.com

Mat

emat

ica1

Page 14: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 14

Ejemplo: Sea el ��� del ejemplo anterior y la palabra���� : a) Configuación inicial

( )������� b) Procese la palabra representando el procesamiento mediante configuraciones y

movimientos ( ) ( ) ( ) ( ) ( )����� ����� ��������������� ���

c) ¿Cuál es la configuración final? ( )�� �λ

Extensión a palabras de la función de transición: Siδ es la función de transición, la función de transición extendida se llamará δ y se

construirá a partir deδ . Describe el comportamiento de un ��� partiendo de un estado y procesando una

cadena de símbolos. Recibe un estado� y una cadenaω y devuelve un estado , estado que alcanza el autómata cuando comienza en el estado� y procesa la secuencia de símbolosω .

Definición: Función de transición extendida: Se define la función de transición extendida a partir de ��� →×%δ a

��� →× %δ de la forma siguiente:

• ( ) �� =� λδ

• ( ) ( )( )���� ���� ωδδωδ =

Donde ��∈ , �∈ω y ��∈ Lenguaje aceptado por un ��� : Definición: Aceptación de palabras: Una palabraω será aceptada por un ��� si y sólo si ( ) �� ∈�

�ωδ Definición: Lenguaje reconocido por un ��� : Sea el ��� ( )����� ���� �δ= , el lenguaje aceptado por� que se representa

como ( )�� es el conjunto ( ) ( ){ }����� ∈∈= �

�ωδω .

Al conjunto de los lenguajes reconocidos por algún �� se les denomina lenguajes regulares.

Para cada lenguaje regular existe un �� que reconoce palabras de este lenguaje y no reconoce ninguna palabra que no pertenezca al lenguaje.

Definición: Autómatas equivalentes: Dos autómatas son equivalentes si aceptan el mismo lenguaje.

www.

.com

Mat

emat

ica1

Page 15: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 15

Equivalencia de estados: Definición: Estados equivalentes: Sea el ��� ( )����� ���� �δ= , dos estados y� son equivalentes, y se

denota � ≡ , si para toda cadena de entradaω , ( )� ωδ es un estado final si y sólo

si ( )�� ωδ también lo es; es decir, serán equivalentes si tienen el mismo comportamiento ante toda palabra.

Definición: Estados distinguibles: se distingue de� si y sólo si ( ) ( ) ����������������� ���� ∉∈∈∃ ωδωδω .

Corolario: Si dos estados son equivalentes, pueden ser sustituidos por uno sólo con el mismo

comportamiento que los originales. Corolario: Existen algoritmos para minimizar un �� , es decir, hallar otro �� equivalente con el

número mínimo de estados. Minimización de autómatas finitos deterministas: Partimos de un ��� ( )����� ���� �δ= . Hallaremos un ��� que acepta ( )�� y

tiene el menor número de estados posibles, ( )&&

&&& ���� ����� δ= . 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 partición sean equivalentes y no haya pares de estados equivalentes en particiones distintas.

Construir una partición inicial ∏ dividiendo el conjunto� en dos grupos: estados

finales� y no – finales �� − .

Determinar una nueva partición �����∏ a partir de ∏ aplicando el siguiente procedimiento

para cada grupo de ∏ :

o Dividir en dos subgrupos tales que dos estados �� y �� de estarán en el

mismo subgrupo si y sólo si para cada entrada! , los estados �� y �� tienen

transiciones con! hacia estados del mismo grupo de ∏ .

o Sustituir por sus grupos en �����∏ .

Si ∏≠∏����� , se han creado nuevos subgrupos:

o �����∏=∏ o volver al paso 2.2 en caso contrario, es decir, si ya no salen más grupos: o ∏=∏'���� o ir al paso 3

3. Se escoge un estado de cada grupo de la partición '����∏ como representante para

formar el nuevo conjunto &� .

4. Cálculo de &δ en &� . Sea �� un estado representante, sea un símbolo� tal

que ( ) �� ��� =�δ y sea �� el representante del grupo de �� , entonces ( ) �� ��� =�δ

www.

.com

Mat

emat

ica1

Page 16: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 16

5. Estado inicial y finales. o El estado inicial &

�� de &� se elige como el representante del grupo que

contiene al estado inicial �� de � .

o El conjunto de estados finales &� estará formado por los representantes de grupos donde haya estados finales.

Ejemplo: Minimizar el ��� ( )����� ���� �δ= donde { }��� �= , { }��������=� , �� =� ,

{ }��� = yδ viene dada por la siguiente tabla:

δ � � � � � � � � � � � � � � �

{ } { } { }{ }

{ }{ }�

��

=

��

��

=���

==

==

��������

������

��

���

���

��

Luego, ( )&&

&&& ���� ����� δ= donde { }��� �= , { }������& =� , �&

� =� , { }�& �� = y &δ viene dada por:

&δ � �

� � � � � � � � � �

www.

.com

Mat

emat

ica1

Page 17: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 17

Autómatas finitos no – deterministas, ��"� : Permiten� , � o más transiciones desde un estado con cada símbolo de entrada. Tiene la capacidad de disparar varias transiciones a la vez con el mismo símbolo de

entrada y, por tanto, puede estar en varios estados simultáneamente. Por ejemplo: Si estamos buscando la palabra clave implements en un programa en Java y la

configuración inicial es ( )�� � �������������(��$� es útil, al llegar al símbolo � , 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, sólo definimos los estados que necesitamos para aceptar palabras. Los ��"� ´s reconocen los mismos lenguajes que los ��� ´s. Los ��"� ´s son similares a los ��� ´s, con un conjunto finito de estados y símbolos

de entrada, un estado inicial, un conjunto de estados finales y una función de transición de estadosδ .

Diferencia: • ���

δ define para cada posible combinación ( )��� un estado nuevo.

• ��"� δ puede no estar definida para alguna combinación ( )��� y, por el contrario, puede

definir para otras combinaciones ( )��� más de un estado. Ejemplo: Autómata que reconoce aquellas palabras formadas por� ´s y�´s que terminan en�� .

Definición: Autómata finito no – determinista, ��"� : Un ��"� es una quíntupla ( )������"� ���� �δ= con el mismo significado que para

un ��� salvo queδ es en este caso un una aplicación no determinista o relación de la forma:

( )���� →×%δ , donde ( )�� es un subconjunto de� . Definición: Configuración: Descripción instantánea de ��"� .

( ) ��� ���� ∈∈ ωω , donde� representa el estado actual yω la cadena que queda por procesar.

Definición: Configuración inicial: ( )���ω .

A B C

0,1

0 1

www.

.com

Mat

emat

ica1

Page 18: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 18

Definición: Configuración final: ( )���λ , con �� � ∈ .

Definición: movimiento: Es el tránsito entre dos configuraciones. Se representa: ( ) ( )&��� ��� ωω � , donde ( )��� �& δ∈ . Representación de un ��"� : Tabla de transiciones: Se diferencian de los ��� en que el contenido de las casillas es un conjunto, incluso el

vacío. Por ejemplo:

δ � � � { }#�� �

# { }∅ $

$ { }∅ { }∅ Diagrama de transición de estados: Igual que los ��� ´s. Definición: Función de transición extendida: Se extiende ( )���� →×%δ a ( )���� →× %δ como sigue:

• ( ) �� =� λδ

• ( ) ( )( )���� ���� ωδδωδ �=

Donde ��∈ , �∈ω y ��∈ Lenguaje aceptado por un ��"� : Definición: Aceptación de palabras: Una palabraω será aceptada por un ��"� si y sólo si ( ) �� ⊂�

�ωδ Definición: Lenguaje reconocido por un ��� : Sea el ��"� ( )����� ���� �δ= , el lenguaje aceptado por� que se representa

como ( )�� es el conjunto ( ) ( ){ }∅≠∩∈= ����� �

�ωδω . Teorema: Equivalencia entre ��� y ��"� :

Si �� ⊂ es aceptado por un ��"� , existe un ��� que acepta � .

www.

.com

Mat

emat

ica1

Page 19: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 19

Algoritmo �����"�� :

1. Definición del nuevo conjunto de estados &� .

o ( )��� =& (conjunto de partes de� )

o Notación: al conjunto{ }���� ���� ���� lo denotamos por [ ]���� ����

o A menudo, no todos los estados de &� serán accesibles desde el estado

inicial &

�� . En el paso 2 se determiná cuales son accesibles.

o

[ ] [ ] [ ] [ ] [ ] [ ] [ ][ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ][ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ][ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ][ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ][ ] [ ] [ ] [ ] [ ] [ ] �

���

����

����

����

�∅

=

��������������������������������������������

������������������������������������������������������������

������������������������������������������������������

��������������������������������������������������������

����������������������������������������

������������

&�

2. Definición de la nueva función de transición &δ .

o Para cada conjunto de estados &�$ ⊆ y para cada símbolo ��∈ ,

( ) ( )�$

�$�����

& �� δδ =

Para cada conjunto de estados que sea accesible desde el &

�� , miramos para todos los estados del conjunto a qué estados transita con la entrada� y tomamos la unión de todos ellos.

o &� estará formada por aquellos estados que sean accesibles desde el inicial

al definir &δ .

3. Definición del nuevo estado inicial &

�� .

o [ ]&�&

� �� =

4. Definición del nuevo conjunto de estados finales &� . o [ ] [ ]{ }��������������� ��� ∈∃∧∈= &

��������

& 5. Eliminación de estados inaccesibles.

o Todos aquellos estados de &� (ver paso 1) que no hayan hecho falta en el paso 2.

www.

.com

Mat

emat

ica1

Page 20: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 20

Ejemplo: Sea el siguiente ��"� , calcular el ��� equivalente:

δ � �

→ � { }��� { }��� � ∅ � � � � � ∅

&δ � �

→ [ ]� [ ]��� [ ]��� [ ]��� [ ]���� [ ]��� [ ]��� [ ]��� [ ]����� [ ] ���� [ ]���� [ ]����

[ ] ����� [ ]����� [ ]�����

[ ] ���� [ ]���� [ ]������

[ ] ����� [ ]������ [ ]�����

[ ] ������ [ ]������ [ ]������

[ ] ������ [ ]������ [ ]������

www.

.com

Mat

emat

ica1

Page 21: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 21

Autómatas finitos no – deterministas con �)���)���$�−λ : Extensión de ��"� que permite cambios de estado con la entrada vacía ( )λ , es decir,

permite evolucionar de un estado a otro sin consumir ningún símbolo de la cadena de entrada. Los autómatas aceptarán las secuencias de etiquetas que pasan por algún camino que

lleve desde el estado inicial a algún estado final. Cada λ que se encuentre en el camino es “invisible”.

No expande la clase de lenguajes hasta ahora aceptados por los �� , pero proporciona

facilidades para construirlos. Por ejemplo:

{ } ���=�

Definición: Autómata finito no – deterministas con �)���)���$�−λ :

Un ��"� con �)���)���$�−λ se define como ( )����� ���� �δ= donde

sóloδ difiere de un ��"� .

{ }{ } ( )���� →×∪ λδ % En el ejemplo anterior:

δ � � � λ � � ∅ ∅ # # ∅ # ∅ $ $ ∅ ∅ $ ∅

Definición: Configuración: Descripción instantánea de ��"� con �)���)���$�−λ .

( ) ��� ���� ∈∈ ωω , donde� representa el estado actual yω la cadena que queda por procesar.

Definición: Configuración inicial: ( )���ω . Definición: Configuración final: ( )

���λ , con �� � ∈ .

Definición: movimiento: Es el tránsito entre dos configuraciones. Se representa: ( ) ( )&��� ��� ωω � , donde ( )��� � & δ∈ .

A B C

0

1 2

www.

.com

Mat

emat

ica1

Page 22: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 22

Definición: ��������−λ de un estado, ( ) ( )���� →− %*�λ :

( ) { } { }λλ ��������������)����*� && ������ ∃∈∪=− Es decir: 1. ( )�� *�−∈ λ

2. si ( ) ( ) ( )�� *��*� −∈�−∈ λλδλ Por ejemplo, en el autómata definido anteriormente:

*�−λ � { }$#� ��

# { }$#�

$ { }$ Definición: ��������−λ de un conjunto de estados, ( ) ( ) ( )����� →− %*� &λ :

( ) ( )�&& �*�%*� ���� ∈−− λλ

Observaciones: • ( ) ( ) #�#� ⊆−⊆− ����*�*� λλ

• ( )( ) ( )&& *�*�*� �� −=−− λλλ Por ejemplo:

*�−λ { }� { }$#� ��

{ }#�� { }$#� ��

{ }$#� �� { }$#� �� Definición: Función de transición extendida: Se extiende { }{ } ( )���� →×∪ λδ % a ( )���� →× %δ donde:

1. ( ) ( )�� *�� −= λλδ

2. ( ) ( ) ( )[ ]������ *���*�� −∈−= λδλδ �

3. ( ) ( ) ( )[ ]������ ��*��� ωδδλωδ ∈−= �

Lenguaje aceptado por un ��"� con �)���)���$�−λ : Definición: Aceptación de palabras: Una palabraω será aceptada por un ��"� con �)���)���$�−λ si y sólo

si ( ) ∅≠∩ ��� �ωδ .

Una palabraω es aceptada por un ��"� con �)���)���$�−λ si existe algún camino etiquetado con los símbolos de la palabra que, partiendo del estado inicial lleve a algún estado final. Pueden aparecer en el camino actos etiquetados con λ .

Definición: Lenguaje reconocido por un ��� con �)���)���$�−λ : Sea el ��"� con �)���)���$�−λ ( )����� ���� �δ= , el lenguaje aceptado

por� que se representa como ( )�� es el conjunto ( ) ( ){ }∅≠∩∈= ����� �

�ωδω .

www.

.com

Mat

emat

ica1

Page 23: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 23

Equivalencia entre ��"� con y sin �)���)���$�−λ : Teorema: Si �� ⊂ es aceptado por un ��"� con �)���)���$�−λ , entonces � es aceptado

por un ��"� sin �)���)���$�−λ y, por tanto, � es un lenguaje regular. Algoritmo ��"� con �)���)���$�−λ � ��"� sin �)���)���$�−λ : Dado un ��"� con �)���)���$�−λ ( )����� ���� �δ= , el nuevo autómata lo

definimos como ( )&�

&& ���� ����� δ= .

1. Definición de &δ : ( )���� →×%&δ

( ) ( )���� �� & δδ =

o Calculamos ( )�� *�� −= λ

o Calculamos ( )[ ]�� � ����� �� ∈= �δ

o Calculamos ( )�� *� �� −= λ

2. Definición de &� : o Si ( ) ∅≠∩− ���*�λ entonces { } ��� ∪= �

&

o Si ( ) ∅=∩− ���*�λ entonces �� =& Ejemplo: Sea el siguiente ��"� con �)���)���$�−λ , calcular el ��"� equivalente:

δ � � � λ

→ � � ∅ ∅ # # ∅ # ∅ $ $ ∅ ∅ $ ∅

�%"δ � � �

→ � { }$#� �� { }$#� { }$ # ∅ { }$#� { }$ $ ∅ ∅ { }$

A B C

0

1 2

� www.

.com

Mat

emat

ica1

Page 24: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 24

Equivalencia entre expresión regular ( )!� y autómata finito ( )�� : Teorema: Si � es una expresión regular, entonces existe un ��"� con �)���)���$�−λ y con, a

lo sumo, un estado final del que no sale niguna transición, que acepta ( )�� . Demostración: Aplicamos el método de inducción al número de operadores de la expresión regular: • Caso básico.

Con� operadores. λ=� ∅=�

�� = con ��∈

• Caso general. Con�ó más operadores.

o Sean �� y �� dos expresiones regulares, por tanto, para �� existe

( )������ ���� ����� δ= tal que ( ) ( )�� ���� = y para �� existe

( )������ ���� ����� δ= tal que ( ) ( )�� ���� = .

o Supongamos ∅=∩ �� �� (renombrar estados) y construimos� .

q q0 x

q q0 q

www.

.com

Mat

emat

ica1

Page 25: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 25

o Caso A: ( )�� ��� +=

{ } { }( )�������� ����� ��������� δ∪∪∪= , conδ :

( ) ( ) ( ){ }�� ��� ������ ∈∈= ωωω

o Caso B: ( )������ =

{ }( )������ ���� ������� δ∪∪= , conδ :

( ) ( ) ( ){ }������ ���� ������ ∈∈= ωωωω

q1 M1 f1

q2 M2 f2

q0

q1

f0

… f1

q2 … f2

M1

M2

www.

.com

Mat

emat

ica1

Page 26: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 26

o Caso C: ( ) ��� =

{ } { }( )������� ����� ������� δ∪= , conδ :

( ) ( ){ } ����� ∈= ωω

o Reglas de desarrollo:

Teorema: Si �� ⊂ es un lenguaje aceptado por un ��� , entonces � se puede describir por una

expresión regular. Corolario: Sea � un conjunto finito, y �� ⊂ . Son equivalentes las siguientes afirmaciones: • � es un lenguaje regular • � es un lenguaje aceptado por algún ��� • � es un lenguaje aceptado por algún ��"� sin �)���)���$�−λ • � es un lenguaje aceptado por algún ��"� con �)���)���$�−λ • � se puede describir por una expresión regular

qi qj qk � �

qi qj

a

b

qi qj qk a b

qi a* qj

qi a+b qj

qi a·b qj

q1 M1 f1 �

q0 �

f2 �

www.

.com

Mat

emat

ica1

Page 27: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 27

Equivalencia entre autómata finito ( )�� y expresión regular ( )!� :

Se trada de, dado un ��� encontrar una expresión regular de tal forma que describan el mismo lenguaje.

Dado un ��� se denota por �� al lenguaje reconocido por el ��� cuando se considera

al estado� como estado inicial.

Se denota por �� a la expresión regular que denota al lenguaje �� , por tanto, ( )�� ��� = .

Definición: Ecuación característica:

( )( )

=���

���&�

&

&

�δ

Por ejemplo, en el autómata:

( ) �� =��& ( ) λ=#�& � ( ) ∅=$�& �

( ) ∅=�#& � ( ) �� =##& ( ) λ=$#& �

( ) ∅=�$& � ( ) ∅=#$& � ( ) �� =$$&

( ) ∈+=

�� ��� ���&� & &� & , donde:

• ∅=� si ��∉

ó • λ=� si ��∈

Así, en el autómata del ejemplo:

λλλ

+=+=+=

$$

$##

#��

��

���

���

��

���

���

Definición: Equivalencia entre autómata finito ( )�� y expresión regular ( )!� :

Se trata de, dado un ��� encontrar una expresión regular de tal forma que describan el mismo lenguaje.

Definición: Regla de Arden: Sean� , � y' tres expresiones regulares tal que �∉λ , entonces:

• '��'��� �� =⇔+=

• �� �'�'��� =⇔+=

A B C

0

1 2

www.

.com

Mat

emat

ica1

Page 28: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 28

Algoritmo �!���� : 1. Obtener las ecuaciones carácterísticas del �� calculando �� para todo ��∈ .

2. Despejar �� aplicando las propiedades de las expresiones regulares (principalmente

regla de Arden y distributiva). 3. Si �� es el estado inicial,

��� es la expresión regular que denota aquellas cadenas que

partiendo de �� llegan a un estado final y por tanto la expresión que denota al

lenguaje reconocido por el ��� . Ejemplo: Hallar la expresión regular que describe el lenguaje definido por el autómata:

���

�����

��

��

��

���

���

��

���

���

==

=

��

��

===

��

��

===

��

��

+=+=+=

$

#

$

$#

#�

$

$#

#�

$$

$##

#��

��

��

��

��

��

���

���

λλλ

λλλ

Así, �����== ��!�

A B C

0

1 2

www.

.com

Mat

emat

ica1

Page 29: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 29

Capítulo 1.5. PROPIEDADES DE LOS LENGUAJES REGULARES. Lema de Pumping: Cuestión pendiente: Dado un lenguaje � , ¿es regular? El lema de Pumping sirve para demostrar que un lenguaje � no es regular. Definición: Lema de Pumping: Sea � un lenguaje aceptado por un ��� � con� estados. Sea �∈ω y �≥ω .

Entonces, es posible descomponerω en la forma �(� ��=ω , donde la subcadena( es no vacía,

���� ≥∀∈ ���(� � y �(� <� .

Hipótesis: • �∈ω con �≥ω

• �(� ��=ω con ���� ≥∀∈ ���(� �

• �(� <�

Tésis: El lenguaje � 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 también lo son. Los lenguajes regulares son cerrados para la unión, concatenación y clausura

(operador ). • Sean �� y �� dos lenguajes regulares; �� y �� los autómatas finitos y �� y �� las

expresiones regulares.

www.

.com

Mat

emat

ica1

Page 30: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 30

• Caso A: �� �� ∪

{ } { }( )�������� ����� ��������� δ∪∪∪= , conδ :

• Caso B: �����

{ }( )������ ���� ������� δ∪∪= , conδ :

q1 M1 f1

q2 M2 f2

q0

q1

f0

… f1

q2 … f2

M1

M2

www.

.com

Mat

emat

ica1

Page 31: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 31

• Caso C:

��

{ } { }( )������� ����� ������� δ∪= , conδ :

Teorema:

Si �� ⊂ es un lenguaje regular, entonces su complementario ��� −= también lo es.

Demostración:

Sea ( )��� = para un ��� ( )����� ���� �δ= , se define ( )#�� = donde# es

el ��� ( )�����# −= ���� �δ .

( )#�∈ω si y sólo si ( ) ��� −∈�

�ωδ , lo que significa que ( )��∉ω .

q1 M1 f1 �

q0 �

f2 �

www.

.com

Mat

emat

ica1

Page 32: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 32

Teorema: Si � y� son lenguajes regulares, también lo es ��∩ .

���� ∪=∩ . Construcción del ��� : Sea ( )������ ����� ���� δ= y ( )������ ����� ���� δ= los ��� ´s tales

que ( )���� = y ( )���� = ,

��� � que simule el comportamiento de ambos autómatas: • ( )( )������ �������� ××= ����� δ

• Los estados de � son pares de estados, el primero de �� y el segundo de �� .

• Estado inicial: ( )�� �� �

• Estados finales: �� �� ×

• Transiciones de � : Si � está en el estado ( )�� y � es el símbolo a la entrada,

suponiendo que ( ) ��� =�δ y ( ) ���� =�δ , ( )( ) ( )���� ��� =δ .

( )( ) ( ) ( )( )����� �� ����� δδδ =

www.

.com

Mat

emat

ica1

Page 33: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 33

Capítulo 1.6. APLICACIONES DE LOS AUTÓMATAS FINITOS. La aplicación más inmediata de los �� es la construcción de analizadores léxicos. La tarea del analizador léxico es la de leer carácter a carácter el fichero de entrada y

reconocer las unidades sintácticas, es decir: • Subcadenas de caracteres consecutivos que forman una agrupación lógica

con significado léxico para lenguaje. • Palabra reservada, identificador, número, etcétera. El analizador léxico se construirá como un �� , que habitualmente será

un ��"� con �)���)���$�−λ .

www.

.com

Mat

emat

ica1

Page 34: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 34

Capítulo 2: LENGUAJES LIBRES DE CONTEXTO. Capítulo 2.1. DEFINICIONES BÁSICAS. Definición: Autómata: Permite decidir directamente si una palabra dada pertenece a un lenguaje. Definición: Gramática: Permite definir un lenguaje mediante reglas generadoras de palabras. Por ejemplo, para representar un nombre seguido de un adjetivo utilizando una

gramática, decimos: • Todo sustantivo puede ir seguido de un adjetivo • Los sustantivos válidos serán chico, casa, perro • Los adjetivos válidos serán pequeño, grande Es decir:

����+�!������,�-�$���

����!����!�.���/��$��$���

,�-�$���/��$��$���0����

Definición: Gramática: Una gramática es una cuádrupla ( )��)')" ���= donde:

• )" (vocabulario no terminal): Conjunto finito de símbolos que permiten representar estados intermedios de la generación de las palabras del lenguaje.

• )' (vocabulario terminal): Conjunto finito de símbolos que forman las palabras del lenguaje.

• )"� ∈ (símbolo inicial o axioma): A partir del que se aplican las reglas de la gramática para obtener las distintas palabras del lenguaje.

• � (conjunto de producciones o reglas de derivación): Permiten obtener las palabras del lenguaje.

Par ordenado de palabras ( ) � )')" ∪∈βα , representado mediante βα → . o Esto significa que siα es una subcadena de una palabra , entonces se

puede sustituirα por β en .

o En general, las reglas son de la forma βα → , con ( )+∪∈ )')"α y

( ) )')" ∪∈α Ejemplo: Operaciones aritméticas con enteros.

1! !!2 ������

�!"!#!�!�!!�!�!�!�3���$�

3���$�!4�$���3���$�4�$���

4�$���2 ������4�$������$)5$���46 ����7��

−+→

www.

.com

Mat

emat

ica1

Page 35: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 35

Definición: Derivación directa: Se representa mediante *(� y es la aplicación de una producción �� → a una

palabra( para convertirla en otra palabra* , de tal forma que si βα�( = , entonces βα�* = . Se dice que la producción �� → se aplica a la palabra( para obtener la palabra* o

se dice que de ( se deriva directamente* . Por ejemplo:

��4�$���� +�+ Definición: Derivación: Se representa mediante *( � y es la aplicación de una secuencia de producciones a

una palabra. Si �� , �� , �� ,…, �� son palabras y �� �� → , �� �� → , � �� → ,…,

�� �� →−� son reglas de derivación, entonces se dice que ���

� � . Por ejemplo:

# �4�$���2 ������4�$��� � Definición: Derivación más a la izquierda: Cuando se utiliza en cada derivación directa la producción aplicada a los símbolos más a

la izquieda de la palabra. Definición: Derivación más a la derecha: Cuando se utiliza en cada derivación directa la producción aplicada a los símbolos más a

la derecha de la palabra. Definición: Sentencia: Se dice que � es una sentencia si �� � y )'�∈ . Definición: Lenguaje generado por una gramática: Es el conjunto de todas las sentencias de la gramática, es decir, todas las palabras que

se pueden obtener a partir del axioma por la aplicación de derivaciones. ( ) { }ωωω ��� �∈= �)' �

Definición: Gramáticas equivalentes: Dos gramáticas � y � son equivalentes si ( ) ( )�� � � = .

www.

.com

Mat

emat

ica1

Page 36: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 36

Capítulo 2.2. GRAMÁTICAS LIBRES DE CONTEXTO. Definición: Lenguajes regulares: Los lenguajes regulares se describen mediante autómatas finitos o expresiones

regulares. Definición: Lema de Pumping: Permite demostrar que no todos los lenguajes son regulares. Definición: Lenguajes libres de contexto: Los lenguajes libres de contexto se describen mediante las gramáticas libres de

contexto ( ) �$ . • 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 autómatas finitos. • Los lenguajes libres de contexto sirven para especificar parte de los lenguajes de

programación. Definición: Gramática libre de contexto, �$ :

Sus producciones responden al modelo α→� , donde )"�∈ y ( ) )')" ∪∈α . Definición: Notación#"� , Backus – Naur – Form: Esta notación se utiliza para representar la gramática libre de contexto de un lenguaje

libre de programación. • Símbolos terminales entre <> • Sustitución de → por =%% Por ejemplo:

>><<=>< ���$������������7�%%'������$����� ��� Definición: Lenguaje libre de contexto, ��$ : Es el lenguaje generado por una gramática �$ .

( ) { }ωωω ��� �∈= �)' � , es decir ( ) �∈ω siω consiste solamente en símbolos terminales y puede ser derivada desde el símbolo inicial.

Definición: Simplificación de �$ : Consiste en restringir el formato de las producciones de la gramática sin reducir su poder

generativo de palabras de un ��$ . • Cada símbolo no terminal y cada símbolo terminal aparece en la derivación de

alguna palabra del ��$ generado por la �$ .

• No hay producciones de la forma #� → donde )"#� ∈� . Los pasos a seguir son los siguientes: • Eliminar símbolos inútiles • Eliminar �� ���������−λ o producciones vacías • Eliminar producciones unidad

www.

.com

Mat

emat

ica1

Page 37: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 37

Definición: Símbolos muertos: Símbolos no terminales de los que no se deriva ninguna cadena de símbolos

terminales. Definición: Símbolos inaccesibles: Símbolos terminales o no terminales a los cuales no se puede llegar desde el símbolo

inicial. Definición: Símbolos inútiles: Símbolos terminales o no terminales que no pueden aparecer en la derivación de

ninguna palabra del ��$ . Lema: Eliminar símbolos muertos: Dada una �$ ( )��)')" ���= con ( ) ∅≠ � , se puede encontrar otra �$

( )&&& ��� ��)')" = equivalente a tal que &)"�∈∀ existe al menos una

palabra )'∈ω tal que ω �� . Algoritmo: Eliminar símbolos muertos: 1. Cálculo de &)" .

o Si una producción es de la forma ω→� con )'∈ω entonces se añade

el símbolo � en &)" .

o Si una producción es de la forma ������ ���→ con �� símbolos

terminales o no terminales que ya han sido incluidos en &)" , entoncese se

añade el símbolo � en &)" .

2. Cálculo de &� . o &� será el conjunto de todas las producciones de� que contengan sólo

símbolos pertenecientes a )')" ∪& . Ejemplo: Eliminar los símbolos muertos de la gramática:

#�#

���

�#�#�

!

!

#�#

�#�

!→

www.

.com

Mat

emat

ica1

Page 38: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 38

Lema: Eliminar símbolos inaccesibles: Dada una �$ ( )��)')" ���= con ( ) ∅≠ � , se puede encontrar otra �$

( )&&&& ��� ��)')" = equivalente a tal que ( )&& )')"� ∪∈∀ existe ( ) &&� )')" ∪∈βα tal

que βα�� � . Algoritmo: Eliminar símbolos inaccesibles: 1. Cálculo de &)" y &)' .

o Se coloca el símbolo inicial en &)" .

o Si &)"�∈ y la producción �� � ∈→ αααα !!!! ��� , se añade a &)"

todos los símbolos no terminales que aparecen en cada �α y a &)' todos los

símbolos terminales que aparecen en cada �α -

2. Cálculo de &� . o &� será el conjunto de todas las producciones de� que contengan sólo

símbolos pertenecientes a && )')" ∪ . Ejemplo: Eliminar los símbolos inaccesibles de la gramática:

��

�$�$

�#�#

�#$�

��

!

!

!

�$�$

�#�#

�#$�

��

!

!

!

www.

.com

Mat

emat

ica1

Page 39: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 39

Lema: Eliminar símbolos inútiles. Es importante eliminar primero los símbolos muertos y luego los inaccesibles. Ejemplo: Al eliminar símbolos muertos pueden aparecer símbolos inaccesibles.

���$

$##

��#�

→ !

Eliminamos símbolos muertos:

���$

��

Eliminamos símbolos inaccesibles:

�� → Teorema: Todo ��$ no vacío es generado por alguna �$ sin símbolos inútiles.

www.

.com

Mat

emat

ica1

Page 40: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 40

Lema: Eliminar �� ���������−λ o producciones vacías.

Si ( ) �∈λ entonces no se pueden eliminar todas las �� ���������−λ de . Por el

contrario, si ( ) �∉λ entonces sí se pueden eliminar todas las �� ���������−λ de . Definición: Símbolo anulable: Un símbolo no terminal � es anulable si y sólo si λ �� . Por ejemplo: Dadas las producciones:

λλ!

!

�$

��

��$�

Entonces � y$ son anulables. Teorema: Si ( ) � es generado por una �$ , entonces ( ) { }λ− � es generada por una �$

& sin símbolos inútiles ni �� ���������−λ . Algoritmo: Eliminar �� ���������−λ : 1. Determinar los símbolos anulables.

o Si λ→� es una producción, entonces � es anulable.

o Si α→# es una producción y todos los símbolos deα son anulables, entonces# es anulable.

2. Determinar &� . Si ������ ���→ está en� entonces se añade a &� todas las producciones

posibles de la forma �� αααα ���→ donde:

o Si �� no es anulable entonces �� �=α

o Si �� es anulable entonces �� �=α o bien λα =�

o No todas las �α son λ Ejemplo: Eliminar �� ���������−λ de la gramática:

�$

�#

�#$�

���

!

!

λλ

�$

�#

��#�$�#$�

���

!!!

www.

.com

Mat

emat

ica1

Page 41: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 41

Definición: Producción unidad: Las producciones unidad son producciones de la forma #� → , es decir, la parte

derecha es un único símbolo no terminal. Teorema: Todo lenguaje libre de contexto sin �� ���������−λ está definido por una gramática sin

símbolos inútiles, ni �� ���������−λ , ni producciones unidad. Algoritmo: Eliminar producciones unidad: 1. Por el teorema anterior se puede suponer que no existen �� ���������−λ .

2. Cálculo de &� . o En &� estarán todas las producciones no unidad de� o Si #�� , se añade a &� todas las producciones de la forma α→� ,

siendo α→# una producción no unidad de� Ejemplo: Encontrar una gramática equivalente sin producciones unidad:

�!+

��#$+�

$���$

,,,��#

��$�

�$��

!

!!

!

!

���$

,,,��#

��$�

��#$�!$��

!

!

!!

www.

.com

Mat

emat

ica1

Page 42: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 42

Capítulo 2.3. ÁRBOLES DE DERIVACIÓN. DERIVACIONES Y AMBIGÜEDAD. Definición: Árbol de derivación: Sea ( )��)')" ���= una �$ . Un árbol es un árbol de derivación para si:

• Todo vértice tiene una etiqueta tomada de { }λ∪∪)')"

• La etiqueta de la raíz es el símbolo inicial � • Los vértices interiores tienen etiquetas de)" • Si un nodo� tiene etiqueta � y ����� ���� ��� respectivamente son hijos del vértice� ,

ordenados de izquierda a derecha, con etiquetas ����� ���� ��� respectivamente, entonces:

������ !!!! ���→

debe ser una producción en� • Si el vértice� tiene etiqueta λ , entonces� es una hoja y es el único hijo de su padre. Ejemplo: Sea ( )��)')" ���= una �$ con� : ������ !→ . La derivación de la cadena

������ será: ��������������� ��� y el árbol de derivación:

Definición: Producción del árbol de derivación: Si leemos las etiquetas de las hojas de izquierda a derecha tenemos una sentencia.

Llamamos a esta cadena la producción del árbol de derivación. Teorema: Sea ( )��)')" ���= una �$ . Entonces α �� (de � se derivaα ) si y sólo si hay

un árbol de derivación en la gramática con la producción deα . Siω es una cadena de ( ) � para la gramática libre de contexto , entoncesω tiene al

menos un árbol de derivación. Referido a un árbol de derivación particular, ω tendrá una única derivación a la izquierda y otra a la derecha.

S

a S b

S a b

a b

www.

.com

Mat

emat

ica1

Page 43: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 43

Ambigüedad: Es posible que exista más de un árbol de derivación para una única cadena. Por ejemplo: Sea ( )��)')" ���= con { }89�������)��� +=)' , { }+)" = y � :

��)!��!89!�! +++++� +→ .

La cadena ������� + tiene dos árboles de derivación:

Definición: Ambigüedad: Una gramática libre de contexto se dice que es ambigua si existe alguna palabra

perteneciente al lenguaje que genera que tenga más de un árbol de derivación. Definición: Lenguaje intrínsecamente ambiguo: Un lenguaje es intrínsecamente ambiguo cuando no existe ninguna gramática 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

www.

.com

Mat

emat

ica1

Page 44: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 44

Capítulo 2.4. AUTÓMATAS DE PILA. ¿Podríamos encontrar un autómata finito que reconociera el lenguaje { }��� ≥= �� �� ? 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 número de ceros que han llegado para compararlo

con el número de unos. Autómata de pila: Un autómata de pila es aquella máquina que reconoce lenguajes generados por

gramáticas libres de contexto. La aceptación de las cadenas por parte de estos autómatas puede ser: • Por vaciado de pila • Por estados finales Definición: Autómata de pila: Un autómata de pila es una séptupla ( )���-�� ������ ��ΓΣ= donde:

• Σ es el alfabeto de entrada • Γ es el alfabeto de la pila • � es el conjunto de estados

• - es el símbolo inicial de la pila • �� es el estado inicial

• � es una aplicación { } ( ) % Γ×→Γ×∪Σ× ���� λ

• � es un subconjunto de� que contiene los estados finales Definición: Configuración: Descripción instantánea del �� . ( )αω��� , donde� representa el estado actual del autómata, Σ∈ω la cadena que

queda por procesar (si λω = toda la cadena de entrada ha sido leída) y α es el contendo de la

pila en el instante actual (si λα = la pila está vacía, Γ∈α ) Definición: Configuración inicial: ( )-� ��� ω , Σ∈ω . Definición: Configuración final: Autómata de pila por estados finales: ( )� ��λ , con �∈ y Γ∈� . Autómata de pila por vaciado de pila: ( )λλ�� , con �∈ . Definición: movimiento: Es el tránsito entre dos configuraciones. Se representa: ( ) ( )αγωαω ������� &�-�� � , donde la función � para esta entrada toma

el valor: ( ) ( )-���� ���& ∈γ .

www.

.com

Mat

emat

ica1

Page 45: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 45

Lenguaje aceptado por un �� : Definición: Lenguaje aceptado por estados finales: El lenguaje aceptado por estados finales por el �� ( )���-�� ������ ��ΓΣ= es:

( ) ( ){ }

������������� Γ∈∈Σ∈ ���-� λωω � Definición: Lenguaje aceptado por vaciado de pila: El lenguaje aceptado por vaciado de pila por el �� ( )∅ΓΣ= ������ �� ��-�� es:

( ) ( ){ }�-� ∈Σ∈ ����������

λλωω � Ejemplo: Autómata de pila que reconozca el lenguaje libre de contexto { }��� ≥= �� �� .

( )���-�� ������ ��ΓΣ= con:

• Alfabeto de entrada. { }���=Σ

• Alfabeto de la pila. { }$- �=Γ

o Llega un cero. Introducimos una$ en la pila o Llega un uno. Retiramos una$ de la pila o Estado inicial de la pila. -

• Conjunto de estados. { }�� �= o Estado . Leyendo ceros (apilando) o Estado� . Leyendo unos (desapilando)

• Estado inicial. � =� Comenzamos leyendo ceros.

• Estados finales. ∅=� El autómata funcionará por vaciado de pila.

• La función � .

( ) ( ){ }( ) ( ){ }( ) ( ){ }( ) ( ){ }( ) ( ){ }λλ

λλ

���

����

����

����

����

�-��

�$��

$�

$$$�

$--�

=====

Con � definimos aquellos movimientos que hacen que las cadenas del lenguaje sean aceptadas, no definimos aquellas transiciones que no nos conduzcan a una aceptación.

Definición: Autómata de pila determinista: Se dice que un �� es determinista cuando cumple que: 1. ��∈∀ y Γ∈∀� , si ( ) ∅≠��� ��λ entonces ( ) Σ∈∀∅= ����� ���

Es decir, no se podrá obtar por un funcionamiento independiente de la entrada u otro dependiente de la entrada.

2. ��∈∀ , Γ∈∀� y { }( )λ∪Σ∈∀� debe cumplir que ( )( ) ����������� ≤���� No habrá para ningún estado más de un posible movimiento dado un determinado símbolo de entrada y uno en la cima de la pila.

www.

.com

Mat

emat

ica1

Page 46: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 46

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

aceptados por vaciado de pila. Teorema: A toda gramática libre de contexto, le corresponde un �� que reconoce, por vaciado de

pila, el lenguaje generado por ella y viceversa. Corolario: El conjunto de lenguajes reconocidos por los �� son los lenguajes libres de contexto y

todo ��$ tiene un autómata de pila que lo reconoce. También se puede deducir que existe una correspondencia entre los lenguajes libres de

contexto, las gramáticas libres de contexto y los autómatas de pila.

Lenguaje

Autómata Gramática ���������

����������������

����������������

www.

.com

Mat

emat

ica1

Page 47: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 47

Algoritmo �� �$ − : Sea la gramática libre de contexto ( )��)')" ���= , construimos un ��

( )∅ΓΣ= ������ � ��-�� donde:

• )'=Σ • )')" ∪=Γ • { }�� =

• �- = • �� =�

• � se define como:

( ) ( ) )'������ ∈∀= ����λ

( ) ( )���� ��� λα = si y sólo si �� ∈→ α , donde )"�∈ y ( ))')" ∪∈α Ejemplo: Sea la gramática ( )��)')" ���= tal que { }89������� +=)' , { }�'+)" ��= , +� =

y� :

( ) ��!

!�

!

+�

��''

''++

+→

Hallar el autómata de pila equivalente: ( )∅ΓΣ= ������ � ��-�� , donde:

• { }89������� +=Σ

• { }�'+ ��8�9������� +=Γ

• { }�� =

• +- = • �� =�

• � :

( ) ( ){ }( ) ( ){ }( ) ( ){ }( ) ( ){ }( ) ( ){ }( ) ( ) ( ){ }( ) ( ) ( ){ }( ) ( )( ) ( ){ }�����4��

������

���4��

�8�8�

�9�9�

�����

���

�������

�+���

���'�'��

'�'+���

���

���

���

���

���

==

+===

==++

=

λλλ

λλ

λλ

λ

www.

.com

Mat

emat

ica1

Page 48: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 48

Capítulo 2.5. ALGORITMOS DE DECISIÓN. FNC Y CYK. Teorema: Cualquier lenguaje libre de contexto sin λ es generado por una gramática en la que todas

las producciones son de la forma �� → ó #$� → , donde )"$#� ∈�� y )'�∈ . Definición: Forma normal de Chomsky, �"$ : Una gramática que tiene todas las producciones en la forma indicada por el teorema

anterior se dice que están en forma normal de Chomsky ( )�"$ .

www.

.com

Mat

emat

ica1

Page 49: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 49

Algoritmo �"$ �$ − : Suponemos una �$ de forma que ( ) � no contiene λ .

1. Paso previo: Eliminar �� ���������−λ , producciones unidad y símbolos inútiles.

En este momento, cualquier producción de la forma �� → ya está en�"$ , porque � tiene que ser un terminal (no hay producciones unidad).

2. Nos ocuparemos de producciones de la forma &����� ���→ , con �≥& .

o Si �� es un símbolo terminal, � , introducimos un nuevo símbolo no

terminal �$ y una producción �$� → y reemplazamos �� por �$ . o Repetimos el proceso para cada símbolo terminal y para cada producción.

3. Tendremos producciones de la forma &####� ���→ , con �≥& .

o Si �=& ya está en�"$ . o Sino, creamos símbolos no terminales ���� ���� −&���� y reemplazamos la

producción &####� ���→ por el conjunto de producciones:

�&& �#�

�#�

�#�

�#�

��

���

���

��

−− →

Ejemplo: Consideremos la �$ { } { }( )����#�� ������= con� el conjunto de producciones:

����###

�������

�#���

!!

!!

!

Buscar una gramática equivalente en�"$ :

�.

��

�#�

.�$

�.��##

���$��

�#.��

!!

!!

!

www.

.com

Mat

emat

ica1

Page 50: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 50

Cuestión: ¿Es un lenguaje libre de contexto vacío? Un lenguaje libre de contexto será vació si, a partir de � (el axioma), no podemos llegar a

cadenas de símbolos terminales. Es decir, basta estudiar si � es un símbolo muerto. Cuestión: ¿Es un lenguaje libre de contexto infinito? Para ver si ( ) � es finito, buscamos una �$ & en�"$ y sin símbolos inútiles, que

genere ( ) { }λ− � . ( )& � será finito si ( ) � lo es. Construimos un grafo dirigido con un vértice para cada variable y una flecha del

vértice � al vértice# si hay una producción de la forma #$� → ó $#� → para cualquier$ .

Entonces, el lenguaje creado es finito si y sólo si este grafo no tiene ciclos. Por ejemplo:

�$

�$$#

�#$�

�#�

!

!

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

A

S

B

C

www.

.com

Mat

emat

ica1

Page 51: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 51

Cuestión: Dada una �$ ( )��)')" ���= , )'�∈ , ¿ ( ) ��∈ ? Para responder a esta cuestión utilizaremos el algoritmo Cocke – Younger – Kasami

( )$./ .

Partimos de una �$ en forma normal de Chomsky. Se trata de reconstruir el árbol de derivación para � de abajo arriba. Iremos obteniendo

los)" que generan las distintas subcadenas de � . Estos conjuntos de)" se denominarán ��) y

contienen símbolos)" que derivan la subcadena de � que comienza en la posición � y con longitud � .

El objetivo es obtener los)" del conjunto �)"� (toda la cadena � ), si uno de ellos es el

axioma, entonces ( ) ��∈ . Algoritmo$./ : Formalmente, podemos expresar el algoritmo anterior como sigue: ��������������� �������� ���������������������������������������������������� ���! ��������"�����#��$%�&���� �����������'���%$��������(� �������� $%�����������������������%$�� ��������� ��������)������� � ������� � � ������*+�� � � ���,����� ������������ � � � �����������-�����������./����������������������0�.��

�� 1������,���/��� 1������)��,#�� � ����� ����� El algoritmo va a ir rellenando la siguiente matriz:

��)

��) ��) �) ��)

��)

��) ��) �)

��)

��) ��)

�)

�)

��)

www.

.com

Mat

emat

ica1

Page 52: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 52

Ejemplo: Dada una �$ ( )��)')" ���= , con� :

��#$

�$$#

�#��

#$�#�

!

!

!

!

Determinar si la palabra����� pertenece al lenguaje generado por . � � � � �

1 ��)

{ }# ��)

{ }$�� ��)

{ }$�� �)

{ }# ��)

{ }$��

2 ��)

{ }��� ��)

{ }# ��)

{ }$� � �)

{ }���

3 ��)

∅ ��)

{ }# ��)

{ }#

4 �)

∅ �)

{ }$��

5 ��)

{ }�$� ��

Como ��)� ∈ , la palabra pertenece al lenguaje.

www.

.com

Mat

emat

ica1

Page 53: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 53

Capítulo 2.6. PROPIEDADES DE LOS LENGUAJES LIBRES DE CONTEXTO. Teorema: Los lenguajes libres de contexto son cerrados bajo la unión, la concatenación y el cierre

de Kleene. • Sean �� y �� dos lenguajes libres de contexto y � y � las gramáticas libres de

contexto que reconocen cada lenguaje, respectivamente: • Caso A: �� �� ∪

{ }( )��)')'�)")" ��� ���� ∪∪∪= , donde� tiene �� �� ∪ y además las producciones:

�� ! ��� →

• Caso B: �����

{ }( )��)')'�)")" ��� ���� ∪∪∪= , donde� tiene �� �� ∪ y además la producción:

������ →

• Caso C: ( ) �� :

{ }( )��)'�)" ��� �� ∪= , donde� tiene �� , más las producciones:

λ!�� ��� →

www.

.com

Mat

emat

ica1

Page 54: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 54

Apéndice A: ÁLGORITMOS. Minimización de autómatas finitos deterministas: Partimos de un ��� ( )����� ���� �δ= . Hallaremos un ��� que acepta ( )�� y

tiene el menor número de estados posibles, ( )&&

&&& ���� ����� δ= . 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 partición sean equivalentes y no haya pares de estados equivalentes en particiones distintas.

Construir una partición inicial ∏ dividiendo el conjunto� en dos grupos: estados

finales� y no – finales �� − .

Determinar una nueva partición �����∏ a partir de ∏ aplicando el siguiente procedimiento

para cada grupo de ∏ :

o Dividir en dos subgrupos tales que dos estados �� y �� de estarán en el

mismo subgrupo si y sólo si para cada entrada! , los estados �� y �� tienen

transiciones con! hacia estados del mismo grupo de ∏ .

o Sustituir por sus grupos en �����∏ .

Si ∏≠∏����� , se han creado nuevos subgrupos:

o �����∏=∏ o volver al paso 2.2 en caso contrario, es decir, si ya no salen más grupos: o ∏=∏'���� o ir al paso 3

8. Se escoge un estado de cada grupo de la partición '����∏ como representante para

formar el nuevo conjunto &� .

9. Cálculo de &δ en &� . Sea �� un estado representante, sea un símbolo� tal

que ( ) �� ��� =�δ y sea �� el representante del grupo de �� , entonces ( ) �� ��� =�δ

10. Estado inicial y finales. o El estado inicial &

�� de &� se elige como el representante del grupo que

contiene al estado inicial �� de � .

o El conjunto de estados finales &� estará formado por los representantes de grupos donde haya estados finales.

www.

.com

Mat

emat

ica1

Page 55: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 55

Ejemplo: Minimizar el ��� ( )����� ���� �δ= donde { }��� �= , { }��������=� , �� =� ,

{ }��� = yδ viene dada por la siguiente tabla:

δ � � � � � � � � � � � � � � �

{ } { } { }{ }

{ }{ }�

��

=

��

��

=���

==

==

��������

������

��

���

���

��

Luego, ( )&&

&&& ���� ����� δ= donde { }��� �= , { }������& =� , �&

� =� , { }�& �� = y &δ viene dada por:

&δ � �

� � � � � � � � � �

www.

.com

Mat

emat

ica1

Page 56: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 56

Algoritmo �����"�� :

6. Definición del nuevo conjunto de estados &� .

o ( )��� =& (conjunto de partes de� )

o Notación: al conjunto{ }���� ���� ���� lo denotamos por [ ]���� ����

o A menudo, no todos los estados de &� serán accesibles desde el estado

inicial &

�� . En el paso 2 se determiná cuales son accesibles.

o

[ ] [ ] [ ] [ ] [ ] [ ] [ ][ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ][ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ][ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ][ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ][ ] [ ] [ ] [ ] [ ] [ ] �

���

����

����

����

�∅

=

��������������������������������������������

������������������������������������������������������������

������������������������������������������������������

��������������������������������������������������������

����������������������������������������

������������

&�

7. Definición de la nueva función de transición &δ .

o Para cada conjunto de estados &�$ ⊆ y para cada símbolo ��∈ ,

( ) ( )�$

�$�����

& �� δδ =

Para cada conjunto de estados que sea accesible desde el &

�� , miramos para todos los estados del conjunto a qué estados transita con la entrada� y tomamos la unión de todos ellos.

o &� estará formada por aquellos estados que sean accesibles desde el inicial

al definir &δ .

8. Definición del nuevo estado inicial &

�� .

o [ ]&�&

� �� =

9. Definición del nuevo conjunto de estados finales &� . o [ ] [ ]{ }��������������� ��� ∈∃∧∈= &

��������

& 10. Eliminación de estados inaccesibles.

o Todos aquellos estados de &� (ver paso 1) que no hayan hecho falta en el paso 2.

www.

.com

Mat

emat

ica1

Page 57: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 57

Ejemplo: Sea el siguiente ��"� , calcular el ��� equivalente:

δ � �

→ � { }��� { }��� � ∅ � � � � � ∅

&δ � �

→ [ ]� [ ]��� [ ]��� [ ]��� [ ]���� [ ]��� [ ]��� [ ]��� [ ]����� [ ] ���� [ ]���� [ ]����

[ ] ����� [ ]����� [ ]�����

[ ] ���� [ ]���� [ ]������

[ ] ����� [ ]������ [ ]�����

[ ] ������ [ ]������ [ ]������

[ ] ������ [ ]������ [ ]������

www.

.com

Mat

emat

ica1

Page 58: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 58

Algoritmo ��"� con �)���)���$�−λ � ��"� sin �)���)���$�−λ : Dado un ��"� con �)���)���$�−λ ( )����� ���� �δ= , el nuevo autómata lo

definimos como ( )&�

&& ���� ����� δ= .

3. Definición de &δ : ( )���� →×%&δ

( ) ( )���� �� & δδ =

o Calculamos ( )�� *�� −= λ

o Calculamos ( )[ ]�� � ����� �� ∈= �δ

o Calculamos ( )�� *� �� −= λ

4. Definición de &� : o Si ( ) ∅≠∩− ���*�λ entonces { } ��� ∪= �

&

o Si ( ) ∅=∩− ���*�λ entonces �� =& Ejemplo: Sea el siguiente ��"� con �)���)���$�−λ , calcular el ��"� equivalente:

δ � � � λ

→ � � ∅ ∅ # # ∅ # ∅ $ $ ∅ ∅ $ ∅

�%"δ � � �

→ � { }$#� �� { }$#� { }$ # ∅ { }$#� { }$ $ ∅ ∅ { }$

A B C

0

1 2

www.

.com

Mat

emat

ica1

Page 59: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 59

Equivalencia entre expresión regular ( )!� y autómata finito ( )�� : Teorema: Si � es una expresión regular, entonces existe un ��"� con �)���)���$�−λ y con, a

lo sumo, un estado final del que no sale niguna transición, que acepta ( )�� . Demostración: Aplicamos el método de inducción al número de operadores de la expresión regular: • Caso básico.

Con� operadores. λ=� ∅=�

�� = con ��∈

• Caso general. Con�ó más operadores.

o Sean �� y �� dos expresiones regulares, por tanto, para �� existe

( )������ ���� ����� δ= tal que ( ) ( )�� ���� = y para �� existe

( )������ ���� ����� δ= tal que ( ) ( )�� ���� = .

o Supongamos ∅=∩ �� �� (renombrar estados) y construimos� .

q q0 x

q q0 q

www.

.com

Mat

emat

ica1

Page 60: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 60

o Caso A: ( )�� ��� +=

{ } { }( )�������� ����� ��������� δ∪∪∪= , conδ :

( ) ( ) ( ){ }�� ��� ������ ∈∈= ωωω

o Caso B: ( )������ =

{ }( )������ ���� ������� δ∪∪= , conδ :

( ) ( ) ( ){ }������ ���� ������ ∈∈= ωωωω

q1 M1 f1

q2 M2 f2

q0

q1

f0

… f1

q2 … f2

M1

M2

www.

.com

Mat

emat

ica1

Page 61: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 61

o Caso C: ( ) ��� =

{ } { }( )������� ����� ������� δ∪= , conδ :

( ) ( ){ } ����� ∈= ωω

o Reglas de desarrollo:

qi qj qk � �

qi qj

a

b

qi qj qk a b

qi a* qj

qi a+b qj

qi a·b qj

q1 M1 f1 �

q0 �

f2 �

www.

.com

Mat

emat

ica1

Page 62: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 62

Equivalencia entre autómata finito ( )�� y expresión regular ( )!� :

Se trada de, dado un ��� encontrar una expresión regular de tal forma que describan el mismo lenguaje.

Dado un ��� se denota por �� al lenguaje reconocido por el ��� cuando se considera

al estado� como estado inicial.

Se denota por �� a la expresión regular que denota al lenguaje �� , por tanto, ( )�� ��� = .

Definición: Ecuación característica:

( )( )

=���

���&�

&

&

�δ

Por ejemplo, en el autómata:

( ) �� =��& ( ) λ=#�& � ( ) ∅=$�& �

( ) ∅=�#& � ( ) �� =##& ( ) λ=$#& �

( ) ∅=�$& � ( ) ∅=#$& � ( ) �� =$$&

( ) ∈+=

�� ��� ���&� & &� & , donde:

• ∅=� si ��∉

ó • λ=� si ��∈

Así, en el autómata del ejemplo:

λλλ

+=+=+=

$$

$##

#��

��

���

���

��

���

���

Definición: Regla de Arden: Sean� , � y' tres expresiones regulares tal que �∉λ , entonces:

• '��'��� �� =⇔+=

• �� �'�'��� =⇔+=

A B C

0

1 2

www.

.com

Mat

emat

ica1

Page 63: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 63

Algoritmo �!���� : 4. Obtener las ecuaciones carácterísticas del �� calculando �� para todo ��∈ .

5. Despejar �� aplicando las propiedades de las expresiones regulares (principalmente

regla de Arden y distributiva). 6. Si �� es el estado inicial,

��� es la expresión regular que denota aquellas cadenas que

partiendo de �� llegan a un estado final y por tanto la expresión que denota al

lenguaje reconocido por el ��� . Ejemplo: Hallar la expresión regular que describe el lenguaje definido por el autómata:

���

�����

��

��

��

���

���

��

���

���

==

=

��

��

===

��

��

===

��

��

+=+=+=

$

#

$

$#

#�

$

$#

#�

$$

$##

#��

��

��

��

��

��

���

���

λλλ

λλλ

Así, �����== ��!�

A B C

0

1 2

www.

.com

Mat

emat

ica1

Page 64: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 64

Simplificación de �$ : Consiste en restringir el formato de las producciones de la gramática sin reducir su poder

generativo de palabras de un ��$ . • Cada símbolo no terminal y cada símbolo terminal aparece en la derivación de

alguna palabra del ��$ generado por la �$ .

• No hay producciones de la forma #� → donde )"#� ∈� . Los pasos a seguir son los siguientes: • Eliminar símbolos inútiles • Eliminar �� ���������−λ o producciones vacías • Eliminar producciones unidad Definición: Símbolos muertos: Símbolos no terminales de los que no se deriva ninguna cadena de símbolos

terminales. Definición: Símbolos inaccesibles: Símbolos terminales o no terminales a los cuales no se puede llegar desde el símbolo

inicial. Definición: Símbolos inútiles: Símbolos terminales o no terminales que no pueden aparecer en la derivación de

ninguna palabra del ��$ .

www.

.com

Mat

emat

ica1

Page 65: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 65

Lema: Eliminar símbolos muertos: Dada una �$ ( )��)')" ���= con ( ) ∅≠ � , se puede encontrar otra �$

( )&&& ��� ��)')" = equivalente a tal que &)"�∈∀ existe al menos una

palabra )'∈ω tal que ω �� . Algoritmo: Eliminar símbolos muertos: 3. Cálculo de &)" .

o Si una producción es de la forma ω→� con )'∈ω entonces se añade

el símbolo � en &)" .

o Si una producción es de la forma ������ ���→ con �� símbolos

terminales o no terminales que ya han sido incluidos en &)" , entoncese se

añade el símbolo � en &)" .

4. Cálculo de &� . o &� será el conjunto de todas las producciones de� que contengan sólo

símbolos pertenecientes a )')" ∪& . Ejemplo: Eliminar los símbolos muertos de la gramática:

#�#

���

�#�#�

!

!

#�#

�#�

!→

www.

.com

Mat

emat

ica1

Page 66: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 66

Lema: Eliminar símbolos inaccesibles: Dada una �$ ( )��)')" ���= con ( ) ∅≠ � , se puede encontrar otra �$

( )&&&& ��� ��)')" = equivalente a tal que ( )&& )')"� ∪∈∀ existe ( ) &&� )')" ∪∈βα tal

que βα�� � . Algoritmo: Eliminar símbolos inaccesibles: 3. Cálculo de &)" y &)' .

o Se coloca el símbolo inicial en &)" .

o Si &)"�∈ y la producción �� � ∈→ αααα !!!! ��� , se añade a &)"

todos los símbolos no terminales que aparecen en cada �α y a &)' todos los

símbolos terminales que aparecen en cada �α -

4. Cálculo de &� . o &� será el conjunto de todas las producciones de� que contengan sólo

símbolos pertenecientes a && )')" ∪ . Ejemplo: Eliminar los símbolos inaccesibles de la gramática:

��

�$�$

�#�#

�#$�

��

!

!

!

�$�$

�#�#

�#$�

��

!

!

!

www.

.com

Mat

emat

ica1

Page 67: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 67

Lema: Eliminar símbolos inútiles. Es importante eliminar primero los símbolos muertos y luego los inaccesibles. Ejemplo: Al eliminar símbolos muertos pueden aparecer símbolos inaccesibles.

���$

$##

��#�

→ !

Eliminamos símbolos muertos:

���$

��

Eliminamos símbolos inaccesibles:

�� →

www.

.com

Mat

emat

ica1

Page 68: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 68

Lema: Eliminar �� ���������−λ o producciones vacías.

Si ( ) �∈λ entonces no se pueden eliminar todas las �� ���������−λ de . Por el

contrario, si ( ) �∉λ entonces sí se pueden eliminar todas las �� ���������−λ de . Definición: Símbolo anulable: Un símbolo no terminal � es anulable si y sólo si λ �� . Por ejemplo: Dadas las producciones:

λλ!

!

�$

��

��$�

Entonces � y$ son anulables. Teorema: Si ( ) � es generado por una �$ , entonces ( ) { }λ− � es generada por una �$

& sin símbolos inútiles ni �� ���������−λ . Algoritmo: Eliminar �� ���������−λ : 3. Determinar los símbolos anulables.

o Si λ→� es una producción, entonces � es anulable.

o Si α→# es una producción y todos los símbolos deα son anulables, entonces# es anulable.

4. Determinar &� . Si ������ ���→ está en� entonces se añade a &� todas las producciones

posibles de la forma �� αααα ���→ donde:

o Si �� no es anulable entonces �� �=α

o Si �� es anulable entonces �� �=α o bien λα =�

o No todas las �α son λ Ejemplo: Eliminar �� ���������−λ de la gramática:

�$

�#

�#$�

���

!

!

λλ

�$

�#

��#�$�#$�

���

!!!

www.

.com

Mat

emat

ica1

Page 69: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 69

Definición: Producción unidad: Las producciones unidad son producciones de la forma #� → , es decir, la parte

derecha es un único símbolo no terminal. Teorema: Todo lenguaje libre de contexto sin �� ���������−λ está definido por una gramática sin

símbolos inútiles, ni �� ���������−λ , ni producciones unidad. Algoritmo: Eliminar producciones unidad: 3. Por el teorema anterior se puede suponer que no existen �� ���������−λ .

4. Cálculo de &� . o En &� estarán todas las producciones no unidad de� o Si #�� , se añade a &� todas las producciones de la forma α→� ,

siendo α→# una producción no unidad de� Ejemplo: Encontrar una gramática equivalente sin producciones unidad:

�!+

��#$+�

$���$

,,,��#

��$�

�$��

!

!!

!

!

���$

,,,��#

��$�

��#$�!$��

!

!

!!

www.

.com

Mat

emat

ica1

Page 70: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 70

Algoritmo �� �$ − : Sea la gramática libre de contexto ( )��)')" ���= , construimos un ��

( )∅ΓΣ= ������ � ��-�� donde:

• )'=Σ • )')" ∪=Γ • { }�� =

• �- = • �� =�

• � se define como:

( ) ( ) )'������ ∈∀= ����λ

( ) ( )���� ��� λα = si y sólo si �� ∈→ α , donde )"�∈ y ( ))')" ∪∈α Ejemplo: Sea la gramática ( )��)')" ���= tal que { }89������� +=)' , { }�'+)" ��= , +� =

y� :

( ) ��!

!�

!

+�

��''

''++

+→

Hallar el autómata de pila equivalente: ( )∅ΓΣ= ������ � ��-�� , donde:

• { }89������� +=Σ

• { }�'+ ��8�9������� +=Γ

• { }�� =

• +- = • �� =�

• � :

( ) ( ){ }( ) ( ){ }( ) ( ){ }( ) ( ){ }( ) ( ){ }( ) ( ) ( ){ }( ) ( ) ( ){ }( ) ( )( ) ( ){ }�����4��

������

���4��

�8�8�

�9�9�

�����

���

�������

�+���

���'�'��

'�'+���

���

���

���

���

���

==

+===

==++

=

λλλ

λλ

λλ

λ

www.

.com

Mat

emat

ica1

Page 71: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 71

Algoritmo �"$ �$ − : Suponemos una �$ de forma que ( ) � no contiene λ .

4. Paso previo: Eliminar �� ���������−λ , producciones unidad y símbolos inútiles.

En este momento, cualquier producción de la forma �� → ya está en�"$ , porque � tiene que ser un terminal (no hay producciones unidad).

5. Nos ocuparemos de producciones de la forma &����� ���→ , con �≥& .

o Si �� es un símbolo terminal, � , introducimos un nuevo símbolo no

terminal �$ y una producción �$� → y reemplazamos �� por �$ . o Repetimos el proceso para cada símbolo terminal y para cada producción.

6. Tendremos producciones de la forma &####� ���→ , con �≥& .

o Si �=& ya está en�"$ . o Sino, creamos símbolos no terminales ���� ���� −&���� y reemplazamos la

producción &####� ���→ por el conjunto de producciones:

�&& �#�

�#�

�#�

�#�

��

���

���

��

−− →

Ejemplo: Consideremos la �$ { } { }( )����#�� ������= con� el conjunto de producciones:

����###

�������

�#���

!!

!!

!

Buscar una gramática equivalente en�"$ :

�.

��

�#�

.�$

�.��##

���$��

�#.��

!!

!!

!

www.

.com

Mat

emat

ica1

Page 72: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 72

¿Es un lenguaje libre de contexto vacío? Un lenguaje libre de contexto será vació si, a partir de � (el axioma), no podemos llegar a

cadenas de símbolos terminales. Es decir, basta estudiar si � es un símbolo muerto. ¿Es un lenguaje libre de contexto infinito? Para ver si ( ) � es finito, buscamos una �$ & en�"$ y sin símbolos inútiles, que

genere ( ) { }λ− � . ( )& � será finito si ( ) � lo es. Construimos un grafo dirigido con un vértice para cada variable y una flecha del

vértice � al vértice# si hay una producción de la forma #$� → ó $#� → para cualquier$ .

Entonces, el lenguaje creado es finito si y sólo si este grafo no tiene ciclos. Por ejemplo:

�$

�$$#

�#$�

�#�

!

!

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

A

S

B

C

www.

.com

Mat

emat

ica1

Page 73: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 73

Dada una �$ ( )��)')" ���= , )'�∈ , ¿ ( ) ��∈ ? Para responder a esta cuestión utilizaremos el algoritmo Cocke – Younger – Kasami

( )$./ .

Partimos de una �$ en forma normal de Chomsky. Se trata de reconstruir el árbol de derivación para � de abajo arriba. Iremos obteniendo

los)" que generan las distintas subcadenas de � . Estos conjuntos de)" se denominarán ��) y

contienen símbolos)" que derivan la subcadena de � que comienza en la posición � y con longitud � .

El objetivo es obtener los)" del conjunto �)"� (toda la cadena � ), si uno de ellos es el

axioma, entonces ( ) ��∈ . Algoritmo$./ : Formalmente, podemos expresar el algoritmo anterior como sigue: ��������������� �������� ���������������������������������������������������� ���! ��������"�����#��$%�&���� �����������'���%$��������(� �������� $%�����������������������%$�� ��������� ��������)������� � ������� � � ������*+�� � � ���,����� ������������ � � � �����������-�����������./����������������������0�.��

�� 1������,���/��� 1������)��,#�� � ����� ����� El algoritmo va a ir rellenando la siguiente matriz:

��)

��) ��) �) ��)

��)

��) ��) �)

��)

��) ��)

�)

�)

��)

www.

.com

Mat

emat

ica1

Page 74: AUTÓMATAS, LENGUAJES Y GRAMÁTICAS REGULARES

Universidad de Oviedo TEORÍA DE AUTÓMATAS

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 74

Ejemplo: Dada una �$ ( )��)')" ���= , con� :

��#$

�$$#

�#��

#$�#�

!

!

!

!

Determinar si la palabra����� pertenece al lenguaje generado por . � � � � �

1 ��)

{ }# ��)

{ }$�� ��)

{ }$�� �)

{ }# ��)

{ }$��

2 ��)

{ }��� ��)

{ }# ��)

{ }$� � �)

{ }���

3 ��)

∅ ��)

{ }# ��)

{ }#

4 �)

∅ �)

{ }$��

5 ��)

{ }�$� ��

Como ��)� ∈ , la palabra pertenece al lenguaje.

www.

.com

Mat

emat

ica1