Teoria-automatas

  • Uploaded by: Andrea Elizabeth Armijos
  • 0
  • 0
  • March 2021
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Teoria-automatas as PDF for free.

More details

  • Words: 14,467
  • Pages: 74
Loading documents preview...
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)

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.

Alberto Suárez López

Página 1

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) 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

={

},

Alberto Suárez López

= {λ

.

}.

Página 2

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) 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).

Alberto Suárez López

Página 3

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) Relación Gramática – Autómata – Lenguaje: Gramática

Autómata

Lenguaje

Gramática Tipo 0: Gramática sin restricciones Tipo 1: Gramática sensible al contexto Tipo 2: Gramática libre de contexto Tipo 3: Gramática regular

Lenguaje Recursivamente enumerable. Sin restricciones

Autómata Máquina de Turing (MT)

Dependiente del contexto

Autómata linealmente acotado (ALA)

Independiente del contexto

Autómata con pila (AP)

Regular

Autómata finito (AF)

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

Tipo 0 Tipo 1 Tipo 2

Alberto Suárez López

Tipo 3

Página 4

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) Operaciones con palabras: Definición: Concatenación: Dado un alfabeto , sean =





y

=

palabras donde ∀

. La concatenación de las palabras y ,

símbolos de seguidos de los símbolos de



y

, es una palabra formada por los

=

, 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

=





=

Alberto Suárez López

Página 5

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) 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:

=





Alberto Suárez López





Página 6

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) 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 o + ó ! denota al lenguaje ∪ Por ejemplo: = , = , + = + , ( + )={ } o

o

denota al lenguaje Por ejemplo: = , ( )={

= o

,

( ) = {λ

=

+

,

:

}

denota al lenguaje Por ejemplo: +



}

denota al lenguaje Por ejemplo: +

y

}⊂

+

( )= {

}

+

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.

Alberto Suárez López

Página 7

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) Ejemplos: Sea ={ Expresión regular

+ +( ( + )

( ) ( + )

(

(

+

(

)

)

+

}. Lenguaje

)

{ { {λ {

)

} }

Palabras que terminan en

+

(

+

Palabras que empiezan en y luego sólo tienen ´s Empiezan y terminan con la misma letra

)

Expresión regular

+ + + + + + +#+"+ ( $ )+ (+ ! − ! λ ) $ ) $ (λ ! ! $

!

! $

(+

}

Palabras con un número par de ´s

Igual número de

(

}

)(

!

! $

!

$

)+

)

que de

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 ∅ +∅ = ∅+ = λ =λ

Alberto Suárez López

Página 8

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) Equivlencia de expresiones regulares: • ∅ = ∅=∅



∅ =λ + = = =



=

• • •



( )

( )

• • •

=

=λ+



( ( (

+ +

+

) ) )

+

=

( ) + = (λ + )

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



Alberto Suárez López

+

Página 9

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) 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: luego tienen letras, dígitos, $ ó _

palabra de entrada

pertenece o no

deben empezar por letra, & ó _ 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 >

palabra de entrada

identificador válido o no

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. Alberto Suárez López

Página 10

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) 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 partiendo del actual. Representación de la función de transición de un Tabla de transiciones:

Se representa δ mediante una matriz de

δ

puede llegar

:

×



Filas:



Estados ∈ , estado inicial precedido de  → y estados finales de Columnas: ) el estado determinado por δ ( Símbolos de entrada ∈ y en (

)

Por ejemplo:

Alberto Suárez López

Página 11

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) Diagrama de transición de estados: Se crea un grafo dirigido en el que, para cada estado

(

cada transición δ

)=

, se crea un arco de

a



se crea un nodo y, para

etiquetado con

.

El estado inicial tendrá un arco entrante no etiquetado y los estados finales estarán rodeados de doble círculo. Por ejemplo: q2 a q1

b

q3

Ejemplo: que reconozca las palabras formadas por ´s y ´s con un número par de 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

={

δ% δ

×

´s y

}  →

Alberto Suárez López

Página 12

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) b

q0

q1 b

a

a

a

q2

b

a

q3

b

Definición: Configuración:

Descripción instantánea de un , (ω ) ∈ estado actual y ω la cadena que queda por procesar.

ω∈

, donde representa el

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

Alberto Suárez López

, la palabra es aceptada. Sino, es rechazada.

Página 13

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) 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 δ . partiendo de un estado y procesando una Describe el comportamiento de un 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 δ %

δ %

× • •

 →

δ (λ δ (ω

Donde ∈

×

a

de la forma siguiente:

)= )=δ( ,

ω∈

δ (ω 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 : ) , el lenguaje aceptado por Sea el =( δ como

 →

( ) es el conjunto ( ) = {ω ∈

δ (ω

)∈

}.

)∈ que se representa

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.

Alberto Suárez López

Página 14

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) Equivalencia de estados: Definición: Estados equivalentes: ) , dos estados Sea el =( δ denota

y son equivalentes, y se

≡ , 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 número mínimo de estados.

, es decir, hallar otro

Minimización de autómatas finitos deterministas: ) . Hallaremos un Partimos de un =( δ tiene el menor número de estados posibles,

&

=

(

&

δ&

&

&

equivalente con el

que acepta

).

( )y

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 ∏ para cada grupo o

a partir de ∏ aplicando el siguiente procedimiento

de ∏ : 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 Si ∏

por sus grupos en ∏

Sustituir

.

≠ ∏ , 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 ∏ ' formar el nuevo conjunto 4. Cálculo de δ en &

que δ (

)=

Alberto Suárez López

&

. Sea

y sea

&

como representante para

.

un estado representante, sea un símbolo tal el representante del grupo de

, entonces δ (

)= Página 15

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) 5. Estado inicial y finales. &

