Está en la página 1de 17

CARRERA:

INGENIERIA EN SITEMAS COMPUTACIONALES

ASIGNATURA:

LENGUAJES Y AUTÓMATAS I

PROFESOR:
SILVESTRE BEDOLLA SOLANO

ALUMNOS:
• PUENTE TORRES ANA ELIZABET - 18320957
• PEREZ URQUIZA ALEXANDER - 18320955

UNIDAD 3:
REPORTE DE PRÁCTICAS/ACTIVIDADES DE APRENDIZAJE DEL TEMA 3. AUTÓMATAS
FINITOS.
• DETERMINAR LA NOTACIÓN FORMAL DE UN AUTÓMATA FINITO.
• CONOCER LA DIFERENCIA ENTRE UN AFND Y AFD.
• CONSTRUIR UN AF A PARTIR DE UN ER.
• CONSTRUIR UN AF A PARTIR DE LA DESCRIPCIÓN DE UN CASO
DE ESTUDIO (EN GRUPOS DE TRABAJO).
• CONVERTIR UN AFN A AFD.
• MINIMIZAR ESTADOS EN UN AF.

HORARIO:
15:00 – 16:00

FECHA:

ACAPULCO DE JUAREZ A 4 DE
NOVIEMBRE DEL 2020
INDICE

INTRODUCCION ............................................................................................................................................................... 3

ACTIVIDADES DE APRENDIZAJE TEMA 3, AUTOMATAS FINITOS .................................................................... 4

1.- DETERMINAR LA NOTACIÓN FORMAL DE UN AUTÓMATA FINITO. ............................................................ 4

2.- CONOCER LA DIFERENCIA ENTRE UN AFND Y AFD ...................................................................................... 5

3.- CONSTRUIR UN AF A PARTIR DE UN ER. ........................................................................................................... 7

4.- CONSTRUIR UN AF A PARTIR DE LA DESCRIPCIÓN DE UN CASO DE ESTUDIO (EN


GRUPOS DE TRABAJO). .............................................................................................................................................. 11

5.- CONVERTIR UN AFN A AFD. ................................................................................................................................. 12

6.- MINIMIZAR ESTADOS EN UN AF. ........................................................................................................................ 14

CONCLUSION ................................................................................................................................................................. 16

FUENTES BIBLIOGRAFICAS: ..................................................................................................................................... 17


INTRODUCCION

En la siguiente investigación se tomarán los temas correspondientes a la unidad tres de


la materia lenguajes y autómatas tales como temas a cerca de los autómatas finitos
donde se aprenderá y conocerá la importancia del estudio de los autómatas dentro de
los procesos de desarrollo de software, y algunas aplicaciones.

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 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 y No Determinísticos
Se conocerán su estructuras, funcionalidades y comportamientos entre estos dos tipos
de autómatas, dentro de ello se abarcará las conversiones o transformaciones entre
estos autómatas.
ACTIVIDADES DE APRENDIZAJE TEMA 3, AUTOMATAS
FINITOS

1.- DETERMINAR LA NOTACIÓN FORMAL DE UN AUTÓMATA FINITO.


Definición Formal de un Autómata
Un AF se representa como una 5-tupla: A = (Q, Σ, δ, q0, F).
Donde:
1 Q: Un conjunto finito de estados.
2 Σ: Un conjunto finito de símbolos de entrada (alfabeto)
3 q0: El estado inicial/de comienzo.
4 F: cero o más estados finales/de aceptación.

Un autómata finito es un modelo matemático de una máquina que acepta cadenas de un lenguaje
definido sobre un alfabeto A. Consiste en un conjunto finito de estados y un conjunto de transiciones
entre esos estados, que dependen de los símbolos de la cadena de entrada. El autómata finito acepta
una cadena x si la secuencia de transiciones correspondientes a los símbolos de x conduce desde el
estado inicial a un estado final. Si para todo estado del autómata existe como máximo una transición
definida para cada símbolo del alfabeto, se dice que el autómata es determinístico (AFD). Si a partir
de algún estado y para el mismo símbolo de entrada, se definen dos o más transiciones se dice que
el autómata es no determinístico (AFND).
Formalmente un autómata finito se define como una 5-upla

