Inveestigacion Unidad III Automatas

20
INGENIERÍA EN SISTEMAS COMPUTACIONALES Materia: Lenguaje y Automatas 1. Semestre - Grupo - Sistema: 6° Semestre - Grupo “Y” – Escolarizado. Producto Académico: “Unidad III Investigacion”. Presenta: Celis Leon Luis Alberto Nolasco Méndez Lizbeth Zamudio Guzmán Carmen Docente: I.S.C: María Guadalupe Ramírez García INSTITUTO TECNOLOGICO SUPERIOR DE ALVARADO Campus Tlalixcoyan

description

Investigación de temario de lenguaje y automatas

Transcript of Inveestigacion Unidad III Automatas

Page 1: Inveestigacion Unidad III Automatas

INGENIERÍA ENSISTEMAS COMPUTACIONALES

Materia:Lenguaje y Automatas 1.

Semestre - Grupo - Sistema:6° Semestre - Grupo “Y” – Escolarizado.

Producto Académico:“Unidad III Investigacion”.

Presenta:Celis Leon Luis Alberto

Nolasco Méndez LizbethZamudio Guzmán Carmen

Docente:

I.S.C: María Guadalupe Ramírez García

Tlalixcoyan, VER. Marzo 2015

INSTITUTO TECNOLOGICO SUPERIOR DE ALVARADO – Campus Tlalixcoyan

Page 2: Inveestigacion Unidad III Automatas

INTRODUCCIÓN

Los autómatas son esencialmente importantes en las actividades sociales, ya que se

encuentran dentro de todo tipo de maquinaria y aplicaciones desarrolladas, donde estas

tienen las funcionalidades específicas con las que realizan sus operaciones y actividades;

además de sus comportamientos, características y funcionalidad que tienden los

autómatas se detallara cómo influyen en la vida social y real de los ser humanos.

Los autómatas finitos, son antes de todos logísticas matemáticas, en las que se realizan

operaciones en cada estado de los eventos, estos eventos pueden ser de un solo estado

o varios; al tener acciones con estados de dos o más eventos, los autómatas finitos

tienden a cambiar de finitos determinísticos a no determinísticos.

Dentro de estas hojas se denotan las esquematizaciones de los nuevos autómatas finitos:

• Determinísticos

• No Determinísticos

Se conocerán su estructuras, funcionalidades y comportamientos entre estos dos tipos de

autómatas, dentro de ello se abarcara las conversiones o transformaciones entre estos

autómatas.

Page 3: Inveestigacion Unidad III Automatas

3.1 Definición formal

El Autómata Finito es la máquina más restrictiva de todas y desde luego que se puede

definir como un caso particular de una MT. También podemos verla como un AP sin pila.

Obviamente que al sacarle la pila lo único que queda es la cinta finita de entrada. Este

modelo matemático abstracto representa la solución del problema de aceptación de

lenguajes de tipo 3 o LR.

Son máquinas formales que se usan para reconocer lenguajes regulares. Lenguajes más

sencillos, los lenguajes que son generados por gramáticas regulares.

Con ello se deduce que un autómata finito es; una máquina con un número finito de

estados que lee símbolos de una cinta de entrada infinita. El comportamiento de la

máquina está determinado únicamente por el estado en que se encuentra y el

símbolo en la cinta de entrada. Al leer un símbolo de la cinta de entrada cambia de estado

y avanza en la cinta de entrada. Cuando ya no quedan símbolos por leer, se detiene. Aun

cuando la cinta es infinita, la cadena que guía el comportamiento del autómata no lo es.

Esta cadena puede ser tan larga como se quiera, pero siempre finita.

Un autómata finito tiene un conjunto de estados y su “control” pasa de un estado a otro en

respuesta a las “entradas” externas. Una de las diferencias fundamentales entre las

clases de autómatas finitos es si dicho control es “determinista”, lo que quiere decir que el

autómata no puede encontrarse en más de un estado a un mismo tiempo, o “no

