Академический Документы
Профессиональный Документы
Культура Документы
AUTOR:
Duitama (ZCBOY)
Versión 2 – 2013.
CONTENIDO
4
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Tabla de contenido
LISTA DE FIGURAS................................................................................................................................ 8
LISTA DE TABLAS................................................................................................................................ 10
INTRODUCCIÓN ................................................................................................................................. 11
I. GENERALIDADES: ............................................................................................................ 16
I.III RELACIONES:........................................................................................................................ 20
5
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
LECCIÓN 24. FUNCIONES QUE SE APLICAN SOBRE LOS STACKS. (PILAS). ................................ 97
6
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
LECCIÓN 27. RELACIÓN ENTRE LOS AUTÓMATAS DE PILA Y LENGUAJES LIBRES DE CONTEXTO
................................................................................................................................................. 101
LECCIÓN 28. PROPIEDADES DE CLAUSURA DE LOS LENGUAJES LIBRES DE CONTEXTO .......... 104
LECCIÓN 29. ALGORITMOS DE DECISIÓN PARA LOS LENGUAJES LIBRES DE CONTEXTO. ....... 105
LECCIÓN 30. PROBLEMAS INDECIDIBLES PARA LENGUAJES LIBRES DE CONTEXTO. .............. 107
LECCIÓN 33. DIFERENCIAS ENTRE LAS COMPUTADORAS Y LAS MÁQUINAS DE TURING ..... 115
LECCIÓN 44. APLICACIONES DE LAS MAQUINAS DE ESTADOS. ALGORITMO DE TRELLIS. ..... 134
7
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
LISTA DE FIGURAS
Pág
8
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
9
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
LISTA DE TABLAS
Pág
10
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
INTRODUCCIÓN
Los contenidos que s e documentan y explican, llevan al lector a que asimile dos
temáticas básicas para esta área de conocimiento:
11
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Se presentan temáticas que son base para comprender los lenguajes de programación de
alto y bajo nivel y que propician la distinción entre lenguajes formales con reglas
sintácticas y semánticas rígidas, concretas y bien definidas, de los lenguajes
naturales como el inglés o el español, donde la sintaxis y la semántica no se pueden
controlar fácilmente. Los intentos de formalizar los lenguajes naturales, lleva a la
construcción de gramáticas, como una forma de describir estos lenguajes, utilizando
para ello reglas de producción para construir las frases del lenguaje. Se puede entonces
caracterizar un lenguaje mediante las reglas de una gramática adecuada.
Muchos autores referenciados en las fuentes bibliográficos y de los cuales se han tomado
análisis y ejercicios clave para poder comprender la temática, usan diferentes tipos de
nomenclaturas, fórmulas y símbolos, ya que como tal, los lenguajes, expresiones
regulares, funciones entre otros deben representarse matemáticamente. Para
estandarizar de manera sencilla, se presenta como Anexo a este libro, la lista de símbolos
usados y su significado.
Como complemento a una aplicabilidad que tienen las Teoría de lenguajes y autómatas,
se explica el funcionamiento del algoritmo de la modulación codificada de Trellis y la
Decodificación de Viterbi (algoritmos creados para el aumento de velocidad y para la
mejora de la veracidad) codificaciones de canal y de fuente en transmisión de datos como
técnicas de detección y corrección de errores. Este algoritmos se explica mediante los
diagramas de árbol y grafos para códigos convolucionales en los que se observa el paso
de las transiciones la entrada de datos y los cambios de estado.
Finalmente les he desarrollado un material en video que les apoya el desarrollo de los
ejercicios de este libro, unos tomados de otras fuentes documentales y otros de autoría
propia y que están a disposición para su descarga o visualización.
13
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Los siguientes son los símbolos usados en el presente libro y son la base para todos los
ejercicios y temáticas expuestas. Muchos autores difieren en el tipo de simbología usada,
pero se ha procurado consolidar y usar los más comunes acorde a su significado y
aplicabilidad.
∑ Sigma Alfabeto
L Letra Ele Lenguaje sobre un determinado alfabeto ∑
mayúscula
M Eme Máquina de estados Finitos
A A Autómata
K Ka Suele denotar el conjunto de estados de un autómata
F Efe Suele denotar el conjunto de estados finales de un autómata
S Ese Suele denotar el estado inicial de un autómata
Sigma Denota una función.
Ro Función de transición de un autómata
Omega Denota una cadena o palabra sobre un alfabeto
Upsilon Denota una cadena o palabra sobre un alfabeto
Alpha Otras cadenas. En algunos caso indica una Expresión Regular (ER)
Beta Otras cadenas. Muy usado en denotar cadenas en gramáticas.
Lambda Representa una cadena vacía
∆ Delta
Gamma Suele denotar el Alfabeto de una Pila (AP) ó (PDA)
Gammar Suele denotar un conjunto de cadenas de un PDA
G Ge Representa una gramática
Unión
Intersección
≤ Comparación Menor o igual que
≥ Comparación Mayor o igual que
< Comparación Menor que
14
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
15
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
I. GENERALIDADES:
Las nociones básicas de la Teoría de conjuntos, son necesarias para el inicio del estudio
de la Teoría de la Computación.
Dado dos conjuntos A y B, estos son exactamente iguales si contienen exactamente los
mismos elementos: A={1,2,3} y B ={2,3,1}, es válido afirmar y escribir que A=B. No se
tienen en cuenta las repeticiones de elementos ni tampoco el orden de estos.
Es relevate para este estudio diferenciar que a y {a} no son lo mismo a {a} .
16
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Teorema 2. Si A B y B C , entonces A C
Conjunto Vacío: Es llamado también nulo y es aquel que no tiene elementos. Se denota
como . El conjunto vacío es un subconjunto de todos los conjuntos; por lo cual es válido
denotar: A para todo conjunto A.
B= {x A | x cumple la propiedad P}
Sea P(x) una proposición sobre x. La notación {x | P(x)} se interpreta como: “el conjunto de
todos los x tales que P(x)”, denota el conjunto de todos los x para los cuales P(x) es una
proposición verdadera. Ejemplo 4:
En aritmética básica se pueden trabajar tres operaciones: sumar restar y multiplicar dos
números. E la teoría de conjuntos existen tres operaciones que son análogas a la suma,
resta y multiplicación.
17
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
A B {x | x a V x B}
A B {x | x a x B}
A B {x | x a x B}
18
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Básicamente consiste y son útiles para reemplazar expresiones pro otras equivalentes o
que tengan el mismo resultado.
Teorema 3.
A A
A
Si A B , entonces A B A
Si A B , entonces A B B
Idempotencia: A A A ; A A A
Conmutatividad: A B B A ; A B B A
Asociatividad: ( A B) C A ( B C )
( A B)C A ( B C )
Distributividad: A ( B C ) ( A B) ( A C )
A ( B C ) ( A B) ( A C )
Absorción: A ( A B) A ; A ( A B) A
Leyes de Morgan:
19
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
O de igual forma: 2 A {x | x A}
El conjunto vacío siempre forma parte de todo conjunto potencia. La notación 2 A recuerda
que el tamaño del conjunto potencia de A es 2 elevado a la potencia del tamaño de A, esto
es, | 2 A | = 2| A| .
Ejemplo 12: Sea U (El Universo de los números naturales), el complemento de los
números múltiplos de tres (3) {3,6,9,12,15,...}c = {1,2,4,5,7,8,10,11,13,14, ….}.
I.III RELACIONES:
Ejemplo 13: Sea el conjunto A = {a, b, c}. El grafo de la figura (1) representa una relación
binaria definida en A, puesto que los pares (c,a), (b,a) (b,b) constituyen un subconjunto de
A x A.
20
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Fuente:<El autor>
Ejemplo 14: La relación “≤” contiene los pares de los números naturales tales que el primer
componente es menor o igual al segundo, esto es,
≤ = {(1,1),(1,2),(1,3),(1,4),(2,3)…}
Téngase en cuenta que se llama par ordenado a una pareja de objetos escritos entre
paréntesis y separados por comas.
Por ejemplo, (a,b) es un par ordenado y a,b son los componentes del par ordenado. No es lo
mismo (ya que el orden si influye), lo siguiente:
(a, b) {a, b}
(a, b) (b, a)
El orden si influye, sin embargo, no todos los subconjuntos del producto cartesiano,
pueden ser aceptados como la relación de la condición que exprese. Algunas
características de estas relaciones son:
Inverso de una Relación: Se llama inverso de una relación R, denotado por R1 , a
aquella en donde se invierte el orden de los pares ordenados, esto es:
21
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
R1 {( y, x) | ( x, y) R}
Propiedad Condición
Reflexiva R es reflexiva si a A : aRa
Antireflexiva R es antireflexiva si a A : (aRa) ó aRa
Simétrica R es simétrica si a, b A : (aRb) (bRa)
Antisimétrica R es antisimétrica si a, b A : (aRb) (bRa)
Transitiva R es transitiva si a, b, c A : (aRb) (bRc) (aRc)
Fuente: El Autor
Fuente:<El autor>
22
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Fuente:<El autor>
Simétrica: Cada relación de ida tiene otra de vuelta. Ejemplo 18 Si A={1,2,3,4} y R es tal
que R = {(-1, -1), (-1, -3), (2, 2), (2, 4), (-3, -1), (-3, -3), (4, 2), (4, 4)}.
Fuente:<El autor>
Antisimétrica: Ninguna flecha de ida tiene otra de vuelta, salvo en el caso de los bucles,
que están permitidos. Ejemplo 19 Si A = {1, 2, 3, 4} y R es la relación “ser menor o igual
que”, se tiene: R = {(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4), (1, 1), (2, 2), (3, 3), (4, 4)}
Fuente:<El autor>
Transitiva: Si existen dos relaciones o flechas consecutivas, debe haber otra que una el
primer elemento con el tercero. Ejemplo 20 Si A = {1, 2, 3, 4} y R es la relación “ser mayor
que”, se tiene: R = {(3, 2),(2, 1), (3, 1), (4, 1), (4, 2), (4, 3)}
23
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Fuente:<El autor>
Otra forma de interpretar esta relación dice que siempre que contiene los pares (x,y) y (y,
z) también contiene (x, z). Por ejemplo, la relación {(1,2), (2,3), (1,1), (1,3)} es transitiva,
pero {(2,3), (1,2), (1,1)} no lo es.
Fuente:<El autor>
I.IV FUNCIONES:
Las funciones son un caso particular de las relaciones. Simplemente son asociaciones,
combinaciones o relaciones en las que no hay dos pares ordenados que tengan el mismo
primer componente. Es decir, los pares ordenados asocian a cada primer componente un
único segundo componente. Por ejemplo, la relación {(1,2), (2,3), (1,3)} no es una función,
pero {(1,2), (2,3), (3,3)} sí lo es.
En conjuntos, la notación habitual suele ser: f(1) = 2 que significa que a partir de la
entrada 1 se obtiene la salida 2. (se usa la f como indicador de la función). En Autómatas.
La función suele denotarse con el símbolo
24
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Para la teoría de autómatas. Las funciones son vistas desde la perspectiva de lenguajes
aceptados, por eso la temática que aborda as funciones en conjuntos como las funciones
totales, inyectivas y sobreyectivas, pueden referenciarse en:
Se da inicio a un concepto: Máquinas secuenciales, que hacen parte también del estudio
de la teoría de autómatas y que tienen sus inicios en el campo de la Ingeniería
Electrónica. El fin de los modelos no es la de describir detalles de los componentes de
hardware de un computador, sino de determinar características poco visibles o
intangibles de estas máquinas como por ejemplo capacidad de proceso, memoria,
procesamiento de datos e información. Es por ello que se han dividido en diferentes áreas
de conocimiento este tipo de estudio como por ejemplo: Arquitectura de computadores,
Sistemas de información, sistemas Distribuidos lógica Matemática, Ensamble de
máquinas, entre otros.
Los Lenguajes más sencillos son los considerados lenguajes regulares, es decir, los que
se pueden generar a partir de lenguajes de un elemento con la aplicación de ciertas
operaciones estándar realizadas un número finito de veces.
Estos son pues los lenguajes que pueden reconocer los dispositivos llamados Autómatas
finitos (AF) que son máquinas de cómputo con memoria muy restringida. En esta
unidad se considera como segundo aspecto la idea de que un lenguaje no sea regular,
además de proporcionar un modelo sencillo de computación que se puede
generalizar en las unidades siguientes.
sencillos con sus respuestas y que permiten determinar la utilidad de los lenguajes
regulares en aplicaciones del mundo real.
EPOCA PRECURSORES
1845 -1918 Iniciada por Godel, Church, Post, Turing y Kleene, tiene sus raíces en la
Lógica Matemática. Ya se había inventado la Teoría de Conjuntos
1
<NAVARRETE,Isabel. Teoría de Autómatas y lenguajes Formales. Departamento Ingeniería. Universidad de Murcia. P
133. Sept 2008>
26
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Turing
>Calculan los algoritmos A y B la misma función? (Problema de la
equivalencia)
>Parará el algoritmo A para una de sus entradas? (Problema de la parada)
> Parará el algoritmo A para todas sus entradas? (Problema de la
totalidad)
> Parará el algoritmo A la función f? (Problema de la verificación)
1954 - 1969 El matemático norteamericano Shanon (que luego se haría famoso por su
Teoría de la Información) vino a establecer las bases para la aplicación de
la Lógica Matemática a los circuitos combinatorios y posteriormente
Huffman en 1954 los amplio a circuitos secuenciales y utiliza conceptos
Máquinas
como estado de un autómata y tabla de transición. A lo largo de las
secuenciales y
décadas siguientes, las ideas de Shanon se desarrollaron
Autómatas finitos.
considerablemente, dando lugar a la formalización de una Teoría de las
Maquinas Secuenciales y de los Autómatas Finitos (1956). Otros trabajos
importantes sobre maquinas secuenciales son debidos a Mealy (1955) y
Moore.
1956 en adelante Noam Chomsky propone en 1956 tres modelos para la descripción de
lenguajes, que son la base de su futura jerarquía de los tipos de lenguajes
Noam Chomsky (1959), que ayudo también en el desarrollo de los lenguajes de
propone varios programación. Chomsky estableció una clasificacion de gramáticas de
modelos para acuerdo con el formato de sus producciones y distinguió cuatro clases
clasificar: fundamentales de lenguajes y relaciones de inclusión entre ellas.
Gramáticas y
Lenguajes formales.
Fuente: El Autor
27
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Ejemplo: Sea A = {0,1} indica el Alfabeto A compuesto por los símbolos 0,1
No hay que confundir los símbolos del alfabeto B con los símbolos del lenguaje (o más
precisamente meta-lenguaje) que usamos para expresarnos todos los días. Son dos cosas
totalmente distintas. Nosotros para comunicarnos usamos un lenguaje que tiene unos símbolos
que son las letras del alfabeto latino, los números, las letras del alfabeto griego, y una serie de
símbolos especiales propios del lenguaje matemático (el meta-lenguaje). Con este lenguaje
también definimos los conceptos de alfabeto y símbolo.
Ejemplo 21: Si A = {0,1} entonces 0111 es una palabra sobre este alfabeto.
∑ que contiene.
Definición4. La palabra vacía es la palabra de longitud cero. Es la misma para todos los
alfabetos y se denota como
28
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Definición5. Al conjunto de todas las palabras o cadenas sobre el alfabeto ∑ en las que
se excluya la cadena vacía se denota como:
Las operaciones fundamentales que se derivan del tratamiento del conjunto , son las
*
de concatenación:
Ejemplo 22 Para definir la concatenación: Dada las siguientes cadenas , formadas desde
el alfabeto ∑ :
29
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Se notan los siguiente ejemplos de algunos lenguajes (sin definir su jerarquía que se verá
en la siguiente lección) sobre el alfabeto ∑
L2 {aibi | i 0,1,2...} Lenguaje dos compuesto por las palabras formadas de una
sucesión de símbolos a, seguida de la misma cantidad de símbolos b.
L3 {1 | *} Lenguaje tres compuesto por las palabras formadas con símbolos
del alfabeto ∑ y que consisten en dos palabras iguales, separadas por la misma palabra
pero escrita en orden inverso.
L1L2 {12 | 1 L1 , 2 L2 }
Asociativa: L1 ( L2 L3 ) ( L1L2 ) L3
L0 {}
Li 1 Li L
30
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
L L* si L
L L* {}si L
Los (LP) se rigen por reglas de sintaxis y semántica más complejas y definidas y que
finalmente son manejadas por los computadores. En los lenguajes naturales (LN), estos
no están tan definidos ni delimitados, ya que están controlados por reglas gramaticales
que evolucionan y derivan nuevos lenguajes.
Gracias a las estructuras definidas de los lenguajes de programación (LP) (las reglas
gramaticales (sintaxicas y semánticas) han posibilitados la construcción de traductores
automáticos para estos lenguajes. Algunas definiciones que contextualizan estas
temáticas referencian a los Compiladores como software que traduce un programa
escrito en un determinado lenguaje de programación a otro lenguaje de programación,
con el objeto de generar u programa equivalente que una máquina computacional pueda
interpretar para podérselo mostrar al usuario.
2
Tomado de https://es.wikipedia.org/wiki/Int%C3%A9rprete_%28inform%C3%A1tica%29 con acceso Julio
de 2013
31
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Fuente:<El autor>
32
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Fuente:<El autor>
A → bC
A→b
A→
dónde: A,C VN y b VT
A → Cb
A→b
A→
Para cada Gramática lineal por la derecha existe una Gramática lineal izquierda que
genera el mismo lenguaje y viceversa.
Los Lenguajes Regulares son lenguajes formales que tienen estas características:
33
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Puede ser descrito mediante una expresión regular (expresar de forma compacta
cómo son todas las cadenas de símbolos que le pertenecen).
Puede ser generado mediante una gramática regular (obtener todas las cadenas
de símbolos que le pertenecen).
A→
Los lenguajes generados por este tipo de gramáticas se llaman lenguajes libres del
contexto y la clase es L2, que incluyen a los Lenguajes Regulares. Por ejemplo, la mayoría
de los lenguajes de programación son Lenguajes Libres de Contexto.
A →
Los lenguajes generados por las gramáticas de tipo 1 se llaman lenguajes sensibles al
Contexto y su clase es L1:
TIPO 0: (Gramáticas con estructura de frase) Son las gramáticas más generales, que por
ello también se llaman gramáticas sin restricciones. Esto quiere decir que las
producciones pueden ser de cualquier tipo permitido, es decir, de la forma:
con (V* . VN . V*) y en la que no puede ser vacío
Los lenguajes generados por estas gramáticas son los lenguajes con estructura de frase,
que se agrupan en la clase L0: Estos lenguajes también se conocen en el campo de la
Teoría de la Compatibilidad como lenguajes recursivamente enumerarles.
34
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
La siguiente tabla muestra la asociación de las gramáticas con el lenguaje que genera y el
tipo de máquina abstracta que la trabaja:
Fuente:<El autor>
Cuanto menor es el tipo, mayor es el poder expresivo del lenguaje generado y más
complejidad tiene su tratamiento por parte de una máquina.
Esto es: L3 L2 L1 L0
Un lenguaje se dice que es de tipo i (i= 0;1;2;3) si y solo si es generado por una
gramática de tipo i. La clase o familia de lenguajes de tipo i se denota por Li.
LECCIÓN 5. AUTÓMATA
La palabra autómata evoca algo que pretende imitar las funciones propias de los seres
vivos, especialmente relacionadas con el movimiento, por ejemplo el típico robot
antropomorfo. Un ejemplo de una “maquina real” que automatiza un proceso puede ser
una máquina empacadora de algún producto que se fabrique en serie y con una serie de
instrucciones, pasos y características definidas e iguales para cada salida (producto final).
35
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Las maquinas que se estudiarán son abstracciones maten áticas que capturan solamente
el aspecto referente a las secuencias de eventos que ocurren, sin tomar en cuenta ni la
forma de la maquina ni sus dimensiones (aspectos de hardware por referir una analogía).
En esta parte estudiaremos las maquinas abstractas más simples, los autómatas finitos,
las cuales están en relación con los lenguajes regulares
Los estados son la base de un diseño de los modelos que estamos estudiando, pues
“recuerdan” las situaciones básicas por las que pasa el proceso.
Las condiciones asociadas a los estados deben ser excluyentes, esto es, no
deben verificarse varias simultáneamente.
36
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Fuente:<El autor>
La cabeza lectora se coloca en los segmentos de cinta que contienen los caracteres que
componen la palabra de entrada, y al colocarse sobre un símbolo lo “lee” y manda esta
37
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
La “aguja” del control puede estar cambiando de posición, (de un estado a otro) y hay
algunas posiciones llamadas finales (como la indicada por un punto, q3) que son
consideradas especiales, porque permiten determinar si una palabra es aceptada o
rechazada.
Otra forma de describir la sintaxis de los lenguajes es usando gramáticas y sus reglas de
producción. El objetivo de caracterizar lenguajes es proporcionar una forma concisa y
relativamente sencilla (aunque menos intuitiva) para describir los lenguajes regulares,
exponiendo detalles de su estructura que no quedan tan claros en las otras
caracterizaciones.
“Los símbolos y notaciones matemáticas usados, serán los que durante todo el desarrollo del
contenido se aplicarán para describir matemáticamente estas máquinas. Otros autores usan otra
38
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
simbología, que solo difiere en la forma mas no en la interpretación de las definiciones formales de
estas máquinas. Se ha estandarizado las simbología más sencilla para efectos de didáctica e
interpretación”
∑ es el alfabeto de entrada.
Tabla de transiciones.
Diagrama de Moore.
Tabla de transiciones: Consiste en una tabla, con tantas filas como estados y tantas
columnas como entradas. El estado inicial en la columna izquierda está indicado con una
flecha. El estado final en la columna izquierda está indicado con un numeral. (No
confundir esto con la estrella de kleene que se verá más adelante en la lección de
Expresiones Regulares). Ejemplo 24 Se puede representar el autómata finito dado por:
Donde la función δ : {q0, q1, q2, q3 } × {0, 1} → {q0, q1, q2, q3} viene dada por:
δ(q0, 0) = q0 δ(q0, 1) = q1
δ(q1, 0) = q0 δ(q1, 1) = q2
δ(q2, 0) = q3 δ(q2, 1) = q1
δ(q3, 0) = q3 δ(q3, 1) = q2
39
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Diagramas de Moore: Los diagramas de Moore son otra forma de representar las
funciones de transición y salida de un autómata. El diagrama de Moore es un grafo
orientado en el que cada nodo corresponde a un estado. Para el ejemplo 24, el diagrama
de Moore equivalente estaría definido así:
Los estados son el único medio de que disponen los AF para recordar los eventos que
ocurren (por ejemplo, que caracteres se han leído hasta el momento); esto quiere decir
que son máquinas de memoria limitada. En última instancia, las computadoras digitales
son máquinas de memoria limitada, aunque la cantidad de estados posibles de su
memoria podría ser enorme.
41
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Otras apreciaciones de estos AFD lo definen como otro mecanismo para describir
lenguajes. En vez de pensar en generar las cadenas (como las ERs), un AFD describe un
lenguaje mediante reconocer las cadenas del lenguaje, y ninguna otra.
1. se coloca en la cinta de entrada, con un símbolo en cada celda. (en este caso es
aaabab )
Ciclo de ejecución básico del autómata: Como cualquier computador, una vez se ha
inicializado, comienza la ejecución desde la palabra de entrada .
2. se calcula el estado siguiente a partir del estado actual y del símbolo actual según la
función de transición, esto es, (estado actual; símbolo actual) = estado siguiente
donde la función de transición está dada por: : {q0, q1, q2, q3 } × {x, z} → {q0, q1, q2, q3}
→ q0 → { q3}
42
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Figura 13: Tabla de transición para un Autómata Finito generado con software simulador VAS.
El diagrama de transición de un AFD tiene por cada nodo un solo arco etiquetado con
cada uno de los símbolos del alfabeto.
el diagrama de transición de un AFD tiene por cada nodo un sólo arco etiquetado
con cada uno de los símbolos del alfabeto.
33
VAS. Visual Autómata Simulator. Disponible en internet <http://www.vas.org>
43
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
la cantidad de estados finales puede ser cualquiera, inclusive cero (para algunos
modelos), hasta un máximo de |K| (la cantidad de estados).
Entiéndase por configuración un par (q, ) donde q es un estado y una palabra. En este
orden q será el estado en el que se encuentra el autómata y lo que queda por leer en
un momento dado.
Esto se explica indicando que la configuración inicial indica que estamos en el estado
inicial y nos queda por leer toda la palabra .
Una extensión a los autómatas finitos deterministas es la de permitir que de cada nodo del
diagrama de estados salga un número de flechas mayor o menor que Así, se puede
permitir que falte la flecha correspondiente a alguno de los símbolos del alfabeto, o bien
que haya varias flechas que salgan de un solo nodo con la misma etiqueta. Inclusive se
permite que las transiciones tengan como etiqueta palabras de varias letras o hasta la
44
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Dado que los AFND tienen menos restricciones que los AFD, resulta que los AFD son un
caso particular de los AFND, por lo que todo AFD es de hecho un AFND.
Recordemos que para un AFD dado el estado actual y el siguiente caracter, el AFD pasa
exactamente a un siguiente estado. Por eso se lo llama determinístico. Una versión en
principio más potente es un AFND, donde frente a un estado actual y un siguiente
caracter, es posible tener cero, uno o más estados siguientes.
: K x ∑ → (K)
Ejemplo 25 Si se tiene (q,a) = {q1, q2, …. , qm) lo que indica que estando en un estado
actual q y un símbolo de entrada a, el estado siguiente puede ser cualquier estado entre
q1 y qm.
Ejemplo 26 Puede darse el caso que (q,a) = Ø lo que indica que el estado siguiente no
está definido.
45
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
= {(q1,a,q2),(q1,a,q3),(q2,b,q4),(q2,b,q2),(q3,a,q3),(q3,b,q4),(q4,a,q4)}
: K x (∑ U { }) → (K)
46
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Los AF reconocen cierto tipo de lenguajes, pero esto depende de la configuración del
autómata. Esta configuración viene dada por el instante del autómata en un momento
dado y la porción de cadena de entrada que le queda por leer (no la cadena completa).
47
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Por lo que se concluye: que un AFD reconoce o acepta una palabra si se cumplen las
siguientes condiciones:
2. al terminarse la palabra, el estado al que llega es uno de los estados finales del
autómata (los que tienen doble círculo en los diagramas, o que son parte del conjunto F
en la representación formal).
A diferencia del caso de AFDs, dada una cadena x, es posible llegar a varios estados
distintos (o a ninguno) luego de haberla consumido. La cadena se declara aceptada si
alguno de los estados a los que se llega es final.
Intuitivamente, un AFND acepta una palabra de entrada siempre que sea posible
comenzar por el estado inicial y que exista una secuencia de transiciones que nos lleven a
consumir la palabra y acabe el autómata en un estado final. Puede que tengamos otras
secuencias de transiciones que no acaben en estado final, pero basta que exista una que
acabe en estado final para que la palabra sea aceptada.
48
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
L = { {a,b}* │ = abia, i ≥ 0 }
Fuente:<El autor>
49
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Los Lenguajes regulares son los más simples y restringidos dentro de la jerarquía de
Chomsky. Estos lenguajes pueden además ser descritos mediante dos representaciones
que veremos: las Expresiones Regulares y las Gramáticas Regulares que serán los temas
a tratar en las siguientes lecciones. También son descritos mediante AFD y AFND.
L es finito;
L es la unión o la concatenación de otros lenguajes regulares R1 y R2,
L = R1 U R2 o L = R1R2 respectivamente
Una expresión regular (ER) es una notación normalizada para representar lenguajes
regulares, es decir, lenguajes generados por gramáticas de tipo 3. Las expresiones
regulares permiten describir con exactitud y sencillez cualquier lenguaje regular. Para
definir una ER se pueden utilizar todos los símbolos del alfabeto ∑ y, además y . Los
operadores que también se pueden utilizar son:
+ representa la unión.
representa la concatenación (este símbolo no se suele escribir).
* representa el cierre de Kleene
() modifican las propiedades de los demás operadores.
50
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Una ER también se define bajo los siguientes criterios: (Se muestran también los
lenguajes que describen estas ER)
L + = L U L
L = L L
* i 0 i
▪
El orden de prioridad de los operadores es, de mayor a menor: * , , +
Este orden puede alterarse mediante paréntesis, de forma análoga a como se hace con
las expresiones aritméticas.
52
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Hasta ahora, la relación entre los autómatas finitos y las expresiones regulares se ha
tratado de una manera intuitiva. Ahora formalizaremos dicha relación probando que para
cualquier expresión regular exista un autómata finito equivalente. Lo que se establece
ahora con un teorema fundamental en el estudio de los Autómatas:
Hasta ahora hemos confirmado como las, ERs, AFDs y AFNDs son mecanismos
equivalentes para denotar los lenguajes regulares.
Para ello se usan las gráficas de transición (GT). Estas últimas son esencialmente
AFND en que las etiquetas de las flechas tienen expresiones regulares, en lugar de
palabras. Entonces se definen las gráficas de transición (GT) así: son por lo tanto
quíntuplos
M = (∑, K, , q 1 , F) donde K x ER x K
En este ejemplo en particular se evidencia que se debe aceptar palabras que tienen
primero una sucesión de a‟s, luego repeticiones de ab, y finalmente repeticiones de b‟s.
({q0, q1}, {a, b}, {(q0, a, q0), (q0, (ab)*, q1), (q1, b, q1)}, q0, {q1})
Los AFN son un subconjunto propio de las GT, puesto que las palabras en las etiquetas
de un AFN pueden ser vistas como expresiones regulares que se representan a sí
mismas.
54
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Ejemplo 32: Tomado de:4 Dada la ER= (a + ba)* bb, obtener el AFN que acepta el
lenguaje de dicha ER.
4
<BRENA,R; Autómatas y lenguajes, un enfoque de diseño. 2003. Monterey. 214p>
55
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
El procedimiento aplica los siguientes pasos: Para ello se ilustra el siguiente ejemplo:
Esta transformación tiene por objeto que haya un estado inicial al que no llegue ninguna
transición, y un solo estado final, del que no salga ninguna transición. Esta condición se
requiere para llevar a cabo el siguiente paso. Hay muchos autómatas que ya cumplen
estas condiciones sin necesidad de añadir un nuevo estado inicial o un nuevo estado final.
La figura 24 muestra estas acciones realizadas (se adiciona un nuevo estado inicial y
final) para este primer paso para el ejercicio 33 propuesto.
5
Bis(4).
56
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
PASO 2: Eliminación de nodos intermedios. Eliminamos primero el nodo q1. Para ello,
consideramos que trayectorias o “rutas” pasan por el nodo a eliminar. Por ejemplo, en la
figura 23 vemos solamente una trayectoria que pasa por q1, la cual va de q0 a f.
Ahora nos proponemos eliminar el nodo q1, pero sin modificar “lo que se gasta” para
pasar de q0 a f. Es fácil ver que para pasar de q0 a f se gasta primero una a y luego algún
número de repeticiones de a o b (para llegar de q1 a f no se gasta nada). Esto
corresponde a la ER a(a + b)*, que sería la etiqueta de la nueva “ruta directa” de q0 a f,
sin pasar, por q1, como se evidencia en a figura 25.
57
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
58
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
K = P(K)
q0 = {q0}
= (∑,a) = * (∑,a)
El ejemplo de la figura 29 muestra
59
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
De igual forma y a manera inversa para el teorema: dado un autómata finito determinístico
AFD M = (∑, K, , q0, F). se puede construir uno no-determinista:
(q0,a) = { (q0,q)}: en el que en cada situación solo hay un camino posible que es el que
Para los autómatas de la figura 28; Reconocen el lenguaje formado por todas las cadenas
que empiezan por 1 excepto las terminadas en dos ceros consecutivas, Además se debe
incluir la cadena vacía. Ambos autómatas reconocen el mismo lenguaje.
Ejemplo 35: Tomado de: 6El siguiente ejemplo muestra cómo puede darse el caso en el que
varios AF distintos acepten un mismo lenguaje.
La figura 30 muestra los autómatas (a) y (b) que aceptan el lenguaje a*. Lo que se indaga
ahora es si estos son equivalentes. Lo que se concluye también que para comprobar la
equivalencia se debe realizar una demostración de igualdad de lenguajes (operación que
suele ser compleja si son lenguajes infinitos).
6
Bis (4)
60
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Teorema 8: Teorema de Moore: Existe un algoritmo para decidir si dos autómatas finitos
son equivalentes o no. Este algoritmo consiste en la construcción de un árbol de
comparación de autómatas. Este árbol permite convertir el problema de la comparación
de los lenguajes aceptados en un problema de comparación de estados de los autómatas.
Definición 11: dos estados q y q´ son compatibles si ambos son finales o ninguno de los
dos es final. En caso contrario, son estados incompatibles.
El único problema con esta idea estriba en que hay que garantizar que sean cubiertas
todas las posibles cadenas de caracteres w, las cuales son infinitas en general. Por ello
se pensó en explorar todas las posibles combinaciones de estados mediante un árbol.
Dicho árbol de comparación se construye de la manera siguiente, para dos autómatas:7
7
Bis (4)
61
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
1. Inicialmente la raíz del árbol es el par ordenado (s, s´) que contiene los estados
iniciales de M y M´ respectivamente.
2. Si en el árbol hay un par (r, r´), para cada caracter en ∑ se añaden como hijos
suyos los pares (r , r´ ) donde r = (r , ) , r´ (r´, ) en caso de que no
estén.
De manera general: El único problema con esta definición es que, para verificar si dos
estados dados p y q (para el ejercicio sería q1 y q6) son equivalentes, habría que examinar,
63
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Para saber si dos estados q1 y q6 son equivalentes, se les pone a ambos como estado
inicial de sendos autómatas M1 y M2 , y se procede a comparar dichos autómatas. Si éstos
últimos son equivalentes, quiere decir que los estados q1 y q6 son equivalentes.
Una vez que se sabe que dos estados son equivalentes, se puede pensar en eliminar uno
de ellos, para evitar redundancias y hacer más eficiente a AFD. Sin embargo, la
eliminación de un estado en el AFD plantea el problema de qué hacer con las flechas que
conectan al estado eliminado con el resto del autómata. Esta cuestión se resuelve con los
siguientes criterios:
Entrada: (el autómata inicial sin minimizar) : Un AFD M = (∑, K, , q0, F) donde
∑ = {0,1}, F = {q2} s = {q0} y K = {q0, q 1 , q 2 ,q3, q4, q5, q6, q7 }.
Salida: (un AFD mínimo como resultado): M = (∑, K”, ”, q0 “, F”) (nótese que el
alfabeto no cambia)
65
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Vamos a definir la noción de estados distinguibles, que intuitivamente quiere decir que si
dos estados son distinguibles, ya no pueden ser equivalentes. La definición es inductiva:
Los estados p y q son distinguibles si son incompatibles (es decir, uno es final y el otro no
final). Esta es la base de la inducción. Se puede verificar el ejercicio.
4. CONSTRUCCIÓN DE TABLA:
Construir tabla T con filas desde q1 hasta qn y columnas desde q0 hasta qn-1
Obsérvese que en la tabla Figura 36 se omite la diagonal principal, pues no tiene caso
confrontar cada estado contra sí mismo.
66
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Empezamos en la parte inferior (eje horizontal) de menor a mayor desde q0 hasta qn-1
Luego el eje vertical de arriba hacia abajo: q1 hasta qn
Se aprecian signos “ ” en las celdas, que se obtienen directamente del hecho de que
son pares de estados incompatibles – por lo tanto distinguibles. En otras palabras lo que
hemos hecho es: marcar (par (qi , qj)) donde un estado del par es final y el otro no.
Una manera de organizar el trabajo de verificar qué pares de estados de un AFD son
distinguibles, consiste en construir una tabla en que los renglones y las columnas son los
nombres de los estados, y en cada cruce de renglón con columna se indica con una
cuando son distinguibles.
Resultado final: Al final quedan sin marcar PAR (q3,q0) y PAR (q6,q1) y por lo tanto:
q0 q3 y q1 q6
Todo el proceso de minimización además de otras características las puede visualizar en:
Los lenguajes independientes del contexto que también se conocen con el nombre de
gramáticas de contexto libre son un método recursivo sencillo de especificación de reglas
gramaticales con las que se pueden generar cadenas de un lenguaje.
Es factible producir de esta manera todos los lenguajes regulares, además de que existen
ejemplos sencillos de gramáticas de contexto libre que generan lenguajes no regulares.
Las reglas gramaticales de este tipo permiten que la sintaxis tenga variedad y
refinamientos mayores que los realizados con lenguajes regulares, en gran medida
sirven para especificar la sintaxis de lenguajes de alto nivel y otros lenguajes
formales.
Hasta ahora, se han visto dos formas de definir lenguajes: a través de autómatas finitos, y
por medio de expresiones regulares. Ahora veremos otra forma, usando el concepto de gramáticas.
68
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Las características y notación específica de gramática fue dada por Chomsky,N, quién basó esta
descripción en las denominadas “Reglas Gramaticales”.
Definición 12: Reglas Gramaticales: Son específicamente, reglas de reemplazo. Una regla es
un expresión de la forma en donde tanto como son cadenas de símbolos en donde
pueden aparecer tanto elementos del alfabeto ∑ como unos nuevos símbolos, llamados variables.
Los símbolos que no son variables son constantes. Por ejemplo una regla gramatical es dada como:
X → aX . Otro ejemplo: Aplicar la regla a la palabra da como resultado (operación
de reemplazo) . Otro ejemplo: Si se tienen los símbolos bbXa y se le aplica la regla X → aX
da como resultado la nueva cadena bbaXa.
V = Es el alfabeto de variables
∑ = Es el alfabeto de constantes
A → aB o bien A → a
A → Ba o bien A → a
1. S → 0A 1. S → S10
2. A → 10A 2. S → 0
3. A →
Se pueden derivar muchas otras palabras como bababa L(G) y que pertenecen también
al lenguaje generado por la gramática. Formalmente esta gramática se representaría
como:
({S, A,B}, {a, b}, {(S, aA), (S, bA), (A, aB), (A, bB), (A, a), (B, aA), (B, bA)}, S)
70
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Una cadena ∑ (esto es, formada exclusivamente por constantes) es derivable a partir
de una gramática G si existe una secuencia de pasos de derivación:
S 1 2…
Definición 14: El lenguaje generado por una gramática G, L(G), es igual al conjunto de
las palabras derivables a partir de su símbolo inicial. Es decir:
L (G) = { ∑* │ S * }
Teorema 10: Si L es un lenguaje generado por una gramática regular, entonces existe un
autómata finito determinístico que lo reconoce.
Teorema 11: La clase de los lenguajes generados por alguna gramática regular es
exactamente la de los lenguajes regulares.
Para el caso de las reglas A → b, se tienen transiciones (A, b,Z), donde Z es un nuevo
estado para el que no hay un no terminal asociado; Z es el ´único estado final del
autómata.
Ejemplo 39: Obtener un autómata finito para la gramática regular G1 siguiente: (V, ∑, R, S).
Se denota la gramática en un formato comprimido: (en fila):
S → aA │ S → bA │ A → aB │ A → bB │A → a │ B → aA │ B →bA
Es lo mismo que:
S → aA │ bA │, A → aB │ bB │ a │ , B → aA │ bA
71
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
En la Figura 38, haciendo uso del simulador JFLAP8 , que dentro de sus opciones nos
permite introducir una gramática y generar el AF, se muestra el resultado de la conversión
automática de G → AF (de Gramática a Autómata Finito).
8
JFLAP Version 7.0 RELEASED August 28, 2009. Last update May 15, 2011. Disponible en internet.
<http://www.jflap.org/>
72
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
q0 = [S]
F = {[ ]}
Si a Ʃ y ( *V ) , entonces ([ a ], a) [ ]
Pasar a no-finales los estados finales originales y unir estos mediante una
transición nula con el nuevo estado final.
73
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Ejemplo 41: Dado el AFD de la Figura 41, determinar las reglas de producción que
determinan la gramática regular.
74
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
75
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Los lenguajes de tipo 0 incluyen a los de tipo 1, estos a los de tipo 2, etc.
Las GLC tienen reglas menos rígidas que las gramáticas regulares. Así toda gramática
regular es GLC pero no viceversa
Algunos autores “ Brena R.” 9definen: Al proceso de aplicar una regla se le conoce como
“paso de derivación”, y se denota usando una flecha de dirección: . Una secuencia de
pasos de derivación a partir de una variable especial de la gramática llamada “símbolo
inicial” se llama simplemente “derivación”.
(V, ∑, R, S) en donde:
9
Bis (6)
76
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
V = Es el alfabeto de variables
S ...
L { * | S ... }
Las GLC tienen la propiedad de que las derivaciones pueden ser representadas en forma
de árbol ramificado o arboles de derivación, o también arboles de compilación por usarse
extensivamente en los compiladores y son de vital importancia para la teoría de los
compiladores de los lenguajes de programación.
Se puede considerar que un árbol de derivación es más abstracto que una derivación
“lineal” es decir, una sucesión S ... en el sentido de que para un solo árbol de
derivación puede haber varias derivaciones lineales, según el orden en que se decida
“expandir” los no terminales.
Definición15: Sea: G = (V, ∑, R, S) una GLC. Entonces el árbol de derivación cumple las
siguientes propiedades:
77
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
3. La etiqueta de los nodos que no son hojas debe estar en V, y las de las hojas en:
∑U
4. Si un nodo n tiene etiqueta A, y los nodos n1, …., nm son sus hijos (de izquierda a
derecha), con etiquetas respectivamente A1, .., Am, entonces A → A1, …., Am R.
Ejemplo 42: Para explicar como un árbol de derivación ilustra diferentes derivaciones para
una misma cadena, es típico ejemplificar el caso de describir las secuencias de unos
paréntesis bien balanceados, en el que se presenta el caso ideal que nunca se han
cerrado más paréntesis de los que se han abierto y en el que al final los números
coinciden.
S → Ss
S→
78
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
El árbol de derivación para este ejemplo estaría dado en la figura 42 (las distintas órdenes
de derivación no son los únicos responsables de que existan distintas formas de derivar
una misma cadena. Es posible que una misma cadena tenga dos árboles de derivación
distintos.)
Figura 42: Árbol de derivación para una secuencia de paréntesis bien balanceados.
Analizamos la cadena o palabra = aabbaa que genera un árbol y que puede provenir
de varias cadenas de derivaciones distintas así:
Derivación por la izquierda: Cuando en cada paso siempre se sustituye primero la primera
variable (más a la izquierda) de la palabra que tenemos.
Derivación por la derecha. Cuando en cada paso siempre se sustituye primero la última
variable (más a la derecha) de la palabra que tenemos
79
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Las derivaciones por la izquierda son mostradas en la figura 45. Fueron generadas con
software simulador JFLAP.
80
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Se concluye: En efecto, hay GLC en las cuales para ciertas palabras hay más de un árbol
de derivación.
Definición 17: Una GLC G es ambigua si existen dos árboles de derivación distintos para
G que generan una misma cadena L(G).
Definición 18: Todo lenguaje Regular es Libre del Contexto. El conjunto de los lenguajes
LC incluye al de los regulares.
10
MORAL, S. Modelos de Computación. p. 92
81
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Ejemplo 45: Dada la siguiente GLC para las expresiones aritméticas de las variables:
Cómo eliminar la ambigüedad de una GLC: Consiste en introducir nuevos estados no-
terminales de modo que se eliminen los árboles de derivación no deseados. Para el
anterior ejemplo es típica la solución introduciendo variables (T) y factores (F). La
gramática resultante es:
E → E + T │T │ ; T→T * F │ F │; F → (E) │ x │ y
Con esta nueva GLC, el árbol de derivación de la figura 46 (a) se elimina, quedando
finalmente una adaptación del árbol de la figura 46 (b) a la GLC con términos y factores.
11
(Bis)4
82
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Es suficiente que haya una palabra con dos árboles de derivación distintos para que la
gramática sea ambigua. Esto quiere decir que existe otra gramática de tipo 2 no ambigua
y que genera el mismo lenguaje. El lenguaje generado es {a 23i : i 0} y otra
gramática no ambigua que también genera este lenguaje es:
12
MORAL, S; Modelos de computación. 130 p.
83
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Se trata de “modificar las reglas de la gramática” para que cumplan ciertas propiedades o
por simple estandarización o facilidad de implementación computacional; pero sin
modificar el lenguaje aceptado.
S x
El algoritmo para eliminar los símbolos y producciones inútiles consta de dos pasos
fundamentales:
1. Eliminar las variables desde las que no se puede llegar a una palabra de ∑ y las
producciones en las que aparezcan.
2. Eliminar aquellos símbolos que no sean alcanzables desde el estado inicial, S, y las
producciones en las que estos aparezcan.
1. V´ = 0
3. Mientras V´ cambie
B se introduce en V´
84
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
7. Eliminar todas las producciones donde aparezca una variable de las eliminadas en el
paso anterior
1. J = {S}
V” = {S}
∑‟ = Φ
2. Mientras J ≠ Φ
6. Si B no está en V” añadir B a J y a V”
S → AB, S → a, A → a
85
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
S → a, A → a
86
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
87
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Eliminación de reglas inaccesibles: Dada la gramática GLC con las siguientes reglas:
S → aXbb, X → bSa, Y → SX
La tercera regla es inútil, porque no hay nadie que produzca la Y necesaria para que
dicha regla se aplique. A reglas como éstas se les llama inaccesibles.
Para eliminar una regla inaccesible no se necesita hacer ninguna otra modificación a la
gramática más que simplemente borrarla. La equivalencia de la gramática sin la regla
13
BREANA, R; Autómatas y Lenguajes un enfoque de diseño. 214 p.
88
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
inaccesible y la original está garantizada por el hecho de que dicha regla no participa en
ninguna derivación.
Formas Normales: 14Cuando es necesario expresar una GLC siguiendo formatos más
preciso de las reglas que la simple forma A → . Estos estándares reciben el nombre de
formas normales. Y una de estas formas formales más conocidas es la forma normal de
Chomsky (FNCH). La FNCH consiste en que las reglas pueden tener dos formas:
1. A → a, con a
Esta forma normal tiene por objeto facilitar el análisis sintáctico de una palabra de
entrada, siguiendo las siguientes estrategias:
El objetivo es verificar que dado un lenguaje L no cumple que sea LLC. El “teorema de
bombeo” permite verificar esta condición. Este lema de bombeo también puede verse
como una condición necesaria que deben de cumplir todos los lenguajes libres de
contexto.
14
Bis (13)
89
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
1. │ vx │ ≥ 1
2. │ vwx│≤ n, y
3. i 0, uvi wxi y L
90
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
K es el conjunto de estados
∑ es el alfabeto de entrada
es el alfabeto de la pila
S K es el estado inicial
Z0 es el símbolo inicial de la pila (o también se denota como Z simplemente)
F K es un conjunto de estados finales.
∆ ( K x ∑* x *) x ( K x *) es la relación (función) de transición.
91
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
∆ : K x (∑ U { }) x → 2 K x *
La pila funciona de manera que el ultimo caractér que se almacena en ella es el primero
en salir (“LIFO” por las siglas en ingles), como si se apilaran platos uno encima de otro, y
naturalmente el primero que quitaremos es el ´último que hemos colocado. Un aspecto
92
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
crucial de la pila es que solo podemos modificar su “tope”, que es el extremo por donde
entran o salen los caracteres. Los caracteres a la mitad de la pila no son accesibles sin
quitar antes los que están encima de ellos.
La pila tendrá un alfabeto propio, que puede o no coincidir con el alfabeto de la palabra de
entrada. Esto se justifica porque puede ser necesario introducir en la pila caracteres
especiales usados como separadores, según las necesidades de diseño del autómata.
Al iniciar la operación de un AP, la pila se encuentra vacía. Durante la operación del AP,
la pila puede ir recibiendo (y almacenando) caracteres, según lo indiquen las transiciones
ejecutadas. Al final de su operación, para aceptar una palabra, la pila debe estar
nuevamente vacía.
En los AP las transiciones de un estado a otro indican, además de los caracteres que se
consumen de la entrada, también lo que se saca del tope de la pila, así como también lo
que se mete a la pila.
(q, , ) ( K x ∑* x *) en donde:
La Notación gráfica que se asemeja a la de los autómatas finitos (AF) es la dada así:
93
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Al igual que los AF, los AP tienen estados finales, que permiten distinguir cuando una
palabra de entrada es aceptada. De hecho para que una palabra de entrada sea aceptada
en un AP se deben cumplir todas las condiciones siguientes:
Aunque en el caso de los AP no hay metodologías tan generalmente aplicables como era
el caso de los autómatas finitos, siguen siendo válidas las ideas básicas del diseño
94
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
sistemático, en particular establecer claramente qué es lo que “recuerda” cada estado del
AP antes de ponerse a trazar transiciones a diestra y siniestra. Para los AP,
adicionalmente tenemos que establecer una estrategia clara para el manejo de la pila.
Se recuerda que un AP no puede realizar ningún movimiento si la pila está vacía. Por lo
que un AP reconocerá una cadena de entrada por estado final si partiendo de su
configuración inicial (q0, t, Z0), llega a una configuración final (qf, , ) empleando
movimientos válidos y se expresa como:
La cadena será aceptada por vaciado de pila si después de leerse toda la cadena se llega
a un estado con la pila vacía, independientemente del tipo de estado en el que se
encuentre el AP.
La construcción en diseño indica utilizar la pila como “contador” para recordar la cantidad
de a´s que se consumen, y luego confrontar la cantidad de b´s. Una primera versión de
este diseño utiliza un solo estado q, con transiciones a/ /a y b / a / de q así mismo.
El diseño del autómata se ve en la figura 56.
96
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Para verificar el funcionamiento del autómata, podemos simular su ejecución, listando las
situaciones sucesivas en que se encuentra, mediante una tabla que llamaremos “traza de
ejecución”. Las columnas de una traza de ejecución 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.
Por ejemplo, la traza de ejecución del AP del último ejemplo, para la palabra aabb, se
muestra a continuación en la tabla 13:
q .aabb
q .abb .a
q .bb .aa
q .b .a
q
Concluimos que el AP efectivamente puede aceptar palabras como anbn. Sin embargo,
hay un problema: ¡el AP también acepta palabras como abab, que no tienen la forma
deseada! (es fácil construir la traza de ejecución correspondiente para convencerse de
ello). El problema viene de que no hemos recordado cuando se terminan las a y principian
las b, por eso ha sido posible mezclarlas en abab. Una solución es utilizar los estados
para memorizar las situaciones de estar consumiendo a o estar consumiendo b. El
diagrama de estados correspondiente se muestra en la figura 55(b).
Stacks: Podemos identificar las pilas con ciertos lenguajes y ciertas funciones sobre un
alfabeto del modo siguiente:
97
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
99
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
∆ (q0, Z) = (q1,Z)
∆ (q1, x, ) = (q1,x)
∆ (q1, y, x) = (q2, )
∆ (q2, y, x) = (q2, )
∆ (q2, , Z) = (q3, Z)
Los lenguajes aceptados por los Autómatas de Pila se denominan lenguajes libres del
contexto.
N (M ) { * : (q0 , , Z 0 ) ├* ( , , ), K }
En el primer caso, una palabra es aceptada, si se puede llegar a un estado final después
de consumir la entrada. En el segundo criterio, los estados finales no tienen ningún
significado, y una palabra se acepta si cuando se termina de leer la entrada la pila se
queda vacía.
100
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Para el caso del ejemplo 52 para la cadena válida o aceptada = xxx las transiciones
dadas están definidas así para el recorrido de la Pila:
(q0, xxx, Z) ├ (q1, xxx, Z) ├ (q1, xx, xZ) ├ (q1, x, xxZ) ├ (q1, , xxxZ)
La pila quedó llena xxxZ y el autómata en el estado q1 reconoció por completo la cadena.
Para la cadena válida = xxy las transiciones dadas están definidas así para el
recorridao de la Pila:
(q0, xxy, Z) ├ (q1, xxy, Z) ├ (q1, xy, xZ) ├ (q1, y, xxZ) ├ (q2, , xZ)
Aunque la pila no quedó del todo vacía (quedó xZ) se reconoció toda la cadena completa
y el autómata quedó en un estado de aceptación q2.
Para la cadena válida = xxyy las transiciones dadas están definidas así para el
recorrido de la Pila:
(q0, xxyy, Z)├ (q1, xxyy, Z)├ (q1, xyy, xZ) ├ (q1, yy, xxZ) ├ (q2, y, xZ) ├ (q2, ,Z) ├ (q3, ,Z)
La cadena es procesada por completo, en la pila queda el símbolo inicial de pila y por
tanto la cadena es aceptada.
Para la cadena no válida o no aceptada = xyy las transiciones dadas están definidas
así para el recorrido de la Pila:
(q0, xyy, Z)├ (q1, xyy, Z)├ (q1, yy, xZ) ├ (q2, y, Z)
101
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Ejemplo 53 Obtener un AP que acepte el LLC generado por la gramática con reglas:
1. S → aSa
2. S → bSb
3. S → c
1 (p, , ) (q,S)
2 (p, ,S) (q,aSa)
3 (q, ,S) (q,bSb)
4 (q, ,S) (q,c)
5 (q,a, a) (q, )
6 (q,b, b) (q, )
7 (q,c, c) (q, )
102
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Existe sin embargo un problema técnico: si observamos la “corrida” para la palabra abcba,
nos daremos cuenta de que no estamos aplicando las reglas en el orden descrito en el
párrafo anterior, esto es, primero la transición del grupo 1, luego las del grupo 2 y
finalmente las del grupo 3, sino que más bien en la cuarta línea de la tabla se consume un
caracter a (aplicación de una transición del grupo 3) seguida de la aplicación de una
transición del grupo 2. Esto no es casualidad; lo que ocurre es que las variables no
pueden ser reemplazadas por el lado derecho de una regla si dichas variables no se
103
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
encuentran en el tope de la pila. En efecto, recuérdese que los AP solo pueden accesar el
caracter que se encuentra en el tope de la pila.
Por esto, se hace necesario, antes de reemplazar una variable por la cadena del lado
derecho de una regla, “desenterrar” dicha variable hasta que aparezca en el tope de la
pila, lo cual puede hacerse consumiendo caracteres de la pila (y de la entrada, desde
luego) mediante la aplicación de transiciones del tipo 3.
Unión
Concatenación
Clausura
Demostración:
Sean G1 = (V1, T1, P1, S1) y G2 = (V2, T2, P2, S2) dos gramáticas libres de contexto y L1 y
L2 los lenguajes que generan. Supongamos que los conjuntos de variables son disjuntos.
Demostraremos que los lenguajes L1 U L2, L1 L2 y L1* son libres de contexto,
encontrando gramáticas de tipo 2 que los generen.
G3 = (V1 U V2 U {S3}, T1 U T2, P3, S3), donde S3 es una nueva variable, y P3 = P1 U P2 más
las producciones S3 → S1 y S3 → S2
L1L2. Una gramática que genera este lenguaje es G4 = (V1 U V2 U {S4}, T1 U T2, P4,
S4), donde S4 es una nueva variable, y P4 =P1 U P2 más la producción S4 → S1S2.
L1* Una gramática que genera este lenguaje es G5 =(V1 U {S5}, T1,P5,S5 ) donde
P5 es P1 más las producciones S5 →S1S5 y S5 → .
S → AB
A → aAb | ab
B → cB | c
S → CD
C → aC | a
D → bDc │ bc
Existen una serie de problemas interesantes que se pueden resolver en la clase de los
lenguajes libres de contexto. Por ejemplo, existen algoritmos que nos dicen si un
Lenguaje Libre de Contexto (dado por una gramática de tipo 2 o un autómata con pila no
determinístico) es vacío, finito o infinito. Sin embargo, en la clase de lenguajes libres de
contexto comienzan a aparecer algunas propiedades indecidibles. A continuación,
veremos algoritmos para las propiedades decidibles y mencionaremos algunas
propiedades indecidibles importantes.
a) vacío
b) finito
c) infinito
105
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Demostración.
a) En la primera parte del algoritmo para eliminar símbolos y producciones inútiles de una
gramática, se determinaban las variables que podían generar una cadena formada
exclusivamente por símbolos terminales. El lenguaje generado es vacío si y solo si la
variable inicial S es eliminada: no puede generar una palabra de símbolos terminales.
A → BC, A → a
Se construye entonces un grafo dirigido en el que los vértices son las variables y en el
que para cada producción de la forma A → BC se consideran dos arcos: uno de A a B y
otro de A a C. Se puede comprobar que el lenguaje generado es finito si y solo si el grafo
construido de esta forma no tiene ciclos dirigidos.
S → AB
A → BC | a
B → CC | b
C→a
106
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Los lenguajes libres de contexto tienen una aplicación a los compiladores, aunque existen
otras aplicaciones como la compartición de información. Es aquí donde se presentan
interrogantes a las denominadas “gramáticas sensibles al contexto”.
La última Unidad de este módulo (Unidad 3: Lenguajes estructurados por frases) le llevará
a comprender como se ha demostrado que hay infinitos problemas para los que no se va
a tener una Máquina de Turing (MT) que los resuelva (ni siquiera los reconozca). También
se ha formulado la tesis de Church-Turing, que determina el límite de los computadores
actuales. Si esto es así, llegamos al caso de formular la pregunta:
Es otro contexto que podrá concluir cuando se analice la MUT (Máquina Universal de
Turing) como una máquina programable. Para demostrar esta afirmación, se puede
proceder primero simulando una MT con un computador y segundo simular un
computador con una MT.
Para el primer paso, si tenemos una MT con cinta semi-infinita, la unidad de control se
simula por el procesador, cada uno de los símbolos de cinta se codifican como la
información que se permiten guardar en la memoria del computador. Los estados, al ser
finitos, se pueden guardar en una tabla (en realidad sería el estado del procesador, que
incluye el contador de programa) y las transiciones se simulan mediante un programa. La
cinta se simularía con la memoria. El inconveniente de que un computador tiene
una memoria finita se soluciona suponiendo que siempre es posible añadirle, de
forma indefinida, más memoria. De esta forma un computador simularía el funcionamiento
de una MT cualquiera.
107
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
En las Unidades precedentes se han estudiado lo que se puede considerar las máquinas
abstractas que permiten solucionar ciertos tipos de algoritmos, los algoritmos en los
que no puede recordarse más que una cantidad fija de información y otros en los
que la información desarrollada durante la ejecución del algoritmo puede recuperararse
solo en concordancia con la regla “lifo” últimos en entrar primeros en salir, en esta
unidad se describe una maquina abstracta, llamada Máquina de Turing , que es
aceptada de manera amplia como modelo general de computación, aunque las
operaciones básicas de esta máquina son comparables en su sencillez a las de las
máquinas estudiadas en las unidades anteriores, las nuevas máquinas pueden
realizar una amplia variedad de operaciones de computo. Además de aceptar lenguajes
les es posible computar funciones y de conformidad con la tesis de Church-Turing,
ejecutar casi cualquier procedimiento algorítmico concebible.
Los modelos abstractos de computación tienen su origen en los años 30, bastante antes
de que existieran los ordenadores modernos, en el trabajo de los lógicos Church, Gödel,
Kleene, Post, y (Alan Mathison Turing). Estos primeros trabajos han tenido una profunda
influencia no solo en el desarrollo teórico de las Ciencias de la Computación, sino que
108
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
muchos aspectos de la práctica de la computación que son ahora lugar común de los
informáticos, fueron presagiados por ellos; incluyendo la existencia de ordenadores de
propósito general, la posibilidad de interpretar programas, la dualidad entre software y
hardware, y la representación de lenguajes por estructuras formales basados en reglas de
producción.
Así como en secciones anteriores vimos como al añadir al autómata finito básico una pila
de almacenamiento auxiliar, aumentando con ello su poder de cálculo, cabría ahora
preguntarnos qué es lo que habría que añadir a un autómata de pila para que pudiera
analizar lenguajes como {anbncn}. Básicamente se trata del diseño de un Autómata con
mayor poder de reconocimiento y proceso de lenguajes, que tomas y fusiona aspectos de
un AF y de un PDA.
A Turing propuso en los años 30 un modelo de maquina abstracta, como una extensión
de los autómatas finitos, que resultó ser de una gran simplicidad y poderío a la vez. La
máquina de Turing es particularmente importante porque es la más poderosa de todas las
maquinas abstractas conocidas.
Gracias a ser tan simples, resulta más fácil demostrar que algo no se puede
resolver con ellas.
Gracias a su equivalencia con los lenguajes de programación, entonces facilitan la
demostración de que cierto problema, no se puede resolver con un lenguaje de
programación.
Mecanismo de cómputo muy sencillo de definir. Pero tan potentes como los
lenguajes de programación de muy bajo nivel.
Por ser tan de demasiado de “Bajo Nivel” no resultan prácticas para programar.
La parte final del estado de las máquinas de Turing nos lleva a analizar la “Tesis de
Church”, que dice que las Máquinas de Turing son equivalentes a cualquier modelo de
computación factible de construir.
110
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
La función de transición del control finito debe considerar como entradas el estado actual,
que es un elemento de K –pero que no puede ser h– así como el caracter leído en la
cinta, que es elemento de .
K x ( U { L,R }
Así, si (q, a) = (p, b), donde b , esto quiere decir que estando la MT en el estado q
con la cabeza lectora sobre un caracter a, la función de transición enviar al autómata a un
estado p, y adicionalmente escribir el carácter b. Similarmente si (q, a) = (p, L) la
cabeza de la MT hará un movimiento a la izquierda además de la transición de estado.
Ejemplo 55: Sea la MT siguiente: K = {s, h}, (solo está el estado inicial, además del “halt”)
donde:
Puede verse por la función de transición que esta MT ejecuta un ciclo repetitivo en que
mueve la cabeza hacia la derecha en tanto siga leyendo un caracter a, y se detiene (hace
halt) en cuanto llega a un blanco.
Nótese que, puesto que es una función, en principio debe tenerse por cada estado y
cada caracter una transición. Esto quiere decir que cada estado debe tener una cantidad
de flechas de salida igual a | |. Por ejemplo, si = { Ц, a, b}, y K = {q, h}, entonces
debe haber flechas de salida de q con a, de q con b y también de q con Ц.
En la práctica, sin embargo, una gran cantidad de flechas tiende a hacer menos
comprensible un diagrama, por lo que solamente incluiremos las flechas “necesarias”,
suponiendo en consecuencia que las demás flechas pueden tener una salida cualquiera,
sin afectar esto el funcionamiento de la MT. Por ejemplo, a partir del estado inicial
111
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
podemos suponer, sin arriesgarnos, que no es posible encontrar más que el caracter
blanco, por lo que no tiene caso dibujar flechas del estado inicial con a, con b, etc.
Tiene, como los autómatas que hemos visto antes, un control finito, una cabeza
lectora y una cinta donde puede haber caracteres, y donde eventualmente viene la
palabra de entrada.
La cinta es de longitud infinita hacia la derecha, hacia donde se extiende
indefinidamente, llenándose los espacios con el caracter blanco (que
representaremos con “ Ц”).
La cinta no es infinita hacia la izquierda, por lo que hay un cuadro de la cinta que
es el extremo izquierdo, como el que se muestra en la figura 60.
En la MT la cabeza lectora es de lectura y escritura, por lo que la cinta puede ser
modificada en curso de ejecución.
En la MT la cabeza se mueve bidireccionalmente (izquierda y derecha), por lo que
puede pasar repetidas veces sobre un mismo segmento de la cinta.
Estas dos acciones son excluyentes, es decir, se hace una o la otra, pero no ambas a la
vez.
primer cuadro un caracter blanco. Como la cinta es infinita, inicialmente toda la parte de la
cinta a la derecha de la palabra de entrada está llena del caracter blanco (Ц).
Cuando queremos que una palabra no sea aceptada, desde luego debemos evitar que la
MT llegue al halt. Podemos asegurarnos de ello haciendo que la MT caiga en un ciclo
infinito.
Al diseñar una MT que acepte un cierto lenguaje, en realidad diseñamos el autómata finito
que controla la cabeza y la cinta, el cual es un autómata con salida (acepta cadenas
válidas). Así podemos usar la notación gráfica utilizada para aquellos autómatas para
indicar su funcionamiento. En particular, cuando trazamos una flecha que va de un estado
p a un estado q con etiqueta /L, quiere decir que cuando la entrada al control finito
(esto es, el caracter leído por la cabeza de la MT) es , la cabeza lectora hace un
movimiento a la izquierda, indicada por el caracter L (left, en inglés); similarmente cuando
se tiene una flecha con /R el movimiento es a la derecha. Cuando la flecha tiene la
etiqueta / , donde es un caracter, entonces la acción al recibir el caracter consiste
en escribir el caracter en la cinta. Con estos recursos es suficiente para diseñar algunas
MT, como en el ejemplo que se visualiza en el recurso web.
Fuente:<JFLAP – El Autor>
114
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
115
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Hasta aquí hemos considerado cada esquema funcional asociado a su MT propia. Pero
es posible concebir una M T capaz de ejecutar cualquier algoritmo; es decir capaz de
realizar los cálculos que realizaría cualquier otra MT, o sea, capaz de simular (tener el
mismo comportamiento) cualquier MT particular.
Esta máquina Universal no debe ser diseñada para realizar un cálculo específico, sino
para procesar cualquier información (realizar cualquier cálculo específico -MT particular-
sobre cualquier configuración inicial de entrada correcta para esa MT particular).
Resultaría sumamente tener un modelo similar para MTs. En particular, elegimos las MTs
como nuestro modelo de máquina \ cableada" y a la vez como nuestro modelo de
lenguaje de programación. La Máquina Universal de Turing (MUT) recibirá dos entradas:
una MT M y una entrada , codificadas de alguna forma, y simulará el funcionamiento de
M sobre . La simulación se detendrá, se colgará, o correrá para siempre según M lo
haga con En caso de terminar, dejará en la cinta la codificación de lo que M dejaría en
la cinta frente a .15
15
NAVARRO, A: Fundamentos de la ciencia de la computación. 178 p.
116
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
El lenguaje aceptado o reconocido por una Máquina de Turing (MT), que se denota como
L(MT), es el conjunto de palabras formadas con el alfabeto ∑*, que hace que la maquina
de Turing se detenga al alcanzar un estado final.
L(M) = { ∑ : q0 ├* 1p 2, p }
Los lenguajes formales que son aceptados por una máquina de Turing son exactamente
aquellos que pueden ser generados por una gramática formal. El cálculo Lambda es una
forma de definir funciones. Las funciones que pueden se computadas con el cálculo
Lambda son exactamente aquellas que pueden ser computadas con una máquina de
Turing. Estos tres formalismos, las máquinas de Turing, los lenguajes formales y el
cálculo Lambda son formalismos muy disímiles y fueron desarrollados por diferentes
personas. Sin embargo, ellos son todos equivalentes y tienen el mismo poder de
expresión. Generalmente se toma esta notable coincidencia como evidencia de que la
tesis de Church-Turing es cierta, que la afirmación de que la noción intuitiva de algoritmo
o procedimiento efectivo de cómputo corresponde a la noción de cómputo en una
máquina de Turing.
Los computadores electrónicos, basados en la arquitectura Von Neumann así como las
máquinas cuánticas tendrían exactamente el mismo poder de expresión que el de una
máquina de Turing si dispusieran de recursos ilimitados de tiempo y espacio. Como
consecuencia, los lenguajes de programación tienen a lo sumo el mismo poder de
expresión que el de los programas para una máquina de Turing y en la práctica no todos
117
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Teorema: Todo lenguaje estructurado por frases es aceptado por una máquina de Turing.
Para cada gramática G existe una máquina de Turing no determinista M de 2 cintas que
aceptas el lenguaje generado por G.
Construcción de la máquina:
x L, M se DETIENE en q
x L, M se DETIENE en q o bien NO se DETIENE,
118
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
L es un lenguaje recursivo si existe una MT M tal que L(M) = L y M se DETIENE con todas
las cadenas de entrada.
Se dice que L es un lenguaje recursivo si existe al menos una MT M tal que L = L(M) y
x L, M se DETIENE en q
x L, M se DETIENE en q
Segundo nivel: se clasifican en función del tiempo que tardan en ejecutarse. Se conocen
con el nombre de problemas indecidibles, impracticables o solucionables.
Tercer nivel: comprende aquellos problemas que por ejemplo requiere un tiempo
linealmente proporcional a su tamaño.
PRINCIPIO DE CHURCH-TURING:
Todo proceso físico puede ser simulado por un dispositivo universal de computación."
119
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
ENUNCIADOS: CHURCH
"La clase de las funciones que pueden ser calculadas mediante un algoritmo
coincide con la clase de las funciones recursivas." (Tesis de Church).
Apoyado en esta tesis junto a la definición de función definible, encontró varios ejemplos
de problemas cuya resolución era irresoluble llegando a manifestar que el
„Entscheidungsproblem‟ era uno de estos problemas
ENUNCIADOS: TURING
Es decir, si una función es computable entonces puede ser computada por una
máquina de Turing.
La clase de las funciones que pueden ser calculadas mediante un método definido
coincide con la clase de las funciones calculables mediante una Máquina de Turing.
CHURCH Y TURING
120
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
"Toda función que pueda ser físicamente computable, puede ser computada por
una máquina de Turing"
ORIGEN
ÉXITO DE LA TESIS
121
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Hay otras definiciones de las máquinas de Turing que son equivalentes. Algunos de esos
modelos alternativos son mucho más complicados aunque todos tienen la misma potencia
computacional (o de cálculo). Muchas de ellas dotan de mayor flexibilidad al diseño de
una máquina de Turing que resuelva un problema en particular.
MTs que usan varias cintas, MTs con varios cabezales, MTs con cinta infinita hacia
ambos lados, MTs con cinta k-dimensional, etc. De todos esos mecanismos, el más útil es
la MT con k cintas, Una MT de k cintas tiene un cabezal en cada cinta. En cada paso, lee
simultáneamente los k caracteres bajo los cabezales, y toma una decisión basada en la k-
upla. Esta consiste de pasar a un nuevo estado y realizar una acción en cada cinta.
Máquina no determinista: Máquina de Turing con una única cinta y control finito único.
Máquina de Turing de Cinta infinita en una Dirección: Máquina de Turing que usa una
cinta que se extiende infinitamente en una única dirección. Generalmente, se tiene una
cinta que se extiende infinitamente hacia la derecha. No está permitido realizar ningún
movimiento hacia la izquierda a partir de la celda del extremo izquierdo. Desde luego,
cualquier máquina de Turing de esta forma puede ser simulada por una de las que
responden a la definición original. Para cada computación, simplemente se marca una de
las celdas de la cinta infinita por los dos lados, como la celda que se encuentra en el límite
izquierdo.
Máquina de Turing en Dos Direcciones: Una máquina de Turing con una cinta infinita
en un sentido puede simular una máquina de Turing con la cinta infinita en los dos
sentidos pero con dos pistas. Sea M una máquina de Turing con una cinta infinita en los
dos sentidos. La máquina de Turing M‟, que tiene una cinta infinita en un sentido, puede
simular a M si tiene una cinta con dos pistas. La cinta superior contiene la información
correspondiente a la parte derecha de la cinta M, a partir de un punto de referencia dado.
La pista inferior contiene la parte izquierda de la cinta M (en orden inverso).
¿Las matemáticas son 'completas', esto es, cada afirmación matemática se puede
probar?
¿Las matemáticas son 'consistentes', esto es, es posible probar paralelamente una
afirmación y su negación?
¿Las matemáticas son 'decidibles', esto es, se puede encontrar un método definido
aplicable a cualquier afirmación matemática, que nos de cómo resultado si es o no cierta
la aseveración evaluada?
123
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Los problemas de Hilbert son una lista de 23 problemas matemáticos compilados por el
matemático alemán David Hilbert para la conferencia en París del Congreso Internacional
de Matemáticos de 1900. Los problemas estaban todos por resolver en aquel momento, y
varios resultaron ser muy influyentes en la matemática del siglo XX. Hilbert presentó diez
de los problemas (1, 2, 6, 7, 8, 13, 16, 19, 21 y 22) en la conferencia, en un acto el 8 de
agosto en La Sorbona.
Aunque se han producido intentos de repetir el éxito de la lista de Hilbert, ningún otro
conjunto tan variado de problemas o conjeturas ha tenido un efecto comparable en el
desarrollo del tema y obtenido una fracción importante de su celebridad. Por ejemplo, las
conjeturas de Weil son famosas pero fueron poco publicitadas. Quizá el propio
temperamento de André Weil evitó que intentase ponerse en posición de competir con
Hilbert. John von Neumann produjo una lista, pero no obtuvo reconocimiento universal.
A primera vista, este éxito podría atribuirse a la eminencia del autor de los problemas.
Hilbert estaba en la cúspide de su poder y reputación en aquel momento y continuó
dirigiendo la sobresaliente escuela de matemática en la Universidad de Göttingen. Un
examen más cuidadoso revela que el asunto no es tan simple.
La matemática de aquel tiempo era aún discursiva: la tendencia a sustituir palabras por
símbolos y apelaciones a la intuición y conceptos mediante axiomática pura seguía
subyugada, aunque se volvería fuerte durante la siguiente generación. En 1900, Hilbert no
pudo acudir a la teoría axiomática de conjuntos, la integral de Lebesgue, los espacios
topológicos o la tesis de Church, que cambiarían sus respectivos campos de forma
permanente. el análisis funcional, fundado en cierto modo por el propio Hilbert como
noción central de los testigos del espacio de Hilbert, no se había diferenciado aún del
cálculo de variaciones; hay en la lista dos problemas de matemática variacional, pero
nada, como podría asumirse inocentemente, sobre teoría espectral (el problema 19 tiene
una conexión con la hipoelipticidad).
el siglo XX, así como no previó la manera en que iba a avanzar la lógica matemática. Por
tanto, su valor documental es el de ensayo: una visión parcial, personal. Sugiere algunos
programas de investigación y algunas direcciones a seguir sin fin concreto.
De hecho, muchas de las preguntas daban una falsa idea del matemático profesional del
siglo XXI, o incluso de 1950, en que la forma de una solución a una buena pregunta
tomaría la forma de un artículo publicado en una publicación matemática. Si este fuera el
caso de todos los veintitrés problemas, se hubiera simplificado el comentario hasta el
punto de poder dar una referencia a una revista, o considera la pregunta como abierta
todavía. En algunos casos el lenguaje usado por Hilbert se sigue considerando un tanto
"negociable", en cuanto al significado real de la formulación del problema (en ausencia,
repetimos, de fundamentos axiomáticos, basados en matemática pura, empezando con el
propio trabajo de Hilbert sobre geometría euclidiana, pasando por el Principia
Mathematica, y terminando con el grupo Bourbaki y el "terrorismo intelectual" para
terminar el trabajo). Los problemas Primero y Quinto se encuentran, quizá
sorprendentemente, en un estado de formulación de una claridad menos que total
(véanse las notas). En casos como el Vigésimo, el problema se podría leer de forma
razonable en una versión "interna", relativamente accesible, en la que el lector puede
saber a qué estaba apuntando Hilbert; o como una penumbra "externa" y especulativa.
Dicho todo esto, por tanto, la razón más importante es la gran rapidez con la que aceptó
la lista de Hilbert la comunidad matemática de aquel momento (lo cual es una fórmula
menos convencional que ahora, ya que por entonces habían pocos líderes investigadores,
que generalmente se encontraban en unos pocos países Europeos y se conocían todos
entre ellos). Los problemas se estudiaron con gran atención; resolver uno labró
reputaciones.
El estilo fue al menos tan influyente como el contenido de los problemas. Hilbert solicitaba
clarificaciones. Pidió soluciones en principio a preguntas algorítmicas, no a algoritmos
prácticos. Pidió un fortalecimiento de los cimientos de partes de la matemática que a los
no practicantes aún se antojaban guiadas por intuiciones opacas (el cálculo de Schubert y
la geometría enumerativa).
Estas actitudes fueron adoptadas por muchos seguidores, aunque también fueron
discutidas, y continúan siéndolo. Treinta años después, Hilbert había endurecido su
postura: véase ignorabimus.
Problema 1. La hipótesis del continuo (esto es, no existe conjunto cuyo tamaño esté
estrictamente entre el de los enteros y el de los números reales) Se ha probado la
125
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Problema 2. Probar que los axiomas de la aritmética son consistentes (esto es, que la
aritmética es un sistema formal que no supone una contradicción). Parcialmente resuelto:
hay quienes sostienen que se ha demostrado imposible de establecer en un sistema
consistente, finitista y axiomático Sin embargo, Gentzen probó en 1936 que la
consistencia de la aritmética se deriva del buen fundamento del ordinal ε0, un hecho
sujeto a la intuición combinatoria.
Problema 3. ¿Se puede probar que dos tetraedros tienen igual volumen (bajo ciertas
asunciones)? Resuelto. Resultado: no, probado usando invariantes de Dehn
Problema 4. Construir todas las métricas cuyas rectas sean geodésicas. Demasiado
vago para decidir si se ha resuelto o no.
Problema 10. Encontrar un algoritmo que determine si una ecuación diofántica polinómica
dada con coeficientes enteros tiene solución entera. Resuelto. Resultado: no, el teorema
de Matiyasevich implica que no existe tal algoritmo.
Problema 11. Resolver las formas cuadráticas con coeficientes numéricos algebraicos.
Parcialmente resuelto
126
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Problema 13. Resolver todas las ecuaciones de 7º grado usando funciones de dos
parámetros. Resuelto. Lo probó posible Vladimir Arnold.
Problema 17. Expresión de una función definida racional como cociente de sumas de
cuadrados. Resuelto. Resultado: se estableció un límite superior para el número de
términos cuadrados necesarios
Problema 18. ¿Existe un poliedro irregular y que construya otros poliedros? ¿Cuál es el
apilamiento compacto más denso?. Resuelto.
Problema 19. ¿Son siempre analíticas las soluciones de los Lagrangianos? Resuelto.
Resultado: sí
Problema 20. ¿Tienen solución todos los problemas variacionales con ciertas condiciones
de contorno?. Resuelto. Ha supuesto un área importante de investigación durante el siglo
XX, culminando con las soluciones al caso no lineal.
Problemas de decisión.
127
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Si es soluble.
Si es un problema soluble.
No es insoluble.
Un lenguaje decidible es aquel lenguaje L para el cual existe una máquina de Turing que
le puede aceptar cualquier cadena { L}.
Hay lenguajes formados por cadenas tales que una máquina de Turing logra un estado
final con las cadenas que reconoce y acepta, solamente. En este caso se dice que la
máquina de Turing semidecide al lenguaje. Los lenguajes semidecididos por una MT se
llaman recursivos numerables. Las gramáticas sin restricciones son las que generan los
lenguajes recursivos numerables. De aquí en adelante será suficiente referirse a los
lenguajes recursivos numerables, pues estos generalizan a los lenguajes recursivos, los
128
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
cuales generalizan a los lenguajes libres de contexto, y estos a los lenguajes regulares.
Lo anterior tiene relación directa con que los autómatas de Turing generalizan a los de la
pila y estos a su vez a los autómatas finitos. Por otro lado, pese a que lenguajes formales
más generales que los recursivos numerables no son reconocidos por un autómata de
Turing, no existe hasta el momento ningún autómata más poderoso capaz de
reconocerlos
Es decir, si un dado un conjunto de entradas bajo las cuales una MT logra un estado de
parada para cada entrada, la maquina corresponde a la implementación de un algoritmo.
Esta es la Tesis de Church – Turing. No es un teorema pues no se puede demostrar
matemáticamente, de manera general y categórica. Es solo la afirmación de que el
concepto informal del algoritmo corresponde a un objeto matemático. Al ser solo una
afirmación no demostrable, puede suceder que luego fuera refudada. Para que esto
ocurra, se necesitaría encontrar un autómata más potente que uno de Turing tal que fuese
la implementación de un algoritmo. Si bien hay algunas propuestas interesantes que
pretende generalizar a la MT, hasta la fecha ninguna de ellas ha sido aceptada para
sustituir nuestro actual concepto de procedimiento comprable.
Por otro lado, mientras que los lenguajes computables son una infinidad numerable, los
lenguajes no computables son una infinidad no numerable. Por ello, son más los
lenguajes no computables o indecidibles. Una teoría lógica (TL) se define a partir de un
conjunto de enunciados dados llamados axiomas, unas reglas de inferencia y un esquema
de derivación. A partir de los axiomas y aplicando la regla de inferencia y el esquema de
derivación se infieren los teoremas de la teoría. El conjunto de teoremas de la teoría
forma un lenguaje formal.
Si es posible definir una máquina de Turing tal que reconozca al lenguaje de los
teoremas, este lenguaje es decidible y la teoría también lo es en consecuencia. Dicho en
otras palabras, si el conjunto de teoremas visto como un lenguaje es reconocido por una
máquina de Turing, entonces la TL es decidible. Y viceversa. Puede hablarse entonces de
129
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
manera indistinta de teorías lógicas o de lenguajes decididles, como aquellos para los que
existe una máquina de Turing capaz de reconocerlos. Luego la correspondencia entre la
sintaxis de una teoría lógica (lenguaje formal) y reconocimiento simbólico del mismo por
parte de un autómata queda establecida.
Una de las razones por la que es importante conocer que el problema de la parada no
tiene solución, es que nos permite decidir si otros problemas son resolubles o no. El
razonamiento a seguir sería: si suponiendo que un problema es decidible, podemos
demostrar que el problema de la parada tiene solución, entonces podemos llegar a la
conclusión de que el problema en cuestión no la tiene, por reducción al absurdo.
Definición:
Sea M una máquina de Turing arbitraria con un alfabeto de entrada Σ. ¿Puede decidirse si
la máquina M se detendrá con la entrada ?
Solución:
Por otro lado, son muchos los problemas interesantes que se han demostrado
computables. Todas las funciones construidas por recursividad primitiva o minimalización
a partir de funciones calculables resultan ser calculables como consecuencia de los
trabajos de Church y Turing. Pero además, otras funciones más complejamente definidas
también son computables, siendo el resultado más significativo en relación con esta
cuestión el dado por el siguiente teorema:
Primer teorema de Recursión. Todo operador entre funciones calculables que sea
recursivo (esto es que se defina la imagen de f mediante una función calculable en
términos de una parte finita de f), tiene una función parcial computable que es el menor
punto fijo, es decir, esta función es un punto fijo y cualquier otro punto fijo del operador es
una extensión de esa función.
131
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Este teorema recibe su nombre porque podemos definir una función mediante una
ecuación recursiva más general que la permitida por la recursividad primitiva, a saber
dónde es un operador recursivo. El primer teorema de recursión nos dice que esta
definición es posible; hay una función recursiva que satisface esta ecuación. Como en
matemáticas se requiere que la definición sea unívoca, se dice que dicha ecuación define
el menor punto fijo del operador. Así, y de acuerdo al primer teorema de recursión, la
clase de las funciones calculables es cerrada bajo una muy general forma de definición
por recursión.
FUNCIONES COMPUTABLES:
El modelo en el que se inspiró fue el de una persona real llevando a cabo un cálculo
mecánico, por ejemplo una multiplicación de dos grandes números en el sistema decimal.
Las funciones computables son usadas para discutir computabilidad sin referirse a ningún
modelo de computación concreto, como el de la máquina de Turing o el de la máquina de
registros.
Alternativamente se pueden definir como los algoritmos que pueden ser calculados por
una máquina de Turing, una máquina de Post, o una máquina de registros.
Se cita un ejemplo:
Hay que hacer notar que este método no hace referencia a la manera en la que se
soluciona P1 o P2, sino que determina como la solución de P2 conduce a solucionar P1.
También se puede ver que P2 es un problema más general que P1. De hecho este
método no funcionaría en el sentido inverso: siempre se reduce un problema a otro más
general.
Otro ejemplo más típico: El jefe al fin se ha decidido a dar las vacaciones, pero estamos a
30 de julio y queremos ir con la familia, que resulta que está en Australia. El problema
entonces se reduce a encontrar un billete de avión a este destino.
133
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Que haya que demostrar que L2 es RE. Para ello partimos de la certeza de que L1 es
RE (por ejemplo Lu) y lo reducimos a L2. Se supondrá que este último es decidible, es
decir, que se puede encontrar una MT que, siendo la entrada una cadena ω de L1, esta
se puede convertir en una cadena ω‟ de L2, y decidir si esta última pertenece a L2 o no.
Si se encuentra al algoritmo de conversión, se habrá encontrado una MT que es capaz de
reducir L1 a L2, y por tanto, la manera de decidir L1. Pero esto es una contradicción,
pues sabemos de antemano que L1 es RE, por lo que, forzosamente, L2 no puede ser
decidible. Se llega a la conclusión de que L2 también es RE.
Que haya que demostrar que L2 no es RE. Para ello partimos de la certeza de que L1 no
es RE (por ejemplo Ld) y lo reducimos a L2. Se supondrá que este último es RE, es decir,
que se puede encontrar una MT que, siendo la entrada una cadena ω de L1, esta se
puede convertir en una cadena ω‟ de L2, y aceptarla si esta última pertenece a L2. Si se
encuentra un algoritmo de conversión, se habrá encontrado una MT que es capaz de
reducir L1 a L2, y por tanto la manera de aceptar L1. Pero esto es una contradicción,
pues sabemos de antemano que L1 no es RE (ninguna MT puede aceptarlo), por lo que,
forzosamente, L2 no puede ser RE. Se llega a la conclusión de que L2 tampoco es RE.
134
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Hemos visto como la Teoría de Autómatas, que engloba también al estudio de las
Máquinas secuenciales, tiene su origen en el campo de la Ingeniería Eléctrica. El
matemático norteamericano Shannon Claude 16(siendo lo más notable de su trabajo todo
lo referente a la Teoría de la información17, un desarrollo que fue publicado en 1948 bajo
el nombre de Una Teoría Matemática de la Comunicación), dio los primeros usos a una
máquina de estados.
Más tarde en otros trabajos destacados, vino a establecer las bases para la aplicación de
la Lógica Matemática a los circuitos combinatorios y posteriormente Huffman en 1954 los
amplió a circuitos secuenciales y utiliza conceptos como estado de un autómata y tabla de
transición.
19
ALGORITMO DE TRELLIS Y VITERBI:
16
<C. E. Shannon, ``A mathematical theory of communication,'' Bell System Technical Journal, vol. 27, pp.
379-423 and 623-656, July and October, 194>
17
< W. Weaver and C. E. Shannon, The Mathematical Theory of Communication, Urbana, Illinois: University
of Illinois Press, 1949, republished in paperback 1963 .>
18
Reprinted with corrections from The Bell System Technical Journal, Vol. 27, pp. 379–423, 623–656, July,
October, 1948. Disponible en internet < http://cm.bell-labs.com/cm/ms/what/shannonday/shannon1948.pdf >.
135
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
APLICACIONES DEL ALGORITMO: Como resultado de estos avances, las fronteras del
mundo de las comunicaciones digitales se han expandido en todos los sentidos: (a) las
distancias entre transmisor y receptor se han incrementado considerablemente
(comunicaciones satelitales, telemetría de sondas espaciales, etc.); (b) es posible
establecer comunicaciones de buena calidad en ambientes de gran interferencia (telefonía
celular); (c) los espacios lógicos (y físicos) necesarios para almacenar la información se
han reducido radicalmente (DVD).
Entre todos los avances que han permitido este extraordinario desarrollo de las
comunicaciones, se encuentran las técnicas de codificación. Estas mejoran el
comportamiento de los sistemas de comunicaciones mediante la inclusión de redundancia
en la información a transmitir. Esta información adicional permite detectar, corregir y/o
prevenir errores en transmisiones por canales ruidosos.
El primer esquema de TCM fue propuesto en 1976 por Gottfried Ungerboeck. Seguido por
una publicación en la revista information theory del IEEE en el año de 1982, con la cual se
dio una revolución en las investigaciones de su teoría y métodos, además se estableció
un lugar a las posibles implementaciones de TCM.
CC-DV son utilizados en los sistemas de telefonía celular digital como es el caso del
estándar IS-95 (utilizado en nuestro medio por CTI), como así también en comunicaciones
de satélites geoestacionarios como las redes VSAT (Very Small Aperture Terminal). Las
ganancias que se logran con estos sistemas de codificación se reflejan en la reducción del
consumo de los transmisores o en la reducción del tamaño de las antenas (o simplemente
en la mejora de las tasas de transmisión).
137
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
138
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Los códigos secuenciales son utilizados también con el propósito de identificación, pero
se asignan en el orden en el cual los clientes entran al sistema.
Los códigos pueden dividirse en subconjuntos o subcódigos, caracteres que son parte del
número de identificación que tienen un significado especial. Los subcódigos indican al
usuario información adicional sobre el artículo, Ejemplo La clase de producto, el
proveedor, esta información se lleva a través de dígitos significativos.
la salida, ya que la potencia de ruido no aumenta. Shannon concluyó que no hacía falta
aumentar la potencia sino disminuir el número de mensajes, enviar solo una fracción de
ellos. Los mensajes posibles son 2n en el caso de transmisión binaria (siendo n el número
de bits de la palabra codificada), lo que Shannon propone es enviar 2Rn mensajes con
R<1. De esta forma, si R es menor que la capacidad del canal C (es una característica
propia de cada canal), puedo crear un sistema de comunicaciones con una PE
(probabilidad de error) muy baja cuando n ∞.
El problema está en cómo elegir los 2Rn vectores que se van a enviar, es decir, en la
decisión. Al sistema que realiza dicha decisión se le llama codificador.
Los códigos convolucionales realizan esta selección, son códigos lineales que tienen la
propiedad de que la suma de dos palabras de código cualesquiera también es una
palabra de código. Luego, el codificador convolucional, es una manera de reducir el
número de mensajes que enviamos por el canal, cumpliendo de esta forma la
recomendación de Shannon. (Básicamente el codificador convolucional es una máquina
de estados que aplica la Teoría de Autómatas).
140
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
A este cociente se le denomina ratio del codificador. He definido para esta aplicación un
codificador convolucional (2,1,3), es decir: un bit para representar la palabra de datos, dos
bits de palabra de codificación por cada bit de palabra de datos y tres bits de longitud de
registro. En nuestro caso el ratio es ½.
Figura 66: Máquina de estados. Registro de desplazamiento convolucional de ratio = ½ y una etapa
141
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Figura 67: Máquina de estados. Registro de desplazamiento convolucional (datos 000 y 100)
142
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Seguimos con el caso de que hemos introducido un uno porque con el cero observamos
que se forma un bucle. Ahora en la situación (1, 0, 0) veamos cómo codifica el sistema
usando una máquina de estados si le introducimos un cero y cómo si es un uno el bit que
entra al canal:
Figura 68: Máquina de estados. Registro de desplazamiento convolucional (datos 010 y 110)
En los diagramas, cada estado del codificador convolucional se representa mediante una
caja y las transiciones entre los estados vienen dadas por líneas que conectan dichas
cajas. Para saber de una manera rápida en qué estado se encuentra el codificador, basta
con observar los dos bits del registro de memoria más alejados de la entrada. Puede
comprobarse interpretando la máquina de estados correspondiente. Para el codificador de
la Figura 69, el diagrama de estados correspondiente es:
143
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
ÁRBOLES: Para la descripción, utilizaremos un caso particular con m=3, k=1 y n=2.
Consideramos el codificador convolucional de la figura 70
144
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
DIAGRAMAS DE TRELLIS:
Una manera de representar las distintas transiciones y los caminos que éstas describen
es mediante un Diagrama de Trellis. Una descripción de Trellis de un codificador
convolucional muestra cómo cada posible entrada al codificador influye en ambas salidas
y a la transición de estado del codificador. Un código de longitud restringida m tiene un
Trellis con 2k(m-1) estados en cada intervalo ti. Así que tendremos cuatro estados en ti. De
cada estado parten otros dos, uno si el bit enviado es un „1‟ y otro si es un „0‟.
El sistema tiene memoria: la codificación actual depende de los datos que se envían
ahora y que se enviaron en el pasado. Por lo tanto, el diagrama completo que obtenemos
con nuestro codificador.
145
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
En nuestro caso (2,1,3), una vez enviado el último bit, tendremos que enviar dos ceros
para finalizar la secuencia en cero y de esta forma volver a poner el codificador a cero.
Así, queda listo para otro envío futuro y se facilita por lo tanto el proceso.
146
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Sea una entrada de datos de 8 bits. Una vez elegido el codificador convolucional con ratio
1/2, procedemos como se ha explicado en la teoría para obtener la secuencia de 16 bits
correspondientes a la palabra codificada.
Datos a la entrada: 1 1 0 0 1 0 1 1
Hemos dicho que el codificador parte del estado todo cero. Fijándonos en la máquina de
estados de las figura 69, partimos del estado 00, si entra un 1, se ha explicado como
entra al codificador, cuál es la salida codificada (11) y a qué estado pasa (10). A este
nuevo estado le llamaremos estado presente. En nuestro ejemplo:
1º Dato entrada: 1
Dato codificado: 11
Estado presente: 10
2º Dato entrada: 1
Dato codificado: 10
Estado presente: 11
3º Dato entrada: 0
Dato codificado: 10
Estado presente: 01
4º Dato de entrada: 0
Dato codificado: 11
Estado presente: 00
Estado presente: 10 11 01 00 10 01 10 11
Entrada codificada: 11 10 10 11 11 01 00 10
Representamos cómo sería el camino de Trellis seguido por los datos correctos ya
codificados. Para esto nos fijamos en la secuencia de estados presentes:
147
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
148
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
otros dos en el posterior nivel. Por tanto será en el tercer nivel cuando empecemos a
tomar decisiones porque ahora sí convergerán dos ramas en cada estado.
Datos 1 1 0 0 1 0 1 1
Estado Presente 10 11 01 00 10 01 10 11
Codificado 11 10 10 11 11 01 00 10
Recibido 10 10 11 11 01 01 00 10
Veamos las distintas representaciones gráficas que desarrollan el proceso según dicta
nuestra máquina de estados. Sobre cada línea de unión de estados colocaremos en rojo
el número de errores acumulados en relación con la señal recibida.
DISTANCIA DE HAMMING.
En los códigos no recurrentes (o sea que utilizan estructura de bloques) son formados con
agrupaciones de n bits llamadas bloques, cada bloque se diferencia de otro de acuerdo
con la distancia que exista entre ellos. Como lo muestra la siguiente figura 75:
149
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
1.- El primer y segundo nivel son fijos para cualquier entrada. Del estado 00 tenemos dos
posibles ramas, hacia el estado 00 y hacia el 10
2.- Todavía no tenemos que realizar ninguna decisión ya que, como hemos dicho, estos
caminos son los mismos independientemente de la entrada.
3.- A partir del tercer nivel, en cada estado convergerán dos ramas, analizamos los
errores en la métrica de cada camino posible en relación con la señal recibida.
4.- Según el número de errores acumulados en relación con la señal recibida, elegimos un
camino u otro. Nos quedamos con el de menor error acumulado. Así pues, partimos de
menos ramas para el siguiente nivel del proceso.
5.- De cada nodo parten de nuevo otras dos ramas Colocamos únicamente los errores
correspondientes al último nivel, para una mejor visualización:
6.- Procedemos del mismo modo que para el tercer nivel y nos quedamos con las ramas
de menor error acumulado:
7.- Con esta metodología aplicada al resto de niveles, las cuatro ramas seleccionadas que
llegarían a los cuatro últimos estados dada su menor acumulación de error acumulada
serán:
Por lo tanto, el trayecto óptimo es aquel que finaliza en el estado 11, ya que tiene tres
errores acumulados frente a los cuatro de los otros estados. Así pues, el trayecto
recorrido óptimo es
Una explicación del algoritmo, puede ser visualizada en los recursos de la tabla 17.
153
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Sigue al autor.
facebook.com/carlosalberto.amayatarazona @carlosamayat
SIMULADORES:
Los simuladores son compatibles con cualquier sistema operativo. Solo requieren que
tenga instalado el plugin de java en su navegador web. Puede realizar la descarga de los
simuladores desde los siguientes recursos:
http://www.java.com/es/do
wnload/index.jsp
JFLAP V 7.0 http://datateca.unad.edu.co/contenidos/301405/ http://www.jflap.org/getjflap.html
SIMULADORES/JFLAP.zip Guía o Tutorial:
http://www.jflap.org/tutorial/
Tutorial:
http://sistemas.uniandes.edu.co/~isis1106/doku
wiki/lib/exe/fetch.php?media=tutoriales:tutorial_v
as.pdf
Ejercicio 1: Una de las operaciones que se puede formar con las palabras de un alfabeto
es “La potencia”. Dada una palabra w ∑* se define inductivamente la potencia n-ésima
de w, que se denota w n , como: w 0 = cadena vacía, w n = w . w n 1 para n > 0
Si w = aba es un palabra sobre el alfabeto {a,b} entonces:
A. 2
= aabb
B. 2
= abaaba
C. 2
= abab
D. 2
= ababab
Ejercicio 2: Indique cuál de las siguientes afirmaciones referidas a lenguajes del alfabeto
∑ = {0,1,2} son ciertas:
Ejercicio 3: Sea el alfabeto ∑= {a,b} con la Expresión Regular: a(a+b), identifique las
cadenas válidas que se pueden generar:
A. {aba, aab,}
B. {a, aab, abb}
C. {aa, ab,}
D. {a, b, aa, bb}
155
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Ejercicio 3.1 Para el siguiente autómata, identifique cuál es la Expresión Regular (ER)
que mejor lo representa:
A. (ab+ba) + a
B. (ab + aba)*
C. a +(ab)*
D. ab +(ab)*
1. La ER (0+1)*01 genera cadenas válidas para el autómata del ejercicio doce (12)
pero no para las del autómata del ejercicio once (11).
2. La ER (0+1)*01 genera las mismas cadenas para el Autómata del ejercicio dos
(2) y del ejercicio doce (12)
3. La ER (0+1)*11(01)* genera cadenas válidas para el autómata del ejercicio
dos (2) pero no para las del autómata del ejercicio doce (12).
4. La ER (1*00*1(00*1)*1)*1*00*1(00*1)* genera las mismas cadenas para
el Autómata del ejercicio doce (12) y del ejercicio once (11).
156
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Q es un conjunto de estados.
∑ es el alfabeto de entrada
f: Q X ∑ → Q es la función (total) de transición.
q 0 Q es el estado inicial.
F Q es el conjunto de estados finales.
2
A. { a| ϵ {a,b} }
*
B. { a | ϵ {a,b} }
C. Todas las palabras que terminan en a y que estén precedidas por
una b
D. Todas las palabras que terminan en dos a´s
158
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
n *
A. L = (A 2 ) = {0, 001, 01111, …} = { 1(10) /n ≤ 0} La expresión regular es: 0(01)
n *
B. L = (A 2 ) = {1, 101, 10101, …} = { 1(01) /n ≥ 0} La expresión regular es: 1(01)
n
C. L = (A 2 ) = {0, 111, 11100, …} = { 1(10) /n = 0} La expresión regular es: 1(01)
n *
D. L = (A 2 ) = {0, 001, 00100, …} = { 1(01) /n ≠ 0} La expresión regular es: 0(01)
A. (10 + 0)* 10
B. (10 + 0)
C. (10 + 0)*
D. (0+1+0*)
159
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Ejercicio 10: Una de las operaciones que permiten las “Expresiones Regulares” es el
“Cierre u operación estrella”. Si es una expresión regular, entonces * es una
A. , , , , …
B. , , , , … ,
C. , , , , …
D. , , , , , … ,
.
Ejercicio 12: Analice el siguiente Autómata y determine cuáles apreciaciones son válidas
en su análisis:
160
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Ejercicio 13: Dado los siguientes dos autómatas A y B, analice los enunciados dados e
identifique cuales son verdaderos.
161
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Para el ejercicio analice la cadena sin tener en cuenta si es válida o no, (aceptada
o no aceptada)
Ejercicio 16: Para el siguiente autómata finito determinístico (AFD), identifique que
afirmaciones son válidas para la expresión:
Tenga en cuenta que se denomina cadena, palabra o frase a una secuencia finita de
símbolos de un alfabeto ∑. Estas cadenas son denotadas como w.
162
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
A. Reconoce las palabras sobre a,b que terminan en un número par de a´s
contiguas
B. Reconoce solo las frases sobre a,b que empiezan por b
C. Reconoce las palabras sobre a,b que tienen un número par de a´s contiguas.
D. Reconoce solo las cadenas sobre a,b que empiezan por a
A. 0110
B. 0111
C. 0101
D. 0011
1. δ (q2 , a ) = q 2 δ (q2 , b ) = q 3
2. δ (q 4 , a ) = q 4 δ (q 4 , b ) = q 4
3. δ (q 3 , a ) = Ǿ δ (q 3 , b ) = q 3
4. δ (q 1 , a ) = q 2 δ (q 1 , b ) = q 4
Ejercicio 19: Identifique de los cuatro autómatas que se muestran a continuación, (A, B,
C o D), cuál reconoce las cadenas que contienen la subcadena aba y cuya definición
formal sería la siguiente:
K = {1,2}
Σ={a,b}
s={1}
F={2}
={((1,a),1),((1,b),1),((1,aba),2),((2,a),2),((2,b),2)}
164
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Ejercicio 21: Dado el Autómata con la siguiente tabla de transición, identifique las
cadenas que son válidas para el lenguaje que acepta.
165
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Ejercicio 22: Indique cuál de las siguientes afirmaciones referidas a los autómatas de la
figura, son ciertas. (Observe que hay una transición que no lee ningún símbolo de la
cadena de entrada):
1. Los autómatas reconocen el lenguaje formado por todas las cadenas que
empiezan por 1 y que no terminan en dos ceros consecutivos.
2. Ambos autómatas reconocen el mismo lenguaje incluyendo la cadena vacía.
3. El autómata A es más potente por ser No Determinista.
4. Cualquier autómata no determinista que reconozca el mismo lenguaje que el
autómata B tiene al menos cuatro estados.
166
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Ejercicio 26: La relación entre un AP y un LLC (Lenguaje Libre de contexto) permite que
dada una Gramática G, existe entonces un AP que acepta exactamente el lenguaje
generado por G. Dado el siguiente autómata de pila (AP) cuyo funcionamiento se
representa en la siguiente tabla, identifique la gramática correcta y sus reglas que aceptan
el LLC dado por el AP.
167
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Ejercicio 27: Dadas las siguientes gramáticas, asócielas a los enunciados que se
presentan de forma correcta. Tenga en cuenta que como Símbolo inicial se toma a “S”
que son los estados iniciales y como símbolos no terminales los estados en el orden de su
nombramiento. El conjunto finito de símbolos terminales son los símbolos del alfabeto ∑
del autómata.
168
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Ejercicio 28: Dada la siguiente gramática G= (VN= {S, A}, VT= {0,1}, S, P) donde P son
las producciones:
Ejercicio 29: Las Gramáticas regulares pueden ser de dos formas: Lineales por la
derecha y Lineales por la izquierda. También pueden ser ambiguas si existen dos árboles
de derivación distintos para una misma palabra. Dada la Gramática G = {S, A}, T= {0,1}
representada en los dos árboles de derivación siguiente, identifique el tipo de
producciones y el lenguaje que generan:
169
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Ejercicio 30: Para el autómata del ejercicio anterior, (ejercicio 201 – 1ESTE ES)
determine que afirmación es válida si se presenta la siguiente gramática. Para el análisis,
asigne un nombre a los estados del autómata que apliquen a la gramática dada.
S → xS
S → yA
S → zB
A → yA
A → yB
B → zB
B→
A → xzS | B A → xzS | yz |
B → yz |
Gramática G 1 Gramática G 2
170
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Ejercicio 32: Las gramáticas del ejercicio anterior (ejercicio 31), tienen dos
particularidades que son válidas afirmarlas:
1. Las reglas de las gramáticas difieren por que tienen diferentes terminales.
2. La palabra generable por la gramática G 1 y G 2 es xxzyzy
3. La palabra generable por la gramática G 1 y G 2 es xyzyzy
4. La lista de reglas están denotadas de forma comprimida.
S → aA | bA
A → aB | bB | a
B → aA | bA
A. {a,b}
B. El conjunto de cadenas que pueda generar la ER = a*b*a
C. {aa, aaaa, bbba, ba, bba, baaa, baba}
D. {baaaa, aaaaa, bba}
171
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
172
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
Ejercicio 38: Un problema de decisión (PD) es aquel formulado por una pregunta
(referida a alguna propiedad) que requiere una respuesta de tipo “si/no”. Para la Teoría
de Lenguajes, un problema de decisión es “insoluble” cuando:
Ejercicio 39: Dada la siguiente Máquina de Turing (MT), determine que afirmaciones son
válidas para su análisis:
173
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
8. Ejercicio 40: Con referencia a una Máquina de Turing (MT) de dos direcciones: Una
Máquina de Turing con una cinta infinita en un sentido puede simular una Máquina de
Turing con la cinta infinita en los dos sentidos. Sea M una Máquina de Turing con
una cinta infinita en los dos sentidos, entonces:
174
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
BIBLIOGRAFIA
JFLAP, (2004, 2008) JFLAP Version 7.0 Release August 28, 2009. Extraído
el 30 de Mayo de 2011 desde http://www.jflap.org/
Hall
175
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona
176