El estado inicial

o

de

&

se elige como el representante del grupo que

contiene al estado inicial

. &

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

o Ejemplo: Minimizar el

={

de

=(

δ

) donde

={

}y δ viene dada por la siguiente tabla:

},

={

},

= ,

δ



={

}

={ } Luego, viene dada por:

&

={

=

(

={ &

δ&

&

} } &

) donde

={

} ={ } ={

},

&

={

},

&

= ,

&

={

}y δ &

δ&

Alberto Suárez López

Página 16

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) 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 ) es útil, al llegar al símbolo , suponer que configuración inicial es ( ( $ 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 (

definir para otras combinaciones (

) y, por el contrario, puede

) más de un estado.

Ejemplo: Autómata que reconoce aquellas palabras formadas por ´s y ´s que terminan en

.

0,1 0

A

B

1

Definición: Autómata finito no – determinista, Un " es una quíntupla " = ( δ

" :

) con el mismo significado que para

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

un

δ%

C

×

 →

( ) , 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: (ω ) .

Alberto Suárez López

Página 17

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) Definición: Configuración final: λ , con ∈ .

(

)

Definición: movimiento: Es el tránsito entre dos configuraciones. Se representa:

vacío.

(

ω

(ω ) , donde

)

&

&

∈δ (

).

Representación de un

" :

Tabla de transiciones: Se diferencian de los

en que el contenido de las casillas es un conjunto, incluso el

Por ejemplo:

δ

{ #} {∅} {∅}

# $

$

{∅}

Diagrama de transición de estados: Igual que los ´s. Definición: Función de transición extendida:

Se extiende δ %

δ (λ δ (ω

• •

Donde ∈

)= )= ,

×

 →

δ ( δ (ω ω∈ y ∈

Lenguaje aceptado por un

( ) aδ

×

%

 →

( ) como sigue:

)) " :

Definición: Aceptación de palabras:

Una palabra ω será aceptada por un

" si y sólo si δ (ω

)⊂

Definición: Lenguaje reconocido por un : ) , el lenguaje aceptado por Sea el " =( δ como

( ) es el conjunto ( ) = {ω ∈

Teorema: Equivalencia entre Si



es aceptado por un

Alberto Suárez López

δ (ω

y

)∩

}

que se representa

≠∅ .

" :

" , existe un

que acepta

.

Página 18

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) Algoritmo

:

"

1. Definición del nuevo conjunto de estados o

Notación: al conjunto

o

A menudo, no todos los estados de inicial

=

&

&

)

}lo denotamos por [

{

o

o

.

( ) (conjunto de partes de

=

&

&

&

]

serán accesibles desde el estado

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

[∅] [ ] [ ] [ ] [ ] [ ] [ ] [ ][ ][ ][ ][ [ ][ ][ ][ [ ][ ][ ][ [ ][ ][ [ ][ ][

][ ][ ][ ][ ][ ][ ] ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]

]

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 tomamos la unión de todos ellos. &

o

y

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 paso 2.

Alberto Suárez López

&

(ver paso 1) que no hayan hecho falta en el

Página 19

] ]

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) Ejemplo: Sea el siguiente

δ

" , calcular el

 →

equivalente:

{ } ∅

{ } ∅

δ&  →

Alberto Suárez López

[] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]

[ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]

[ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]

Página 20

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) 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”. , pero proporciona

No expande la clase de lenguajes hasta ahora aceptados por los facilidades para construirlos. Por ejemplo:

=

{

}

0

2

1

A

B

C

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

con λ − )

"

)

sólo δ difiere de un

" . ∪ {λ }}×  →

δ %{

=(

se define como

$

δ

∅ # ∅

∅ ∅

Definición: Configuración: Descripción instantánea de

(ω )



ω∈

$

δ

:

) donde

( )

En el ejemplo anterior:

# $

)

λ #

∅ ∅ $

"

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: Alberto Suárez López

(

ω

)

(ω ) , donde &

&

∈δ

(

). Página 21

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)

λ− ) = { }∪ { & ∈

Definición:

λ −* (

Es decir: 1. ∈λ −* 2. si

( ) ∈λ −* ( )

de un estado,



δ (λ

)

λ − * ( )%  → & λ}

( ):

)∈ λ − * ( )

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 δ % { 1. 2. 3.

δ (λ δ (

δ (ω

∪ {λ }}×

"

con λ − )

Definición: Aceptación de palabras: Una palabra ω será aceptada por un

(ω ) ∩

( )aδ

×

%

)= λ −* ( ) ) = λ − * [ δ ( ) ∈ λ − * ( )] ) = λ − * [ δ ( ) ∈ δ (ω )]