M = <E, A, δ, e0, F> donde

E: conjunto finito de estados


A: alfabeto o conjunto finito de símbolos de entrada

δ: función de transición de estados, que se define como


- δ: E x A → E si el autómata es determinístico
- δ: E x A → P(E) si el autómata es no determinístico (P(E) es el conjunto potencia de E, es decir el
conjunto de todos los subconjuntos de E)

e0: estado inicial; e0 ∈ E


F: conjunto de estados finales o estados de aceptación; F ⊆ E

Ejemplo
Un Autómata A que acepta ´ L = {x01y|x ∧ y ∈ {0, 1} ∗}

• El DFA acepta cadenas que tienen 01 en alguna parte de la cadena

• El lenguaje del DFA es el conjunto de cadenas que acepta {w|w tiene la forma “x01y” para algunas
cadenas x y y que consisten solo de 0’s y 1’s ´}
2.- CONOCER LA DIFERENCIA ENTRE UN AFND Y AFD

Aunque existen muchos lenguajes para los que un AFN es más fácil de construir que un AFD, como
por ejemplo el lenguaje de cadenas que terminan en 01), resulta sorprendente el hecho de que todo
lenguaje que puede describirse mediante algún AFN también puede ser descrito mediante algún AFD.
Además, el AFD en la práctica tiene aproximadamente tantos estados como el AFN, aunque a menudo
tiene más transiciones. Sin embargo, en el caso peor, el AFD puede tener 2n estados mientras que el
AFN más pequeño para el mismo lenguaje tiene sólo n estados.

La demostración de que losAFD pueden hacer lo que


hacen losAFN implica una “construcción” importante
conocida como construcción de subconjuntos, porque
exige construir todos los subconjuntos del conjunto de
estados del AFN. En general, muchas de las
demostraciones acerca de autómatas implican construir
un autómata a partir de otro. Es importante para nosotros
ver la construcción de subconjuntos como un ejemplo de
cómo se describe formalmente un autómata en función
de los estados y transiciones de otro, sin conocer las
especificidades de este último.

Está claro que cualquier AFD también es un AFND, es decir, si es un lenguaje aceptado por un AFD,
también está aceptado por un AFND. Simplemente existe como mucho una sola transición para cada
símbolo del alfabeto y para cada estado.
Pero también podemos construir para cada AFND un AFD equivalente, es decir, un autómata
determinista que acepta el mismo lenguaje.
Continuando con el estudio de la construcción de compiladores es necesario definir que son autómatas
finitos deterministas y no deterministas.
Podríamos definir un autómata como una máquina de estados y transiciones dentro de la cual se tienen
estados de aceptación y transiciones de un estado a otro siguiendo las reglas establecidas para grafos
dirigidos. Dichos estados de aceptación dentro del autómata “reconocen” que es posible aceptar una
cadena de entrada, porque cumple con una definición en el alfabeto.

El modelo matemático de un autómata consta de cinco elementos que son:


▪ Q = un conjunto finito de estados
▪ ? = un conjunto finito de símbolos de entrada
▪ q0 = un estado inicial
▪ qf = un conjunto de estados finales
▪ ? = una función de transición
Estos cinco elementos interactúan entre sí para lograr un objetivo en común de la siguiente manera:

La función de transición (?) mapea el conjunto de estados finito(Q) a un conjunto de símbolos de


entrada finito (?), Q ×? Q
Construcción de un autómata finito

Sea L(r) un lenguaje regular reconocido por algún autómata finito.