determinista”, lo que significa que sí puede estar en varios estados a la vez.

Un autómata finito es un vector de tres elementos M = (I,S,δ, F)donde I es el conjunto

finito de entradas, S es el conjunto finito de estados (no vacío), δ es la función de

transición de estados y F es el conjunto finito de estados finales (incluidos en S).

Un autómata es una representación gráfica que muestra el proceso de reconocimiento de

una cadena de entrada. La simbología utilizada es simple:

Diagrama Descripción

Un círculo representa un estado n, donde n es un número natural o bien

una letra, generalmente.

Page 4: Inveestigacion Unidad III Automatas

Un arco representa la lectura de un símbolo a en la entrada. Transición

entre estados.

Estado de inicio s. Es generalmente 0 (cero).

Estado de aceptación f.

3.2 Clasificación de AF

Un AF tiene un conjunto de estados y su control se mueve de estado en estado, en

respuesta a entradas externas. Estas entradas forman las cadenas a ser analizadas. Los

estados de un AF, son de tres tipos: estado inicial, que permite empezar la ejecución del

autómata; estados finales o estados “de aceptación” que permiten realizar la salida de

aceptación de la cadena de entrada en el caso de que no haya más símbolos en la

entrada, y estados intermedios, que son los que permiten pasar del estado inicial a algún

estado final.

Los AF se dividen en diversas clases, dependiendo de si su control es

“determinista” (lo que significa que el autómata no puede estar en más de un

estado simultáneamente) o “no determinista” (lo que significa que el autómata puede

estar en varios estados al mismo tiempo).

Los autómatas finitos se pueden clasificar en función del tipo de control como:

Deterministas, el autómata únicamente puede estar en un estado en un momento

determinado.

No Deterministas, el autómata puede estar en varios estados simultáneamente.

Ambos definen los mismos lenguajes (regulares), sin embargo los No deterministas

permiten describir más eficientemente determinados problemas.

Para conocer más afondo sobre los autómatas finitos determinísticos y no determinísticos,

a continuación se detallara de forma breve cada uno de estos autómatas; ya que es

necesario para poder entender y comprender el siguiente tema de conversiones de un

autómata finito no determinístico a un autómata finito determinístico.

Page 5: Inveestigacion Unidad III Automatas

Definiciones de autómatas finitos no determinísticos y determinísticos.

Autómata finito determinístico (AFD); es aquel que siempre está en un solo estado

después de leer cualquier secuencia de entradas; la palabra determinista nos dice que

para cada entrada existe un único estado al que el autómata puede llegar partiendo del

estado actual; comencemos dando la definición formal. El autómata finito determinista. El

término “determinista” hace referencia al hecho de que, para cada entrada, existe un

único estado al que el autómata pueda llegar partiendo del estado actual.

Un AFD genera un solo tipo de salida: acepta o no una secuencia de símbolos de

entrada. Esa aceptación está representada si el autómata se encuentra en algún estado

del conjunto F. El comportamiento de un AFD, comienza en el estado inicial (q0), y según

se van recibiendo los símbolos de la entrada transita entre los estados (del conjunto Q),

de acuerdo a la función de transición f. Si en un determinado momento se encuentra

en un estado de aceptación (del conjunto F), reconoce como válida la cadena formada

por los símbolos de entrada leídos hasta el momento. Si no, no es aceptada.

Definición Un Autómata Finito Determinístico (AFD) es una quíntupla: M = (Q;∑; q 0; f; F ), donde Q Es un conjunto nito no vacío (los elementos de Q son llamados estados) ∑ es un conjunto de símbolos de entrada al que llamaremos alfabeto. q1∈ Q, es un estado al que llamaremos estado inicial. f Es una función Q x ∑ → Q que se llama función de transición; esta recibe como argumentos un estado y una entrada y devuelve un estado. q F ∁ Q es un conjunto de estados a los cuales llamaremos estados finales o de aceptación.

Existen dos notaciones preferibles para describir los autómatas:

1. Un diagrama de transiciones, que es un grafo.

2. Una tabla de transiciones, que es una enumeración tabular (tabla) de la función f,

que a la vez describe el conjunto de estados, y el alfabeto de entrada.

DeterminísticoFig. 1. AFD. Representación de un autómata finito

Page 6: Inveestigacion Unidad III Automatas

Diagramas de transiciones

Un diagrama de transiciones para un AFD A = (Σ, Q, q0, f, F), es un grafo

definido de la siguiente forma:

Hay un nodo para cada estado de Q.

El nodo correspondiente al estado inicial q0, tendrá una flecha sin origen (o arco

entrante) no etiquetado.

Los nodos correspondientes a los estados de aceptación (los que pertenecen a F)

están marcados con un doble círculo. Los que no pertenecen a F tienen un círculo

simple.

Habrá un arco etiquetado con a entre el nodo p y el nodo q, si f(p,a) = q. Si existen

varios símbolos de entrada que provocan una transición del estado p a q, entonces el

arco entre p y q puede estar etiquetado con la lista de esos símbolos.

Un autómata puede ser representado mediante un grafo dirigido (dígrafo) el cual se

conoce como diagrama de transiciones, donde los vértices del mismo corresponden a los

estados del autómata, en el caso del estado inicial este tendrá una flecha que apunta

hacia él, y los estados finales se representaran mediante un circulo con línea doble; si

existe una transición del estado q al p sobre la entrada a entonces existe un arco con

etiqueta a que va del estado q al estado p en el diagrama de transición. El autómata

acepta una cadena 𝜔 si la secuencia de transiciones correspondientes a los símbolos de 𝜔 conduce del estado inicial a un estado final.

Si se modifica el modelo del autómata finito, para permitirle ninguna, una o más

transiciones de un estado sobre el mismo símbolo de entrada, al nuevo modelo lo

conoceremos como autómata finito no determinístico. Tiene la capacidad de estar

en varios estados simultáneamente. La diferencia entre AFD y un AFN está en la función

de transición. Para el AFN, f es una función que toma como argumentos un estado y un

símbolo de entrada, pero devuelve un conjunto de cero, uno o más estados (en vez de

devolver un estado, como en el caso del AFD).

Definición: Un Autómata Finito No Determinístico (AFND) es una quíntupla M = (Q; ∑; I; R; F ), donde Q es un conjunto de estados

Page 7: Inveestigacion Unidad III Automatas

∑ es un alfabeto. I ∁ Q es un conjunto de estados a los cuales llamaremos estados iniciales. R es una relación sobre Q × ∑ 𝑥 Q que se llama relación de transición. F ∁ Q es un conjunto de estados a los cuales llamaremos estados finales.

Tabla de transiciones

Una tabla de transiciones es una representación tabular convencional de una función

como f, que recibe dos argumentos y devuelve un valor. Esta tabla tendrá las

siguientes características:

En las filas estarán los estados q Q

El estado inicial se precederá del símbolo ->

Cada estado final se precederá del símbolo *

En las columnas estarán los símbolos de entrada a Σ

El valor correspondiente a la fila del estado qy a la entrada aes el estado que

determine f(q,a)

Determinísticosde autómatas finitos no Fig. 2 AFND: representación

. 3 Ejemplo de tabla de transicionesFig

Page 8: Inveestigacion Unidad III Automatas

3.3 Conversión de un AFND a AFD

Se observa que el AFN de la Figura 1, tiene dos transiciones desde el estado “0” con la

entrada “a”; es decir, puede ir al estado “0” o al 1.

Ahora se introduce un algoritmo para construir a partir de un AFND un AFD que

reconozca el mismo lenguaje. Este algoritmo se le conoce como construcción de

subconjuntos, es útil para simular un AFND por medio de un programa de computador.

Construcción de subconjuntos. Construcción de un AFD a partir de un AFN.

Entrada. Un AFN N.

Salida. Un AFD D que acepta el mismo lenguaje.

