5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
INSTITUTO TECNOLOGICO DE DURANGO
DEPARTAMENTO DE SISTEMAS Y COMPUTACION
ANTOLOGIA PARA LA MATERIA DE TEORIA DE LA COMPUTACION (Ingeniería en Sistemas Computacionales)
I.S.C Elda Rivera Saucedo
AGOSTO-DICIEMBRE 2008
____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
1
1/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
I introducción 1.1 Autómatas, computabilidad y complejidad. 1.21.2.1 Nociones matemáticas. Conjuntos 1.2.2 Funciones y Relaciones 1.2.3 Cadenas y Lenguajes 1.3 Inducción matemática. 1.1 Autómatas, computabilidad y complejidad.
Un autómata es: • Una maquina (mecanismo) de naturaleza formal (solo existe como un mecanismo
• matemático) Que acepta una información de entrada (input), • La procesa (La somete a transformaciones simbólicas que pueden adoptar la forma de un calculo o computación ) • y genera un resultado o salida (output) Definir un autómata equivaldría a definir el proceso de transformación del input en un output, lo que equivale a definir una función cuyos argumentos son el input y cuyo valor es el output TIPOS DE AUTOMATAS(1) Hay muchos tipos de autómatas, cada tipo de autómata se asocia a una potencia computacional determinada, es decir a una capacidad dada de resolución de problemas, de hecho, podemos clasificar los problemas algorítmicamente solubles asociándolos al tipo de autómata que resuelve, estos tipos se ordenan en jerarquía de menor a mayor potencial computacional • Jerarquía de autómatas: Autómatas finitos (Redes Lógicas) Autómatas intermedios: Autómatas de memoria de pila Autómatas de memoria linealmente limitada Maquinas de Turing TIPOS DE AUTOMATAS (2) • Además, podemos clasificar los autómatas: Por el tipo de proceso que ejecutan Aceptación o reconocimiento Generación Por su tipo de causalidad: Determinista ____________________________________________________________________ 2 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
2/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación No – Determinista Por el tipo de su almacenamiento de información: De tamaño fijo De tamaño creciente De tamaño infinito Por elDiscreta tipo de la información que manejan Continua
TIPOS DE AUTOMATAS (3)
• Autómatas aceptadores o reconocedores: Resuelven problemas con respuestas si- no que se modeliza normalmente como la identificación de dos estados finales uno de aceptación y otro de rechazo. • Autómatas generadores o transductores: Construyen una respuesta específica (una salida) para el problema planteado • Autómatas determinista: La solución del problema viene unívocamente determinada por las entradas y los estados internos del autómata • Autómatas no-deterministas: La respuesta no esta unívocamente determinada
1.1 NOCIONES MATEMÁTICAS 1.1 CONJUNTOS Un conjunto es una colección de objetos llamados elementos del conjunto. Si A es un conjunto y a es un elemento de A utilizaremos la notación a ∈ A (se lee “a es un elemento de A”). Se usa la notación b ∉ A cuando b no es un elemento de A. Si A contiene exactamente los elementos a1, a2, . . . . ., an, lo indicamos escribiendo A={a1,a2, . . . . ., an}. Un conjunto solo se caracteriza por sus elementos y no por el orden en el cual se listan. ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
3
3/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación Los conjuntos A y B son iguales si contienen los mismos elementos. Por lo tanto si, A={1,2,3} y B={2,1,3} se puede escribir que A=B. Algunas veces es conveniente describir el contenido de un conjunto en términos de un propiedad seanotación característica de todos elementoscomo del conjunto. Sea P(x) una proposición sobreque x. La {xP(x)}, que los se interpreta “ el conjunto de todas las x tales que P(x) ”, denota el conjunto de todos los x para los cuales P(x) es una proposición verdadera. (Todas las x tienen la propiedad P). Notación de Conjuntos P = { x | P(x)}. See lee “x tal que P(x) es verdadero”. A= { x | x es una letra del alfabeto}. A= { a, b, c, d, e, . . . . . . . . . z}. Los conjuntos se representan de dos formas: Por extensión → A={a, b, c, d, e, f, g, h, i, j, k, l, m, n, ñ, o, p, q, r, s, . . . . . . . . . . . . } Por comprensión → A={x | x es una letra del alfabeto} Conjunto Finito A={a, b, c, d, e, f, g, h, i, j, k, l, m, n, ñ, o, p, q, r, s, t, u, w, x, y, z } Conjunto Infinito B={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, . . . . . . . . . . . . . . . . . . . . }
1.2 OPERACIONES CON CONJUNTOS Las operaciones habituales que se definen sobre los conjuntos son: El conjunto 0 llamado conjunto vacío o nulo, no tiene elementos. El conjunto vació es un subconjunto de todos los conjuntos. ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
4
4/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación La unión de conjuntos A y B se denota por A ∪ B y es un conjunto formado por los elementos que aparecen en A, en B o en ambos. Por lo tanto A ∪ B={xx ∈ A o x ∈ B}. Por ejemplo, si A={1,2,3} y B={a,b}, entonces A ∪ B={1,2,3,a,b}. La intersección de A y B es el conjunto de todos los elementos que aparecen simultáneamente en A y también en B. Por lo tanto A ∩ B={xx ∈ A y x ∈ B}. Por ejemplo, si A={1,4,5,7} y B={2,4,7,8}, entonces A ∩ B={4,7}. El complemento relativo si Ay B son dos conjuntos cualesquiera, el complemento de B con respecto a A es el conjunto: A-B={ xx ∈ A y x ∈ B}. Por lo tanto, A-B esta compuesto por todos los elementos de A que no están también, en B. Por ejemplo, si A={0,2,4,6,8,10} y B={0,1,2,3,4}, entonces AB=[6.8.10}, mientras que B-A={1,3}. A2 , el conjunto de potencia de A, es el conjunto formado por todos los subconjuntos de A. A Por ejemplo, si A={a,b,c}. Entonces 2 ={ o, {a}, {b}, {c}, {a,b}, {a,c}, {b,c}, {a,b,c}}. Dados dos conjuntos A y B, su producto cartesiano, AxB, es el conjunto de todos los pares ordenados de los que el primer elemento proviene de A y el segundo de B. Así que, AxB={(a,b) a∈A y b∈B}. Por ejemplo, si A={1,2,3} y B{5,6} entonces: AxB={(1,5), (2,5), (3,5), (1,6), (2,6), (3,6)}. Si A y B son conjuntos y todos los elementos de A son también elementos de B, se escribe A ⊆ B y se dice que A es un subconjunto de B. Por ejemplo A={1,2,3} y B={0,1,2,3,4,5}, se tiene A ⊆ B. Por otro lado B no es un subconjunto de A, porque los elementos 0,4 y 5 de B no lo son de A. Ejemplo: C ={Frutas} S = {frutas cítricas} S ⊆ C <=>=Y x| x ∈ S = >X ∈ C Se lee: S es un subconjunto de C o S esta incluido en C si para todo x (=Y x). Tal que x pertenece al subconjunto de S, implica que x pertenece al conjunto C. ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
5
5/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
La inclusión cuando cualquier elemento de A que este en B, o cualquier elemento de B que este en A, o que sean iguales. Por ejemplo si A={2,4,5,7,8} y B={2,4}, entonces B ⊂ A={2,4}. cardinalidad de un| conjunto es cardinalidad el numero dedel elementos ese conjunto. Por ejemploLa si A={a,b} entonces A | = 2. la conjuntode vació es 0 porque no tiene ningún elemento. Todos los conjuntos aquí tratados se consideran subconjuntos de un conjunto universal U. Los complementos pueden ser formados con respecto a este conjunto universal. Si A es un conjunto, entonces U-A es el conjunto de todos los elementos que no están en A. Conviene denotar tales complementos mediante A, de forma que U-A=A. Obsérvese que 0=U y U=0. 1.3 ALFABETOS ( ∑ ) Un alfabeto es un conjunto no vació y finito de símbolos. En el caso del alfabeto ingles, la colección definida es el conjunto de las letras del alfabeto junto con los símbolos que se usan para construir palabras en ingles (tales como el guión, el apostrofe y otros por el estilo). Cada símbolo de un alfabeto es una cadena sobre dicho alfabeto. La cadena vacía, la cual se denota por el símbolo ∑, es una palabra sobre cualquier alfabeto.
1.4 PROPIEDADES DE LAS CADENAS O “STRINGS” Una cadena (o palabra) es una secuencia finita de símbolo. Por ejemplo: a, b y c son símbolos y abcd es una cadena. 1.4.1 Cadena Vacía La cadena vacía, denotada por ∑, es la cadena que consiste en cero símbolos. Por tanto, tiene longitud |∑ | = 0. 1.4.2 Longitud Si w es una cadena sobre cualquier alfabeto, su longitud se denota como | w | . La longitud de w es el número de símbolos que tiene la cadena. Por ejemplo: abcd tiene longitud | w | = 4. ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
6
6/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
1.4.3 Concatenación La concatenación de dos cadenas es la cadena que se forma al escribir la primera seguida de la segunda, sin que haya espacio entre ellas. Por ejemplo: si w=“banana” z=”rama”, la w concatenación w con es la cadena “bananarama”. La concatenaciónyde las cadenas y z se denotade como wz oz w.z. La cadena vacía es la identidad para el operador de concatenación. Es decir, ∑ = w |∑|= z x=∑ para cada cadena x=casa z=vacio w = roja . Xzw = casa roja xw = casaroja
1.4.4 Potencia La noción de potencia de una cadena sobre un alfabeto es dada por la notación w que denota la concatenación de k copias de la cadena w. k
Por tanto, si W=122 sobre el alfabeto ∑={1,2}, se tiene: 0 W = ∑
1W = 122 2 W = 122122 3 W = 122122122
1.4.5 Igualdad de Cadenas Si w y z con cadenas, se dice que w es igual a z, si tienen la misma longitud y los mismos símbolos en la misma posición. Se denota mediante w = z. 1.4.6 Prefijo Los prefijos de un cadena esta formados por los primeros símbolos de esta. Por ejemplo, la cadena 121 sus prefijos son: ∑, 1, 12, y 121 con lo que toda palabra puede considerarse prefijo de si misma. Un prefijo de una cadena que no sea la misma cadena es u prefijo propio. 1.4.7 Sufijo ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
7
7/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación Los sufijos de una cadena están formados por los últimos símbolos de esta. Por ejemplo, la cadena abc sus sufijos son: ∑, c, bc, abc. Un sufijo de una cadena que no sea la misma cadena es un sufijo propio. 1.4.8 Subcadena. Una las cadena w zes=una subcadena o subpalabra de otra cadena z si existen las cadena x e y para cuales xwy. 1.4.9 Transpuestas La inversa o transpuesta de una cadena w es la imagen refleja de w. Por ejemplo, si w = “able” entonces su inversa es “elba”. Para denotar la inversa de w se usa w`.
EJERCICIOS DE CONJUNTOs
A={1,2,3}
B={4,5,6,3}
A ∪ B ={1,2,3,4,5,6} A ∩ B = {3} B – A = {4,5,6} A – B = {1,2} A 3 2 = 2 = 8 ∴ {0}, {1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3} B 4 2 = 2 = 16 ∴ {0}, {4}, {5}, {6}, {3}, {4,5}, {4,6}, {4,3}, {5,6}, {5,3}, {6,3}, {4,5,6},
{4,5,3}, {5,6,3}, {4,6,3}, {4,5,6,3}
____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
8
8/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
Producto Cartesiano
(1,4), (1,5), (1,6), (1,3), A x B = (2,4), (2,5), (2,6), (2,3), (2,4), (3,5), (3,6), (3,3) (3,4), (3,5), (3,6), (3,3) (4, 1), (4,2), (4,3) B x A= (5,1), (5,2), (5,3) (6,1), (6,2), (6,3) (3,1), (3,2), (3,3) Cardinalidad | A| =3
| B| =4
Ejercicios de Cadena
Z = {8532}
| Z| =4
Y= {Galeria}
| Y| =7
W= {Politica}
| W| =8
Ejercicio: Potencia ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
9
9/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación C={15} 0 C = ∑ 1 C = 15
V={Hola} 0 V =∑ 1 V = Hola
2C 3 C
2 = HolaHola V 3 V = HolaHolaHola
= 1515 = 151515
Ejercicio: Prefijos y Sufijos W= 475
R= López
C =@$&
Prefijos W=∑, 4, 47, 475 R=∑, l, lo, lop, lope, lopez L=∑, @, @$, @$% Sufijos W=∑ , 5, 75, 475 R=∑ , z, ez, pez, opez, lopez L=∑ , &, $&, @$% Ejercicion: Longitud Z= 8532 =4
y= galeria =7
w =política =8
Ejercicio: Concatenación 8532galeria2y galeriapoliticayv 8532politica2w galeria8532yz politicagaleriawy politica8532wz Ejercicio: Transpuesta ____________________________________________________________________ 10 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
10/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación A= “anita”
A´ = “atina”
B= “roma”
B´ = “amor”
* → Esdeel ∑conjunto de todas las palabras que pueden ser construidas con letras o ∑ símbolos
∑+ → Es el conjunto de todas las palabras No vacías que pueden ser construidas por ∑. Por ejemplo: Decimos que un lenguaje es denotado por ∑* para el alfabeto ∑= {0,1,2}
II Lenguajes Regulares 2.1 Expresiones regulares. 2.2 Lenguajes no regulares. 2.3 Autómatas finitos 2.3.1 Autómatas finitos No determinísticos. 2.3.2 Autómatas finitos determínisticos 2.3.2.1 Autómatas finitos no determinísticos con movimiento ε (afn- ε ). 2.3.2.2 Conversión de un afn a un afd 2.1 EXPRESIONES REGULARES Definición: Es un metodo de representación para cadenas de caracteres validas en un lenguaje. Una expresión regular, a menudo llamada también patrón, es una expresión que describe un conjunto de cadenas sin enumerar sus elementos. Por ejemplo, el grupo formado por las cadenas Handel, Händel y Haendel se describe mediante el patrón "H(a|ä|ae)ndel". La mayoría de las formalizaciones proporcionan los siguientes constructores: una expresión regular es una forma de representar a los lenguajes regulares (finitos o infinitos) y se construye utilizando caracteres del alfabeto sobre el cual se define el lenguaje. Específicamente, las expresiones regulares se construyen utilizando los operadores unión concatenación y clausura de Kleene.
____________________________________________________________________ 11 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
11/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación Terminología.
| Alternación Una barra vertical separa las alternativas. Por ejemplo, "marrón|castaño" casa con marrón o castaño. Cuantificación: Un cuantificador tras un carácter especifica la frecuencia con la que éste puede ocurrir. Los cuantificadores más comunes son +, ? y *: + Mas El signo más indica que el carácter al que sigue debe aparecer al menos una vez. Por ejemplo, "ho+la" describe el conjunto infinito hola, hoola, hooola, hoooola, etcétera. ? Interrogación El signo de interrogación indica que el carácter al que sigue puede aparecer como mucho una vez. Por ejemplo, "ob?scuro" casa con oscuro y obscuro. * Asterisco El asterisco indica que el carácter al que sigue puede aparecer cero, una, o más veces. Por ejemplo, "0*42" casa con 42, 042, 0042, 00042, etcétera. Agrupación: ( ) Paréntesis () Los paréntesis pueden usarse para definir una concatenación con los demás operadores. Por ejemplo, "(p|m)adre" es lo mismo que "padre| madre", y "(des)?amor" casa con amor y con desamor. [ ] Corchetes Los corchetes se utilizan como opcion Por ejemplo: a[b]c, que forma las cadenas abc o ac. Los constructores pueden combinarse libremente dentro de la misma expresión, por lo que "H(ae?|ä)ndel" equivale a "H(a|ae|ä)ndel". La sintaxis precisa de las expresiones regulares cambia según las herramientas y aplicaciones consideradas, y se describe con más detalle a continuación. Su utilidad más obvia es la de describir un conjunto de cadenas, lo que resulta de utilidad en editores de texto y aplicaciones para buscar y manipular textos. Muchos lenguajes de programación admiten el uso de expresiones regulares con este fin. Por ejemplo, Perl tiene un potente motor de expresiones regulares directamente incluido en su sintaxis. Las herramientas proporcionadas por las distribuciones de Unix (incluyendo el editor sed y el filtro grep) fueron las primeras en popularizar el concepto de expresión regular.
____________________________________________________________________ 12 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
12/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación Características de las expresiones regulares.
1.- Proporciona una notación clara y concisa para componentes léxicos. 2.- Puede construir automáticamente analizadores léxicos eficientes a partir de expresiones regulares. 3.Útiles representar las constantes estructurasyde construcciones o componentes léxicos depara los identificadores, laslas palabras reservadas. Ejemplos de autómatas con sus expresiones regulares: La siguiente Expresión regular forma enteros, reales y reales con notación científica. d+[. d+[ E(+ | -) dd] ] la “d” representa digito. Algunas cadenas formadas por la expresión son: 33 , 234.34 , 34.34E+02. El siguiente autómata representa la expresión regular anterior
d
d q0
d
q1
.
q2
d
q3
0
b
E
q4
+, -
q5
d
q6
d
b 100
q7 b
200
100
Entero
200
Real
300
Real con Notación Científica
300
____________________________________________________________________ 13 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
13/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
El lenguaje del siguiente autómata, esta formado por cualquier cadena de 1’s, incluyendo ε . 1 q0 La expresión regular del autómata es: 1*
El lenguaje del siguiente autómata esta formado por todas las cadenas de a’s de longitud par, incluyendo ε . a q0
q1 a
La expresión regular del autómata es: (aa)* El lenguaje del siguiente autómata esta formado por cadenas de cero ó más a’s seguidas de cero ó más b’s. a
b b
q0
q1
____________________________________________________________________ 14 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
14/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
La expresión regular del autómata es: a*b*.
b q1
a a
q
a
0
b b
q2
La expresión regular del autómata es (a(a|b)+ | b+[ a(b+ | a(a|b)+)]) Existen muchas equivalencias con respecto a expresiones regulares basadas en las correspondientes igualdades de lenguajes. Por ejemplo: 1. a[ b]+ = a(b)* 2. x ( y+| z+) = ( x y+ | x z+) 3. (r*)* = r*
2.2LENGUAJES NO REGULARES Lenguaje regular
Un lenguaje regular es un tipo de lenguaje formal que satisface las siguientes propiedades:
____________________________________________________________________ 15 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
15/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
Puede ser reconocido por:
• un autómata finito determinista • un autómata finito no determinista autómata finito alterno •• un una máquina de Turing de solo lectura
Es generado por:
• una gramática regular • una gramática de prefijos Es descrito por:
• una expresión regular Lenguajes regulares sobre un alfabeto
Un lenguaje recursivo sobre un alfabeto Σ dado se define recursivamente como:
• El lenguaje vacío es un lenguaje regular • El lenguaje cadena vacía {ε} es un lenguaje regular • Para todo símbolo a ∈ Σ {a} es un lenguaje regular Si A y B son lenguajes regulares entonces A ∪ B (unión), A•B (concatenación) y A* (clausura o estrella de Kleene) son lenguajes regulares Si A es un lenguaje regular entonces (A) es el mismo lenguaje regular No existen más lenguajes regulares sobre Σ Todo lenguaje formal finito constituye un lenguaje regular. Otros ejemplos típicos son o todas las cadenas sobre elen alfabeto que contienen un número par de aes el lenguaje que consiste varias {a, aesb}seguidas de varias bes. Si un lenguaje no es regular requiere una máquina con al menos una complejidad de Ω(log log n) (donde n es el tamaño de la entrada). En la práctica la mayoría de los problemas no regulares son resueltos con una complejidad logarítmica.
____________________________________________________________________ 16 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
16/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación Un lenguaje formal infinito puede ser regular o no regular. El lenguaje L = {an, n > 0} es regular porque puede ser representado, por ejemplo, mediante la expresión regular a+. El lenguaje L= {an bn, n > 0} es un lenguaje no regular dado que no es reconocido por ninguna de las formas de representación anteriormente enumeradas.
Propiedades de cierre
Los regulares sonregulares cerradoslos con las siguientes operaciones, modo que lenguajes si L y P son lenguajes siguientes lenguajes también de serán regulares:
• • • • • • • •
El complemento de L La clausura o estrella de Kleene L* de L El homomorfismo φ(L) de L La concatenación L'P de L y P La unión L ∪ P de L y P La intersección L ∩ P de L y P La diferencia L \ P de L y P El reverso LR de L
Decidir cuándo un lenguaje es regular
Para situar los lenguajes regulares en la jerarquía de Chomsky hay que notar que todo lenguaje regular es también un lenguaje independiente de contexto, aunque la afirmación contraria no es cierta, por ejemplo: el lenguaje que contiene el mismo número de aes y de bes es independiente de contexto pero no regular. Para probar que un lenguaje de este tipo no es regular se usa el teorema de Myhill-Nerode, o el lema de bombeo por ejemplo. Hay dos aproximaciones puramente algebraicas para definir lenguajes regulares. Si Σ es un alfabeto finito y Σ* es un monoide libre consistente en todas las cadenas sobre Σ, f: Σ* → M es un monoide simétrico donde M es un monoide finito y S es un subconjunto de M entonces el conjunto f-1(S) es regular. Todo lenguaje regular se presenta de esta manera.
____________________________________________________________________ 17 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
17/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación Si L es un subconjunto de Σ*, se define la relación equivalente ~ en Σ* de la siguiente manera: u ~ v significa uw ∈ L si y solo si vw ∈ L para todo w ∈ Σ* El lenguaje es el regular y solo si el es número clases de finito; si esteL es caso, si este número igual de al número de equivalencia estados del de ~ es autómata determinista mínimo que reconocerá L. Lenguajes finitos
Un subconjunto especial de los lenguajes regulares es el de los lenguajes finitos, aquellos que solo contienen un número finito de palabras. Estos son lenguajes obviamente regulares y uno podría crear expresiones regulares que serían la unión de todas las palabras del lenguaje que definirían dicho lenguaje.
2.3 Autómatas finitos El termino maquina evoca algo hecho en metal, usualmente ruidoso y grasoso, que ejecuta tareas repetitivas que requieren de mucha fuerza o velocidad o precisión. Ejemplos de estas máquinas son las embotelladoras automáticas de refrescos. Su diseño requiere de conocimientos en mecánica, resistencia de materiales, y hasta dinámica de fluidos. Al diseñar tal máquina, el plano en que se le dibuja hace abstracción de algunos detalles presentes en la máquina real, tales como el color con que se pinta, o las imperfecciones en la soldadura. El plano de diseño mecánico de una máquina es una abstracción de ésta, que es paramodelar representar su forma física. Sin embargo, hay otro enfoque con que se útil puede la máquina embotelladora: cómo funciona, en el sentido de saber qué secuencia de operaciones ejecuta. Así, la parte que introduce el liquido pasa por un ciclo repetitivo en que primero introduce un tubo en la botella, luego descarga el lıquido, y finalmente sale el tubo para permitir la colocación de la cápsula (“corcholata”). El orden en que se efectúa este ciclo es crucial, pues si se descarga el líquido antes de haber introducido el tubo en la botella, el resultado no será satisfactorio. El modelado de una máquina en lo relacionado con secuencias o ciclos de acciones se aproxima mas al enfoque que adoptaremos en este tema. Las máquinas que estudiaremos son abstracciones matemáticas que capturan solamente el aspecto referente a las secuencias eventos queniocurren, tomar en cuenta ni la forma de la máquina ni sus de dimensiones, tampocosin si efectúa movimientos rectos o curvos, etc. En esta parte estudiaremos las máquinas abstractas mas simples, los autómatas finitos, las cuales están en relación con los lenguajes regulares, como veremos a continuación.
____________________________________________________________________ 18 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
18/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
Descripción informal del Funcionamiento de los autómatas finitos Se le llama autómata finito, por que nos lleva a un termino o a un fin y nos sirve para representar un flujo de información o un estimulo, para formar cadenas pertenecientes a un lenguaje. Un lenguaje es el conjunto de cadenas aceptadas por un autómata. un Lenguaje no esta asociado a unmuchos único autómata. Es mas ,Sin a unembargo mismo lenguaje le podemos asociar siempre autómatas que reconocen las cadenas en el.
Flujo de información q0
o Estimulo
Estado inicial
q1 Estado final
Nota: Los estados representados por dos círculos indican estados de aceptación
El funcionamiento de los autómatas finitos consiste en ir pasando de un estado a otro, a medida que va recibiendo los caracteres de la palabra de entrada. Este proceso puede ser seguido fácilmente en los diagramas de estados. Simplemente hay que pasar de estado a estado siguiendo las flechas de las transiciones, para cada carácter de la palabra de entrada, empezando por el estado inicial. Por ejemplo, supóngase que tenemos el autómata de la figura A la palabra de entrada “bb”. El autómata inicia su operación en el estado q0 que es el estado inicia y al recibir la primera b pasa al estado q2, pues en el diagrama hay una flecha de q0 a q2 con la letra b. Luego, al recibir la segunda b de la palabra de entrada, pasaría del estado q2 a el mismo, pues en la figura se puede ver una flecha que de q2 regresa al mismo estado, con la letra b. Podemos visualizar el camino recorrido en el diagrama de estados como una “trayectoria” recorrida de estado en estado. Por ejemplo, para el autómata finito de la figura A la trayectoria seguida para la palabra ab consiste en la secuencia de estados: q0, q1, q1. Los estados el único de que los AFejemplo, (Autómatas Finitos) parason recordar losmedio eventos que disponen ocurren (por qué caracteres se han leído hasta el momento); esto quiere decir que son maquinas de memoria limitada. En última instancia, las computadoras digitales son máquinas de memoria limitada, aunque la cantidad de estados posibles de su memoria podría ser enorme.
____________________________________________________________________ 19 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
19/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
b q1
a
a
q
a
0
b b
q2
Fig. A Notación Grafica
Definición: Un Automata es: • Una maquina (mecanismo) de naturaleza formal (solo existe como un mecanismo matemático ) • Que acepta una información de entrada (input), • La procesa (La somete a transformaciones simbólicas que pueden adoptar la forma de un calculo o computación ) • y genera un resultado o salida (output) Definir un autómata equivaldría a definir el proceso de transformación del input en un output, lo que equivale a definir una función cuyos argumentos son el input y cuyo valor es el output. Definición:
Un autómata finito es un modelo matemático formado por un quíntuplo (Q, Σ , δ , q0, F) donde: Q es un conjunto finito de estados. Σ un alfabeto de entrada finito.
____________________________________________________________________ 20 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
20/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación q0 elemento de Q , el estado inicial. F⊆ Q el conjunto de estados finales o de aceptación. δ es la función δ : Q x Σ → Q que determina el único estado siguiente
para el par (q1, σ ) correspondiente al estado actual q1 y la entrada σ .
2.3.1 AUTÓMATAS FINITOS DETERMINÍSTICOS (AFD). 1. 2. 3. 4.
Las características de los autómatas finitos determinísticos son: Un conjunto finito de estados y un conjunto de transiciones de estado a estado, que se dan sobre símbolos de entrada tomados de un alfabeto Σ . Para cada símbolo de entrada existe exactamente una transición a partir de cada estado (posiblemente de regreso al mismo estado). Un estado, por lo general denotado como q 0 es el estado inicial, en el que el autómata comienza. Algunos estados (tal vez ninguno) están designados como final o de aceptación.
5. Un autómata finito determinístico es un quintuplo (Q, Σ , δ , q0, F) donde: Q es un conjunto finito de estados. Σ un alfabeto de entrada finito. q0 elemento de Q , el estado inicial. F⊆ Q el conjunto de estados finales o de aceptación. δ es la función δ : Q x Σ → Q que determina el único estado siguiente
para el par (q1, σ ) correspondiente al estado actual q1 y la entrada σ .
Generalmente el término autómata finito determinístico se abrevia como DFA de sus siglas en inglés Deterministic Finite Automaton. Usaremos M = (Q, Σ , q 0, F, δ ) para indicar el conjunto de estados, el alfabeto, el estado inicial, el conjunto de estados finales y la función asociadas con la M (maquina o autómata del AFD. Se )puede construir un diagrama para que ayude a determinar los distintos miembros o cadenas del lenguaje. Tal diagrama tiene la forma de un grafo dirigido con información añadida, y se llama diagrama de transición. Los nodos del grafo corresponden a los estados del AFD y se usan para señalar, en ese momento, hasta qué lugar se analizó la cadena. Por lo general q 0 es el estado inicial, marcando con una flecha (→), el comienzo del autómata; algunos estados están designados como final o aceptación indicados por un doble círculo. Los
____________________________________________________________________ 21 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
21/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación símbolos del alfabeto son las etiquetas de los arcos del grafo. Si cuando ha sido tratada la cadena en su totalidad se termina en un estado de aceptación entonces la cadena es aceptada por el lenguaje. Si M es un AFD, entonces el lenguaje aceptado por M es L(M)={w ∈ Σ *w es aceptada por M}. Por tanto, L(M) es el conjunto de cadenas que hacen que M pase de su estado inicial a un estado de aceptación. Un AFD es un caso especial de un autómata finito no deterministico (AFND) en el cual: 1.- Ningún estado tiene una transición vació 2.- Para cada estado q y cada símbolo de entrada a, hay a lo sumo una arista etiquetada con a que sale del estado q Un AFD tiene una transición desde cada estado con cualquier entrada. Si se esta usando una tabla de transiciones para representar la función de transición de un AFD entonces cada entrada en la tabla de transiciones es un solo estado . Como consecuencia es muy fácil determinar si un autómata finito determinista acepta o no una cadena de entrada puesto que hay un camino desde el estado de inicio con esa cadena .
Ejemplo 1: El lenguaje que acepta el AFD esta formado por todas las cadenas sobre el alfabeto Σ = {a, b}, siempre y cuando terminen con a. Q = {q0, q 1}, Σ = {a, b}, q0 = q 0 , F = {q1} y δ se define mediante la tabla de la figura 1.1 ( Tabla de transiciones o Matriz de Transición ). Matriz de Transición o Tabla de Transiciones : Es una matriz bidimensional (Q \ ∑ )= δ en donde del lado de las columnas esta el alfabeto de entrada y los reglones representan los estados del autómata Nos sirve para representar las transiciones en el autómata. δ
a
b
q0
q1
q0
q1
q1
q0
Q3
Figura 1.1.
Diagrama de Transición (Autómata). b
a
a
____________________________________________________________________ 22 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
22/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación q0
q1 b
Ejemplo 2 : El lenguaje que acepta el AFD esta formado por todas las cadenas sobre el alfabeto Σ = {a, b}. En donde: Q = {q0, q1, q2}, Σ = {a, b}, q0 = q0 , F = {q1, q2} y δ se define mediante la tabla de la figura 2.1 ( Tabla de transiciones o Matriz de Transición ) o bien para una cadena en especifico como seria la cadena “abb” δ = para la cadena abb δ q0,a = { q1 } δ q1,b = { q1} δ q1,b = { q1} cadena aceptada, ya que el estado 1 es de aceptación .
b q1
a a q
a
0
b b
q2
δ q0
A
B
q1
q2
q1
q1
q1
q2
q0
q2
Figura. 2
____________________________________________________________________ 23 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
23/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
Ejemplo 3: El AFD M = {Q, Σ , q 0, F, δ } acepta el lenguaje L(M) = {w ∈ {a, b}* que no contiene tres b’s consecutivas} y esta representada por: 0 1 2 3 Q={q Σ ={a,, qb}, q , q } q0=q0 F={q0, q1, q2} y δ dada por la tabla de la figura 3.1.
δ
a
b
q0
q0
q1
q1
q0
q2
q2 q3
q0 q3
q3 q3
Q3
Figura 3.1. El diagrama de transición correspondiente se muestra en la figura 3.2. a
a, b b
q0
b q1
b q2
q3
a
____________________________________________________________________ 24 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
24/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación a Figura 3.2
Ejemplo 4 : El lenguaje que acepta el AFD esta formado por todos los números tales como enteros, reales, y reales con notación científica sobre alfabeto Σ = {d(representa un digito), . , E, +,- }. En donde se utiliza el blanco como delimitador entre un numero y otro al momento de analizar En donde: Q = {q0, q1, q2, q3, q4, q5, q6, q7 } Σ = {d, . , E, +,- } q0= q0 F = {200,300,400} δ se define mediante la tabla de la figura 4.1
d
d q0
d
q1
.
q2
d
q3
E
q4
+, -
q5
0
b
d
q6
d
b 100
b 200
100
Entero ( ejem. 31416 )
200 300
Real (ejem. 3.14 ) Real con Notación Científica (ejem. 3.1416E-03)
300
b : es un Delimitador (blanco) el cual nos indica hasta donde analizar la cadena. Ejemplo: Cuando escribimos una carta, para separar entre una palabra y otra , utilizamos el espacio en blanco, igual en nuestro lenguaje podemos separar entre una cadena de caracteres y otra por medio de un ____________________________________________________________________ blanco para así especificar hasta donde se analizaran nuestras 25 _ cadenas, igual podría ser una tabulador o un enter, etc. en el diseño de I.S.C. Elda Rivera Saucedo nuestro lenguaje nosotros especificamos cual será nuestro delimitador
http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
q7
25/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
Nota: 3.14 es una cadena de caracteres la cual forma un Entero
Definición : Token: A una secuencia de caracteres que tiene un significado colectivo se le conoce con el nombre de Token. Es el resultado final de analizar una cadena de caracteres dentro de un lenguaje a la cual se le asigna un nombre. Es el resultado generado por el Analizador Léxico para un determinado lenguaje el cual definirá cuando se ha llegado a un estado de terminación valido o incorrecto. Definición: Analizador Léxico Llamado también análisis lineal, es el proceso de exploración en el cual la cadena de caracteres que constituye el programa fuente se lee de izquierda a derecha y se agrupa en componentes léxicos .
Q\∑ 0
d 1
12 3 4 5 6 7
13 3 error
6 7 error
.
E
+
-
blanco
error
error
error
Error
error
2 error error error error error error
error error
error error error
Error Error error
100 error
5
5
error error error
4 error error error error
error error error
error error error
200
300
Nota: Los estados 100,200,300 son los estados de Aceptación
Figura 4.1
____________________________________________________________________ 26 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
26/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
2.3.2 AUTÓMATAS FINITOS NO DETERMINISTICOS (AFN)
Definición: Un AFN se puede representar diagramáticamente mediante un grafo de transiciones en el que los nodos son los estados y las aristas etiquetadas representan la función de transición. Este grafo se parece a un diagrama de transiciones que para el mismo carácter puede etiquetar 2 o mas transiciones fuera de un estado y las aristas pueden etiquetarse con el símbolo especial vació (ε o λ) y con símbolos de entrada.
Definición: Un autómata finito no determinístico es un quintuplo ( Q, Σ , q0, δ , F) en donde Q, Σ , q0 y F (estados, entradas, estado inicial y estados finales) poseen el mismo significado que para un AFD, pero en este caso δ es una transformación de Q x Σ a 2 Q. (Recuérdese que 2Q es el conjunto de potencias de Q, el conjunto de todos los subconjuntos de Q). Obsérvese que puesto que δ es una relación para todo par (q, σ ) compuesto por el estado actual y el símbolo de la entrada, δ (q, σ ), es una colección de cero o más estados [es decir, δ (q, σ )⊆ Q]. Esto indica que, para todo estado q1 se pueden tener cero o más alternativas a elegir como estado siguiente, todas para el mismo símbolo de entrada. Generalmente el término autómata finito no determinístico se abrevia como NFA de sus siglas en inglés Nondeterministic Finite Automaton. Si M es un NFA, definiremos el lenguaje aceptado por M por medio de L(M)={w w es una cadena aceptada por M} donde una cadena w es aceptada por M, si M pasa de su estado inicial a su estado de aceptación o final al recorrer la cadena w (w es consumida en su totalidad). Observe ahora el diagrama de transición de la figura 5.1 a q0
a q1
b q2
a b q3 q4 ____________________________________________________________________ 27 _ I.S.C. Elda Rivera Saucedo b
http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
27/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
Figura 5.1 El AFN descrito anteriormente acepta el lenguaje formado por cualquier número (incluyendo el cero) de a’s, concatenadas a una “b” ó una “a” concatenada a cualquier numero (incluyendo el cero) de b’s . Se representa de la siguiente forma: Q={q0, q1, q2, q3, q4} F={q2, q3, q4} q0=q0 b} por la tabla de la figura 5.2. Σ δ={a, Y dada
Estados
a
b
q0
{q1, q4}
{q3}
q1
{q1}
{q2}
q2
error
error
q3
error
error
q4
error
{ q4}
Q3
Figura 5.2. Obsérvese que en el contenido de las celdas de la tabla de transición de la figura 5.2. son conjuntos. El hecho de que existan celdas con error, indica que no existe ninguna transición desde el estado actual mediante la entrada correspondiente. Que para un par ( estado actual, entrada) exista más de un posible estado siguiente indica que se puede elegir entre las distintas posibilidades. En el modelo no existe nada que determine la elección. Por esta razón, se dice que el comportamiento del autómata es no determinista. Para analizar la cadena abba las transiciones serian las siguientes
δ (q0,a )= { q1, q4} ( Elegimos una de las 2, en este caso sera q1) δ (q1,b )= { q2 } δ (q2,b )= { error} ____________________________________________________________________ 28 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
28/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
Obsérvese que no llegamos a un estado de aceptación eligiendo por el camino de q1 en donde se nos da la opción de elegir cualquiera de los 2 estados { q 1, q4} Ahora bien debemos elegir el otro estado para verificar si por este otro camino dicha cadena seria valida o no . Analizando..... δ (q0,a )= { q1, q4} ( Elegimos una de las 2, en este caso ahora tomaremos el estado q4) δ (q4,b )= { q4 } δ (q4,b )= { q4 } δ (q4,a )= { error} Por este camino tampoco se llega a un estado de aceptación por lo que se concluye que la cadena abba no es valida para este lenguaje Aquí es donde notamos como un AFN nos da la opcion de 2 caminos a elegir por lo que se necesita hacer el seguimiento por los 2 caminos para determinar si es o no valida la cadena , ya que puede darse el caso que por un camino no sea valida y por otro si , por esta razon se dice que es un AF no determinista , ya que no nos determina el camino a seguir como lo hace un AFD, este nos da un solo camino desde el estado de inicio al final para una cadena , es decir nos determina el camino a seguir.
Ejemplo 6: Consideremos el AFN M={ Q, Σ , q0, F, δ } que acepta el lenguaje formado por cadenas que tienen cero o más ocurrencias de “ab” ó “aba” y esta dado por: Q={q0, q1, q2} Σ ={a, b} q0=q0 F={q0} Y δ dada por la tabla de la figura 6.1. Este NFA tiene el correspondiente diagrama de transición que se muestra en la figura 6.2.
Estados
a
b
q0
{q1}
error
____________________________________________________________________ 29 q1 error {q0, q2} _ q2 {q0} error I.S.C. Elda Rivera Saucedo Q3
http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
29/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
Figura 6.1.
a b q0
q1 a
b
q2
Figura 6.2. Ejemplo 7: Consideremos el AFN M = { Q, Σ , q 0, F, δ } que acepta el lenguaje formado por cadenas que tienen cero o más ocurrencias de “a” ó “b” y estas tienen la terminación “abb” dado por el siguiente diagrama de transiciones a
q0
a
q1
b
q2
b
q3
b En donde: Q = { 0,1,2,3 } q0 = {0} F = {3} ∑ = {a ,b} δ = para la cadena abb δ q0,a = {0,1 }, δ q1,b = {2}, δ q2,b = {3}
cadena aceptada en el estado 3
2.3.2.1 AUTÓMATAS FINITOS NO DETERMINÍSTICOS CON MOVIMIENTO ε (AFN- ε ). Un autómata finito no determinístico con movimiento ε (entrada vacía) es como el quintuplo ( Q, Σ , δ , q 0, F) con todos sus componentes igual que a un AFN, con excepción de δ , la función de transición, que ahora transforma Q x ( Σ ∪{ε }) a 2Q; para incluir transiciones de un estado a otro que no dependan de ____________________________________________________________________ 30 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
30/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación ninguna entrada. Se puede añadir una columna en la tabla de δ para colocar los pares de la forma (qi, ε ). Cuando hay ε -transiciones en un AFN es conveniente suponer que cada estado tiene una ε -transición que cicla en ese estado. El siguiente diagrama de transición representa un AFN- ε que acepta el lenguaje L(M) = { w ∈ {a, b} que contiene solo una o mas a’s consecutivas o una o mas b’s consecutivas }
a a
1
λ
2
0
b 3
4
λ
b
En donde: Q = { 0,1,2,3,4 } q0 = {0} F = {2,4} ∑ = {a ,b, λ} δ = para la cadena bb : δ (q0, λ)={1,3}, δ (q3,b) ={4}, δ (q4,b) = {4} cadena aceptada en el estado 4 Observe el ejemplo del diagrama de transición de la figura 7.1, que acepta el lenguaje consistente en cualquier número (incluyendo el cero) de 0’s seguidos por cualquier número de 1’s seguido, a su vez, por cualquier número de 2’s y cuya tabla de transición es mostrada por la figura 7.2. 0
1
ε
2
ε
q0
q1
q2
Figura 7.1
Q \
0
1
2
ε
q0
{q0}
error
error
{q1}
q
error
{q }
error
{q }
Σ
1 1 2 ____________________________________________________________________ 31 _ q2 error error {q2} error I.S.C. Elda Rivera Saucedo Q3
http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
31/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
Figura 7.2 Ejemplo 8: El que siguiente diagrama transiciónde acepta el lenguaje formado por cadenas tienen cero o másde ocurrencias “ab” ó “aba”.
a q0
q1 a,
b
q2
ε
El AFN- ε anterior tendría la siguiente tabla de transición a
b
ε
q0
{q1}
error
error
q1
error
{q2}
error
q2
{q0}
error
{q0}
Q \
Σ
Q3
TEOREMAS Teorema1.por un AFD Cualquier conjunto aceptado por un AFN-λ
será aceptado
____________________________________________________________________ 32 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
32/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación a
AFN-
λ
λ
a
1
2
0
a b
λ
3
a
4 b
1
0
b b
AFD
2
Teorema 2.-Cualquier conjunto aceptado por un AFN será aceptado por un AFD
a
a a
0
1
0
AFN
a
1
AFD
Teorema 3.- Sea M = ( Q, Σ , q0, δ , F) a un AFN. Entonces existe un AFD M’ = ( Q’, Σ ’, q0’, δ ’, F’) que es equivalente a M.
ε Teorema L es aceptado unsin AFN con transiciones ), entonces 4.L esSiaceptado por unpor AFN transiciones vacío(εvacío( ).
AUTÓMATA FINITO DETERMINISTICO (AFD) Ventajas: Es muy fácil determinar si un AFD acepta o no una cadena de entrada puesto que hay un solo camino desde el estado de inicio etiquetado con esa cadena Desventaja: Por lo general es mas difícil el diseño de un AFD que el de una AFN
AUTÓMATA FINITO NO DETERMINISTICO (AFN) Ventajas: La tabla de transiciones proporciona rápido acceso a las transiciones de un determinado estado en un carácter dado. Desventajas:
____________________________________________________________________ 33 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
33/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación Puede ocupar gran cantidad de estados cuando el alfabeto de entrada es grande y la mayoría de las transiciones son hacia el conjunto vació.
2.3.2.2CONVERSION DE UN AFN A UN AFD Se dice que dos autómatas son equivalentes si aceptan el mismo lenguaje. Un AFD puede ser fácilmente un AFN, con solo agregar transiciones vació (ε ) que no alteren a este o bien 2 transiciones a estados diferentes, igual sin alterar el lenguaje aceptado por dicho AFD , pero no viceversa. Sin embargo, existe un procedimiento para convertir un AFN a un AFD. Un AFD es un AFN debido a que cumple las características de sus parámetros, sin embargo cuando queremos transformar un AFN en un AFD, debemos cuidar las transiciones. Es válida la transformación y siempre es posible realizarla. Los AFD son los mas sencillos de construir, por lo tanto, puede ser útil diseñar un autómata complejo como un AFN con o sin transiciones ε para luego transformarlo a un AFD para su implementación.
En la conversión de un AFN a un AFD el AFD esta formado por estados que son un conjunto de estados del AFN Ejemplo: Convertir el siguiente AFN en un AFD
b 0
b
1
a
2
AFN
a El primer paso es determinar el estado de inicio del nuevo autómata, por lo que vamos a dar el nombre de los nuevos estados, con las letras del alfabeto para no confundirlos con los estados del AFN , así que para el estado de inicio será la letra A y así sucesivamente como se vayan generando los nuevos estados. Entonces el estado A estará formado por el estado de inicio del AFN mas todos los estados que me lleven con una transición ε desde el estado de inicio ____________________________________________________________________ 34 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
34/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación a otros estado únicamente con el vació si es que hubiera alguna transición. Para este autómata no es el caso entonces nuestro estado de inicio quedaría de la siguiente forma: A = {0} Siguiente paso, hacer el análisis de transiciones en el AFN con cada una de las entradas del alfabeto partiendo del estado A, que en este caso es el estado 0 del AFN ; entonces del estado 0 con una “a” no existe transición y del estado 0 con una ”b” existe una transición al estado 1 y al estado 2 por lo que quedaría de la siguiente forma : A, a = { } A, b = { 1,2} = B El conjunto formado por el estado 1 y 2, será un nuevo estado al cual le daremos nombre de la B, misma para llevar del alfabeto, éste será elanalizado formauna quesecuencia el estadode A, las y letras así sucesivamente con cada estado nuevo que se genere, hasta no tener nuevos estados que analizar, recordando que se analiza con cada entrada del alfabeto del AFN aun y cuando no hay transición, es conveniente hacer el análisis para evitar que se nos pase alguna transición. Ahora analicemos B; que son los estados 1 y 2 , del estado 1 hay una transición con “a” al estado {0,2 y del estado 2 no hay transición con “a” entonces solo estará formado por {0,2}, que es un nuevo conjunto de estados al cual le daremos el nombre de C, Ahora analicemos B(Estados 1,2) con “b”, de los estados 1 y 2 no existe ninguna transición con el símbolo “b”, entonce el estado B quedaria de la siguiente forma: B,a = {0,2} = C B,b = { } Así se analizara cada uno de los nuevos estados que resulte y se tiene: A, a = { } A, b = { 1,2} = B B, a = {0,2} = C B, b = { } C, a = { } C, b = {1,2 }=B
Nota: decíamos que los nuevos estados del autómata serán un conjunto de estados del AFN por tal motivo los representamos entre llaves, que indican conjunto.
Con los nuevos estados resultantes se diseña el autómata nuevo que deberá ser un AFD y este deberá analizar todas y cada una de las cadenas que analiza el el anterior autómata el AFN y de igual forma las cadenas que este no acepte el nuevo autómata tampoco las deberá aceptar. ____________________________________________________________________ 35 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
35/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
Los estados de aceptación para el nuevo autómata serán todos aquellos estados que contengan el estado de aceptación del autómata original, es decir los que contengan el estado 2 que para este caso lo contienen el B y el C El autómata resultante es:
b
A
a
B
C
b
AFD Dddd dD
representado en conjunto de estados es:
b
0
a
1,2
0,2
b Conversión de un AFN-ε
a un AFD
Se siguen los mismos pasos que para la conversión anterior , en este autómata si utilizaremos las transiciones vació ( ε o λ ), para pasar de un estado a otro sin cargar ningún carácter, y solo tomar el que necesitemos analizar. Ejemplo: Convertir el siguiente AFN- λ a un AFD
a
AFN-
λ
λ
1
a
2
0
b λ
3
b
4
A = {0, mas todos los estados a los que se puede llegar con el símbolo λ } Entonces:
____________________________________________________________________ 36 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
36/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación A = {0,1,3} Analizando...... A, a = {2} = B A, b = {4} = C B, B, ab = = {2} { }=B C, a = { } C, b = {4} = C Nota: No se hace el análisis con el λ solo se utiliza para pasar de un estado a otro.
a B a
AFD
A b
C
b
____________________________________________________________________ 37 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
37/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
Actividades a realizar por el alumno:
• Buscar y analizar acerca de lo que es un autómata y cuales son los que hayejercicios de Autómatas a partir de expresiones • diferentes analizar ytipos desarrollar regulares dadas y análisis de los mismos.
• Realiza ejercicios para la representación de lenguajes por medio de AFN, AFN-ג , AFD y expresiones regulares . EJERCICIOS.
* Ejercicio resuelto para su análisis. *2.1. Describa el lenguaje aceptado por el DFA representado por el diagrama de transición de la figura 2.19 b a
q0 b
q1 a
q2 a, b Figura 2.19.
El lenguaje esta formado por cadenas que tienen cero o más ocurrencias de “ab” y su expresión regular es (ab)*. 2.2. Construya el diagrama de transición y describa el lenguaje que acepta el siguiente autómata finito determinístico: Sea M={Q, Σ , q0, F, δ } dado por: ____________________________________________________________________ 38 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
38/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación Q = {q0,q1,q2,q3} Σ = {0,1} F = {q0} q0 = q0 y δ dada por la tabla de la figura 2.20. δ
0
1
q0 q1
q2 q3
q1 q0
q2
q0
q3
q3
q1
q2
Figura 2.20. 2.3. Proporcione los DFA’S que acepten los siguientes lenguajes sobre el alfabeto {0,1}: a) El conjunto de todas las cadenas que terminen en 00 b) El conjunto de todas las cadena que posean tres 0’s consecutivos. *2.4. Dado Σ ={0, 1} construya el diagrama (ver figura 2.21.) y tabla de transición (ver figura 2.22) para el AFN que acepte el lenguaje formado por todas las cadenas que contengan dos ceros ó dos unos consecutivos. 0, 1 q0 1
0, 1 0
q3
0
q4
a
q1 1 q2 0, 1
Figura 2.21.
____________________________________________________________________ 39 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
39/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
Figura 2.22. Estados/ Alfabeto
0
1
q0
{ q0, q3}
{ q0, q1}
q1
error
{q2}
q2
{q2}
{q2}
q3
{q4}
error
q4
{q4}
{q4}
2.5. Sea M el AFN dado por Q = {q0, q1}, Σ ={a,b}, q0= q0, F={q1} y δ dada en la figura 2.23. Determinar si la cadena “ba” estan en L(M). Dibujar el diagrama de transición para M. Estados
a
b
q0
{q0, q1}
{q1}
q1
{q0, q1}
∅
Figura 2.23. *2.6. Construya los diagramas de transición para los AFN con movimiento ε y describa su lenguaje.
ε q0
ε
q1
1
q2
ε
q3
ε 1*
L={Cualquier cadena de 1’s incluyendo ε }
a b ____________________________________________________________________ 40 _ ε I.S.C. Elda Rivera Saucedo q 0 1 q
http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
40/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
Figura 2.24. a*b*
L={Cadenas de cero o más a’s concatenadas a cadenas de cero o más b’s}
2.7. Construya la tabla de transición y describa el lenguaje que acepta el AFN con movimiento ε , dado el diagrama de transición de la figura 2.24. q0
a q5
b
a
q1 b
b
q2
ε
a
q3
b
q4
*2.8. Encontrar las expresiones regulares correspondientes a las figuras 2.25, 2.26, 2.27 y 2.28 a,b q0
____________________________________________________________________ 41 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
41/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación Figura 2.25.
(a | b)*
L={Cadenas sobre Σ ={a, b}, que tienen cero (ε ) ó más ocurrencias de a’s ó b’s}
a,b a
q0
q1
b Figura 2.26. b*a(a|b)* L={Cadenas sobre Σ ={a,b}, que contienen al menos una a} a
q0
q1
a Figura 2.27. (aa)*
L={Cadenas de a’s de longitud par, incluyendo ε }
a
b b
q0
a, b a
q1
q2
____________________________________________________________________ 42 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
42/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
Figura 2.28. A*b*
L={Cadenas de cero o más a’s concatenadas a acero o màs b’s}
Criterios de Acreditación:
Análisis de los temas.............................................................................. .......10% Tareas (Ejercicios Resueltos)........................................................................ 30%. Herramienta generadora de código libre de errores a partir de autómatas.....30% Examen escrito...............................................................................................30%
____________________________________________________________________ 43 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
43/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
III Lenguajes Libres De Contexto
3.1 Gramáticas libres de contexto. 3.2 Árboles de derivación. 3.3 Formas normales de Chomsky. 3.4 Formas normales de Greibach. 3.5 Eliminación de Factores Comunes izquierdos. 3.6 Eliminación de recursividad izquierda. 3.7 Eliminación de la ambigüedad. 3.8 Autómatas Push-Down. 3.9 Lenguajes no regulares. 3.1 Gramáticas Libres de Contexto
Que es una Gramática.? Una gramática es un conjunto finito de reglas que determinan un lenguaje. El lenguaje determinado por una gramática G se denotara por L(G) si L(G1)=L(G2) entonces G1=G2 son equivalentes Una gramática es un cuádruplo G = {VT ,VN , S ,P} En donde: VT = Conjunto finito de símbolos o elementos terminales Conjunto finito deque símbolos o elementos no terminales SVN= =Producción inicial pertenece a VN P = Conjunto de producciones o de reglas de derivación . Todos las cadenas del lenguaje definido por una gramática están formadas con símbolos terminales (VT) El conjunto de símbolos no terminales (VN ) son símbolos introducidos como elementos auxiliares para la definición de la gramática dentro de los cuales se encuentra S que es el símbolo inicial a partir del cual se aplican las
____________________________________________________________________ 44 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
44/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación reglas de la gramática para obtener las distintas cadenas del lenguaje . Las producciones son las reglas que se aplican para obtener las cadenas del lenguaje. El conjunto de producciones P se define por medio de la enumeración de las distintas producciones, en forma de reglas o por medio de un metalenguaje por ejemplo BFN (Backus Naur Form ) Ejemplo: La siguiente gramática nos sirve para determinar una oración
EL | La | Lo | Las | Los | Un | Una | Uno |Unas Caballo | Elefantes | Cacahuates | Rosales Blanco | Morado | Verde | Bonito | Feo Come | Corre | Vuela | Salta | λ ◊ Nota : la flecha indica “produce” de aquí el nombre de producciones λ es el símbolo vacío .
3.2 Árboles de derivación Existen básicamente dos formas de describir cómo en una cierta gramática una cadena puede ser derivada desde el símbolo inicial. La forma más simple es listar las cadenas de símbolos consecutivas, comenzando por el símbolo inicial y finalizando con la cadena y las reglas que han sido aplicadas. Si introducimos estrategias como reemplazar siempre el no terminal de más a la izquierda primero, entonces la lista de reglas aplicadas es suficiente. A esto se le llama derivación por la izquierda. Por ejemplo, si tomamos la siguiente gramática: : (1) S → S + S : (2) S → 1 y la cadena “1 + 1 + 1″, su derivación a la izquierda está en la lista [ (1), (1), (2), (2), (2) ]. Análogamente, la derivación por la derecha se define como la lista que obtenemos si siempre reemplazamos
primero el no terminal de más a la derecha. En ese caso, la lista de reglas aplicadas para la derivación de la cadena con la gramática anterior sería la [ (1), (2), (1), (2), (2)].
La distinción entre derivación por la izquierda y por la derecha es importante porque en la mayoría de analizadores la transformación de la entrada es definida ____________________________________________________________________ 45 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
45/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación dando una parte de código para cada producción que es ejecutada cuando la regla es aplicada. De modo que es importante saber qué derivación aplica el analizador, por que determina el orden en el que el código será ejecutado. Una también puede ser expresada una estructura jerárquica sobrederivación la cadena que está siendo derivada. mediante Por ejemplo, la estructura de la derivación a la izquierda de la cadena “1 + 1 + 1″ con la gramática anterior sería:
:S→S+S (1) :S→S+S+S (1) :S→1+S+S (2) :S→1+1+S (2) :S→1+1+1 (2) : { { { 1 }S + { 1 }S }S + { 1 }S } S donde { … }S indica la subcadena reconocida como perteneciente a S. Esta jerarquía también se puede representar mediante un árbol sintáctico:
s s
+
s
s +
s
1
1
1
La derivación por la derecha:
:S→ S + S (1) :S→ 1 + S (2) :S→ 1 + S + S (1) :S→ 1 + 1 + S (2) :S→ 1 + 1 + 1 (2) define el siguiente árbol sintáctico:
____________________________________________________________________ 46 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
46/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
s s
+
1
s s
+ s
1
1
Si para una cadena del lenguaje de una gramática hay más de un árbol posible, entonces se dice que la gramática es ambigua Normalmente estas gramáticas son más difíciles de analizar por que el analizador no puede decidir siempre que producción aplicar. 3.3 Formas normales de Chomsky.
En lingüística la jerarquía de Chomsky es una clasificación jerárquica de distintos tipos de gramáticas formales que generan lenguajes formales. Esta jerarquía fue descrita por Noam Chomsky en 1956. La Jerarquía de Chomsky consta de cuatro niveles: •
Gramáticas de tipo 0 (sin restricciones), que incluye a todas las gramáticas formales. Estas gramáticas generan todos los lenguajes capaces de ser reconocidos por una máquina de Turing. Los lenguajes son conocidos como lenguajes recursivamente enumerables. Nótese que esta categoría es diferente de la de los lenguajes recursivos, cuya
decisión puede ser realizada por una máquina de Turing que se detenga. • Gramáticas de tipo 1 (gramáticas sensibles al contexto) generan los lenguajes sensibles al contexto. Estas gramáticas tienen reglas de la forma con A un no terminal y α, β y γ cadenas de terminales y no terminales. Las cadenas α y β pueden ser vacías, pero γ no puede serlo. La regla está permitida si S no aparece en la parte derecha de ninguna regla. Los lenguajes descritos por estas gramáticas ____________________________________________________________________ 47 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
47/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación son exactamente todos aquellos lenguajes reconocidos por una máquina de Turing no determinista cuya cinta de memoria está acotada por un cierto número entero de veces sobre la longitud de entrada. •
Gramáticas de tipo 2 (gramáticas libres del contexto) generan los lenguajes independientes del contexto. Las reglas son de la forma con A un no terminal y γ una cadena de terminales y no terminales. Estos lenguajes son aquellos que pueden ser reconocidos por un autómata con pila.
•
Gramáticas de tipo 3 (gramáticas regulares) generan los lenguajes regulares. Estas gramáticas se restringen a aquellas reglas que tienen en la parte izquierda un no terminal, y en la parte derecha un solo terminal, posiblemente seguido de un no terminal. La regla también está permitida si S no aparece en la parte derecha de ninguna regla. Estos lenguajes son aquellos que pueden ser aceptados por un autómata finito. También esta familia de lenguajes pueden ser obtenidas por medio de expresiones regulares.
Nótese que el conjunto de gramáticas correspondiente a los lenguajes recursivos no es un miembro de la jerarquía. Cada lenguaje regular es a su vez libre del contexto, asimismo un lenguaje libre del contexto es también dependiente del contexto, éste es recursivo y a su vez, recursivamente enumerable. Las inclusiones son, sin embargo, propias, es decir, existen en cada nivel lenguajes que no están en niveles anteriores.
Tip o
Lenguaje
Autómata
Normas de producción de gramáticas
0
recursivamente enumerable (LRE)
Máquina de Turing (MT)
Sin restricciones
1
dependiente del contexto (LSC)
Autómata linealmente acotado
αAβ → αγβ
2
independiente del contexto (LLC)
Autómata con pila
A→γ
____________________________________________________________________ 48 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
48/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
3
regular (RL)
Autómata finito
A → aB A→a
Lenguajes Recursivamente Enumerables (de tipo 0) Artículo principal: Lenguaje recursivamente enumerable Las gramáticas que generan estos lenguajes pueden tener reglas compresoras. Las reglas de producción son de la siguiente forma:
Lenguajes Dependientes del Contexto (sensibles al contexto, de tipo 1) No existen reglas compresoras, salvo, opcionalmente, la que deriva el axioma a la palabra vacía. Existen reglas en las que un símbolo no terminal puede derivar a formas sentenciales distintas, según los símbolos que aparezcan a su alrededor Las reglas de producción son de la siguiente forma:
Lenguajes Independientes del Contexto (de contexto libre, de tipo 2) La mayoría de los lenguajes de programación entran en ésta categoría. Las reglas de producción son de la siguiente manera:
Lenguajes Regulares (de tipo 3) Artículo principal: lenguaje regular Son los lenguajes más simples dentro la Jerarquía de Chomsky. Se suelen expresar mediante expresiones regulares.
____________________________________________________________________ 49 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
49/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación Existen 2 tipos: lineales por la derecha y lineales por la izquierda. Las reglas de producción son de la siguiente forma: Lineales por la derecha:
Lineales por la izquierda:
Jerarquia de Chomsky Según se clasifica gramáticas en cuatro tipos (cuales son, como vemos Chomsky más adelante, entre silas verdaderamente diferentes). Entonces sea una gramática (y ). Las gramáticas se distinguen solamente en el sistema de producciones que siempre será un conjunto finito y que se clasifica en los siguientes tipos: Tipo 0:
Gramáticas generales sin restricciones
es decir, se sustituye por lo menos un símbolo no-terminal. Tipo 1: Gramáticas sensibles al contexto
es decir, se sustituye un símbolo no-terminal por algo manteniendo el contexto; entonces una derivación siempre produce palabras más largas o iguales ( ) Tipo 2: Gramáticas libres de contexto
____________________________________________________________________ 50 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
50/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
Es decir, se sustituye solo símbolos no-terminales por palabras no vacías Tipo 3:
Gramáticas regulares (o lineales)
Es decir, lineales a la izquierda (porque los símbolos no-terminales aparecen en una derivación siempre a la izquierda de la palabra)
Es decir, lineales a la derecha (porque los símbolos no-terminales aparecen en una derivación siempre a la derecha de la palabra) Se ha introducido explícitamente la regla
en las gramáticas de
tipos 1, 2, y 3 para permitir que el lenguaje puede ser generado dado que las reglas solo permiten un crecimiento de la longitud de las palabras a lo largo de las derivaciones. Retomamos la clasificación de las gramáticas hacia final del curso (por ejemplo, respondemos a la pregunta si son de verdad clases separadas). Observación: si permitimos para las gramáticas de libre contexto reglas del tipo sustituir todas , eslas decir, permitimos reglas podemos reglas que tengan unacomo a la derecha,, por ejemplo por las producciones compresoras.
, y conseguir así una eliminación de
Jerarquía de Chomsky En función de la forma de sus producciones, se puede caracterizar qué tan compleja esclasifica una gramática formal. Noam mostró que esta caracterización jerárquicamente a lasChomsky gramáticas formales: Gramáticas en un nivel están incluidas en los siguientes niveles y la inclusión entre niveles es propia. Se puede dar varios refinamientos de la Jerarquía de Chomsky. En la tabla (4) presentamos esquemáticamente uno de tales refinamientos. Table 4: Jerarquía gramatical de Chomsky.
____________________________________________________________________ 51 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
51/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación Tipo
Nombres
0
Irrestricta Irrestricta
existe una función
con memoria limitada
(computable) tal que la longitud de cualquier cadena en una derivación que dé una palabra ha de estar acotada por el valor de la función en la longitud de ,
1
2
3
4
5
Forma de producciones
Sensibles al contexto con borro Sensibles al contexto no reductivas
, ,
Libres de contexto Libres de
producciones libres de
contexto determinis tas
contexto con lade que una particularidad vez que se ha derivado prefijos de un cierto tamaño entonces se tendrá determinada la palabra a derivarse,
6
Lineales
7
Regulares
la tipología empleada denota lo siguiente: cadenas de alfabeto, Negritas A caracteres; , MAYÚSCULAS símbolos T conjunto de variables; símbolos ____________________________________________________________________ 52 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
52/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
V
terminales, conjunto de símbolos variables.
Lo esquemático de esta tabla se suprimirá en el capítulo 3 de este curso, en el que se presentará estas gramáticas con todo detalle. En toda gramática formal aparecen dos problemas fundamentales:
Problema de la palabra:
Instancia: Solución:
Es decir, este problema consiste en decidir, para una gramática y una palabra dadas, si acaso la palabra está generada por la gramática. Problema de la derivación:
Instancia: Solución:
Es decir, este problema consiste en encontrar, cuando exista, una
____________________________________________________________________ 53 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
53/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación derivación, en una gramática dada, de una palabra dada también. Los problemas mencionados pueden ser resueltos efectivamente en algunos niveles de la Jerarquía de Chomsky. En otros niveles superiores puede ser irresolubles estos problemas.
3.4 Forma Normal de Greibach
Def.- Una GLC (gramatica Libre de Contexto)está en Forma Normal de Greibach (FNG) si todas las producciones son de la forma A→aα , donde a es un símbolo terminal y α ∈ (Σ ∪ N)*.
• Una gramática en FNG no puede tener producciones •
recursivas por la izquierda. Por la forma de las producciones, una gramática en FNG sólo puede generar lenguajes no vacíos que no contengan la ε .
Transformando a Forma Normal de Greibach • Es posible transformar cualquier GLC que no contenga la ε a FNG en varias etapas. • Sea L un LLC no vacío, que no contiene la ε . Sea Σ ,N,S,P) una GIC en Forma Normal de Chomsky que G=( genera L. • Supongamos que N={A1,A2,...,An}, donde A1=S. • Modificamos las producciones de forma que Ar→Asα , es una producción, entonces r
____________________________________________________________________ 54 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
54/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
• Si ya han sido modificadas las producciones para 1≤ i≤ k de tal forma que si Ai→A jα , entonces ij, se generará un nuevo conjunto de producciones para reemplazar las A j por el lado derecho de todas las producciones A j→β . • Al realizar las sustituciones, se obtendrán producciones de la forma Ak+1→Arα . • Puede ocurrir que k+1≤ r o que r
recursivas por la izquierda que se pueden eliminar con el método antes estudiado. Repítase el proceso para cada uno de los terminales originales desde A1 hasta An.
• En este momento sólo se tendrán producciones de las tres formas siguientes: 1.Ak →A jα , con k
An es el no terminal con mayor índice, todas las • Como producciones para A deben ser del tipo 2. Es decir, en el n
extremo izquierdo del lado derecho tendrán un símbolo terminal. • También para An-1, en el extremo izquierdo del lado derecho deberá tener un terminal o An. Si se tiene An, podrá ser reemplazado por el lado derecho de una de sus producciones, para que las producciones comiencen con un terminal.
• Luego se procede a transformar las producciones correspondientes a An-2, An-3 y así sucesivamente, hasta que el lado derecho de todas las producciones comiencen con un terminal.
• Con relación a las producciones para Z1,Z2,...,Zn; como la gramática original estaba en Forma Normal de Chomsky y sólo se han aplicado las transformaciones vistas hasta ahora,
____________________________________________________________________ 55 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
55/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
• •
ninguna de las producciones Zi→α tendrá otro Z j en el extremo izquierdo del lado derecho. Así todas las producciones de los Zi tendrán terminales o Ai al principio de su lado derecho. Si alguna tuviera en el principio del lado derecho alguna Ak , sea aplicará una vez más la sustitución de producciones y todas las producciones resultantes tendrán la forma deseada.
Ejemplo Forma Normal de Greibach • Ej.- Transforme la siguiente GLC en Forma Normal de Chomsky a Forma Normal de Greibach: A1→A2A2|a A2→A1A2|b Las producciones A1→A2A2|a ya se encuentran en la forma necesaria para la primera etapa. Falta A2
• La producción A2→b se acepta, pero A2→A1A2 no. Al sustituir A1, se obtienen las producciones A2→A2A2A2|aA2. Eliminando la recursividad por la izquierda, se obtienen las siguientes producciones:
A1→A2A2|a A2→aA2|aA2Z|b|bZ Z→A2A2|A2A2Z • Finalmente, sustituyendo A2 de forma apropiada para que empiecen con un terminal todas las producciones, se tiene:
A1→aA2A2|aA2ZA2|bA2|bZA2|a A2→aA2|aA2Z|b|bZ Z→aA2A2|aA2ZA2|bA2|bZA2|aA2A2Z| aA2ZA2Z|bA2Z|bZA2Z
Corolario Forma Normal de Greibach Todo lenguaje Libre de contexto y no vacío, que no • Cor.contenga ε , puede L ser generado mediante una gramática independiente del contexto en Forma Normal de Greibach.
3.6 Recursividad por la derecha y por la izquierda ____________________________________________________________________ 56 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
56/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación Una producción de la forma A→α A, donde α ∈ (N∪ Σ )*, se conoce como recursiva por la derecha.
Una producción de la forma A→Aα , donde α ∈ (N∪ Σ )*, se conoce como recursiva por la izquierda.
Ambos tipos de recursividades formarán árboles que se expanden por la izquierda o por la derecha.
En muchas aplicaciones no es deseable que exista la recursividad por la izquierda.
Eliminando la recursividad por la izquierda • Teo.- Sea G una GIC y A un no terminal de G. Si A→Aα 1| Aα 2|...|Aα n son todas la producciones para A, que son recursivas por la izquierda, y si A→ β 1|β 2|...|β m son las restantes producciones para A, entonces se puede construir una gramática equivalente introduciendo un nuevo no terminal Z y reemplazando todas las producciones precedentes por ...
• A→ β 1|β 2|...|β m|β 1Z|β 2Z|...|β mZ Z→α 1|α 2|...|α n|α 1Z|α 2Z|...|α nZ Ej.- Considere la GIC siguiente. Identifique y elimine la recursividad por la izquierda: S→Sa|Sb|cA A→Aa|a|ε
Ej.- Eliminando la recursividad izquierda para S: S→cA|cAZ1 Z1→a|b|aZ1|bZ1 A→Aa|a|ε Eliminando la recursividad izquierda para A: ____________________________________________________________________ 57 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
57/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
S→cA|cAZ1 Z1→a|b|aZ1|bZ1 A→a|aZ2|ε |Z2 Z2→a|aZ2
Observe que al eliminar las producciones recursivas por la izquierda se introducen nuevos terminales y producciones recursivas por la derecha.
3.7 Ambigüedad
Def .- Una gramática se dice que es ambigua si hay dos o más árboles de derivación distintos para una misma cadena. Una gramática en la cual, para toda cadena w, todas las derivaciones de w tienen el mismo árbol de derivación, es no ambigua.
Problemas con la Ambigüedad Cuando el significado de un lenguaje depende de su estructura, la ambigüedad puede significar un problema.
Ej.- En lenguaje natural, la frase:
“ Juan vio a un hombre con un telescopio”
es ambigua
____________________________________________________________________ 58 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
58/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
Ej.- En un lenguaje de programación, la siguiente podría ser la gramática para asignación de expresiones: A → I:=E I →a | b | c E → E+E | E * E | ( E ) | I
Esta gramática es ambigua. Para la cadena a:=b+c*a es posible construir dos árboles de derivación diferentes, los cuales no dejan claro si su evaluación es b+(c*a) o (b+c)*a.
LLC inherentemente ambiguo • Ej.- Si todas las GIC para un lenguaje son ambiguas, entonces el lenguaje será un LIC inherentemente ambiguo. • Ej.- El lenguaje: L={aib jck |i=j o j=k} es inherentemente ambiguo. Se tendría un árbol de derivación, cuando i=j y otro cuando j=k . En consecuencia, si una cadena tiene i=j=k , tendrá dos derivaciones siempre.
Derivación por la izquierda • Def .- Una derivación por la izquierda es aquella en la que el no terminal que se expande en cada paso es el que está en el extremo izquierdo. • Ej.- Para la gramática: S→ SbS|ScS|a la derivación por la izquierda para abaca, sería: S⇒ ScS ⇒ SbScS ⇒ abScS ⇒ abacS ⇒ abaca
Derivación por la derecha • Def .- Una derivación por la derecha es aquella en la que el no terminal que se expande en cada paso es el que está en el extremo derecho.
• Ej.- Para la gramática: S→ SbS|ScS|a la derivación por la derecha para abaca, sería: S⇒ ScS ⇒ Sca ⇒ SbSca ⇒ Sbaca ⇒ abaca
Derivación por la izquierda y derecha ____________________________________________________________________ 59 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
59/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
• Para el ejemplo anterior, con ambas derivaciones se tendría el mismo árbol de derivación. Este árbol también lo comparten otras derivaciones: • Para el mismo ejemplo anterior, la siguiente es otra derivación izquierda, que corresponde a otro árbol de derivación: S⇒ SbS ⇒ abS ⇒ abScS ⇒ abacS ⇒ abaca • Por lo que, una gramática ambigua se caracteriza por
tener dos (o más) derivaciones por la izquierda para una misma cadena. “Toda derivación en una gramática regular es a la vez derivación por la izquierda y por la derecha”
3.8 Autómatas Push-Down.
AUTÓMATAS DE PILA O PUSH -DOWN (PDA). Un autómata de pila o Push-Down es un autómata que cuenta con un mecanismo que permita almacenamiento ilimitado y opera como una pila.
El autómata de pila (se abrevia PDA de sus siglas en inglés Push-Down Autómata) tiene una cinta de entrada, un control finito y una pila. La pila es una cadena de símbolos de algún alfabeto. El símbolo que se encuentra más a la izquierda se considera como que está en la “cima”. El dispositivo será no determinístico y tendrá un número finito de alternativas de movimiento en cada situación.
____________________________________________________________________ 60 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
60/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
Los movimientos serán de dos tipos. En el primer tipo de movimiento se utiliza un símbolo de entrada. Dependiendo del símbolo de entrada, del símbolo de la cima y el estado de control finito, es posible un número de alternativas. Cada alternativa consiste en un estado posterior para el control finito y una cadena (posiblemente vacía) de símbolos, para sustituir al símbolo que se encuentra en la cima de la pila. Después de seleccionar una alternativa, la cabeza de entrada avanza un símbolo como se ilustra.
El
segundo tipo de movimiento conocido como movimiento ε es parecido al primero, excepto que el símbolo de entrada no se utiliza y la cabeza de la entrada no avanza después del movimiento. Este tipo de movimiento permite al PDA manipular la pila sin leer símbolos de entrada.
____________________________________________________________________ 61 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
61/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
Existen dos modos de aceptar un lenguaje por un autómata de apilamiento. El primero consiste en definir el lenguaje aceptado como el conjunto de todas las entradas para las cuales una sucesión de movimientos ocasiona que el autómata de pila vacíe su pila. La segunda manera es designando como y definimos el lenguaje aceptado como elalgunos conjuntoestados de todas lasestados entradasfinales para las cuales alguna selección de movimiento ocasiona que el autómata de pila acceda a un estado final. Un autómata de pila M es un sistema (Q, Σ , Γ , δ , q0, Z0, F), en donde: Q es un conjunto finito de estados. Σ es el alfabeto llamado alfabeto de entrada. Γ es el alfabeto, conocido como alfabeto de pila. q0 ∈ Q, es el estado inicial. Z0 ∈ Γ , es el símbolo llamado símbolo inicial. F ⊆ Q es el conjunto de estados finales. δ es una transformación de Q x (Σ ∪ α {ε }) x
Γ en los subconjuntos
finitos Q x Γ *.
Sea M=(Q, Σ , Γ , δ , q0, Z0, F) un autómata de pila. El lenguaje aceptado por M se denota por L(M) y es el conjunto L(M) = {w ∈ Σ *( q 0, w, Z0) * (p, ε , u ) para p∈F y u∈Γ *}. Nota: * se usa para denotar los movimientos con un número arbitrario de pasos, donde * indica “cero o más pasos”. . Obsérvese que la aceptación requiere que M se mueva a un estado final cuando la cadena w se agote. M puede terminar o no con la pila vacía. (Sin embargo, obsérvese que cuando la pila se vacía el PDA debe parar, ya que todas las transiciones requieren un símbolo de pila). Ejemplo :
Se representa un autómata de pila que acepta a {wcwR|w∈ (0+1)*} mediante un agotamiento de pila M=(Q, Σ , Γ , δ , q0, Z0, F).
____________________________________________________________________ 62 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
62/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación Donde: Q = {q1, q2} q0 = q1 Σ = {0, 1, C}Z0 = R Γ = {R, B, G} F=∅ y δ está definida por:
1. 2. 3. 4. 5. 6. 7. 8.
δ (q1, 0, R) = {(q1, BR)} δ (q1, 0, B) = {(q1, BB)} δ (q1, 0, G) = {(q1, BG)} δ (q1, c, R) = {(q2, R)} δ (q1, c, B) = {(q2, B)} δ (q1, c, G) = {(q2, G)} δ (q2, 0, B) = {(q2, ε )} δ (q2, ε , R) = {(q2, ε )}
9. 10. δ 11. δ 12. δ
1 (q = {(q {(q11,, GB)} GR)} (q1,, 1, 1, R) B) = (q1, 1, G) = {(q1, GG)} (q2, 1, G) = {(q2, ε )}
Analizando la cadena 01C10 usando el PDA anterior se obtiene lo siguiente: (q1, 01C10, R) por la regla 1 → (q1, 1C10, BR) por la regla 10 → (q1, C10, GBR) por la regla 6 → (q2, 10, GBR) por la regla 12 → (q2, 0, BR) por la regla 7 → (q2, ε , R) por la regla 8 → (q2, ε , ε ) y se agota la pila. Consideremos el siguiente ejemplo de autómata de pila definido por: Q = {q1, q2, q3, q4} Σ = {a, b} Γ = {A,B} Z0 = A F = {q4} q0=q1 y δ dado por la siguiente tabla: (a, A)
(b, A)
q1
{(q2, BA), (q4, A)}
--
q2
--
--
--
{(q2, BB)}
{(q3, ε )}
--
q3
--
--
{(q4, A)}
--
{(q3, ε )}
--
q4
--
--
--
--
δ
(ε , A) {(q4, ε )}
(a, b)
(b, B)
(ε , B)
--
--
--
--
--
____________________________________________________________________ 63 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
63/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
Ya que δ depende del estado actual, el símbolo de entrada actual y el símbolo actual de la cima de la pila, la tabla tiene filas que corresponden a los estados y columnas que corresponden a los pares de símbolos de entrada y de la pila. no hay transiciones para lassiternas de estado,Obsérvese símbolo deque entrada y símbolo de pila. Portodas lo tanto, el PDAposibles pasa a un estado para el cual no se especifica un estado siguiente y una acción de la pila para los símbolos actuales de la pila y la entrada, el PDA no puede volver a realizar ningún movimiento. En particular, cuando el autómata está en el estado q4, que es el estado de aceptación, no hay ninguna transición sea cual sea el símbolo de la cima y de la entrada. Si el PDA se mueve al estado q 2, entonces obsérvese que cada vez que a aparece en la entrada se apila una B en la pila. El PDA permanece en el estado q2 hasta que se encuentra la primera b y entonces se mueve al estado q 3, ninguna b puede preceder a una a. Finalmente, en el estado q3 sólo se b’s y, cuando se encuentra cualquier b, se desapila B de la pila. consideran lasdesapilarse (Sólo pueden las B’s que fueron apiladas, debido a encontrarse una a en la entrada). Las únicas cadenas que acepta el PDA pertenecen al lenguaje {a n bn | n≥ 0}∪ {a}, puesto que son las únicas cadenas de entrada que, una vez que han sido consumidas, causan que el PDA termine en el estado final q 4.
____________________________________________________________________ 64 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
64/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
IV Maquina de Turing 4.1 Definición formal de una máquina deTuring. 4.2 Construcción modular de una máquina de Turing. 4.3 Lenguajes aceptados por la MT. 4.4 Variantes de una máquina de Turing. 4.5 Problemas de Hilbert.
4.1 DEFINICIÓN DE UNA MAQUINA DE TURING. El modelo básico, ilustrado en la figura 5.1, tiene un control finito, una cinta de entrada que esta dividida en celdas y una cabeza de cinta que barre una celda de la cinta a la vez. La celda tiene una celda que está mas a la izquierda, pero se extiende de manera infinita hacia la derecha. Cada celda de la cinta puede contener exactamente un símbolo de un número infinito de símbolos de la cinta. Inicialmente, las n celdas que están mas a la izquierda, para alguna n ≥ 0 finito, sujetan la entrada, que es una cadena de símbolos escogidos de un subconjunto de los símbolos de la cinta, llamados símbolos de entrada. Cada una del número infinito de celdas restantes sujeta el espacio en blanco, que es un tipo especial de símbolo que no es de entrada.
Figura 5.1 Máquina de Turing En un movimiento, dependiendo del símbolo barrido por la cabeza de la cinta y del estado de control finito, la máquina de Turing: 1. Cambia de Estado, ____________________________________________________________________ 65 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
65/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación 2. Imprime un símbolo en la celda de la cinta que esta siendo barrida por la cabeza de la cinta y del estado de control finito, escrito y 3. Mueve su cabeza una celda hacia la izquierda o la derecha.
De manera formal, una Máquina de Turing (TM de sus siglas en inglés Turing Machine) se representa por: M=(Q,Σ ,Γ ,δ ,q0, B, F) en donde: Q Γ es Esunel conjunto conjunto finito finito de de estados. símbolos de cinta admisibles. B símbolo de Γ , es el espacio en blanco. Σ subconjunto de Γ que no incluye a B, es el conjunto de los símbolos de entrada. δ es la función de movimientos siguiente, una transformación de Q x Γ a Q x Γ x {L, R} (δ puede sin embargo, permanecer indefinida por algunos argumentos). q0 en Q es el estado inicial. F ⊆ Q es el conjunto de estados finales. En esta definición se supone que el valor inicial de todas las celdas de la cinta es el símbolo B. La definición requiere que B ∉ Σ . Generalmente permitimos que Σ ⊆ Γ - {B}. La función de transición δ transforma pares (q, σ ) formados por el estado actual y los símbolos de la cinta en temas de la forma (p. t, x), donde p es el estado siguiente, t es el símbolo escrito de la cinta y x es un movimiento de lectura/escritura de la cabeza, que puede ser L o R, según que el movimiento sea hacia la izquierda o hacia la derecha (nos imaginamos que la cinta se extiende de izquierda a derecha). Por ejemplo, la transición δ (q1, a)=(q5, b, R) provoca que la TM pase de una configuración figura 5.2. A la configuración de la figura 5.3.
Figura 5.2 Estado interno q 1-
Figura 5.3 Estado interno q5
____________________________________________________________________ 66 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
66/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación Usaremos una descripción instantánea (ID) de la máquina de Turing, para su notación denotando el paso de una configuración a otra por medio del símbolo
.
Ejemplo: consideremos la maquina de Turing que acepta el lenguaje regular a*, definida mediante Q ={q1, q2} Σ ={a, b} Γ =(a, b, B} F ={q2} q0 = q1 y δ dada por la siguiente tabla; los datos de δ también se pueden listar de la siguiente manera:
1. δ (q1, a)=(q1, a, R) 2. δ (q1, B)=(q2, B, R) Comienza. Sustituye el 0 del frente por B 2.
δ (q1, 0)=(q1, 0, R) δ (q1, 1)=(q1, 1, R) Estructura hacia la derecha, buscando el primer 1.
3.
δ (q2, 0)=(q2, 0, R) δ (q2, 1)=(q3, 1, L) Estructura hacia la derecha saltándose los 1s hasta que se encuentra un 0. Cambia ese 0 por 1.
4.
δ (q3, 0)=(q3, 0, L) δ (q3, 1)=(q3, 1, L) δ (q3, B)=(q0, B, R) Se mueve hacia la izquierda a un espacio en blanco. Accesa el estado q0 para repetir el ciclo
5.
δ δ δ δ
(q2, B)=(q2, B, L) (q4, 1)=(q4, B, L) (q4, 0)=(q4, 0, L) (q4, B)=(q6, 0, R)
____________________________________________________________________ 67 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
67/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación Si en el estado q2 se encuentra una B antes que un 0, tenemos la situación del inciso (a) descrita más arriba. Se accesa el estado q 4 y se mueve hacia la izquierda, cambiando todos los 1 por Bs hasta encontrar una B. Esta B se cambia de nuevo a 0, el estado q6 es accesado y M se detiene. 6.
δδ δ δ
(q60,, 0)=(q 1)=(q56,, B, B, R) R) (q (q5, 1)=(q5, B, R) (q5, B)=(q6, B, R) Si en el estado q0 se encuentra un 1 en lugar de un 0, el primer bloque de 0s ha sido agotado, como en la situación (b) anterior. M accesa el estado q5 para borrar el resto de la cinta, entonces accesa el estado q6 y se detiene.
Una muestra del cálculo de M sobre la entrada 0010 es:
Sobre la entrada 0100, M se comporta de la manera siguiente:
4.3 LENGUAJES ACPETADOS POR LAS MÁQUINAS DE TURING.
Una máquina de Turing se puede comportar como un aceptador de un lenguaje. Si colocamos una cadena w en la cinta, situamos la cabeza de lectura/escritura sobre el símbolo del extremo izquierdo de la cadena w y ponemos en marcha la maquina a partir de su estado inicial. Entonces w es aceptada si, después de una secuencia de movimientos, la máquina de Turing llega a un estado final y para. Por tanto w es aceptada. Si q w w1 pw2 para algún estado final p y unas w1 y w2 entonces, se obtiene la siguiente definición: Sea M = (Q,Σ ,Γ ,q0=q1,B, F,δ ) una maquina de Turing, entonces el lenguaje aceptado por M es L(M)= {w∈Σ * q1 w
* w1 pw2 para p∈F y w ∈Γ *}
Ejemplo: Diseñar una TM que acepte el lenguaje regular a* sobre Σ ={a, b}. Comenzando con el símbolo que esta mas a la izquierda en una cadena, realizaremos un análisis hacia la derecha, leyendo cada símbolo y comprobando que es una a; si lo es, realizaremos un desplazamiento hacia la derecha. Si encontramos un blanco (B) sin que se haya leído ningún símbolo que no fuera a, pararemos y aceptemos la cadena. Si por el otro lado, encontramos un símbolo que no es ni a ni B, podemos parar en un estado que no es de aceptación. ____________________________________________________________________ 68 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
68/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
Sea Q = {q1, q2}, q0= q1 y F={q2}, y sea δ definida por: δ (q1,a)= (q1, a, R) δ (q1,B)= (q2, B, R) Esta máquina de Turing para en el estado q2, sólo si se analiza una cadena de 0 ó más a’s. Para rechazar una cadena que no es aceptable, lo único que hay que hacer es evitar que se llegue a un estado final. En este ejemplo las cadenas que no son aceptables, provocan que la máquina pare en un estado que no es final. Otra alternativa para rechazar una cadena es entrar en un bucle infinito. Un lenguaje que es aceptado por una máquina de Turing se conoce como lenguaje recursivamente enumerable (r.e.). El termino enumerable proviene de que dichos lenguajes son aquellos cuyas cadenas pueden ser listadas (enumeradas) por una máquina de Turing. Esta clase de lenguajes es bastante grande, incluyendo los lenguajes libres de contexto. Hay lenguajes r.e. para los cuales ninguna máquina Turing que losdebe acepte todas las entradas (naturalmente, cualquier máquina de Turing para de dichos lenguajes pararpara paracon toda cadena que pertenezca realmente al lenguaje), La subclase de los lenguajes recursivamente enumerables que son aceptados por al menos una máquina de Turing que para con toda cadena de entrada (dependiendo de si la cadena es aceptada o no), se conoce por la clase de los lenguajes recursivos. Puesto que las máquinas de Turing pueden leer y escribir sobre su cinta pueden convertir la entrada en salida. La transformación de la entrada en salida es el primer propósito de las computadoras digitales; por tanto, una máquina de Turing se considera como un modelo abstracto de una computadora. Se supone que la entrada para la máquina de Turing está formada por todos los símbolos de la cinta que no son blancos. La salida está formada por cualquiera de los símbolos que queden en la cinta cuando la computación termina. Las máquinas de Turing pueden ser consideradas como la implementación de una función de cadena f definida mediante f (w) = u cuando se cumple q sw * qf u, donde qs es el estado inicial y q f es un estado final, por lo que se requiere que la cabeza de lectura/escritura empiece y termine, respectivamente, sobre el símbolo de las cadenas de entrada y salida que esta situado más a la izquierda. Definiendo lo anterior se dice que una función de cadena f es Turing computable si existe una máquina de Turing M=(Q,Σ ,Γ ,q1, B, F,δ ) para la cual q1 w
* q, u para algún q, ∈F, cuando
f (w)=u.
Se puede extender la anterior definición de funciones integrales, como se muestra en el siguiente ejemplo. Ejemplo. Supongamos que tenemos Σ ={a,b} y que representamos los enteros positivos mediante cadenas de a*s. Así, el entero positivo n estaría representado por a n. La función suma f (n,m) = n+m podría ser implementada mediante la transformación de a n bam en an*m b. ____________________________________________________________________ 69 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
69/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
Podríamos obtener una máquina de Turing para la suma, que estaría representada por M=(Q,Σ ,Γ ,q0, B, F,δ ) donde Q = {q1, q2, q3, q4, q5} F = {q5} Y δ dada por las siguientes transformaciones: 1. 2. 3. 4. 5. 6. 7.
δ δ δ δ δ δ δ
(q1, a)=(q1, a, R) (q1, b)=(q2, a, R) (q2, a)=(q2, a, R) (q2, B)=(q3, B, L) (q3, a)=(q4, b, L) (q4, a)=(q4, a, L) (q4, B)=(q5, B, R)
Esta máquina de Turing desplaza la b hacia el final, a la derecha de an*m. Para ello se crea una extra. La máquina de Turing “recordara” que se a creado una a al pasar al estado q2 una vez que se ha encontrado la b, y entonces se escribirá una b sobre la a que esta al final de la cadena. Cuando termina la máquina de Turing la cabeza de lectura/escritura está sobre la a que encuentra mas a la izquierda. 4.4 VARIANTES DE LAS MÁQUINAS DE TURING Hay otras definiciones de las máquinas de Turing que son equivalentes. Muchas de ellas dotan de mayor flexibilidad al diseño de una máquina de Turing que se resuelve un problema en particular. Ejemplos [Kelley Dean]: Máquina de Turing con Directiva de Permanecer
Recuérdese que la maquina ed Turing sencilla sitúa la cabeza de lectura/escritura sobre el primer B que haya a la izquierda de la posición actual. Para, hacerlo, busca fuera de la celda actual y retrocede, Esto es debido a la definición original que requiere que por cada transición se mueva la cabeza de la cinta. La función de transición estaba definida como: δ : Q x Γ →Q x Γ x {R, L} y puede ser modificada como: δ : Q x Γ →Q x Γ x {R, L, S} donde S significa “permanecer”, es decir no mover la cabeza de lectura/escritura. Por tanto δ (q, σ )=(p, σ ’, S) significa que se pasa del estado q al p, se escribe σ ’ en la celda actual y la cabeza se queda sobre la celda actual. Máquina de Turing Multipista Es aquella mediante la cual cada celda de la cinta se divide en subceldas. Cada subcelda es capaz de contener símbolos de la cinta. La cinta
____________________________________________________________________ 70 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
70/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
Tiene cada celda subdividida en tres subceldas. Se dice que esta cinta tiene múltiples pistas. En el ejemplo anterior, las celdas de la cinta contienen (B, a, a), (b, a, a) y (a, a, B). Por tanto los movimientos que realice está máquina de Turing dependerán de su estado actual y de la n-tupla que represente el contenido de la celda actual. Una máquina de Turing multipista no tiene más potencia que la máquina de Turing original. Sin Embargo, hace que sea más fácil la construcción de máquinas de Turing que resuelvan ciertos problemas. Ejemplo: Para una máquina de Turing que sume dos números binarios. Primero se construye una máquina de Turing de tres pistas. La entrada serán dos números binarios que ocupen las dos pistas superiores de la cinta. Suponiendo que sus dígitos se alinean por la derecha, que sus representaciones binarias son de la misma longitud (lo que se puede conseguir rellenándolas con tantos ceros como sea necesario) y que la cabeza de lectura/escritura se sitúa sobre la celda del extremo izquierdo de la cadena. Por tanto, si tuvieran que sumar 101 y 10, la cinta debería contener: B B B
1 0 B
0 1 B
1 0 B
B B B
La maquina de Turing realizara la suma en la tercera pista. Por lo tanto, el alfabeto de cinta estará formado por las ternas: (B, B, B) (1, 1, B) (1, 1, 0) (1, 1, 1) (0, 0, B) (0, 0, 0) (0, 0, 1) (B, B, 0) (0, 1, B) (0, 1, 0) (0, 1, 1) (B, B, 0) (1, 0, B) (1, 0, 0) (1, 0, 1) Esta maquina de Turing buscara primero hacia la derecha el extremo derecho de los números que van a ser sumados. Entonces sumará pares de dígitos, desde la derecha hacia la izquierda, llevando la cuenta de los resultados que se obtengan y sumando a quienes correspondan. Por tanto, se obtiene (suponiendo que q1 es el estado inicial): ____________________________________________________________________ 71 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
71/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación δ (q1, σ )
= (q1, σ , R), si σ ≠ (B, B, B) ó (q2, σ , L), si σ = (B, B, B)
δ (q2,
(0, 0, B)) = (q 2 (0, 0, 0), L) δ (q2, (0, 1, B)) = (q 2 (0, 1, 1), L) δ (q2, (0, 0, B)) = (q 2 (1, 0, 1), L)
δ (q3,
(0, 0, B)) = (q 2, (0, 0, 1), L) δ (q3, (0, 1, B)) = (q 3, (0, 0, 0), L) δ (q3, (0, 0, B)) = (q 3, (0, 0, 0), L)
δ
δ
2 3 δ (q (q2,, (0, (0, 0, 0, B)) B)) = = (q (q 4 (1, (0, 1, 0, 0), 0), L) L) (q4, (B, B, C), L)
δ (q (q3,, 3
3 (0, (0, 0, 0, B)) B)) = = (q (q 4,, (0, (0, 0, 0, 0), 0), L) L) I L
Obsérvese que se necesita que esta maquina de Turing tenga la posibilidad de no moverse. La maquina de Turing transformará
En:
B B B
1 0 B
0 1 B
1 0 B
B B B
B B B
B B 0
1 0 1
0 1 1
1 0 1
B B B
MAQUINA DE TURING DE CINTA INFINITA EN UNA DIRECCION Máquina de Turing que usa una cinta que se extiende infinitamente en una única dirección. Generalmente, se tiene una cinta que se extiende infinitamente hacia la derecha. No está permitido realizar ningún movimiento hacia la izquierda a partir de la celda del extremo izquierdo. Desde luego, cualquier máquina de Turing de esta forma puede ser simulada por una de las que responden a la definición original. Para cada computación, simplemente se marca una de las celdas de la cinta infinita por los dos lados, como la celda que se encuentra en el límite izquierdo. MAQUINA DE TURIG EN DOS DIRECCIONES Una maquina de Turing con una cinta infinita en un sentido puede simular una máquina de Turing con la cinta infinita en los dos sentido pero con dos cintas. Sea M una máquina de Turing con una cinta infinita en los dos sentidos. La máquina de Turing M, que tiene una cinta infinita en un sentido, puede simular a M si tiene una cinta con dos pistas. La cinta superior contiene la información correspondiente a la parte derecha de la cinta M, a partir de un punto de referencia dado. La pista inferior contiene la parte izquierda de la cinta M (en orden inverso). Por tanto, si la cinta de M contenía
B a a B b a b ____________________________________________________________________ 72 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
72/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación Punto de referencia La cinta de M’ podría ser como * *
b a
B A
a B
b B
El simbolo especial * marca el limite izquierdo de la cinta. Cuando M tuviera que pasar el punto de referencia. M’ tendría que encontrarse con la celda marcada con *. Si M esta trabajando sobre las celdas que estan a la derecha del punto de referencia, M’ esta trabajando sobre la pista superior. Cuando M trabaja sobre las celdas que estan a la izquierda del punto de referencia, M’ trabaja sobre la pista inferior. Cuando M pasa al punto de referencia, M’ se encuentra con los *, cambia de direccion y cambia de pista sobre la que trabaja. MAQUINA DE TURING MULTICINTA La máquina de Turing multicinta tiene varias cintas, cada una de las cuales tiene su propia cabeza de lectura/escritura. Las cabezas de lectura/escritura se controlan independientemente (es decir, al mismo tiempo, no tiene que moverse en la misma dirección, ni realizar el mismo numero de movimientos, ni incluso, hacer nada, hacer nada a la vez). En un solo movimiento, esta máquina de Turing 1.- Cambia de estado dependiendo del estado actual y del contenido de las celdas de todas las cintas, que están analizando actualmente las cabezas de lectura/escritura. 2.- Escriben un nuevo simbolo en cada una de las celdas barridas por sus cabezas de lectura/escritura. 3.- Mueve cada una de sus cabezas hacia la izquierda o hacia la derecha (de forma independienteal resto de las cabezas). Por tanto, la funcion de trancicion para una maquina de Turing con n cintas, es de la forma δ : Q × r n Q × r n × {R,L}n donde una trancicion de la forma δ (q1 ( σ 1, σ 2, …, σ n)) = (p,( τ 1, τ 2, …, τ n) (X 1, X 2, …,X3)) significa que cambia del estado q a p, reemplaza σ i por τ i en la cinta i y mueve la cabeza de a cinta i en la direccion X. →
Ejemplo: Reconocimiento del lenguaje {an bn ≥1}. Este es bastante laborioso en una máquina de Turing con una única cinta. Es mucho mas facil realizarlo con una máquina n
de Turing de dos cintas. Suponiendo coloca la cadena la cinta 1 y que q1 es el estado inicial. que, Si lainicialmente, cabeza de lectura/escritura dealaanalizar cinta 1en ésta situadas sobre el carácter del extremo izquierdo de la cadena, las cuatro pociciones siguientes son fundamentales para el reconocimiento(cualquier otra funcion seria para cadenas mal formadas y se puedde suponer que llega a un estado que no es de aceptacion): δ (q1, (a, B)) = (q 1 (a, a), (R, R)) δ (q1, (b, B)) = (q 2 (b, B), (S, L)) ____________________________________________________________________ 73 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
73/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación δ (q2, δ (q2,
(b, a)) = (q 2 (b, a), (R, L)) (B, B)) = (q3 (B, B), (R, L))
Aunque esta máquina de Turing multicinta parece bastante distinta y posiblemente mas potente que la máquina de Turing definida originalmente, las dos son equivalentes en el sentido de que cada una de ellas puede ser simulada por la otra. MAQUINA DE TURING MULTIDIMENSIONAL La máquina de Turing Multidimensional es aquella que permite que la cinta tenga muchas dimensiones. Por ejemplo, una cinta de dos dimensiones que se extienda hacia abajo y hacia arriba, al igual que hacia la derecha y hacia la izquierda. Dependiendo del estado actual de la máquina de Turing y del símbolo analizado, cambia de estado, escribe un símbolo en la celda actual y se mueve a la izquierda, a la derecha, hacia arriba o hacia abajo. Por lo tanto, la función de transición para esta máquina de Turing será de la forma: δ
×
→
×
×
: Q r Q r {R, L, U, D} Una máquina de Turing multidimensional simula una máquina de Turing estándar. Simplemente realizando todas sus computaciones en una única dimensión. Una máquina de Turing estándar también puede simular una máquina de Turing multidimensional y, por lo tanto, la complejidad y la flexibilidad adicional que se debe a la múltiple dimensión, no es una capacidad real. Para simular una máquina de Turing de dos dimensiones mediante una máquina de Turing estándar, primero se asociara una dirección a todas las celdas de la cinta. Una forma de hacerlo es fijar, de forma arbitraría, un lugar en la cinta a partir del cual se asignarán las coordenadas a las celdas de la misma forma que se realiza en un plano de coordenadas. Entonces, se de usara una cinta dos pistas paraceldas simular máquina de Turing. utilizando Una pista se encargará almacenar el de contenido de las y lalaotra las coordenadas, un símbolo (*) para separar los valores de las coordenadas. Para simular un movimiento de una máquina de Turing de dos dimensiones, esta máquina calcula la dirección de la celda a la que se moverá la máquina de Turing de dos dimensiones. Entonces, localiza la pista inferior, la celda con dicha dirección y cambia el contenido de la celda en la pista superior. MAQUINA DE TURING NO DETERMINISTA La máquina de Turing NO determinista es aquella que para un estado actual y el símbolo actualdedetransición la cinta, puede haber máquina, un númerosatisface finito de movimientos a elegir. Por lo tanto, la δ de dicha regla δ (q, σ ) ⊆ Q × r × {R, L} Por ejemplo, si la máquina de Turing tiene una transición a) = {(q1, b, R), (q2, a, L)} entonces los movimientos abbq1ab abbq2 bab son posibles. δ (q1,
abbbq1 b y
____________________________________________________________________ 74 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
74/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación Ya que cualquier máquina de Turing determinista es también no determinista, es lógico que una máquina de Turing determinista se puede simular mediante una no determinista. También una máquina de Turing determinista puede simular una no determinista. Por tanto, no se gana ninguna potencia adicional a causa del no determinismo. 4.5 HALTING PROBLEM Se dice que un proceso es computable o tiene solución algorítmica cuando puede ser representado por medio de una máquina de Turing que llega, en algún momento, a un estado final. Si la máquina de Turing llega a un estado final con un si, se estará haciendo una correspondencia entre ella y el modelo de decisión. Pero cuando la máquina no llega a este estado final pueden suceder dos cosas: que llega a un estado de trampa, de donde ya no salga, o que sencillamente nunca se pueda saber si terminará o no con la computación. Para el primer caso bastará con hacer una equivalencia entre este estado de trampa y el no delresultado. modelo deEndecisión; pero para el segundo hay que decidir seguir esperando no el 1936 Turing demostró matemáticamente queentre existen procesos parao los cuales la máquina nunca terminará con un si y nunca terminará con un no. En este caso se podría esperar toda la eternidad para ver si la maquina se detiene o no, sin poder llegar a saber si se detendrá en el siguiente instante. Se dice que el problema no es computable, o bien, que no es posible decidir, en un tiempo finito, si el proceso es representable algorítmicamente. Los problemas de este tipo reciben el nombre de problemas indecibles o “problemas no solucionables en forma algorítmica”, y representan una prueba de las capacidades del método matemático para explorar la realidad formal del mundo, ya que se está hablando de problemas todos los casos.que son posibles de describir, pero nunca representar por completo para Turing en la búsqueda de los problemas indecibles generalizo el concepto de máquina, como se explica a continuación: La máquina universal de Turing es, el modelo teórico de la computabilidad; basta con codificar cualquier máquina particular de Turing en su cinta para que sea entonces simulada y, por ende, pueda resolver ese problema particular algorítmicamente. Y con esto es cuando Turing establece el problema de parada (Halting Problem en ingles) con la siguiente pregunta: ¿Podrá la máquina universal determinar si la máquina –particular – que está siendo simulada se va a detener (en un estado final) o no? Supóngase que si puede: que existe una MT1 que determina si cualquier otra (que llamaremos MT0) se va a detener o no; es decir, termina con un si, si MT0 se define, y con un no si MT0 no se detiene (véase la figura 5.4). Entonces, también lo podrá hacer para la codificación de si misma (es decir, podrá determinar si MT1 se detendrá para cualquier caso particular o no). ____________________________________________________________________ 75 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
75/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
Figura 5.4 MT1 termina con un si, si MTO no se detiene o termine con un no, si MT0 no se detiene.
Ahora si se construye una nueva máquina, MT2, que se detiene si MT0 no lo hace, y viceversa (véase la figura 5.5). Esto se puede lograr si se hace que MT2 entre en un ciclo infinito cuando MT0 se detiene(mediante un par de estados de trampa, que hacen que la operación de la máquina oscile entre uno y otro). ¿Qué sucede si MT2 trabaja sobre la codificación de si misma? pues que se detendrá si MT2 no no seque detendrá si, y solo si, se detiene. Esto contradicción total. Lo se quedetiene, quiere ydecir tal máquina no puede existir; lo queesa una su vez equivale a decir que el problema que estamos estudiando es indecible. MT2
Figura 5.5 MT2 termina con un si, si MTO no se detiene o termina con un no, si MT0 se detiene.
En resumen los pasos fueron: 1. Se supone que se puede construir MT1, que determina si MT0 se detiene o no y que, por tanto, también puede determinar si ella misma lo hace cuando trabaja sobre su propia codificación. 2. Se construye MT2, que termina con un si, si MT0 no se detiene, y con no si MT0 se detiene mediante un par de estados especiales de trampa que causan que entre en un ciclo infinito cuando MT0 llega a un estado final. 3. cual cuando MT2 trabaja sobre su propia codificación se llega a una contradicción, lo significa que la suposición del punto 1 es inválida.
____________________________________________________________________ 76 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
76/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
V DECIBILIDAD 5.1 Lenguajes Decidibles. 5.2 El problemas de Halting. 5.3 Decidibilidad de Teorías Lógicas.
5.1 Lenguajes Decidibles Decidible: Se dice que un sistema formal es decidible si existe un algoritmo que diga en tiempo finito si una cadena cualquiera es un teorema(la confirmación de un análisis) o no lo es El identificar los problemas que son computables y los que no lo son tiene un considerable interés, pues indica el alcance y los límites de la computabilidad, y así demuestra los límites teóricos de los ordenadores. Además de las cuestiones sobre algoritmos, se han encontrado numerosos problemas menos “generales” que han resultado ser no computables
____________________________________________________________________ 77 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
77/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación Los lenguajes decidibles son cadenas de palabras calculables mediante funciones recursivas por lo cual también se les llamas lenguajes recursivos. Un posible alfabeto sería, digamos, {a, b} , y una cadena cualquiera sobre este alfabeto por ejemplo, . Un este que incluyera sería, esta cadena, sería: elababba conjunto de lenguaje todas las sobre cadenas quealfabeto, contienen el mismo número de símbolos que , por ejemplo La palabra vacía (esto es, la cadena de longitud cero) se permite en este tipo de lenguajes, notándose frecuentemente A diferencia de que ocurre con el alfabeto (que es un conjunto finito) y con cada palabra (que tiene una longitud también finita), un lenguaje puede estar compuesto por un número infinito de palabras. Esos son algunos ejemplos de problemas de decisión expresados como lenguajes: Las frases sobre el alfabeto {a, b} que contienen alternadas las letras a y b. Las frases sobre el alfabeto {a, b, c} que contienen igual número de • letras a y b. Las frases que describen un grafo con aristas etiquetadas con • números naturales que indican su longitud, dos vértices del grafo y un camino en el grafo que es el camino más corto entre esos dos vértices. Las frases que describen una máquina de Turing y una cinta de • entrada para esta máquina tal que la máquina se para en un tiempo finito al procesar esa entrada. •
Existen problemas que no pueden ser resueltos por una computadora, dado que las computadoras solamente pueden ejecutar algoritmos, esto es secuencia de instrucciones universalmente precisas y entendibles que resuelven cualquier instancia de problemas computacionales definidos rigurosamente. No es una sorpresa que esta idea intuitiva de algoritmo pueda ser definida formalmente. El correspondiente modelo matemático se llama máquina de Turing (Alan Turing, 1936). La teoría de computabilidad tiene como objetivo el estudio de problemas de decisión, con el fin de determinar si los mismos son teóricamente decidibles.
____________________________________________________________________ 78 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
78/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación Los problemas se pueden clasificar desde el punto de vista de la teoría de computabilidad en resolubles y no resolubles. Los problemas resolubles son objeto de estudio de la teoría de complejidad computacional. En el contexto de complejidad computacional, el interés está centrado en establecer una medida de la cantidad de recursos computacionales (en términos de tiempo y/o espacio) necesarios para resolver un determinado problema o equivalentemente reconocer un lenguaje
LOS PROBLEMAS RESOLUBLES SE SUBDIVIDEN EN TRATABLES E INTRATABLES Los problemas tratables son: Aquellos para los cuales existe un algoritmo eficiente que los resuelve. Los intratables son: Aquellos para los cuales no se conoce (o tal vez no exista) un algoritmo eficiente que los resuelva Lenguajes aceptables y decidibles - Lenguaje decidible: es aquel lenguaje L para el cual existe una máquina de Turing que puede aceptar cualquier cadena wÎL y rechazar cualquier cadena wÏL. - Lenguaje aceptable: es aquel lenguaje L para el cual no existe ninguna máquina de Turing que puede aceptar cualquier cadena wÎL y rechazar cualquier cadena wÏL. - Lenguajes recursivamente innumerables: lenguajes estructurados por frases. - Lenguajes recursivos: lenguajes decidibles por una máquina de Turing Lenguajes aceptables vs. Lenguajes decidibles
____________________________________________________________________ 79 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
79/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación Lenguaje aceptable La máquina separa al reconocer una cadena del lenguaje Lenguaje decidible La máquina dice si una cadena pertenece al lenguaje o no Implica reconocer el complemento del lenguaje ¡Existen lenguajes aceptables que no son decidibles! Un lenguaje es aceptable pero su complemento no.
5.2 El problemas de Halting. PROBLEMA DE LA PARADA (Problema de Halting) El problema de parada
para máquinas de Turing es el ejemplo de problema irresoluble más conocido. Fue además el primer problema que se demostró formalmente que no tenía solución. El concepto de problema indecidible o irresoluble se aplica a problemas de decisión, es decir, problemas a los que podemos decir si tienen solución o no. Dentro de estos problemas, existe un conjunto al que no le podemos asignar una respuesta, ni afirmativa ni negativa: no existe un algoritmo que nos permita determinar si el problema tiene solución. Una de las razones por la que es importante conocer que el problema de la parada no tiene solución, es que nos permite decidir si otros problemas son resolubles o no Definición Sea M una máquina de Turing arbitraria con un alfabeto de entrada Σ. Sea . ¿Puede decidirse si la máquina M se detendrá con la entrada w? Solución La respuesta a esta pregunta es negativa. No se puede determinar si una máquina de Turing se detiene con una entrada arbitraria. Demostración Para demostrarlo, supongamos que el problema de la parada tiene solución, es decir, supondremos que existe una máquina de Turing que es ____________________________________________________________________ 80 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
80/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación capaz de determinar si otra máquina de Turing para con una entrada determinada. Consideremos una máquina de Turing P, que recibe como entrada una máquina de unasecadena w codificadas la cintalaycadena una a continuación de la otraTuring (Mw),My yque encarga de ejecutar en M sobre w. La máquina P parará y aceptará la entrada si M para con w, y parará y rechazará la entrada si M no para con w. Modificamos la máquina P, creando una máquina P’ equivalente. Esta máquina no parará si M para con w, y parará si M no para con w. Ahora crearemos una máquina D, cuya función es la siguiente. Recibe una máquina M, la pasa por una máquina que se encarga de copiar la máquina M a continuación. Por lo tanto, a la salida de la máquina copia, la cinta contendrá MM (la codificación de la máquina repetida). A continuación, D coge este resultado y lo pasa a través de P’. Con esto intentamos decidir si la máquina M para con la entrada M. Es decir, si M para con la entrada M, entonces D no para, y si M no para con la entrada M, entonces D para. Por último, tomaremos una máquina D (denominaremos SD), y le aplicaremos como entrada una máquina D. SD aplica como entrada a la máquina que recibe, la misma máquina. Por lo tanto, esta máquina en principio parará si D no para con entrada D, y no parará si D para con entrada D. Pero si SD no para y si D para con entrada D, sabiendo que D=SD, llegamos a una contradicción, por que aplicar D a SD debería dar como resultado lo mismo que aplicar D sobre D. Del mismo modo para el otro caso. Por lo tanto, el problema de la parada no tiene solución. 5.3 Decibilidad de Teorías Lógicas.
Decibilidad: En lógica, el término decidible se refiere a la existencia de un método efectivo para determinar si un objeto es miembro de un conjunto de fórmulas.
____________________________________________________________________ 81 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
81/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación Un sistema lógico o teoría es decidible si el conjunto de todas las fórmulas válidas en el sistema es decidible. Es decir, existe un algoritmo tal que para cada fórmula del sistema es capaz de decidir en un número finito de pasos si la fórmula es válida o no en el sistema. Ejemplo: Lógica proposicional porque para ella un algoritmo; La la tabla de verdad tal que es paradecidible, cada fórmula que existe combina M formulas M atómicas, hay un número máximo N = 2 de pasos tal que tras completar estos N pasos el algoritmo siempre decidirá si la fórmula es válida o no. Cada "paso"
del algoritmo ha sido definido como una línea de la tabla de verdad.
Bibliografía:
Martín, John C. Introduction to Languages and the Theory of Computation . Ed. Prentice Hall. Hopcroft, John,Ullman,Jeffrey Introduction to Automatas Theory,Lenguages and computa Ed. Addison –Wesley. Kelly, Dean. Teoria de Automatas y lenguajes Formales. Ed. Prentice Hall. Sipser, Michael. Introduction to the Theory of Computation. PWS Publishing Company. Cohen, Daniel I.A. Introduction to Computer Theory. Ed. Wie Wiley. Davis, Martín D., Weyuker, Elaine. Computability, Complexity and Languages Fundamentales of Teorical Computer Science. Academic Press. Denning, Peter J. Machines, Langueges and Computation.Prentice Hall. ____________________________________________________________________ 82 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
82/83
5/11/2018
Antologia s Te or ia de La Computa c ion - slide pdf.c om
Teoría de la Computación
Lewis, Larry., Papadimitrion, Chistos H. Elements of the Theory of Computation. Prentice Hall. Rayward-Smith, V.S. A First Course in a Formal Language Theory. Mc Graw Hill. Jeffey E.F. Friedl. Mastering Regular Expressions. O’reilly & Associates, Inc. Brookshear. Teoría de la Computación, Lenguajes Formales, Autómatas y Complejidad. Addison Wesley. Isasi, Martínez y Borrajo. Lenguajes, Gramáticas y Autómatas. Addison Wesley
____________________________________________________________________ 83 _ I.S.C. Elda Rivera Saucedo http://slide pdf.c om/re a de r/full/a ntologia s-te or ia -de -la -c omputa c ion
83/83