▪ Estados: Los estados del autómata son representados por círculo. Los nombres de los estados
están escritos dentro de esos círculos.
▪ Estado inicial: Estado en el cual el autómata inicia. El estado inicial tiene una flecha apuntando
hacia él.
▪ Estados Intermedios: Todos los estados intermedios tienen al menos 2 flechas; una apuntando
hacia el estado y otra apuntando hacia otro estado.
▪ Estado Final: Si una cadena es parseada exitosamente, se espera que el autómata quede en
este estado. Se representa con un círculo doble. Puede tener una cantidad impar de flechas
apuntando hacia él y una cantidad par de flechas apuntando hacia otros estados. El número de
flechas impares es siempre uno más que el de flechas pares.
▪ Transición: La transición de un estado a otro ocurre cuando un símbolo deseado es encontrado
en la cadena de entrada. Después de una transición, un autómata se puede mover al siguiente
estado, o quedarse en el mismo estado. El movimiento de un estado a otro es representado por
una flecha dirigida, esta flecha apunta al estado de destino. si el autómata se queda en el mismo
estado se dibuja una flecha que apuntara hacia el mismo.
Ejemplo: Asumimos un autómata finito que acepta un valor tres dígitos binarios que termina en 1. FA
= {Q (q0, qf),?(0,1), q0, qf, ?}
Podríamos mapear este autómata a la siguiente expresión regular: (0|1) *1
Criterios de aceptación para un AFD y un AFND

Una cadena es aceptada por un AFD/AFND si el AFD/AFND que comienza en un estado inicial finaliza
en un estado de aceptación (cualquiera de los estados finales) después de leer la cadena completa.

Entonces en términos matemáticos:

una cadena S es aceptada por un AFD/AFND (Q, ?, ?, q0, F), si:


? *(q0, S)? F
El lenguaje L aceptado por un AFD/AFND es:
{S | S ? ? * and? *(q0, S)? F}
Una cadena S no es aceptada por un AFD/AFND (Q, ?, ?, q0, F), si:
? *(q0, S?)? F
¿El lenguaje L? no es aceptado por un AFD/AFND (complemento del lenguaje L) es:
{S | S ? ?* and ?*(q0, S) ? F}

3.- CONSTRUIR UN AF A PARTIR DE UN ER.


Un autómata finito no determinista (abreviado, AFN) es un modelo matemático formado por: 1. Un
conjunto de estados S. 2. Un conjunto de símbolos de entrada Σ (el alfabeto de símbolos de entrada).
3. Una función de transición mueve () (denotada por ∆) que transforma pares estado-símbolo en
conjuntos de estados. (∆: S x Σ S) 4. Un estado s0 que se considera el estado de inicio (o estado
inicial). 5. Un conjunto de estados F considerados como estados de aceptación (o estados finales).

Sea entonces M un AFN, tal que M = {S, Σ, ∆, s, F} donde:

• S = {0,1,2,3}
• Σ = {a, b}
• ∆ = {{0, a, {0,1}}, {0, b, {0}}, {1, b, {2}}, {2, b, {3}}}
• s = {0}
• F = {3}

Define el siguiente grafo de transiciones:

Construcción de un AFN a partir de una expresión regular.


Entrada: una expresión regular r en un alfabeto Σ.
Salida: un AFN que acepte L(r).
de r y tienen varias propiedades importantes: tienen exactamente un estado final, ninguna arista entra
en el estado de inicio, y ninguna arista sale del estado final.
1. Para ε, construir el AFN

Aquí, i es un nuevo estado de inicio y f es un nuevo estado de aceptación. Ciertamente este AFN
reconoce {ε}.
2. Para a de Σ, construir el AFN

De nuevo, i es un nuevo estado de inicio y f es un un nuevo estado de aceptación. Esta máquina


reconoce {a}. 3. Supóngase que N(s) y N(t) son AFN para las expresiones regulares s y t. a) Para la
expresión regular s|t, constrúyase el siguiente AFN compuesto N(s|t):

b) Para la expresión regular st, constrúyase el siguiente AFN compuesto N(st):


b) Para la expresión s*, constrúyase el AFN compuesto N(s*):