Método. El algoritmo construye una tabla de transiciones tranD para “D”. Cada estado

del AFD es un conjunto de estados del AFN y se construye tranD de modo que “D”

simulará en paralelo todos los posibles movimientos que “N” puede realizar con una

determinada cadena de entrada.

Se utilizan las operaciones del Cuadro 2, para localizar los conjuntos de los estados del

AFN

Fig. 4 autómata finito no determinista

Page 9: Inveestigacion Unidad III Automatas

(“s” representa un estado del AFN, y “T”, un conjunto de estados del AFN). Antes de

detectar el primer símbolo de entrada, “N” se puede encontrar en cualquiera de los

estados del conjunto cerradura-?(s0), donde s0 es el estado de inicio de K. Supóngase

que exactamente los estados del conjunto “T” son alcanzables desde s0 con una

secuencia dada de símbolos de entrada, y sea a el siguiente símbolo de entrada. Al ver a,

“N” puede trasladarse a cualquiera de los estados del conjunto mover (T, a). Cuando se

permiten transiciones- ? , N puede encontrarse en cualquiera de los estados de

cerradura-? (T, a), después de ver la “a”. Se construyen estados “D”; el conjunto de

estados de “D”; y tranD, la tabla de transiciones de “D”, de la siguiente forma. Cada

estado de “D” corresponde a un conjunto de estados de AFN en los que podría estar “N”

después de leer alguna secuencia de símbolos de entrada, incluidas todas las posibles

transiciones- ? anteriores o posteriores a la lectura de símbolos. El estado de inicio de

“D”es cerradura-? (s0). Se añaden los estados y las transiciones a “D”. Un estado de “D”

es un estado de aceptación si es un conjunto de estados de AFN que contenga al menos

un estado de aceptación de “N”.

El cálculo de cerradura-? (T) es un proceso típico de búsqueda en un grafo de nodos

alcanzables desde un conjunto dado de nodos. En este caso, los estados de “T” son el

conjunto dado de nodos, y el grafo está compuesto solamente por las aristas del AFN

etiquetadas por ? . Un algoritmo sencillo para calcular cerradura-? (T) utiliza una

estructura de datos tipo pila para guardar estados en cuyas aristas no se hayan buscado

transiciones etiquetadas con ?

3.4 Representación de ER usando AFND

ERs, AFDs y AFNDs son mecanismos equivalentes para denotar los lenguajes regulares.

En estas tres secciones demostraremos esto mediante convertir ER →AFND → AFD →

ER. Las dos primeras conversiones son muy relevantes en la práctica, pues permiten

construir verificadores o buscadores eficientes a partir de ERs.

Page 10: Inveestigacion Unidad III Automatas

Prueba: Es fácil verificarlo por inspección y aplicando inducción estructural. La única parte que puede causar problemas es la clausura de Kleene, donde otros esquemas alternativos que podrían sugerirse (por ejemplo M = (K1, Σ, ∆1∪ {(f1, ε, s1), (s1, ε, f1)}, s1, {f1}) tienen el problema de permitir terminar un recorrido de Th(E1) antes de tiempo. Por ejemplo el ejemplo que acabamos de dar, aplicado sobre E1 = a ⋆ b, reconocería la cadena x = aa.

las siguientes reglas. según La función Th convierte ERs en AFNDs :Definición

Page 11: Inveestigacion Unidad III Automatas

Existen algoritmos que relacionan la especificación de tokens -expresiones

regulares-, con el reconocimiento de éstos -autómatas finitos-. Es posible dada una

expresión regular obtener el AFD que reconozca las cadenas del lenguaje denotado

por la expresión regular. También es posible obtener el AFND que reconozca el

lenguaje representado por dicha expresión regular.

El algoritmo que permite construir el autómata finito determinístico está fuera del

alcance de estas notas ( el alumno no tiene los prerrequisitos para su estudio en

este curso). Sin embargo, el algoritmo utilizado para la construcción del autómata

finito no determinístico AFND, es relativamente sencillo de aplicar, ya que se basa

en reglas simples. Existen muchas variantes de este algoritmo denominado

“Algoritmo de Thompson”.

Este algoritmo es dirigido por sintaxis, es decir, usa la estructura sintáctica de la

expresión regular para guiar el proceso de construcción del autómata AFND.

Supongamos que N(s)y N(t)son AFND’s para las expresiones regulares sy t,

respectivamente.

a) Para la expresión regular s | t(alternancia), construir el siguiente AFND, N(s|

t) :

