Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Duitama (ZCBOY)
Versin 4 2014.
CONTENIDO
Primera Unidad
Captulos
1. Conceptos Bsicos
Lecciones
1. Introduccin e Historia.
2. Alfabetos, Cadenas y Lenguajes
3. Autmatas y Lenguajes.
I. LENGUAJES
REGULARES
4. Lenguajes Regulares
5. Autmata
2. Autmatas Finitos
3. Expresiones Regulares
Segunda Unidad
Captulos
4. Conceptos Generales
5. Autmatas a Pila
II. LENGUAJES
INDEPENDIENTES DEL
CONTEXTO
6. Propiedades de Lenguajes
Independientes de Contexto
Tercera Unidad
III. LENGUAJES
ESTRUCTURADOS POR
FRASES
Captulos
31. Formalizacin de las MT
7. Mquinas de Turing.
9. Funciones Recursivas
Tabla de contenido
LISTA DE FIGURAS................................................................................................................................ 8
LISTA DE TABLAS................................................................................................................................ 10
INTRODUCCIN ................................................................................................................................. 11
ANEXO 1: LISTADO DE SMBOLOS USADOS....................................................................................... 14
ANEXO 2: PRESABERES: TEORA DE CONJUNTOS.............................................................................. 16
I.
GENERALIDADES: ............................................................................................................ 16
I.I OPERACIONES CON CONJUNTOS: ......................................................................................... 17
I.II EQUIVALENCIAS DE CONJUNTOS: ........................................................................................ 19
I.III RELACIONES:........................................................................................................................ 20
I.IV FUNCIONES: ........................................................................................................................ 24
LECCIN 27. RELACIN ENTRE LOS AUTMATAS DE PILA Y LENGUAJES LIBRES DE CONTEXTO
................................................................................................................................................. 102
LECCIN 28. PROPIEDADES DE CLAUSURA DE LOS LENGUAJES LIBRES DE CONTEXTO.......... 105
LECCIN 29. ALGORITMOS DE DECISIN PARA LOS LENGUAJES LIBRES DE CONTEXTO. ....... 106
LECCIN 30. PROBLEMAS INDECIDIBLES PARA LENGUAJES LIBRES DE CONTEXTO. .............. 108
UNIDAD 3 LENGUAJES ESTRUCTURADOS POR FRASES. ................................................................. 109
CAPITULO 7 MAQUINAS DE TURING. .......................................................................................... 109
LECCIN 31. FORMALIZACIN DE LAS MT. ............................................................................. 110
LECCIN 32. FUNCIONAMIENTO DE LA MQUINA DE TURING. ............................................. 113
LECCIN 33. DIFERENCIAS ENTRE LAS COMPUTADORAS Y LAS MQUINAS DE TURING ..... 116
LECCIN 34. LA MAQUINA UNIVERSAL DE TURING. ............................................................... 117
LECCIN 35. LENGUAJES ACEPTADOS POR LA MAQUINA DE TURING. .................................. 118
CAPITULO 8: MAQUINAS DE TURING Y COMPUTACIN. ............................................................ 120
LECCIN 36. TESIS DE CHURCH /TURING. ............................................................................... 120
LECCIN 37. VARIANTES DE UNA MAQUINA DE TURING. ...................................................... 123
LECCIN 38. PROBLEMAS DE HILBERT. ................................................................................... 124
LECCIN 39. PROBLEMAS INSOLUBLES PARA LA TEORA DE LENGUAJES.............................. 128
CAPITULO 9. FUNCIONES RECURSIVAS ....................................................................................... 129
LECCIN 40. LENGUAJES DECIDIBLES ...................................................................................... 129
LECCIN 41. PROBLEMAS DE HALTING .................................................................................. 131
LECCIN 42. DECIBILIDAD DE TEORAS LGICAS .................................................................... 132
LECCIN 43. REDUCIBILIDAD DE TURING................................................................................ 134
LECCIN 44. APLICACIONES DE LAS MAQUINAS DE ESTADOS. ALGORITMO DE TRELLIS. ..... 135
7
LISTA DE FIGURAS
Pg
Figura 1: Grafo relacin binaria
Figura 2: Una Relacin Reflexiva
Figura 3: Una Relacin Antireflexiva.
Figura 4: Una Relacin Simtrica
Figura 5: Una Relacin Antisimtrica
Figura 6: Una Relacin Transitiva
Figura 7: Una Relacin Transitiva (otra forma de representarla).
Figura 8: Proceso de traduccin realizado por un compilador
Figura 9: Clasificacin de los Lenguajes. Jerarqua de Chomsky. N
Figura 10: Mquina de estados. Estructura
Figura 11: Tabla de transicin de un Autmata Finito.
Figura 12: Diagrama de Moore para un Autmata Finito.
Figura 13: Tabla de transicin para un Autmata Finito generado con
software simulador VAS.43
Figura 14: Diagrama de Moore asociado a un AFD.
Figura 15: Diagrama de Moore asociado a un AFND.
Figura 16: Diagrama de Moore asociado a un AFND Figura 17: Lenguaje asociado a un AFD
Figura 18: Propiedades de las ER
Figura 19: ER representada en una mquina de estados
Figura 20: Grfica de transicin (GT)
Figura 21: Operadores bsicos de conversin de AF a ER
Figura 22: Transformacin de Er a AF.
Figura 23: Obtencin de una ER a partir de un AF
Figura 24: Obtencin de una ER a partir de un AF PASO 1
Figura 25: Obtencin de una ER a partir de un AF PASO 2
Figura 26: Obtencin de una ER a partir de un AF PASO 3.
Eliminacin de nodo.
Figura 27: Obtencin de una ER a partir de un AF PASO 4.
Eliminacin de nodo q0.
Figura 28: Obtencin de una ER a partir de un AF PASO 5.
Fusin de expresiones
8
21
22
23
23
23
24
24
33
34
38
41
41
44
47
48
50
53
53
55
55
56
57
58
58
59
59
59
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)
10
14
22
26
28
29
36
39
41
47
50
59
69
76
98
99
116
149
153
154
175
176
178
179
180
182
185
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:
Se presentan temticas que son base para comprender los lenguajes de programacin de
alto y bajo nivel y que propician la distincin entre lenguajes formales con reglas
sintcticas y semnticas rgidas, concretas y bien definidas, de los lenguajes
naturales como el ingls o el espaol, donde la sintaxis y la semntica no se pueden
controlar fcilmente. Los intentos de formalizar los lenguajes naturales, lleva a la
construccin de gramticas, como una forma de describir estos lenguajes, utilizando
para ello reglas de produccin para construir las frases del lenguaje. Se puede entonces
caracterizar un lenguaje mediante las reglas de una gramtica adecuada.
Como complemento a una aplicabilidad que tienen las Teora de lenguajes y autmatas,
se explica el funcionamiento del algoritmo de la modulacin codificada de Trellis y la
Decodificacin de Viterbi (algoritmos creados para el aumento de velocidad y para la
mejora de la veracidad) codificaciones de canal y de fuente en transmisin de datos como
tcnicas de deteccin y correccin de errores. Este algoritmos se explica mediante los
diagramas de rbol y grafos para cdigos convolucionales en los que se observa el paso
de las transiciones la entrada de datos y los cambios de estado.
Finalmente les he desarrollado un material en video que les apoya el desarrollo de los
ejercicios de este libro, unos tomados de otras fuentes documentales y otros de autora
propia y que estn a disposicin para su descarga o visualizacin.
13
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
14
>
=
|
*
|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
15
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}
17
A B=
18
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
19
Ejemplo 11: 2{1, 2,3} { ,{1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3}}
El conjunto vaco siempre forma parte de todo conjunto potencia. La notacin 2 A recuerda
que el tamao del conjunto potencia de A es 2 elevado a la potencia del tamao de A, esto
es, | 2 A | = 2| A| .
Complemento de un conjunto: de un conjunto, es un caso particular de la diferencia,
cuando el primer conjunto es considerado como el universo que contiene todos los
elementos posibles. Sea U un universo, entonces el complemento del conjunto A,
denotada por A c contiene los elementos del universo que no estn en A.
Ejemplo 12: Sea U (El Universo de los nmeros naturales), el complemento de los
nmeros mltiplos de tres (3) {3,6,9,12,15,...}c = {1,2,4,5,7,8,10,11,13,14, .}.
Se concluye que A Ac U para todo conjunto A; adems A Ac
I.III RELACIONES:
Se derivan del producto cartesiano de conjuntos. Precisamente se llama relacin a todo
subconjunto de un producto cartesiano. En esencia combinaciones de objetos de un
determinado tipo que estn relacionados de alguna forma.
Relacin Binaria: La relacin binaria definida en un conjunto A es un subconjunto del
producto cartesiano A x A.
Ejemplo 13: Sea el conjunto A = {a, b, c}. El grafo de la figura (1) representa una relacin
binaria definida en A, puesto que los pares (c,a), (b,a) (b,b) constituyen un subconjunto de
A x A.
20
Fuente:<El autor>
Sin embargo:
{a, b} {b, a}
El orden si influye, sin embargo, no todos los subconjuntos del producto cartesiano,
pueden ser aceptados como la relacin de la condicin que exprese. Algunas
caractersticas de estas relaciones son:
Inverso de una Relacin: Se llama inverso de una relacin R, denotado por R 1 , a
aquella en donde se invierte el orden de los pares ordenados, esto es:
21
R 1 {( y, x) | ( x, y) R}
Ejemplo 15: El inverso de la relacin {(1,2),(2,3),(1,3)} es {(2,1),(3,2),(3,1)}
Propiedades ms comunes de las Relaciones Binarias. No se citan olas que se
derivan de las bsicas que se relacionan a continuacin.
Tabla 2: Propiedades comunes de las relaciones binarias
Propiedad
Reflexiva
Antireflexiva
Simtrica
Antisimtrica
Transitiva
Condicin
R es reflexiva si a A : aRa
R es antireflexiva si a A : (aRa ) aRa
R es simtrica si a, b A : (aRb) (bRa )
R es antisimtrica si a, b A : (aRb) (bRa )
R es transitiva si a, b, c A : (aRb) (bRc) (aRc)
Fuente: El Autor
Fuente:<El autor>
22
Fuente:<El autor>
Simtrica: Cada relacin de ida tiene otra de vuelta. Ejemplo 18 Si A={1,2,3,4} y R es tal
que R = {(-1, -1), (-1, -3), (2, 2), (2, 4), (-3, -1), (-3, -3), (4, 2), (4, 4)}.
Figura 4: Una Relacin Simtrica
Fuente:<El autor>
Antisimtrica: Ninguna flecha de ida tiene otra de vuelta, salvo en el caso de los bucles,
que estn permitidos. Ejemplo 19 Si A = {1, 2, 3, 4} y R es la relacin ser menor o igual
que, se tiene: R = {(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4), (1, 1), (2, 2), (3, 3), (4, 4)}
Figura 5: Una Relacin Antisimtrica
Fuente:<El autor>
Transitiva: Si existen dos relaciones o flechas consecutivas, debe haber otra que una el
primer elemento con el tercero. Ejemplo 20 Si A = {1, 2, 3, 4} y R es la relacin ser mayor
que, se tiene: R = {(3, 2),(2, 1), (3, 1), (4, 1), (4, 2), (4, 3)}
23
Fuente:<El autor>
Otra forma de interpretar esta relacin dice que siempre que contiene los pares (x,y) y (y,
z) tambin contiene (x, z). Por ejemplo, la relacin {(1,2), (2,3), (1,1), (1,3)} es transitiva,
pero {(2,3), (1,2), (1,1)} no lo es.
Figura 7: Una Relacin Transitiva (otra forma de representarla).
Fuente:<El autor>
I.IV FUNCIONES:
Las funciones son un caso particular de las relaciones. Simplemente son asociaciones,
combinaciones o relaciones en las que no hay dos pares ordenados que tengan el mismo
primer componente. Es decir, los pares ordenados asocian a cada primer componente un
nico segundo componente. Por ejemplo, la relacin {(1,2), (2,3), (1,3)} no es una funcin,
pero {(1,2), (2,3), (3,3)} s lo es.
En conjuntos, la notacin habitual suele ser: f(1) = 2 que significa que a partir de la
entrada 1 se obtiene la salida 2. (se usa la f como indicador de la funcin). En Autmatas.
La funcin suele denotarse con el smbolo
24
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:
sencillos con sus respuestas y que permiten determinar la utilidad de los lenguajes
regulares en aplicaciones del mundo real.
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
26
Turing
>Calculan los algoritmos A y B la misma funcin? (Problema de la
equivalencia)
>Parar el algoritmo A para una de sus entradas? (Problema de la parada)
> Parar el algoritmo A para todas sus entradas? (Problema de la
totalidad)
> Parar el algoritmo A la funcin f? (Problema de la verificacin)
1967
Complejidad
Algortmica
1954 - 1969
Mquinas
secuenciales y
Autmatas finitos.
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".
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
problema. Los smbolos de un alfabeto pueden ser nmeros, letras, entre otros y suelen
estar escritos en minsculas.
Ejemplo: Sea A = {0,1} indica el Alfabeto A compuesto por los smbolos 0,1
No hay que confundir los smbolos del alfabeto B con los smbolos del lenguaje (o ms
precisamente meta-lenguaje) que usamos para expresarnos todos los das. Son dos cosas
totalmente distintas. Nosotros para comunicarnos usamos un lenguaje que tiene unos smbolos
que son las letras del alfabeto latino, los nmeros, las letras del alfabeto griego, y una serie de
smbolos especiales propios del lenguaje matemtico (el meta-lenguaje). Con este lenguaje
tambin definimos los conceptos de alfabeto y smbolo.
Definicin2. Una palabra o cadena sobre un alfabeto es una sucesin finita de
elementos de . Se suele denotar con la letra omega
Se concluye que es una palabra sobre , si y solo si U a1....an donde
ai , i 1,......n
Ejemplo 21: Si A = {0,1} entonces 0111 es una palabra sobre este alfabeto.
El conjunto de todas las palabras sobre un alfabeto se nota como *
Definicin3. Si * entonces la longitud de la palabra es el nmero de smbolos de
que contiene.
La longitud de se denota | |. Es decir si a1....an entonces | | = n
Definicin4. La palabra vaca es la palabra de longitud cero. Es la misma para todos los
alfabetos y se denota como
Definicin5. Al conjunto de todas las palabras o cadenas sobre el alfabeto en las que
se excluya la cadena vaca se denota como:
Tabla 5: Recursos web para alfabetos, cadenas y lenguajes.
DESCRIPCIN DE VIDEO
CANAL
CANAL
http://youtu.be/DnNT1dF4keQ
http://www.veoh.com/watch/v616083236Thn5HJn
29
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, }
30
y L2
L1L2 {12 | 1 L1 , 2 L2 }
Algunas propiedades se definen como.
Asociativa: L1 ( L2 L3 ) ( L1L2 ) L3
Elemento Neutro: {}L L{} L
L = L = (Lenguaje que contiene cero palabras o cadenas)
L0 {}
Li 1 Li L
L L* si L
L L* {}si L
31
32
Fuente:<El autor>
33
Fuente:<El autor>
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:
34
Puede ser descrito mediante una expresin regular (expresar de forma compacta
cmo son todas las cadenas de smbolos que le pertenecen).
Puede ser generado mediante una gramtica regular (obtener todas las cadenas
de smbolos que le pertenecen).
Puede ser reconocido mediante un autmata finito (saber si una cadena de
smbolos pertenece a l o no)
TIPO 2: (Gramticas libres del contexto). Las producciones son de la forma:
A
donde:
A VN
(VN U VT)*
Los lenguajes generados por este tipo de gramticas se llaman lenguajes libres del
contexto y la clase es L2, que incluyen a los Lenguajes Regulares. Por ejemplo, la mayora
de los lenguajes de programacin son Lenguajes Libres de Contexto.
TIPO 1: (Gramticas sensibles al contexto). Las producciones son de la forma:
A
donde , V* y V+ Se interpreta que A es una variable y ,
son cadenas cualesquiera que pueden contener variables y constantes.
Los lenguajes generados por las gramticas de tipo 1 se llaman lenguajes sensibles al
Contexto y su clase es L1:
TIPO 0: (Gramticas con estructura de frase) Son las gramticas ms generales, que por
ello tambin se llaman gramticas sin restricciones. Esto quiere decir que las
producciones pueden ser de cualquier tipo permitido, es decir, de la forma:
con (V* . VN . V*)
Los lenguajes generados por estas gramticas son los lenguajes con estructura de frase,
que se agrupan en la clase L0: Estos lenguajes tambin se conocen en el campo de la
Teora de la Compatibilidad como lenguajes recursivamente enumerarles.
35
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.
LECCIN 5. AUTMATA
La palabra autmata evoca algo que pretende imitar las funciones propias de los seres
vivos, especialmente relacionadas con el movimiento, por ejemplo el tpico robot
antropomorfo. Un ejemplo de una maquina real que automatiza un proceso puede ser
una mquina empacadora de algn producto que se fabrique en serie y con una serie de
instrucciones, pasos y caractersticas definidas e iguales para cada salida (producto final).
36
Fuente:<El autor>
Construccin, diseo e
interpretacin de los
componentes de un autmata
(tuplas)
CANAL
CANAL
http://youtu.be/HF9-e28TWb0
http://www.veoh.com/watch/v61609207mprr4pFS
39
simbologa, que solo difiere en la forma mas no en la interpretacin de las definiciones formales de
estas mquinas. Se ha estandarizado las simbologa ms sencilla para efectos de didctica e
interpretacin
es el alfabeto de entrada.
sK
es el estado inicial.
F K
={0,1)
s = q0
F = q1
Donde la funcin : {q0, q1, q2, q3 } {0, 1} {q0, q1, q2, q3} viene dada por:
(q0, 0) = q0
(q0, 1) = q1
(q1, 0) = q0
(q1, 1) = q2
(q2, 0) = q3
(q2, 1) = q1
(q3, 0) = q3
(q3, 1) = q2
40
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
41
42
Otras apreciaciones de estos AFD lo definen como otro mecanismo para describir
lenguajes. En vez de pensar en generar las cadenas (como las ERs), un AFD describe un
lenguaje mediante reconocer las cadenas del lenguaje, y ninguna otra.
Cmo es inicializado el autmata: En la figura 10 podemos verificar como se inicializa:
1. se coloca en la cinta de entrada, con un smbolo en cada celda. (en este caso es
aaabab )
2. el cabezal de lectura se apunta al smbolo ms a la izquierda de . En este caso el
smbolo a
3. el estado actual pasa a ser q0
Ciclo de ejecucin bsico del autmata: Como cualquier computador, una vez se ha
inicializado, comienza la ejecucin desde la palabra de entrada .
1. se lee el smbolo actual, que es el apuntado por el cabezal de lectura. Si el cabezal
apunta a una celda vaca entonces el AFD termina su ejecucin, aceptando la palabra
en caso de que el estado actual sea final y rechazando la palabra en caso contrario.
Esto ocurre cuando se ha ledo toda la palabra de entrada, y se produce una situacin
similar a tener una condicin fin de chero" en la ejecucin de un programa
2. se calcula el estado siguiente a partir del estado actual y del smbolo actual segn la
funcin de transicin, esto es, (estado actual; smbolo actual) = estado siguiente
3. el cabezal de lectura se mueve una celda a la derecha
4. el estado siguiente pasa a ser el estado actual y vuelve al paso 1
Ejemplo 24 Dado el siguiente Autmata M Finito determinista: M =(K, , q0, , F) donde:
K = {q0, q1, q2, q3}
donde la funcin de transicin est dada por: : {q0, q1, q2, q3 } {x, z} {q0, q1, q2, q3}
q0 { q3}
(q0, x ) = q1
(q2 , x ) = q3
(q1, x ) = q1
( q 3 , z ) = q2
43
(q1, z ) = q2
(q 3 , x ) = q1
El diagrama de transicin de un AFD tiene por cada nodo un solo arco etiquetado con
cada uno de los smbolos del alfabeto.
Algunas condiciones para que estos autmatas sean vlidos son:
el diagrama de transicin de un AFD tiene por cada nodo un slo arco etiquetado
con cada uno de los smbolos del alfabeto.
33
44
: K x (K)
Donde (K) denota el conjunto de las partes de K o conjunto potencia 2K
Ejemplo 25 Si se tiene (q,a) = {q1, q2, . , qm) lo que indica que estando en un estado
actual q y un smbolo de entrada a, el estado siguiente puede ser cualquier estado entre
q1 y qm.
Ejemplo 26 Puede darse el caso que (q,a) = lo que indica que el estado siguiente no
est definido.
Ejemplo 27
= {(q1,a,q2),(q1,a,q3),(q2,b,q4),(q2,b,q2),(q3,a,q3),(q3,b,q4),(q4,a,q4)}
Figura 15: Diagrama de Moore asociado a un AFND.
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, ).
47
Por lo que se concluye: que un AFD reconoce o acepta una palabra si se cumplen las
siguientes condiciones:
1. Se consumen todos los caracteres de dicha palabra de entrada, siguiendo las
transiciones y pasando en consecuencia de un estado a otro;
2. al terminarse la palabra, el estado al que llega es uno de los estados finales del
autmata (los que tienen doble crculo en los diagramas, o que son parte del conjunto F
en la representacin formal).
Lenguaje aceptado por un AFD
L(M) = { x * , F,(s,x) * M (, )}.
Lenguaje aceptado por un AFND:
El lenguaje aceptado por una AFND M = (, K, ,s, F) se define como:
L(M) = { x * , F,(s,x) * M (, )}.
A diferencia del caso de AFDs, dada una cadena x, es posible llegar a varios estados
distintos (o a ninguno) luego de haberla consumido. La cadena se declara aceptada si
alguno de los estados a los que se llega es final.
Intuitivamente, un AFND acepta una palabra de entrada siempre que sea posible
comenzar por el estado inicial y que exista una secuencia de transiciones que nos lleven a
consumir la palabra y acabe el autmata en un estado final. Puede que tengamos otras
secuencias de transiciones que no acaben en estado final, pero basta que exista una que
acabe en estado final para que la palabra sea aceptada.
CANAL
CANAL
http://youtu.be/QdRlbzVsvLQ
http://www.veoh.com/watch/v61610759jHdGRr59
http://youtu.be/ASg_ZUXgvZk
http://www.veoh.com/watch/v61698636anxKfprR
Fuente:<El autor>
50
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.
51
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.
Un ejemplo de una ER no vlida: La cadena (+a*ba) no es una ER.
Ejemplo 30 Dado
L( ) L( ) entonces se cumple
Para ello se usan las grficas de transicin (GT). Estas ltimas son esencialmente
AFND en que las etiquetas de las flechas tienen expresiones regulares, en lugar de
palabras.
Entonces se definen las grficas de transicin (GT) as: son por lo tanto
quntuplos
M = (, K, , q 1 , F) donde K x ER x K
La figura 20 ilustra un ejemplo de GT.
54
En este ejemplo en particular se evidencia que se debe aceptar palabras que tienen
primero una sucesin de as, luego repeticiones de ab, y finalmente repeticiones de bs.
La funcin completa estara dada por:
({q0, q1}, {a, b}, {(q0, a, q0), (q0, (ab)*, q1), (q1, b, q1)}, q0, {q1})
Los AFN son un subconjunto propio de las GT, puesto que las palabras en las etiquetas
de un AFN pueden ser vistas como expresiones regulares que se representan a s
mismas.
Figura 21: Operadores bsicos de conversin de AF a ER
55
56
Bis(4).
57
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
58
(bb*a)*a(a+b)* + (bb*a)*bb
CANAL
CANAL
http://youtu.be/z7vmzu9078Y
http://www.veoh.com/watch/v61691189ZDE5K4wH
Fuente:<El autor>
59
= P(K)
q0 = {q0}
= (,a) = * (,a)
60
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)
61
M = (, K, , s, F).
Bis (4)
62
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.
66
Vamos a definir la nocin de estados distinguibles, que intuitivamente quiere decir que si
dos estados son distinguibles, ya no pueden ser equivalentes. La definicin es inductiva:
Los estados p y q son distinguibles si son incompatibles (es decir, uno es final y el otro no
final). Esta es la base de la induccin. Se puede verificar el ejercicio.
Teorema 9: Dos estados son equivalentes (o redundantes) si no son distinguibles. Es
relativamente sencillo verificar si dos estados son distinguibles.
4. CONSTRUCCIN DE TABLA:
Construir tabla T con filas desde q1 hasta qn y columnas desde q0 hasta qn-1
Obsrvese que en la tabla Figura 36 se omite la diagonal principal, pues no tiene caso
confrontar cada estado contra s mismo.
67
Empezamos en la parte inferior (eje horizontal) de menor a mayor desde q0 hasta qn-1
Luego el eje vertical de arriba hacia abajo: q1 hasta qn
Se aprecian signos en las celdas, que se obtienen directamente del hecho de que
son pares de estados incompatibles por lo tanto distinguibles. En otras palabras lo que
hemos hecho es: marcar (par (qi , qj)) donde un estado del par es final y el otro no.
Una manera de organizar el trabajo de verificar qu pares de estados de un AFD son
distinguibles, consiste en construir una tabla en que los renglones y las columnas son los
nombres de los estados, y en cada cruce de rengln con columna se indica con una
cuando son distinguibles.
Resultado final: Al final quedan sin marcar PAR (q3,q0) y PAR (q6,q1) y por lo tanto:
q0 q3
y q1 q6
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
reglas para formar correctamente las frases de un lenguaje (ejemplo la gramtica del espaol,
ingls, francs, etc).
Las caractersticas y notacin especfica de gramtica fue dada por Chomsky,N, quin bas esta
descripcin en las denominadas Reglas Gramaticales.
Definicin 12: Reglas Gramaticales: Son especficamente, reglas de reemplazo. Una regla es
un expresin de la forma en donde tanto como son cadenas de smbolos en donde
pueden aparecer tanto elementos del alfabeto como unos nuevos smbolos, llamados variables.
Los smbolos que no son variables son constantes. Por ejemplo una regla gramatical es dada como:
X aX . Otro ejemplo: Aplicar la regla a la palabra da como resultado (operacin
de reemplazo) . Otro ejemplo: Si se tienen los smbolos bbXa y se le aplica la regla X aX
da como resultado la nueva cadena bbaXa.
LECCIN 16. GRAMTICAS REGULARES
Definicin 13: Definimos o caracterizamos una gramtica regular como:
Un cudruplo (V, , R, S) en donde:
V = Es el alfabeto de variables
= Es el alfabeto de constantes
R = Es el conjunto de reglas, es un subconjunto finito de V x (V U )
S= Es el smbolo inicial y es un elemento de V
Estas gramticas regulares son de la forma:
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
71
Una cadena (esto es, formada exclusivamente por constantes) es derivable a partir
de una gramtica G si existe una secuencia de pasos de derivacin:
S 1 2
A una secuencia de pasos de derivacin le llamamos simplemente derivacin.
Definicin 14: El lenguaje generado por una gramtica G, L(G), es igual al conjunto de
las palabras derivables a partir de su smbolo inicial. Es decir:
L (G) = { * S * }
A aB bB a ,
72
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/>
73
K {[ ] : ( S ) (A V , , talesque. A R)}
q0 = [S]
F = {[ ]}
Si a y ( *V ) , entonces ([ a ], a ) [ ]
74
75
Autmatas y Gramticas,
representacin y descripcin.
CANAL
CANAL
http://youtu.be/FcsxGEFF5RI
http://www.veoh.com/watch/v61736035WqpFzqBM
Bis (6)
77
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
79
una misma cadena. Es posible que una misma cadena tenga dos rboles de derivacin
distintos.)
Figura 42: rbol de derivacin para una secuencia de parntesis bien balanceados.
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
82
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.
83
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
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
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
S BB,
S (),
BS
S (S),
S BB,
S (),
B (S),
B BB,
B ()
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
89
B ...
3. i 0, uv i wx i y L
90
91
92
La pila funciona de manera que el ultimo caractr que se almacena en ella es el primero
en salir (LIFO por las siglas en ingles), como si se apilaran platos uno encima de otro, y
naturalmente el primero que quitaremos es el ltimo que hemos colocado. Un aspecto
crucial de la pila es que solo podemos modificar su tope, que es el extremo por donde
entran o salen los caracteres. Los caracteres a la mitad de la pila no son accesibles sin
quitar antes los que estn encima de ellos.
93
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:
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.
96
La construccin en diseo indica utilizar la pila como contador para recordar la cantidad
de as que se consumen, y luego confrontar la cantidad de bs. Una primera versin de
este diseo utiliza un solo estado q, con transiciones a/ /a y b / a / de q as mismo.
El diseo del autmata se ve en la figura 56.
Figura 56: Diseo de un PDA para w=aabb
97
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).
Stacks: Podemos identificar las pilas con ciertos lenguajes y ciertas funciones sobre un
alfabeto del modo siguiente:
Comenzamos aadiendo un nuevo smbolo Z0 que no est en .
Las pilas (stacks) son elementos del lenguaje: Z0 . El smbolo Z0 se identificar
con el significado: Fondo de la Pila. (No es que est vaca que es diferente).
Se definen las siguientes funciones. Figura 57.
98
9Configuracin, descripcin.
Componentes de un PDA. Parte 1
de 3
Configuracin, descripcin.
Componentes de un PDA. Parte 2
de 3
Configuracin, descripcin.
Componentes de un PDA. Parte 3
de 3
CANAL
CANAL
http://youtu.be/q5G0WnL5JUA
http://www.veoh.com/watch/v61736354aeFD3q7R
http://youtu.be/yfXfKKZZl1g
http://www.veoh.com/watch/v61736979F2m9HbgG
http://youtu.be/1YdZpLloFb8
http://www.veoh.com/watch/v61737911GZHgFEnT
Fuente:<El autor>
99
100
(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 fiales:
L(M ) { * : (q0 , , Z 0 ) ( , , ), F , *}
2. Leguaje aceptado por pila vaca:
N ( M ) { * : (q0 , , Z 0 ) * ( , , ), K }
En el primer caso, una palabra es aceptada, si se puede llegar a un estado final despus
de consumir la entrada. En el segundo criterio, los estados finales no tienen ningn
significado, y una palabra se acepta si cuando se termina de leer la entrada la pila se
queda vaca.
101
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.
1 (p, , )
2 (p, ,S)
3 (q, ,S)
4 (q, ,S)
5 (q,a, a)
6 (q,b, b)
7 (q,c, c)
103
(q,S)
(q,aSa)
(q,bSb)
(q,c)
(q, )
(q, )
(q, )
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
Existe sin embargo un problema tcnico: si observamos la corrida para la palabra abcba,
nos daremos cuenta de que no estamos aplicando las reglas en el orden descrito en el
prrafo anterior, esto es, primero la transicin del grupo 1, luego las del grupo 2 y
finalmente las del grupo 3, sino que ms bien en la cuarta lnea de la tabla se consume un
caracter a (aplicacin de una transicin del grupo 3) seguida de la aplicacin de una
transicin del grupo 2. Esto no es casualidad; lo que ocurre es que las variables no
pueden ser reemplazadas por el lado derecho de una regla si dichas variables no se
104
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.
106
Demostracin.
a) En la primera parte del algoritmo para eliminar smbolos y producciones intiles de una
gramtica, se determinaban las variables que podan generar una cadena formada
exclusivamente por smbolos terminales. El lenguaje generado es vaco si y solo si la
variable inicial S es eliminada: no puede generar una palabra de smbolos terminales.
b) y c) Para determinar si el lenguaje generado por una gramtica de tipo 2 es finito o
infinito pasamos la gramtica a forma normal de Chomsky, sin smbolos ni producciones
intiles. En estas condiciones todas las producciones son de la forma:
A BC, A a
Se construye entonces un grafo dirigido en el que los vrtices son las variables y en el
que para cada produccin de la forma A BC se consideran dos arcos: uno de A a B y
otro de A a C. Se puede comprobar que el lenguaje generado es finito si y solo si el grafo
construido de esta forma no tiene ciclos dirigidos.
107
108
Los modelos abstractos de computacin tienen su origen en los aos 30, bastante antes
de que existieran los ordenadores modernos, en el trabajo de los lgicos Church, Gdel,
Kleene, Post, y (Alan Mathison Turing). Estos primeros trabajos han tenido una profunda
influencia no solo en el desarrollo terico de las Ciencias de la Computacin, sino que
109
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.
111
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
112
primer cuadro un caracter blanco. Como la cinta es infinita, inicialmente toda la parte de la
cinta a la derecha de la palabra de entrada est llena del caracter blanco ().
Por definicin, al iniciar la operacin de la MT, la cabeza lectora est posicionada en el
caracter blanco a la izquierda de la palabra de entrada, el cual es el cuadro ms a la
izquierda de la cinta.
Decimos que en la MT se llega al final de un clculo cuando se alcanza un estado
especial llamado halt en el control finito, como resultado de una transicin.
Representaremos al halt por h. 1 Al llegar al halt, se detiene la operacin de la MT, y se
acepta la palabra de entrada. As, en la MT no hay estados finales. En cierto sentido el
halt sera entonces el nico estado final, solo que adems detiene la ejecucin.
Cuando queremos que una palabra no sea aceptada, desde luego debemos evitar que la
MT llegue al halt. Podemos asegurarnos de ello haciendo que la MT caiga en un ciclo
infinito.
El lenguaje aceptado por una MT es simplemente el conjunto de palabras aceptadas por
ella.
Al disear una MT que acepte un cierto lenguaje, en realidad diseamos el autmata finito
que controla la cabeza y la cinta, el cual es un autmata con salida (acepta cadenas
vlidas). As podemos usar la notacin grfica utilizada para aquellos autmatas para
indicar su funcionamiento. En particular, cuando trazamos una flecha que va de un estado
p a un estado q con etiqueta /L, quiere decir que cuando la entrada al control finito
(esto es, el caracter ledo por la cabeza de la MT) es , la cabeza lectora hace un
movimiento a la izquierda, indicada por el caracter L (left, en ingls); similarmente cuando
se tiene una flecha con /R el movimiento es a la derecha. Cuando la flecha tiene la
etiqueta / , donde es un caracter, entonces la accin al recibir el caracter
consiste en escribir el caracter en la cinta. Con estos recursos es suficiente para disear
algunas MT, como en el ejemplo que se visualiza en el recurso web.
Ejemplo 56: Disee una MT que reconozca
{0 n 1 n : n 1 } y en el que ejecute:
Cambia un 0 por una X y se mueve hacia la derecha, pasando por encima de los
ceros e Y, hasta llegar al primer 1.
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)
115
Construccin de Mquinas de
Turing (MT). Parte 1 de 2.
Construccin de Mquinas de
Turing (MT). Parte 2 de 2.
CANAL
CANAL
http://youtu.be/Sg3Q2Qm3IL0
http://www.veoh.com/watch/v61738230cQreJHP3
http://youtu.be/lb7h724tlFg
http://www.veoh.com/watch/v61738916pmGbXGyk
Fuente:<El autor>
116
15
117
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
PRINCIPIO DE CHURCH-TURING:
Todo proceso fsico puede ser simulado por un dispositivo universal de computacin."
120
ENUNCIADOS: CHURCH
"La clase de las funciones que pueden ser calculadas mediante un algoritmo
coincide con la clase de las funciones recursivas." (Tesis de Church).
Apoyado en esta tesis junto a la definicin de funcin definible, encontr varios ejemplos
de problemas cuya resolucin era irresoluble llegando a manifestar que el
Entscheidungsproblem era uno de estos problemas
"Una funcin es recursiva si y slo si es total y efectivamente computable. Una
funcin es parcialmente recursiva si y slo si es efectivamente computable."
Es decir, una funcin de enteros positivos es efectivamente calculable slo si es
recursiva
ENUNCIADOS: TURING
"Una funcin es efectivamente computable si y slo si la funcin es Turingcomputable."
Es decir, si una funcin es computable entonces puede ser computada por una
mquina de Turing.
El objetivo de Turing era el de enfrentarse al problema planteado por Hilbert (el
Entscheidumgsproblem) utilizando para ello el concepto abstracto de una mquina, una
mquina terica.
Turing describa en su artculo que a travs de su mquina haba conseguido caracterizar
de un modo matemtico el nmero de funciones calculables, usando para ello un
algoritmo, este hecho se conoce como:
La clase de las funciones que pueden ser calculadas mediante un mtodo definido
coincide con la clase de las funciones calculables mediante una Mquina de Turing.
CHURCH Y TURING
"Todos los modelos computacionales efectivos son equivalentes a una mquina de
Turing
121
122
Mquina no determinista: Mquina de Turing con una nica cinta y control finito nico.
Teorema: Un lenguaje L es reconocido por una mquina de Turing no determinista si y
solo si L es reconocido por una mquina de Turing estndar.
123
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).
124
tanto, su valor documental es el de ensayo: una visin parcial, personal. Sugiere algunos
programas de investigacin y algunas direcciones a seguir sin fin concreto.
De hecho, muchas de las preguntas daban una falsa idea del matemtico profesional del
siglo XXI, o incluso de 1950, en que la forma de una solucin a una buena pregunta
tomara la forma de un artculo publicado en una publicacin matemtica. Si este fuera el
caso de todos los veintitrs problemas, se hubiera simplificado el comentario hasta el
punto de poder dar una referencia a una revista, o considera la pregunta como abierta
todava. En algunos casos el lenguaje usado por Hilbert se sigue considerando un tanto
"negociable", en cuanto al significado real de la formulacin del problema (en ausencia,
repetimos, de fundamentos axiomticos, basados en matemtica pura, empezando con el
propio trabajo de Hilbert sobre geometra euclidiana, pasando por el Principia
Mathematica, y terminando con el grupo Bourbaki y el "terrorismo intelectual" para
terminar el trabajo). Los problemas Primero y Quinto se encuentran, quiz
sorprendentemente, en un estado de formulacin de una claridad menos que total
(vanse las notas). En casos como el Vigsimo, el problema se podra leer de forma
razonable en una versin "interna", relativamente accesible, en la que el lector puede
saber a qu estaba apuntando Hilbert; o como una penumbra "externa" y especulativa.
Dicho todo esto, por tanto, la razn ms importante es la gran rapidez con la que acept
la lista de Hilbert la comunidad matemtica de aquel momento (lo cual es una frmula
menos convencional que ahora, ya que por entonces haban pocos lderes investigadores,
que generalmente se encontraban en unos pocos pases Europeos y se conocan todos
entre ellos). Los problemas se estudiaron con gran atencin; resolver uno labr
reputaciones.
El estilo fue al menos tan influyente como el contenido de los problemas. Hilbert solicitaba
clarificaciones. Pidi soluciones en principio a preguntas algortmicas, no a algoritmos
prcticos. Pidi un fortalecimiento de los cimientos de partes de la matemtica que a los
no practicantes an se antojaban guiadas por intuiciones opacas (el clculo de Schubert y
la geometra enumerativa).
Estas actitudes fueron adoptadas por muchos seguidores, aunque tambin fueron
discutidas, y continan sindolo. Treinta aos despus, Hilbert haba endurecido su
postura: vase ignorabimus.
Los veintitrs problemas de Hilbert son:
Problema 1. La hiptesis del continuo (esto es, no existe conjunto cuyo tamao est
estrictamente entre el de los enteros y el de los nmeros reales) Se ha probado la
126
127
Problema 13. Resolver todas las ecuaciones de 7 grado usando funciones de dos
parmetros. Resuelto. Lo prob posible Vladimir Arnold.
Problema 14. Probar la finitud de ciertos sistemas completos de funciones. Resuelto.
Resultado: no, en general, debido a un contraejemplo
Problema 15. Fundamento riguroso del clculo enumerativo de Schubert. Parcialmente
resuelto
Problema 16. Topologa de las curvas y superficies algebraicas. Abierto
Problema 17. Expresin de una funcin definida racional como cociente de sumas de
cuadrados. Resuelto. Resultado: se estableci un lmite superior para el nmero de
trminos cuadrados necesarios
Problema 18. Existe un poliedro irregular y que construya otros poliedros? Cul es el
apilamiento compacto ms denso?. Resuelto.
Problema 19. Son siempre analticas las soluciones de los Lagrangianos? Resuelto.
Resultado: s
Problema 20. Tienen solucin todos los problemas variacionales con ciertas condiciones
de contorno?. Resuelto. Ha supuesto un rea importante de investigacin durante el siglo
XX, culminando con las soluciones al caso no lineal.
Problema 21. Probar la existencia de ecuaciones lineales diferenciales que tengan un
grupo monodrmico prescrito Resuelto. Resultado: s o no, dependiendo de una
formulacin ms exacta del problema.
Problema 22. Uniformizacin de las relaciones analticas por medio de funciones
automrficas. Resuelto
Problema 23. Extensin de los mtodos del clculo de variaciones Resuelto
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
129
cuales generalizan a los lenguajes libres de contexto, y estos a los lenguajes regulares.
Lo anterior tiene relacin directa con que los autmatas de Turing generalizan a los de la
pila y estos a su vez a los autmatas finitos. Por otro lado, pese a que lenguajes formales
ms generales que los recursivos numerables no son reconocidos por un autmata de
Turing, no existe hasta el momento ningn autmata ms poderoso capaz de
reconocerlos
En trminos de procedimientos, las cadenas de un lenguaje decidible corresponden a
procedimientos que terminan, ya sea realizando lo que indica la palabra o sealando que
no tienen la capacidad de realizarlo. Para un lenguaje semidecidible, las cadenas
decididas por la MT son instrucciones realizadas por la MT. De manera complementaria,
las cadenas no decidibles por la MT corresponden a procedimientos que no terminan
utilizando una mquina de Turing. A partir de lo dicho aqu tenemos la definicin de
algoritmo:
manera indistinta de teoras lgicas o de lenguajes decididles, como aquellos para los que
existe una mquina de Turing capaz de reconocerlos. Luego la correspondencia entre la
sintaxis de una teora lgica (lenguaje formal) y reconocimiento simblico del mismo por
parte de un autmata queda establecida.
Una de las razones por la que es importante conocer que el problema de la parada no
tiene solucin, es que nos permite decidir si otros problemas son resolubles o no. El
razonamiento a seguir sera: si suponiendo que un problema es decidible, podemos
demostrar que el problema de la parada tiene solucin, entonces podemos llegar a la
conclusin de que el problema en cuestin no la tiene, por reduccin al absurdo.
Definicin:
Sea M una mquina de Turing arbitraria con un alfabeto de entrada . Puede decidirse si
la mquina M se detendr con la entrada ?
Solucin:
La respuesta a esta pregunta es negativa. No se puede determinar si una mquina de
Turing se detiene con una entrada arbitraria.
Este teorema recibe su nombre porque podemos definir una funcin mediante una
ecuacin recursiva ms general que la permitida por la recursividad primitiva, a saber
dnde es un operador recursivo. El primer teorema de recursin nos dice que esta
definicin es posible; hay una funcin recursiva que satisface esta ecuacin. Como en
matemticas se requiere que la definicin sea unvoca, se dice que dicha ecuacin define
el menor punto fijo del operador. As, y de acuerdo al primer teorema de recursin, la
clase de las funciones calculables es cerrada bajo una muy general forma de definicin
por recursin.
A menudo se utiliza la tcnica de reducir un problema a otro para comprobar si tiene o no
solucin efectiva. La estrategia en el caso de la respuesta negativa es la siguiente, si se
reduce de forma efectiva un problema sin solucin efectiva a otro problema (mediante una
funcin calculable), entonces este nuevo problema tampoco tendr solucin efectiva. La
razn es muy simple, si tuviese solucin efectiva, componiendo el algoritmo solucin con
el algoritmo de transformacin obtendramos una solucin para el problema efectivamente
irresoluble. En sentido inverso, si se reduce un problema a otro para el que se conoce una
solucin efectiva, entonces componiendo se obtiene una solucin para el primer
problema. Esta tcnica es muy til y se utiliza a menudo. Por otro lado, esta misma
tcnica es muy empleada en el campo de la complejidad algortmica. Para asegurarse de
que un problema est en una clase de complejidad, basta reducir el problema a otro de
dicha clase sin ms que asegurarse que la reduccin se realiza en la correspondiente
clase de complejidad.
FUNCIONES COMPUTABLES:
Las llamadas mquinas de Turing no constituyen ni el primero ni el nico formalismo para
expresar cmputos, pero s el que ms ha perdurado.
Su creador, el matemtico ingls Alan Turing (1912-1954) estaba convencido de que no
exista un algoritmo para el problema de decisin planteado por Hilbert y su intencin era
demostrar dicha no existencia.
El modelo en el que se inspir fue el de una persona real llevando a cabo un clculo
mecnico, por ejemplo una multiplicacin de dos grandes nmeros en el sistema decimal.
Las funciones computables son usadas para discutir computabilidad sin referirse a ningn
modelo de computacin concreto, como el de la mquina de Turing o el de la mquina de
registros.
Segn la Tesis de Church-Turing, la clase de funciones computables es equivalente a la
clase de funciones definidas por funciones recursivas, clculo lambda, o algoritmos de
Markov.
133
Alternativamente se pueden definir como los algoritmos que pueden ser calculados por
una mquina de Turing, una mquina de Post, o una mquina de registros.
En teora de la complejidad computacional, el problema de determinar la complejidad de
una funcin computable esta conocido como un problema de funciones.
algoritmo que convierta una cadena de L1 en otra cadena de L2 (L2 puede tener
ms cadenas aceptables, pero nos interesan las que se pueden obtener por el algoritmo
desde L1), decidindose entonces si pertenece a L2.
Para demostrar la indecidibilidad de un lenguaje L, se va a utilizar la reduccin ante dos
situaciones distintas:
Que P1 sea RE, el problema se reduce a otro P2 que tambin es RE.
Que P1 no sea RE, el problema se reduce a otro P2 que tampoco es RE.
Demostrar que un lenguaje L2 es recursivamente enumerable, se har por
reduccin al absurdo. Para ello partimos de un lenguaje L1 del que conoceremos
de antemano su no decidibilidad (normalmente se utilizarn Lu o Ld, aunque puede
ser cualquier otro del que se haya demostrado su indecidibilidad). Tenemos, en las
dos situaciones antes descritas:
Que haya que demostrar que L2 es RE. Para ello partimos de la certeza de que L1 es
RE (por ejemplo Lu) y lo reducimos a L2. Se supondr que este ltimo es decidible, es
decir, que se puede encontrar una MT que, siendo la entrada una cadena de L1, esta
se puede convertir en una cadena de L2, y decidir si esta ltima pertenece a L2 o no.
Si se encuentra al algoritmo de conversin, se habr encontrado una MT que es capaz de
reducir L1 a L2, y por tanto, la manera de decidir L1. Pero esto es una contradiccin,
pues sabemos de antemano que L1 es RE, por lo que, forzosamente, L2 no puede ser
decidible. Se llega a la conclusin de que L2 tambin es RE.
Que haya que demostrar que L2 no es RE. Para ello partimos de la certeza de que L1 no
es RE (por ejemplo Ld) y lo reducimos a L2. Se supondr que este ltimo es RE, es decir,
que se puede encontrar una MT que, siendo la entrada una cadena de L1, esta se
puede convertir en una cadena de L2, y aceptarla si esta ltima pertenece a L2. Si se
encuentra un algoritmo de conversin, se habr encontrado una MT que es capaz de
reducir L1 a L2, y por tanto la manera de aceptar L1. Pero esto es una contradiccin,
pues sabemos de antemano que L1 no es RE (ninguna MT puede aceptarlo), por lo que,
forzosamente, L2 no puede ser RE. Se llega a la conclusin de que L2 tampoco es RE.
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
<C. E. Shannon, ``A mathematical theory of communication,'' Bell System Technical Journal, vol. 27, pp.
379-423 and 623-656, July and October, 194>
17
< W. Weaver and C. E. Shannon, The Mathematical Theory of Communication, Urbana, Illinois: University
of Illinois Press, 1949, republished in paperback 1963 .>
18
Reprinted with corrections from The Bell System Technical Journal, Vol. 27, pp. 379423, 623656, July,
October, 1948. Disponible en internet < http://cm.bell-labs.com/cm/ms/what/shannonday/shannon1948.pdf >.
19
The Viterbi Algorithm: A Personal History. Disponible en internet:
<http://arxiv.org/pdf/cs/0504020v2.pdf>
136
puede explicarse gracias a las numerosas ventajas que posee con respecto a los mtodos
analgicos. Hasta unos aos, la transmisin digital de seales analgicas (voz, vdeo,
etc.) resultaba tcnica y econmicamente costosa. Sin embargo, recientemente han
sucedido hechos que originaron importantes avances en esta rea de las
comunicaciones:
Las grandes mejoras en los algoritmos de compresin han perfeccionado la codificacin
de seales analgicas en forma digital, reduciendo drsticamente el ancho de banda
requerido para la transmisin de seales de audio y vdeo con una calidad aceptable.
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.
saber cules de los bits recibidos estn errados, especialmente si se requiere una altsima
veracidad por la transmisin de datos.
Con la introduccin de una cierta cantidad de smbolos redundantes dentro de una
cadena, la parte emisora permite anticiparse al ruido del canal que pueda perjudicar la
informacin, de este modo, en tal caso, se le brinda a la parte receptora la posibilidad de
corregir errores.
Figura 63: Modelo de un sistema de comunicaciones digitales
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
142
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)
con observar los dos bits del registro de memoria ms alejados de la entrada. Puede
comprobarse interpretando la mquina de estados correspondiente. Para el codificador de
la Figura 69, el diagrama de estados correspondiente es:
Figura 69: Diagrama de estados para el codificador convolucional de ratio 1/2
RBOLES: Para la descripcin, utilizaremos un caso particular con m=3, k=1 y n=2.
Consideramos el codificador convolucional de la figura 70
Figura 70: Codificador convolucional de ratio 1/3 y m=3
144
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.
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).
146
Datos a la entrada: 1 1 0 0 1 0 1 1
Hemos dicho que el codificador parte del estado todo cero. Fijndonos en la mquina de
estados de las figura 69, partimos del estado 00, si entra un 1, se ha explicado como
entra al codificador, cul es la salida codificada (11) y a qu estado pasa (10). A este
nuevo estado le llamaremos estado presente. En nuestro ejemplo:
1 Dato entrada:
Dato codificado:
Estado presente:
1
11
10
2 Dato entrada:
Dato codificado:
Estado presente:
1
10
11
3 Dato entrada:
Dato codificado:
Estado presente:
0
10
01
4 Dato de entrada: 0
Dato codificado:
11
147
Estado presente:
00
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
148
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
149
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.
150
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.
151
4.- Segn el nmero de errores acumulados en relacin con la seal recibida, elegimos un
camino u otro. Nos quedamos con el de menor error acumulado. As pues, partimos de
menos ramas para el siguiente nivel del proceso.
5.- De cada nodo parten de nuevo otras dos ramas Colocamos nicamente los errores
correspondientes al ltimo nivel, para una mejor visualizacin:
6.- Procedemos del mismo modo que para el tercer nivel y nos quedamos con las ramas
de menor error acumulado:
7.- Con esta metodologa aplicada al resto de niveles, las cuatro ramas seleccionadas que
llegaran a los cuatro ltimos estados dada su menor acumulacin de error acumulada
sern:
Por lo tanto, el trayecto ptimo es aquel que finaliza en el estado 11, ya que tiene tres
errores acumulados frente a los cuatro de los otros estados. As pues, el trayecto
recorrido ptimo es
152
153
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
https://vimeo.com/75887185
http://youtu.be/ZnCbur8zQiU
Sigue al autor
facebook.com/carlosalberto.amayatarazona
@carlosamayat
154
http://www.camayat.com/
3002260425
SIMULADORES:
Los simuladores son compatibles con cualquier sistema operativo. Solo requieren que
tenga instalado el plugin de java en su navegador web. Puede realizar la descarga de los
simuladores desde los siguientes recursos:
Tabla 19: Recursos web para descarga de simuladores.
SIMULADOR
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
155
= 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}
156
Ejercicio 3.1 Para el siguiente autmata, identifique cul es la Expresin Regular (ER)
que mejor lo representa:
A.
B.
C.
D.
(ab+ba) + a
(ab + aba)*
a +(ab)*
ab +(ab)*
157
Dado el alfabeto:
= {a,b}
lenguaje sera:
A.
Expresin Regular:
B.
Expresin Regular:
empiezan en
C.
Expresin
; Como Lenguaje: {
,b,bbb,bbbbbb,}
;
y terminan en
Como Lenguaje:
ba
Regular:
Como
lenguaje:
{a,aa,ab,aaa,aab,aba,abb, }
D.
Expresin Regular:
terminan en
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
donde:
A.
{ a | {a,b} }
B.
{ a | {a,b} }
C.
una b
Todas las palabras que terminan en dos as
D.
2.
3.
4.
alfabeto es (a+b) +c
La expresin regular (ER) que describe el lenguaje universal sobre este
1.
*
alfabeto es (a+b+c)
Ejercicio 8: Para el siguiente Autmata Finito denotado como: A 2 = (, K, , q 1 , F)
donde = {0,1}, F = {q 2 } y K = {q 1 , q 2 , q 3 , q 4 }, identifique correctamente el Lenguaje
que genera y la expresin regular:
159
/n 0}
/n 0}
/n = 0}
/n 0}
A.
B.
C.
D.
(10 + 0)* 10
(10 + 0)
(10 + 0)*
(0+1+0*)
160
*
*
Indique cuales
Ejercicio 10: Una de las operaciones que permiten las Expresiones Regulares es el
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:
161
Ejercicio 13: Dado los siguientes dos autmatas A y B, analice los enunciados dados e
identifique cuales son verdaderos.
162
Para el ejercicio analice la cadena sin tener en cuenta si es vlida o no, (aceptada
o no aceptada)
Determine cul interpretacin es vlida al analizar la cadena 00101
A. El autmata puede procesar la cadena 00101 de 4 formas distintas.
B. Slo existe un modo en el que el autmata puede procesar la cadena 00101.
C. Al procesar la cadena 00101, el ltimo estado visitado es siempre el estado 3 o
bien el estado 2.
D. Se generan miles cadenas 00101 ya que el autmata es infinito.
Ejercicio 16: Para el siguiente autmata finito determinstico (AFD), identifique que
afirmaciones son vlidas para la expresin:
Tenga en cuenta que se denomina cadena, palabra o frase a una secuencia finita de
smbolos de un alfabeto . Estas cadenas son denotadas como w.
163
a,b
as
C. Reconoce las palabras sobre a,b que tienen un nmero par de as contiguas.
D. Reconoce solo las cadenas sobre a,b que empiezan por a
A.
B.
C.
D.
0110
0111
0101
0011
1.
2.
3.
4.
(q2 , a ) = q 2
(q 4 , a ) = q 4
(q 3 , a ) =
(q 1 , a ) = q 2
(q2 , b ) = q 3
(q 4 , b ) = q 4
(q 3 , b ) = q 3
(q 1 , b ) = q 4
Ejercicio 19: Identifique de los cuatro autmatas que se muestran a continuacin, (A, B,
C o D), cul reconoce las cadenas que contienen la subcadena aba y cuya definicin
formal sera la siguiente:
K = {1,2}
={a,b}
s={1}
F={2}
={((1,a),1),((1,b),1),((1,aba),2),((2,a),2),((2,b),2)}
165
Ejercicio 21: Dado el Autmata con la siguiente tabla de transicin, identifique las
cadenas que son vlidas para el lenguaje que acepta.
166
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.
167
Ejercicio 26: La relacin entre un AP y un LLC (Lenguaje Libre de contexto) permite que
dada una Gramtica G, existe entonces un AP que acepta exactamente el lenguaje
generado por G. Dado el siguiente autmata de pila (AP) cuyo funcionamiento se
representa en la siguiente tabla, identifique la gramtica correcta y sus reglas que aceptan
el LLC dado por el AP.
168
A.
B.
C.
D.
S >
S >
S >
S >
0A0 | 1S2 | 1 | 0
0A0 | 1S2 | 10
0A0 | 1S1 | 2
0A0 | 1S0 | 2 | 0
Ejercicio 27: Dadas las siguientes gramticas, ascielas a los enunciados que se
presentan de forma correcta. Tenga en cuenta que como Smbolo inicial se toma a S
que son los estados iniciales y como smbolos no terminales los estados en el orden de su
nombramiento. El conjunto finito de smbolos terminales son los smbolos del alfabeto
del autmata.
169
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:
170
S xABy
S xAyzy | xAy
A xzS | B
A xzS | yz |
B yz |
Gramtica G 1
Gramtica G 2
171
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}
172
173
y
x
x
y
Ejercicio 38: Un problema de decisin (PD) es aquel formulado por una pregunta
(referida a alguna propiedad) que requiere una respuesta de tipo si/no. Para la Teora
de Lenguajes, un problema de decisin es insoluble cuando:
1. Si no existe un procedimiento efectivo para determinar si la propiedad es
verdadera (no existe una Mquina de Turing MT).
2. Si no se representa con una Tabla de transiciones el problema.
3. Si no existe un algoritmo total para determinar si la propiedad y objetivo del
problema es verdadera.
4. Si no se representa con un diagrama de Moore el problema.
Ejercicio 39: Dada la siguiente Mquina de Turing (MT), determine que afirmaciones son
vlidas para su anlisis:
174
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
0*+1*(01)
10* + 10
01* + 0
(1.11*0) *
(1 + 10) + 0
1* 0*10
00* 11*
176
h) (0+1)*11(1+0)*
Desarrollo de ejercicio 42
CANAL
http://youtu.be/sW-Lx9p1xfc
finito
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.
180
DESCRIPCIN DE VIDEO
CANAL
http://youtu.be/eWkTdnDtiKo
181
Tabla 25: Clculo de un dato de entrada a partir de un dato codificado con error.
DESCRIPCIN DE VIDEO
CANAL
http://youtu.be/6N5bsYNGUNw
finito.
(Ntese que hay interacciones con smbolo vaco, diferente a cadena vaca)
PARTE 1
1. Exprese el autmata en notacin matemtica. Identifique que tipo de
autmata es (AFD o AFND) y justifique su respuesta. (No se trata de dar el
concepto de determinismo)
2. Identifique los elementos (tupla que es). Debe explicar y describir cada
elemento y la funcin y significado en el autmata. Conceptos y
definiciones adicionales.
3. Identifique el lenguaje que genera.
4. Muestre en el simulador (grficamente) como recorre una cadena vlida.
Explique cada secuencia.
5. Muestre el diagrama de Moore generado en JFLAp y en VAS y comente
que similitudes o diferencias encuentra al realizarlo en los dos simuladores.
(herramientas que ofrezca uno u otro).
PARTE 2: Para cada una de las Expresiones Regulares siguientes (ER) realice:
184
(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
185
BIBLIOGRAFIA
RODRIGUEZ COSTA Sergio, (1996,2009). Las Mquinas de Turing. Extrado el
19 Febrero de 2009 desde http://www.rastersoft.com/articulo/turing.html
BOVET JEAN, (2004, 2006) Visual Autmata Simulator. Extrado el 25 de
Marzo de 2011 desde http://www.automatas.org/
JFLAP, (2004, 2008) JFLAP Version 7.0 Release August 28, 2009. Extrado
el 30 de Mayo de 2011 desde http://www.jflap.org/
PROYECTO SEPA, Software para la enseanza de Parsing. (n.d.). Extrado el
18 de Marzo de 2011 desde http://www.ucse.edu.ar/fma/sepa/
MORAL. SERAFIN, Teora de Autmatas y lenguajes Formales. (n.d.).
Extrado el 2 de Noviembre de 2010 desde
http://decsai.ugr.es/~smc/docencia/mci/automata.pdf
Cuevas, O, (1999, 2001), Teora de Autmatas y Lenguajes Formales.
Segunda Edicin, Espaa 2001. Facultad de ingeniera, Ciencias y
Administracin. Universidad de la Frontera.
Alfonseca, J; Sancho, M (1990), Teora de Lenguajes, Gramticas y
Autmatas. Segunda Edicin, Espaa 2001. Ediciones universidad y Cultura
Isasi, P, (1997), Lenguajes, gramticas y autmatas. Un Enfoque prctico.
Segunda Edicin, Espaa 2004. Addison- Wesley.
Hopcroft, J, (2002), Introduccin a la Teora de Autmatas y lenguajes de
Computacin.
Segunda
Edicin,
Espaa
2002.
Addison
Wesley
Iberoamericana
Kelley, D, (1995), Teora de autmatas y Lenguajes Formales. Prentice
Hall
Brokshear, J; (1993), Teora de la computacin, Lenguajes Formales,
Autmatas y complejidad. Primera Edicin, Mxico 1993. Ediciones AddisonWesley Iberoamericana.
John, M; (2004), Lenguajes formales y teora de la computacin. Tercera
Edicin, Mxico 2004. Ediciones Mc Graw Hill.
186
Lenguajes.
Un
enfoque
en
diseo.
187