Propiedades de un AFN
1. N(r) tiene a lo sumo el doble de estados que de símbolos y operadores en r. Esto se debe al hecho
de que en cada paso de la construcción se crean a lo sumo dos nuevos estados.
2. N(r) tiene exactamente un estado de inicio y otro de aceptación. El estado de aceptación no tiene
transiciones salientes. Esta propiedad se cumple igualmente para todos los autómatas constituyentes.
3. Cada estado de N(r) tiene una transición saliente con un símbolo en Σ o a lo sumo dos transiciones
ε salientes.
Ejemplo: utilizando el algoritmo para construir el N(r) de la expresión regular r=(a|b) *abb, tendremos
los siguientes pasos.
Para la primera a se construye N(a)

Para la primera b se construye N(b)

Ahora se puede combinar N(a) y N(b) utilizando la regla de la unión para obtener el AFN para N(a|b)
El AFN para N((a|b) *) es

Para la segunda a se construye


N(a)

Para el autómata N((a|b) *a) se unen los autómatas correspondientes

Para la segunda y tercera b los autómatas respectivos serían:

Finalmente, fusionando los autómatas, se construye N((a|b) *abb)


4.- CONSTRUIR UN AF A PARTIR DE LA DESCRIPCIÓN DE
UN CASO DE ESTUDIO (EN GRUPOS DE TRABAJO).

Construcción de vehículo evasor de obstácubs

Uno de los primeros trabajos que comenzaron a normalizar la dinámica de robots móviles es (Crawley,
1989) en el que se utilizan dispositivos ultrasónicos en el vehículo para su posicionamiento y
orientación.

En (Maes, 1990) se muestra un estudio del comportamiento de robots autónomos y se divide en


construcción de mapas, exploración, transitar y evasión de obstáculos.

En 1997) se plantea como una de las mayores problemáticas de la navegación robótica la localización
y se proponen los pasos claves para el diseño, calibración y modelado de autómatas. Hay otros autores
que refuerzan la evasión de objetos o desarrollo de trayectorias mediante técnicas de navegación
como son: navegación inercial, compases magnéticos y triangulación. (Borenstein, 1997).

(Betke, 1997) considera que el autómata puede reconocer marcas especificas en el medio por el cual
se desplaza usando reconocimiento de patrones visuales. La localización robótica, así como la evasión
de obstáculos del autómata, ha llegado a ser uno de los problemas fundamentales en los robots
móviles, y por ello, en (Fox, 1999) se presenta una versión de la localización Markov, en donde la idea
principal es mantener una densidad de probabilidad sobre el espacio de todas las localizaciones
posibles de un robot en su entorno.

El Vehículo Evasor de Obstáculos (VEO de aquí en adelante) obtiene información del medio por el
cual transita a través de unos fotodiodos y unas fotorresistencias que actúan como sensores, estos
sensores arrojan como resultado niveles de voltaje que varían en proporción directa con la proximidad
al obstáculo, los niveles de voltaje después de pasar por un comparador de niveles se convierten en
niveles digitales, los cuales determinan una dirección especifica al actuar como entradas en el bus de
direcciones de una memoria RAM, la cual se ha cargado con un programa, que contiene instrucciones
precisas para lograr la evasión de obstáculos, estas instrucciones que
provienen del bus de datos de la memoria RAM, controlan directamente 2 dispositivos transistorizados
conocidos como puentes H, los cuales interactúan directamente con los motores de dirección del
vehículo, indicándoles la acción de giro y por tanto ejecutando los diferentes movimientos para los
cuales se diseñó VEO.
Es necesario portal motivo presentar el programa que se cargó en la memoria RAM según
(Catálogo,2010).
5.- CONVERTIR UN AFN A AFD.
Sea M= (Q, Σ, q0, δ, F) un AFND-λ que supondremos conocido. Queremos construir un
AFND M′ tal que L(M) = L(M′).
Antes de continuar debemos de nuevo recordar que esta construcción garantiza la existencia de un
AFND equivalente, pero en ningún caso se garantiza la unicidad, es decir hay muchos AFNDs
equivalentes a M; nosotros construiremos uno de ellos. La idea para la construcción de la nueva
máquina es que desde cualquier estado q de la máquina original, cuando se lee en cinta un símbolo a
del alfabeto, se alcanzan los nuevos estados en tres tiempos: los que se alcanzan desde q por λ
transiciones (la λ- clausura de q); los que se alcanzan por la lectura del símbolo leído, que son

