Sie sind auf Seite 1von 24

1

UNIDAD 1, 2 y 3: FASE 5 - DEBATIR: GENERAR, DETERMINAR E


IMPLEMENTAR SOLUCIONES A LOS EJERCICIOS PLANTEADOS

Nombre integrante:
JAIRO ALBERTO MARTÍNEZ GAMARRA
Código 1100396144
HEINER MADERA DUARTE
ANTONY MAGDANIELS RAMOS

ESTUDIANTE CURSO AUTÓMATAS Y LENGUAJES


FORMALES GRUPO. 301405_39

Tutor
JHEIMER JULIÁN SEPÚLVEDA

Universidad Nacional Abierta y a Distancia (UNAD)


Escuela de Ciencias Básicas Tecnología e Ingeniería
Ingeniería de Sistemas

2019
2

Desarrollo de Puntos

Actividades a desarrollar

Actividades Colaborativas:
El trabajo se desarrolla demostrando el procedimiento realizado paso a paso,
no se tendrá en cuenta las respuestas o simulaciones en jFlap o VAS.

I. Ejercicio:
De cada uno de los siguientes autómatas, realizar el procedimiento
paso a paso de hallar la expresión regular, el lenguaje regular y
explicar el tipo de autómata que es:

Ejercicio 1:

Tipo de Autómata:
El autómata es un Autómata Finito no Determinista, Lo que quiere decir que:
Reconoce lenguajes regulares
Se define como una 5-tupla (𝑸,,𝒒𝟎,𝜹,𝑭), donde; Q
es el conjunto de estados{𝒒𝟎,𝒒𝟏,𝒒𝟐} Σ
es el alfabeto {𝟎,𝟏}
𝒒𝟎 es el estado inicial
3

𝜹:𝑸𝒙𝜮,→𝑸 Es una función de transición;

F es el conjunto de estados finales {𝑞2}

Expresión Regular
Para hallar la expresión regular revisamos los posibles pasos que vayan
desde 𝑞0 hasta las funciones de aceptación, en este caso 𝑞3 Por lo tanto,
Tenemos que:
𝒒𝟎→𝒒𝟐=𝟏∗𝟎[𝟏𝟏∗𝟎]∗

Ejercicio 2:

Solución
Para hallar la Expresión Regular (ER) utilizaremos el método de eliminación
de estados (González Amarillo, 2018) para simplificar el modelo y dejar sólo
el estado inicial y el final.
1. Eliminaremos el estado q0, lo cual origina dos caminos de q2 – q1 (0) y

(110); y un bucle q1-[q0]-q1 (010):


4

Unificando la ruta de q2-q1 nos sale una sola (0+110) y el bucle en q1 es


010, así:

Se han rotulado los elementos que intervienen en la fórmula aplicada en el


punto anterior para hallar la ER final, para una mayor ilustración.
Resolvemos la expresión.

Y el lenguaje regular es:


L = ({010} U {{0}.{0}*.{{0} U {110}}})*({0}.{0}*)

El lenguaje regular también se puede escribir de varias formas, por ejemplo:


dado que
{0} U {110} = {0,110} el lenguaje puede quedar así:

L = ({010} U {{0}.{0}*.{0,110}})*({0}.{0}*)

El modelo es un AFND definido así:

Q = {q0, q1, q2}


∑ = {0,1}
s = q1
F = {q2}
La función de transición δ se describe así:
δ(q0,0) = q1
δ(q0,1) = q1
δ(q1,0) = q0, q2
δ(q2,0) = q2, q1
δ(q2,1) = q0
5

Ejercicio 3:

Tipo De Autómata:
El autómata es un Autómata Finito no Determinista, Lo que quiere decir que:
Reconoce lenguajes regulares
Se define como una 5-tupla (𝑸,,𝒒𝟎,𝜹,𝑭), donde;
Q es el conjunto de estados {𝒒𝟎,𝒒𝟏}
Σ es el alfabeto {𝟎,𝟏}
𝒒𝟏 es el estado inicial
𝜹:𝑸𝒙𝜮,→𝑸 es una función de transición;
F es el conjunto de estados finales {𝑞1}

Expresión Regular:

Analizando todas las rutas posibles que nos lleven hasta 𝑞1 tenemos que la
expresión regular es la siguiente.

𝑬𝑹=(𝟎+𝟏)∗𝟎[𝟎∗+(𝟎(𝟎+𝟏)∗𝟎)∗]

Lenguaje Regular:

El lenguaje regular del autómata es:


𝑳={𝒘|𝜹(𝒒𝟎,𝒘) 𝝐 𝑭}
Dónde:
𝒘 = Palabra a analizar
(𝒒𝟎,𝒘) =Estado de transición extendida, devuelve un estado final de
acuerdo a la palabra recibida.
𝑭 =Estados de aceptación. 𝒒𝟐
6

El lenguaje regular del autómata está representado por todas las cadenas
que empiecen por 0 o 1 y terminen en 𝑞1

Ejercicio 4:

Tipo De Autómata:
El autómata es un Autómata Finito no Determinista, Lo que quiere decir que:
Reconoce lenguajes regulares
Se define como una 5-tupla (𝑸,,𝒒𝟎,𝜹,𝑭), donde;

Q es el conjunto de estados {𝒒𝟎,𝟏,𝒒𝟐,𝒒𝟑}


Σ es el alfabeto {𝟎,}
𝒒𝟏 es el estado inicial

𝜹:𝑸𝒙𝜮,→𝑸 es una función de transición;

F es el conjunto de estados finales {𝑞3}


Eliminando q2
7

Eliminando q1

Eliminando q0

La expresión regular queda del autómata 1*(0 + 10)(1+0)

II. Teniendo en cuenta el siguiente autómata realizar los puntos


siguientes:
8

Realizar la conversión de AFD a AFND o de AFND a AFD según corresponda

El autómata es un autómata finito determinista AFD, y se convertirá en autómata finito


no determinista AFND.

 Realizamos la tabla de transiciones:

0 1
𝑞0 𝑞3 𝑞6
𝑞1 𝑞0 𝑞6
𝑞2 𝑞1 𝑞5
𝑞3 𝑞4 𝑞3
𝑞4 ----- -----
𝑞5 𝑞6 𝑞4
𝑞6 ---- -----

 Dividimos el autómata en dos conjuntos, un conjunto de estados


aceptadores u uno de estados no aceptadores:

X = {𝑞4, 𝑞6,} = 𝑐𝑜𝑛𝑗𝑢𝑛𝑡𝑜 𝑑𝑒 𝑒𝑠𝑡𝑎𝑑𝑜𝑠 𝑎𝑐𝑒𝑝𝑡𝑎𝑑𝑜𝑟𝑒𝑠


Y = {𝑞0, 𝑞1, 𝑞2,, 𝑞3, 𝑞5, } = 𝑐𝑜𝑛𝑗𝑢𝑛𝑡𝑜 𝑑𝑒 𝑒𝑠𝑡𝑎𝑑𝑜𝑠 𝑛𝑜 𝑎𝑐𝑒𝑝𝑡𝑎𝑑𝑜𝑟𝑒𝑠

 Validamos en el autómata el conjunto X

0 1
𝑞4 ----- -----
𝑞6 ------ -----

 Validamos en el autómata el conjunto Y


0 1
𝑞0 Y X Son equivalentes
𝑞1 Y X
𝑞2 Y Y
𝑞3 X Y
𝑞5 X X

 Eliminamos el conjunto y obtenemos nuevos conjuntos con las equivalencias.


9

X = {𝑞4,𝑞6,}
A = {𝑞0,𝑞1,}
B = {𝑞2}
C = {𝑞3}
D ={𝑞5}

 Ahora validamos los nuevos conjuntos.

Validamos en el autómata el conjunto X

0 1
𝑞4 ----- -----
𝑞6 ------ -----

Validamos en el autómata el conjunto A


0 1 Con estas transiciones hacemos que el autómata ya
𝑞0 C X no sea determinista, ya que el conjunto A con su
transición 0 nos llevaría tanto al conjunto A como al
𝑞1 A X conjunto C.

Validamos en el autómata el conjunto B

0 1
𝑞2 A D

Validamos en el autómata el conjunto C

0 1
𝑞3 X C

Validamos en el autómata el conjunto D

0 1
𝑞5 X X
10

 Ahora obtenemos la nueva tabla de transición.


0 1
X ---- ----
A C X
A A X
B A D
C X C
D X X

 Autómata obtenido y comprobación.

III. Realice la minimización paso a paso del autómata finito


determinista:

 Paso N° 1.

Definimos Quíntuplas
 , K, 𝛿,𝑆,𝐹

M = {𝑞0, 𝑞1,2, 𝑞3, 𝑞4, 𝑞5, 𝑞6}´{0 1}


𝛿 = 𝑞0{𝑞4, 𝑞6}
K = {𝑞0, 𝑞1,2, 𝑞3, 𝑞4, 𝑞5, 𝑞6} Estados
 = {0 1} Alfabeto
S = 𝑞0 Estado Inicial
F = 𝑞4, 𝑞6 Estados Finales
11