Lenguaje aceptado por un

si δ

 →

)

( ) donde:

 →

:

$

" con λ − )

)

$

si y sólo

≠ ∅.

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 por

que se representa como

Alberto Suárez López

(

con λ − )

δ

: ) , el lenguaje aceptado

( ) es el conjunto ( ) = {ω ∈

)

$

δ (ω

)∩

}

≠∅ . Página 22

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)

" con y sin λ − )

Equivalencia entre

)

:

$

Teorema:

" con λ − ) ) $ , entonces Si ⊂ es aceptado por un por un " sin λ − ) ) $ y, por tanto, es un lenguaje regular. Algoritmo " con λ − ) ) $ Dado un " con λ − ) ) $ definimos como

&

=

(

δ

1. Definición de δ : &

δ

&

(

)=δ (

)

Calculamos

o

Calculamos

o

Calculamos &

o o

&

δ& %

o

2. Definición de

&

×

 →

= λ −* ( = δ(

[

=(

δ

)

≠ ∅ entonces

&

={

= ∅ entonces

&

=

" con λ − )

0

)

$

}∪

, calcular el

B

δ  →

∅ ∅

# $

δ  →

# $

Alberto Suárez López

%"

{

∅ ∅

" equivalente: 2

1

A

$

]



:

( )∩ Si λ − * ( ) ∩

: ) , el nuevo autómata lo

)

( )

) = λ −* ( )

Si λ − *

Ejemplo: Sea el siguiente

).

" sin λ − )

es aceptado

C

∅ # ∅

∅ ∅ $

# $}

{# $} {# $} ∅

λ # $ ∅

{$} {$} {$}

Página 23

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) Equivalencia entre expresión regular (!

) y autómata finito (

):

Teorema: Si es una expresión regular, entonces existe un " con λ − ) ) lo sumo, un estado final del que no sale niguna transición, que acepta ( ) .

y con, a

$

Demostración: Aplicamos el método de inducción al número de operadores de la expresión regular: • Caso básico. Con operadores.



=∅

q

q0

q

= con ∈ q0



x

q

Caso general. Con ó más operadores. o Sean y dos expresiones regulares, por tanto, para existe

=( =(

o

Supongamos

Alberto Suárez López

δ δ ∩

) tal que ( ) = ( ) y para ) tal que ( ) = ( ) .

existe

= ∅ (renombrar estados) y construimos

.

Página 24

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) o

Caso A:

=(

=( + ) ∪ ∪{

}



{ }) , con δ :

δ

M1 q1



f1

q0

f0

q2



f2

M2

o

( ) = {ω ω ∈ ( ) ω ∈ ( )} ) Caso B: = ( =( ∪ ∪ δ { }) , con δ : q1

M1

f1

q2

( ) = {ω

Alberto Suárez López

ω ω ∈

( )

ω ∈

M2

(

f2

)}

Página 25

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) o

Caso C:

=(

=( ∪{

)

}

q0

δ

{ }) , con δ :

q1

M1

f1

f2

( ) = {ω ω ∈ ( ) }

o

Reglas de desarrollo:

qi

a·b

qj

qi

a+b

qj

qi

a

qk

b

qj

a

qi

qj

b a*

qi

qj qi

qk

qj

Teorema: Si ⊂ es un lenguaje aceptado por un expresión regular.

, entonces

se puede describir por una

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

Alberto Suárez López

Página 26

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) 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: 0

2

1

A

B

&( &( # &($

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

)= )=∅ )=∅

=

&



&

( ) &



= ∅ si ∉

ó •

= λ si ∈

&

+

C

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

, donde:

Así, en el autómata del ejemplo:



=

#

=

$

=

# +λ $

# $



Definición: Equivalencia entre autómata finito ( Se trata de, dado un mismo lenguaje.

) y expresión regular (! ) :

encontrar una expresión regular de tal forma que describan el

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

= =

+' ⇔ +' ⇔

Alberto Suárez López

, entonces:

= ' ='

Página 27

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) Algoritmo ! : 1. Obtener las ecuaciones carácterísticas del 2. Despejar

calculando

para todo



.

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: 0

2

1

A

B



#



$

= #

=

#

$

=

$

Así, ! =



λ # λ $ = λ

= # =

= # =

$

$

=

C

# $

= # = $

=

=

Alberto Suárez López

Página 28

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) 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 Definición: Lema de Pumping: Sea

un lenguaje aceptado por un

Entonces, es posible descomponer ω en la forma ω

