Está en la página 1de 187

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA

ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA


PROGRAMA DE INGENIERA DE SISTEMAS

301405 AUTMATAS Y LENGUAJES FORMALES


AUTOR:
CARLOS ALBERTO AMAYA TARAZONA
(Director Nacional)
http://www.camayat.com

Duitama (ZCBOY)

Versin 4 2014.

CONTENIDO
Primera Unidad

Captulos
1. Conceptos Bsicos

Lecciones
1. Introduccin e Historia.
2. Alfabetos, Cadenas y Lenguajes
3. Autmatas y Lenguajes.

I. LENGUAJES
REGULARES

4. Lenguajes Regulares
5. Autmata
2. Autmatas Finitos

3. Expresiones Regulares

Segunda Unidad

Captulos

6. Definicin Formal de Autmatas Finitos


7. Autmatas Finitos Determinsticos (AFD)
8. Autmatas Finitos no Determinsticos (AFND)
9. Autmatas Finitos con Transacciones
10. Lenguaje Aceptado por Autmata Finito
11.Lenguajes Regulares y Expresiones Regulares
12. Significado de las Expresiones Regulares
13. Autmatas Finitos y Expresiones Regulares
14 Equivalencia de Autmatas Finitos
Determinsticos y Autmatas Finitos no
Determinsticos
15 Minimizacin de Autmatas
Lecciones
16. Gramticas Regulares

4. Conceptos Generales

17. Lenguajes libres de contexto y sus mquinas


18. Arboles de derivacin
19. Transformacin de las GLC y Formas Normales
20.Limitacioes de los LLC

5. Autmatas a Pila
II. LENGUAJES
INDEPENDIENTES DEL
CONTEXTO

21. Definicin de Autmata con Pila


22. Funcionamiento de Autmata con Pila
23. Diseo de Autmata con Pila.
24. Funciones que se aplican sobre los stacks (Pilas)
25. Combinacin modular de los autmatas con Pila

6. Propiedades de Lenguajes
Independientes de Contexto

26. Lenguaje aceptado por un AP


27. Relacin entre los AP y los LLC
28. Propiedades de clausura de los Lenguajes
Libres de Contexto
29. Algoritmos de decisin para los LLC
30.Problemas Indecibles para Lenguajes Libres de
Contexto

Tercera Unidad
III. LENGUAJES
ESTRUCTURADOS POR
FRASES

Captulos
31. Formalizacin de las MT
7. Mquinas de Turing.

32. Funcionamiento de la Mquina de Turing.


33. Diferencias entre un Computador y una
Mquina de Turing
34. La Mquina Universal de Turing

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

35. Lenguajes aceptados por la MT


8. Mquina de Turing y
Computacin

36. Tesis de Church/Turing


37.Variantes de Una Mquina de Turing

9. Funciones Recursivas

38. Problemas de Hilbert


39. Problemas Insolubles para la Teora de
Lenguajes
40. Lenguajes Decidibles
41. Problemas de Halting
42. Decibilidad de Teoras Lgicas
43. Reducibilidad de Turing
44. Algoritmo de Trellis
45. Algoritmo de Viteri

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Tabla de contenido
LISTA DE FIGURAS................................................................................................................................ 8
LISTA DE TABLAS................................................................................................................................ 10
INTRODUCCIN ................................................................................................................................. 11
ANEXO 1: LISTADO DE SMBOLOS USADOS....................................................................................... 14
ANEXO 2: PRESABERES: TEORA DE CONJUNTOS.............................................................................. 16
I.

GENERALIDADES: ............................................................................................................ 16
I.I OPERACIONES CON CONJUNTOS: ......................................................................................... 17
I.II EQUIVALENCIAS DE CONJUNTOS: ........................................................................................ 19
I.III RELACIONES:........................................................................................................................ 20
I.IV FUNCIONES: ........................................................................................................................ 24

PRIMERA UNIDAD: LENGUAJES REGULARES ..................................................................................... 25


CAPITULO 1: CONCEPTOS BSICOS ............................................................................................... 25
LECCIN 1: INTRODUCCIN E HISTORIA: .................................................................................. 26
LECCIN 2. - ALFABETOS, CADENAS Y LENGUAJES ................................................................. 28
LECCIN 3. AUTMATAS Y LENGUAJES ................................................................................... 32
LECCIN 4. LENGUAJES REGULARES ........................................................................................ 33
LECCIN 5. AUTMATA ............................................................................................................ 36
CAPITULO 2. AUTMATAS FINITOS............................................................................................... 39
LECCIN 6. DEFINICIN FORMAL DE AUTMATAS FINITOS .................................................... 39
LECCIN 7. AUTMATAS FINITOS DETERMINSTICOS (AFD) .................................................... 42
LECCIN 8. AUTMATAS FINITOS NO DETERMINSTICOS (AFND)............................................ 45
LECCIN 9. AUTMATA FINITO CON TRANSICIONES ........................................................... 47
5

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

LECCIN 10. LENGUAJE ACEPTADO POR UN AF........................................................................ 48


CAPITULO 3: EXPRESIONES Y LENGUAJES REGULARES ................................................................. 51
LECCIN 11. LENGUAJES REGULARES Y EXPRESIONES REGULARES ......................................... 51
LECCIN 12. SIGNIFICADO DE LAS EXPRESIONES REGULARES.................................................. 51
LECCIN 13. AUTMATAS FINITOS Y EXPRESIONES REGULARES ............................................. 54
LECCIN 14. EQUIVALENCIA DE AFD Y AFND ............................................................................ 60
LECCIN 15. MINIMIZACIN DE AUTMATAS ......................................................................... 63
UNIDAD 2. LENGUAJES INDEPENDIENTES DEL CONTEXTO ............................................................... 69
CAPTULO 4 CONCEPTOS GENERALES ........................................................................................... 69
LECCIN 16. GRAMTICAS REGULARES ................................................................................. 70
LECCIN 17. LENGUAJES LIBRES DE CONTEXTO Y SUS MQUINAS. ........................................ 76
LECCIN 18. ARBOLES DE DERIVACIN .................................................................................... 78
LECCIN 19. TRANSFORMACIN DE LAS GLC Y FORMAS NORMALES ...................................... 84
LECCIN 20. LIMITACIONES DE LOS LLC.................................................................................... 90
CAPITULO 5. AUTMATAS DE PILA ............................................................................................... 91
LECCIN 21. DEFINICIN DE AUTMATA CON PILA ................................................................. 92
LECCIN 22. FUNCIONAMIENTO DE LOS AUTMATAS DE PILA ............................................... 93
LECCIN 23. DISEO DE AUTMATAS DE PILA ......................................................................... 95
LECCIN 24. FUNCIONES QUE SE APLICAN SOBRE LOS STACKS. (PILAS). ................................ 98
LECCIN 25. COMBINACIN MODULAR DE AUTMATAS DE PILA ........................................ 100
CAPITULO 6: PROPIEDADES DE LOS LENGUAJES INDEPENDIENTES DE CONTEXTO.................... 101
LECCIN 26. LENGUAJE ACEPTADO POR UN AP ..................................................................... 101

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

LECCIN 27. RELACIN ENTRE LOS AUTMATAS DE PILA Y LENGUAJES LIBRES DE CONTEXTO
................................................................................................................................................. 102
LECCIN 28. PROPIEDADES DE CLAUSURA DE LOS LENGUAJES LIBRES DE CONTEXTO.......... 105
LECCIN 29. ALGORITMOS DE DECISIN PARA LOS LENGUAJES LIBRES DE CONTEXTO. ....... 106
LECCIN 30. PROBLEMAS INDECIDIBLES PARA LENGUAJES LIBRES DE CONTEXTO. .............. 108
UNIDAD 3 LENGUAJES ESTRUCTURADOS POR FRASES. ................................................................. 109
CAPITULO 7 MAQUINAS DE TURING. .......................................................................................... 109
LECCIN 31. FORMALIZACIN DE LAS MT. ............................................................................. 110
LECCIN 32. FUNCIONAMIENTO DE LA MQUINA DE TURING. ............................................. 113
LECCIN 33. DIFERENCIAS ENTRE LAS COMPUTADORAS Y LAS MQUINAS DE TURING ..... 116
LECCIN 34. LA MAQUINA UNIVERSAL DE TURING. ............................................................... 117
LECCIN 35. LENGUAJES ACEPTADOS POR LA MAQUINA DE TURING. .................................. 118
CAPITULO 8: MAQUINAS DE TURING Y COMPUTACIN. ............................................................ 120
LECCIN 36. TESIS DE CHURCH /TURING. ............................................................................... 120
LECCIN 37. VARIANTES DE UNA MAQUINA DE TURING. ...................................................... 123
LECCIN 38. PROBLEMAS DE HILBERT. ................................................................................... 124
LECCIN 39. PROBLEMAS INSOLUBLES PARA LA TEORA DE LENGUAJES.............................. 128
CAPITULO 9. FUNCIONES RECURSIVAS ....................................................................................... 129
LECCIN 40. LENGUAJES DECIDIBLES ...................................................................................... 129
LECCIN 41. PROBLEMAS DE HALTING .................................................................................. 131
LECCIN 42. DECIBILIDAD DE TEORAS LGICAS .................................................................... 132
LECCIN 43. REDUCIBILIDAD DE TURING................................................................................ 134
LECCIN 44. APLICACIONES DE LAS MAQUINAS DE ESTADOS. ALGORITMO DE TRELLIS. ..... 135
7

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

LECCIN 45: ALGORITMO DE VITERBI ..................................................................................... 149


SIMULADORES: ................................................................................................................................ 155
ANEXO: EJERCICIOS DE REPASO ...................................................................................................... 156
BIBLIOGRAFIA .................................................................................................................................. 186

LISTA DE FIGURAS
Pg
Figura 1: Grafo relacin binaria
Figura 2: Una Relacin Reflexiva
Figura 3: Una Relacin Antireflexiva.
Figura 4: Una Relacin Simtrica
Figura 5: Una Relacin Antisimtrica
Figura 6: Una Relacin Transitiva
Figura 7: Una Relacin Transitiva (otra forma de representarla).
Figura 8: Proceso de traduccin realizado por un compilador
Figura 9: Clasificacin de los Lenguajes. Jerarqua de Chomsky. N
Figura 10: Mquina de estados. Estructura
Figura 11: Tabla de transicin de un Autmata Finito.
Figura 12: Diagrama de Moore para un Autmata Finito.
Figura 13: Tabla de transicin para un Autmata Finito generado con
software simulador VAS.43
Figura 14: Diagrama de Moore asociado a un AFD.
Figura 15: Diagrama de Moore asociado a un AFND.
Figura 16: Diagrama de Moore asociado a un AFND Figura 17: Lenguaje asociado a un AFD
Figura 18: Propiedades de las ER
Figura 19: ER representada en una mquina de estados
Figura 20: Grfica de transicin (GT)
Figura 21: Operadores bsicos de conversin de AF a ER
Figura 22: Transformacin de Er a AF.
Figura 23: Obtencin de una ER a partir de un AF
Figura 24: Obtencin de una ER a partir de un AF PASO 1
Figura 25: Obtencin de una ER a partir de un AF PASO 2
Figura 26: Obtencin de una ER a partir de un AF PASO 3.
Eliminacin de nodo.
Figura 27: Obtencin de una ER a partir de un AF PASO 4.
Eliminacin de nodo q0.
Figura 28: Obtencin de una ER a partir de un AF PASO 5.
Fusin de expresiones
8

21
22
23
23
23
24
24
33
34
38
41
41

44
47
48
50
53
53
55
55
56
57
58
58
59
59
59

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Figura 29: Equivalencia de una AFND con un AFD


Figura 30: AF distintos que aceptan un miso lenguaje.
Figura 31: rbol de comparacin de AF.
Figura 32: Autmata a minimizar
Figura 33: Eliminacin de estados en un autmata AF
Figura 34: Eliminacin de otros estados en un autmata AF
Figura 35: Eliminacin de otros estados en un autmata AF
Figura 36: Tabla de estados distinguibles
Figura 37: Autmata obtenido de la Gramtica 1.
Figura 38: Autmata obtenido de la Gramtica 1 generado con un simulador.
Figura 39: Autmata obtenido de la Gramtica 2.
Figura 40: Autmata obtenido de la Gramtica 2 generado con un simulador.
Figura 41: AFD y su gramtica.
Figura 42: rbol de derivacin para una secuencia de parntesis
bien balanceados.
Figura 43: rbol de derivacin para la cadena aabbaa
Figura 44: rbol de derivacin para la cadena aabbaa generado en JFLAP
Figura 45: Derivaciones por la izquierda, generadas en JFLAP
Figura 46: Arboles de derivacin para la gramtica G3
Figura 47: Arboles de derivacin para una gramtica ambigua
Figura 48: Arboles de derivacin para una gramtica ambigua para a5
Figura 49: Arboles de derivacin para a5
Figura 50: Arboles de derivacin para parntesis balanceados
Figura 51: Arboles de derivacin para parntesis balanceados
Figura 52: Arboles de derivacin en el lema de bombeo
Figura 53: Formalizacin de un PDA
Figura 54: Transicin de un PDA
Figura 55: Estructura de un PDA para =aabb
Figura 56: Diseo de un PDA para =aabb
Figura 57: Funciones de la Pilas.
Figura 58: Unin de AP.
Figura 59: Autmata AFPD.
Figura 60: Grafo para L finito y L infinito.
Figura 61: Componentes de una MT
Figura 62: Mquina de Turing simulada en JFLAP
Figura 63: Modelo de un sistema de comunicaciones digitales
Figura 64: Cdigo secuencial
Figura 65: Codificador convolucional de m etapas
Figura 66: Mquina de estados. Registro de desplazamiento convolucional
de ratio y una etapa
Figura 67: Mquina de estados. Registro de desplazamiento convolucional
(datos 000 y 100)
Figura 68: Mquina de estados. Registro de desplazamiento convolucional
(datos 010 y 110)
Figura 69: Diagrama de estados para el codificador convolucional de ratio 1/2
9

60
61
62
64
66
66
67
68
73
73
74
75
76
80
80
81
81
82
83
84
84
87
89
91
93
95
97
97
99
100
101
107
111
115
139
140
141
142
142
143
143

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Figura 70: Codificador convolucional de ratio 1/3 y m=3


Figura 71: rbol para un codificador convolucional de ratio 1/2
Figura 72: Diagrama de Trellis (transicin de estados).
Figura 73: Diagrama de Trellis completo (transicin de estados).
Figura 74: Datos correctos codificados
Figura 75: Distancia de Hamming
Figura 76: Distancia de Hamming Nivel 1.
Figura 77: Distancia de Hamming Nivel 2.
Figura 78: Distancia de Hamming Nivel 3.
Figura 79: Diagrama de Viterbi.. Trayecto de recorrido ptimo.
Figura 80: Solucin final Trellis y Viterbi. Datos de entrada 11010011.

144
144
145
146
148
150
150
151
151
152
153

LISTA DE TABLAS
Pg
Tabla 1: Smbolos usados
Tabla 2: Propiedades comunes de las relaciones binarias
Tabla 3: Evolucin Histrica de la Teora de la Computacin
Tabla 4: Recursos web referentes a la historia de la temtica
Tabla 5: Recursos web para alfabetos, cadenas y lenguajes
Tabla 6: Asociacin de gramticas, lenguaje y mquinas.
Tabla 7: Recursos web para construccin de autmatas.
Tabla 8: Recursos web para diagramas de Moore.
Tabla 9: Recursos web para AFND
Tabla 10: Recursos web para cadenas vlidas
Tabla 11: Recursos web para cadenas vlidas
Tabla 12: Recursos web para minimizacin de autmatas
Tabla 13: Recursos web para PDA
Tabla 14: Traza de ejecucin del AP
Tabla 15: Recursos web para PDA
Tabla 16: Recursos web para MT
Tabla 17: Relacin de bits y estados
Tabla 18: Recursos web para el algoritmo de Trellis y Viterbi
Tabla 19: Recursos web para descarga de simuladores.
Tabla 20: Desarrollo de ejercicio autmata finito
Tabla 21: Desarrollo de ejercicios de expresiones Regulares (ER).
Tabla 22: Desarrollo de un ejercicio de minimizacin
Tabla 23: Desarrollo de ejercicio de un APD
Tabla 24: Cdigo Convolucional. Codificacin y decodificacin. Ejercicio.
Tabla 25: Clculo de un dato de entrada a partir de uno codificado.
Tabla 26: Cmo leer una Expresin Regular (ER)

10

14
22
26
28
29
36
39
41
47
50
59
69
76
98
99
116
149
153
154
175
176
178
179
180
182
185

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

INTRODUCCIN
El presente material acadmico y de investigacin que he consolidado, pretende ser una
gua general e introductoria, al basto y grande contenido que abarca la Teora de
Autmatas y lenguajes Formales, recorriendo las temticas, de una manera simple
objetiva y efectiva, dado el alto contenido analtico, matemtico y de comprensin que
tiene las temticas a las que hace referencia la tabla de contenido que se presenta.

El material acadmico que a continuacin se presenta, es producto de la recopilacin


analtica objetiva y crtica de experiencias en la formacin profesional en el rea de la
computacin, matemticas, ingeniera, transmisin de redes de datos, y para el caso el de
la teora de Autmatas y lenguajes Formales, que ya por varios aos y en diferentes
capos de accin se ha tenido que aplicar.

Los contenidos que s e documentan y explican, llevan al lector a que asimile dos
temticas bsicas para esta rea de conocimiento:

Que pueda comprender los conceptos y mecanismos fundamentales para la


definicin
de lenguajes: mecanismos como (expresiones
regulares,
gramticas independientes del contexto y gramticas generales),

Junto al anterior bloque, el lector comprender y abordar los tres tipos de


mquinas correspondientes para el reconocimiento de esos lenguajes como son:
(autmatas finitos, autmatas a pila y mquinas de Turing) y las propiedades
fundamentales de las familias de lenguajes por ellos definidas, tambin realiza el
estudio de las condiciones necesarias para que un lenguaje sea de un tipo
determinado.

La necesidad objetiva de comprender las temticas, sumada a las dificultades que


muchos lectores presentan para comprender y asociar la automatizacin a la solucin de
problemas reales mediante mquinas abstractas o a la identificacin de problemas
solubles, insolubles e indecidibles, me ha llevado a hacer uso de raciocinios sencillos sin
necesidad llegara demostraciones matemticas, jugando un papel secundario la
implementacin de algoritmos.
11

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Se presentan temticas que son base para comprender los lenguajes de programacin de
alto y bajo nivel y que propician la distincin entre lenguajes formales con reglas
sintcticas y semnticas rgidas, concretas y bien definidas, de los lenguajes
naturales como el ingls o el espaol, donde la sintaxis y la semntica no se pueden
controlar fcilmente. Los intentos de formalizar los lenguajes naturales, lleva a la
construccin de gramticas, como una forma de describir estos lenguajes, utilizando
para ello reglas de produccin para construir las frases del lenguaje. Se puede entonces
caracterizar un lenguaje mediante las reglas de una gramtica adecuada.

Los temas sobre autmatas, computabilidad, e incluso la complejidad algortmica fueron


incluidos de forma referencial y bsica en cada unidad, ya que como la historia lo dice y
de manifiesto propio, las ciencias de la computacin han usado gran cantidad de ideas
de muy diferentes campos para su desarrollo, y que la investigacin sobre aspectos
bsicos poda cooperar y aumentar los avances de la computacin.

Como elemento determinante para que el lector de manera progresiva y jerrquica


comprende la lgica de este tipo de anlisis matemtico, estn los conceptos previos y
claros que se deben reconocer en el rea de la matemtica y la teora de conjuntos,
funciones, relaciones y principios fundamentales de la lgica, ya que estos temas no son
tratados como temticas en el libro, pero que tienen gran importancia en los fines para los
que se cre este documento.
Muchos autores referenciados en las fuentes bibliogrficos y de los cuales se han tomado
anlisis y ejercicios clave para poder comprender la temtica, usan diferentes tipos de
nomenclaturas, frmulas y smbolos, ya que como tal, los lenguajes, expresiones
regulares, funciones entre otros deben representarse matemticamente. Para
estandarizar de manera sencilla, se presenta como Anexo a este libro, la lista de smbolos
usados y su significado.

La Metodologa que se aplica para que el lector pueda sintetizar su conocimiento y


aplicabilidad en el rea, se basa en el desarrollo d ejercicios de manera simple y objetiva,
recreando mquinas abstractas en simuladores sin necesidad de documentar demasiados
conceptos inicialmente o sin hacer uso de demostraciones matemticas de teoremas,
frmulas o teoras, que quedan para que el lector luego de ver el funcionamiento de la
lgica matemtica aplicada, y a manera de ingeniera inversa, resuelva nudos analticos
en este tipo de conceptos y anlisis matemticos.
12

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Como complemento a una aplicabilidad que tienen las Teora de lenguajes y autmatas,
se explica el funcionamiento del algoritmo de la modulacin codificada de Trellis y la
Decodificacin de Viterbi (algoritmos creados para el aumento de velocidad y para la
mejora de la veracidad) codificaciones de canal y de fuente en transmisin de datos como
tcnicas de deteccin y correccin de errores. Este algoritmos se explica mediante los
diagramas de rbol y grafos para cdigos 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 autora
propia y que estn a disposicin para su descarga o visualizacin.

13

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

ANEXO 1: LISTADO DE SMBOLOS USADOS


Los siguientes son los smbolos usados en el presente libro y son la base para todos los
ejercicios y temticas expuestas. Muchos autores difieren en el tipo de simbologa usada,
pero se ha procurado consolidar y usar los ms comunes acorde a su significado y
aplicabilidad.
Tabla 1: Smbolos usados
Smbolo
AZUL
NARANJA
NEGRO
ROJO

L
M
A
K
F
S

<

Nombre
Estados
Transiciones
Smbolos y
cadenas

Significado /Ejemplo
Para efectos de representar diagramas de Moore, tablas de
transicin: El libro representa los componentes diferenciando
colores: Ejemplo:

Estado inicial
Estado final
(doble crculo)

Sigma
Letra
Ele
mayscula
Eme
A
Ka
Efe
Ese
Sigma
Ro
Omega
Upsilon
Alpha
Beta

Alfabeto
Lenguaje sobre un determinado alfabeto

Lambda
Delta
Gamma
Gammar
Ge
Unin
Interseccin
Comparacin
Comparacin
Comparacin

Representa una cadena vaca

Mquina de estados Finitos


Autmata
Suele denotar el conjunto de estados de un autmata
Suele denotar el conjunto de estados finales de un autmata
Suele denotar el estado inicial de un autmata
Denota una funcin.
Funcin de transicin de un autmata
Denota una cadena o palabra sobre un alfabeto
Denota una cadena o palabra sobre un alfabeto
Otras cadenas. En algunos caso indica una Expresin Regular (ER)
Otras cadenas. Muy usado en denotar cadenas en gramticas.

Suele denotar el Alfabeto de una Pila (AP) (PDA)


Suele denotar un conjunto de cadenas de un PDA
Representa una gramtica

Menor o igual que


Mayor o igual que
Menor que

14

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

>
=
|
*

|A|

Ac
R
R 1

Comparacin
igualdad
mid
estrella
Pertenece
No pertenece
Incluye
Subconjunto
propio
vaco

Mayor que

Ejemplo: A B

A est incluido en B

Conjunto vaco

Indica
cantidad
Complemento

Tamao de un conjunto. Ejemplo para el conjunto A.

Relacin
Inverso

Para denotar una relacin binaria


Inverso de una Relacin R

Negacin
lgica (neg)
Implicacin en
un
solo
sentido

Una barra colocada sobre otro operador es equivalente a un


colocado a la izquierda.
Lgica proposional entonces. }
Con la flecha sencilla a la derecha en gramticas, indica las
producciones que se pueden tener.

Doble
implicacin

Lgica proposional Si A es verdadera entonces B tambin.

Forall
Exists
Mid

Se lee: Para todo


Se lee Existe
Separa producciones en una gramtica. En algunas expresiones se
lee tal que
Fuente: El Autor

Complemento de un conjunto. Ejemplo para el conjunto A.

15

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

ANEXO 2: PRESABERES: TEORA DE CONJUNTOS


I.

GENERALIDADES:

Las nociones bsicas de la Teora de conjuntos, son necesarias para el inicio del estudio
de la Teora de la Computacin.
Un conjunto es una coleccin de objetos llamados elementos del conjunto. Si definimos
un conjunto como A y a es un elemento de ese conjunto A, se usa la notacin a A (se
lee a es un elemento de A). Por lo contrario b A indica que b no es un elemento de A.
Si

a1,a2,,.an, son elementos de A, entonces se debe indicar as : A={a1,a2,.an}. La

caracterstica de un conjunto es dada por sus elementos ms no por el orden en que se


listan, es por ello que {a,b,c,d} y {d,a,c,b} denotan el mismo conjunto. Caso diferente
cuando veamos cadenas o expresiones de autmatas en el que el orden de las mismas
denotar cadenas diferentes.
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 vlido 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} .
E conjunto {{a,b}} tiene un nico elemento: {a,b}
Si A y B son conjuntos y todos los elementos de A son tambin elementos de B, se
escribe A B y se dice que A es un subconjunto de B. Tambin podemos decir que A est
incluido en B Ejemplo 1: Si A={1,2,3} y B={0,1,2,3,4,5,6,7} se obtiene A B y es vlido
afirmar que B no es un subconjunto de A porque los elementos 0,4,5,6,7 no lo son del
conjunto A.
Una explicacin concreta de subconjunto propio: Cualquier conjunto es un subconjunto de
s mismo. Si A es un subconjunto de B pero A no es igual a B se dice que A es un
subconjunto propio de B y se nota como A B.
Teorema 1. Si A B y B A simultnameamente, entonces todos los elementos de A
estn en B y todos los elementos de B estn en A. Por lo tanto:
Si A B y B A , tenemos que A=B
Teorema 2. Si A B y B C , entonces A C
16

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Conjunto Vaco: Es llamado tambin nulo y es aquel que no tiene elementos. Se denota
como . El conjunto vaco es un subconjunto de todos los conjuntos; por lo cual es vlido
denotar: A para todo conjunto A.
Tamao de un conjunto: El tamao de un conjunto es el nmero de elementos que
contiene, y se representa como: |A| para un conjunto A.
Ejemplo 2

El tamao de {1,2,3,4,5} es 5
E tamao de {{a,b,c} , {a}} es 2 siendo el primero {a,b,c} y el segundo {a}

El orden de los elementos de un conjunto es irrelevante.


Ejemplo 3 El conjunto A = {{a,b}, {c}} y el conjunto B={{c},{b,a}} son iguales: A=B
Descripcin matemtica del contenido de un conjunto: Un conjunto se puede
especificar enumerando sus elementos entre llaves y separados por comas y esto es lo
que se llama definicin por extensin. muchas veces y para el caso de la Teora de
Autmatas que trata este libro, no es posible especificar elementos de un conjunto o
alfabeto porque el conjunto es infinito y entonces se usa una definicin por comprensin, es
decir, haciendo referencia a otros conjuntos (conjuntos referenciales) y a propiedades que
los elementos puedan tener.
A travs de desarrollo de la temtica, y especficamente para poder describir autmatas,
lenguajes y leer expresiones regulares, tendremos que aprender a leer funciones de
transicin, tuplas entre otros. Un buen ejercicio es empezar a interpretar lecturas y que
de forma general se definen como:
B= {x A | x cumple la propiedad P}
Sea P(x) una proposicin sobre x. La notacin {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
proposicin verdadera. Ejemplo 4:
{x | x y x 7} hace referencia al conjunto {0,1,2,3,4,5,6}

I.I OPERACIONES CON CONJUNTOS:


En aritmtica bsica se pueden trabajar tres operaciones: sumar restar y multiplicar dos
nmeros. E la teora de conjuntos existen tres operaciones que son anlogas a la suma,
resta y multiplicacin.

17

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Unin de Conjuntos: La unin de conjuntos A y B se denota por A B y es un conjunto


formado por los elementos que aparecen en A, en B o en ambos:
A B {x | x a V x B}

Ejemplo 5: {1,2,3} {3,4} = {1, 2, 3, 4}. La unin de conjuntos es conmutativa y


asociativa.
Interseccin de conjuntos: x aparece simultneamente en A y B
A B {x | x a x B}

La interseccin es conmutativa y asociativa


Ejemplo 6: Sea el conjunto A= {1,2,3} y B = {3,4} se tiene que A B = {3}.
Ejemplo 7: {0} mientras que
Conjuntos Disjuntos: Se dice que A y B son disjuntos si

A B=

lo que es lo mismo, si su interseccin es el conjunto vaco.


Diferencia de conjuntos: A - B, que contiene los elementos de A que no estn en B, esto
es:
A B {x | x a x B}

Ejemplo 8: {1,2,3,4,5} {3,4} = {1,2,5}. La resta o diferencia de conjuntos no siempre


le quita elementos al primer conjunto; por ejemplo {1,2,3}{4,5} = {1,2,3}. La diferencia
de conjuntos no es ni asociativa ni conmutativa.
Producto (Producto Cartesiano).De dos conjuntos AXB, es el conjunto de pares
ordenados (a,b) tales que:
AXB {( x, y ) | x A y B}

Ejemplo 9: {1,2}x{3,4,5} {(1,3), (1,4), (1,5), (2,3), (2,4), (2,5)}

18

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

El tamao de un producto cartesiano AB es |A| multiplicado por |B|. El producto


cartesiano no es conmutativo, pues no es lo mismo un par (a, b) que uno (b, a), ni
asociativo, pues no es lo mismo (a, (b, c)) que ((a, b), c).

I.II EQUIVALENCIAS DE CONJUNTOS:


Bsicamente 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

Muchos teoremas y demostraciones surgen de las combinaciones de estas cuatro


operaciones. Es suficiente con comprender que elementos pertenecen a un conjunto
validados por alguna propiedad u operacin que les preceda. Algunas propiedades
derivadas de etas operaciones son:

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 )

A ( B C ) ( A B) ( A C )

Distributividad:

A ( B C ) ( A B) ( A C )

Absorcin:

Leyes de Morgan:

A ( A B) A ; A ( A B) A

A B A B

se suele denotar tambin como:

( A B) C A C B C

A B A B

se suele denotar tambin como:

( A B) C A C B C

Doble complemento. ( AC ) C A

Ejemplo 10 del uso de estas equivalencias: Usando la unin y el complemento, se puede


expresar una interseccin de conjuntos. ( A B) (( A B)C )C ( AC BC )C

19

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Conjunto Potencia: Se denota como 2 A . La coleccin de todos los subconjuntos de A es


a su vez un conjunto llamado conjunto potencia. Al conjunto potencia de A tambin se le
suele llamar conjunto de las partes de A y se nota como P(A).
O de igual forma: 2 A {x | x A}

Ejemplo 11: 2{1, 2,3} { ,{1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3}}
El conjunto vaco siempre forma parte de todo conjunto potencia. La notacin 2 A recuerda
que el tamao del conjunto potencia de A es 2 elevado a la potencia del tamao de A, esto
es, | 2 A | = 2| A| .
Complemento de un conjunto: de un conjunto, es un caso particular de la diferencia,
cuando el primer conjunto es considerado como el universo que contiene todos los
elementos posibles. Sea U un universo, entonces el complemento del conjunto A,
denotada por A c contiene los elementos del universo que no estn en A.

Ejemplo 12: Sea U (El Universo de los nmeros naturales), el complemento de los
nmeros mltiplos de tres (3) {3,6,9,12,15,...}c = {1,2,4,5,7,8,10,11,13,14, .}.
Se concluye que A Ac U para todo conjunto A; adems A Ac