𝛿 (𝑞0 0)= 𝑞3
𝛿 (𝑞0 1)= 𝑞6
𝛿 (𝑞1 0)= 𝑞0
𝛿 (𝑞1 1)= 𝑞6
𝛿 (𝑞2 0)= 𝑞1
𝛿 (𝑞2 1)= 𝑞5
𝛿 (𝑞3 0)= 𝑞4
𝛿 (𝑞3 1)= 𝑞3
𝛿 (𝑞4 0) = − −
𝛿 (𝑞4 1) = − −
𝛿 (𝑞5 0)= 𝑞6
𝛿 (𝑞5 1)= 𝑞4
𝛿 (𝑞6 0) = − −
𝛿 (𝑞6 1) = − −

Estados Aceptadores

X = {𝑞4, 𝑞6}

Estados no Aceptadores
Y = {𝑞0, 𝑞1,2, 𝑞3, 𝑞5, }

X 0 1
𝒒𝟒 ---- ----
𝒒6 ---- ----

Y 0 1
𝒒𝟎 Y X
𝒒1 Y X Equivalentes
𝒒2 Y Y 𝑞0 , 𝑞1 .𝑞2,𝑞5
No Equivalentes
𝒒3 X Y
𝑞3
𝒒5 X X

X = {𝑞4, 𝑞6}
M = {𝑞 0, 𝑞1 ,𝑞 2, 𝑞 5}
Z = {𝑞3}

X 0 1
12

𝒒𝟒 ---- ----
𝒒6 ---- ----

M 0 1
𝒒0 Z X
𝒒1 M X
𝒒2 M M
𝒒5 X X

Z 0 1
𝒒3 X Z

X = {𝑞4, 𝑞 6}
N = { 2, 𝑞 5 } A
= {𝑞 0, 𝑞1 } Z =
{𝑞3}
X 0 1
𝒒4 ---- ----
𝒒6 ---- ----

N 0 1
𝒒2 A N
𝒒5 X X

A 0 1
𝒒0 Z X
𝒒1 A Z

Z 0 1
𝒒3 X Z

X = {𝑞4, 𝑞6}

Z = {𝑞 3}
A = {𝑞 0}
B = {1} C
= { 𝑞 2} D
= { 𝑞 5}
13

X 0 1
𝒒4 ---- ----
𝒒6 ---- ----

Z 0 1
𝒒3 X Z

A 0 1
𝒒0 Z X

B 0 1
𝒒1 A X
C 0 1
𝒒2 B D

D 0 1
𝒒5 X X

Tabla de Transición

0 1
X ---- ----
Z X Z
A Z X
B A X
C B D
D X X
14

IV. Realizar el autómata a Pila de L = {(a+bn)*}

Conjunto de estados del autómata


K= {q0, q1}
Alfabeto
∑= {a,b}
Contenido de la Pila
Γ= {V}
Estado Inicial
s=q0
Símbolo Inicial de pila
Z= V

Estado Final
F=q1
𝐿= {𝑤 ϵ (𝑎*𝑏*) | 𝑤=

Todas las cadenas que empiezan por el símbolo a seguidas por muchas {a} o seguidas
de una o muchas cadenas con el símbolo { b}

Para Estado Final


15

Para Pila Vacía


16

V. Realizar una máquina de Turing de autoría propia y realice:

a) Recorra la máquina con al menos una cadena válida explicando lo


sucedido tanto en la cinta como en la secuencia de entrada.
b) Identifique una cadena que no sea válida y justifíquela porque
c) Ejecute el RunTest a una cadena aceptada que tenga la menos cinco
símbolos
d) Identifique en que momento la máquina se detiene.

La MT (Máquina de Turing) que presentamos es la que devuelve 0 o 1 al final


de una cadena w de entrada, que pertenece a Σ*, donde Σ = {a,b,c,“},
cumpliendo la siguiente regla: si la cadena w incluye comillas dobles de
apertura, debe también incluir las respectivas comillas dobles de cierre, para
lo cual devuelve un código de error de 0 que indica que no hay error (w0 en
la cinta). De presentarse lo contrario debe devolver código de error 1, donde
indica que sí hay error (w0 en la cinta). Si no hay comillas en la cadena de
entrada, también devuelve w0 en la cinta.

Este ejercicio es especialmente útil como subrutina para adaptarlo al


análisis de léxico de un lenguaje de programación, donde se incluyan palabras
reservadas, espacios, operadores, entre otros símbolos y se quiera validar si
existen strings bien definidos (entre comillas dobles).

Cabe mencionar que esta MT también acepta las cadenas vacías (“”), que son
contempladas por el lenguaje.

