inveestigacion unidad iii automatas
Post on 15-Jan-2016
20 Views
Preview:
DESCRIPTION
TRANSCRIPT
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
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.
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.
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.
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
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
∑ 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
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
(“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.
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
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
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.
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.
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.
top related