I.III RELACIONES:
Se derivan del producto cartesiano de conjuntos. Precisamente se llama relacin a todo
subconjunto de un producto cartesiano. En esencia combinaciones de objetos de un
determinado tipo que estn relacionados de alguna forma.
Relacin Binaria: La relacin binaria definida en un conjunto A es un subconjunto del
producto cartesiano A x A.
Ejemplo 13: Sea el conjunto A = {a, b, c}. El grafo de la figura (1) representa una relacin
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 BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Figura 1: Grafo relacin binaria

Fuente:<El autor>

Se dice que dos elementos a y b estn relacionados, y se escribe a R b, a est


relacionado con b mediante la relacin binaria R, cuando el par ordenado (a,b) pertenece
al subconjunto del producto cartesiano que define la relacin.
Ejemplo 14: La relacin contiene los pares de los nmeros naturales tales que el primer
componente es menor o igual al segundo, esto es,
= {(1,1),(1,2),(1,3),(1,4),(2,3)}
Tngase en cuenta que se llama par ordenado a una pareja de objetos escritos entre
parntesis y separados por comas.
Cuando se trabajan relaciones es importante tener en cuenta:
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 )

Sin embargo:

{a, b} {b, a}

El orden si influye, sin embargo, no todos los subconjuntos del producto cartesiano,
pueden ser aceptados como la relacin de la condicin que exprese. Algunas
caractersticas de estas relaciones son:
Inverso de una Relacin: Se llama inverso de una relacin R, denotado por R 1 , 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 BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

R 1 {( y, x) | ( x, y) R}
Ejemplo 15: El inverso de la relacin {(1,2),(2,3),(1,3)} es {(2,1),(3,2),(3,1)}
Propiedades ms comunes de las Relaciones Binarias. No se citan olas que se
derivan de las bsicas que se relacionan a continuacin.
Tabla 2: Propiedades comunes de las relaciones binarias
Propiedad

Reflexiva
Antireflexiva
Simtrica
Antisimtrica
Transitiva

Condicin

R es reflexiva si a A : aRa
R es antireflexiva si a A : (aRa ) aRa
R es simtrica si a, b A : (aRb) (bRa )
R es antisimtrica si a, b A : (aRb) (bRa )
R es transitiva si a, b, c A : (aRb) (bRc) (aRc)
Fuente: El Autor

La Relacin es una caracterstica que se debe aplicar


Reflexiva: Cada elemento tiene un bucle. Ejemplo 16 Si A = {a,b,cd} y R es una relacin
ser igual que o de la forma (x,x) se tiene: R={(a,a),(b,b),(c,c),(d,d)}.

Figura 2: Una Relacin Reflexiva

Fuente:<El autor>

Antireflexiva: Ningn elemento tiene un bucle. Ejemplo 17 Si A={1,2,3,4} y R es la relacin


menor que, se tiene: R={(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)}

22

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Figura 3: Una Relacin Antireflexiva.

Fuente:<El autor>

Simtrica: Cada relacin 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)}.
Figura 4: Una Relacin Simtrica

Fuente:<El autor>

Antisimtrica: Ninguna flecha de ida tiene otra de vuelta, salvo en el caso de los bucles,
que estn permitidos. Ejemplo 19 Si A = {1, 2, 3, 4} y R es la relacin 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)}
Figura 5: Una Relacin Antisimtrica

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 relacin 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 BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Figura 6: Una Relacin Transitiva

Fuente:<El autor>

Otra forma de interpretar esta relacin dice que siempre que contiene los pares (x,y) y (y,
z) tambin contiene (x, z). Por ejemplo, la relacin {(1,2), (2,3), (1,1), (1,3)} es transitiva,
pero {(2,3), (1,2), (1,1)} no lo es.
Figura 7: Una Relacin Transitiva (otra forma de representarla).

Fuente:<El autor>

Un caso especial de estas relaciones y equivalencias se da cuando se encuentra una


relacin binaria R definida en un determinado conjunto y que cumple las propiedades
reflexiva, simtrica y transitiva. Entonces es una relacin de equivalencia.

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 relacin {(1,2), (2,3), (1,3)} no es una funcin,
pero {(1,2), (2,3), (3,3)} s lo es.
En conjuntos, la notacin 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 funcin). En Autmatas.
La funcin suele denotarse con el smbolo

24

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Para la teora de autmatas. Las funciones son vistas desde la perspectiva de lenguajes
aceptados, por eso la temtica que aborda as funciones en conjuntos como las funciones
totales, inyectivas y sobreyectivas, pueden referenciarse en:

PRIMERA UNIDAD: LENGUAJES REGULARES


CAPITULO 1: CONCEPTOS BSICOS
Se da inicio a un concepto: Mquinas secuenciales, que hacen parte tambin del estudio
de la teora de autmatas y que tienen sus inicios en el campo de la Ingeniera
Electrnica. El fin de los modelos no es la de describir detalles de los componentes de
hardware de un computador, sino de determinar caractersticas poco visibles o
intangibles de estas mquinas como por ejemplo capacidad de proceso, memoria,
procesamiento de datos e informacin. Es por ello que se han dividido en diferentes reas
de conocimiento este tipo de estudio como por ejemplo: Arquitectura de computadores,
Sistemas de informacin, sistemas Distribuidos lgica Matemtica, Ensamble de
mquinas, entre otros.
Iniciamos el estudio de estas maquis abstractas identificando componentes bsicos como
los lenguajes que pueden describirse como elementos que se generan a partir de
cadenas sencillas y que con operaciones entre ellas periten el desarrollo del lenguaje
mismo, que puede generar otros lenguajes ms sencillos mediante operaciones de
conjuntos.
Los Lenguajes ms sencillos son los considerados lenguajes regulares, es decir, los que
se pueden generar a partir de lenguajes de un elemento con la aplicacin de ciertas
operaciones estndar realizadas un nmero finito de veces.
Estos son pues los lenguajes que pueden reconocer los dispositivos llamados Autmatas
finitos (AF) que son mquinas de cmputo con memoria muy restringida. En esta
unidad se considera como segundo aspecto la idea de que un lenguaje no sea regular,
adems de
proporcionar un modelo sencillo de computacin que se puede
generalizar en las unidades siguientes.
Con las caracterizaciones anteriores y otras de los lenguajes regulares se obtienen
y estudian algoritmos para traducir una descripcin de un lenguaje a otra descripcin de
un tipo distinto; se acumula experiencia en el uso de mtodos formales para describir
lenguajes y se intenta responder a preguntas acerca de ellos, son preguntas y ejercicios
25

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

sencillos con sus respuestas y que permiten determinar la utilidad de los lenguajes
regulares en aplicaciones del mundo real.

LECCIN 1: INTRODUCCIN E HISTORIA:


Teora de la computacin: Trata con modelos de clculo abstractos (mquinas
computacionales abstractas). En Teora de la Computacin, a diferencia de las otras
materias, (Arquitectura de Computadores, Teora de Circuitos, Algoritmos y Estructuras de
Datos, Sistemas Operativos, etc.) lo importante no es buscar la mejor manera de hacer
las cosas (optimalidad) sino estudiar qu puede o no puede hacerse con un ordenador
(computabilidad).
La historia de la Teora de la Computacin es bastante interesante. Se ha desarrollado
gracias a confluencia, por afortunadas coincidencias, de distintos campos de
conocimiento y descubrimientos (fundamentalmente matemticos) realizados a principios
del siglo XX. Bajo el nombre Teora de la Computacin se recogen una serie de materias
que constituyen hoy en da los fundamentos tericos de la Informtica: Teora de
Autmatas, Teora de los Lenguajes Formales, Computabilidad y Complejidad
Algortmica.1
Se presenta una concreta evolucin histrica de la Teora de la Computacin:
Tabla 3: Evolucin Histrica de la Teora de la Computacin
EPOCA

PRECURSORES

1845 -1918

Iniciada por Godel, Church, Post, Turing y Kleene, tiene sus races en la
Lgica Matemtica. Ya se haba inventado la Teora de Conjuntos

COMPUTABILIDAD

1936
Tesis de Church

David Hilbert (1845-1918) formul en 1928, durante el transcurso de un


congreso internacional: Si las Matemticas son completas, consistentes y
decidibles.

Una de las cuestiones ms estudiadas en la Teora de la Compatibilidad


ha sido la posibilidad de construir programas que decidan si un
determinado algoritmo posee o no una determinada propiedad.

<NAVARRETE,Isabel. Teora de Autmatas y lenguajes Formales. Departamento Ingeniera. Universidad de Murcia. P


133. Sept 2008>

26

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Turing
>Calculan los algoritmos A y B la misma funcin? (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 funcin f? (Problema de la verificacin)

1967
Complejidad
Algortmica
1954 - 1969

Mquinas
secuenciales y
Autmatas finitos.

Trata la dificultad computacional de las funciones computables. Qu quiere


decir que una funcin f sea ms difcil de computar que otra funcin g?
Rabin sugiri una axiomtica que fue la base para el desarrollo del estudio
de medidas de complejidad abstracta de Blum y otros
El matemtico norteamericano Shanon (que luego se hara famoso por su
Teora de la Informacin) vino a establecer las bases para la aplicacin de
la Lgica Matemtica a los circuitos combinatorios y posteriormente
Huffman en 1954 los amplio a circuitos secuenciales y utiliza conceptos
como estado de un autmata y tabla de transicin. A lo largo de las
dcadas siguientes, las ideas de Shanon se desarrollaron
considerablemente, dando lugar a la formalizacin de una Teora de las
Maquinas Secuenciales y de los Autmatas Finitos (1956). Otros trabajos
importantes sobre maquinas secuenciales son debidos a Mealy (1955) y
Moore.
Un anexo de este libro, hace referencia y explica un ejemplo aplicado a la
Teora de la Informacin.

1956 en adelante
Noam Chomsky
propone varios
modelos para
clasificar:
Gramticas y
Lenguajes formales.

Noam Chomsky propone en 1956 tres modelos para la descripcin de


lenguajes, que son la base de su futura jerarqua de los tipos de lenguajes
(1959), que ayudo tambin en el desarrollo de los lenguajes de
programacin. Chomsky estableci una clasicacion de gramticas de
acuerdo con el formato de sus producciones y distingui cuatro clases
fundamentales de lenguajes y relaciones de inclusin entre ellas.

Fuente: El Autor

Los siguientes recursos web, lo contextualizan en la historia de la temtica. Ver estos


recursos, resulta digerible a historia que un cmulo de texto repleto de fechas y
estadsticas que se tornan poco comprensibles. Les motivo que los revisen para ubicarse
en la medida y alcance de la temtica que estaos abordando.
27

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Tabla 4: Recursos web referentes a la historia de la temtica.


DESCRIPCIN DE VIDEO

CANAL

http://youtu.be/tO-WgRXKcAo
Tras las huellas de la mente de Alan Turing. La polmica historia de esta brillante
mente. Un reto complejo para quienes quieran entender y seguir sus pasos. "Un genio
trgico".
Solo escchenla y quedarn sorprendidos del legado que Alan Turing ha dejado.
Historia de Alan Turing. (23 de Junio de 1912 - 7 de Junio de 1954). Matemtico
ingls. Historia contada al estilo de Diana Uribe. (Historiadora Colombiana a quin
admiro y le expreso mi ms sentido agradecimiento por contarnos todas las historias
que han marcado el rumbo de la humanidad). Le reconozco sus derechos
intelectuales por esta narracin que comparto a quienes me siguen en este reto de
comprender como funcionan las mquinas computacionales.
Cuntame una historia. Alan Turing

http://youtu.be/01LBHqKrVvg

Charla El legado de Alan Turing

http://youtu.be/nSZZRzj6zPI

Pelcula que cuenta la historia de un genio controvertido "Alan Turing". Con subttulos
en espaol.
DANGEROUS KNOWLEDGE. Conocimientos peligrosos. El documental, narrado
por David Malone, se centra en la vida de cuatro brillantes matemticos - Georg
Cantor, Ludwig Boltzmann, Kurt Gdel y Alan Turing -, lo que rode sus
descubrimientos y las reacciones de la comunidad cientfica hacia ellos, as como la
evolucin de sus personas hasta el declive. Sus trabajos han llegado a influir
enormemente incluso en mbitos no cientficos, o en la perspectiva de como
observamos el mundo en general y nuestro pequeo entorno en particularmente.
Desafortunadamente sus mentes privilegiadas no pudieron impedir que llegaran a
enloquecer hasta el punto de cometer suicidio.
O consulta esta URL:
http://www.mates.byethost4.com/audiovisuales/matematicas/documentales-bbc.html
Secretos de la segunda guerra mundial. El cdigo Eigma. El trabajo de los
criptgrafos.

http://youtu.be/uoKLtu2Am6k
PARTE 1: CANAL VIMEO
http://vimeo.com/30482156
PARTE 2: CANAL VIMEO
http://vimeo.com/30641992

http://youtu.be/EVQNosg6wEQ

Fuente: <El autor>

LECCIN 2. - ALFABETOS, CADENAS Y LENGUAJES


Procedamos a definir componentes de un lenguaje, independiente de la jerarqua o
estructura a que pertenezcan, como lo veremos ms adelante:
Definicin1. Un Alfabeto es un conjunto finito A. Sus elementos se llamaran smbolos o
letras.
Para denotar el alfabeto se usara el smbolo o en algunos casos se especificaran con
las primeras letras maysculas del abecedario, dependiendo como se formule el
28

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

problema. Los smbolos de un alfabeto pueden ser nmeros, letras, entre otros y suelen
estar escritos en minsculas.
Ejemplo: Sea A = {0,1} indica el Alfabeto A compuesto por los smbolos 0,1
No hay que confundir los smbolos del alfabeto B con los smbolos del lenguaje (o ms
precisamente meta-lenguaje) que usamos para expresarnos todos los das. Son dos cosas
totalmente distintas. Nosotros para comunicarnos usamos un lenguaje que tiene unos smbolos
que son las letras del alfabeto latino, los nmeros, las letras del alfabeto griego, y una serie de
smbolos especiales propios del lenguaje matemtico (el meta-lenguaje). Con este lenguaje
tambin definimos los conceptos de alfabeto y smbolo.
Definicin2. Una palabra o cadena sobre un alfabeto es una sucesin finita de
elementos de . Se suele denotar con la letra omega
Se concluye que es una palabra sobre , si y solo si U a1....an donde

ai , i 1,......n
Ejemplo 21: Si A = {0,1} entonces 0111 es una palabra sobre este alfabeto.
El conjunto de todas las palabras sobre un alfabeto se nota como *
Definicin3. Si * entonces la longitud de la palabra es el nmero de smbolos de
que contiene.
La longitud de se denota | |. Es decir si a1....an entonces | | = n
Definicin4. La palabra vaca es la palabra de longitud cero. Es la misma para todos los
alfabetos y se denota como
Definicin5. Al conjunto de todas las palabras o cadenas sobre el alfabeto en las que
se excluya la cadena vaca se denota como:
Tabla 5: Recursos web para alfabetos, cadenas y lenguajes.
DESCRIPCIN DE VIDEO

CANAL

CANAL

Descripcin de Lenguaje, Alfabeto


y expresin regular.

http://youtu.be/DnNT1dF4keQ
http://www.veoh.com/watch/v616083236Thn5HJn

Fuente: <El autor>

29

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

OPERACIONES SOBRE EL CONJUNTO UNIVERSAL DE CADENAS *


Las operaciones fundamentales que se derivan del tratamiento del conjunto * , son las
de concatenacin:
Ejemplo 22 Para definir la concatenacin: Dada las siguientes cadenas , formadas desde
el alfabeto :
Concatenacin:

Si , * , a1.....an , b1.....bn , se llama concatenacin de y

a la cadena . (o simplemente ) dada por a1.....anb1.....bm . Ntese que la

concatenacin puede denotarse por un punto en medio de las dos cadenas.


Propiedades de la concatenacin: Algunas de ellas son:
| . || | | |, , *
Asociativa: .(. ) (. ). , , , *
Elemento neutro: . . , *
Otras propiedades derivadas de la concatenacin se referencian as:
Si * entonces

i 1 i ., para todo i 0

Se define una cadena inversa as:


Si a1...an * entonces la cadena inversa de es la cadena 1 an ...a1 *
Lenguajes: Un lenguaje sobre el alfabeto es un subconjunto del conjunto de las
cadenas sobre

: L *

Se notan los siguiente ejemplos de algunos lenguajes (sin definir su jerarqua que se ver
en la siguiente leccin) sobre el alfabeto
Ejemplo 23 Lenguajes: la forma de describir un lenguaje se muestra en los siguientes ejemplos:

L1 {a, b, c, }

Lenguaje uno compuesto por los smbolos a,b,c de un determinado

alfabeto incluyendo la cadena vaca.

30

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

L2 {a i bi | i 0,1,2...} Lenguaje dos compuesto por las palabras formadas de una


sucesin de smbolos a, seguida de la misma cantidad de smbolos b.

L3 { 1 | *} Lenguaje tres compuesto por las palabras formadas con smbolos


del alfabeto y que consisten en dos palabras iguales, separadas por la misma palabra
pero escrita en orden inverso.
Algunas Operaciones sobre Lenguajes: Aplican la unin e interseccin de lenguajes,
dada la condicin de conjuntos que tienen estos lenguajes, entonces aplica tambin las
operaciones de concatenacin.
La concatenacin de dos lenguajes est dada por la siguiente expresin: dados L1
(dos lenguajes sobre el alfabeto )

y L2

L1L2 {12 | 1 L1 , 2 L2 }
Algunas propiedades se definen como.
Asociativa: L1 ( L2 L3 ) ( L1L2 ) L3
Elemento Neutro: {}L L{} L
L = L = (Lenguaje que contiene cero palabras o cadenas)

L0 {}

Li 1 Li L

L* Li Clausura o estrella de Kleene de un lenguaje L es el lenguaje obtenido


i0

de acuerdo a esa expresin.

L Li Obtencin de un lenguaje con la operacin L+


i 1

L L* si L

L L* {}si L

31

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

LECCIN 3. AUTMATAS Y LENGUAJES


Un aspecto a definir y diferenciar cuando se inicia el estudio de Lenguajes y Gramticas,
es la diferencia que existe entre los lenguajes naturales (LN) y los lenguajes de
programacin (LP).
Los (LP) se rigen por reglas de sintaxis y semntica ms complejas y definidas y que
finalmente son manejadas por los computadores. En los lenguajes naturales (LN), estos
no estn tan definidos ni delimitados, ya que estn controlados por reglas gramaticales
que evolucionan y derivan nuevos lenguajes.
Gracias a las estructuras definidas de los lenguajes de programacin (LP) (las reglas
gramaticales (sintaxicas y semnticas) han posibilitados la construccin de traductores
automticos para estos lenguajes. Algunas definiciones que contextualizan estas
temticas referencian a los Compiladores como software que traduce un programa
escrito en un determinado lenguaje de programacin a otro lenguaje de programacin,
con el objeto de generar u programa equivalente que una mquina computacional pueda
interpretar para podrselo mostrar al usuario.
En ciencias de la computacin, intrprete o interpretador es un programa informtico capaz de
analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intrpretes se
diferencian de los compiladores en que mientras estos traducen un programa desde su descripcin
en un lenguaje de programacin al cdigo de mquina del sistema, los intrpretes slo realizan la
traduccin a medida que sea necesaria, tpicamente, instruccin por instruccin, y normalmente no
2
guardan el resultado de dicha traduccin.

El proceso de traduccin realizado por un compilador, es visto en la Figura 8.

PROCESO DE TRADUCTOR REALIZADO POR UN COMPILADOR:


Los pasos de definir e identificar reglas gramaticales, son claves en el proceso de
traduccin.

Tomado de https://es.wikipedia.org/wiki/Int%C3%A9rprete_%28inform%C3%A1tica%29 con acceso Julio


de 2013

32

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Figura 8: Proceso de traduccin realizado por un compilador

Fuente:<El autor>

LECCIN 4. LENGUAJES REGULARES


Entramos a clasificar los lenguajes. Ya que los lenguajes en s son conjuntos de
secuencias de smbolos y cada uno comparte una cierta propiedad. La clasificacin de
estos lenguajes se dio en 1959, cuando N. Chomsky propuso una jerarqua de lenguajes,
donde las clases ms complejas incluyen a las ms simples.
En realidad lo que clasific Chomsky en cuatro familias, fueron gramticas (tngase en
cuenta que de acuerdo a las reglas de produccin de estas gramticas, estas generan
determinados lenguajes). Si se tiene una gramtica G = VN, VT, S, P) se clasifican las
gramticas y los lenguajes generados por ellas de la siguiente forma:

33

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Figura 9: Clasificacin de los Lenguajes. Jerarqua de Chomsky. N

Fuente:<El autor>

TIPO 3: (Gramticas regulares). Los Lenguajes generados por estas gramticas se


llaman Lenguajes Regulares, y el conjunto de todos estos lenguajes es la clase L3, que
es la clase ms pequea, e incluye a los lenguajes ms simples. Un ejemplo de lenguaje
regular es el conjunto de todos los nmeros pares enteros positivos.
Estas gramticas regulares pueden ser a su vez de dos tipos:

Lineales por la derecha: Todas las producciones son de la forma:


A bC
Ab
A

dnde:

A,C VN

b VT

Lineales por la Izquierda: Todas las producciones son de la forma:


A Cb
Ab
A

Para cada Gramtica lineal por la derecha existe una Gramtica lineal izquierda que
genera el mismo lenguaje y viceversa.
Los Lenguajes Regulares son lenguajes formales que tienen estas caractersticas:
34

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Puede ser descrito mediante una expresin regular (expresar de forma compacta
cmo son todas las cadenas de smbolos que le pertenecen).
Puede ser generado mediante una gramtica regular (obtener todas las cadenas
de smbolos que le pertenecen).
Puede ser reconocido mediante un autmata finito (saber si una cadena de
smbolos pertenece a l o no)
TIPO 2: (Gramticas libres del contexto). Las producciones son de la forma:
A
donde:

A VN

(VN U VT)*

Los lenguajes generados por este tipo de gramticas se llaman lenguajes libres del
contexto y la clase es L2, que incluyen a los Lenguajes Regulares. Por ejemplo, la mayora
de los lenguajes de programacin son Lenguajes Libres de Contexto.
TIPO 1: (Gramticas sensibles al contexto). Las producciones son de la forma:

A
donde , V* y V+ Se interpreta que A es una variable y ,
son cadenas cualesquiera que pueden contener variables y constantes.

Los lenguajes generados por las gramticas de tipo 1 se llaman lenguajes sensibles al
Contexto y su clase es L1:
TIPO 0: (Gramticas con estructura de frase) Son las gramticas ms generales, que por
ello tambin se llaman gramticas 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 vaco

Los lenguajes generados por estas gramticas son los lenguajes con estructura de frase,
que se agrupan en la clase L0: Estos lenguajes tambin se conocen en el campo de la
Teora de la Compatibilidad como lenguajes recursivamente enumerarles.

35

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

La siguiente tabla muestra la asociacin de las gramticas con el lenguaje que genera y el
tipo de mquina abstracta que la trabaja:
Tabla 6: Asociacin de gramticas, lenguaje y mquinas.
GRAMTICAS

LENGUAJES

MAQUINAS

Regular o de Tipo 3

Regular o de Tipo 3

Autmatas Finitos

Libre de contexto o de Tipo 2

Libre de contexto o de Tipo 2

Autmatas de Pila

Sensible al contexto o de Tipo


1

Sensible al contexto o de Tipo


1

Autmatas
acotados

Sin Restricciones o de Tipo 0

Sin Restricciones o de Tipo 0

Mquinas de Turing (MT).

linealmente

Fuente:<El autor>

Cuanto menor es el tipo, mayor es el poder expresivo del lenguaje generado y ms


complejidad tiene su tratamiento por parte de una mquina.
Finalmente se define un Teorema 4: (Jerarqua de Chomsky) Dado un
alfabeto , el conjunto de los lenguajes regulares sobre est incluido
propiamente en el conjunto de los lenguajes libres de contexto y este a su vez
est incluido propiamente en el conjunto de los lenguajes sensibles al
contexto, que finalmente est incluido propiamente en el conjunto de
lenguajes con estructura de frase.
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
gramtica de tipo i. La clase o familia de lenguajes de tipo i se denota por Li.

LECCIN 5. AUTMATA
La palabra autmata evoca algo que pretende imitar las funciones propias de los seres
vivos, especialmente relacionadas con el movimiento, por ejemplo el tpico robot
antropomorfo. Un ejemplo de una maquina real que automatiza un proceso puede ser
una mquina empacadora de algn producto que se fabrique en serie y con una serie de
instrucciones, pasos y caractersticas definidas e iguales para cada salida (producto final).

36

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

En el campo de los Traductores, Procesadores, Compiladores e Intrpretes, lo


fundamental no es la simulacin del movimiento, sino la simulacin de procesos para
tratar informacin. Este es el enfoque dado a la temtica de este curso.
Las maquinas que se estudiarn son abstracciones matemticas 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 analoga).
La informacin se codifica en cadenas de smbolos, y un autmata es un
dispositivo que manipula cadenas de smbolos que se le presentan a su entrada,
produciendo otras tiras o cadenas de smbolos a su salida.
El autmata recibe los smbolos de entrada, uno detrs de otro, es decir
secuencialmente. El smbolo de salida que en un instante determinado produce un
autmata, no slo depende del ltimo smbolo recibido a la entrada, sino de toda la
secuencia o cadena, que ha recibido hasta ese instante.
En esta parte estudiaremos las maquinas abstractas ms simples, los autmatas finitos,
las cuales estn en relacin con los lenguajes regulares
Todo lo anterior conduce a definir un concepto fundamental: estado de un
autmata que trata la temtica de modelado de sistemas discretos. La nocin ms
bsica de los modelos de eventos discretos es la de estado. Un estado es una situacin
en la que se permanece un cierto lapso de tiempo.
Se expresan los modelos de estados y eventos de manera grfica. (En la Tabla 1:
Smbolos usados encontrar una descripcin grfica de estos elementos). Los estados se
representan por valos, y los eventos por flechas entre los valos, llamadas transiciones.
Dentro de cada estado se escribe su nombre, mientras que al lado de las transiciones se
escribe el nombre del evento asociado. El estado inicial est siendo indicado por un
tringulo o flecha y un estado final o de aceptacin (halt) mediante doble crculo. Los
estados finales indican que cuando se llega a ellos, la secuencia de eventos que llev
hasta ah puede considerarse como aceptable
Los estados son la base de un diseo de los modelos que estamos estudiando, pues
recuerdan las situaciones bsicas por las que pasa el proceso.
Algunas caractersticas de diseo a tener en cuenta al hacer modelos de estados y
eventos:
Las condiciones asociadas a los estados deben ser excluyentes, esto es, no
deben verificarse varias simultneamente.
37

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Las condiciones asociadas a los estados deben ser comprensivas. Se deben


cubrir todas las combinaciones posibles entre todos los estados.
Entre dos eventos o transiciones siempre debe haber un estado
Errores que ms frecuentemente se cometen al hacer modelos de estados y eventos:

Confundir estados con eventos o transiciones.

Implementar estados no excluyentes (por ejemplo con la misma etiqueta).

Formular estados no tiles, donde excluyan situaciones por evaluar.

MQUINA DE ESTADOS FINITOS: Describimos ahora las maquinas abstractas de ac


en adelante para el curso y les identificamos los siguientes componentes:
Figura 10: Mquina de estados. Estructura

Fuente:<El autor>

Una cinta de entrada;


Una cabeza de lectura (y eventualmente escritura);
Un control.
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 smbolo lo lee y manda esta
38

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

informacin al control (digmoslo as controlado por unas reglas o producciones). El


recorrido puede ser a izquierda o derecha segn el diseo de la mquina.
La aguja del control puede estar cambiando de posicin, (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.
Tabla 7: Recursos web para construccin de autmatas.
DESCRIPCIN DE VIDEO

Construccin, diseo e
interpretacin de los
componentes de un autmata
(tuplas)

CANAL

CANAL

http://youtu.be/HF9-e28TWb0

http://www.veoh.com/watch/v61609207mprr4pFS

Fuente: <El autor>

CAPITULO 2. AUTMATAS FINITOS


Los autmatas finitos son capaces de reconocer solamente, un determinado tipo de
lenguajes, llamados Lenguajes Regulares, que pueden ser caracterizados tambin,
mediante un tipo de gramticas llamadas tambin regulares.
Pero para describir los lenguajes (caracterizarlos) se suelen usarlas Expresiones
Regulares (ER), que abordaremos en lecciones siguientes con detenimiento.
Otra forma de describir la sintaxis de los lenguajes es usando gramticas y sus reglas de
produccin. 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.
En el presente captulo, identificamos los componentes de los autmatas, antes de llegar
a caracterizar los lenguajes que estos puedan generar.

LECCIN 6. DEFINICIN FORMAL DE AUTMATAS FINITOS


La definicin formal implica presentar en un formato matemtico (no en grficos o
ilustraciones) los componentes de un autmata y la informacin de un diagrama de
estados.
Los smbolos y notaciones matemticas usados, sern los que durante todo el desarrollo del
contenido se aplicarn para describir matemticamente estas mquinas. Otros autores usan otra

39

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

simbologa, que solo difiere en la forma mas no en la interpretacin de las definiciones formales de
estas mquinas. Se ha estandarizado las simbologa ms sencilla para efectos de didctica e
interpretacin

Definicin 6: Una mquina de estados finitos M es un quntuplo ( K, , ,s, F) donde:


K

identifica el conjunto de estados.

es el alfabeto de entrada.

sK

es el estado inicial.

F K

es un conjunto de estados finales.

: K x K es la funcin de transicin, que a partir de un estado y un smbolo


del alfabeto obtiene un nuevo estado.
REPRESENTACIN DE AUTMATAS: Los autmatas se pueden representar mediante:
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 ms adelante en la leccin de
Expresiones Regulares). Ejemplo 24 Se puede representar el autmata finito dado por:
M = ({q0, q1, q2, q3} , {0, 1} , , q0, {q1})
Para este ejemplo:
K ={ q0, q1, q2, q3}

={0,1)

s = q0

F = q1

