domingo, 14 de junio de 2015

Tema 1. Autómatas y jerarquización de autómatas

Los autómatas vienen a ser mecanismos formales que "realizan" derivaciones en gramáticas formales mediante la noción de reconocimiento, que dada una entrada produce una salida, es decir, calcula alguna función. Generalmente la entrada es una cadena de símbolos de un alfabeto, y la salida también, posiblemente sobre otro alfabeto.

Autómatas finitos:

Un autómata finito (FA) consiste en un conjunto finito de estados y un conjunto de transiciones de estado a estado, que se dan sobre símbolos de entrada tomados de un alfabeto ∑. para cada símbolo existe exactamente una transición a partir de cada estado (posiblemente al mismo estado).

A un FA se le asocia un grafo dirigido, conocido como diagrama de transiciones, de la manera siguiente:



 (JHON & JEFFREY, 2000)

En la figura se ilustra un diagrama de transiciones, donde podemos saber que q0 es el inicio, por la etiqueta, y es el único estado final (en este caso) indicado por el doble círculo. El FA que se muestra solo acepta cadenas de ceros y unos, en las que el número de 0s y el número de 1s son pares.
Esto se entiende mejor si se considera que hay un control; el control empieza en q0 y termina en q0, cada entrada 0 requiere que el control cruce la línea horizontal a-b, mientras que una entrada 1 no. por lo que el control esta indicado por las rectas a-b y c-d.


Autómatas de pila:

Los Autómatas de Pila son una extensión de los AFD a los que se les añade una memoria (pila).
En la pila se almacenan símbolos de la cadena de entrada y de la gramática, así como caracteres especiales (#) para indicar el estado de pila vacía.
   Las transiciones son de la forma: (p,x,s;q,t)
   p=estado inicial
   q=estado al que llega
   x= símbolo de la cadena de entrada
   s=símbolo que se des-apila
   t=símbolo que se apila

(MORENO)

Para encontrar mas informacion de autómatas de pila visitar: http://www.uhu.es/francisco.moreno/talf/docs/tema7.pdf

Autómatas lineales: 

son autómatas de pila deterministas que a lo largo de su computación sólo hacen un ``cambio de turno''. A grandes rasgos, esto significa que toda computación consiste de un procedimiento de empilar consecutivamente para después pasar a des-empilar. 


Ejemplo: Consideremos el lenguaje de palíndromos con una marca central: 

\begin{displaymath}L=\{\mbox{\bf y}M\mbox{\bf x}\vert\mbox{\bf x}\in (0+1)^*,\mbox{\bf y}=\mbox{\it reverso\/}(\mbox{\bf x})\}.\end{displaymath}


Consideremos el autómata de pila cuyas componentes son las siguientes: 
\begin{displaymath}\begin{array}{lcl}
Q = \{\mbox{\rm Meter}, \mbox{\rm Sacar},...
...ox{\rm Meter} &:& \mbox{\rm s\'\i mbolo inicial},
\end{array}\end{displaymath}


y cuya función de transición actúa como sigue, 
\begin{displaymath}t:\begin{array}{lcll}
(\mbox{\rm Meter},0,y) &\mapsto& (\mbo...
...},\mbox{\it nil\/}) &\mbox{\rm estado de \'exito,}
\end{array}\end{displaymath}


donde $y\in V$ y b es el símbolo ``blanco''. En cualquier otra instancia de t, ésta transitará al estado de fracaso. Es claro que este autómata de pila reconoce al lenguaje L

Equivalencias de autómatas:

Dado un modelo de especificación de lenguaje, por ejemplo, el de los autómatas finitos, un problema decisional típico es el de determinar la equivalencia de dos representantes cualesquiera de ese modelo. los algoritmos generales de determinación y minimización de autómatas finitos, conjuntamente con la propiedad de unicidad del autómata mínimo, periten establecer un marco claro de comparación de autómatas y resolver el problema de la equivalencia de NFAs.

Por lo tanto: 
  
Dados dos NFAs cualesquiera, M1 y M2, son equivalentes (reconocen el mismo lenguaje) si y sólo si los autómatas mínimos correspondientes de M1 y M2 son el mismo autómata.


Tema 2. Máquinas finitas

Una Máquina de Estado Finito (Finite State Machine), llamada también Autómata Finito es una abstracción computacional que describe el comportamiento de un sistema reactivo mediante un número determinado de Estados y un número determinado de Transiciones entre dicho Estados.

Las Transiciones de un estado a otro se generan en respuesta a eventos de entrada externos e internos; a su vez estas transiciones y/o subsecuentes estados pueden generar otros eventos de salida. Esta dependencia de las acciones (respuesta) del sistema a los eventos de entrada hace que las Máquinas de Estado Finito (MEF) sean una herramienta adecuada para el diseño de Sistemas Reactivos y la Programación Conducida por Eventos (Event Driven Programming), cual es el caso de la mayoría de los sistemas embebidos basados en micro-controladores o microprocesadores.

Las MEF se describen gráficamente mediante los llamados Diagramas de Estado Finito (DEF), llamados también Diagramas de Transición de Estados.

Tema 3. Lenguajes y teoremas de equivalencia entre lenguajes producidos por gramáticas y lenguajes reconocidos por autómatas.

El lenguaje

es simplemente un conjunto de palabras. Así, {consecuencia} es un lenguaje (de una sola palabra), {los, tres, mosqueteros} es otro. Puesto que las secuencias fueron definidas en la sección de preliminares. Formalmente, la palabra es la secuencia de letras que la conforman. Los lenguajes son conjuntos, podemos efectuar con ellos todas las operaciones de los conjuntos (unión, intersección, diferencia)

Concepto de Expresión Regular

El objetivo de las Expresiones Regulares es representar todos los posibles lenguajes definidos sobre un alfabeto Σ. Para ello se utilizan: 

*Lenguajes primitivos: Lenguaje vacío, el lenguaje con la palabra vacía, y los lenguajes con los símbolos del alfabeto. 
*Operadores de composición: unión, concatenación, el cierre y los paréntesis.

Teoremas de Equivalencia

Mediante expresiones regulares se puede representar cualquier lenguaje regular.
* Representación de lenguajes regulares:
* Gramáticas lineales por la izquierda
* Gramáticas lineales por la derecha
* AFD
* AFND


Teoremas 

Teorema 1
El conjunto de lenguajes reconocidos por autómatas finitos no deterministas coincide con el conjunto de lenguajes reconocidos por autómatas finitos deterministas.

Teorema 2
El conjunto de lenguajes regulares coincide con el conjunto de lenguajes reconocidos por autómatas finitos.

2.1 Para todo lenguaje regular existe una gramática regular que lo genera que puede expresarse mediante reglas de re-escritura en cuyos lados derechos nunca aparezca en solitario un símbolo terminal.

Teorema 3
El conjunto de lenguajes reconocidos por autómatas finitos coincide con el conjunto de lenguajes representados por expresiones regulares.

3.1 Todos los lenguajes con un número finito de cadenas son regulares.

3.2 El conjunto de cadenas aceptadas por un autómata finito puede ser infinito.

Teorema 4
Existen lenguajes no regulares.

Teorema 5
La unión de un conjunto finito de lenguajes regulares es un lenguaje regular.


Tema 4. Gramáticas formales: definiciones, operaciones, tipos de lenguajes, ambigüedad, equivalencia



• Una gramática define la estructura de las frases y de las palabras de un lenguaje.

• Las gramáticas son un método para la generación de palabras de un lenguaje a partir de un alfabeto.

– para generar estas palabras se utilizan las derivaciones.
– se denominan formales porque se centran en los estudios de los lenguajes formales que son aquellos que están definidos a partir de reglas preestablecidas. Para los lenguajes naturales existen otro tipo de gramáticas.


Operaciones: 

Para poder definir la dinámica asociada a una gramática, necesitamos asociarle un sistema de transición.




Lenguajes:

Un lenguaje formal es un conjunto (finito o infinito) de cadenas finitas de símbolos primitivos.

Ej: El lenguaje “Número” es simplemente el conjunto infinito de cadenas finitas formadas con los dígitos 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9
Dichas cadenas están formadas gracias a un alfabeto y a una gramática que están formalmente especificados:
*El alfabeto es un conjunto finito no vacío de símbolos
*La gramática es un conjunto finito de reglas para formar cadenas finitas juntando símbolos del alfabeto
*A cada cadena de símbolos de un lenguaje formal se le llama fórmula bien formada (o palabra) del lenguaje.

Un lenguaje regular es un lenguaje formal que tiene estas características:
*Puede ser descrito mediante una expresión regular (expresar de forma compacta cómo son todas las cadenas de símbolos que le pertenecen)
*Puede ser generado mediante una gramática regular (obtener todas las cadenas de símbolos que le pertenecen)
*Puede ser reconocido mediante un autómata finito (saber si una cadena de símbolos pertenece a él o no) 

Un lenguaje incontextual es un lenguaje formal que tiene estas características:
*Puede ser generado mediante una gramática incontextual (obtener todas las cadenas de símbolos que le pertenecen)
*Puede ser reconocido mediante un autómata con pila (saber si una cadena de símbolos pertenece a él o no) 

Ambigüedad:

Se dice que una sentencia es ambigua cuando para una misma sentencia podemos tener varios árboles de derivación diferentes. (Como se vio en el ejemplo anterior, una misma sentencia puede obtenerse como resultado de varias derivaciones diferentes, pero a las que les corresponde un único árbol de derivación.) 

Se dice que una gramática es ambigua si tiene al menos una sentencia ambigua. 

Se dice que un lenguaje es ambiguo si existe una gramática ambigua que lo genera. 

Ejemplo : – G = ({i, +, *, (, )}, {E}, E, E ::= E + E | E * E | ( E ) | i }) – Consideremos la sentencia i+i*i. Para esta sentencia podemos tener los siguientes árboles de derivación :


Esto no quiere decir que el lenguaje sea ambiguo, ya que se puede encontrar una gramática equivalente a la anterior, sin ser ambigua. Pero hay lenguajes para los cuales es imposible encontrar gramáticas no ambiguas. Estos lenguajes se denominan “inherentemente ambiguos”.




Tema 5. Otras gramáticas y jerarquización de Chomsky


Chomsky clasificó las gramáticas en cuatro grandes grupos : G0, G1, G2 y G3. Cada uno de estos grupos incluye las gramáticas del siguiente, de acuerdo con el siguiente esquema: 

Gramáticas tipo 0 

Las reglas de producción tienen la forma

En las reglas de producción: 
La parte izquierda no puede ser la palabra vacía. 

En la parte izquierda (u) ha de aparecer algún símbolo no terminal. 

Los lenguajes representados por estas gramáticas reciben el nombre de lenguajes sin restricciones. 

Gramáticas tipo 1 

Las reglas de producción de esta gramática tienen la forma 


Ya que v no puede ser la palabra vacía, se deduce de aquí que este tipo de gramáticas no pueden tener reglas compresoras. Se admite una excepción en la regla S ::= λ (siendo S el axioma de la gramática). Como consecuencia se tiene que la palabra vacía pertenece al lenguaje generado por la gramática sólo si contiene esta regla. 

Los lenguajes generados por este tipo de gramáticas se denominan “dependientes del contexto”. 

Gramáticas tipo 2 

Las reglas de estas gramáticas se ajustan al siguiente esquema:


Para toda gramática de tipo 2 existe una gramática equivalente desprovista de reglas de la forma A ::= λ, que generará el mismo lenguaje que la de partida, excepto la palabra vacía. Si se le añade a la segunda gramática la regla S ::= λ, las gramáticas generarán el mismo lenguaje. 

Por lo tanto, se pueden definir las gramáticas de tipo 2 de una forma más restringida, en el que las reglas de producción tendrán la siguiente forma


Los lenguajes generados por este tipo de gramáticas se denominan independientes de contexto, ya que la conversión de A en v puede realizarse independientemente del contexto en que aparezca A.

Gramáticas tipo 3 

G1 = ({ 0, 1}, {A, B}, A, { A ::= B1 | 1, B ::= A0}) Gramática lineal por la izquierda que describe el lenguaje: L1 = { 1, 101, 10101, ... } = {1(01)n | n = 0, 1, 2, ...}

G2 = ({ 0, 1}, {A, B}, A, { A ::= 1B | 1, B ::= 0A}) Gramática lineal derecha que genera el mismo lenguaje que la gramática anterior.


BIBLIOGRAFIA

Cantabria, U. d. (s.f.). ocw.unican.es. Obtenido de http://ocw.unican.es/ensenanzas-tecnicas/teoria-de-automatas-y-lenguajes-formales/material-de-clase-nuevo/nuevo/1-3_Gramaticas_formales.pdf

CASES MUÑOZ, R., & MÁRQUEZ VILLODRE, L. (2002). Lenguajes, gramáticas y autómatas. México: ALFAOMEGA.

JHON, E. H., & JEFFREY, D. U. (2000). INTRODUCCION A LA TEORIA DE AUTOMATAS, LENGUAJES y COMPUTACION. MÉXICO: CECSA.

Kelley, D. (1995). TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES. España: PRENTIE HALL.

MORALES. (s.f.). delta.cs.cinvestav.mx. Obtenido de http://delta.cs.cinvestav.mx/~gmorales/ta/node15.html

MORENO, F. (s.f.). www.uhu.es. Recuperado el JUNIO de 2015, de http://www.uhu.es/francisco.moreno/talf/docs/tema7.pdf

MORENO, F. (s.f.). www.uhu.es. Obtenido de http://www.uhu.es/francisco.moreno/talf/docs/tema3.pdf


PEINADO, F., & SIERRA, J. L. (s.f.). web.fdi.ucm.es. Obtenido de http://web.fdi.ucm.es/profesor/fpeinado/courses/compiling/Repaso-LenguajesFormales.pdf