Anda di halaman 1dari 15

FASE 2: DEBATIR Y DESARROLLAR LOS EJERCICIOS PLANTEADOS SOBRE

AUTÓMATAS CON PILA Y GRAMÁTICAS

DELIA MAYORGA MUÑOZ


OSCAR ANTONIO LOBATO
SIRLADYS YISELA CARRILLO
KEIDER FABIAN LOPEZ

TUTOR.
EDGAR ANTONIO CORTES

GRUPO
301405_2

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA “UNAD”


CURSO AUTOMATAS Y LENGUAJES FORMALES
2018 – I
INTRODUCCIÓN

La teoría de autómatas es una rama de las ciencias de la computación que estudia las
máquinas abstractas y los problemas que éstas son capaces de resolver. La teoría de
autómatas está estrechamente relacionada con la teoría del lenguaje formal ya que los
autómatas son clasificados a menudo por la clase de lenguajes formales que son capaces de
reconocer.
En el desarrollo de esta actividad daremos inicio a una nueva etapa de conocimientos en el
curso de Autómatas y Lenguajes Formales, se resolverán preguntas bases que permitirán
dar nuevas soluciones a las actividades que sean planteadas en el transcurso del desarrollo
de este.
OBJETIVOS

- Revisar el material requerido para el desarrollo de la actividad.


- Presentar respuestas y/o información de los temas propuestos.
- Realizar comentarios a los aportes de sus compañeros, fundamentados en la lectura
y análisis de la información.
- El estudiante diseña máquinas abstractas (Autómata de Pila).
DESARROLLO

Ejercicio 1:
Teniendo en cuenta la siguiente tabla de transiciones cree el autómata y realice el
proceso de minimización paso a paso.

Estados a b
-> q0 q1 q2
q1 q3 q5
q2 q6 q4
q3 q3 q5
q4 q6 q4
q5 q6 q4
# q6 q3 q5

Paso 1: Identificar qué tipo de autómata es el que se presenta inicialmente: Es un autómata


Finito Determinista

Paso 2: Identificar la Quíntupla { 𝑘, ∑ , 𝛿, 𝑠, 𝐹 }


✓ 𝑀 = {𝑞1 , 𝑞2 , 𝑞3 , 𝑞4 , 𝑞5 , 𝑞6 }, {𝑎, 𝑏}
✓ 𝛿 = 𝑞0 , {𝑞6}
𝑘 = [𝑞0 , 𝑞1 , 𝑞2 , 𝑞3 , 𝑞4 , 𝑞5 , 𝑞6 ] (𝐸𝑠𝑡𝑎𝑑𝑜𝑠)
∑ = {𝑎, 𝑏} (𝐴𝑙𝑓𝑎𝑏𝑒𝑡𝑜)

𝑠 = 𝑞0 (𝐸𝑠𝑡𝑎𝑑𝑜 𝐼𝑛𝑖𝑐𝑖𝑎𝑙)
𝐹 = {𝑞6 } (𝐸𝑠𝑡𝑎𝑑𝑜 𝐹𝑖𝑛𝑎𝑙)
𝛿 = (𝑞0 , 𝑎) = 𝑞1 𝛿 = (𝑞2 , 𝑏) = 𝑞4 𝛿 = (𝑞5 , 𝑎) = 𝑞6
𝛿 = (𝑞0 , 𝑏) = 𝑞2 𝛿 = (𝑞3 , 𝑎) = 𝑞3 𝛿 = (𝑞5 , 𝑏) = 𝑞4
𝛿 = (𝑞1 , 𝑎) = 𝑞3 𝛿 = (𝑞3 , 𝑏) = 𝑞5 𝛿 = (𝑞6 , 𝑎) = 𝑞3
𝛿 = (𝑞1 , 𝑏) = 𝑞5 𝛿 = (𝑞4 , 𝑎) = 𝑞6 𝛿 = (𝑞6 , 𝑏) = 𝑞5
𝛿 = (𝑞2 , 𝑎) = 𝑞6 𝛿 = (𝑞4 , 𝑏) = 𝑞4

Paso 3: Hallar los conjuntos para minimizar


Se identificarán:
✓ estados aceptadores {𝑞6 }
✓ No aceptadores {𝑅𝑒𝑠𝑡𝑜 𝑑𝑒 𝐸𝑠𝑡𝑎𝑑𝑜𝑠}
Al primer conjunto se llamará X
Al segundo conjunto se llamará Y
✓ 𝑋 = {𝑞6 }
✓ 𝑌 = {𝑞0 , 𝑞1 , 𝑞2 , 𝑞3 , 𝑞4 , 𝑞5 }
En una tabla de transición se verifica 𝑞6 en transición a y b y de acuerdo a lo que arroje el
resultado se establecerá en la tabla de valores. En este caso se toma el valor de estado final
y se inicia con la minimización por conjuntos. Entonces, q6 con transición a sería q3 y q3
está en el conjunto Y, y q6 con transición b sería q5 que estaría en el conjunto Y, por ésta
razón se establece Y Y
A B
𝑞6 Y Y