Donde la funcin : {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

40

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

La tabla de transicin correspondiente a este autmata ser:


Figura 11: Tabla de transicin de un Autmata Finito.

Diagramas de Moore: Los diagramas de Moore son otra forma de representar las
funciones de transicin y salida de un autmata. 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 estara definido as:
Figura 12: Diagrama de Moore para un Autmata Finito.

Tabla 8: Recursos web para diagramas de Moore.


DESCRIPCIN DE
VIDEO

Construccin y diseo de
autmatas, Diagramas de
Moore, tablas de transicin.

CANAL

CANAL

http://youtu.be/3kWdHOLw-AQ

http://www.veoh.com/watch/v6168933229Fx8G4A

Fuente: <El autor>

41

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

FUNCIONAMIENTO DE LOS AUTMATAS FINITOS:

Consiste en ir pasando de un estado a otro, a medida que va recibiendo los caracteres de


la palabra de entrada. Este proceso puede ser seguido fcilmente en los diagramas de
estados. Simplemente hay que pasar de estado a estado siguiendo las flechas de las
transiciones, para cada carcter de la palabra de entrada, empezando por el estado
inicial. Para el ejemplo de la Figura 12 y la palabra de entrada 101 el autmata inicia su
operacin en el estado q0 (estado inicial) y al recibir el primer smbolo el 1 , pasa al
estado final q2 (podra decirse que all finalizara pero faltan por evaluar dos smbolos ms
de la cadena o palabra ) luego del estado q2 regresa al estado q1 cuando entra el smbolo
0 y para el siguiente smbolo 1 se cambia de estado al q2 llegando a un estado de
aceptacin y habiendo recorrido la palabra (entonces esta cadena fue aceptada).
Podemos visualizar el camino recorrido en el diagrama de estados como una trayectoria
recorrida de estado en estado en al que la trayectoria para recorrer y aceptar la palabra
101, recorri en su orden los estado q0, q1, q0, q1. El hecho que los dems estados no
hayan intervenido, no quiere decir un diseo errado en la Mquina M (autmata). Para
otras cadenas o palabras, se requieran de otros estados y trayectorias.
Los estados son el nico medio de que disponen los AF para recordar los eventos que
ocurren (por ejemplo, que caracteres se han ledo hasta el momento); esto quiere decir
que son mquinas de memoria limitada. En ltima instancia, las computadoras digitales
son mquinas de memoria limitada, aunque la cantidad de estados posibles de su
memoria podra ser enorme.

LECCIN 7. AUTMATAS FINITOS DETERMINSTICOS (AFD)


La definicin dada en la Leccin 6, corresponde a los autmatas finitos deterministas,
abreviado AFD.
Es importante definir el porqu del determinismo y para ello enfoqumonos en el papel
o cmo se interpreta la funcin de transicin : La funcin de transicin indica a qu
estado se va a pasar sabiendo cul es el estado actual y el smbolo que se est leyendo.
No es simplemente una relacin lo que implica que para un estado y un smbolo del
alfabeto dados, habr un y solo un estado siguiente.
En otras palabras la caracterstica de determinismo es la que perite saber siempre y
despus de una transicin, cul ser el siguiente estado.

42

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS 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.
Cmo es inicializado el autmata: En la figura 10 podemos verificar como se inicializa:
1. se coloca en la cinta de entrada, con un smbolo en cada celda. (en este caso es
aaabab )
2. el cabezal de lectura se apunta al smbolo ms a la izquierda de . En este caso el
smbolo a
3. el estado actual pasa a ser q0
Ciclo de ejecucin bsico del autmata: Como cualquier computador, una vez se ha
inicializado, comienza la ejecucin desde la palabra de entrada .
1. se lee el smbolo actual, que es el apuntado por el cabezal de lectura. Si el cabezal
apunta a una celda vaca entonces el AFD termina su ejecucin, aceptando la palabra
en caso de que el estado actual sea final y rechazando la palabra en caso contrario.
Esto ocurre cuando se ha ledo toda la palabra de entrada, y se produce una situacin
similar a tener una condicin fin de chero" en la ejecucin de un programa
2. se calcula el estado siguiente a partir del estado actual y del smbolo actual segn la
funcin de transicin, esto es, (estado actual; smbolo actual) = estado siguiente
3. el cabezal de lectura se mueve una celda a la derecha
4. el estado siguiente pasa a ser el estado actual y vuelve al paso 1
Ejemplo 24 Dado el siguiente Autmata M Finito determinista: M =(K, , q0, , F) donde:
K = {q0, q1, q2, q3}

= {x,z} q 0 Es el estado Inicial F = q3

donde la funcin de transicin est dada por: : {q0, q1, q2, q3 } {x, z} {q0, q1, q2, q3}
q0 { q3}

(q0, x ) = q1
(q2 , x ) = q3

(q1, x ) = q1
( q 3 , z ) = q2

43

(q1, z ) = q2
(q 3 , x ) = q1

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

La tabla de transicin correspondiente a este autmata ser: (tabla generada en el


simulador Visual Autmata Simulator VAS 3)
Figura 13: Tabla de transicin para un Autmata Finito generado con software simulador VAS.

y el diagrama de transicin (moore) correspondiente ser:


Figura 14: Diagrama de Moore asociado a un AFD.

El diagrama de transicin de un AFD tiene por cada nodo un solo arco etiquetado con
cada uno de los smbolos del alfabeto.
Algunas condiciones para que estos autmatas sean vlidos son:
el diagrama de transicin de un AFD tiene por cada nodo un slo arco etiquetado
con cada uno de los smbolos del alfabeto.
33

VAS. Visual Autmata Simulator. Disponible en internet <http://www.vas.org>

44

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Otra condicin es que debe haber exactamente un estado inicial.


la cantidad de estados finales puede ser cualquiera, inclusive cero (para algunos
modelos), hasta un mximo de |K| (la cantidad de estados).
De manera general, si un AFD se encuentra en un estado q y recibe un smbolo pasa al
estado q " si (q, ) = q " , esto es, si ((q, ), q " )
Algunas definiciones matemticas relacionadas a los AFD son:
Definicin 7: Si M = (K, , , s, F) es un autmata de estado finito, entonces una
configuracin es un elemento del producto cartesiano K x *
Entindase por configuracin un par (q, ) donde q es un estado y una palabra. En este
orden q ser el estado en el que se encuentra el autmata y lo que queda por leer en
un momento dado.
Definicin 8: Si M = (K, , , s, F) es un autmata finito determinista y * es una
palabra, entonces se llama configuracin inicial asociada a es apalabra a la configuracin
(q0, ).
Esto se explica indicando que la configuracin inicial indica que estamos en el estado
inicial y nos queda por leer toda la palabra .
Definicin 9: Esta definicin hace referencia a definir la relacin o el paso que se da en
un autmata entre dos configuraciones:
Si M = (K, , , s, F) es un autmata finito determinista y (p, ) , (q, ) son dos
configuraciones, decimos que puede pasar de (p, ) a (q, ) en una secuencia de
clculo, lo que se denota como (p, ) (q, ) si y solo si = a , donde a y
(p,a) = q.

LECCIN 8. AUTMATAS FINITOS NO DETERMINSTICOS (AFND)


Una extensin a los autmatas finitos deterministas es la de permitir que de cada nodo del
diagrama de estados salga un nmero de flechas mayor o menor que As, se puede
permitir que falte la flecha correspondiente a alguno de los smbolos 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
45

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

palabra vaca. A estos autmatas finitos se les llama no Determinsticos o no


deterministas (abreviado AFND). Al retirar algunas de las restricciones que
tienen los
autmatas finitos Determinsticos, su diseo para un lenguaje dado puede volverse ms
simple.
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.
Los autmatas finitos no Determinsticos (AFND) aceptan exactamente los mismos
lenguajes que los autmatas determinsticos. Sin embargo, sern importantes para
demostrar teoremas y por su ms alto poder expresivo
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 determinstico. Una versin en
principio ms potente es un AFND, donde frente a un estado actual y un siguiente
caracter, es posible tener cero, uno o ms estados siguientes.
La configuracin en quntupla de elementos es la misma que las de un AFD (Leccin 6),
excepto la funcin de transicin que se define ahora como:

: K x (K)
Donde (K) denota el conjunto de las partes de K o conjunto potencia 2K
Ejemplo 25 Si se tiene (q,a) = {q1, q2, . , qm) lo que indica que estando en un estado
actual q y un smbolo 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.

Ejemplo 27

Los AFND tambin se representan mediante tablas o diagramas de


transicin. En el diagrama de transicin, el no determinismo se descubre porque hay
algn nodo del que parten dos o ms arcos etiquetados con el mismo smbolo del
alfabeto, o falta algn arco para algn smbolo del alfabeto. En la Figura 15 podemos ver
un ejemplo de tabla y diagrama de transicin de un Autmata Finito No Determinista
(AFND).
El AFND de la figura 15 se describe formalmente como: M = (, K, , q 1 , F) donde
= {a,b}, F = {q 4 } s = {q1} y K = {q 1 , q 2 , q 3 , q 4 }, y la funcin (que tambin se puede
describir as) est dada por:
46

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS 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)}
Figura 15: Diagrama de Moore asociado a un AFND.

Tabla 9: Recursos web para AFND


DESCRIPCIN DE VIDEO

CANAL

CANAL

Lenguaje aceptado por un


Autmata. Tablas de transicin y
descripcin de autmata finito.

http://youtu.be/eWUfPJD9A_0

http://www.veoh.com/watch/v61683101FNRSfxSP

Fuente:<El autor>

LECCIN 9. AUTMATA FINITO CON TRANSICIONES


(AFND- ) bsicamente es un AFND al que s ele permite cambiar de un estado sin
necesidad de consumir o leer un smbolo de la entrada. La funcin de transicin est
definida como:

: K x ( U { }) (K)
La tabla de transicin de un AFND- es como la de un AFND excepto que se le aade
una columna correspondiente a , de forma que en la posicin T[(q, )] estar el
conjunto de estados que determine (q, ).

47

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Si se tiene un AFND- representado en su diagrama de transicin en la figura 16, si se


evala el estado q6 y el smbolo actual que guarda en memoria ese estado es cero (0), el
autmata puede decidir en forma no determinista entre leer la cadena vaca y llegar al
estado q7 conservando el smbolo y terminar o aceptar la palabra en el estado q8, o bien
decidir si pasa al estado q4 y luego leer un 1 y seguir el recorrido.
Figura 16: Diagrama de Moore asociado a un AFND -

LECCIN 10. LENGUAJE ACEPTADO POR UN AF


Los AF reconocen cierto tipo de lenguajes, pero esto depende de la configuracin del
autmata. Esta configuracin viene dada por el instante del autmata en un momento
dado y la porcin de cadena de entrada que le queda por leer (no la cadena completa).
La configuracin de un autmata finito (AF) es un elemento (q, ) (K x *) est dada
por:

Configuracin inicial: (q0, ) donde q0 es el estado inicial y la palabra de


entrada.

Configuracin de parada: cualquier configuracin en la que el autmata puede


parar su ejecucin, bien porque se haya procesado toda la entrada o bien porque
se haya llegado a una situacin donde no es aplicable ninguna transicin.
48

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Configuracin de aceptacin: (qF, ) donde qF, es un estado final del autmata.


Una vez alcanzada esta configuracin el autmata puede aceptar lapalabra.

Por lo que se concluye: que un AFD reconoce o acepta una palabra si se cumplen las
siguientes condiciones:
1. Se consumen todos los caracteres de dicha palabra de entrada, siguiendo las
transiciones y pasando en consecuencia de un estado a otro;
2. al terminarse la palabra, el estado al que llega es uno de los estados finales del
autmata (los que tienen doble crculo en los diagramas, o que son parte del conjunto F
en la representacin formal).
Lenguaje aceptado por un AFD
L(M) = { x * , F,(s,x) * M (, )}.
Lenguaje aceptado por un AFND:
El lenguaje aceptado por una AFND M = (, K, ,s, F) se define como:
L(M) = { x * , F,(s,x) * M (, )}.
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 autmata 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.

FINALMENTE: Cuando se expresa: determinar el lenguaje de un Autmata, se est


haciendo referencia a describir de manera general, matemtica y explcitamente en texto
combinado, que palabras o cadena se pude aceptar esa mquina:
L(M) = { alguna propiedad de }

Ejemplo 28 ; Dado el siguiente AFD M = (, K, , q0, F) donde


49

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

= {a,b}, F = {q2} s = {q0} y K = {q0, q 1 , q 2 } y representado en el diagrama de estados


de la figura 17.

Figura 17: Lenguaje asociado a un AFD

El autmata reconoce el lenguaje:


L = { {a,b}* = abia, i 0 }

Y se interpreta as: El autmata AFD reconoce el lenguaje de todas las cadenas


posible dentro de todo el conjunto de combinaciones posibles {a,b}* de tal manera que
esas cadenas empiecen por una a, seguidas de ninguna, una o ms bs y que finalizan
con una a.
Tabla 10: Recursos web para cadenas vlidas
DESCRIPCIN DE VIDEO

Lenguaje aceptado por un


Autmata (AF). Como se debe
describir el lenguaje que
representa.
Cadenas o palabras que acepta
un autmata.

CANAL

CANAL

http://youtu.be/QdRlbzVsvLQ

http://www.veoh.com/watch/v61610759jHdGRr59

http://youtu.be/ASg_ZUXgvZk

http://www.veoh.com/watch/v61698636anxKfprR

Fuente:<El autor>

50

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

CAPITULO 3: EXPRESIONES Y LENGUAJES REGULARES


LECCIN 11. LENGUAJES REGULARES Y EXPRESIONES REGULARES
Los Lenguajes regulares son los ms simples y restringidos dentro de la jerarqua de
Chomsky. Estos lenguajes pueden adems ser descritos mediante dos representaciones
que veremos: las Expresiones Regulares y las Gramticas Regulares que sern los temas
a tratar en las siguientes lecciones. Tambin son descritos mediante AFD y AFND.

LENGUAJES REGULARES: se llaman as porque sus palabras contienen regularidades o


repeticiones de los mismos componentes, como por ejemplo en el lenguaje L1 siguiente:
L1 = { ab,abab,ababab,abababab,..} En donde las cadenas o palabras son repeticiones
de ab
Algunas propiedades se aplican a estos Lenguajes Regulares como por ejemplo si se
combinan dos lenguajes regulares, tambin se obtiene un lenguaje regular. L1 U L2 = L3
Definicin 10:
Un lenguaje L es regular si y solos i se cumple al menos una de las
siguientes condiciones:

L es finito;
L es la unin o la concatenacin de otros lenguajes regulares R1 y R2,
L = R1 U R2 o L = R1R2 respectivamente

L es la cerradura de Kleene de algn lenguaje regular, L = R*.

LECCIN 12. SIGNIFICADO DE LAS EXPRESIONES REGULARES


Una expresin regular (ER) es una notacin normalizada para representar lenguajes
regulares, es decir, lenguajes generados por gramticas de tipo 3. Las expresiones
regulares permiten describir con exactitud y sencillez cualquier lenguaje regular. Para
definir una ER se pueden utilizar todos los smbolos del alfabeto y, adems y . Los
operadores que tambin se pueden utilizar son:

*
()

representa la unin.
representa la concatenacin (este smbolo no se suele escribir).
representa el cierre de Kleene
modifican las propiedades de los dems operadores.
51

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Una ER tambin se define bajo los siguientes criterios: (Se muestran tambin los
lenguajes que describen estas ER)
1. es una ER que representa el lenguaje vaco (no tiene elementos) L =
2. es una ER que representa el lenguaje L = { }
3. a es una ER que representa el lenguaje La = {a}
4. Si y son ER entonces + tambin lo es y representa al lenguaje
L

= L U L

5. Si y son ER entonces tambin lo es y representa al lenguaje


L = L L
6. Si es una ER entonces * tambin lo es y representa el lenguaje

* i 0 i

El orden de prioridad de los operadores es, de mayor a menor: * , , +


Este orden puede alterarse mediante parntesis, de forma anloga a como se hace con
las expresiones aritmticas.

Ejemplo 29
aa+b*a es una ER sobre el alfabeto ={a,b} (ntese que por
simplicidad se ha omitido el operador ) Esta Er es distinta de la ER (aa + b*)a.
Un ejemplo de una ER no vlida: La cadena (+a*ba) no es una ER.

Ejemplo 30 Dado

= {0,1} y la ER = 0*10* analizando las propiedades de

concatenacin se tiene que el lenguaje que genera esa ER es:


L (0*10*) = L(0*)L(1)L(0*) = (L(0))*L(1)(L(0))* = {0}*{1}{0}* = {0n10m n,m 0}

PROPIEDADES DE LAS EXPRESIONES REGULARES (ER):


Dos ER como y son equivalentes y se denotan como = , si describen el
mismos lenguaje: L( ) = L( ).
A continuacin enumeramos una serie de propiedades que cumplen las expresiones
regulares, derivadas de las propiedades de las operaciones con lenguajes:
52

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Figura 18: Propiedades de las ER

Fuente: <NAVARRETE, I; Teora de Autmatas y Lenguajes Formales>

Una propiedad de inclusin es la que se muestra:


que: + =

L( ) L( ) entonces se cumple

Ejemplos 31: Sea = {0,1}