(



∀ ≥

Hipótesis:

con estados. Sea ω ∈

yω ≥

.

= ( , donde la subcadena ( es no vacía,

( < .

y

con ω ≥



ω∈



ω= (



( <

Tésis: El lenguaje

no es regular.

con

(



∀ ≥

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; expresiones regulares.

Alberto Suárez López

y

los autómatas finitos y

y

las

Página 29

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) •

Caso A:



=(

∪{



}

δ



{ }) , con δ : M1

q1



f1

q0

f0

q2



f2

M2 •

Caso B:

=(

∪ q1



δ

{ }) , con δ : M1

q2

Alberto Suárez López

f1

M2

f2

Página 30

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) •

Caso C:

=(

∪{

}

q0

{ }) , con δ :

δ

q1

M1

f1

f2

Teorema: es.



Si

es un lenguaje regular, entonces su complementario

Demostración: Sea el

=

#=(

ω∈

( ) para un δ



).

=(

(# ) si y sólo si δ (ω ) ∈

Alberto Suárez López

δ −

) , se define

=

, lo que significa que ω ∉

=

− también lo

(# ) donde # es ( ).

Página 31

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) Teorema: Si y son lenguajes regulares, también lo es



=



=

( )y



=(

=

.

.

Construcción del Sea =( δ que



:

=(

)y

( ),

δ

) los

´s tales

que simule el comportamiento de ambos autómatas:

δ

×

(



Los estados de



Estado inicial:



Estados finales:

×



Transiciones de

: Si

(

suponiendo que δ

δ(

(

×

)

son pares de estados, el primero de

)

)) = (δ (

Alberto Suárez López

)

(

está en el estado (

)=

)δ (



( ))

)=

y el segundo de

.

) y es el símbolo a la entrada, )) = ( ) . , δ( (

Página 32

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) 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 λ − ) ) $ .

Alberto Suárez López

Página 33

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)

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.

46

7

4 $

 → 3

3 2

$)5$ $

 → 4 $ 4 $

!3

2

4 $

$

$  → ! ! ! ! ! ! ! # ! " !  → + ! − ! ! 1

Alberto Suárez López

Página 34

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) Definición: Derivación directa:

* y es la aplicación de una producción  → a una palabra ( para convertirla en otra palabra * , de tal forma que si ( = α β , entonces * = α β . Se representa mediante (

→ se aplica a la palabra ( para obtener la palabra * o Se dice que la producción  se dice que de ( se deriva directamente * . Por ejemplo:

+ 4 $

+

Definición: Derivación: Se representa mediante ( una palabra. Si −

,

 →

,

,…,

* y es la aplicación de una secuencia de producciones a

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

Alberto Suárez López

( ) = ( ).

Página 35

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) 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.

$: Sus producciones responden al modelo  →α , donde ∈ )" y α ∈ ()" ∪ )' ) . Definición: Gramática libre de contexto,

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

Alberto Suárez López

Página 36

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) Definición: Símbolos muertos: Símbolos no terminales de los que no se deriva ninguna cadena de símbolos terminales.

inicial.

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

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: ) con Dada una $ = ()" )'

&

(

= )" )' &

&

)equivalente a

palabra ω ∈ )' tal que

( ) ≠ ∅ , se puede encontrar otra

$

tal que ∀ ∈ )" existe al menos una &

ω.

Algoritmo: Eliminar símbolos muertos: &

1. Cálculo de )" . o

Si una producción es de la forma el símbolo

o

 → ω con ω ∈ )' entonces se añade

&

en )" .

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 &

2. Cálculo de &

o

&

en )" .

.

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:

 → # ! #  → # → ! #  → # # → ! #

Alberto Suárez López

Página 37

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) Lema: Eliminar símbolos inaccesibles: $ ) con Dada una = ()" )'

&

(

= )" & )' &

que

) equivalente a

&

α β.

( ) ≠ ∅ , se puede encontrar otra

tal que ∀

(

)

$

(

)

∈ )" & ∪ )' & existe α β ∈ )" & ∪ )' & tal

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:

 →  → #$ ! # → # ! $ → $ !  →  →  → #$ ! # → # ! $ → $ !

Alberto Suárez López

Página 38

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) 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

Alberto Suárez López

$ sin símbolos inútiles.

Página 39

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) Lema: Eliminar λ −

o producciones vacías.

( ) entonces no se pueden eliminar todas las λ − contrario, si λ ∉ ( ) entonces sí se pueden eliminar todas las λ − Si λ ∈

Definición: Símbolo anulable: Un símbolo no terminal

es anulable si y sólo si

de

. Por el

de

.

λ.

Por ejemplo: Dadas las producciones:

 →

$

 → ! λ $ → ! λ Entonces y $ son anulables. Teorema: Si ( ) es generado por una &

$

sin símbolos inútiles ni λ −

, entonces

( ) − {λ} es generada por una

$

.

: Algoritmo: Eliminar λ − 1. Determinar los símbolos anulables.

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

Si

2. Determinar

&

.

 →

Si

o o

entonces se añade a

&

todas las producciones

α donde: Si no es anulable entonces α = Si es anulable entonces α = o bien α = λ No todas las α son λ

posibles de la forma o

está en

Ejemplo: Eliminar λ −

 →α α α

de la gramática:

 →  → #$ # → λ ! $ → λ !

 →  → #$ ! $ ! # ! # → $ → Alberto Suárez López

Página 40

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) Definición: Producción unidad: Las producciones unidad son producciones de la forma derecha es un único símbolo no terminal. Teorema: Todo lenguaje libre de contexto sin λ −

símbolos inútiles, ni λ −

 → # , es decir, la parte