δ(λ-cl(q), a) y los que se alcanzan a partir de éstos por las transiciones λ, que son λ- cl (δ (λ –cl(q), a))
en definitiva un subconjunto de estados, concretamente () a, q δˆ. Además, si ocurre que desde q0 se
llega a algún estado final por caminos etiquetados λ, o lo que es lo mismo si λ-cl(q0) ∩F≠∅, una de las
palabras aceptadas es λ; en tal caso, para que la nueva máquina acepte λ el estado inicial debe ser
final. De modo que tomamos M′= (Q, Σ, q0, δ′, F′), siendo

y la nueva función de transición como sigue: δ′:Q×Σ→P(Q),

Ahora M′ es un AFND y afirmamos que L(M)=L(M′).


Con esta construcción queda demostrado que las transiciones λ no aportan nada nuevo al conjunto de
los lenguajes que son abarcables por medio de los AFNDs-λ, es decir

Los tres tipos de Autómatas vistos, a los que a partir de ahora llamaremos simplemente Autómatas
Finitos, son equivalentes en cuanto a los lenguajes que pueden abarcar.
Ejemplo:
Construimos un AFND equivalente a M6
Dado un AFND siempre es posible encontrar un AFD que reconozca el mismo lenguaje:
• El conjunto de los LAFND = al conjunto de los LAFD.
• Un AFND no es más potente que un AFD, sino que un AFD es un caso particular de AFND.

Obtener el AFD correspondiente al siguiente AFND


6.- MINIMIZAR 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 no son
equivalentes, se dice 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:

Eliminar los estados inaccesibles del autómata. Construir una tabla con todos los pares (p, q) de
estados restantes. Marcar en la tabla aquellas entradas donde un estado es final y el otro es no-final,
es decir, aquellos pares de estados que son claramente distinguibles. Para cada par (p, q) y cada
símbolo a del alfabeto, tal que r = δ (p, a) y s = δ (q, a): Si (r, s) ya ha sido marcado, entonces p y q
también son distinguibles, por lo tanto, marcar la entrada (p, q). De lo contrario, colocar (p, q) en una
lista asociada a la entrada (r, s).

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 un AFD es polinomial. De hecho,
existen algoritmos más eficientes aún que el mostrado en este artículo (aunque menos intuitivos).11
Sin embargo, el problema de minimizar un autómata finito no determinista es NP-completo y PSPACE-
completo. En la primera figura del ejemplo, se muestra un autómata con el estado inaccesible d, el
cual puede eliminarse inmediatamente. Luego se construye la tabla de pares de estados, y a
continuación se marcan, de acuerdo a la tercera línea del algoritmo, las filas y columnas
correspondientes a los estados finales c y g, salvo la celda que representa el par (c,g), puesto que al
ser ambos estados finales, pueden ser estados equivalentes. Posteriormente, se marcan las celdas
restantes de acuerdo a la cuarta línea del algoritmo, notando que el par (b, f) queda asociado con el
par (c, g), y así finalmente se obtiene el autómata final, agrupando los estados b y f, así como c y g,
tal y como se muestra en la segunda figura del ejemplo.
El AFD mínimo existe y es único, es decir Teorema 1.1 Dado un AFD M = (Q, Σ, δ, q0, F), existe un
AFD M′ con L(M) = L (M′) y tal que M′ tiene el mínimo número de estados de entre todos los AFD que
reconocen L(M). Teorema 1.2 Dados dos autómatas M1 y M2 tales que L(M1) = L(M2) y tales que M1
y M2 tienen el mínimo número de estados de entre todos los AFD que reconocen L(M1), entonces M1
= M2 (salvo cambio de nombre de los estados). Podías encontrar la demostración de ambos resultados
en el libro de Hopcroft, Motwani y Ullman.