1. 01+001 es una ER que representa el Lenguaje L={01,001} (acepta una cadena 01
una 001, pero no ambas ni la combinacin de las mismas).
2. 0*10* es una ER que representa a cualquier cadena binaria en la que hay un solo
1. L={0n10m n,m 0}.
3. La ER (acb)* es representada en la figura 19: (Ntese que acepta la cadena

Figura 19: ER representada en una mquina de estados (acb)*

4. 00 es una ER con el Lenguaje asociado {00}


5. 01* + 0 es una ER que denota el Lenguaje L = {01i : i 0 }
53

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

6. (1 + 10)* representa el lenguaje de las cadenas que comienzan por 1 y no tienen


dos ceros consecutivos.
7. (0 + 1 )* 011 representa el lenguaje de las cadenas que terminan en 011
8. 0* 1* representa el lenguaje de las cadenas que no tienen un 1 antes de un 0
9. Si = {a,b,c} y si (a + ) b* es una ER que denota el Lenguaje
L = {ai bj : i = 0,1 : j 0 }

LECCIN 13. AUTMATAS FINITOS Y EXPRESIONES REGULARES


Hasta ahora, la relacin entre los autmatas finitos y las expresiones regulares se ha
tratado de una manera intuitiva. Ahora formalizaremos dicha relacin probando que para
cualquier expresin regular exista un autmata finito equivalente. Lo que se establece
ahora con un teorema fundamental en el estudio de los Autmatas:
Teorema5 de Kleene: Un lenguaje es regular si y slo si es aceptado por algn autmata
finito.
Hasta ahora hemos confirmado como las, ERs, AFDs y AFNDs son mecanismos
equivalentes para denotar los lenguajes regulares.

CONVERSIN DE ER a AF: Vamos a establecer unas condiciones tiles para


transformar una expresin regular en autmata finito y viceversa. El objetivo es hacer una
transformacin gradual que vaya convirtiendo la ER en AF. Para hacer la transformacin
gradual de ER a AFN se requiere utilizar alguna representacin de los lenguajes regulares
que sea intermedia entre las ER y los AFN.

Para ello se usan las grficas de transicin (GT). Estas ltimas son esencialmente
AFND en que las etiquetas de las flechas tienen expresiones regulares, en lugar de
palabras.
Entonces se definen las grficas de transicin (GT) as: son por lo tanto
quntuplos
M = (, K, , q 1 , F) donde K x ER x K
La figura 20 ilustra un ejemplo de GT.
54

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Figura 20: Grfica de transicin (GT)

En este ejemplo en particular se evidencia que se debe aceptar palabras que tienen
primero una sucesin de as, luego repeticiones de ab, y finalmente repeticiones de bs.
La funcin completa estara dada por:
({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.
Figura 21: Operadores bsicos de conversin de AF a ER

55

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

La figura 21 muestra un proceso de eliminacin gradual de los operadores de las ER en


donde Gn AFND con las operaciones elementales y necesarias. Para eliminar los
operadores de las ER en Gi, aplicamos reemplazamientos de ciertas transiciones por
otras, hasta que no sea posible aplicar ninguno de estos reemplazamientos.
Ejemplo 32: Tomado de:4 Dada la ER= (a + ba)* bb, obtener el AFN que acepta el
lenguaje de dicha ER.
La solucin est definida en aplicar las transformaciones como se muestran en la figura
22 (aplicando las transformaciones bsicas de la figura 20).
Figura 22: Transformacin de Er a AF.

<BRENA,R; Autmatas y lenguajes, un enfoque de diseo. 2003. Monterey. 214p>

56

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

CONVERSIN DE AF a ER: El procedimiento indica que se deben ir eliminado


gradualmente nodos de una GT que inicialmente es el AFN que se quiere transformar,
hasta que nicamente queden un nodo inicial y un nodo final.
El procedimiento aplica los siguientes pasos: Para ello se ilustra el siguiente ejemplo:

Ejemplo 33: Tomado de5 Dado el siguiente AF M = (, K, , q0, F) donde


= {a,b},

F = {q1, q2} s = {q0} y K = {q0, q 1 , q 2 } y representado en el diagrama de

estados de la figura 23. Se requiere obtener la ER correspondiente y que represente el


lenguaje que acepta el autmata M.
Figura 23: Obtencin de una ER a partir de un AF

PASO 1: El primer paso en este procedimiento consiste en aadir al autmata finito un


nuevo estado inicial i, mientras que el antiguo estado inicial q0 deja de ser inicial, y un
nuevo estado final f, mientras que los antiguos estados finales qi F dejan de ser finales;
adems se aade una transicin vaca del nuevo estado inicial al antiguo, (i, , q0), y
varias transiciones de los antiguos estados finales al nuevo: {(qi, , f) | qi F}.
Esta transformacin tiene por objeto que haya un estado inicial al que no llegue ninguna
transicin, y un solo estado final, del que no salga ninguna transicin. Esta condicin se
requiere para llevar a cabo el siguiente paso. Hay muchos autmatas que ya cumplen
estas condiciones sin necesidad de aadir 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.

Bis(4).

57

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Figura 24: Obtencin de una ER a partir de un AF PASO1

PASO 2: Eliminacin 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 fcil ver que para pasar de q0 a f se gasta primero una a y luego algn
nmero 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 sera la etiqueta de la nueva ruta directa de q0 a f,
sin pasar, por q1, como se evidencia en a figura 25.
Figura 25: Obtencin de una ER a partir de un AF PASO2

PASO 3: Eliminacin de nodos. La figura 26 muestra el proceso de eliminacin del nodo


q2.

58

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Figura 26: Obtencin de una ER a partir de un AF PASO3. Eliminacin de nodo.

PASO 4: Eliminacin de nodos. La figura 27 muestra el proceso de eliminacin del nodo


q0.
Figura 27: Obtencin de una ER a partir de un AF PASO4. Eliminacin de nodo q0.

PASO 5: Fusin de expresiones (paralelas). Como se muestra en la figura 28.


Figura 28: Obtencin de una ER a partir de un AF PASO5. Fusin de expresiones

Finalmente la Er obtenida corresponde a:

(bb*a)*a(a+b)* + (bb*a)*bb

Tabla 11: Recursos web para cadenas vlidas


DESCRIPCIN DE VIDEO

Expresin Regular (ER) que


representa el lenguaje que puede
aceptar un autmata.

CANAL

CANAL

http://youtu.be/z7vmzu9078Y

http://www.veoh.com/watch/v61691189ZDE5K4wH

Fuente:<El autor>

59

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

LECCIN 14. EQUIVALENCIA DE AFD Y AFND


Se pretende construir a partir de un autmata finito no-determinstico otro determinstico
que acepte el mismo lenguaje:

Ejemplo 34: Dado el siguiente AFND


M = (, K, , q0, F). Se llama autmata determinstico asociado a M, al autmata:

M = (, K , , q0 , F ) dado por (obsrvese que lo nico que no cambia es el


alfabeto):

= P(K)

q0 = {q0}

= (,a) = * (,a)

El ejemplo de la figura 29 muestra


Figura 29: Equivalencia de una AFND con un AFD

60

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

En el que se concluye: Teorema 6: Un AFND M y su correspondiente Autmata


determinstico

aceptan el mismo lenguaje.

De igual forma y a manera inversa para el teorema: dado un autmata finito determinstico
AFD M = (, K, , q0, F). se puede construir uno no-determinista:

M = (, K,

, q0, F).

que acepta el mismo lenguaje. Solo se debe considerar:

(q0,a) = { (q0,q)}: en el que en cada situacin solo hay un camino posible que es el que

determine la funcin de transicin .

Para los autmatas de la figura 28; Reconocen el lenguaje formado por todas las cadenas
que empiezan por 1 excepto las terminadas en dos ceros consecutivas, Adems se debe
incluir la cadena vaca. Ambos autmatas reconocen el mismo lenguaje.
Teorema 7: Dos autmatas M1 y M2 son equivalentes, M1 M2, cuando aceptan
exactamente el mismo lenguaje.
Ejemplo 35: Tomado de: 6El siguiente ejemplo muestra cmo puede darse el caso en el que
varios AF distintos acepten un mismo lenguaje. La figura 30 muestra los autmatas (a) y
(b) que aceptan el lenguaje a*. Lo que se indaga ahora es si estos son equivalentes. Lo
que se concluye tambin que para comprobar la equivalencia se debe realizar una
demostracin de igualdad de lenguajes (operacin que suele ser compleja si son
lenguajes infinitos).
Figura 30: AF distintos que aceptan un miso lenguaje.

Bis (4)

61

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Mtodo usado para probar los AF y determinar equivalencia: Son muchos y de


diversas formas de aplicacin. El que se propone ac es basado en el teorema:
Teorema 8: Teorema de Moore: Existe un algoritmo para decidir si dos autmatas finitos
son equivalentes o no. Este algoritmo consiste en la construccin de un rbol de
comparacin de autmatas. Este rbol permite convertir el problema de la comparacin
de los lenguajes aceptados en un problema de comparacin de estados de los autmatas.
Definicin 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.
La idea del algoritmo de comparacin de AFD1 y AFD2 de la figura 29 consiste en
averiguar si existe alguna secuencia de caracteres tal que siguindola
simultneamente en AFD1 y AFD2 se llega a estados incompatibles. Si dicha secuencia no
existe, entonces los autmatas son equivalentes.
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 comparacin se construye de la manera siguiente, para dos autmatas:7
M = (, K, , s, F)

M = (, K, , s, F).

La figura 31 muestra el rbol de comparacin en el que se evala el diseo y


comportamiento de los estados no sin antes definir:
Figura 31: rbol de comparacin de AF.

Bis (4)

62

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

La explicacin del rbol es la que se describe as:

1. Inicialmente la raz 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 aaden como hijos
suyos los pares (r , r ) donde r = (r , ) , r (r, ) en caso de que no
estn.

3. Si aparece en el rbol un par (r, r) de estados incompatibles, se interrumpe la


construccin del mismo, concluyendo que los dos autmatas no son equivalentes.
En caso contrario se contina a partir del paso 2. Si no aparecen nuevos pares
(r , r ) ) que no estn ya en el rbol, se termina el proceso, concluyendo que los
dos autmatas son equivalentes.

Se concluye que los autmatas iniciales de M y M respectivamente de la figura 29 son


equivalentes.

LECCIN 15. MINIMIZACIN DE AUTMATAS


Se llama minimizacin a la obtencin de un autmata con el menor nmero posible de
estados. Una de las mejores cualidades de los AFD es que existen mtodos mecnicos
para simplificarlos, hasta poder llegar al AFD ms sencillo posible para un lenguaje dado.
En el caso de los AFD, vamos a entender por simplificacin la reduccin en el nmero de
estados, pero aceptando el mismo lenguaje que antes de la simplificacin.

Ejemplo 36: Dado el siguiente AFD M = (, K, , q0, F) donde


= {0,1},

F = {q2} s = {q0} y K = {q0, q 1 , q 2 ,q3, q4, q5, q6, q7 } y representado en el

diagrama de estados de la figura 32. Se requiere obtener el autmata mnimo


correspondiente.
63

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Figura 32: Autmata a minimizar

Concepto de estados redundantes se define as:


Dos estados son equivalentes, q1 q2 si al intercambiar uno por otro en cualquier
configuracin no altera la aceptacin o rechazo de toda palabra. En el ejemplo 36 los
estados q1 y q6 son excluyentes, (ya que ambos cumplen la misma funcin) y al eliminar
uno u otro no altera la aceptacin o no de una cadena: Si se observa:
Del estado q1 sale el smbolo 0 y llega al estado q5
Del estado q6 sale el smbolo 0 y llega al estado q5
Del estado q1 sale el smbolo 1 y llega al estado q2
Del estado q6 sale el smbolo 0 y llega al estado q2
Esta definicin quiere decir que, si q1 q6, al cambiar q1 por q6 en la configuracin, la
palabra va a ser aceptada (se acaba en el estado final) si y slo si de todos modos iba a
ser aceptada sin cambiar q1 por q6 (se acaba en el estado final).
De manera general: El nico problema con esta definicin es que, para verificar si dos
estados dados p y q (para el ejercicio sera q1 y q6) son equivalentes, habra que examinar,
64

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

para cada palabra posible de entrada, si intercambiarlos en las configuraciones altera o no


la aceptacin de esa palabra. Esto es evidentemente imposible para un lenguaje infinito.
La definicin nos dice qu son los estados equivalentes, pero no cmo saber si dos
estados son equivalentes.
Cmo se soluciona: Recordemos el teorema 7: Dos autmatas M1 y M2 son
equivalentes, M1 M2, cuando aceptan exactamente el mismo lenguaje
Para saber si dos estados q1 y q6 son equivalentes, se les pone a ambos como estado
inicial de sendos autmatas M1 y M2 , y se procede a comparar dichos autmatas. Si stos
ltimos son equivalentes, quiere decir que los estados q1 y q6 son equivalentes.
Si dicha comparacin de AFDs da un resultado de equivalencia, se concluye que los
estados son redundantes.
Una vez que se sabe que dos estados son equivalentes, se puede pensar en eliminar uno
de ellos, para evitar redundancias y hacer ms eficiente a AFD. Sin embargo, la
eliminacin de un estado en el AFD plantea el problema de qu hacer con las flechas que
conectan al estado eliminado con el resto del autmata. Esta cuestin se resuelve con los
siguientes criterios:

Las flechas que salen del estado eliminado son eliminadas.


Las flechas que llegan al estado eliminado son redirigidas hacia su estado
equivalente.
MTODOS PARA LOCALIZAR ESTADOS REDUNDANTES Y MINIMIZAR AFDs

1. DEFINIMOS EL AUTMATA E IDENTIFICAMOS LO QUE VA A CAMBIAR:


Entrada: (el autmata 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 mnimo como resultado): M = (, K, , q0 , F) (ntese que el
alfabeto no cambia)
2. ELIMINAR ESTADOS INACCESIBLES DE M;
En la figura 33 se han identificado los estados q6 y q1 como candidatos a ser comparados
para eliminar (en este caso q6).
65

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Figura 33: Eliminacin de estados en un autmata AF

En la figura 34 se han identificado los estados q3 y q0 como candidatos a ser comparados


para eliminar (en este caso q3).
Figura 34: Eliminacin de otros estados en un autmata AF

66

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Claramente se ve que el estado q7 es inaccesible, (o le llegan transiciones adems) por


tanto, se puede eliminar este estado y sus transiciones. El autmata ya minimizado y
concluido se observa en la figura 35
Figura 35: Eliminacin de otros estados en un autmata AF

3. IDENTIFICAR ESTADOS DISTINGUIBLES:

Vamos a definir la nocin de estados distinguibles, que intuitivamente quiere decir que si
dos estados son distinguibles, ya no pueden ser equivalentes. La definicin 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 induccin. Se puede verificar el ejercicio.
Teorema 9: Dos estados son equivalentes (o redundantes) si no son distinguibles. Es
relativamente sencillo verificar si dos estados son distinguibles.

4. CONSTRUCCIN DE TABLA:
Construir tabla T con filas desde q1 hasta qn y columnas desde q0 hasta qn-1
Obsrvese que en la tabla Figura 36 se omite la diagonal principal, pues no tiene caso
confrontar cada estado contra s mismo.
67

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Figura 36: Tabla de estados distinguibles.

Fuente: <El autor. CAAT>

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 rengln 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

Y el autmata cociente (mnimo) es:


M ( { [q0] , [q1] , [q2] , [q4] , [q5] } , {0,1} , , [q0] , [q2] } )
Note que se han eliminado los estados q3, q6, q7
Se conserv el mismo estado inicial q0 y el estado final q2
Todo el proceso de minimizacin adems de otras caractersticas las puede visualizar en:
68

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Tabla 12: Recursos web para minimizacin de autmatas


DESCRIPCIN DE VIDEO

CANAL

CANAL

PARTE 1: Identificacin quntupla


de un autmata. Tablas de
transicin. Recorrido de una
cadena vlida. Leguaje aceptado
pro un autmata. Gramtica
PARTE 2: Graticas, Arboles de
derivacin. Expresiones Regulares

http://youtu.be/z19KDUC1oh0

http://www.veoh.com/watch/v61603854nW9bZSZW

http://youtu.be/LThVITEsLiA

http://www.veoh.com/watch/v61604786EcAYA94H

PARTE 3: Minimizacin de
autmatas

http://youtu.be/Sto4KosrUX8

http://www.veoh.com/watch/v616060295QNDkm6W

PARTE 4: Minimizacin de
autmatas (uso de simuladores).
JFLAP

http://youtu.be/d0-Nkk3Y1DU

http://www.veoh.com/watch/v61606962CRp6fnXP

Fuente: <El autor. CAAT>

UNIDAD 2. LENGUAJES INDEPENDIENTES DEL CONTEXTO


Los lenguajes independientes del contexto que tambin se conocen con el nombre de
gramticas de contexto libre son un mtodo recursivo sencillo de especificacin de reglas
gramaticales con las que se pueden generar cadenas de un lenguaje.
Es factible producir de esta manera todos los lenguajes regulares, adems de que existen
ejemplos sencillos de gramticas 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.

CAPTULO 4 CONCEPTOS GENERALES


Hasta ahora, se han visto dos formas de definir lenguajes: a travs de autmatas finitos, y
por medio de expresiones regulares. Ahora veremos otra forma, usando el concepto de gramticas.
Basamos el estudio siguiente en el concepto bsico de gramtica formal como un conjunto de
69

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

reglas para formar correctamente las frases de un lenguaje (ejemplo la gramtica del espaol,
ingls, francs, etc).
Las caractersticas y notacin especfica de gramtica fue dada por Chomsky,N, quin bas esta
descripcin en las denominadas Reglas Gramaticales.
Definicin 12: Reglas Gramaticales: Son especficamente, reglas de reemplazo. Una regla es
un expresin de la forma en donde tanto como son cadenas de smbolos en donde

pueden aparecer tanto elementos del alfabeto como unos nuevos smbolos, llamados variables.
Los smbolos 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 (operacin
de reemplazo) . Otro ejemplo: Si se tienen los smbolos bbXa y se le aplica la regla X aX
da como resultado la nueva cadena bbaXa.
LECCIN 16. GRAMTICAS REGULARES
Definicin 13: Definimos o caracterizamos una gramtica regular como:
Un cudruplo (V, , R, S) en donde:
V = Es el alfabeto de variables
= Es el alfabeto de constantes
R = Es el conjunto de reglas, es un subconjunto finito de V x (V U )
S= Es el smbolo inicial y es un elemento de V
Estas gramticas regulares son de la forma:

Lineales por la derecha.- Cuando todas las producciones tienen la forma


A aB o bien A a
Lineales por la izquierda.- Cuando todas las producciones tienen la forma
A Ba o bien A a
En donde A y B son las variables que pertenecen a V y a es un carcter terminal o
constante que pertenece a .
70

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Ejemplo 37: La gramtica G dada por V = {S,A} y ={0,1} y las producciones:


Producciones por la derecha:
(lineal por la derecha)

Producciones por la izquierda


(lineal por la izquierda).

1. S 0A

1. S S10

2. A 10A

2. S 0

3. A
Genera el mismo lenguaje: L(G) = 0(10)*
Ejemplo 38: Dada la siguiente gramtica con sus reglas:
4. S aA
5. S bA
6. A aB
7. A bB
8. A a
9. B aA
10. B bA

La idea para aplicar una gramtica es que se parte de


una variable, llamada smbolo inicial (que en este caso es
S), y se aplican repetidamente las reglas gramaticales,
(en este ejemplo hay 7 reglas gramaticales) hasta que ya
no haya variables en la palabra (las dos variables para
este ejemplo son a y b). En ese momento se dice que la
palabra resultante es generada por la gramtica, o en
forma equivalente, que la palabra resultante es parte del
lenguaje de esa gramtica.
Las constantes de esta gramtica son a y b.

Al analizar la gramtica, partiendo de S podemos se puede producir bA (por la segunda


regla), luego de bA podemos pasar a ba (por la quinta regla). Como ba tiene slo
constantes, podemos concluir que la palabra ba es parte del lenguaje generado por la
gramtica dada. De hecho el lenguaje generado por esta gramtica es:
L = { (a,b)* (que acepta las palabras en {a, b} de longitud par terminadas en a}
Se pueden derivar muchas otras palabras como bababa L(G) y que pertenecen tambin
al lenguaje generado por la gramtica. Formalmente esta gramtica se representara
como:
({S, A,B}, {a, b}, {(S, aA), (S, bA), (A, aB), (A, bB), (A, a), (B, aA), (B, bA)}, S)

71

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Una cadena (esto es, formada exclusivamente por constantes) es derivable a partir
de una gramtica G si existe una secuencia de pasos de derivacin:
S 1 2
A una secuencia de pasos de derivacin le llamamos simplemente derivacin.
Definicin 14: El lenguaje generado por una gramtica G, L(G), es igual al conjunto de
las palabras derivables a partir de su smbolo inicial. Es decir:
L (G) = { * S * }

AUTMATAS FINITOS Y GRAMTICAS REGULARES: Se establece la equivalencia


entre las gramticas regulares y los lenguajes regulares -y por ende los autmatas finitos.
Teorema 10: Si L es un lenguaje generado por una gramtica regular, entonces existe un
autmata finito determinstico que lo reconoce.
Teorema 11: La clase de los lenguajes generados por alguna gramtica regular es
exactamente la de los lenguajes regulares.
La prueba de estos teoremas consiste en proponer un procedimiento para, a partir de una
gramtica dada, construir un autmata finito, y viceversa.
OBTENCIN DE UN AUTMATA FINITO A PARTIR DE UNA GRAMTICA DADA:
Procedimiento 1: Consiste en asociar a los smbolos no terminales de la gramtica (las
variables) los estados de un autmata. As, para cada regla A bC en la gramtica
tenemos una transicin (A, b,C) en el autmata.
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
autmata.
Ejemplo 39: Obtener un autmata finito para la gramtica regular G1 siguiente: (V, , R, S).
Se denota la gramtica 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 ,
72

B aA bA

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Figura 37: Autmata obtenido de la Gramtica 1.

En la Figura 38, haciendo uso del simulador JFLAP8 , que dentro de sus opciones nos
permite introducir una gramtica y generar el AF, se muestra el resultado de la conversin
automtica de G AF (de Gramtica a Autmata Finito).
Figura 38: Autmata obtenido de la Gramtica 1 generado con un simulador.

Fuente: <Generado con JFLAP El Autor>

Procedimiento 2: Ejemplo 40: Dado el Lenguaje L generado por la gramtica G2 = (V, , R,


S) (definida lineal por la derecha para el ejemplo) as: S 0A A 10A A se
desea construir un autmata finito no determinstico AFND que acepte el lenguaje L.
8

JFLAP Version 7.0 RELEASED August 28, 2009. Last update May 15, 2011. Disponible en internet.
<http://www.jflap.org/>

73

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

El autmata resultante ser: M = (, K, , s, F) donde:

K {[ ] : ( S ) (A V , , talesque. A R)}
q0 = [S]
F = {[ ]}

Viene definida por:

Si A es una variable ([ A], ) {[ ] : ( A ) R

Si a y ( *V ) , entonces ([ a ], a ) [ ]

La aceptacin de una palabra en este autmata simula la aplicacin de reglas de


derivacin en la gramtica original. Al construir el autmata no determinstico
correspondiente se puede transformar en uno equivalente con un solo estado final as:
Basta con aadir un nuevo estado final
Pasar a no-finales los estados finales originales y unir estos mediante una
transicin nula con el nuevo estado final.

Figura 39: Autmata obtenido de la Gramtica 2.

Figura 40: Autmata obtenido de la Gramtica 2 generado con un simulador.

74

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Fuente: <Generado con JFLAP El Autor>

OBTENCIN DE LA GRAMTICA A PARTIR DE UN AUTMATA FINITO:


A partir de un AFD M = (, K, , s, F) obtener la gramtica regular correspondiente. El
procedimiento sigue la siguiente secuencia:
Para cada transicin de la forma (( , ), q ) habr en la gramtica una regla

X X q , donde Xi es la variable en la gramtica que corresponde al estado i del AFD.


1. La forma X permite terminar una derivacin.
2. La aplicacin de este tipo de reglas debe corresponder al consumo del ultimo
caractr de una palabra aceptada en el AFD.
3. Al terminar una palabra aceptada en un AFD, necesariamente nos encontraremos
en un estado final o de aceptacin halt.
4. Hay que incorporar a la gramtica, por cada transicin (( , ), q ) donde q F
una regla adicional X adems de la regla X X q .
Ejemplo 41: Dado el AFD de la Figura 41, determinar las reglas de produccin que
determinan la gramtica regular.

75

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Figura 41: AFD y su gramtica.

Finalmente la gramtica regular generada con sus respectivas reglas es la mostrada en la


Figura 40 y que se gener con software de simulacin JFLAP.
Tabla 13: Recursos web para PDA
DESCRIPCIN DE VIDEO

Autmatas y Gramticas,
representacin y descripcin.

CANAL

CANAL

http://youtu.be/FcsxGEFF5RI

http://www.veoh.com/watch/v61736035WqpFzqBM

Fuente. <El autor>

LECCIN 17. LENGUAJES LIBRES DE CONTEXTO Y SUS MQUINAS.


Gramticas y lenguajes libres de contexto: Los Lenguajes Libres de Contexto
(abreviado LLC) forman una clase de lenguajes ms amplia que los Lenguajes Regulares,
de acuerdo con la Jerarqua de Chomsky. Estos LLC relacionan las Gramticas libres de
contexto (GLC) con los Autmatas de Pila.
Dentro de la jerarqua de Chomsky las gramticas se clasificaron de acuerdo a la
propuesta de definir formas estandartes de reglas que se asocian a varias clases de
lenguajes, que orden de manera tal que forman una jerarqua, es decir, los lenguajes
ms primitivos estn incluidos en los ms complejos. Casi todos los lenguajes de
programacin estn basados en los LLC
Las clases de gramticas que se pueden asociar a familias de leguajes, de acuerdo a
Chomsky son:
76

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

1. Gramticas regulares, o de tipo 3: Las reglas son de la forma A aB o bien A a,


donde A y B son variables y a es constante. Estas gramticas son capaces de
describir los lenguajes regulares.
2. Gramticas Libres de Contexto (GLC), o de tipo 2: Las reglas son de la forma X
donde X es una variable y es una cadena que puede contener variables y
constantes. Estas gramticas producen los Lenguajes Libres de Contexto (LLC).
3. Gramticas sensitivas al contexto o de tipo 1: Las reglas son de la forma

A , donde A es una variable y y son cadenas cualesquiera


que pueden variables y constantes.
4. Gramticas no restringidas o de tipo 0: Con reglas de la forma donde
no puede ser vaco, que generan los lenguajes recursivamente enumerables.
Los lenguajes de tipo 0 incluyen a los de tipo 1, estos a los de tipo 2, etc.
LENGUAJES Y GRAMTICAS LIBRES DE CONTEXTO (LLC Y GLC):
Las GLC tienen reglas menos rgidas que las gramticas regulares. As toda gramtica
regular es GLC pero no viceversa
Para introducirnos en este estudio, aplicamos la misma filosofa de representacin de las
gramticas regulares en donde las reglas son tcnicas de reemplazo: Aplicar una regla
como X de una gramtica, consiste en reemplazar X por en una palabra. Por
ejemplo dado la regla S aSb se puede aplicar a una palabra como abSab, en donde si
se reemplaza S por aSb se tiene abaSbab.
Algunos autores Brena R. 9definen: Al proceso de aplicar una regla se le conoce como
paso de derivacin, y se denota usando una flecha de direccin: . Una secuencia de
pasos de derivacin a partir de una variable especial de la gramtica llamada smbolo
inicial se llama simplemente derivacin.
Formalizacin de las GLC: Una gramtica libre de contexto es una cudrupla:
(V, , R, S) en donde:
V = Es el alfabeto de variables

Bis (6)

77

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

= Es el alfabeto de constantes, tambin llamadas terminales. En el que V y son


disyuntos, es decir: V =
R = Es el conjunto de reglas, es un subconjunto finito de V x (V U )*
S= Es el smbolo inicial y es un elemento de V
Y donde las producciones tiene la forma A siendo A V y ( V U )*

Una cadena ( V U )* es derivable a partir de una gramtica (V, , R, S) si hay al


menos una secuencia de pasos de derivacin que la produce a partir del smbolo inicial S,
as:

S ...
El lenguaje L(G) generado por una gramtica (V, , R, S) es el conjunto de palabras
hechas exclusivamente de constantes, que son derivables a partir del smbolo inicial:

L { * | S ... }

LECCIN 18. ARBOLES DE DERIVACIN


Las GLC tienen la propiedad de que las derivaciones pueden ser representadas en forma
de rbol ramificado o arboles de derivacin, o tambin arboles de compilacin por usarse
extensivamente en los compiladores y son de vital importancia para la teora de los
compiladores de los lenguajes de programacin.
Se puede considerar que un rbol de derivacin es ms abstracto que una derivacin
lineal es decir, una sucesin S ... en el sentido de que para un solo rbol de
derivacin puede haber varias derivaciones lineales, segn el orden en que se decida
expandir los no terminales.
La definicin formal de estos rboles de derivacin est dada por:
Definicin15: Sea: G = (V, , R, S) una GLC. Entonces el rbol de derivacin cumple las
siguientes propiedades:
1. Cada nodo tiene una etiqueta.
78

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

2. La raz tiene etiqueta S.


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.
Definicin 16: La cadena de caracteres que resulta de concatenar los caracteres
terminales encontrados en las etiquetas de los nodos hoja, en un recorrido en orden del
rbol de derivacin, se llama el producto del rbol.
Es decir, al efectuar un recorrido en orden del rbol de derivacin recuperamos la cadena
a partir de la cual se construy dicho rbol. As, el problema de compilar una cadena de
caracteres consiste en construir el rbol de derivacin a partir del producto de ste.
Ejemplo 42: Para explicar como un rbol de derivacin ilustra diferentes derivaciones para
una misma cadena, es tpico ejemplificar el caso de describir las secuencias de unos
parntesis bien balanceados, en el que se presenta el caso ideal que nunca se han
cerrado ms parntesis de los que se han abierto y en el que al final los nmeros
coinciden.
Una GLC simple que describira este caso sera:
S Ss
S
Y que formalmente se escribira como:
= {(,)},

V = {S},

R = {(S, (S) S), (S, )}

Una derivacin de la cadena = (())() a partir de S podra ser:


S (S)S ((S)S)S (()S)S (())S (())(S)S (())()S (())()
Y otra podra ser:
S (S)S

(S)(S)S

(S)()S

(S)()

((S)S)()

(()S)()

(())()

El rbol de derivacin para este ejemplo estara dado en la figura 42 (las distintas rdenes
de derivacin no son los nicos responsables de que existan distintas formas de derivar
79

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

una misma cadena. Es posible que una misma cadena tenga dos rboles de derivacin
distintos.)
Figura 42: rbol de derivacin para una secuencia de parntesis bien balanceados.

Ejemplo 43: Para la siguiente gramtica: S aAS, S a, A SbA , A SS,

A ba

Analizamos la cadena o palabra = aabbaa que genera un rbol y que puede provenir
de varias cadenas de derivaciones distintas as:
Derivacin por la izquierda: Cuando en cada paso siempre se sustituye primero la primera
variable (ms a la izquierda) de la palabra que tenemos.
Derivacin por la derecha. Cuando en cada paso siempre se sustituye primero la ltima
variable (ms a la derecha) de la palabra que tenemos
El rbol de derivacin se muestra en la figura 43:
Figura 43: rbol de derivacin para la cadena aabbaa

Haciendo uso de software de simulacin JFLAP se puede recrear el ejercicio como se


videncia en la Figura 44.
80

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Figura 44: rbol de derivacin para la cadena aabbaa generado en JFLAP

Fuente: <Generado con JFLAP El Autor>

Al mismo rbol dado en las figuras 42 y 43 de la Gramtica, le corresponden las


siguientes derivaciones:
Derivacin por la izquierda:
S aAS aSbAS aabAS aabbaS aabbaa
Las derivaciones por la izquierda son mostradas en la figura 45. Fueron generadas con
software simulador JFLAP.
Figura 45: Derivaciones por la izquierda, generadas en JFLAP

Fuente: <Generado con JFLAP El Autor>

Derivacin por la derecha:


S aAS aAa aSbAa aSbbaa aabbaa
81

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Ejemplo 44: Para la Gramtica G3 = S aSbS bSaS Sus rboles de derivacin


son los mostrados en la figura 46.
Figura 46: Arboles de derivacin para la gramtica G3

AMBIGEDAD EN GLC: La existencia en una gramtica de varias derivaciones para una


misma palabra no produce ningn problema, siempre que den lugar al mismo rbol. Sin
embargo, existe otro problema que si puede ser ms grave: la ambigedad. Una
gramtica se dice ambigua si existen dos rboles de derivacin distintos para una misma
palabra. Esto es un problema, ya que la gramtica no determina la estructura sintctica de
los elementos de la palabra, no determina como se agrupan los distintos elementos para
formar la palabra completa.10
Se concluye: En efecto, hay GLC en las cuales para ciertas palabras hay ms de un rbol
de derivacin.
Definicin 17: Una GLC G es ambigua si existen dos rboles de derivacin distintos para
G que generan una misma cadena L(G).
Definicin 18: Todo lenguaje Regular es Libre del Contexto. El conjunto de los lenguajes
LC incluye al de los regulares.
Si L * es un lenguaje regular, entonces L es LC
Ejemplo 45: Dada la siguiente GLC para las expresiones aritmticas de las variables:
10

MORAL, S. Modelos de Computacin. p. 92

82

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

1. E E + E
2. E E * E
3. E x
4. E y

Con esta gramtica, para la expresin x+y * x existen dos rboles de


derivacin (Figura 47). El hecho de que existan dos rboles de
derivacin para una misma expresin es indeseable, pues cada rbol
indica una manera distinta de estructurar la expresin.
En efecto, en el rbol de la izquierda, al resultado de la suma (x + y) se
multiplica con x, mientras que en el de la derecha sumamos x al
resultado de multiplicar x con y; por lo tanto el significado que se asocia
a ambas expresiones puede ser distinto.11

La ambigedad es una propiedad de la gramtica mas no del lenguaje generado.


Figura 47: Arboles de derivacin para una gramtica ambigua

Cmo eliminar la ambigedad de una GLC: Consiste en introducir nuevos estados noterminales de modo que se eliminen los rboles de derivacin no deseados. Para el
anterior ejemplo es tpica la solucin introduciendo variables (T) y factores (F). La
gramtica resultante es:

E E + T T ;

TT * F F ;

F (E) x y

Con esta nueva GLC, el rbol de derivacin de la figura 46 (a) se elimina, quedando
finalmente una adaptacin del rbol de la figura 46 (b) a la GLC con trminos y factores.
Ejemplo 46: 12La gramtica S AA, A aSa, A a representada en la figura 48 es
ambigua: la palabra a5 tiene dos rboles de derivacin distintos.

Figura 48: Arboles de derivacin para una gramtica ambigua para a 5


11
12

(Bis)4
MORAL, S; Modelos de computacin. 130 p.

83

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Es suficiente que haya una palabra con dos rboles de derivacin distintos para que la
gramtica sea ambigua. Esto quiere decir que existe otra gramtica de tipo 2 no ambigua
y que genera el mismo lenguaje. El lenguaje generado es

{a 23i : i 0}

y otra

gramtica no ambigua que tambin genera este lenguaje es:


S aa, S aaU, U aaaU , U aaa
asociado que se muestra en la figura 49.

Aqu a solo tiene un rbol de derivacin

Figura 49: Arboles de derivacin para a5

LECCIN 19. TRANSFORMACIN DE LAS GLC Y FORMAS NORMALES


Se trata de modificar las reglas de la gramtica para que cumplan ciertas propiedades o
por simple estandarizacin o facilidad de implementacin computacional; pero sin
modificar el lenguaje aceptado.
Eliminacin de smbolos y producciones intiles: Un smbolo x (V U ) se dice que
es til si y solo si existe una cadena de derivaciones en G tal que:
84

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

S x
Es decir si interviene en la derivacin de alguna palabra del lenguaje generado por la
gramtica. Una produccin se dice til si y solo si todos sus smbolos son tiles. Esto es
equivalente a que pueda usarse en la derivacin de alguna palabra del lenguaje asociado
a la gramtica. Est claro que eliminando todos los smbolos y producciones intiles el
lenguaje generado por la gramtica no cambia.
El algoritmo para eliminar los smbolos y producciones intiles 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 smbolos que no sean alcanzables desde el estado inicial, S, y las
producciones en las que estos aparezcan.
El primer paso se realiza con el siguiente algoritmo (V' es un conjunto de variables):
1. V = 0
2. Para cada produccin de la forma A A se introduce en V.
3. Mientras V cambie
4. Para cada produccin B
5. Si todas las variables de pertenecen a V,
B se introduce en V
6. Eliminar las variables que estn en V y no en V'
7. Eliminar todas las producciones donde aparezca una variable de las eliminadas en el
paso anterior

El segundo paso se realiza con el siguiente algoritmo:


V y J son conjuntos de variables. J son las variables por analizar.
es un conjunto de smbolos terminales
1. J = {S}
85

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

V = {S}
=
2. Mientras J
3. Extraer un elemento de J : A, (J = J {A}).
4. Para cada produccin de la forma A
5.Para cada variable B en
6. Si B no est en V aadir B a J y a V
7. Poner todos los smbolos terminales de a en
8. Eliminar todas las variables que no estn en V
y todos los smbolos terminales que no estn en .
9. Eliminar todas las producciones donde aparezca
un smbolo o variable de los eliminado
Ejemplo 47 El objetivo es eliminar
gramtica:

todos los smbolos y variables intiles. Dada la

S AB, S a, A a
En el primer algoritmo se elimina B y la produccin S AB.
Entonces en el segundo se elimina la variable A y la produccin A a.
Sin embargo, si aplicamos primero el segundo algoritmo, entonces no se elimina nada. Al
aplicar despus el primero de los algoritmos se elimina B y la produccin S AB. En
definitiva, nos queda la gramtica
S a, A a

Producciones Nulas: Son de la forma A . El objetivo sigue siendo el que no se


modifique el lenguaje ni la estructura de los rboles de derivacin. La idea que permite
eliminar las reglas A es la de irse un paso atrs para examinar de dnde provino el
no-terminal A que se quiere eliminar, y por cada regla B A de la gramtica
86

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

agregar una regla B , en que directamente ya se reemplaz A por . Una vez


hecho esto, se pueden suprimir todas las reglas de la forma A , pues resultan
redundantes.
El hecho que gramtica GLC contenga reglas de la forma A no significa que el
lenguaje contenga forzosamente a la palabra vaca. Ejemplo de ello es la siguiente
gramtica cuyo lenguaje no contiene la palabra vaca.
S (A), A (A), A AA, A
En caso de que el lenguaje en cuestin realmente contenga a la palabra vaca, no es
posible estrictamente eliminar todas las producciones vacas sin alterar el significado de la
gramtica. En estos casos vamos a expresar el lenguaje como la unin { } U L G donde
G es la gramtica transformada.
Producciones unitarias: Son las que tienen la forma A B donde A,B V
Ejemplo 48 Dada la gramtica GLC con las reglas siguientes:
S (S),

S BB,

S (),

BS

Su rbol de derivacin fue simulado en JFLAP. Admite parntesis balanceados como


cadenas vlidas. En la figura 50 se evalu la cadena = { ( ( ( ) ) ) }
Figura 50: Arboles de derivacin para parntesis balanceados

Fuente: <Generado con JFLAP El Autor>

Se tiene una regla S BB, y luego B se transforma en S por la regla B S. Se evidencia


ac que no es necesario usar estas reglas intermediarias cuando es posible generar
87

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

directamente SS a partir de S. La idea de eliminar las reglas de la forma A B viene de


observar que dichas reglas no producen nada til, simplemente introducen smbolos
intermediarios, que es posible eliminar.
Si en una gramtica hay las reglas A B y B i entonces es posible aadir reglas
A i sin modificar el lenguaje. Ahora bien, si hacemos esto siempre que sea posible,
las reglas de la forma A B se vuelven intiles, pues toda derivacin:

. . . A B i . . . y que puede transformarse en:

. . . A i . . . sin modificar el lenguaje. Esto prueba que la gramtica


equivalente es original.

Si se aplica este tipo de transformaciones al ejemplo 48 la regla intil, que tratamos de


eliminar, es B S. Se producen las nuevas reglas siguientes:

1. B (S), al combinar B S con S (S)


2. B BB, al combinar B S con S BB
3. B (), al combinar B S con S ()
4.
La gramtica final queda determinada por las reglas:

S (S),

S BB,

S (),

B (S),

B BB,

B ()

Su rbol de derivacin fue simulado en JFLAP. Admite parntesis balanceados como


cadenas vlidas. En la figura 51 se evalu la cadena = { ( ( ( ) ) ) } al igual que se hizo
en la figura 50. El lenguaje no se modific lego de eliminar producciones unitarias.
88

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Figura 51: Arboles de derivacin para parntesis balanceados

Fuente: <Generado con JFLAP El Autor>

Eliminacin de reglas inaccesibles: Dada la gramtica GLC con las siguientes reglas:
S aXbb, X bSa, Y SX
La tercera regla es intil, porque no hay nadie que produzca la Y necesaria para que
dicha regla se aplique. A reglas como stas se les llama inaccesibles.
Definicin 19:

Una regla X de una gramtica (V, , R, S) es inaccesible si no hay

13

una derivacin S 1 X 2 donde 1 , 2 (V U )*.


En trminos prcticos, si vemos que una variable X no aparece en el lado derecho de
ninguna regla de la gramtica, podemos asegurar sin arriesgarnos que la regla X es
inaccesible.
Para eliminar una regla inaccesible no se necesita hacer ninguna otra modificacin a la
gramtica ms que simplemente borrarla. La equivalencia de la gramtica sin la regla
inaccesible y la original est garantizada por el hecho de que dicha regla no participa en
ninguna derivacin.
Formas Normales: 14Cuando es necesario expresar una GLC siguiendo formatos ms
preciso de las reglas que la simple forma A . Estos estndares reciben el nombre de

13
14

BREANA, R; Autmatas y Lenguajes un enfoque de diseo. 214 p.


Bis (13)

89

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

formas normales. Y una de estas formas formales ms conocidas es la forma normal de


Chomsky (FNCH). La FNCH consiste en que las reglas pueden tener dos formas:
1. A a, con a
2. A BC, con B,C V
Esta forma normal tiene por objeto facilitar el anlisis sintctico de una palabra de
entrada, siguiendo las siguientes estrategias:
Se trata de construir un rbol de derivacin de de arriba hacia abajo (llamado
top-down).
Inicialmente el smbolo inicial S puede producir la palabra .
Se procede a dividir la palabra de entrada en dos pedazos, , para luego
tomar una regla S AB, y tratar de verificar si se puede derivar a a partir de A y b
a partir de B, es decir: S . . . si:
1. , hay una regla S .
2. , hay una regla S AB, con A . . . , y

B ...

LECCIN 20. LIMITACIONES DE LOS LLC


El objetivo es verificar que dado un lenguaje L no cumple que sea LLC. El teorema de
bombeo permite verificar esta condicin. Este lema de bombeo tambin puede verse
como una condicin necesaria que deben de cumplir todos los lenguajes libres de
contexto.
Lema de Bombeo para lenguajes libres de contexto: Sea L un lenguaje libre de
contexto. Entonces, existe una constante n, que depende solo de L, tal que si z L y
z n , entonces z se puede escribir de la forma uvwxy de forma que:
1. vx 1
2. vwx n,

3. i 0, uv i wx i y L

90

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Demostracin. Slo vamos a indicar una idea de cmo es la demostracin. Supongamos


que la gramtica no tiene producciones nulas ni unitarias (si existieses siempre se podran
eliminar).
Asumamos un rbol de derivacin de una palabra generada por la gramtica. Es fcil
ver que si la longitud de es suficientemente grande, en su rbol de derivacin debe de
existir un camino de longitud mayor que el nmero de variables. Sea N un nmero que
garantice que se verifica esta propiedad. En dicho camino, al menos debe de haber una
variable repetida. Supongamos que esta variable es A, y que la figura 52 representa el
rbol de derivacin y dos apariciones consecutivas de A.
Figura 52: Arboles de derivacin en el lema de bombeo

Fuente: <MORAL, S; Modelos de computacin>

CAPITULO 5. AUTMATAS DE PILA


Un Autmata de pila (AP) PushDown Automata (PDA) no es ms que un AF con un
poder adicional de clculo (memoria). Dado que los AF no son tan poderosos para ciertas
operaciones ni para aceptar los LLC, los AP si lo son

Si para las expresiones regulares se tenan ciertas maquinas abstractas, autmatas


finitos, que las reconocan, para las CFG (Gramticas fuera de contexto) vamos a usar
otro tipo de maquina reconocedora denominada autmata de pila. Estas se diferencian de
los autmatas finitos en que se ayudan para sus transiciones de una memoria con
estructura de pila. Como en los anteriores, la transicin entre estados depende del
smbolo ledo y del estado actual. Cada transicin implica la modificacin de la pila.

91

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

LECCIN 21. DEFINICIN DE AUTMATA CON PILA

A continuacin daremos la definicin formal de autmata con pila no determinstico


(APND). Al contrario que en los autmatas finitos, los autmatas con pila no
determinsticos y determinsticos no aceptan las mismas familias de lenguajes.
Precisamente son los no determinsticos los asociados con los lenguajes libres de
contexto. Los determinsticos aceptan una familia ms restringida de lenguajes.
Definicin 20: La formalizacin de un autmata de pila es un sptuplo ( K , , , , s, F ) en
donde:
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 smbolo inicial de la pila (o tambin se denota como Z simplemente)
F K es un conjunto de estados finales.
( K x * x *) x ( K x *) es la relacin (funcin) de transicin.
Observar que el autmata es no determinista ya que dado un estado, un smbolo del
alfabeto de entrada y otro del alfabeto de la pila, puede pasar a distintos estados y
reemplazar el tope de la pila por distintas cadenas i , avanzando o no la cabeza lectora
una posicin:
: K x ( U { }) x 2 K x *
La figura 53 muestra la estructura de un Autmata de Pila (PDA)

92

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Figura 53: Formalizacin de un PDA

La funcin de transicin aplica cada estado, cada smbolo de entrada (incluyendo la


cadena vaca) y cada smbolo tope de la pila en un conjunto de posibles movimientos.
Cada movimiento parte de un estado, un smbolo de la cinta de entrada y un smbolo tope
de la pila. El movimiento en s consiste en un cambio de estado, en la lectura del smbolo
de entrada y en la sustitucin del smbolo tope de la pila por una cadena de smbolos.

LECCIN 22. FUNCIONAMIENTO DE LOS AUTMATAS DE PILA

La pila funciona de manera que el ultimo caractr 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
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 estn encima de ellos.

93

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

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, segn las necesidades de diseo del autmata.
Al iniciar la operacin de un AP, la pila se encuentra vaca. Durante la operacin del AP,
la pila puede ir recibiendo (y almacenando) caracteres, segn lo indiquen las transiciones
ejecutadas. Al final de su operacin, para aceptar una palabra, la pila debe estar
nuevamente vaca.
En los AP las transiciones de un estado a otro indican, adems de los caracteres que se
consumen de la entrada, tambin lo que se saca del tope de la pila, as como tambin lo
que se mete a la pila.
Se entiende por configuracin de un autmata con pila a su situacin en un instante
considerado expresada formalmente por medio de una tripla.
(q, , ) ( K x * x *) en donde:

q K es el estado actual del autmata.


* es la subcadena de entrada que an no se ha analizado.
* es el contenido actual de la pila

Se presenta un caso en el que:

Si = no queda nada por analizar


Si = se ha reconocido la cadena

La Notacin grfica que se asemeja a la de los autmatas finitos (AF) es la dada as:
Para las transacciones se usa: / / en donde:

= es la entrada (secuencia de caracteres) que se consume.


= es lo que se saca de la pila.
= es lo que se mete en la pila

Ejemplo 49 Dada la siguiente transicin: a / / A Indica que se consume de la entrada


un caractr a, no se saca nada de la pila y se mete A a la pila.
La funcin de transicin de estados de un AP puede ser representada por un diagrama
donde los nodos representan los estados y los arcos transiciones. Si se da la transicin, el
arco queda rotulado de la siguiente manera: Figura 54.
94

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Figura 54: Transicin de un PDA

Si el estado actual es q0 y la cabeza lectora apunta un smbolo a, y el tope de la pila es X,


entonces cambiar al nuevo estado q0, avanzar la cabeza lectora, y sustituir el smbolo del
tope X en la pila por la cadena

LECCIN 23. DISEO DE AUTMATAS DE PILA


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:
La palabra de entrada se debe haber agotado (consumido totalmente).
Al AP se debe encontrar en un estado final.
La pila debe estar vaca.
Transiciones de un PDA: Las posibles operaciones con la cinta y la pila son:
La cinta se desplaza en un solo sentido y su cabeza solo puede leer.
La pila, est limitada en un extremo por definicin, cuando se lee un elemento de
la pila, este desaparece o se saca y cuando se escribe en la pila se introduce un
elemento.
En cualquier caso, si se vaca la pila, entonces el autmata se detiene.
El problema de diseo de los AP consiste en obtener un AP M que acepte exactamente
un lenguaje L dado. Por exactamente queremos decir, como en el caso de los autmatas
finitos, que, por una parte, todas las palabras que acepta efectivamente pertenecen a L, y
por otra parte, que M es capaz de aceptar todas las palabras de L.
Aunque en el caso de los AP no hay metodologas tan generalmente aplicables como era
el caso de los autmatas finitos, siguen siendo vlidas las ideas bsicas del diseo
sistemtico, 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.
95

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

En resumen, a la hora de disear un AP tenemos que repartir lo que requiere ser


recordado entre los estados y la pila. Distintos diseos para un mismo problema pueden
tomar decisiones diferentes en cuanto a qu recuerda cada cual.

Definicin 21: Un movimiento de un AP es una transicin entre configuraciones

Ejemplo 50 El movimiento (q, a , Z ) (q, , ) es un movimiento vlido siempre


y cuando (q, ) (q, a, Z) con q K,

a ( U ) ,

*,

, *.

Se recuerda que un AP no puede realizar ningn movimiento si la pila est vaca. Por lo
que un AP reconocer una cadena de entrada por estado final si partiendo de su
configuracin inicial (q0, t, Z0), llega a una configuracin final (qf, , ) empleando
movimientos vlidos y se expresa como:
(q0, t, Z0) * (qf, , ), qf F, *
La cadena ser aceptada por vaciado de pila si despus de leerse toda la cadena se llega
a un estado con la pila vaca, independientemente del tipo de estado en el que se
encuentre el AP.

RESUMEN DE LAS TRANSICIONES DE UN PDA:

Leer un smbolo de entrada


Extraer un smbolo de la pila
Insertar un smbolo en la pila
Pasar a un estado nuevo

Ejemplo 51 Disear un AP que acepte exactamente el lenguaje con palabras de la forma


anbn, para cualquier nmero natural n.
La figura 55 muestra el diseo inicial para este ejercicio:

96

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Figura 55: Estructura de un PDA para w=aabb

La construccin en diseo indica utilizar la pila como contador para recordar la cantidad
de as que se consumen, y luego confrontar la cantidad de bs. Una primera versin de
este diseo utiliza un solo estado q, con transiciones a/ /a y b / a / de q as mismo.
El diseo del autmata se ve en la figura 56.
Figura 56: Diseo de un PDA para w=aabb

97

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Para verificar el funcionamiento del autmata, podemos simular su ejecucin, listando las
situaciones sucesivas en que se encuentra, mediante una tabla que llamaremos traza de
ejecucin. Las columnas de una traza de ejecucin para un AP son: el estado en que se
encuentra el autmata, lo que falta por leer de la palabra de entrada, y el contenido de la
pila.
Por ejemplo, la traza de ejecucin del AP del ltimo ejemplo, para la palabra aabb, se
muestra a continuacin en la tabla 13:
Tabla 14: Traza de ejecucin del AP
Estado
q
q
q
q
q

Por Leer

pila

.aabb
.abb
.bb
.b

.a
.aa
.a

Fuente: <BRENA.R; Autmatas y lenguajes un enfoque de diseo>

Concluimos que el AP efectivamente puede aceptar palabras como anbn. Sin embargo,
hay un problema: el AP tambin acepta palabras como abab, que no tienen la forma
deseada! (es fcil construir la traza de ejecucin 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 solucin 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).

LECCIN 24. FUNCIONES QUE SE APLICAN SOBRE LOS STACKS. (PILAS).

Stacks: Podemos identificar las pilas con ciertos lenguajes y ciertas funciones sobre un
alfabeto del modo siguiente:
Comenzamos aadiendo un nuevo smbolo Z0 que no est en .
Las pilas (stacks) son elementos del lenguaje: Z0 . El smbolo Z0 se identificar
con el significado: Fondo de la Pila. (No es que est vaca que es diferente).
Se definen las siguientes funciones. Figura 57.
98

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Figura 57: Funciones de la Pilas.

Fuente: <El autor, creado con Lyx 2.0.6>


Tabla 15: Recursos web para PDA
DESCRIPCIN DE VIDEO

9Configuracin, descripcin.
Componentes de un PDA. Parte 1
de 3
Configuracin, descripcin.
Componentes de un PDA. Parte 2
de 3
Configuracin, descripcin.
Componentes de un PDA. Parte 3
de 3

CANAL

CANAL

http://youtu.be/q5G0WnL5JUA

http://www.veoh.com/watch/v61736354aeFD3q7R

http://youtu.be/yfXfKKZZl1g

http://www.veoh.com/watch/v61736979F2m9HbgG

http://youtu.be/1YdZpLloFb8

http://www.veoh.com/watch/v61737911GZHgFEnT

Fuente:<El autor>

99

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

LECCIN 25. COMBINACIN MODULAR DE AUTMATAS DE PILA


Como ya se ha estudiado los autmatas finitos no determinsticos (AFND) reconocen los
mismos lenguajes que los autmatas finitos determinsticos (AFD). Sin embargo no ocurre
lo mismo con autmatas de pila no determinsticos (APND) y autmatas de pila
determinsticos (APD). Algunos lenguajes slo pueden ser reconocidos por un APND,
pero no por un APD.

En los AP tambin es posible aplicar mtodos de combinacin modular de autmatas, as


como se pueden hacer con los autmatas finitos. En particular, es posible obtener AP que
acepten la unin y concatenacin de los lenguajes aceptados por dos AP dados.
En el caso de la unin, dados dos AP M1 y M2 que aceptan respectivamente los lenguajes
L1 y L2, podemos obtener un AP que acepte la unin L1 U L2, introduciendo un nuevo
estado inicial q0 con transiciones / / a los dos antiguos estados iniciales q1 y q2,
como se ilustra en la figura 58.
Figura 58: Unin de AP.

Ejemplo 52 : En el caso de obtener un AFPD que acepte le lenguaje:


L1 = {xnym: n,m 0, n m} Habra que determinar si este lenguaje es producto de la
unin de: {xnym: n = m} y {xnym: n > m} En los que habra que obtener los AP de
cada uno y combinarlos con el mtodo descrito anteriormente.
El Autmata generado para L1 se muestra en la figura 59.

100

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Figura 59: Autmata AFPD.

(q0, Z)

(q1,Z)

(q1, x, )

(q1,x)

(q1, y, x)

(q2, )

(q2, y, x)

(q2, )

(q2, , Z)

(q3, Z)

CAPITULO 6: PROPIEDADES DE LOS LENGUAJES INDEPENDIENTES DE CONTEXTO


LECCIN 26. LENGUAJE ACEPTADO POR UN AP

Los lenguajes aceptados por los Autmatas de Pila se denominan lenguajes libres del
contexto.
1. Lenguaje aceptado por estados fiales:

L(M ) { * : (q0 , , Z 0 ) ( , , ), F , *}
2. Leguaje aceptado por pila vaca:

N ( M ) { * : (q0 , , Z 0 ) * ( , , ), K }
En el primer caso, una palabra es aceptada, si se puede llegar a un estado final despus
de consumir la entrada. En el segundo criterio, los estados finales no tienen ningn
significado, y una palabra se acepta si cuando se termina de leer la entrada la pila se
queda vaca.
101

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Para el caso del ejemplo 52 para la cadena vlida o aceptada = xxx las transiciones
dadas estn 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 autmata en el estado q1 reconoci por completo la cadena.
Para la cadena vlida = xxy las transiciones dadas estn 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 vaca (qued xZ) se reconoci toda la cadena completa
y el autmata qued en un estado de aceptacin q2.
Para la cadena vlida = xxyy las transiciones dadas estn 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 smbolo inicial de pila y por
tanto la cadena es aceptada.
Para la cadena no vlida o no aceptada = xyy las transiciones dadas estn definidas
as para el recorrido de la Pila:
(q0, xyy, Z) (q1, xyy, Z) (q1, yy, xZ) (q2, y, Z)
A pesar de que se est en un estado de aceptacin la cadena no se termin de escanear,
la transicin (q2, y, Z) no est definida en este autmata. Por tanto la cadena no es
reconocida por el autmata.

LECCIN 27. RELACIN ENTRE LOS AUTMATAS DE PILA Y LENGUAJES LIBRES DE


CONTEXTO

Se va a verificar si los AP son efectivamente capaces de aceptar los LLC ya que un


Teorema anterior afirma: Si un lenguaje es generado por una gramtica libre del contexto,
entonces es aceptado por un Autmata con Pila No-Determinstico.
Teorema. Los autmatas de pila aceptan exactamente los LLC.
102

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Vamos a examinar la prueba de esta afirmacin, no solamente por el inters por la


rigurosidad matemtica, sino sobre todo porque provee un mtodo de utilidad prctica
para transformar una GLC en un AP. La prueba de este teorema se puede dividir en dos
partes:
1. Si M es un AP, entonces L(M) es un LLC
2. Si L es un LLC, entonces hay un AP M tal que L(M) = L
Vamos a presentar nicamente la prueba con la parte 2, que consideramos de mayor
relevancia prctica.
Sea una gramtica G = (V,,R,S). Entonces un Autmata de Pila M que acepta
exactamente el lenguaje generado por G se define como sigue:
M = ({p, q},, V U , , p, {q})

donde contiene las siguientes transiciones:

1. Una transicin ((p, , ), (q, S))


2. Una transicin ((q, ,A), (q, x)) para cada A x R
3. Una transicin ((q, , ), (q, )) para cada
Ejemplo 53 Obtener un AP que acepte el LLC generado por la gramtica con reglas:
1. S aSa
2. S bSb
3. S c
Las transiciones del AP correspondiente estn dadas en la tabla siguiente:

1 (p, , )
2 (p, ,S)
3 (q, ,S)
4 (q, ,S)
5 (q,a, a)
6 (q,b, b)
7 (q,c, c)
103

(q,S)
(q,aSa)
(q,bSb)
(q,c)
(q, )
(q, )
(q, )

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

El funcionamiento de este AP ante la palabra abcba aparece en la siguiente tabla:

Estado
p
q
q
q
q
q
q
q
q
q

Falta leer Pila


abcba

abcba
S
abcba
aSa
bcba
Sa
bcba
bSba
cba
Sba
cba
cba
ba
ba
a
a

Se justifica intuitivamente el mtodo que se introdujo para obtener un AP


equivalente a una gramtica dada. Si se observa las transiciones del AP, veremos que
solamente tiene dos estados, p y q, y que el primero de ellos desaparece del clculo en el
primer paso; de esto concluimos que el AP no utiliza los estados para recordar
caractersticas de la entrada, y por lo tanto reposa exclusivamente en el almacenamiento
de caracteres en la pila. En efecto, podemos ver que las transiciones del tipo 2, lo
que hacen es reemplazar en la pila una variable por la cadena que aparece en el lado
derecho de la regla correspondiente. Dado que la (nica) transicin de tipo 1 (transicin 1
del ejemplo) coloca el smbolo inicial en la pila, a continuacin lo que hacen las reglas de
tipo 2 es realmente efectuar toda la derivacin dentro de la pila de la palabra de entrada,
reemplazando un lado izquierdo de una regla por su lado derecho. Una vez hecha la
derivacin de la palabra de entrada, la cual estara dentro de la pila, sin haber an
gastado un solo caracter de la entrada podemos compararla caracter por caracter con la
entrada, por medio de las transiciones de tipo 3.

Existe sin embargo un problema tcnico: si observamos la corrida para la palabra abcba,
nos daremos cuenta de que no estamos aplicando las reglas en el orden descrito en el
prrafo anterior, esto es, primero la transicin del grupo 1, luego las del grupo 2 y
finalmente las del grupo 3, sino que ms bien en la cuarta lnea de la tabla se consume un
caracter a (aplicacin de una transicin del grupo 3) seguida de la aplicacin de una
transicin 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
104

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

encuentran en el tope de la pila. En efecto, recurdese 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 aplicacin de transiciones del tipo 3.

LECCIN 28. PROPIEDADES DE CLAUSURA DE LOS LENGUAJES LIBRES DE CONTEXTO


Los lenguajes libres de contexto son cerrados para las operaciones:
Unin
Concatenacin
Clausura
Demostracin:
Sean G1 = (V1, T1, P1, S1) y G2 = (V2, T2, P2, S2) dos gramticas 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 gramticas de tipo 2 que los generen.
L1 U L2. Una gramtica que genera este lenguaje es:
G3 = (V1 U V2 U {S3}, T1 U T2, P3, S3), donde S3 es una nueva variable, y P3 = P1 U P2 ms
las producciones S3 S1 y S3 S2
L1L2. Una gramtica 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 ms la produccin S4 S1S2.
L1* Una gramtica que genera este lenguaje es G5 =(V1 U {S5}, T1,P5,S5 ) donde
P5 es P1 ms las producciones S5 S1S5 y S5 .
Algunas propiedades de clausura de los lenguajes regulares no se verifican en la clase de
los lenguajes libres de contexto, como las que expresan el siguiente teorema.
Teorema: La clase de los lenguajes libres de contexto no es cerrada para la interseccin.
Demostracin. Sabemos que el lenguaje L = {aibici i 1} no es libre de contexto. Por
otra parte los lenguajes L2 ={ aibicj | i 1 y j 1} y L3 ={ aibicj | i 1 y j 1} si lo son.
105

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

El primero de ellos es generado por la gramtica:


S AB
A aAb | ab
B cB | c
y el segundo, por la gramtica:
S CD
C aC | a
D bDc bc
Como L2 L3 = L1, se deduce que la clase de lenguajes libres de contexto no es cerrada
para la interseccin.
Definicin: La clase de lenguajes libres de contexto no es cerrada para el complementario.
Demostracin: Es inmediato, ya que como la clase es cerrada para la unin, si lo fuese
para el complementario, se podra demostrar, usando las leyes De Morgan que lo es
tambin para la interseccin.

LECCIN 29. ALGORITMOS DE DECISIN PARA LOS LENGUAJES LIBRES DE CONTEXTO.


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 gramtica de tipo 2 o un autmata con pila no
determinstico) es vaco, finito o infinito. Sin embargo, en la clase de lenguajes libres de
contexto comienzan a aparecer algunas propiedades indecidibles. A continuacin,
veremos algoritmos para las propiedades decidibles y mencionaremos algunas
propiedades indecidibles importantes.
Teorema Existen algoritmos para determinar si un lenguaje libre de contexto es:
a) vaco
b) finito
c) infinito