La MT (M) de la solución es:

Y se define así:

M = {Q, Σ, Γ, δ, s, B, F}, donde:

Q: es el conjunto de estados de la MT.


Σ: es el conjunto de los símbolos de entrada.
17

Γ: es el conjunto de símbolos de la cinta.


s: es el estado inicial.
B: es el símbolo de espacio en blanco.
F: es el conjunto de estados finales.
δ: es la función de transición.

Así:
Q = {noerr, err, fin}
Σ = {a,b,”}
Γ = {a,b,”,0,1,□}, 0 no error y 1 error.
s = noerr
B=□
F = {fin}
δ:QxΓ → QxΓx{R,L,S}

δ(noerr,a) = (noerr,a,R)
δ(noerr,b) = (noerr,b,R)
δ(noerr,c) = (noerr,c,R)
δ(noerr,”) = (err,”,R)
δ(noerr,□) = (fin,0,S)
δ(err,a) = (err,a,R)
δ(err,b) = (err,b,R)
δ(err,c) = (err,c,R)
δ(err,”) = (noerr,”,R)
δ(err,□) = (fin,1,S)

a. Recorrido de la MT(M) con la cadena válida a”b”c.

Inicia la lectura de símbolos de izquierda a derecha. Lee el primer símbolo [a],


la sobrescribe en la cinta y permanece en el mismo estado noerr.
18

Se mueve la cabeza de lectura/escritura una posición a la derecha de la


cadena de entrada, lee [“], lo sobrescribe en la cinta y pasa al estado err.
Queriendo decir que faltan las comillas de cierre:

Se mueve la cabeza de lectura/escritura una posición a la derecha, lee [□], la


sobrescribe en la cinta y permanece en el mismo estado err porque todavía
no recibe las comillas de cierre:

Se mueve la cabeza de lectura/escritura una posición a la derecha, lee [“], la


sobrescribe en la cinta, cambia al estado noerr, porque se completa ese string
con las comillas de cierre:

Se mueve la cabeza de lectura/escritura una posición a la derecha, lee [c], la


sobrescribe en la cinta, permanece en el estado noerr:
19

Se mueve la cabeza de lectura/escritura una posición a la derecha, lee [□]


estando en noerr, lo sobrescribe con 0 en la cinta para posteriormente
cambiar al estado de aceptación fin y detener los movimientos (S):

La secuencia de entrada a”b”c es válida para el lenguaje en cuestión, contiene


un string bien formado (entre comillas) de acuerdo a las reglas del autómata.

b. Una cadena no válida (“ab”c”a).


20

La cadena no es válida y por ello es marcada con un código de error de 1 (hay


error) al final de los símbolos de la cinta, dado que la MT determina si las
dobles comillas están completas para un string, pero en este caso hay unas
comillas dobles que no se cierran, lo cual viola las reglas del lenguaje para
secuencia válida.

c. Test paso a paso por estados.

La secuencia a probar es “baca”ba. Con las comillas pasa de noerr a err:

Cuando entran los símbolos b, a, c, a, permanece en el estado err:


21

Al leer las otras comillas dobles cambia al estado noerr para seguir leyendo
datos:
22

En el estado noerr se lee [□] para finalizar el proceso, reescribir aquí el


resultado [0] de salida exitosa contiguo a la secuencia de entrada:
23

d. La máquina se detiene en δ(noerr,□) = (fin,0,S), después de haber


procesado los símbolos “baca”ba.

Este ejercicio es de autoría propia, lógicamente después de la lectura de


referentes teóricos y la práctica de diversos ejercicios (Sanchis de Miguel,
Ledezma Espino, Iglesias Martínez, García Jiménez, & Alonso Weber, s. f.).
24

Referencias Bibliográficas

Gutierrez de Piñerez, R. (2014). Lenguajes formales y autómatas.


Recuperado de
https://campusvirtual.univalle.edu.co/moodle/pluginfile.php/1077849/
mod_resource/content/1/lenguajes.pdf

Gonzalez Amarillo, A. M. (2018, junio 6). Lenguaje regular. Recuperado


de http://hdl.handle.net/10596/18315

Sanchis de Miguel, A., Ledezma Espino, A., Iglesias Martínez, J. A.,


García Jiménez, B., & Alonso Weber, J. M. (s. f.). Ejercicios de Máquinas
de Turing. Recuperado de http://ocw.uc3m.es/ingenieria-
informatica/teoria-de-automatas-y-lenguajes-
formales/ejercicios/ejercicios-tema-7-maquinas-de-turing

Das könnte Ihnen auch gefallen