Está en la página 1de 15

Tecnológico Nacional de México

Instituto Tecnológico Superior de Misantla

Ingeniería en Sistemas Computacionales

Asignatura: Lenguajes y autómatas I

Semestre: 4

Unidad 3.

Nombre de la Actividad:
Práctica: Autómatas deterministas y no deterministas.

Nombre del Alumno:


Gustavo Raziel Santes Salvador

Luz Alexa Torres Sánchez

Fecha de Entrega: 01/04/2023


Objetivo:

Es aprender a construir un autómata finito determinista con el software JFLAP de


un lenguaje formal.

Material y equipo:

Cantidad Descripción

• 1 PC
• 1 Software JFLAP. (Proporcionado por el docente) ó descargado
de www.jflap.org 1 Java SE 1.4 o posterior instalada
• 1 Procesador de textos (Word)
• 1 Editor de imágenes

Paso 1:

Elaborar autómatas finitos deterministas (del inciso 1 al 5) y autómatas finitos no


deterministas (del inciso 6 al 10) a partir de los siguientes lenguajes. En el
software pertinente.

1) L = {Todas las cadenas sobre el alfabeto ∑ = {1,0} de longitud mayor o igual con
dos, que contengan al menos la subcadena 10}

2) L = {Todas las cadenas sobre el alfabeto ∑ = {a, b} que comience con a y la


terminen con b}

3) L = {Todas las cadenas sobre el alfabeto ∑ = {1,0} de longitud impar}

4) L= {Todas las cadenas sobre el alfabeto ∑ = {a, b} que sean series de a’ s


seguidas de series de b’ s o no}.
5) L = {Todas las cadenas sobre el alfabeto ∑ = {1,0} con los símbolos 1 y 0
alternados, que inicien y terminen en 1 y ε}

6) L= {Todas las cadenas sobre el alfabeto ∑ = {a, b} que sean de longitud>=2 e


inicien y terminen igual}
7) L= {Todas las cadenas sobre el alfabeto ∑ = {1,0} cuya representación binaria
sea múltiplo de cuatro}

8) L= {Todas las cadenas sobre el alfabeto ∑ = {a, b} que la segunda posición de


izquierda a derecha sea a}

9) L = {Todas las cadenas sobre el alfabeto ∑ = {1,0} que inicie y termine igual}.

10) L= {Todas las cadenas sobre el alfabeto ∑ = {a, b, c} que sean a*b + c*}.

Creación de los autómatas finitos deterministas del 1 al 5.

1.- L = {Todas las cadenas sobre el alfabeto ∑ = {1,0} de longitud mayor o igual
con dos, que contengan al menos la subcadena 10}.

2.- L = {Todas las cadenas sobre el alfabeto ∑ = {a, b} que comience con a y la
terminen con b}.
3.- L = {Todas las cadenas sobre el alfabeto ∑ = {1,0} de longitud impar}.

4.- L= {Todas las cadenas sobre el alfabeto ∑ = {a, b} que sean series de a’ s
seguidas de series de b’ s o no}.
5.- L = {Todas las cadenas sobre el alfabeto ∑ = {1,0} con los símbolos 1 y 0
alternados, que inicien y terminen en 1 y ε}.

Creación de los autómatas finitos no deterministas del 6 al 10.

6.- L= {Todas las cadenas sobre el alfabeto ∑ = {a, b} que sean de longitud>=2
e inicien y terminen igual}.
7.- L= {Todas las cadenas sobre el alfabeto ∑ = {1,0} cuya representación binaria
sea múltiplo de cuatro}.

8.- L= {Todas las cadenas sobre el alfabeto ∑ = {a, b} que la segunda posición
de izquierda a derecha sea a}.
9.- L = {Todas las cadenas sobre el alfabeto ∑ = {1,0} que inicie y termine igual}.
Paso 2:

Enlistar una serie de cadenas aceptadas por el lenguaje y posteriormente probar que
sean aceptadas por el tipo de autómata finito determinista o no determinista según
sea el caso.

1) L = {Todas las cadenas sobre el alfabeto ∑ = {1, 0} de longitud mayor o igual


con dos, que contengan al menos la subcadena 10}.

Cadenas
aceptadas

10

110

101

100

1110

2) L = {Todas las cadenas sobre el alfabeto ∑ = {a, b} que comience con a y la


terminen con b.

Cadenas
aceptadas

ab

aab

aaab

aaaab

aaaaaab

3) L = {Todas las cadenas sobre el alfabeto ∑ = {1,0} de longitud impar}.

Cadenas
aceptadas

101

00001

1111111

0101011
000000001

4) L= {Todas las cadenas sobre el alfabeto ∑ = {a, b} que sean series de a’ s


seguidas de series de b’ s o no}.

Cadenas
aceptadas

aaabbb

aabb

aaaabbbb

ab

aaaaabbbb

5) L = {Todas las cadenas sobre el alfabeto ∑ = {1,0} con los símbolos 1 y 0


alternados, que inicien y terminen en 1 y ε}.

Cadenas
aceptadas

101

11011

11001

1010101

1101

6) L= {Todas las cadenas sobre el alfabeto ∑ = {a, b} que sean de longitud>=2 e


inicien y terminen igual}.

Cadenas
aceptadas

aba

babab

aabaa

abba