106

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Demostracin.
a) En la primera parte del algoritmo para eliminar smbolos y producciones intiles de una
gramtica, se determinaban las variables que podan generar una cadena formada
exclusivamente por smbolos terminales. El lenguaje generado es vaco si y solo si la
variable inicial S es eliminada: no puede generar una palabra de smbolos terminales.
b) y c) Para determinar si el lenguaje generado por una gramtica de tipo 2 es finito o
infinito pasamos la gramtica a forma normal de Chomsky, sin smbolos ni producciones
intiles. En estas condiciones todas las producciones son de la forma:
A BC, A a
Se construye entonces un grafo dirigido en el que los vrtices son las variables y en el
que para cada produccin 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.

Ejemplo 54 Consideremos la gramtica con producciones,


S AB
A BC | a
B CC | b
Ca
El grafo asociado es el de la figura 60 (a). No tiene ciclos y el lenguaje es finito. Si
aadimos la produccin C AB, el grafo tiene ciclos figura 60 (b) y el lenguaje generado
es infinito.
Figura 60: Grafo para L finito y L infinito.

107

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

LECCIN 30. PROBLEMAS INDECIDIBLES PARA LENGUAJES LIBRES DE CONTEXTO.


Para continuar el apartado de algoritmos de decisin para gramticas libres de contexto
daremos algunos problemas que son indecidibles, es decir, no hay ningn algoritmo que
los resuelva. En ellos se supone que G, G1 y G2 son gramticas libres de contexto dadas
y R es un lenguaje regular.
Los lenguajes libres de contexto tienen una aplicacin a los compiladores, aunque existen
otras aplicaciones como la comparticin de informacin. Es aqu donde se presentan
interrogantes a las denominadas gramticas sensibles al contexto.
Para gramticas sensibles al contexto, el problema de decidir si el lenguaje que genera es
vaco o no tambin es un problema indecidible.
LMITE DE LOS COMPUTADORES ACTUALES
La ltima Unidad de este mdulo (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 Mquina de Turing (MT) que los resuelva (ni siquiera los reconozca). Tambin
se ha formulado la tesis de Church-Turing, que determina el lmite de los computadores
actuales. Si esto es as, llegamos al caso de formular la pregunta:
Qu tipo de mquina es un computador actual?
Es otro contexto que podr concluir cuando se analice la MUT (Mquina Universal de
Turing) como una mquina programable. Para demostrar esta afirmacin, 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 smbolos de cinta se codifican como la
informacin que se permiten guardar en la memoria del computador. Los estados, al ser
finitos, se pueden guardar en una tabla (en realidad sera el estado del procesador, que
incluye el contador de programa) y las transiciones se simulan mediante un programa. La
cinta se simulara con la memoria. El inconveniente de que un computador tiene
una memoria finita se soluciona suponiendo que siempre es posible aadirle, de
forma indefinida, ms memoria. De esta forma un computador simulara el funcionamiento
de una MT cualquiera.

108

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

El segundo paso, pasar de un computador a una MT de varias cintas, es tambin casi


inmediato. El programa y los datos de entrada al programa que se introducen en la
memoria antes de ejecutarse en el computador se pueden codificar como un par (M, ),
donde M es la secuencia de instrucciones que hay que computar y son los datos de
entrada al programa, almacenndose en la primera cinta. En la segunda cinta
almacenaremos las posiciones de memoria a las que va a acceder el programa para su
lectura/escritura. En la tercera cinta almacenaremos el contador de programa (el estado),
que es el que determina la direccin de la computacin. De esta forma la MT simulara el
funcionamiento de un computador muy bsico. La memoria cach, los registros, la UAL
(Unidad aritmeticolgica) son ampliaciones que se han hecho para mejorar la eficiencia.

UNIDAD 3 LENGUAJES ESTRUCTURADOS POR FRASES.


En las Unidades precedentes se han estudiado lo que se puede considerar las mquinas
abstractas que permiten solucionar ciertos tipos de algoritmos, los algoritmos en los
que no puede recordarse ms que una cantidad fija de informacin y otros en los
que la informacin desarrollada durante la ejecucin 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 Mquina de Turing , que es
aceptada de manera amplia como modelo general de computacin, aunque las
operaciones bsicas de esta mquina son comparables en su sencillez a las de las
mquinas estudiadas en las unidades anteriores, las
nuevas
mquinas
pueden
realizar una amplia variedad de operaciones de computo. Adems de aceptar lenguajes
les es posible computar funciones y de conformidad con la tesis de Church-Turing,
ejecutar casi cualquier procedimiento algortmico concebible.
El objetivo de esta unidad ser reconocer la importancia y el poder computacional de las
Mquinas de Turing en el contexto de la solucin de problemas computacionales de
reconocimiento de lenguajes.

CAPITULO 7 MAQUINAS DE TURING.

Los modelos abstractos de computacin tienen su origen en los aos 30, bastante antes
de que existieran los ordenadores modernos, en el trabajo de los lgicos Church, Gdel,
Kleene, Post, y (Alan Mathison Turing). Estos primeros trabajos han tenido una profunda
influencia no solo en el desarrollo terico de las Ciencias de la Computacin, sino que
109

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

muchos aspectos de la prctica de la computacin que son ahora lugar comn de los
informticos, fueron presagiados por ellos; incluyendo la existencia de ordenadores de
propsito general, la posibilidad de interpretar programas, la dualidad entre software y
hardware, y la representacin de lenguajes por estructuras formales basados en reglas de
produccin.
As como en secciones anteriores vimos como al aadir al autmata finito bsico una pila
de almacenamiento auxiliar, aumentando con ello su poder de clculo, cabra ahora
preguntarnos qu es lo que habra que aadir a un autmata de pila para que pudiera
analizar lenguajes como {anbncn}. Bsicamente se trata del diseo de un Autmata 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 aos 30 un modelo de maquina abstracta, como una extensin
de los autmatas finitos, que result ser de una gran simplicidad y podero a la vez. La
mquina de Turing es particularmente importante porque es la ms poderosa de todas las
maquinas abstractas conocidas.
Utilidad de las Mquinas de Turing (MT):
Gracias a ser tan simples, resulta ms fcil demostrar que algo no se puede
resolver con ellas.
Gracias a su equivalencia con los lenguajes de programacin, entonces facilitan la
demostracin de que cierto problema, no se puede resolver con un lenguaje de
programacin.
Mecanismo de cmputo muy sencillo de definir. Pero tan potentes como los
lenguajes de programacin de muy bajo nivel.
Por ser tan de demasiado de Bajo Nivel no resultan prcticas para programar.
La parte final del estado de las mquinas de Turing nos lleva a analizar la Tesis de
Church, que dice que las Mquinas de Turing son equivalentes a cualquier modelo de
computacin factible de construir.

LECCIN 31. FORMALIZACIN DE LAS MT.


Corresponde a su modelizacin matemtica en trminos de la teora de conjuntos.
Una MT es un septuplo (K, , , , s) en donde:
K = es el conjunto de estados tal que h K ;
110

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

= es el alfabeto de entrada, donde ;


= es el alfabeto de la cinta, donde y ;
s K es el estado inicial;
T K es el estado final;
B es el smbolo blanco (el smbolo B no puede hacer parte de ) aparece en
todas las casillas excepto en aquellas que contienen los smbolos de entrada.
: (K {h} x ) K x ( U { L,R } )
Los componentes de una MT se pueden ver en la figura:

Figura 61: Componentes de una MT

111

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

La funcin de transicin 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 ledo en la
cinta, que es elemento de .
Por eso a la izquierda de la flecha aparece la expresin : (K {h} x ). Luego, el
resultado de la funcin de transicin debe incluir el siguiente estado, que es elemento de
K. Otro resultado de la funcin de transicin es la accin a ejecutar por la MT, que puede
ser una escritura o un movimiento a la izquierda o a la derecha. La accin mover cabeza
a la izquierda se representa por el smbolo L, y similarmente R para la derecha. En el
caso de la escritura, en vez de usar un smbolo o comando especial, simplemente se
indica el caracter que se escribe, el cual es un elemento de . Desde luego, para que no
haya confusin se requiere que ni L ni R estn en .
Resumiendo, el resultado de la funcin de transicin debe ser un 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 funcin de transicin enviar al autmata a un
estado p, y adicionalmente escribir el carcter b. Similarmente si (q, a) = (p, L) la
cabeza de la MT har un movimiento a la izquierda adems de la transicin de estado.

Ejemplo 55: Sea la MT siguiente: K = {s, h}, (solo est el estado inicial, adems del halt)
donde:
={a}, ={a, }, (s, a) =

(s,R), (s, ) = (h,R)

Puede verse por la funcin de transicin 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.
Ntese que, puesto que es una funcin, en principio debe tenerse por cada estado y
cada caracter una transicin. 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 tambin de q con .
En la prctica, 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 dems flechas pueden tener una salida cualquiera,
sin afectar esto el funcionamiento de la MT. Por ejemplo, a partir del estado inicial
112

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

podemos suponer, sin arriesgarnos, que no es posible encontrar ms que el caracter


blanco, por lo que no tiene caso dibujar flechas del estado inicial con a, con b, etc.

LECCIN 32. FUNCIONAMIENTO DE LA MQUINA DE TURING.


La Mquina de Turing es un mecanismo de computacin notoriamente primitivo, y sin
embargo permite llevar a cabo cualquier cmputo que podamos hacer en nuestro PC.
Las caractersticas que definen su funcionamiento son:
Tiene, como los autmatas 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, llenndose 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 61.
En la MT la cabeza lectora es de lectura y escritura, por lo que la cinta puede ser
modificada en curso de ejecucin.
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.
La operacin de la MT consta de los siguientes pasos:
1. Lee un caracter en la cinta
2. Efecta una transicin de estado
3. Realiza una accin en la cinta
Las acciones que puede ejecutar en la cinta la MT pueden ser:
Escribe un smbolo en la cinta, o
Mueve la cabeza a la izquierda o a la derecha
Estas dos acciones son excluyentes, es decir, se hace una o la otra, pero no ambas a la
vez.
La palabra de entrada en la MT est escrita inicialmente en la cinta, como es habitual en
nuestros autmatas, pero iniciando a partir de la segunda posicin de la cinta, siendo el
113

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

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 ().
Por definicin, al iniciar la operacin de la MT, la cabeza lectora est posicionada en el
caracter blanco a la izquierda de la palabra de entrada, el cual es el cuadro ms a la
izquierda de la cinta.
Decimos que en la MT se llega al final de un clculo cuando se alcanza un estado
especial llamado halt en el control finito, como resultado de una transicin.
Representaremos al halt por h. 1 Al llegar al halt, se detiene la operacin de la MT, y se
acepta la palabra de entrada. As, en la MT no hay estados finales. En cierto sentido el
halt sera entonces el nico estado final, solo que adems detiene la ejecucin.
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.
El lenguaje aceptado por una MT es simplemente el conjunto de palabras aceptadas por
ella.
Al disear una MT que acepte un cierto lenguaje, en realidad diseamos el autmata finito
que controla la cabeza y la cinta, el cual es un autmata con salida (acepta cadenas
vlidas). As podemos usar la notacin grfica utilizada para aquellos autmatas 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 ledo por la cabeza de la MT) es , la cabeza lectora hace un
movimiento a la izquierda, indicada por el caracter L (left, en ingls); 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 accin al recibir el caracter
consiste en escribir el caracter en la cinta. Con estos recursos es suficiente para disear
algunas MT, como en el ejemplo que se visualiza en el recurso web.
Ejemplo 56: Disee una MT que reconozca

{0 n 1 n : n 1 } y en el que ejecute:

Cambia un 0 por una X y se mueve hacia la derecha, pasando por encima de los
ceros e Y, hasta llegar al primer 1.

Cambia el 1 por la Y y se mueve hacia la izquierda por encima de todos los Y y de


todos los ceros hasta llegar a una X y se repite el proceso hasta que solo queden
Xs y Ys.

El autmata se visualiza en la figura 62.


114

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Figura 62: Mquina de Turing simulada en JFLAP.

Fuente:<JFLAP El Autor>

La funcin se define as:

(q0,0) = (q1, X, D)
(q1,0) = (q1, 0, D)
(q1,X) = (q1, X, D)
(q1,1) = (q2, Y, I)
(q2,Y) = (q2, Y, I)
(q2,0) = (q2, 0, I)
(q2,X) = (q0, X, D)
(q0,Y) = (q3, Y, D)
(q3,Y) = (q3, Y, D)
(q3,B) = (q4, B, D)

Sea T = {q4] (es decir el estado final)


Sea = 100
q00011 Xq111 X0q111 Xq20Y1
q2XoY1 Xq00Y1 XXq1Y1
XXYq11 XXq2YY Xq2XYY
XXq0YY XXYq3Y
XXYYq3B XXYYBq4B

En el simulador JFLAP la R (Right) es igual a simular D (derecha) y la L (Left) es igual a


simular I (izquierda)
La MT para por que qued en un estado de aceptacin y la cadena es reconocida.

115

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Tabla 16: Recursos web para MT


DESCRIPCIN DE VIDEO

Construccin de Mquinas de
Turing (MT). Parte 1 de 2.
Construccin de Mquinas de
Turing (MT). Parte 2 de 2.

CANAL

CANAL

http://youtu.be/Sg3Q2Qm3IL0

http://www.veoh.com/watch/v61738230cQreJHP3

http://youtu.be/lb7h724tlFg

http://www.veoh.com/watch/v61738916pmGbXGyk

Fuente:<El autor>

LECCIN 33. DIFERENCIAS ENTRE LAS COMPUTADORAS Y LAS MQUINAS DE TURING

Aparte de la capacidad de memoria, las diferencias entre una MT y una


computadora de estructura Von Neuman son:

En cuanto a estados: En una MT el n de estados depende del algoritmo. En una


computadora, un estado viene representado por el contenido de la memoria, y una
situacin por un estado y un puntero a una direccin (la que contiene a la instruccin que
va a ejecutarse). La ejecucin de la instruccin pasa a la mquina a otro estado y la
variable de enlace adopta otro argumento (la direccin siguiente si la instruccin no era de
bifurcacin y la mquina es secuencial natural).
En cuanto a memoria: En una MT la memoria es la cinta de E/S ms el "soporte fsico"
de los estados de la Unidad de Control (UC). En una MT es la secuencia de quntuplas
que hay que seguir para hacer el clculo. El mismo algoritmo, expresado en lenguajemquina "tipo" para una computadora "tipo", o sea, programa en lenguaje mquina,
es algo distinto que la
secuencia de quntuplas. Y se
debe a la marcada
diferencia entre n-upla e instruccin. Para formalizar el concepto de programa en
lenguaje mquina no es, pues, buen modelo una MT.
En cuanto al orden de ejecucin de las instrucciones: En la estructura Von Neumann
el secuenciamiento lo marca el orden de colocacin de las instrucciones en la memoria
interna y viene asegurado por el contador de programa. En una MT el orden de ejecucin
lo marca en todo instante el estado de la mquina y el carcter de la cinta apuntado, que
son los dos datos que determinan la quntupla que ha de ser ejecutada.

116

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

LECCIN 34. LA MAQUINA UNIVERSAL DE TURING.


Hasta aqu hemos considerado cada esquema funcional asociado a su MT propia. Pero
es posible concebir una MT capaz de ejecutar cualquier algoritmo; es decir capaz de
realizar los clculos que realizara cualquier otra MT, o sea, capaz de simular (tener el
mismo comportamiento) cualquier MT particular.
Esta mquina Universal no debe ser diseada para realizar un clculo especfico, sino
para procesar cualquier informacin (realizar cualquier clculo especfico -MT particularsobre cualquier configuracin inicial de entrada correcta para esa MT particular).

El principio fundamental de los computadores de propsito general es que no se cablea


un computador para cada problema que se desea resolver, sino que se cablea un nico
computador capaz de interpretar programas escritos en algn lenguaje. Ese lenguaje
tiene su propio modelo de funcionamiento y el computador simula lo que hara ese
programa en una cierta entrada. Tanto el programa como la entrada conviven en la
memoria. El programa tiene su propio alfabeto (caracteres ASCII, por ejemplo) y manipula
elementos de un cierto tipo de datos (incluyendo por ejemplo nmeros enteros), los que el
computador codifica en su propio lenguaje (bits), en el cual tambin queda expresada la
salida que despus el usuario interpretara en trminos de los tipos de datos de su
lenguaje de programacin. El computador debe tener, en su propio cableado, suficiente
poder para simular cualquier programa escrito en ese lenguaje de programacin, por
ejemplo no podra simular un programa en Java si no tuviera una instruccin Goto o
similar.
Resultara sumamente tener un modelo similar para MTs. En particular, elegimos las MTs
como nuestro modelo de mquina \ cableada" y a la vez como nuestro modelo de
lenguaje de programacin. La Mquina 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 simulacin se detendr, se colgar, o correr para siempre segn M lo
haga con En caso de terminar, dejar en la cinta la codificacin de lo que M dejara en
la cinta frente a .15