está definido por una gramática sin

, ni producciones unidad.

Algoritmo: Eliminar producciones unidad: 1. Por el teorema anterior se puede suponer que no existen λ − 2. Cálculo de

&

.

En

&

estarán todas las producciones no unidad de

o o

.

# , se añade a & todas las producciones de la forma  →α , siendo #  →α una producción no unidad de Si

Ejemplo: Encontrar una gramática equivalente sin producciones unidad:

 → $  →

! $

# →

! ,,,

$ →

!

!$

 → + !

#$

+ → !  → $  →

! !!

#$

$

# →

! ,,,

$ →

!

Alberto Suárez López

Página 41

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) Capítulo 2.3. ÁRBOLES DE DERIVACIÓN. DERIVACIONES Y AMBIGÜEDAD. Definición: Árbol de derivación: ) una $ . Un árbol es un árbol de derivación para Sea = ()" )'

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: S

a

S

a

b

S

b

a

b

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

α (de con la producción de α .

$ . Entonces

un árbol de derivación en la gramática

se deriva α ) si y sólo si hay

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.

Alberto Suárez López

Página 42

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) Ambigüedad: Es posible que exista más de un árbol de derivación para una única cadena. Por ejemplo: Sea = ()" )'

) con )' = {

) + 9 8}, )" = {+} y

:

 → + + + ! + + ! 9 + 8 ! ! ) . La cadena + tiene dos árboles de derivación: E

E

·

id

E

E

+

id

E

id E

E

E

id

·

+

E

E

id

id

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.

Alberto Suárez López

Página 43

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) 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 • • •

Σ es el alfabeto de entrada Γ es el alfabeto de la pila

• •

- es el símbolo inicial de la pila

= (Σ Γ

) donde:

-

es el conjunto de estados es el estado inicial



es una aplicación



es un subconjunto de

%

Definición: Configuración: Descripción instantánea del

(

× Σ ∪ {λ }× Γ  →

(

×Γ

)

que contiene los estados finales

.

ω α ) , 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: el valor:

(

&

γ )∈

(

Alberto Suárez López

(

ω - α)

(

&

ω γ α ) , donde la función

para esta entrada toma

-). Página 44

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) Lenguaje aceptado por un

:

Definición: Lenguaje aceptado por estados finales: = (Σ Γ El lenguaje aceptado por estados finales por el

{ω ∈ Σ (

ω -)

(

λ

)



∈Γ

Definición: Lenguaje aceptado por vaciado de pila: El lenguaje aceptado por vaciado de pila por el

{ω ∈ Σ (

ω -)

(

λ λ)



}

}

= (Σ Γ

Ejemplo: Autómata de pila que reconozca el lenguaje libre de contexto

= (Σ Γ

• •



• • •

) con: Alfabeto de entrada. Σ = { } Alfabeto de la pila. Γ = {- $ }

=

-

) es:

-

∅ ) es:

{



}.

-

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: ) ≠ ∅ entonces ( )= ∅ ∀ ∈Σ 1. ∀ ∈ y ∀ ∈ Γ , si ( λ 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.

Alberto Suárez López

Página 45

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) 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 pila, el lenguaje generado por ella y viceversa. Corolario: El conjunto de lenguajes reconocidos por los $ tiene un autómata de pila que lo reconoce. todo

que reconoce, por vaciado de

son los lenguajes libres de contexto y

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. Gramática

Autómata

Lenguaje

Alberto Suárez López

Página 46

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) Algoritmo $− : Sea la gramática libre de contexto

= (Σ Γ • • • • • •

∅ ) donde: Σ = )' Γ = )" ∪ )' ={ } -= =

) , construimos un

se define como:

( λ) = ( ) ∀ ∈ )' ( α ) = ( λ ) si y sólo si

Ejemplo: Sea la gramática y

= ()" )'

= ()" )'

 →α ∈ , donde ∈ )" y α ∈ ()" ∪ )' )

) tal que )' = {

+ 9 8} , )" = {+ '

},

=+

:

+ → + + ' ! ' ' → '

!

 →(+ ) ! Hallar el autómata de pila equivalente: = (Σ Γ ∅ ) , donde: • • • • • •

Σ = { + 9 8} Γ ={ + 9 8 + ' ={ } -=+ =

}

:

( ) = {( λ )} ( + + ) = {( λ )} ( ) = {( λ )} ( 9 9 ) = {( λ )} ( 8 8 ) = {( λ )} ( λ 4 ) = {( + + ' ) ( ' )} ( λ ' ) = {( ' ) ( )} ( λ 4 ) = {( (+ )) ( )}

Alberto Suárez López

Página 47

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) 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 ( "$ ) .

Alberto Suárez López

Página 48

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)

$ − "$ : una $ de forma que 1. Paso previo: Eliminar λ −

Algoritmo Suponemos

( ) no contiene λ . , 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 o

Si

es un símbolo terminal,

&,

por $ .

Repetimos el proceso para cada símbolo terminal y para cada producción.

3. Tendremos producciones de la forma o o

.

, introducimos un nuevo símbolo no

terminal $ y una producción $  → y reemplazamos o