Representación de la expresión regular

Page 12: Inveestigacion Unidad III Automatas

b) Para la expresión regular st(concatenación), construir el AFND, N(st) :

c) Para la expresión regular s*, construir el AFND, N(s*) :

3.5 Minimización de estados en un AF

Dos estados de un autómata finito determinista son estados equivalentes si al

unirse en un sólo estado, pueden reconocer el mismo lenguaje regular que si

estuviesen separados. Esta unión de estados implica la unión tanto de sus

transiciones de entrada como de salida. Si dos estados n o son equivalentes, se

di ce que son estados distinguibles. Un estado final con un estado no- final nunca

serán equivalentes.

Un AFD está minimizado, si todos sus estados son distinguibles y alcanzables.

Un algoritmo de minimización de AFD es el siguiente:

1. Eliminar los estados inaccesibles es del autómata.

2. Construir una tabla con todos los pares (p, q) de estados restantes.

3. Marcar en la tabla aquellas entradas donde un estado es final y el otro

es nofinal, es decir, aquellos pares de estados que son claramente

distinguibles.

Page 13: Inveestigacion Unidad III Automatas

4. Para cada par (p, q) y cada símbolo a del alfabeto, tal que r = δ(p,a) y s =

δ(q,a):

1. Si (r, s) ya ha sido marcado, entonces p y q también son

distinguibles, por lo tanto marcar la entrada (p, q).

2. De lo contrario, colocar (p, q) en una lista asociada a la entrada (r, s).

5. Agrupar los pares de estados no marcados.

Luego del tercer paso, si la tabla creada queda completamente marcada, entonces el

AFD inicial ya era mínimo. La complejidad computacional del problema de minimizar u n

AFD es polinomio. De hecho, existen algoritmos más eficientes aún que el mostrado en

este artículo (aunque menos intuitivos). Sin embargo, el problema de minimizar un

autómata finito no determinista es NP- completo y PSPACE- completo.

Page 14: Inveestigacion Unidad III Automatas

CONCLUSIÓN

Los autómatas son eleméntalos no solo en la resolución de problemas indefinibles o

intratables; ya que estos ayudan a los ingenieros en programación a usarlos como una

metodología de análisis y diseño en la resolución de dicho problema, estos pueden ser

definido de forma sencilla o tediosa.

Estos algoritmos matemáticos ayudan a la resolución de problemas del mundo real, con la

diferencia que estos tienden a hacer tratados más detalladamente, unos que otros. Estos

autómatas han venido a facilitar y ayudar al programador como al ser humano en las

tomas de decisiones en cuanto a problemas de la vida cotidiana.

BIBLIOGRAFÍA AF

1) LENGUAJES REGULARES Y AUTOMATAS FINITOS/U.T.N. – F.R.T. /S. y S.

de los L./ING. JORGE BUABUD

http://www.slideshare.net/jbuabud/lenguajesregulares-y-autmatas-finitos-clase-7

2) CAPÍTULO 3/AUTÓMATAS DE ESTADOS FINITOS/S.Takahashi

3) TEORÍA DE AUTÓMATAS, LENGUAJES Y COMPUTACIÓN/John E.

Hopcroft, Rajeev Motwani, Jeffrey D. Ullman/PEARSON

ADDISON WESLY

4) TEMA II: INTRODUCCIÓN A LA TEORÍA DE AUTÓMATAS FINITOS/1.

INTRODUCCION.