15

NAVARRO, A: Fundamentos de la ciencia de la computacin. 178 p.

117

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

LECCIN 35. LENGUAJES ACEPTADOS POR LA MAQUINA DE TURING.


El lenguaje aceptado o reconocido por una Mquina de Turing (MT), que se denota como
L(MT), es el conjunto de palabras formadas con el alfabeto *, que hace que la mquina
de Turing se detenga al alcanzar un estado final.
En un principio la cabeza de la mquina de Turing est situada a la izquierda de la cadena
a reconocer, y su estado es el estado inicial q0.
Una cadena de entrada es aceptada por una MT M si el cmputo que se indica la
configuracin inicial q0 termina en una configuracin instantnea 1p 2, p es un
estado de aceptacin, en la cual M se detiene completamente. El lenguaje L(M) aceptado
por una MT M se define como:

L(M) = { : q0 * 1p 2, p }

M se para en 1p 2 Si la cadena de entrada en una maquina M pertenece a L(M), la


maquina M siempre se detiene.
Los lenguajes formales que son aceptados por una mquina de Turing son exactamente
aquellos que pueden ser generados por una gramtica formal. El clculo Lambda es una
forma de definir funciones. Las funciones que pueden se computadas con el clculo
Lambda son exactamente aquellas que pueden ser computadas con una mquina de
Turing. Estos tres formalismos, las mquinas de Turing, los lenguajes formales y el
clculo Lambda son formalismos muy dismiles y fueron desarrollados por diferentes
personas. Sin embargo, ellos son todos equivalentes y tienen el mismo poder de
expresin. Generalmente se toma esta notable coincidencia como evidencia de que la
tesis de Church-Turing es cierta, que la afirmacin de que la nocin intuitiva de algoritmo
o procedimiento efectivo de cmputo corresponde a la nocin de cmputo en una
mquina de Turing.
Los computadores electrnicos, basados en la arquitectura Von Neumann as como las
mquinas cunticas tendran exactamente el mismo poder de expresin que el de una
mquina de Turing si dispusieran de recursos ilimitados de tiempo y espacio. Como
consecuencia, los lenguajes de programacin tienen a lo sumo el mismo poder de
expresin que el de los programas para una mquina de Turing y en la prctica no todos
118

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

lo alcanzan. Los lenguajes con poder de expresin equivalente al de una mquina de