Paso 4: se verifican todos los estados con transiciones a,b de acuerdo a los conjuntos
previamente creados.
De esta forma se crean dos conjuntos que los nombraremos M y Z
𝑀 = {𝑞0 , 𝑞1 , 𝑞3 , 𝑞6 }
𝑍 = {𝑞2 , 𝑞4 , 𝑞5 }

Paso 5: Se separarán los resultados equivalentes y no equivalentes según el caso y se


generan nuevos conjuntos así:
𝑋 = {𝑞6 }
𝑀 = {𝑞0 , 𝑞1 , 𝑞3 , 𝑞6 }
𝑍 = {𝑞2 , 𝑞4 , 𝑞5 }
Paso 6: Se crea tabla para validar conjuntos
M A B
𝑞0 M Z
𝑞1 M Z
𝑞0 , 𝑞1 , 𝑞3 , 𝑞6 𝑆𝑜𝑛 𝐸𝑞𝑢𝑖𝑣𝑎𝑙𝑒𝑛𝑡𝑒𝑠
𝑞3 M Z
𝑞6 M Z

Z A B
𝑞2 X Z
𝑞4 X Z 𝑞2 , 𝑞4 , 𝑞5 𝑆𝑜𝑛 𝐸𝑞𝑢𝑖𝑣𝑎𝑙𝑒𝑛𝑡𝑒𝑠
𝑞5 X Z

X A B
𝑞6 M Z 𝑞6 𝐸𝑠 𝐸𝑞𝑢𝑖𝑣𝑎𝑙𝑒𝑛𝑡𝑒

Paso 7: Validar cada conjunto en transiciones a,


b
Conjuntos a b
M M Z
Z X Z
X# M Z

Luego de la validación de los conjuntos y


del resultado final, se obtiene la
minimización correspondiente del
autómata.
Se obtuvo el mismo resultado que el propuesto por conjuntos.

Para el autómata ya minimizado:

1. Realice la notación formal (caracterización) matemática del autómata ya


minimizado.

Identificar la Quíntupla { 𝑘, ∑ , 𝛿, 𝑠, 𝐹 }
✓ 𝑀 = {𝑀(𝑞0 ), 𝑋(𝑞1 ), 𝑍(𝑞2 )}, {𝑎, 𝑏}
✓ 𝛿 = 𝑞0 , {𝑋(𝑞2 )}
𝑘 = [𝑀(𝑞0 ), 𝑋(𝑞1 ), 𝑍(𝑞2 )] (𝐸𝑠𝑡𝑎𝑑𝑜𝑠)
∑ = {𝑎, 𝑏} (𝐴𝑙𝑓𝑎𝑏𝑒𝑡𝑜)
𝑠 = 𝑀(𝑞0 ) (𝐸𝑠𝑡𝑎𝑑𝑜 𝐼𝑛𝑖𝑐𝑖𝑎𝑙)
𝐹 = {𝑋(𝑞2 )} (𝐸𝑠𝑡𝑎𝑑𝑜 𝐹𝑖𝑛𝑎𝑙)
2. Plasme la gramática del autómata.

S bB

S aA

F 𝝀

E bD

F bE

E aF

F aC

B bD

A bE

C bE

B aF

D bD

A aC

D aF

C aC
3. Identifique el lenguaje que reconoce.