con & ≥

 → # # #

Si & = ya está en "$ . Sino, creamos símbolos no terminales producción

 → # # #

#& , con & ≥ . &−

y reemplazamos la

#& por el conjunto de producciones:

 → #  → #  → #

&−

 → #& −

Ejemplo: Consideremos la

$

 →

! #

 →

!

!

# → ## !

!

= ({

#} {

}

) con

el conjunto de producciones:

Buscar una gramática equivalente en "$ :

 → . ! #  → $ !

!

# → # ! . ! $ → .  → #  → . →

Alberto Suárez López

Página 49

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) 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?

( ) es finito, buscamos una $ ( ) − {λ} . ( & ) será finito si ( ) lo es.

Para ver si genere

&

en "$ y sin símbolos inútiles, que

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:

 → #  → #$ ! # → $$ ! $ → S

A

B

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

Alberto Suárez López

Página 50

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)

$ ) , ∈ )' , ¿ ∈ ( ) ? 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 )" axioma, entonces ∈

( ).

(toda la cadena

), si uno de ellos es el

Algoritmo $./ : Formalmente, podemos expresar el algoritmo anterior como sigue:

! $ %&

'

"

#

%$

( $ %

%$ ) *+ , , /

1

1

./ ) ,#

0.

El algoritmo va a ir rellenando la siguiente matriz:

)

)

)

)

)

)

)

)

)

)

)

)

)

)

)

Alberto Suárez López

Página 51

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) Ejemplo: Dada una

= ()" )'

$

) , con

:

 → # ! #$  → # ! # → $$ ! $ → # ! Determinar si la palabra

1 2 3 4 5

Como

)

{#}

)

{

}

)

pertenece al lenguaje generado por

)

{

)

{#}

)

{#}

∅ )

)

∅ )

{

$

$}

{

) ) )

{

{

$}

$}

)

)

.

{#} {

)

{

$}

}

{#}

$}

}

∈ ) , la palabra pertenece al lenguaje.

Alberto Suárez López

Página 52

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) 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

} )' ∪ )'

) , donde

tiene



y además la

producciones:

 → •

!

Caso B:

= ()" ∪ )" ∪ {

producción:

 → •

( ): = ()" ∪ { } )'

Caso C:

 →

Alberto Suárez López

) , donde

tiene

, más las producciones:



Página 53

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)

Apéndice A: ÁLGORITMOS. Minimización de autómatas finitos deterministas: ) . Hallaremos un Partimos de un =( δ tiene el menor número de estados posibles,

&

=

(

&

δ

&

&

&

que acepta

).

( )y

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 ∏ para cada grupo o

a partir de ∏ aplicando el siguiente procedimiento

de ∏ : 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 Si ∏

por sus grupos en ∏

Sustituir

.

≠ ∏ , 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 ∏ ' &

formar el nuevo conjunto 9. Cálculo de δ en &

que δ (

)=

&

. Sea

y sea

como representante para

.

un estado representante, sea un símbolo tal 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 o

de

. &

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

Alberto Suárez López

Página 54

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) Ejemplo: Minimizar el

={

=(

δ

) donde

={

}y δ viene dada por la siguiente tabla:

},

={

},

= ,

δ



={

}

={ } Luego, viene dada por:

&

={

=

(

={ &

δ&

&

} } &

) donde

={

} ={ } ={

},

&

={

},

&

= ,

&

={

}y δ &

δ&

Alberto Suárez López

Página 55

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) Algoritmo

:

"

6. Definición del nuevo conjunto de estados o

Notación: al conjunto

o

A menudo, no todos los estados de inicial

=

&

&

)

}lo denotamos por [

{

o

o

.

( ) (conjunto de partes de

=

&

&

&

]

serán accesibles desde el estado

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

[∅] [ ] [ ] [ ] [ ] [ ] [ ] [ ][ ][ ][ ][ [ ][ ][ ][ [ ][ ][ ][ [ ][ ][ [ ][ ][

][ ][ ][ ][ ][ ][ ] ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]

]

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 tomamos la unión de todos ellos. &

o

y

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 paso 2.

Alberto Suárez López

&

(ver paso 1) que no hayan hecho falta en el

Página 56

] ]

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) Ejemplo: Sea el siguiente

δ

" , calcular el

 →

equivalente:

{ } ∅

{ } ∅

δ&  →

Alberto Suárez López

[] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]

[ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]

[ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]

Página 57

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) Algoritmo " con λ − ) ) $ Dado un " con λ − ) ) $ definimos como

&

=

(

δ

3. Definición de δ : &

δ

&

(

)=δ (

&

&

δ %

×

&

)

).

 →

o

Calculamos

= λ −* (

o

Calculamos

=

o

Calculamos &

4. Definición de o o

[

=(

δ

)

≠ ∅ entonces

&

={

= ∅ entonces

&

=

" con λ − )

0

)

$

}∪

, calcular el

B

δ  →

∅ ∅

# $

δ  → # $

Alberto Suárez López

%"

{

∅ ∅

" equivalente: 2

1

A

$

]



:

( )∩ Si λ − * ( ) ∩

: ) , el nuevo autómata lo

)