bbab
7) L= {Todas las cadenas sobre el alfabeto ∑ = {1,0} cuya representación binaria
sea múltiplo de cuatro}.

Cadenas
aceptadas

0100

10000

10100

11000

8) L= {Todas las cadenas sobre el alfabeto ∑ = {a, b} que la segunda posición


de izquierda a derecha sea a}.

Cadenas
aceptadas

bab

aab

baba

9) L = {Todas las cadenas sobre el alfabeto ∑ = {1,0} que inicie y termine igual}.

Cadenas
aceptadas

101

010

1001
Paso 3:
Enlistar una serie de cadenas rechazadas por el lenguaje y posteriormente probar
que sean rechazadas por el tipo de autómata finito determinista o no determinista
según sea el caso.

1) L = {Todas las cadenas sobre el alfabeto ∑ = {1,0} de longitud mayor o igual


con dos, que contengan al menos la subcadena 10}.

Cadenas
Rechazadas

00

01

2) L = {Todas las cadenas sobre el alfabeto ∑ = {a, b} que comience con a y la


terminen con b}.

Cadenas
Rechazadas

ba

aa

bb

bab

3) L = {Todas las cadenas sobre el alfabeto ∑ = {1,0} de longitud impar}.

Cadenas
Rechazadas

00

1111

1010101010

010100

000000
4) L= {Todas las cadenas sobre el alfabeto ∑ = {a, b} que sean series de a’ s
seguidas de series de b’ s o no}.

Cadenas
Rechazadas

abba

bbbaaaa

bbaabb

abbaa

5) L = {Todas las cadenas sobre el alfabeto ∑ = {1,0} con los símbolos 1 y 0


alternados, que inicien y terminen en 1 y ε}.

Cadenas
Rechazadas

010

0010

0001

0110

6) L= {Todas las cadenas sobre el alfabeto ∑ = {a, b} que sean de longitud>=2 e


inicien y terminen igual}.

Cadenas
Rechazadas

7) L= {Todas las cadenas sobre el alfabeto ∑ = {1,0} cuya representación binaria


sea múltiplo de cuatro}.

Cadenas
Rechazadas

011

1001

1111
10101

8) L= {Todas las cadenas sobre el alfabeto ∑ = {a, b} que la segunda posición


de izquierda a derecha sea a}.

Cadenas
Rechazadas

aba

bba

abab

9) L = {Todas las cadenas sobre el alfabeto ∑ = {1,0} que inicie y termine igual}.

Cadenas
Rechazadas

10

110

1010
Evaluación teórica:
1. ¿Qué tipo de autómata finito te fue más fácil? Justifica tu respuesta.

El autómata finito determinista es más fácil de resolver que el autómata finito no


determinista. Porque un AFD tiene una única transición para cada símbolo de entrada
en cada estado, lo que significa que su comportamiento es predecible. Por lo tanto,
se puede determinar de manera única si una cadena es aceptada o rechazada por la
AFD. En cambio, un AFND tiene múltiples transiciones puede ser más difícil
determinar si una cadena es aceptada o rechazada

2.- ¿Cómo defines un autómata finito determinista?

Un autómata finito determinista es un modelo utilizado para representar sistemas que


operan sobre un conjunto finito de entradas. Está compuesto por un conjunto finito de
estados, una entrada y una función de transición que determina cómo se mueve el
autómata de un estado a otro en función de la entrada recibida

3.- La cadena vacía es aquella cadena que presenta cero apariciones de


símbolos.

La cadena vacía se representa como ε, no contiene ningún símbolo o carácter. Es


importante tener en cuenta que la cadena vacía es diferente de una cadena que
contiene un espacio en blanco o cualquier otro carácter, ya que en la cadena vacía
no hay símbolos presentes en absoluto.

4.- Un autómata es no determinista cuando no se puede determinar el número


de cadenas que lo conforman.

La afirmación es falsa Un autómata no determinista es un tipo de autómata finito que,


a diferencia de un autómata determinista (DFA), puede estar en varios estados a la
vez y puede tener múltiples transiciones para un mismo símbolo entrada. El hecho de
que un autómata sea no determinista no tiene relación directa con la capacidad de
determinar el número de cadenas que lo conforman.

5.- El autómata se puede representar a través de una expresión regular.

Es cierto, un autómata puede ser representado a través de una expresión regular.


Esto significa que se puede crear una expresión regular que describe el
comportamiento del autómata y que puede ser utilizada para reconocer y validar
cadenas de entrada que siguen el mismo patrón que el autómata.
Conclusión:

Los autómatas deterministas y no deterministas son herramientas fundamentales en


la teoría de la computación y en la informática en general. Los autómatas
deterministas se utilizan para modelar sistemas en los que cada estado tiene una
única transición posible para cada entrada, lo que los hace más sencillos de
implementar y analizar. Por otro lado, los autómatas no deterministas permiten
múltiples transiciones para una entrada dada, lo que los hace más flexibles y
poderosos. Ambos tipos de autómatas se utilizan en una amplia variedad de
aplicaciones, como en la validación de lenguajes formales, la verificación de sistemas,
el análisis de protocolos de comunicación y la optimización de circuitos electrónicos.
Además, los autómatas no deterministas también se utilizan en el diseño y análisis de
algoritmos y en la teoría de la complejidad computacional.

También podría gustarte