El lenguaje que se reconoce empieza con “a” o/y “b” 𝐿 = {𝐴 {𝑎, 𝑏} ∗ | A= { “a”
“b”}.

4. Identifique su gramática (de forma manual) por la derecha y caracterícela.


Debe incluir el diagrama de estados con los componentes de la gramática
asociados a las variables y a las constantes.

Se utilizarán los estados de la siguiente manera:


 Para 𝑀(𝑞0 ) Se asignará la letra S
 Para X(𝑞1 ) Se asignará la letra A
 Para z(𝑞2 ) Se asignará la letra B
Entonces la gramática sería de la siguiente manera

A  λ
S  aS
B  bB
A  bB
B  aA
S  bB
A  aS

Ejercicio 2:

Diseñe un AP que lea el siguiente lenguaje L = {(0n+1m: n>0, m>0} (con pila
vacía).
1. Describa el autómata en notación matemática.

La descripción matemática es:


M = (S, Σ, Γ, δ, s, Z, F)

S: Conjunto finito de estado


Σ, Γ: Alfabetos símbolo de entrada y de la pila respectivamente
δ: S x (Σ u {ℰ}) x Γ  P (S x Γ*) Transiciones de estados y manejo de la pila
s € S: Estado inicial
Z € Γ: Símbolo inicial de la pila
F ⊆ S: Conjunto de estados de aceptación o finales

Respecto al autómata de pila (AP) desarrollado

S: q0, q1, q2, q3


Σ, Γ: {0,1}
δ: Transiciones y manejo de la pila respecto al Σ, Γ
s: q0
Z: Símbolo inicial de la pila
F: q2

2. Determine el lenguaje que reconoce el AP.

Aquí describimos el proceso de aceptación o rechazo de una palabra de Σ* mediante la


sucesión de movimientos. Podemos reconocer palabras del alfabeto de entrada de dos
formas distintas, los cuales son:
- Estado final: LF (AP) = {x | (q0, x, A0) |* ((0,1), λ, X), con (0,1) ∈ F, X ∈ Γ*}
- Vaciado de pila: Lv (AP) = {x | (q0, x, A0) |* ((0,1), λ, λ) con (0,1) ∈ Q}

LF (AP) y Lv (AP) estos representan a los lenguajes reconocidos por el autómata AP por
estado final y por vaciado de pila respectivamente.

3. Justifique y asocio o evidencie si el diseño es un APND o un APD.

A diferencia de un autómata finito o una máquina de Turing, la definición básica de un


autómata con pila es de naturaleza no determinas, aunque se puede representar un
autómata de pila determinista. El diseño desarrollado es un APND debido a que en las
transiciones q1 y q3 hacia el estado q2 se acepta como vacía y esta es una particularidad
propia de los APND.

4. Grafíquelo en JFLAP y realice el “Traceback” para las transiciones. (Las


columnas para un AP son: El estado en que se encuentra el autómata, lo que falta
por leer de la palabra de entrada, y el contenido de la pila).
5. Plasme las imágenes del recorrido de ese Traceback para cada movimiento en el
documento. (Se debe apoyar en JFLAP) (Documente el proceso).

Cadena a procesar por el AP diseñado: 1011100

Iteración 1 empezamos el proceso en el estado de inicio, básicamente el autómata toma el


primer valor de la cadena, en este caso es 1. El autómata tiene en la pila el valor Z que es el
inicial y está vacía.

Entra el primer valor de la cadena que es 1 y se almacena en la pila

Luego pasa al segundo valor de la cadena que es 0 entra a la pila y se almacena como
segundo valor de la pila.

Luego pasa el tercer valor de la cadena que es 1 y se remplaza el valor de la pila que está en
cola que es cero por vacío. Y en la pila solo queda el valor de 1 esperando en cola.
Pasa el cuarto valor de la cadena que corresponde a 1 y vemos que inmediatamente el valor
que
Está en cola en la pila se remplaza por un vacío. Solo vemos que queda el valor inicial de la
pila, Z.

Se lee el quinto valor de la cadena y se almacena en la pila debida que estaba con un valor
vacío y el valor de la cadena se almacena junto al valor de la pila

Se hace lectura del ultimo valor de la pila y se determina si el valor de la pila que está en
cola es cero se remplaza este valor por un vacío y la pila se queda con valor inicial, Z.

Se acaba los valores de la cadena y se determina que el valor de la pila es el inicial Z y se


acepta la cadena en el estado final que es q0 para terminar el proceso de lectura y
procesamiento de la cadena.
CONCLUSIÓN

Mediante el presente trabajo se pudo analizar la temática de los lenguajes formales


mediante expresiones regulares, autómatas finitos, o gramáticas.
Al finalizar el desarrollo de este trabajo del curso autómatas y lenguajes formales, logramos
identificar el significado y la aplicación de cada termino estudiado, aplicándolo de manera
acertada en cada una de las problemáticas asignadas a resolver, permitiendo de esta manera
tomar como base esta información para el desarrollo futuro de nuevas actividades.
REFERENCIA BIBLIOGRAFICA

Capitulo 11. Autómata a pila. Recuperado de:

http://www.ia.urjc.es/grupo/docencia/automatas_itis/apuntes/capitulo11.pdf

Autómatas a pila. Recuperado de: https://www.youtube.com/watch?v=VDqII36S7U4

Lenguajes gramáticas y autómatas. Recuperado de:

http://di002.edv.uniovi.es/~cueva/publicaciones/AUTOMATA.pdf

Enrique Alfonseca Cubero, Manuel Alfonseca Cubero, Roberto Moriyón Salomón. Teoría

de autómatas y lenguajes formales. McGraw-Hill (2007).

Manuel Alfonseca, Justo Sancho, Miguel Martínez Orga. Teoría de lenguajes, gramáticas y

autómatas. Publicaciones R.A.E.C. (1997).

Carrasco, R., Calera, R., Forcada, M. (2016). Teoría De Lenguajes, Gramáticas Y

Autómatas Para Informáticos. Recuperado de

http://bibliotecavirtual.unad.edu.co:2051/login.aspx?direct=true&db=nlebk&AN=3

18032&lang=es&site=eds-live&ebv=EB&ppid=pp_Cover

Alfonseca C, E., Alfonseca M, M., Mariyón S, R. (2009). Teoría de autómatas y lenguajes

formales. Recuperado de:

http://bibliotecavirtual.unad.edu.co:2077/lib/unadsp/reader.action?docID=10498456

&ppg=6

https://www.youtube.com/watch?v=VDqII36S7U4

https://www.youtube.com/watch?v=eOynYG8Ibk0

Anda mungkin juga menyukai