( )

) = λ −* ( )

Si λ − *

Ejemplo: Sea el siguiente

δ(

" sin λ − )

C

λ

∅ # ∅

∅ ∅ $

# $ ∅

# $}

{# $} {# $}

{$} {$} {$}



Página 58

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) Equivalencia entre expresión regular (!

) y autómata finito (

):

Teorema: Si es una expresión regular, entonces existe un " con λ − ) ) lo sumo, un estado final del que no sale niguna transición, que acepta ( ) .

y con, a

$

Demostración: Aplicamos el método de inducción al número de operadores de la expresión regular: • Caso básico. Con operadores.



=∅

q

q0

q

= con ∈ q0



x

q

Caso general. Con ó más operadores. o Sean y dos expresiones regulares, por tanto, para existe

=( =(

o

Supongamos

Alberto Suárez López

δ δ ∩

) tal que ( ) = ( ) y para ) tal que ( ) = ( ) .

existe

= ∅ (renombrar estados) y construimos

.

Página 59

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) o

Caso A:

=(

=( + ) ∪ ∪{

}



{ }) , con δ :

δ

M1 q1



f1

q0

f0

q2



f2

M2

o

( ) = {ω ω ∈ ( ) ω ∈ ( )} ) Caso B: = ( =( ∪ ∪ δ { }) , con δ : q1

M1

f1

q2

( ) = {ω

Alberto Suárez López

ω ω ∈

( )

ω ∈

M2

(

f2

)}

Página 60

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) o

Caso C:

=(

=( ∪{

)

}

q0

( ) = {ω

o

δ

{ }) , con δ :

q1

ω∈

M1

f1

f2

( )}

Reglas de desarrollo:

qi

a·b

qj

qi

a+b

qj

qi

a

qk

b

qj

a

qi

qj

b qi

a*

qj qi

Alberto Suárez López

qk

qj

Página 61

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) 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: 0

2

1

A

B

&( &( # &($

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

)= )=∅ )=∅

=

&



&

( ) &



= ∅ si ∉

ó •

= λ si ∈

&

+

C

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

, donde:

Así, en el autómata del ejemplo:

=



#

#

=

# +λ

$

$

=

$



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

= =

+' ⇔ +' ⇔

Alberto Suárez López

, entonces:

= ' ='

Página 62

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) Algoritmo ! : 4. Obtener las ecuaciones carácterísticas del 5. Despejar

calculando

para todo ∈

.

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: 0

2

1

A

B



#



$

= #

=

#

$

=

$

Así, ! =



λ # λ $ = λ

= # =

= # =

$

$

=

C

# $

= # = $

=

=

Alberto Suárez López

Página 63

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) 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 $ generado por la $ . alguna palabra del •

No hay producciones de la forma

 → # donde

# ∈ )" .

Los pasos a seguir son los siguientes: • Eliminar símbolos inútiles o producciones vacías • Eliminar λ − • Eliminar producciones unidad Definición: Símbolos muertos: Símbolos no terminales de los que no se deriva ninguna cadena de símbolos terminales.

inicial.

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

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

Alberto Suárez López

Página 64

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) Lema: Eliminar símbolos muertos: $ ) con Dada una = ()" )'

&

(

= )" & )'

)equivalente a

&

palabra ω ∈ )' tal que

( ) ≠ ∅ , se puede encontrar otra

$

tal que ∀ ∈ )" existe al menos una &

ω.

Algoritmo: Eliminar símbolos muertos: &

3. Cálculo de )" . o

Si una producción es de la forma el símbolo

o

 → ω con ω ∈ )' entonces se añade

&

en )" .

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 &

4. Cálculo de &

o

&

en )" .

.

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:

 → # ! #  → # → ! #  → # # → ! #

Alberto Suárez López

Página 65

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) Lema: Eliminar símbolos inaccesibles: $ ) con Dada una = ()" )'

&

(

= )" & )' &

que

) equivalente a

&

α β.

( ) ≠ ∅ , se puede encontrar otra

tal que ∀

(

)

$

(

)

∈ )" & ∪ )' & existe α β ∈ )" & ∪ )' & tal

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:

 →  → #$ ! # → # ! $ → $ !  →  →  → #$ ! # → # ! $ → $ !

Alberto Suárez López

Página 66

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) 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:

 →

Alberto Suárez López

Página 67

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) Lema: Eliminar λ −

o producciones vacías.

( ) entonces no se pueden eliminar todas las λ − contrario, si λ ∉ ( ) entonces sí se pueden eliminar todas las λ − Si λ ∈

Definición: Símbolo anulable: Un símbolo no terminal

es anulable si y sólo si

de

. Por el

de

.

λ.

Por ejemplo: Dadas las producciones:

 →

$

 → ! λ $ → ! λ Entonces y $ son anulables. Teorema: Si ( ) es generado por una &

$

sin símbolos inútiles ni λ −

, entonces

( ) − {λ} es generada por una

$

.

: Algoritmo: Eliminar λ − 3. Determinar los símbolos anulables.

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

Si

4. Determinar

&

.

 →

Si

o o

entonces se añade a

&

