Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Automatas y Lenguajes Formales 301405 2015 1
Automatas y Lenguajes Formales 301405 2015 1
https://www.camayat.com
Duitama (Boyac)
Colombia
Versin 5 2015.
Tabla de contenido
LISTA DE FIGURAS................................................................................................................................ 6
LISTA DE TABLAS.................................................................................................................................. 8
INTRODUCCIN ................................................................................................................................... 9
ANEXO 1: LISTADO DE SMBOLOS USADOS....................................................................................... 12
ANEXO 2: PRESABERES: TEORA DE CONJUNTOS.............................................................................. 14
I.
GENERALIDADES: ............................................................................................................ 14
I.I OPERACIONES CON CONJUNTOS: ......................................................................................... 15
I.II EQUIVALENCIAS DE CONJUNTOS: ........................................................................................ 17
I.III RELACIONES:........................................................................................................................ 18
I.IV FUNCIONES: ........................................................................................................................ 22
LECCIN 28. PROPIEDADES DE CLAUSURA DE LOS LENGUAJES LIBRES DE CONTEXTO .......... 102
LECCIN 29. ALGORITMOS DE DECISIN PARA LOS LENGUAJES LIBRES DE CONTEXTO. ....... 103
LECCIN 30. PROBLEMAS INDECIDIBLES PARA LENGUAJES LIBRES DE CONTEXTO. .............. 105
UNIDAD 3 LENGUAJES ESTRUCTURADOS POR FRASES. ................................................................. 106
CAPITULO 7 MAQUINAS DE TURING. .......................................................................................... 107
LECCIN 31. FORMALIZACIN DE LAS MT. ............................................................................. 108
LECCIN 32. FUNCIONAMIENTO DE LA MQUINA DE TURING. ............................................. 110
LECCIN 33. DIFERENCIAS ENTRE LAS COMPUTADORAS Y LAS MQUINAS DE TURING ..... 113
LECCIN 34. LA MAQUINA UNIVERSAL DE TURING. ............................................................... 113
LECCIN 35. LENGUAJES ACEPTADOS POR LA MAQUINA DE TURING. .................................. 114
CAPITULO 8: MAQUINAS DE TURING Y COMPUTACIN. ............................................................ 117
LECCIN 36. TESIS DE CHURCH /TURING. ............................................................................... 117
LECCIN 37. VARIANTES DE UNA MAQUINA DE TURING. ...................................................... 119
LECCIN 38. PROBLEMAS DE HILBERT. ................................................................................... 121
LECCIN 39. PROBLEMAS INSOLUBLES PARA LA TEORA DE LENGUAJES.............................. 125
CAPITULO 9. FUNCIONES RECURSIVAS ....................................................................................... 126
LECCIN 40. LENGUAJES DECIDIBLES ...................................................................................... 126
LECCIN 41. PROBLEMAS DE HALTING .................................................................................. 127
LECCIN 42. DECIBILIDAD DE TEORAS LGICAS .................................................................... 129
LECCIN 43. REDUCIBILIDAD DE TURING................................................................................ 130
LECCIN 44. APLICACIONES DE LAS MAQUINAS DE ESTADOS. ALGORITMO DE TRELLIS. ..... 133
LECCIN 45: ALGORITMO DE VITERBI ..................................................................................... 145
SIMULADORES: ................................................................................................................................ 151
5
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
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
6
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
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
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)
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
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.
Los contenidos que s e documentan y explican, llevan al lector a que asimile dos temticas
bsicas para esta rea de conocimiento:
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.
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
9
10
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.
11
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
12
>
=
|
*
|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
Relacin
Inverso
Negacin
lgica (neg)
Implicacin en
un
solo
sentido
Doble
implicacin
Forall
Exists
Mid
13
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
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}
A B {x | x a V x B}
A B=
16
Teorema 3.
A A
A
Si A B , entonces A B A
Si A B , entonces A B B
Idempotencia:
A A A ;
A A A
Conmutatividad:
A B B A ; A B B A
Asociatividad:
( A B) C A ( B C )
( A B )C A ( B C )
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
( A B) C A C B C
A B A B
( A B) C A C B C
Doble complemento. ( AC ) C 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.
Figura 1: Grafo relacin binaria
Fuente:<El autor>
18
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:
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
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 )
19
Antisimtrica
Transitiva
Fuente:<El autor>
Fuente:<El autor>
20
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)}
Figura 6: Una Relacin Transitiva
Fuente:<El autor>
21
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>
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
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:
22
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
Turing
<NAVARRETE,Isabel. Teora de Autmatas y lenguajes Formales. Departamento Ingeniera. Universidad de Murcia. P 133.
Sept 2008>
24
1967
Complejidad
Algortmica
1954 - 1969
Mquinas
secuenciales y
Autmatas finitos.
1956 en adelante
Noam Chomsky
propone varios
modelos para
clasificar:
Gramticas y
Lenguajes formales.
Fuente: El Autor
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".
25
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
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
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
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
http://youtu.be/DnNT1dF4keQ
http://www.veoh.com/watch/v616083236Thn5HJn
i 1 i ., para todo i 0
: 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.
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.
28
y L2
L0 {}
Li 1 Li L
L L* si L
L L* {}si L
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
guardan el resultado de dicha traduccin.2
Fuente:<El autor>
2
30
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:
dnde:
A,C VN
b VT
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:
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 ,
cadenas cualesquiera que pueden contener variables y constantes.
y son
Los lenguajes generados por las gramticas de tipo 1 se llaman lenguajes sensibles al
Contexto y su clase es L1:
32
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*)
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.
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
Autmatas de Pila
Autmatas
acotados
linealmente
Fuente:<El autor>
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.
33
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).
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
34
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.
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:
Fuente:<El autor>
35
Construccin, diseo e
interpretacin de los
componentes de un autmata
(tuplas)
CANAL
CANAL
http://youtu.be/HF9-e28TWb0
http://www.veoh.com/watch/v61609207mprr4pFS
36
es el alfabeto de entrada.
sK
es el estado inicial.
F K
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
38
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.
Construccin y diseo de
autmatas, Diagramas de
Moore, tablas de transicin.
CANAL
CANAL
http://youtu.be/3kWdHOLw-AQ
http://www.veoh.com/watch/v6168933229Fx8G4A
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.
40
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
(q1, z ) = q2
(q 3 , x ) = q1
41
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.
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.
42
: 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.
44
DESCRIPCIN DE VIDEO
CANAL
CANAL
http://youtu.be/eWUfPJD9A_0
http://www.veoh.com/watch/v61683101FNRSfxSP
Fuente:<El autor>
: 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, ).
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 -
45
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.
46
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.
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.
47
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>
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
*
()
representa la unin.
representa la concatenacin (este smbolo no se suele escribir).
representa el cierre de Kleene
modifican las propiedades de los dems operadores.
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
* i 0 i
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.
49
Ejemplo 30
Dado
= {0,1} y la ER = 0*10*
50
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.
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
52
53
Bis(4).
54
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.
55
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.
(bb*a)*a(a+b)* + (bb*a)*bb
CANAL
CANAL
http://youtu.be/z7vmzu9078Y
http://www.veoh.com/watch/v61691189ZDE5K4wH
Fuente:<El autor>
56
M = (, K , , q0 , F )
alfabeto):
= P(K)
q0 = {q0}
= (,a) = * (,a)
57
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).
(q0,a) = { (q0,q)}: en el que en cada situacin solo hay un camino posible que es el que
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)
58
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).
Bis (4)
59
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.
60
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:
62
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.
64
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
y q1 q6
CANAL
CANAL
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
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:
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
A aB bB a ,
69
B aA bA
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.
JFLAP Version 7.0 RELEASED August 28, 2009. Last update May 15, 2011. Disponible en internet.
<http://www.jflap.org/>
70
K {[ ] : ( S ) (A V , , talesque. A R)}
q0 = [S]
F = {[ ]}
Si a y ( *V ) , entonces ([ a ], a ) [ ]
71
72
Autmatas y Gramticas,
representacin y descripcin.
CANAL
CANAL
http://youtu.be/FcsxGEFF5RI
http://www.veoh.com/watch/v61736035WqpFzqBM
Bis (6)
74
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 ... }
V = {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 una
misma cadena. Es posible que una misma cadena tenga dos rboles de derivacin distintos.)
76
Figura 42: rbol de derivacin para una secuencia de parntesis bien balanceados.
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
77
78
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
10
79
1. E E + E
2. E E * E
3. E x
4. E y
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.
(Bis)4
MORAL, S; Modelos de computacin. 130 p.
80
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
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
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 todos los smbolos y variables intiles. Dada la gramtica:
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
83
S BB,
S (),
BS
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
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 i . . .
equivalente es original.
S (S),
S BB,
S (),
B (S),
B BB,
B ()
85
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:
13
13
14
86
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 topdown).
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 ...
3. i 0, uv i wx i y L
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
87
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
88
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.
89
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)
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.
90
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.
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:
La Notacin grfica que se asemeja a la de los autmatas finitos (AF) es la dada as:
Para las transacciones se usa: / / en donde:
92
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.
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:
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.
94
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
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).
95
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.
Figura 57: Funciones de la Pilas.
96
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>
97
(q0, Z)
(q1,Z)
(q1, x, )
(q1,x)
(q1, y, x)
(q2, )
(q2, y, x)
(q2, )
(q2, , Z)
(q3, Z)
Los lenguajes aceptados por los Autmatas de Pila se denominan lenguajes libres del
contexto.
1. Lenguaje aceptado por estados finales:
L(M ) { * : (q0 , , Z 0 ) ( , , ), F , *}
98
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.
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.
99
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.
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})
100
1 (p, , )
2 (p, ,S)
3 (q, ,S)
4 (q, ,S)
5 (q,a, a)
6 (q,b, b)
7 (q,c, c)
(q,S)
(q,aSa)
(q,bSb)
(q,c)
(q, )
(q, )
(q, )
Estado
p
q
q
q
q
q
q
q
q
q
abcba
S
abcba
aSa
bcba
Sa
bcba
bSba
cba
Sba
cba
cba
ba
ba
a
a
101
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 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.
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.
104
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.
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.
106
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
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.
107
108
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) =
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 podemos
109
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.
{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.
111
Fuente:<JFLAP El Autor>
(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 = 0011
q00011 Xq111 X0q111 Xq20Y1
q2XoY1 Xq00Y1 XXq1Y1
XXYq11 XXq2YY Xq2XYY
XXq0YY XXYq3Y
XXYYq3B XXYYBq4B
CANAL
CANAL
112
Construccin de Mquinas de
Turing (MT). Parte 1 de 2.
Construccin de Mquinas de
Turing (MT). Parte 2 de 2.
http://youtu.be/Sg3Q2Qm3IL0
http://www.veoh.com/watch/v61738230cQreJHP3
http://youtu.be/lb7h724tlFg
http://www.veoh.com/watch/v61738916pmGbXGyk
Fuente:<El autor>
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 particular- sobre
cualquier configuracin inicial de entrada correcta para esa MT particular).
15
114
L(M) = { : q0 * 1p 2, p }
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
116
PRINCIPIO DE CHURCH-TURING:
Todo proceso fsico puede ser simulado por un dispositivo universal de computacin."
117
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
"Todo lo que es computable por un humano es computable por una mquina de
Turing"
118
"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 Turing-computable, 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
119
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.
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.
Mquina multicabezal: Un nico movimiento permite desplazar independientemente las n
cabezas de la mquina sobre la nica cinta.
120
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).
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 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
122
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
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
123
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
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
124
125
Si es soluble.
No es insoluble.
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 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
126
127
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
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:
131
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.
132
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.
19
16
<C. E. Shannon, ``A mathematical theory of communication,'' Bell System Technical Journal, vol. 27, pp. 379423 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 >.
133
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.
19
134
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 sucesivamente; por lo tanto
136
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
139
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)
140
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
141
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:
Figura 72: Diagrama de Trellis (transicin de estados).
142
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).
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
Estado presente:
00
Continuando el proceso llegamos a un cdigo de estados presentes y a la secuencia
codificada que entra al canal:
144
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
145
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
146
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.
147
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.
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.
Figura 78: Distancia de Hamming Nivel 3.
148
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
149
150
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
CANAL
CANAL
http://youtu.be/ZnCbur8zQiU
https://vimeo.com/75887185
Sigue al autor
facebook.com/carlosalberto.amayatarazona
@carlosamayat
http://www.camayat.com/
SIMULADORES:
151
3002260425
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
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/
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
= 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.
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}
Ejercicio 3.1 Para el siguiente autmata, identifique cul es la Expresin Regular (ER) que
mejor lo representa:
153
A.
B.
C.
D.
(ab+ba) + a
(ab + aba)*
a +(ab)*
ab +(ab)*
Dado el alfabeto:
sera:
A.
Expresin Regular:
; Como Lenguaje: {
154
,b,bbb,bbbbbb,}
B.
Expresin Regular:
en
C.
y terminan en
Expresin
ba
Regular:
Como
lenguaje:
{a,aa,ab,aaa,aab,aba,abb, }
D.
Expresin Regular:
en
y terminan
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.
{a,b}
Q ={ q 0 q 1 }
,
F = {q 1 } se representa mediante el
A.
{ a | {a,b} }
B.
{ a | {a,b} }
155
donde:
C.
b
Todas las palabras que terminan en dos as
D.
2.
3.
4.
es (a+b) +c
La expresin regular (ER) que describe el lenguaje universal sobre este alfabeto
1.
*
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:
/n 0}
/n 0}
156
/n = 0}
/n 0}
Ejercicio 9: Sea el vocabulario {a,b} y la expresin regular aa*bb* Indique cuales cadenas
que se relacionan a continuacin son vlidas para esa ER:
A.
B.
C.
D.
A.
B.
C.
D.
(10 + 0)* 10
(10 + 0)
(10 + 0)*
(0+1+0*)
Ejercicio 10: Una de las operaciones que permiten las Expresiones Regulares
Cierre u operacin estrella. Si
expresin regular que denota {
es el
es una
A. , ,
B. , ,
C. , ,
D.
,
,
,
,
,
, ,
,
, ,
.
Ejercicio 11: El siguiente Autmata Finito (AF) es origen de:
A.
B.
C.
D.
Ejercicio 12: Analice el siguiente Autmata y determine cules apreciaciones son vlidas en
su anlisis:
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.
158
Ejercicio 13: Dado los siguientes dos autmatas A y B, analice los enunciados dados e
identifique cuales son verdaderos.
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.
A. Reconoce las palabras sobre a,b que terminan en un nmero par de as contiguas
160
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
A.
B.
C.
D.
0110
0111
0101
0011
(q2 , a ) = q 2
(q2 , b ) = q 3
161
2.
3.
4.
(q 4 , a ) = q 4
(q 3 , a ) =
(q 1 , a ) = q 2
(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)}
162
Ejercicio 21: Dado el Autmata con la siguiente tabla de transicin, identifique las cadenas
que son vlidas para el lenguaje que acepta.
163
A.
B.
C.
D.
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.
164
y q 5 y a un estado final q 5 .
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.
165
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.
166
Ejercicio 28: Dada la siguiente gramtica G= (VN= {S, A}, VT= {0,1}, S, P) donde P son las
producciones:
S >
S >
S >
S >
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:
167
S xABy
S xAyzy | xAy
A xzS | B
A xzS | yz |
B yz |
Gramtica G 1
Gramtica G 2
168
denota la inclusin
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.
{a,b}
El conjunto de cadenas que pueda generar la ER = a*b*a
{aa, aaaa, bbba, ba, bba, baaa, baba}
{baaaa, aaaaa, bba}
169
170
/
/
/
/
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:
171
172
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.
DESCRIPCIN DE VIDEO
Desarrollo de ejercicio 41
CANAL
http://youtu.be/sW-Lx9p1xfc
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*
173
h) (0+1)*11(1+0)*
Desarrollo de ejercicio 42
CANAL
http://youtu.be/sW-Lx9p1xfc
finito
es representar
175
DESCRIPCIN DE VIDEO
CANAL
Desarrollo de ejercicio 43
http://youtu.be/JZPAHHA2PnE
CANAL
http://youtu.be/z3qeIEpJuq0
S 0A 1
A 1A | 1B
B 0S
Gramtica G 1
acepta el lenguaje de palabras sobre {0,1} que comienzan y acaban con el mismo
smbolo
1.
2.
3.
4.
5.
DESCRIPCIN DE VIDEO
CANAL
http://youtu.be/eWkTdnDtiKo
Tabla 25: Clculo de un dato de entrada a partir de un dato codificado con error.
DESCRIPCIN DE VIDEO
CANAL
178
http://youtu.be/6N5bsYNGUNw
finito.
es representar
180
(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:
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
181
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:
Quinta:
DESCRIPCIN DE VIDEO
Desarrollo Ejercicio 50
CANAL
http://youtu.be/wGTxhnPXcw4
182
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
Autmatas. Segunda Edicin, Espaa 2001. Ediciones universidad y Cultura
183
de
la
Autmatas
y
Informacin y
Lenguajes
Formales.
las Comunicaciones.
184