Dado un AFD M = (Q, Σ, δ, q0, F), se trata de encontrar un AFD M′ con L(M) = L (M′) y tal que M′ tenga
el mínimo número de estados posible. Para ello, el método consiste en encontrar todos los estados
que son equivalentes, es decir, que son indistinguibles en el aut´omata. Por cada clase de estados
equivalentes, el aut´omata mínimo necesitaría un solo estado. Definición 2.1 Dados dos estados q, q′
∈ Q, q y q ′ son indistinguibles o equivalentes si para cualquier cadena w ∈ Σ ∗ se cumple una de las
dos siguientes opciones: δ (q, w) ∈ F y δ (q ′, w) ∈ F δ (q, w) 6∈ F y δ (q ′, w) 6∈ F

El método para minimizar un autómata consiste básicamente en encontrar todos los estados que son
indistinguibles entre sí y sustituirlos por un único estado. Para ello lo principal es averiguar qué estados
son distinguibles y cuáles no. El método para saber qué estados son indistinguibles es el siguiente: a.
Si hay algún estado inalcanzable eliminarlo b. (i := 0) Marcar todos los estados que pueden distinguirse
con la cadena vacía (es decir, todos los finales se pueden distinguir de los no finales). c. (i: = i + 1)
Marcar como distinguibles q y q ′ si con algún a ∈ Σ tenemos δ (q, a) y δ (q ′, a) dos estados que ahora
son distinguibles. d. Si en el paso anterior se han distinguido nuevos estados, entonces volver al paso
c.
CONCLUSION

Los autómatas son muy importantes en la resolución de problemas indefinibles porque


estos ayudan a los ingenieros en programación a usarlos como análisis y diseño de la
resolución de dicho problema, pueden ser definidos de forma tediosa.

Estos algoritmos 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 los programadores como al ser humano
en las tomas de decisiones en cuanto a problemas de la vida cotidiana, Ya que en casos
particulares se tiende a llegar al desbordamiento de ideas en cuanto al análisis y diseño
de respuestas a un suceso en particular de la vida diaria, además de ello los autómatas
ayudan en la estandarización de las máquinas electrónicas para poder entrar de un
estado a otro, o sea estas pueden llegar a pensar que decisión tomar, cuando estén
sometidas o se encuentren en una situación dada en un contexto en especial.

Las herramientas de soluciones de problemas y respuestas en cuanto a su solución


podemos utilizar los grafos y tablas de transiciones de los AF para conocer el tiempo de
ejecución y el tiempo en que se puede tardar para encontrar la posible solución.

Para finalizar se destaca que los autómatas son herramientas muy sencillas y a la vez
efectivas, como pasos para las soluciones de problemas; interpretadas de forma
matemática en grafos, que ayudan a la persona a interpretación de los resultados, son,
sencillos y factibles
FUENTES BIBLIOGRAFICAS:

• https://kataix.umag.cl/~jaguila/Compilers/T05_ER_en_AFN.pdf
• https://www.redalyc.org/pdf/816/81606107.pdf
• https://www.institucional.frc.utn.edu.ar/sistemas/ghd/T-M-AFND.htm
• https://ccc.inaoep.mx/~grodrig/Descargas/AutomatasLenguajesCapitulo2.pdf
• http://webdiis.unizar.es/asignaturas/TC/wp/wpcontent/uploads/2012/09/121008
MinimAFDs.pdf
• https://sites.google.com/site/tautomatasfinal/minimizaci
• Manuel Alfonseca Moreno, Justo Sancho Rodríguez, Miguel Martínez Orga. (1987). Teoría de
lenguajes, gramáticas y autómatas. Madrid, España: Madrid: Universidad y Cultura, D.L. 1987.
• JOHN E. HOPCROFT, RAJEEV MOTWANI, JEFFREY D. ULLMAN. (2008). Introducción a la teoría
de autómatas lenguajes y computación. Madrid, España: PEARSON EDUCACIÓN S.A

También podría gustarte