todas las producciones

α donde: Si no es anulable entonces α = Si es anulable entonces α = o bien α = λ No todas las α son λ

posibles de la forma o

está en

Ejemplo: Eliminar λ −

 →α α α

de la gramática:

 →  → #$ # → λ ! $ → λ !

 →  → #$ ! $ ! # ! # → $ → Alberto Suárez López

Página 68

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) Definición: Producción unidad: Las producciones unidad son producciones de la forma derecha es un único símbolo no terminal. Teorema: Todo lenguaje libre de contexto sin λ −

símbolos inútiles, ni λ −

 → # , es decir, la parte

está definido por una gramática sin

, ni producciones unidad.

Algoritmo: Eliminar producciones unidad: 3. Por el teorema anterior se puede suponer que no existen λ − 4. Cálculo de

&

.

En

&

estarán todas las producciones no unidad de

o o

.

# , se añade a & todas las producciones de la forma  →α , siendo #  →α una producción no unidad de Si

Ejemplo: Encontrar una gramática equivalente sin producciones unidad:

 → $  →

! $

# →

! ,,,

$ →

!

!$

 → + !

#$

+ → !  → $  →

! !!

#$

$

# →

! ,,,

$ →

!

Alberto Suárez López

Página 69

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) Algoritmo $− : Sea la gramática libre de contexto

= (Σ Γ • • • • • •

∅ ) donde: Σ = )' Γ = )" ∪ )' ={ } -= =

) , construimos un

se define como:

( λ) = ( ) ∀ ∈ )' ( α ) = ( λ ) si y sólo si

Ejemplo: Sea la gramática y

= ()" )'

= ()" )'

 →α ∈ , donde ∈ )" y α ∈ ()" ∪ )' )

) tal que )' = {

+ 9 8} , )" = {+ '

},

=+

:

+ → + + ' ! ' ' → '

!

 →(+ ) ! Hallar el autómata de pila equivalente: = (Σ Γ ∅ ) , donde: • • • • • •

Σ = { + 9 8} Γ ={ + 9 8 + ' ={ } -=+ =

}

:

( ) = {( λ )} ( + + ) = {( λ )} ( ) = {( λ )} ( 9 9 ) = {( λ )} ( 8 8 ) = {( λ )} ( λ 4 ) = {( + + ' ) ( ' )} ( λ ' ) = {( ' ) ( )} ( λ 4 ) = {( (+ )) ( )}

Alberto Suárez López

Página 70

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)

$ − "$ : una $ de forma que 4. Paso previo: Eliminar λ −

Algoritmo Suponemos

( ) no contiene λ . , 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 o

Si

es un símbolo terminal,

&,

por $ .

Repetimos el proceso para cada símbolo terminal y para cada producción.

6. Tendremos producciones de la forma o o

.

, introducimos un nuevo símbolo no

terminal $ y una producción $  → y reemplazamos o

con & ≥

 → # # #

Si & = ya está en "$ . Sino, creamos símbolos no terminales producción

 → # # #

#& , con & ≥ . &−

y reemplazamos la

#& por el conjunto de producciones:

 → #  → #  → #

&−

 → #& −

Ejemplo: Consideremos la

$

 →

! #

 →

!

!

# → ## !

!

= ({

#} {

}

) con

el conjunto de producciones:

Buscar una gramática equivalente en "$ :

 → . ! #  → $ !

!

# → # ! . ! $ → .  → #  → . →

Alberto Suárez López

Página 71

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) ¿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?

( ) es finito, buscamos una $ ( ) − {λ} . ( & ) será finito si ( ) lo es.

Para ver si genere

&

en "$ y sin símbolos inútiles, que

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:

 → #  → #$ ! # → $$ ! $ → S

A

B

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

Alberto Suárez López

Página 72

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)

$ ) , ∈ )' , ¿ ∈ ( ) ? 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 )" axioma, entonces ∈

( ).

(toda la cadena

), si uno de ellos es el

Algoritmo $./ : Formalmente, podemos expresar el algoritmo anterior como sigue:

! $ %&

'

"

#

%$

( $ %

%$ ) *+ , , /

1

1

./ ) ,#

0.

El algoritmo va a ir rellenando la siguiente matriz:

)

)

)

)

)

)

)

)

)

)

)

)

)

)

)

Alberto Suárez López

Página 73

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) Ejemplo: Dada una

= ()" )'

$

) , con

:

 → # ! #$  → # ! # → $$ ! $ → # ! Determinar si la palabra

1 2 3 4 5

Como

)

{#}

)

{

}

)

pertenece al lenguaje generado por

)

{

)

{#}

)

{#}

∅ )

)

∅ )

{

$

$}

{

) ) )

{

{

$}

$}

)

)

.

{#} {

)

{

$}

}

{#}

$}

}

∈ ) , la palabra pertenece al lenguaje.

Alberto Suárez López

Página 74

Related Documents

Teoriaautomatas
January 2021 0

More Documents from "Javier Antonio Dominguez Martinez"

Teoria-automatas
March 2021 0
Informe Curvas Idf
January 2021 1
February 2021 0
Banco Preguntas Med
February 2021 0