Turing se denominan Turing completos.
Gramticas estructuradas por frases:
Parte izquierda de las reglas: combinacin de smbolos terminales y
no terminales, con al menos un no terminal.
Parte derecha de las reglas: combinacin de smbolos terminales y no terminales
de cualquier longitud (incluso 0).
Las mquinas de Turing aceptan lenguajes estructurados por frases.
Configuracin de una mquina de Turing:
Contenido de la cinta: entre corchetes.
A la izquierda del smbolo actual se incluye el estado.
Aceptacin: secuencia de configuraciones de la mquina que empieza con
]Y] y termina con [h [i
Teorema: Todo lenguaje estructurado por frases es aceptado por una mquina de Turing.
Para cada gramtica G existe una mquina de Turing no determinista M de 2 cintas que
aceptas el lenguaje generado por G.
Construccin de la mquina:
1. Se copia la cadena de entrada en la primera cinta.
2. Se escribe S (smbolo inicial) en la cinta 2.
3. Se aplican las reglas de reescritura de forma no determinista a la cadena de la cinta 2.
4. Si la cinta 2 contiene slo smbolos terminales, se compara con la cadena de la cinta
1. Si son iguales, el proceso ha terminado. Si no, provocar una terminacin anormal.
Las mquinas de Turing originan las siguientes clases de lenguajes:
L es recursivamente enumerable (RE) si existe una MT M tal que L(M) = L
Sea M una mquina de Turing; se dice que L=L(M) es un lenguaje recursivamente
enumerable si:
x L, M se DETIENE en q
x L,

M se DETIENE en q o bien NO se DETIENE,


119

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS 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

Todo lenguaje recursivo es recursivamente enumerable, pero la afirmacin reciproca no


es (en general) vlida.

CAPITULO 8: MAQUINAS DE TURING Y COMPUTACIN.


LECCIN 36. TESIS DE CHURCH /TURING.
La Teora de la Computabilidad se ocupa de dividir el universo de todos los lenguajes
sobre , en aquellos lenguajes que pueden ser reconocidos por algoritmos efectivos y los
que no. Ello conduce a las funciones no computables, es decir, a los problemas no
resolubles.
La Teora de la Computabilidad est compuesta por los siguientes niveles:
Primer nivel: divide los problemas en tres clases:
Primer tipo: Problemas imposibles, no tienen solucin.
Segundo tipo: Problemas ejecutables solo si disponemos de recursos ilimitados.
Tercer tipo: Problemas que se pueden ejecutarse sin necesidad de recursos ilimitados
Segundo nivel: se clasifican en funcin 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 tamao.

PRINCIPIO DE CHURCH-TURING:

Todo proceso fsico puede ser simulado por un dispositivo universal de computacin."
120

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS 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 definicin de funcin definible, encontr varios ejemplos
de problemas cuya resolucin era irresoluble llegando a manifestar que el
Entscheidungsproblem era uno de estos problemas
"Una funcin es recursiva si y slo si es total y efectivamente computable. Una
funcin es parcialmente recursiva si y slo si es efectivamente computable."
Es decir, una funcin de enteros positivos es efectivamente calculable slo si es
recursiva
ENUNCIADOS: TURING
"Una funcin es efectivamente computable si y slo si la funcin es Turingcomputable."
Es decir, si una funcin es computable entonces puede ser computada por una
mquina de Turing.
El objetivo de Turing era el de enfrentarse al problema planteado por Hilbert (el
Entscheidumgsproblem) utilizando para ello el concepto abstracto de una mquina, una
mquina terica.
Turing describa en su artculo que a travs de su mquina haba conseguido caracterizar
de un modo matemtico el nmero de funciones calculables, usando para ello un
algoritmo, este hecho se conoce como:
La clase de las funciones que pueden ser calculadas mediante un mtodo definido
coincide con la clase de las funciones calculables mediante una Mquina de Turing.

CHURCH Y TURING
"Todos los modelos computacionales efectivos son equivalentes a una mquina de
Turing

121

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

"Todo lo que es computable por un humano es computable por una mquina de


Turing"
"Toda funcin que pueda ser considerada naturalmente como computable, puede
ser computada por una mquina de Turing
TESIS FSICA DE CHURCH-TURING
"Toda funcin que pueda ser fsicamente computable, puede ser computada por
una mquina de Turing"
ORIGEN
El origen de la tesis de Church-Turing se encuentra en el hecho de que Turing
deseaba demostrar que el problema de la decisin (Entscheidungsproblem), para
el clculo de predicados, careca de solucin, es decir, era insoluble.
Se usa la palabra "tesis" en lugar de "teorema" ya que el concepto de ser
computable es algo informal, sin embargo que el concepto de mquina de Turing
es formal y preciso.
Aqu nos encontramos con un gran problema, puesto que la idea de la Mquina de
Turing no es equivalente a cada una de las definiciones de "computabilidad"
existentes.
TESIS EXTENDIDA DE CHURCH-TURING
"La mquina de Turing es tan eficiente como cualquier dispositivo de computar. Es
decir, si una funcin es calculable por un dispositivo hardware en tiempo para una
funcin de entrada de tamao n, entonces es computable por una mquina de
Turing en tiempo para un k fijo y dependiente del problema"
XITO DE LA TESIS
La tesis de Church-Turing ha sido tan exitosa que la mayora la supone verdadera.
Los trminos derivados de ella, como mtodo efectivo y computable son
comnmente utilizados, cuando en realidad computable se refiere a Turingcomputable, en el salto entre uno y otro se encuentra la tesis de Church, y entre
muchos otros conceptos y trminos comnmente utilizados en la teora de la
computabilidad o funciones recursivas

122

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

LECCIN 37. VARIANTES DE UNA MAQUINA DE TURING.


Hay otras definiciones de las mquinas de Turing que son equivalentes. Algunos de esos
modelos alternativos son mucho ms complicados aunque todos tienen la misma potencia
computacional (o de clculo). Muchas de ellas dotan de mayor flexibilidad al diseo de
una mquina de Turing que resuelva un problema en particular.
Es posible extender el mecanismo de la MT sin alterar lo que se puede hacer con la MT
bsica. Esto simplifica mucho dibujar MTs que realicen ciertas tareas, con la seguridad de
que podramos hacerlo con MTs bsicas de ser necesario. Algunas de estas extensiones
son:
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 ms til es
la MT con k cintas, Una MT de k cintas tiene un cabezal en cada cinta. En cada paso, lee
simultneamente los k caracteres bajo los cabezales, y toma una decisin basada en la kupla. Esta consiste de pasar a un nuevo estado y realizar una accin en cada cinta.

Su comportamiento y propiedades son:


La mquina dispone de tantos cabezales independientes como cintas
Una cinta (la primera) contiene la entrada. Las dems estn en blanco
Cada movimiento viene determinado por el estado y por los smbolos ledos por
los distintos cabezales:
Cambiando de estado
Sustituyendo los smbolos en las cintas accedidas
Desplazando (L;R) o no (S) la posicin del cabezal de cada cinta (nueva opcin)
Teorema: Un lenguaje L es reconocido por una mquina de Turing multicinta si y solo si L
es reconocido por una mquina de Turing estndar.
Esta mquina multicinta se formaliza as: (K, , , , q0, B, F)

Mquina no determinista: Mquina de Turing con una nica cinta y control finito nico.
Teorema: Un lenguaje L es reconocido por una mquina de Turing no determinista si y
solo si L es reconocido por una mquina de Turing estndar.
123

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Mquina multicabezal: Un nico movimiento permite desplazar independientemente las


n cabezas de la mquina sobre la nica cinta.

Mquina de Turing de Cinta infinita en una Direccin: Mquina de Turing que usa una
cinta que se extiende infinitamente en una nica direccin. Generalmente, se tiene una
cinta que se extiende infinitamente hacia la derecha. No est permitido realizar ningn
movimiento hacia la izquierda a partir de la celda del extremo izquierdo. Desde luego,
cualquier mquina de Turing de esta forma puede ser simulada por una de las que
responden a la definicin original. Para cada computacin, simplemente se marca una de
las celdas de la cinta infinita por los dos lados, como la celda que se encuentra en el lmite
izquierdo.

Mquina de Turing en Dos Direcciones: Una mquina de Turing con una cinta infinita
en un sentido puede simular una mquina de Turing con la cinta infinita en los dos
sentidos pero con dos pistas. Sea M una mquina de Turing con una cinta infinita en los
dos sentidos. La mquina 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 informacin
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).

LECCIN 38. PROBLEMAS DE HILBERT.


En 1928 durante un congreso internacional D. Hilbert plante las siguientes cuestiones:
Las matemticas son 'completas', esto es, cada afirmacin matemtica se puede
probar?
Las matemticas son 'consistentes', esto es, es posible probar paralelamente una
afirmacin y su negacin?
Las matemticas son 'decidibles', esto es, se puede encontrar un mtodo definido
aplicable a cualquier afirmacin matemtica, que nos de cmo resultado si es o no cierta
la aseveracin evaluada?

124

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

La intencin de Hilbert era conseguir un modelo matemtico formal, completo y


consistente, en el que a travs de un algoritmo, se pudiese determinar la veracidad o
falsedad de cualquier proposicin formal. Este problema recibi el nombre de
Entscheidungsproblem, resolverlo significara que para cualquier problema bien definido
existira un algoritmo capaz de resolverlo.
Los problemas de Hilbert son una lista de 23 problemas matemticos compilados por el
matemtico alemn David Hilbert para la conferencia en Pars del Congreso Internacional
de Matemticos de 1900. Los problemas estaban todos por resolver en aquel momento, y
varios resultaron ser muy influyentes en la matemtica 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.
Naturaleza e influencia de los problemas:
Aunque se han producido intentos de repetir el xito de la lista de Hilbert, ningn otro
conjunto tan variado de problemas o conjeturas ha tenido un efecto comparable en el
desarrollo del tema y obtenido una fraccin 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 posicin de competir con
Hilbert. John von Neumann produjo una lista, pero no obtuvo reconocimiento universal.
A primera vista, este xito podra atribuirse a la eminencia del autor de los problemas.
Hilbert estaba en la cspide de su poder y reputacin en aquel momento y continu
dirigiendo la sobresaliente escuela de matemtica en la Universidad de Gttingen. Un
examen ms cuidadoso revela que el asunto no es tan simple.
La matemtica de aquel tiempo era an discursiva: la tendencia a sustituir palabras por
smbolos y apelaciones a la intuicin y conceptos mediante axiomtica pura segua
subyugada, aunque se volvera fuerte durante la siguiente generacin. En 1900, Hilbert no
pudo acudir a la teora axiomtica de conjuntos, la integral de Lebesgue, los espacios
topolgicos o la tesis de Church, que cambiaran sus respectivos campos de forma
permanente. el anlisis funcional, fundado en cierto modo por el propio Hilbert como
nocin central de los testigos del espacio de Hilbert, no se haba diferenciado an del
clculo de variaciones; hay en la lista dos problemas de matemtica variacional, pero
nada, como podra asumirse inocentemente, sobre teora espectral (el problema 19 tiene
una conexin con la hipoelipticidad).
La lista no fue predictiva en ese sentido: no consigui plasmar o anticipar el fulgurante
ascenso que experimentaran la topologa, la teora de grupos y la teora de la medida en
el siglo XX, as como no previ la manera en que iba a avanzar la lgica matemtica. Por
125

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

tanto, su valor documental es el de ensayo: una visin parcial, personal. Sugiere algunos
programas de investigacin y algunas direcciones a seguir sin fin concreto.
De hecho, muchas de las preguntas daban una falsa idea del matemtico profesional del
siglo XXI, o incluso de 1950, en que la forma de una solucin a una buena pregunta
tomara la forma de un artculo publicado en una publicacin matemtica. Si este fuera el
caso de todos los veintitrs problemas, se hubiera simplificado el comentario hasta el
punto de poder dar una referencia a una revista, o considera la pregunta como abierta
todava. En algunos casos el lenguaje usado por Hilbert se sigue considerando un tanto
"negociable", en cuanto al significado real de la formulacin del problema (en ausencia,
repetimos, de fundamentos axiomticos, basados en matemtica pura, empezando con el
propio trabajo de Hilbert sobre geometra 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 formulacin de una claridad menos que total
(vanse las notas). En casos como el Vigsimo, el problema se podra leer de forma
razonable en una versin "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 razn ms importante es la gran rapidez con la que acept
la lista de Hilbert la comunidad matemtica de aquel momento (lo cual es una frmula
menos convencional que ahora, ya que por entonces haban pocos lderes investigadores,
que generalmente se encontraban en unos pocos pases Europeos y se conocan todos
entre ellos). Los problemas se estudiaron con gran atencin; 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 algortmicas, no a algoritmos
prcticos. Pidi un fortalecimiento de los cimientos de partes de la matemtica que a los
no practicantes an se antojaban guiadas por intuiciones opacas (el clculo de Schubert y
la geometra enumerativa).
Estas actitudes fueron adoptadas por muchos seguidores, aunque tambin fueron
discutidas, y continan sindolo. Treinta aos despus, Hilbert haba endurecido su
postura: vase ignorabimus.
Los veintitrs problemas de Hilbert son:
Problema 1. La hiptesis del continuo (esto es, no existe conjunto cuyo tamao est
estrictamente entre el de los enteros y el de los nmeros reales) Se ha probado la

126

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

imposibilidad de probarlo como cierto o falso mediante los axiomas de Zermelo-Fraenkel.


No hay consenso al respecto de considerar esto como solucin al problema.
Problema 2. Probar que los axiomas de la aritmtica son consistentes (esto es, que la
aritmtica es un sistema formal que no supone una contradiccin). Parcialmente resuelto:
hay quienes sostienen que se ha demostrado imposible de establecer en un sistema
consistente, finitista y axiomtico Sin embargo, Gentzen prob en 1936 que la
consistencia de la aritmtica se deriva del buen fundamento del ordinal 0, un hecho
sujeto a la intuicin 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 mtricas cuyas rectas sean geodsicas. Demasiado
vago para decidir si se ha resuelto o no.
Problema 5. Son los grupos continuos grupos diferenciales de forma automtica?.
Resuelto por Andrew Gleason
Problema 6. Axiomatizar toda la fsica. Sin resolver. No matemtico
Problema 7. Es a b trascendental, siendo a 0,1 algebraico y b irracional algebraico?.
Resuelto. Resultado: s, ilustrado por el teorema de Gelfond o el teorema de GelfondSchneider
Problema 8. La hiptesis de Riemann (la parte real de cualquier cero no trivial de la
funcin zeta de Riemann es ) y la conjetura de Goldbach (cada nmero par mayor que 2
se puede escribir como la suma de dos nmeros primos). Abierto
Problema 9. Encontrar la ley ms general del teorema de reciprocidad en cualquier
cuerpo numrico algebraico. Parcialmente resuelto
Problema 10. Encontrar un algoritmo que determine si una ecuacin diofntica polinmica
dada con coeficientes enteros tiene solucin entera. Resuelto. Resultado: no, el teorema
de Matiyasevich implica que no existe tal algoritmo.
Problema 11. Resolver las formas cuadrticas con coeficientes numricos algebraicos.
Parcialmente resuelto
Problema 12. Extender el teorema de Kronecker sobre extensiones abelianas de los
nmeros racionales a cualquier cuerpo numrico de base. Abierto

127

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Problema 13. Resolver todas las ecuaciones de 7 grado usando funciones de dos
parmetros. Resuelto. Lo prob posible Vladimir Arnold.
Problema 14. Probar la finitud de ciertos sistemas completos de funciones. Resuelto.
Resultado: no, en general, debido a un contraejemplo
Problema 15. Fundamento riguroso del clculo enumerativo de Schubert. Parcialmente
resuelto
Problema 16. Topologa de las curvas y superficies algebraicas. Abierto
Problema 17. Expresin de una funcin definida racional como cociente de sumas de
cuadrados. Resuelto. Resultado: se estableci un lmite superior para el nmero de
trminos cuadrados necesarios
Problema 18. Existe un poliedro irregular y que construya otros poliedros? Cul es el
apilamiento compacto ms denso?. Resuelto.
Problema 19. Son siempre analticas las soluciones de los Lagrangianos? Resuelto.
Resultado: s
Problema 20. Tienen solucin todos los problemas variacionales con ciertas condiciones
de contorno?. Resuelto. Ha supuesto un rea importante de investigacin durante el siglo
XX, culminando con las soluciones al caso no lineal.
Problema 21. Probar la existencia de ecuaciones lineales diferenciales que tengan un
grupo monodrmico prescrito Resuelto. Resultado: s o no, dependiendo de una
formulacin ms exacta del problema.
Problema 22. Uniformizacin de las relaciones analticas por medio de funciones
automrficas. Resuelto
Problema 23. Extensin de los mtodos del clculo de variaciones Resuelto

LECCIN 39. PROBLEMAS INSOLUBLES PARA LA TEORA DE LENGUAJES


Problemas de decisin: Un problema de decisin (PD) es aquel formulado por una
pregunta (referida a alguna propiedad) que requiere una respuesta de tipo si/no.
Problemas de decisin.
128

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Un problema de decisin es:


Soluble si existe un algoritmo total para determinar si la propiedad es verdadera
(Existe una MT que siempre para al resolver el problema).
Parcialmente soluble si existe un algoritmo parcial para determinar si la
propiedad es verdadera (existe una MT que resuelve el problema, pero puede no
parar).
Insoluble si no existe un procedimiento efectivo para determinar si la propiedad es
verdadera (no existe una MT).
Ejemplos de problemas de decisin:

Existe un algoritmo para decidir si un nmero natural cualquiera es par?

Si es soluble.

Existe un algoritmo para decidir si dos autmatas finitos cualesquiera son


equivalentes?
Si es un problema soluble.

Existe un algoritmo para determinar si una gramtica es ambigua o no?

No es insoluble.

CAPITULO 9. FUNCIONES RECURSIVAS


LECCIN 40. LENGUAJES DECIDIBLES

Un lenguaje decidible es aquel lenguaje L para el cual existe una mquina de Turing que
le puede aceptar cualquier cadena { L}.
Hay lenguajes formados por cadenas tales que una mquina de Turing logra un estado
final con las cadenas que reconoce y acepta, solamente. En este caso se dice que la
mquina de Turing semidecide al lenguaje. Los lenguajes semidecididos por una MT se
llaman recursivos numerables. Las gramticas 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
129

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS 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 relacin directa con que los autmatas de Turing generalizan a los de la
pila y estos a su vez a los autmatas finitos. Por otro lado, pese a que lenguajes formales
ms generales que los recursivos numerables no son reconocidos por un autmata de
Turing, no existe hasta el momento ningn autmata ms poderoso capaz de
reconocerlos
En trminos de procedimientos, las cadenas de un lenguaje decidible corresponden a
procedimientos que terminan, ya sea realizando lo que indica la palabra o sealando que
no tienen la capacidad de realizarlo. Para un lenguaje semidecidible, las cadenas
decididas por la MT son instrucciones realizadas por la MT. De manera complementaria,
las cadenas no decidibles por la MT corresponden a procedimientos que no terminan
utilizando una mquina de Turing. A partir de lo dicho aqu tenemos la definicin de
algoritmo:

Un algoritmo es una implementacin de una mquina de Turing tal que el


conjunto de sus entradas es el lenguaje decidible.
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 implementacin de un algoritmo.
Esta es la Tesis de Church Turing. No es un teorema pues no se puede demostrar
matemticamente, de manera general y categrica. Es solo la afirmacin de que el
concepto informal del algoritmo corresponde a un objeto matemtico. Al ser solo una
afirmacin no demostrable, puede suceder que luego fuera refudada. Para que esto
ocurra, se necesitara encontrar un autmata ms potente que uno de Turing tal que fuese
la implementacin 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 ms los
lenguajes no computables o indecidibles. Una teora lgica (TL) se define a partir de un
conjunto de enunciados dados llamados axiomas, unas reglas de inferencia y un esquema
de derivacin. A partir de los axiomas y aplicando la regla de inferencia y el esquema de
derivacin se infieren los teoremas de la teora. El conjunto de teoremas de la teora
forma un lenguaje formal.
Si es posible definir una mquina de Turing tal que reconozca al lenguaje de los
teoremas, este lenguaje es decidible y la teora tambin lo es en consecuencia. Dicho en
otras palabras, si el conjunto de teoremas visto como un lenguaje es reconocido por una
mquina de Turing, entonces la TL es decidible. Y viceversa. Puede hablarse entonces de
130

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

manera indistinta de teoras lgicas o de lenguajes decididles, como aquellos para los que
existe una mquina de Turing capaz de reconocerlos. Luego la correspondencia entre la
sintaxis de una teora lgica (lenguaje formal) y reconocimiento simblico del mismo por
parte de un autmata queda establecida.

LECCIN 41. PROBLEMAS DE HALTING


El problema de Halting es el primer problema indecidible mediante mquinas de Turing.
Equivale a construir un programa que te diga si un problema de ordenador finaliza alguna
vez o no (entrando a un bucle infinito, por ejemplo)
Bsicamente, Turing defini las bases de las computadoras modernas y planteo un
problema sobre ellas, llegando a la conclusin de que no hay ningn algoritmo que lo
resuelva. Es el problema de la detencin (Halting problem); el problema de saber si un
problema se cuelga cuando corre en la computadora. Turing demostr que el problema de
la detencin es indicidible, es decir, demostr que haba problemas que una maquina no
poda resolver.
Es meritorio el hecho que gracias a la equivalencias de mquinas de Turing y
computadoras, se haya determinado que existen clculos que no pueden ser detenidos en
un tiempo razonable en ninguna computadora imaginable, o incluso, que no puede
resolverse en lo absoluto, por ejemplo el problema de correspondencia de Post o el
problema de predecir si una mquina de Turing cualquiera va a llegar a un estado final
(conocido como el problema de Halting en ingls, o problema de la parada). Por todo esto
el problema de Halting es un diagnostico que indica que un problema de decisin no es
decidible.

El problema de la parada o problema de la detencin para mquinas de Turing es el


ejemplo de problema irresoluble ms conocido. Consiste en determinar si una mquina de
Turing se detendr con cierta entrada, o bien quedar en un ciclo infinito. Este fue el
primer problema que se demostr formalmente que no tena solucin.
El concepto de problema indecidible o irresoluble se aplica a problemas de decisin, es
decir, problemas a los que podemos decir si tienen solucin o no. Dentro de estos
problemas, existe un conjunto al que no le podemos asignar una respuesta, ni afirmativa
ni negativa: no existe un algoritmo que nos permita determinar si el problema tiene
solucin.
131

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Una de las razones por la que es importante conocer que el problema de la parada no
tiene solucin, es que nos permite decidir si otros problemas son resolubles o no. El
razonamiento a seguir sera: si suponiendo que un problema es decidible, podemos
demostrar que el problema de la parada tiene solucin, entonces podemos llegar a la
conclusin de que el problema en cuestin no la tiene, por reduccin al absurdo.
Definicin:
Sea M una mquina de Turing arbitraria con un alfabeto de entrada . Puede decidirse si
la mquina M se detendr con la entrada ?
Solucin:
La respuesta a esta pregunta es negativa. No se puede determinar si una mquina de
Turing se detiene con una entrada arbitraria.

LECCIN 42. DECIBILIDAD DE TEORAS LGICAS

Decibilidad de las teoras lgicas. El desarrollo de la teora de la computabilidad ha ido


ntimamente ligado al desarrollo de la lgica matemtica. Esto ha sido as porque la
decibilidad de los distintos sistemas lgicos es una cuestin fundamental. Es bastante
fcil ver que el clculo proposicional es decidible. Church y Turing demostraron en 1936
que el clculo de predicados no era decidible. Por otro lado, para cada una de las distintas
teoras se ha ido estudiando su posible decibilidad. Como ejemplo ms ilustrativo, Tarski
demostr que la teora de los nmeros reales era decidible.
Por otro lado, son muchos los problemas interesantes que se han demostrado
computables. Todas las funciones construidas por recursividad primitiva o minimalizacin
a partir de funciones calculables resultan ser calculables como consecuencia de los
trabajos de Church y Turing. Pero adems, otras funciones ms complejamente definidas
tambin son computables, siendo el resultado ms significativo en relacin con esta
cuestin el dado por el siguiente teorema:
Primer teorema de Recursin. Todo operador entre funciones calculables que sea
recursivo (esto es que se defina la imagen de f mediante una funcin calculable en
trminos de una parte finita de f), tiene una funcin parcial computable que es el menor
punto fijo, es decir, esta funcin es un punto fijo y cualquier otro punto fijo del operador es
una extensin de esa funcin.
132

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Este teorema recibe su nombre porque podemos definir una funcin mediante una
ecuacin recursiva ms general que la permitida por la recursividad primitiva, a saber
dnde es un operador recursivo. El primer teorema de recursin nos dice que esta
definicin es posible; hay una funcin recursiva que satisface esta ecuacin. Como en
matemticas se requiere que la definicin sea unvoca, se dice que dicha ecuacin define
el menor punto fijo del operador. As, y de acuerdo al primer teorema de recursin, la
clase de las funciones calculables es cerrada bajo una muy general forma de definicin
por recursin.
A menudo se utiliza la tcnica de reducir un problema a otro para comprobar si tiene o no
solucin efectiva. La estrategia en el caso de la respuesta negativa es la siguiente, si se
reduce de forma efectiva un problema sin solucin efectiva a otro problema (mediante una
funcin calculable), entonces este nuevo problema tampoco tendr solucin efectiva. La
razn es muy simple, si tuviese solucin efectiva, componiendo el algoritmo solucin con
el algoritmo de transformacin obtendramos una solucin para el problema efectivamente
irresoluble. En sentido inverso, si se reduce un problema a otro para el que se conoce una
solucin efectiva, entonces componiendo se obtiene una solucin para el primer
problema. Esta tcnica es muy til y se utiliza a menudo. Por otro lado, esta misma
tcnica es muy empleada en el campo de la complejidad algortmica. Para asegurarse de
que un problema est en una clase de complejidad, basta reducir el problema a otro de
dicha clase sin ms que asegurarse que la reduccin se realiza en la correspondiente
clase de complejidad.
FUNCIONES COMPUTABLES:
Las llamadas mquinas de Turing no constituyen ni el primero ni el nico formalismo para
expresar cmputos, pero s el que ms ha perdurado.
Su creador, el matemtico ingls Alan Turing (1912-1954) estaba convencido de que no
exista un algoritmo para el problema de decisin planteado por Hilbert y su intencin era
demostrar dicha no existencia.
El modelo en el que se inspir fue el de una persona real llevando a cabo un clculo
mecnico, por ejemplo una multiplicacin de dos grandes nmeros en el sistema decimal.
Las funciones computables son usadas para discutir computabilidad sin referirse a ningn
modelo de computacin concreto, como el de la mquina de Turing o el de la mquina de
registros.
Segn la Tesis de Church-Turing, la clase de funciones computables es equivalente a la
clase de funciones definidas por funciones recursivas, clculo lambda, o algoritmos de
Markov.
133

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Alternativamente se pueden definir como los algoritmos que pueden ser calculados por
una mquina de Turing, una mquina de Post, o una mquina de registros.
En teora de la complejidad computacional, el problema de determinar la complejidad de
una funcin computable esta conocido como un problema de funciones.

LECCIN 43. REDUCIBILIDAD DE TURING


La reducibilidad ha permitido llegar a determinar la indecibilidad en algunos problemas
computacionales: Una manera ms simple de determinar la indecibilidad es utilizando el
mtodo de reduccin, el cual est implcito en nuestra manera de pensar a la hora de
solucionar ciertos problemas: dado un problema P1, este se reduce a solucionar P2. Es
decir, si solucionamos P2, tenemos solucionado P1. De esta manera hemos convertido un
problema en otro.
Ejemplo:57 Se presenta un ejemplo que explica la solucin de estos problemas
indecidibles mediante Reducibilidad:
Se cita un ejemplo:
P1.- Hay hambre en el mundo.
P2.- Hay que redistribuir parte de la riqueza
El problema del hambre en el mundo se reduce a redistribuir riqueza. P2 es un problema
mucho ms general, pues adems de solucionar el hambre tambin solucionara otros
ms.
Hay que hacer notar que este mtodo no hace referencia a la manera en la que se
soluciona P1 o P2, sino que determina como la solucin de P2 conduce a solucionar P1.
Tambin se puede ver que P2 es un problema ms general que P1. De hecho este
mtodo no funcionara en el sentido inverso: siempre se reduce un problema a otro ms
general.
Otro ejemplo ms tpico: 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 avin a este destino.
En trminos de mquinas de Turing, dado un lenguaje L1, que define un problema, su
decisin se reduce a otro lenguaje L2 que es decidible. Para ello se debe encontrar un
134

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

algoritmo que convierta una cadena de L1 en otra cadena de L2 (L2 puede tener
ms cadenas aceptables, pero nos interesan las que se pueden obtener por el algoritmo
desde L1), decidindose entonces si pertenece a L2.
Para demostrar la indecidibilidad de un lenguaje L, se va a utilizar la reduccin ante dos
situaciones distintas:
Que P1 sea RE, el problema se reduce a otro P2 que tambin es RE.
Que P1 no sea RE, el problema se reduce a otro P2 que tampoco es RE.
Demostrar que un lenguaje L2 es recursivamente enumerable, se har por
reduccin al absurdo. Para ello partimos de un lenguaje L1 del que conoceremos
de antemano su no decidibilidad (normalmente se utilizarn Lu o Ld, aunque puede
ser cualquier otro del que se haya demostrado su indecidibilidad). Tenemos, en las
dos situaciones antes descritas:
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 conversin, 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 contradiccin,
pues sabemos de antemano que L1 es RE, por lo que, forzosamente, L2 no puede ser
decidible. Se llega a la conclusin de que L2 tambin 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 conversin, 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 contradiccin,
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 conclusin de que L2 tampoco es RE.

LECCIN 44. APLICACIONES DE LAS MAQUINAS DE ESTADOS. ALGORITMO DE TRELLIS.


Hemos visto como la Teora de Autmatas, que engloba tambin al estudio de las
Mquinas secuenciales, tiene su origen en el campo de la Ingeniera Elctrica. El
135

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

matemtico norteamericano Shannon Claude 16(siendo lo ms notable de su trabajo todo


lo referente a la Teora de la informacin17, un desarrollo que fue publicado en 1948 bajo
el nombre de Una Teora Matemtica de la Comunicacin), dio los primeros usos a una
mquina de estados.

Ms tarde en otros trabajos destacados, vino a establecer las bases para la aplicacin de
la Lgica Matemtica a los circuitos combinatorios y posteriormente Huffman en 1954 los
ampli a circuitos secuenciales y utiliza conceptos como estado de un autmata y tabla de
transicin.
A lo largo de las dcadas siguientes, las ideas de Shannon se desarrollaron
considerablemente, dando lugar a la formalizacin de una Teora de las Mquinas
Secuenciales y de los Autmatas Finitos (1956). Otros trabajos importantes sobre
maquinas secuenciales son debidos a Mealy (1955) y Moore.
El artculo original disponible, que emiti Sahnnon acerca de la Teora Matemtica de la
Comunicacin es referenciado en el paper A Mathematical Theory of Communication18
En la siguiente leccin veremos una aplicabilidad dada a estas mquinas de estados
enfocada a resolver problemas que se presentan en la Teora de la informacin. Uno de
ellos se da en la transmisin de datos que reside en la potencia, por lo que para mantener
una probabilidad de error mnima es necesario buscar alternativas al hecho de aumentar
el voltaje en la fuente. Una alternativa muy eficiente es la codificacin (el envo de un
nmero de smbolos inferior a los posibles) y su posterior decodificacin. Se describirn
algunos mtodos para la codificacin y decodificacin de la informacin para ser
transmitida, por un canal.

ALGORITMO DE TRELLIS Y VITERBI:

19

Especficamente se presenta el estudio de los algoritmos de Trellis y Viterbi: El importante


crecimiento que ha tenido la transmisin digital de informacin en los ltimos tiempos
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. 379423, 623656, July,
October, 1948. Disponible en internet < http://cm.bell-labs.com/cm/ms/what/shannonday/shannon1948.pdf >.
19
The Viterbi Algorithm: A Personal History. Disponible en internet:
<http://arxiv.org/pdf/cs/0504020v2.pdf>

136

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

puede explicarse gracias a las numerosas ventajas que posee con respecto a los mtodos
analgicos. Hasta unos aos, la transmisin digital de seales analgicas (voz, vdeo,
etc.) resultaba tcnica y econmicamente costosa. Sin embargo, recientemente han
sucedido hechos que originaron importantes avances en esta rea de las
comunicaciones:
Las grandes mejoras en los algoritmos de compresin han perfeccionado la codificacin
de seales analgicas en forma digital, reduciendo drsticamente el ancho de banda
requerido para la transmisin de seales de audio y vdeo con una calidad aceptable.

Las altas escalas de integracin logradas en la construccin de circuitos integrados, as


como el desarrollo de circuitos especficos, han disminuido notablemente el costo del
procesamiento digital de seales.
El desarrollo en las tcnicas de codificacin ha aumentado la robustez y la confiabilidad
de las comunicaciones digitales.

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, telemetra de sondas espaciales, etc.); (b) es posible
establecer comunicaciones de buena calidad en ambientes de gran interferencia (telefona
celular); (c) los espacios lgicos (y fsicos) necesarios para almacenar la informacin se
han reducido radicalmente (DVD).
Entre todos los avances que han permitido este extraordinario desarrollo de las
comunicaciones, se encuentran las tcnicas de codificacin. Estas mejoran el
comportamiento de los sistemas de comunicaciones mediante la inclusin de redundancia
en la informacin a transmitir. Esta informacin adicional permite detectar, corregir y/o
prevenir errores en transmisiones por canales ruidosos.

Entre los mtodos de proteccin ms utilizados en la actualidad se encuentran los


codificadores convolucionales con decodificacin de Viterbi (CC-DV).

La Modulacin Codificada de Trellis (Trellis coded modulation) mejor conocida por la


sigla TCM, se ha desarrollado a lo largo de las ltimas cuatro dcadas. Este sistema
137

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

combina las tcnicas de codificacin y la modulacin para transmisiones digitales sobre


canales con banda limitada. Su ventaja principal, y por la que ha hecho una revolucin en
las telecomunicaciones, radica en el hecho que permite una ganancia significativa de
codificacin sobre las modulaciones convencionales de multinivel, sin comprometer la
eficiencia del ancho de banda.
El primer esquema de TCM fue propuesto en 1976 por Gottfried Ungerboeck. Seguido por
una publicacin en la revista information theory del IEEE en el ao de 1982, con la cual se
dio una revolucin en las investigaciones de su teora y mtodos, adems se estableci
un lugar a las posibles implementaciones de TCM.
La decodificacin de Viterbi fue propuesta por Andrew Viterbi en su trabajo Error
Bounds for Convolucional Codes and an Asymptotically Optimum Decoding Algorithm
publicado en la IEEE Transactions on Information Theory, en Abril de 1967.
Comparado con otros esquemas de proteccin, CC-DV permite mejorar sustancialmente
la performance de los sistemas de comunicaciones, esto es, disminuir notablemente la
tasa de errores de bits (Bit Error Rate - BER). Obviamente, esta importante mejora es
posible gracias a un incremento de complejidad en la implementacin de los
decodificadores. Sin embargo, gracias a los grandes avances en la tecnologa, en la
actualidad es posible implementar CC-DV sin ninguna dificultad
CC-DV son utilizados en los sistemas de telefona celular digital como es el caso del
estndar IS-95 (utilizado en nuestro medio por CTI), como as tambin en comunicaciones
de satlites geoestacionarios como las redes VSAT (Very Small Aperture Terminal). Las
ganancias que se logran con estos sistemas de codificacin se reflejan en la reduccin del
consumo de los transmisores o en la reduccin del tamao de las antenas (o simplemente
en la mejora de las tasas de transmisin).

CODIFICACION Y DECODIFICACION: El codificador del canal CC, persigue el objetivo


de lograr una veracidad dada durante la transmisin o conservacin de la informacin,
introduciendo una redundancia adicional, con ayuda de determinados algoritmos, como
los convolucionales y Trellis; y teniendo en consideracin la intensidad y las leyes
estadsticas de las transferencias en el canal de comunicacin. Esta codificacin recibe el
nombre de redundante.
La teora de la codificacin redundante se basa en los principios que Shannon formul
para canales ruidosos al considerar que existe una probabilidad de error en la transmisin
de rfagas de smbolos para cualquier velocidad, dentro de la capacidad del canal e
independientemente del tipo de informacin que se envi. Entonces, es indispensable
138

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

saber cules de los bits recibidos estn errados, especialmente si se requiere una altsima
veracidad por la transmisin de datos.
Con la introduccin de una cierta cantidad de smbolos redundantes dentro de una
cadena, la parte emisora permite anticiparse al ruido del canal que pueda perjudicar la
informacin, de este modo, en tal caso, se le brinda a la parte receptora la posibilidad de
corregir errores.
Figura 63: Modelo de un sistema de comunicaciones digitales

Fuente: <El autor. CAAT>

Despus del codificador de canal CC, la seal codificada es modulada para su


transmisin, por una lnea de comunicacin o para su conservacin, en una cierta
memoria.
En la lnea de comunicacin a la seal se le aaden interferencias, de esta forma al
dispositivo demodulador, llegan del canal de comunicacin, seales distorsionadas por el
ruido. El dispositivo decodificador del canal y el dispositivo decodificador de fuente,
ofrecen el mensaje decodificado al destinatario. En el proceso de decodificacin de canal,
son muy usados los algoritmos de Viterbi, siempre y cuando en el proceso de codificacin
del canal se halla empleado los cdigos convolucionales o la codificacin de Trellis.
CDIGOS SECUENCIALES: Son cdigos que representan nmeros o letras asignados
en serie. Sealan el orden en el cual han ocurrido los hechos: por ejemplo un sistema
bancario debe ser capaz de mantener un seguimiento del orden de las transacciones, de
manera que sea claro que transaccin procesar primero, cual despus y as
139

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

sucesivamente; por lo tanto se debe especificar el nmero de secuencia en el diseo con


el propsito de ordenar las transacciones.
Los cdigos secuenciales son utilizados tambin con el propsito de identificacin, pero
se asignan en el orden en el cual los clientes entran al sistema.
Los de secuencia asignados en un orden cuidadoso no permiten insercin de nuevos
miembros entre los ya existentes, Los analistas especifican la asignacin de cdigos de
secuencia a intervalos de 10 / 20, o algn otro rango a fin de permitir expansiones
posteriores.
Los cdigos pueden dividirse en subconjuntos o subcdigos, caracteres que son parte del
nmero de identificacin que tienen un significado especial. Los subcdigos indican al
usuario informacin adicional sobre el artculo, Ejemplo La clase de producto, el
proveedor, esta informacin se lleva a travs de dgitos significativos.
Figura 64: Cdigo secuencial

Fuente: <El autor. CAAT>

CDIGOS CONVOLUCIONALES: Al problema del canal en donde se aade un ruido


aleatorio a nuestra informacin, que tomaremos en nuestro caso AWGN (Additive White
Gaussian Noise), necesitamos un proceso mediante el que podamos decidir qu mensaje,
de los posibles, ha sido enviado. Si no tuvisemos restricciones en potencia bastara con
aumentar el voltaje de las seales en la fuente para tener una demodulacin ms fiable a
la salida, ya que la potencia de ruido no aumenta. Shannon concluy que no haca falta
aumentar la potencia sino disminuir el nmero de mensajes, enviar solo una fraccin de
ellos. Los mensajes posibles son 2n en el caso de transmisin binaria (siendo n el nmero
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 caracterstica
propia de cada canal), puedo crear un sistema de comunicaciones con una PE
(probabilidad de error) muy baja cuando n .
El problema est en cmo elegir los 2Rn vectores que se van a enviar, es decir, en la
decisin. Al sistema que realiza dicha decisin se le llama codificador.
140

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Los cdigos convolucionales realizan esta seleccin, son cdigos lineales que tienen la
propiedad de que la suma de dos palabras de cdigo cualesquiera tambin es una
palabra de cdigo. Luego, el codificador convolucional, es una manera de reducir el
nmero de mensajes que enviamos por el canal, cumpliendo de esta forma la
recomendacin de Shannon. (Bsicamente el codificador convolucional es una mquina
de estados que aplica la Teora de Autmatas).
La codificacin convolucional es una codificacin continua en la que la secuencia de bits
codificada depende de los bits previos.
El cdigo se genera pasando la secuencia de informacin a transmitir por un registro de
desplazamiento lineal. En general, el registro de desplazamiento consiste en m etapas de
k bits y n generadores de funciones algebraicas, como se muestra en la figura 65:
Figura 65: Codificador convolucional de m etapas

Fuente: <El autor. CAAT>

El cdigo queda especificado por tres parmetros (n, k, m):


n es el nmero de bits de la palabra codificada.
141

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

k es el nmero de bits de la palabra de datos.


m es la memoria del cdigo o longitud restringida
El nmero de bits por palabra de datos k, cumple: R=k/n.
A este cociente se le denomina ratio del codificador. He definido para esta aplicacin un
codificador convolucional (2,1,3), es decir: un bit para representar la palabra de datos, dos
bits de palabra de codificacin por cada bit de palabra de datos y tres bits de longitud de
registro. En nuestro caso el ratio es .
Figura 66: Mquina de estados. Registro de desplazamiento convolucional de ratio = y una etapa

Fuente: <El autor. CAAT>

En la simulacin comprobamos que esta codificacin es ptima para disminuir nuestra


probabilidad de error en un porcentaje considerable. Cuanto mayor sea n, ms segura
ser la transmisin y menor ser la probabilidad de error, eso s, del mismo modo, ms
complejo ser el diagrama de estados del codificador y ms difcil su posterior
decodificacin. Hay que encontrar, como siempre en transmisin, el compromiso idneo
entre calidad y complejidad.
Un codificador convolucional puede ser fcilmente representado por un diagrama de
estados de transicin ya que tiene memoria finita. Para ello, procedemos al desarrollo de
los diferentes estados de la mquina. Fijamos que en el instante inicial el codificador est
cargado con todo ceros, veamos los distintos estados posibles:

142

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Cargado todo con ceros, le metemos un cero y un uno:


Figura 67: Mquina de estados. Registro de desplazamiento convolucional (datos 000 y 100)

Seguimos con el caso de que hemos introducido un uno porque con el cero observamos
que se forma un bucle. Ahora en la situacin (1, 0, 0) veamos cmo codifica el sistema
usando una mquina de estados si le introducimos un cero y cmo si es un uno el bit que
entra al canal:
Figura 68: Mquina de estados. Registro de desplazamiento convolucional (datos 010 y 110)

Y as sucesivamente hasta completar un ciclo y con l, la mquina de estados.

DIAGRAMA DE ESTADOS: Una forma compacta de representar el cdigo es mediante el


diagrama de estados.
En los diagramas, cada estado del codificador convolucional se representa mediante una
caja y las transiciones entre los estados vienen dadas por lneas que conectan dichas
cajas. Para saber de una manera rpida en qu estado se encuentra el codificador, basta
143

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

con observar los dos bits del registro de memoria ms alejados de la entrada. Puede
comprobarse interpretando la mquina de estados correspondiente. Para el codificador de
la Figura 69, el diagrama de estados correspondiente es:
Figura 69: Diagrama de estados para el codificador convolucional de ratio 1/2

RBOLES: Para la descripcin, utilizaremos un caso particular con m=3, k=1 y n=2.
Consideramos el codificador convolucional de la figura 70
Figura 70: Codificador convolucional de ratio 1/3 y m=3

El rbol resultante se muestra en la figura 71

144

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Figura 71: rbol para un codificador convolucional de ratio 1/2

Fuente: <El autor. CAAT>

DIAGRAMAS DE TRELLIS:

Una manera de representar las distintas transiciones y los caminos que stas describen
es mediante un Diagrama de Trellis. Una descripcin de Trellis de un codificador
convolucional muestra cmo cada posible entrada al codificador influye en ambas salidas
y a la transicin de estado del codificador. Un cdigo 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.

Veamos las transiciones de estados correspondientes al Diagrama de Trellis usado en


este proyecto. Las flechas continuas muestran cmo el codificador cambia su estado si la
entrada es un cero, y las flechas discontinuas cmo lo hace si la entrada es un uno:
145

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Figura 72: Diagrama de Trellis (transicin de estados).

El sistema tiene memoria: la codificacin actual depende de los datos que se envan
ahora y que se enviaron en el pasado. Por lo tanto, el diagrama completo que obtenemos
con nuestro codificador.
Figura 73: Diagrama de Trellis completo (transicin de estados).

Fuente: <El autor. CAAT>

146

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

El proceso de codificacin evoluciona segn el diagrama de estados. Entran al codificador


k bits a la vez y la correspondiente n salida se transmiten por el canal. Este procedimiento
se repite hasta legar el ltimo grupo de k bits que se codifican en una salida de n bits.
Aceptamos para una mayor sencillez a la hora de decodificar, que despus del ltimo
envo de k bits, entran al codificador un grupo de k(m-1) ceros, y sus correspondientes
salidas son enviadas.
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 envo futuro y se facilita por lo tanto el proceso.
Ejemplo58: Codificacin Convolucional de ratio = 1/2 y diagrama de Trellis:
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 teora 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. Fijndonos en la mquina de
estados de las figura 69, partimos del estado 00, si entra un 1, se ha explicado como
entra al codificador, cul 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:
Dato codificado:
Estado presente:

1
11
10

2 Dato entrada:
Dato codificado:
Estado presente:

1
10
11

3 Dato entrada:
Dato codificado:
Estado presente:

0
10
01

4 Dato de entrada: 0
Dato codificado:
11
147

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Estado presente:

00

Continuando el proceso llegamos a un cdigo de estados presentes y a la secuencia


codificada que entra al canal:

Estado presente:
Entrada codificada:

10 11 01 00 10 01 10 11
11 10 10 11 11 01 00 10

Representamos cmo sera el camino de Trellis seguido por los datos correctos ya
codificados. Para esto nos fijamos en la secuencia de estados presentes:
Figura 74: Datos correctos codificados

Fuente: <El autor. CAAT>

148

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

LECCIN 45: ALGORITMO DE VITERBI


La codificacin convolucional se decodifica con ayuda del algoritmo de Viterbi. El proceso
consiste en desechar algunos de todos los caminos posibles. Lo que se consigue
aplicando este mtodo es reducir el nmero de clculos. Segn el algoritmo de Viterbi,
para reducir el nmero de clculos, cada vez que dos trayectos (tambin llamados ramas)
se junten en un estado en el Diagrama de Trellis, el de mayor mtrica acumulada se
desecha en la bsqueda del trayecto ptimo. Esto se debe a que el estado actual resume
la historia de todos los estados anteriores en cuanto a su influencia en los estados
posteriores. Esto se hace en los 2k-1 estados, se pasa al intervalo ti+1 y se repite el
proceso. 00 01 10 Realmente, esta eliminacin de posibles caminos no comienza hasta el
tercer nivel de representacin. Esto se debe a que hasta ese instante, no han podido
converger dos ramas en un estado ya que por cada k bits de palabra de datos (k =1 en el
ejemplo) surgen 2k estados. Es decir, del primer estado (el 00 por definicin)
tendremos dos estados en el siguiente nivel de representacin, y por cada uno de estos,
otros dos en el posterior nivel. Por tanto ser en el tercer nivel cuando empecemos a
tomar decisiones porque ahora s convergern dos ramas en cada estado.
Decodificador de Viterbi, para el ejemplo 58
Una vez conocida la secuencia de 16 bits correspondientes a la palabra codificada en el
ejemplo anterior, suponemos una secuencia recibida con una serie de errores producidos
por el ruido en el canal (en rojo los bits errneos en la. recepcin). Dado que tambin
conocemos el Trellis que sigue la palabra enviada, podremos observar grficamente en el
proceso de decodificacin de Viterbi cmo se van obteniendo los caminos que conducen
al resultado ptimo. De esta manera:

Tabla 17: Relacin de bits y estados.


Datos

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

Fuente: <El autor. CAAT>

149

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Veamos las distintas representaciones grficas que desarrollan el proceso segn dicta
nuestra mquina de estados. Sobre cada lnea de unin de estados colocaremos en rojo
el nmero de errores acumulados en relacin con la seal recibida.
El nmero de errores se calcula en base a la distancia de Hamming, la cual se describe a
continuacin:

DISTANCIA DE HAMMING.
En los cdigos 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:
Figura 75: Distancia de Hamming.

La distancia Hamming comnmente notada simplemente dH se cuenta como la cantidad


de bits que cambian de un bloque a otro. El cubo ayuda a representar la distancia
Hamming para un cdigo de bloque de tres bits.
Continuando con el ejemplo: En el momento de hacer la eleccin coloreamos en azul
los caminos desechados:
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

150

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Figura 76: Distancia de Hamming Nivel 1.

Fuente: <El autor. CAAT>

2.- Todava no tenemos que realizar ninguna decisin ya que, como hemos dicho, estos
caminos son los mismos independientemente de la entrada.
Figura 77: Distancia de Hamming Nivel 2.

Fuente: <El autor. CAAT>

3.- A partir del tercer nivel, en cada estado convergern dos ramas, analizamos los
errores en la mtrica de cada camino posible en relacin con la seal recibida.
151

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Figura 78: Distancia de Hamming Nivel 3.

Fuente: <El autor. CAAT>

4.- Segn el nmero de errores acumulados en relacin con la seal 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 visualizacin:
6.- Procedemos del mismo modo que para el tercer nivel y nos quedamos con las ramas
de menor error acumulado:
7.- Con esta metodologa aplicada al resto de niveles, las cuatro ramas seleccionadas que
llegaran a los cuatro ltimos estados dada su menor acumulacin de error acumulada
sern:
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

152

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Figura 79: Diagrama de Viterbi.. Trayecto de recorrido ptimo.

Fuente: <El autor. CAAT>

Observamos que coincide exactamente con la secuencia de datos enviada y codificada.


Podemos concluir que mediante el Algoritmo de Viterbi hemos reconstruido perfectamente
nuestra secuencia de datos a partir de una secuencia codificada con errores introducidos
por el ruido del canal. La solucin final de la mquina de estados para el codificador
convolucional en la que para el ejercicio se tenan como datos de entrada: 1 1 0 1 0 0 1 1
se ve en la figura 80:

153

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Figura 80: Solucin final Trellis y Viterbi. Datos de entrada 11010011.

Fuente: <El autor. CAAT>

Una explicacin del algoritmo, puede ser visualizada en los recursos de la tabla 17.
Tabla 18: Recursos web para el algoritmo de Trellis y Viterbi
DESCRIPCIN DE VIDEO

Cdigo convolucional de m=3 , K=1

CANAL

CANAL

https://vimeo.com/75887185

http://youtu.be/ZnCbur8zQiU

Fuente: <El autor. CAAT>

Sigue al autor
facebook.com/carlosalberto.amayatarazona

@carlosamayat

154

http://www.camayat.com/

3002260425

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

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:
Tabla 19: Recursos web para descarga de simuladores.
SIMULADOR

DESDE LOS REPOSITORIOS DE LA


UNIVERSIDAD

DESDE LA PAGINA DEL


AUTOR DEL SOFTWARE

http://www.java.com/es/do
wnload/index.jsp
JFLAP V 7.0

http://datateca.unad.edu.co/contenidos/301405/SI
MULADORES/JFLAP.zip

http://www.jflap.org/getjflap.html
Gua o Tutorial:
http://www.jflap.org/tutorial/

VISUAL AUTMATA
SIMULATOR (VAS)

http://datateca.unad.edu.co/contenidos/301405/SI
MULADORES/VISUAL_AUTOMATA_SIMULATOR
.zip

http://download.cnet.com/VisualAutomata-Simulator/3000-2053_454760.html

Tutorial:
http://sistemas.uniandes.edu.co/~isis1106/dokuwiki
/lib/exe/fetch.php?media=tutoriales:tutorial_vas.pdf
CHALCHALERO

http://datateca.unad.edu.co/contenidos/301405/SI
MULADORES/chalchalero.zip

http://www.ucse.edu.ar/fma/sepa/ch
alchalero.htm

KAKUY

http://datateca.unad.edu.co/contenidos/301405/SI
MULADORES/KAKUY.zip

http://www.ucse.edu.ar/fma/sepa/

LyX The Document


Processor

http://www.lyx.org/
Un procesador de documentos (para edicin de contenidos matemticos).

Automaton Simulator
Video de instalacin.

http://ozark.hendrix.edu/~burch/proj/autosim/
http://datateca.unad.edu.co/contenidos/301405/SIMULADORES/VIDEO_SIMULADORES.
zip

Fuente: <El autor. CAAT>

155

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

ANEXO: EJERCICIOS DE REPASO


Se presentan ejercicios que han sido banco de evaluaciones formuladas en el curso: Se
recomienda que repase, evale y sintetice el anlisis de cada uno.
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 vaca, w n = w . w n 1 para n > 0
Si w = aba es un palabra sobre el alfabeto {a,b} entonces:
A.
B.
C.
D.

= aabb
= abaaba
2
= abab
2
= ababab
2

Ejercicio 2: Indique cul de las siguientes afirmaciones referidas a lenguajes del alfabeto
= {0,1,2} son ciertas:
1.
2.

3.

4.

El lenguaje de las cadenas con a lo sumo una pareja de 0s consecutivos y a


los sumo una pareja de 1s consecutivos no es regular.
El lenguaje de las cadenas equilibradas con igual nmero de 0s y de 1s tales
que ningn prefijo de cualquiera de ellas posee ms de dos 0s que 1s ni ms
de dos 1s que 0s es un lenguaje regular.
No existe ningn autmata determinista que reconozca el lenguaje de las
cadenas en las que toda pareja de 0s contiguos aparece antes de cualquier
pareja de 1s contiguos.
Si L es un lenguaje regular tambin lo es el lenguaje consistente en las
inversas de las cadenas de L.

Ejercicio 3: Sea el alfabeto = {a,b} con la Expresin Regular: a(a+b), identifique las
cadenas vlidas que se pueden generar:
A.
B.
C.
D.

{aba, aab,}
{a, aab, abb}
{aa, ab,}
{a, b, aa, bb}

156

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Ejercicio 3.1 Para el siguiente autmata, identifique cul es la Expresin Regular (ER)
que mejor lo representa:

A.
B.
C.
D.

(ab+ba) + a
(ab + aba)*
a +(ab)*
ab +(ab)*

ANALICE LA RELACIN ENTRE EL EJERCICIO 3 Y 3.1


Ejercicio 4: Cules afirmaciones son vlidas y que surgen de un anlisis de las ER
(Expresiones Regulares):
1. La ER (0+1)*01 genera cadenas vlidas para el autmata del ejercicio doce (12)
pero no para las del autmata del ejercicio once (11).
2. La ER (0+1)*01 genera las mismas cadenas para el Autmata del ejercicio dos
(2) y del ejercicio doce (12)
3. La ER (0+1)*11(01)* genera cadenas vlidas para el autmata del ejercicio
dos (2) pero no para las del autmata del ejercicio doce (12).
4. La ER (1*00*1(00*1)*1)*1*00*1(00*1)* genera las mismas cadenas para
el Autmata del ejercicio doce (12) y del ejercicio once (11).

Ejercicio 5: Se denomina estrella de Kleene, cierre reflexivo transitivo u operacin


asterisco sobre un alfabeto al conjunto de todas las cadenas que se pueden construir
a partir de los smbolos del alfabeto ; en notacin matemtica esta definicin se expresa
as.

157

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Dado el alfabeto:

= {a,b}

una representacin vlida de la expresin regular y su

lenguaje sera:
A.

Expresin Regular:

B.

Expresin Regular:
empiezan en

C.

Expresin

; Como Lenguaje: {

,b,bbb,bbbbbb,}
;

y terminan en

Como Lenguaje:

ba

Regular:

Como

lenguaje:

{a,aa,ab,aaa,aab,aba,abb, }

D.

Expresin Regular:
terminan en

. ; Como Lenguaje: empiezan en

Ejercicio 6: Se denomina cadena, palabra o frase a una secuencia finita de smbolos de


un alfabeto . Estas cadenas son denotadas como w.
Dado el siguiente autmata finito determinstico (AFD) A = (Q, , f, q 0 , F)

Q es un conjunto de estados.
es el alfabeto de entrada
f: Q X Q es la funcin (total) de transicin.
q 0 Q es el estado inicial.

F Q es el conjunto de estados finales.

Y que para el ejercicio =

{a,b}

Q ={ q 0 q 1 }
,

F = {q 1 } se representa mediante el

siguiente diagrama de Moore:

El conjunto de palabras aceptadas por este autmata son:


158

donde:

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

A.

{ a | {a,b} }

B.

{ a | {a,b} }

C.

Todas las palabras que terminan en

a y que estn precedidas por

una b
Todas las palabras que terminan en dos as

D.

Ejercicio 7: Tome como vlida la ER (Expresin Regular) = a + bc + b 3 a Cul es el


lenguaje descrito por ? Y Qu expresin regular corresponde al lenguaje universal
sobre el alfabeto {a,b,c}?

2.
3.

L () = {a, bc, bbba} y es un lenguaje infinito no deterministico sobre la


cadena {a,b,c}
L () = {a, bc, bbba} y es un lenguaje finito sobre el alfabeto {a,b,c}
La expresin regular (ER) que describe el lenguaje universal sobre este

4.

alfabeto es (a+b) +c
La expresin regular (ER) que describe el lenguaje universal sobre este

1.

*
alfabeto es (a+b+c)
Ejercicio 8: Para el siguiente Autmata Finito denotado como: A 2 = (, K, , q 1 , F)
donde = {0,1}, F = {q 2 } y K = {q 1 , q 2 , q 3 , q 4 }, identifique correctamente el Lenguaje
que genera y la expresin regular:

159

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

A. L = (A 2 ) = {0, 001, 01111, } = { 1(10)

/n 0}

B. L = (A 2 ) = {1, 101, 10101, } = { 1(01)

C. L = (A 2 ) = {0, 111, 11100, } = { 1(10)

D. L = (A 2 ) = {0, 001, 00100, } = { 1(01)

La expresin regular es: 0(01)

/n 0}

La expresin regular es: 1(01)

/n = 0}

La expresin regular es: 1(01)

/n 0}

La expresin regular es: 0(01)

Ejercicio 9: Sea el vocabulario {a,b} y la expresin regular aa*bb*


cadenas que se relacionan a continuacin son vlidas para esa ER:
A.
B.
C.
D.

{ab, aab, aab, a, aa,bb}


{a, b, ab, ba, aab, bba, aaab}
{ba, ab, b, a}
{ab, aab, aaab, abbb, abb, aa,bb}

Para el siguiente Autmata, asocie la expresin regular que lo identifica.

A.
B.
C.
D.

(10 + 0)* 10
(10 + 0)
(10 + 0)*
(0+1+0*)

160

*
*

Indique cuales

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Ejercicio 10: Una de las operaciones que permiten las Expresiones Regulares es el

es una expresin regular, entonces * es una


*
{ } . Es decir denota las cadenas:

Cierre u operacin estrella. Si


expresin regular que denota

A. , ,
B. , ,
C. , ,
D.

,
,
,
,

,
, ,
,
, ,

.
Ejercicio 11: El siguiente Autmata Finito (AF) es origen de:

A.
B.
C.
D.

La conversin de un AFND del ejercicio doce (12) a un AFD


La conversin de un AFD del ejercicio doce (12) a un AFND
La minimizacin del Autmata Finito (AF) del ejercicio doce (12).
La maximizacin (aceptacin de cada transicin) del Autmata Finito (AF) del
ejercicio doce (12).

Ejercicio 12: Analice el siguiente Autmata y determine cules apreciaciones son vlidas
en su anlisis:

161

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

1. La funcin de transicin puede no estar definida para alguna combinacin (x,q) y,


por el contrario, puede definir para otras combinaciones (x,q) ms de un estado.
2. La funcin de transicin define para cada posible combinacin (x,q) un estado
nuevo.
3. Es un autmata no determinstico (AFND), con un conjunto finito de estados y
smbolos de entrada, un estado inicial, un conjunto de estados finales, y una
funcin de transicin de estados.
4. Es un autmata determinstico (AFD), con un conjunto finito de estados y smbolos
de entrada, un estado inicial, un conjunto de estados finales, y una funcin de
transicin de estados.

Ejercicio 13: Dado los siguientes dos autmatas A y B, analice los enunciados dados e
identifique cuales son verdaderos.

1. El Autmata B tiene un error de diseo. Un AF no puede tener dos estados de


aceptacin.
2. Solo el Autmata A reconoce la cadena vaca lambda
3. Los dos Autmatas reconocen el mismo Lenguaje.
4. El Autmata A es un AFND y el Autmata B es un AFD.

Ejercicio 14: Se construy el siguiente autmata finito M para que cumpliera:


L(M) = {x m y n z p | m,n y p son enteros no negativos }

162

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Pero no fue vlido porque:


A.
B.
C.
D.

Tiene dos estados de aceptacin o finales.


No acepta las cadenas {xyz} {yz} {xxxy}
No acepta las cadenas {x} {xxxzzz} {z}
Acepta solo las cadenas que combinen los elementos {x,z} del alfabeto

Ejercicio 15: Sea el alfabeto = {0,1} y el autmata de la figura:

Para el ejercicio analice la cadena sin tener en cuenta si es vlida o no, (aceptada
o no aceptada)
Determine cul interpretacin es vlida al analizar la cadena 00101
A. El autmata puede procesar la cadena 00101 de 4 formas distintas.
B. Slo existe un modo en el que el autmata puede procesar la cadena 00101.
C. Al procesar la cadena 00101, el ltimo estado visitado es siempre el estado 3 o
bien el estado 2.
D. Se generan miles cadenas 00101 ya que el autmata es infinito.

Ejercicio 16: Para el siguiente autmata finito determinstico (AFD), identifique que
afirmaciones son vlidas para la expresin:
Tenga en cuenta que se denomina cadena, palabra o frase a una secuencia finita de
smbolos de un alfabeto . Estas cadenas son denotadas como w.

163

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

A. Reconoce las palabras sobre


contiguas

a,b

que terminan en un nmero par de

B. Reconoce solo las frases sobre a,b que empiezan por

as

C. Reconoce las palabras sobre a,b que tienen un nmero par de as contiguas.
D. Reconoce solo las cadenas sobre a,b que empiezan por a

Ejercicio 17: Analice la codificacin de la siguiente Mquina: Si lee 0101, la salida


correspondiente es:

A.
B.
C.
D.

0110
0111
0101
0011

Ejercicio 18: Para el siguiente autmata,


M =(K, , q 1 , , F) donde: Q = { q 1 , q 2 , q 3 , q 4 } A = {a, b}

Cules igualdades son vlidas para la funcin de transicin


164

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

1.
2.
3.
4.

(q2 , a ) = q 2
(q 4 , a ) = q 4
(q 3 , a ) =
(q 1 , a ) = q 2

(q2 , b ) = q 3
(q 4 , b ) = q 4
(q 3 , b ) = q 3
(q 1 , b ) = q 4

Ejercicio 19: Identifique de los cuatro autmatas que se muestran a continuacin, (A, B,
C o D), cul reconoce las cadenas que contienen la subcadena aba y cuya definicin
formal sera 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)}

Ejercicio 20: Para el siguiente AFND representado en un diagrama de transicin,


identifique la tabla de transicin correcta que lo representa:

165

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Ejercicio 21: Dado el Autmata con la siguiente tabla de transicin, identifique las
cadenas que son vlidas para el lenguaje que acepta.

166

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

A.
B.
C.
D.

Solo acepta cadenas vacas (lambda).


Es un AFND y acepta cualquier cadena que inicie con cero (0).
{101, 210, 20,110, 200}
{22, 0,1,001122, 12, 012, 022}

Ejercicio 22: Indique cul de las siguientes afirmaciones referidas a los autmatas de la
figura, son ciertas. (Observe que hay una transicin
que no lee ningn smbolo de la
cadena de entrada):

1. Los autmatas reconocen el lenguaje formado por todas las cadenas que
empiezan por 1 y que no terminan en dos ceros consecutivos.
2. Ambos autmatas reconocen el mismo lenguaje incluyendo la cadena vaca.
3. El autmata A es ms potente por ser No Determinista.
4. Cualquier autmata no determinista que reconozca el mismo lenguaje que el
autmata B tiene al menos cuatro estados.

Ejercicio 23: Dado el siguiente autmata: Analice las siguientes afirmaciones:

167

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

El conjunto de cadenas que es capaz de aceptar este autmata es {b,bb,bbb} PORQUE


este AFD est compuesto por un smbolo b que converge a tres estados de aceptacin q 3
, q 4 y q 5 y a un estado final q 5 .

Ejercicio 24: El autmata representado en el ejercicio catorce anterior, corresponde a un


AUTMATA FINITO NO DETERMINISTA CON LANDA TRANSICIONES (AFND - al
que se le permite cambiar de estado sin necesidad de consumir o leer un smbolo de
entrada PORQUE cumple con uno de los requisitos para no ser determinista cuando al
analizar el autmata en el estado q 1 en un cierto instante y si el smbolo actual es b, en el
instante siguiente, el autmata puede decidir de forma no determinista entre leer el
smbolo b y cambiar al estado q 4 , o bien, cambiar al estado q 2 sin mover el cabezal de
lectura.
Ejercicio 25: Cuando se trata de simplificar Autmatas, se deben tener en cuenta
aspectos como: (Identifique cul paso o concepto es vlido en este proceso de
Minimizacin).
A. Se entiende por minimizacin de autmatas finitos al proceso de obtencin de un
autmata con el menor nmero de transiciones posibles.
B. Dos estados son equivalentes si al intercambiar uno por otro en cualquier
configuracin no altera la aceptacin o rechazo de toda la palabra.
C. Para saber si dos estados q1 y q2 son equivalentes, se les pone a ambos como
estado final de los autmatas M1 y M2, y se procede a comparar dichos
autmatas. Si estos ltimos son equivalentes, quiere decir que los estados q1 y q2
son equivalentes
D. Dos estados son distinguibles si son compatibles (es decir, si ambos son finales o
ambos son inciales).

Ejercicio 26: La relacin entre un AP y un LLC (Lenguaje Libre de contexto) permite que
dada una Gramtica G, existe entonces un AP que acepta exactamente el lenguaje
generado por G. Dado el siguiente autmata de pila (AP) cuyo funcionamiento se
representa en la siguiente tabla, identifique la gramtica correcta y sus reglas que aceptan
el LLC dado por el AP.

168

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

A.
B.
C.
D.

S >
S >
S >
S >

0A0 | 1S2 | 1 | 0
0A0 | 1S2 | 10
0A0 | 1S1 | 2
0A0 | 1S0 | 2 | 0

Ejercicio 27: Dadas las siguientes gramticas, ascielas a los enunciados que se
presentan de forma correcta. Tenga en cuenta que como Smbolo inicial se toma a S
que son los estados iniciales y como smbolos no terminales los estados en el orden de su
nombramiento. El conjunto finito de smbolos terminales son los smbolos del alfabeto
del autmata.

169

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

1. La Gramtica D corresponde a una representacin vlida del


el Autmata del ejercicio dos (2).
2. La Gramtica C corresponde a una representacin vlida del
el Autmata con lambda transiciones del ejercicio tres (3).
3. La Gramtica A corresponde a una representacin vlida del
los Autmatas del ejercicio doce (12).
4. La Gramtica B corresponde a una representacin vlida del
el Autmata del ejercicio cuatro (4).

lenguaje que acepta


lenguaje que acepta
lenguaje que acepta
lenguaje que acepta

Ejercicio 28: Dada la siguiente gramtica G= (VN= {S, A}, VT= {0,1}, S, P) donde P son
las producciones:

Cules sentencias de lenguaje son generadas correctamente:


1.
2.
3.
4.

S >
S >
S >
S >

0A > 00A > 001S > 0010 A > 00100


0A > 00A > 001 A > 0010
0A > 01S > 010 A > 0100
0A > 0A > 00A > 000

Ejercicio 29: Las Gramticas regulares pueden ser de dos formas: Lineales por la
derecha y Lineales por la izquierda. Tambin pueden ser ambiguas si existen dos rboles
de derivacin distintos para una misma palabra. Dada la Gramtica G = {S, A}, T= {0,1}
representada en los dos rboles de derivacin siguiente, identifique el tipo de
producciones y el lenguaje que generan:

170

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

1. El rbol de Derivacin A representa una gramtica lineal por la derecha.


2. El rbol de Derivacin B representa una gramtica lineal por la izquierda y genera
el lenguaje 0(10)*
3. El rbol de Derivacin A representa una gramtica lineal por la izquierda y genera
el lenguaje 0(10)*
4. El rbol de Derivacin A no es lineal, es ambigua (puede tener producciones por la
izquierda y la derecha) y genera el lenguaje (10)*
Ejercicio 30: Para el autmata del ejercicio anterior, (ejercicio 201 1ESTE ES)
determine que afirmacin es vlida si se presenta la siguiente gramtica. Para el anlisis,
asigne un nombre a los estados del autmata que apliquen a la gramtica dada.
S xS
S yA
S zB
A yA
A yB
B zB
B
A.
B.
C.
D.

El autmata y la gramtica son equivalentes


El autmata y la gramtica no definen un estado de aceptacin.
La gramtica no referencia ningn estado ni transicin vlida del autmata.
No es equivalente el autmata con la gramtica ya que la gramtica no genera la
cadena vaca

Ejercicio 31: Sean L 1 el lenguaje generado por la gramtica G 1 y L 2 el lenguaje


generado por la gramtica G 2

S xABy

S xAyzy | xAy

A xzS | B

A xzS | yz |

B yz |
Gramtica G 1

Gramtica G 2
171

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Indique cul de las siguientes afirmaciones es cierta (donde


estricta):
1.
2.
3.
4.

denota la inclusin

Mediante G 1 se puede generar todas las cadenas de L 2


Las gramticas son idnticas
Las gramticas generan el mismo lenguaje.
Las gramticas son distintas, y L 1 L 2

Ejercicio 32: Las gramticas del ejercicio anterior (ejercicio 31), tienen dos
particularidades que son vlidas afirmarlas:
1.
2.

Las reglas de las gramticas difieren por que tienen diferentes terminales.
La palabra generable por la gramtica G 1 y G 2 es xxzyzy

3.
4.

La palabra generable por la gramtica G 1 y G 2 es xyzyzy


La lista de reglas estn denotadas de forma comprimida.

Ejercicio 33: Considere la gramtica G = {S aS | aA | a , A aA | bS } Cul es


la longitud de las cadenas que puede generar y cules son esas cadenas, identifquelas?
A.
B.
C.
D.

10 y son {, a, aa, ab, ba, bb, aba, abab, bbb, b}


5 y son {, a, aa, ab, ba }
7 y son {a,aa,aaa,aaaa, abaa, aaba, abab}
6 y son {a, aa, ab, ba, bb, aba }

Ejercicio 34: Dada la siguiente gramtica regular G , identifique el conjunto de cadenas o


palabras vlidas que puede generar el Autmata Finito que lo representa: (Para el
desarrollo del ejercicio se sugiere graficar o recrear el autmata)
S aA | bA
A aB | bB | a
B aA | bA
A.
B.
C.
D.

{a,b}
El conjunto de cadenas que pueda generar la ER = a*b*a
{aa, aaaa, bbba, ba, bba, baaa, baba}
{baaaa, aaaaa, bba}
172

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Ejercicio 35: Cuando se disean AP o se formalizan, se utilizan notaciones grficas


parecidas a la de los diagramas de los AF. Con respecto a esto: qu aspectos de
diseos son vlidos para formalizar un AP.?
1. Si se da la transicin a/x/c indica que se saca de la pila un carcter a, luego
se avanza una posicin x en la pila, y se mete c a la pila.
2. Si se da la transicin a/x/c indica que se consume de la entrada un carcter
a, se avanza una posicin x y se mete c a la pila.
3. Para que una palabra de entrada sea aceptada en un AP debe cumplir tres
condiciones. Una de ellas es que el AP se debe encontrar en un estado final.
4. Si se da la transicin a/x/c indica que se consume de la entrada un carcter
a, no se saca nada de la pila, y se mete c a la pila.

Ejercicio 36: Al combinar los diagramas de transiciones de las siguientes mquinas M 1


y M2 :

Para formar el diagrama de transiciones de la mquina compuesta por:


Da como solucin la siguiente mquina M.

173

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

El funcionamiento correcto de la mquina M es.


A. Busca el primer smbolo distinto de x / Si ese smbolo es y; lo cambia por otra
/ Regresa a uno (1).
B. Busca el primer smbolo distinto de y / Si ese smbolo es x; lo cambia por otra
/ Regresa a cuatro (4).
C. Busca el primer smbolo distinto de x / Si ese smbolo es y; lo cambia por una
/ Regresa a dos (2) para evaluar la memoria y finalizar en h (halt).
D. Busca el primer smbolo distinto de y / Si ese smbolo es x; lo cambia por una
/ Regresa a uno (1).

y
x
x
y

Ejercicio 37: Con referencia a la funcionalidad y creacin de una Mquina Universal de


Turing (MUT), es vlido afirmar:
1.
2.
3.
4.

Una Mquina Universal de Turing es capaz de decidir cualquier lenguaje


independiente del contexto.
En el estado de parada de una MUT no puede salir ningn arco
En una MUT el lenguaje aceptado por esta mquina no puede contener una
cadena vaca.
La MUT se dise para realizar clculos especficos.

Ejercicio 38: Un problema de decisin (PD) es aquel formulado por una pregunta
(referida a alguna propiedad) que requiere una respuesta de tipo si/no. Para la Teora
de Lenguajes, un problema de decisin es insoluble cuando:
1. Si no existe un procedimiento efectivo para determinar si la propiedad es
verdadera (no existe una Mquina de Turing MT).
2. Si no se representa con una Tabla de transiciones el problema.
3. Si no existe un algoritmo total para determinar si la propiedad y objetivo del
problema es verdadera.
4. Si no se representa con un diagrama de Moore el problema.
Ejercicio 39: Dada la siguiente Mquina de Turing (MT), determine que afirmaciones son
vlidas para su anlisis:

174

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

1. Si la primera letra no es una a la MT cae en un ciclo infinito leyendo y escribiendo


a
2. La mquina acepta palabras que empiezan con b
3. La mquina acepta palabras que empiezan con a
4. Si la primera letra no es una a, la MT cae en un ciclo infinito leyendo y
escribiendo b
Ejercicio 40: Con referencia a una Mquina de Turing (MT) de dos direcciones: Una
Mquina de Turing con una cinta infinita en un sentido puede simular una Mquina de
Turing con la cinta infinita en los dos sentidos. Sea M una Mquina de Turing con una
cinta infinita en los dos sentidos, entonces:
Para que se logre o se d esta mquina se debe cumplir:

1. La Mquina de Turing M que tiene una Cinta Infinita en un sentido, puede


simular a M si tiene una cinta con dos pistas.
2. La cinta superior contiene informacin correspondiente a la parte derecha
de la cinta M a partir de un punto de referencia dado.
3. La pista inferior contiene tanto la parte izquierda como la derecha de la
cinta M (en orden inverso).
4. La pista inferior y superior leen los datos simultneamente en ambos
sentidos. Luego y dependiendo de los estado repetitivos, se detiene una
pista y contina la que menos celdas tenga ocupada.
Ejercicio 41: Para el siguiente Autmata Finito denotado como:
A 2 = (E = {1,2,3}, Q = {q 1 , q 2 , q 3 }, f, q 1 , F = {q 2 } ) donde f vine dada por la
siguiente tabla:

1. Corrija la tabla de transicin indicando el estado inicial y final.


2. Construya el diagrama de Moore correspondiente.
3. Identifique que tipo de autmata es (AFD o AFND) y justifique su
respuesta.
175

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

4. Identifique los elementos (tupla que es). Debe explicar y describir cada
elemento y la funcin y significado en el autmata. Conceptos y
definiciones adicionales.
5. Identifique la ER que lo representa. Explique los operadores y cmo actan
en la funcin.
6. Identifique el lenguaje que genera.
7. Muestre en el simulador (grficamente) como recorre una cadena vlida.
Explique cada secuencia.
8. Muestre el diagrama de Moore generado en JFLAp y en VAS y comente
que similitudes o diferencias encuentra al realizarlo en los dos simuladores.
(herramientas que ofrezca uno u otro).
9. Genere la tabla de transicin en VAS y plsmela en el documento,
comprela con la plasmada en el ejercicio.

Tabla 20: Desarrollo de ejercicio autmata finito

DESCRIPCIN DE VIDEO

Desarrollo de ejercicio 41

CANAL

http://youtu.be/sW-Lx9p1xfc

Fuente: <El autor. CAAT>

Ejercicio 42: identifique las cadenas vlidas que

generan las siguientes ER:


muestre algunas, pero ms que las cadenas identifique el lenguaje que
representa. Genere el diagrama de moore o grafique la mquina correspondiente.
si A = {0,1}
a)
b)
c)
d)
e)
f)
g)

0*+1*(01)
10* + 10
01* + 0
(1.11*0) *
(1 + 10) + 0
1* 0*10
00* 11*
176

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

h) (0+1)*11(1+0)*

Tabla 21: Desarrollo de ejercicios con Expresiones Reulares..


DESCRIPCIN DE VIDEO

Desarrollo de ejercicio 42

CANAL

http://youtu.be/sW-Lx9p1xfc

Fuente: <El autor. CAAT>

Ejercicio 43: Calcular el autmata mnimo correspondiente al siguiente autmata

finito

1. Enuncie el autmata en notacin matemtica


2. Identifique los componentes del autmata (que tipo de tupla es)
3. Identifique la tabla de transicin correspondiente
Cada fila la corresponde a un estado q Q
El estado inicial se precede del smbolo
Cada estado final se precede del smbolo #
Cada columna corresponde a un smbolo de entrada x
Se debe identificar la funcin
4. Identifique el lenguaje que reconoce y enuncie cinco posibles cadenas
vlidas que terminen en el estado halt
5. Encuentre la expresin regular vlida.
El propsito de las ER (que no son ms que simples frmulas) es representar
177

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

cada una de ellas un lenguaje.


1. Encuentre su gramtica que sea vlida para la funcin de transicin
(describa sus componentes y como se escriben matemticamente).
Justifquela si la convierte a la Izquierda o a la derecha. Plsmela en el
simulador y recrela. (Debe quedar documentado en el texto el paso a
paso que realizan en el simulador)
Las gramticas son mecanismos generadores de lenguajes, es decir, nos dicen
cmo podemos obtener o construir palabras de un determinado lenguaje.
2. Realice el rbol de Derivacin de esa gramtica
Un rbol ordenado y etiquetado es un rbol de derivacin para una gramtica libre de
contexto
3. Identifique si ese rbol o gramtica es ambigua o no y plasme las
razones de su afirmacin
4. Si el rbol de transicin es demasiado grande, a su criterio seleccione
una regla en la que se detenga por cualquier rama (izquierda o derecha)
y plsmelo hasta ah. (es decir seleccione una cadena vlida para este
tem).
ACTIVIDADES PARA EL EJERCICIO A MINIMIZAR O YA MINIMIZADO:
5.
6.
7.
8.

Explicar el proceso de Minimizacin (que estados se suprimen y porque)


Que transiciones se reemplazan o resultan equivalentes.
Escribir la funcin de transicin del nuevo autmata.
Identificar la expresin regular (explicarla en la lectura matemtica que
se le debe hacer).
9. Compruebe una cadena vlida para esa expresin regular.
10.Identificar el lenguaje que reconoce y cinco posibles cadenas vlidas
11.Identificar su gramtica. Demustrela para una cadena vlida del
autmata.
12.Compare la gramtica con el autmata antes de minimizar (ya sea por la
izquierda o derecha).
13.El autmatas nuevo expresarlo o graficarlo con su respectivo diagrama
de Moore.
14.Identificar sus tablas de Transicin (plasmarlas)
15.Plasmar los pasos de minimizacin en el simulador (comprelos con el
proceso manual que est explicando) y capturar los procesos en
imgenes para ser documentadas en el texto.
178

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Tabla 22: Desarrollo de un ejercicio de minimizacin.


DESCRIPCIN DE VIDEO

CANAL

Desarrollo de ejercicio 43

http://youtu.be/JZPAHHA2PnE

Fuente: <El autor. CAAT>

Ejercicio 44: Disee un APD que acepte el Lenguaje L =


donde a,b,c 0

{0a 1a+b 2b 3c+1 }

1. Describa el autmata en notacin matemtica


2. Grafquelo en JFLAP y realice el Traceback para las transiciones. (Las
columnas para un AP son: El estado en que se encuentra el autmata, lo
que falta por leer de la palabra de entrada, y el contenido de la pila).
3. Plasme las imgenes y capturas en el documento. (Documente el proceso)
4. Muestre el diagrama correspondiente de estados.
5. Identifique los contenidos (el recorrido para cada interaccin) de la pila y el
estado de parada. Realcelo con la cadena cuando: a = 1, b= 2, c=1

Tabla 23: Desarrollo de ejercicio. APD.


DESCRIPCIN DE VIDEO

CANAL

Diseo (no desarrollo) del ejercicio


44

http://youtu.be/z3qeIEpJuq0

Fuente: <El autor. CAAT>

Ejercicio 45: Gramticas: Sean L 1 el lenguaje generado por la gramtica G 1

S 0A 1
A 1A | 1B
B 0S
Gramtica G 1

1. Identifique que tipo de gramtica es. Justifique su respuesta


179

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

2. Identifique los elementos (tupla) que es.


3. Obtener el autmata Finito para la gramtica (plasme los diagramas de
Moore)
4. Identifique el Lenguaje que generan. Identifique si es lineal por la
derecha o la izquierda.
5. Plasme la secuencia y rbol de derivacin la cadena 0101 (Use el
simulador para verificarla). E identifique que producciones intervienen. Para
justificar sus respuestas puede apoyarse en la simulacin que le d el
software JFLAP.
Ejercicio 46: Disee una MT que reconozca el lenguaje de cadenas Mquina que

acepta el lenguaje de palabras sobre {0,1} que comienzan y acaban con el mismo
smbolo

1.
2.
3.
4.
5.

Identifique los componentes de la Mquina de Turing (descrbala).


Disela en un Diagrama de Moore
Recorra la mquina con al menos una cadena vlida.
Identifique una cadena que no sea vlida y justifquela porque.
Ejecute el RunTest a la cadena aceptada (mustrela en la captura de
imagen para el trabajo)
6. Identifique en que momento la mquina se detiene
Ejercicio 47: Tomando como referencia la aplicabilidad de las mquinas de estados,

la Teora de la Informacin trata una de las tcnicas de deteccin y correccin de


errores, por los teoremas de Trellis y Viterbi con cdigos convolucionales para
canales con ruido.
Dado el siguiente dato de entrada. 1 0 1 0 0 1 1 0

1. Determine los estados presentes: (represente la mquina de estados) del


cdigo convolucional para k=1 , m= 3, n=2 para cada estado
2. Determine las entradas codificadas:
3. Realice el diagraman de rbol
4. Realice el diagrama general de estados
5. Realice el diagrama de trellis con la ruta correcta.
6. Asuma que hubo error en los bits 4,6 y 8 con distancia de Hamming 1.

180

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Realice el diagrama de Treslis y Viterbi corrigiendo el dato (ruta correcta). Pare


ello debe mostrar la ruta correcta identificando las distancias de haming y la
seleccin dada para seguir la ruta
Tabla 24: Cdigo convolucional. Codificacin y decodificacin..

DESCRIPCIN DE VIDEO

Desarrollo completo Ejercicio 47

CANAL

http://youtu.be/eWkTdnDtiKo

Ejercicio 48: Tomando como referencia la aplicabilidad de las mquinas de estados,

la Teora de la Informacin trata una de las tcnicas de deteccin y correccin de


errores, por los teoremas de Trellis y Viterbi con cdigos convolucionales para
canales con ruido.
Se obtiene el sguete dato codificado: (Como se muestra en la tabla), con errores
en el par de bits codificados 2,5 y 7 con distancia de haming 1.

181

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Tabla 25: Clculo de un dato de entrada a partir de un dato codificado con error.

DESCRIPCIN DE VIDEO

Desarrollo completo Ejercicio 48

CANAL

http://youtu.be/6N5bsYNGUNw

Ejercicio 49: Calcular el autmata mnimo correspondiente al siguiente autmata

finito.

ACTIVIDADES ANTES DE MINIMIZAR.


1. Enuncie el autmata en notacin matemtica
2. Identifique los componentes del autmata (que tipo de tupla es)
3. Identifique la tabla de transicin correspondiente
Cada fila la corresponde a un estado q Q
El estado inicial se precede del smbolo
Cada estado final se precede del smbolo #
Cada columna corresponde a un smbolo de entrada x
Se debe identificar la funcin
4. Identifique el lenguaje que reconoce y enuncie cinco posibles cadenas
vlidas que terminen en el estado halt
5. Encuentre la expresin regular vlida.
182

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

El propsito de las ER (que no son ms que simples frmulas) es representar


cada una de ellas un lenguaje.
6. Encuentre su gramtica que sea vlida para la funcin de transicin
(describa sus componentes y como se escriben matemticamente).
Justifquela si la convierte a la Izquierda o a la derecha. Plsmela en el
simulador y recrela. (Debe quedar documentado en el texto el paso a
paso que realizan en el simulador)
Las gramticas son mecanismos generadores de lenguajes, es decir, nos dicen
cmo podemos obtener o construir palabras de un determinado lenguaje.
7. Realice el rbol de Derivacin de esa gramtica
Un rbol ordenado y etiquetado es un rbol de derivacin para una gramtica libre de
contexto
8. Identifique si ese rbol o gramtica es ambigua o no y plasme las
razones de su afirmacin
9. Si el rbol de transicin es demasiado grande, a su criterio seleccione
una regla en la que se detenga por cualquier rama (izquierda o derecha)
y plsmelo hasta ah. (es decir seleccione una cadena vlida para este
tem).
ACTIVIDADES PARA EL EJERCICIO A MINIMIZAR O YA MINIMIZADO:
10.Explicar el proceso de Minimizacin (que estados se suprimen y porque)
11.Que transiciones se reemplazan o resultan equivalentes.
12.Escribir la funcin de transicin del nuevo autmata.
13.Identificar la expresin regular (explicarla en la lectura matemtica que
se le debe hacer).
14.Compruebe una cadena vlida para esa expresin regular.
15.Identificar el lenguaje que reconoce y cinco posibles cadenas vlidas
16.Identificar su gramtica. Demustrela para una cadena vlida del
autmata.
17.Compare la gramtica con el autmata antes de minimizar (ya sea por la
izquierda o derecha).
18.El autmatas nuevo expresarlo o graficarlo con su respectivo diagrama
de Moore.
19.Identificar sus tablas de Transicin (plasmarlas)
183

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

20.Plasmar los pasos de minimizacin en el simulador (comprelos con el


proceso manual que est explicando) y capturar los procesos en
imgenes para ser documentadas en el texto.

Ejercicio 50: Dada la siguiente tabla de transicin:

(Ntese que hay interacciones con smbolo vaco, diferente a cadena vaca)

PARTE 1
1. Exprese el autmata en notacin matemtica. Identifique que tipo de
autmata es (AFD o AFND) y justifique su respuesta. (No se trata de dar el
concepto de determinismo)
2. Identifique los elementos (tupla que es). Debe explicar y describir cada
elemento y la funcin y significado en el autmata. Conceptos y
definiciones adicionales.
3. Identifique el lenguaje que genera.
4. Muestre en el simulador (grficamente) como recorre una cadena vlida.
Explique cada secuencia.
5. Muestre el diagrama de Moore generado en JFLAp y en VAS y comente
que similitudes o diferencias encuentra al realizarlo en los dos simuladores.
(herramientas que ofrezca uno u otro).
PARTE 2: Para cada una de las Expresiones Regulares siguientes (ER) realice:
184

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

6. Identifique el lenguaje que representa: (tenga en cuenta como se plasma o


identifica un lenguaje aceptado: mdulo pgina 47 leccin 10)
7. Genere tres cadenas vlidas y dos no vlidas
8. Plasme las tres cadenas vlidas para cada ER en una tabla (identificando
jerarqua de operadores regulares, identificando colores). Para ello
apyese en el video: http://youtu.be/JZPAHHA2PnE (minuto 14 al 33)
9. Identifique en la misma tabla por que las dos cadenas seleccionadas no se
aceptan o en que parte se trunca la jerarqua y orden de los operadores.
10. Seleccione una ER (solo una) y exprtela o genere el autmata o el
diagrama de Moore que sea vlido.
EXPRESIONES REGULARES:
Primera:

(a+b)*b(b+a)b(b+a)*

Segunda: (0+1)*11(1+0)0(1+10*)*
Tercera:

0*1*+(01)*+(11*00*+01)

Cuarta:

Una ER libre (la que desee construir)

Quinta:

La ER de la tabla de transicin del autmata de la Parte 1

Tabla 26: Cmo leer ER

DESCRIPCIN DE VIDEO

Desarrollo Ejercicio 50

CANAL

http://youtu.be/wGTxhnPXcw4

185

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

BIBLIOGRAFIA
RODRIGUEZ COSTA Sergio, (1996,2009). Las Mquinas de Turing. Extrado el
19 Febrero de 2009 desde http://www.rastersoft.com/articulo/turing.html
BOVET JEAN, (2004, 2006) Visual Autmata Simulator. Extrado el 25 de
Marzo de 2011 desde http://www.automatas.org/
JFLAP, (2004, 2008) JFLAP Version 7.0 Release August 28, 2009. Extrado
el 30 de Mayo de 2011 desde http://www.jflap.org/
PROYECTO SEPA, Software para la enseanza de Parsing. (n.d.). Extrado el
18 de Marzo de 2011 desde http://www.ucse.edu.ar/fma/sepa/
MORAL. SERAFIN, Teora de Autmatas y lenguajes Formales. (n.d.).
Extrado el 2 de Noviembre de 2010 desde
http://decsai.ugr.es/~smc/docencia/mci/automata.pdf
Cuevas, O, (1999, 2001), Teora de Autmatas y Lenguajes Formales.
Segunda Edicin, Espaa 2001. Facultad de ingeniera, Ciencias y
Administracin. Universidad de la Frontera.
Alfonseca, J; Sancho, M (1990), Teora de Lenguajes, Gramticas y
Autmatas. Segunda Edicin, Espaa 2001. Ediciones universidad y Cultura
Isasi, P, (1997), Lenguajes, gramticas y autmatas. Un Enfoque prctico.
Segunda Edicin, Espaa 2004. Addison- Wesley.
Hopcroft, J, (2002), Introduccin a la Teora de Autmatas y lenguajes de
Computacin.
Segunda
Edicin,
Espaa
2002.
Addison

Wesley
Iberoamericana
Kelley, D, (1995), Teora de autmatas y Lenguajes Formales. Prentice
Hall
Brokshear, J; (1993), Teora de la computacin, Lenguajes Formales,
Autmatas y complejidad. Primera Edicin, Mxico 1993. Ediciones AddisonWesley Iberoamericana.
John, M; (2004), Lenguajes formales y teora de la computacin. Tercera
Edicin, Mxico 2004. Ediciones Mc Graw Hill.

186

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

Brena, R; (2003), Autmatas


Tecnolgico de Monterey. P 214.

Lenguajes.

Un

enfoque

en

diseo.

Navarro, G; (2006), Fundamentos de la ciencias de la computacin


(Lenguajes Formales, Computabilidad y Complejidad). Apuntes y ejercicios.
Departamento de Ciencias de la Computacin. Universidad de Chile. P 178.
Cueva, J; (2001), Lenguajes Gramticas y Autmatas. Departamento de
Informtica Universidad de Oviedo. P 106.
Navarrete, I; (2008); Teora
Departamento de Ingeniera de
Universidad de Murcia. P 133.

de Autmatas y Lenguajes Formales.


la Informacin y las Comunicaciones.

A Mathematical Theory of Communication by Claude E. Shannon. Disponible


en internet: <http://cm.bell-labs.com/cm/ms/what/shannonday/paper.html>

187

También podría gustarte