Lenguajes Formales y Automatas, Isc
-
Upload
yair-armando -
Category
Documents
-
view
240 -
download
0
Transcript of Lenguajes Formales y Automatas, Isc
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 1/134
Lenguajes Formalesy Autómatas
Guía de Estudio de
Ingeniería en SistemasComputacionales
Cuatrimestre II
Vigencia periodo escolar Enero – Abril 2014
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 2/134
RECOMENDACIONES GENERALES.
EL SISTEMA EDUCATIVO UNIVERSITARIO AZTECA, ES UNA
INSTITUCIÓN EDUCATIVA DEL ESTADO DE CHIAPAS CON CRITERIOSDEFINIDOS PARA LOS CUALES TRABAJA DÍA A DÍA.
NUESTRAMISIÓN ES FORMAR JÓVENES PROFESIONISTAS, CON APTITUD EMPRENDEDORA, QUE LES PERMITA INCORPORARSE YDESARROLLARSE CON ÉXITO EN EL CAMPO LABORAL.
NUESTRAVISIÓN ES PROMOVER EDUCACIÓN DE CALIDAD PARACOADYUVAR CON EL DESARROLLO DE NUESTRO ESTADO.
ASÍ COMO TRABAJAR CON VALORES QUE NUESTRA COMUNIDADEDUCATIVA DESTACA, COMPROMISO CON LA SOCIEDAD, HONESTIDAD, AMOR Y DISCIPLINA.
POR TAL MOTIVO, SISTEMA EDUCATIVO UNIVERSITARIO AZTECA BRINDA A SUS ESTUDIANTES ESTA GUÍA DE ESTUDIO, ELABORADA CONLA PARTICIPACIÓN DE SUS CATEDRÁTICOS, COORDINADA POR ESTAINSTITUCIÓN EDUCATIVA, ORIENTADA HACIA EL MODELO EDUCATIVO PORCOMPETENCIAS MISMAS QUE SE DEFINEN COMO LA COMBINACIÓN DEDESTREZAS, CONOCIMIENTOS, APTITUDES, ACTITUDES.
ESTE MODELO EDUCATIVO COMO SE HA DICHO, BUSCA QUE LOSCONOCIMIENTOS CONSTRUIDOS POR ESTUDIANTES Y CON EL APOYO DELOS DOCENTES AL INTERIOR DEL AULA SEAN TRANSVERSALES Y
APLICADOS EN SITUACIONES PROBLEMÁTICAS DE LA VIDA DIARIA QUELES PERMITAN DESARROLLARSE CON ÉXITO EN EL CAMPO LABORAL.
POR ESTE MOTIVO, ESTA GUÍA DE ESTUDIO SE COMPONE DE ELEMENTOSCLAVE, PROPÓSITO DE LA ASIGNATURA Y DE CADA UNO DE LOSBLOQUES QUE LA COMPONEN, ASÍ COMO EJERCICIOS DIAGNÓSTICOS,FORMATIVOS Y SUMATIVOS QUE EXPLOREN EL ANTES, DURANTE Y
DESPUÉS DEL PROCESO DE ENSEÑANZA-APRENDIZAJE Y CON ELLO ABORDAR LAS TRES DIMENSIONES DE APRENDIZAJE, CONCEPTUAL,PROCEDIMENTAL Y ACTITUDINALMENTE.
SISTEMA EDUCATIVO UNIVERSITARIO AZTECA:
TE DESEA ÉXITO ESCOLAR EN TU COMUNIDAD EDUCATIVA.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 3/134
INGENIERÍA EN SISTEMAS COMPUTACIONALES
ASIGNATURA: LENGUAJES FORMALES Y AUTÓMATAS.
MODALIDAD MIXTA
CUATRIMESTRE: SEGUNDO.
LÍNEA DE FORMACIÓN:
CRÉDITOS: 7
OBJETIVO: AL TERMINAR EL CURSO, LOS ALUMNOSCONOCERÁN LAS BASES TEÓRICAS DE LACOMPUTACIÓN, ASÍ COMO LA RELACIÓN CONLOS ASPECTOS PRÁCTICOS DE LA TEORÍA DELENGUAJES, LA COMPATIBILIDAD Y LACOMPLEJIDAD.
ESTRUCTURA DEL CURSO
LENGUAJESFORMALES Y AUTOMATAS
BLOQUE I. AUTÓMATAS
FINITOS.
BLOQUE II.MAQUINAS DE
TURING YCOMPUTABILID
AD DEPROBLEMAS.
BLOQUE III.COMPLEJIDAD DE
PROBLEMAS.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 4/134
ÍNDICE
PRESENTACIÓN .................................................................................................... 6
BLOQUE I. AUTÓMATAS FINITOS ....................................................................... 9
1.1 ¿QUÉ ES UN AUTÓMATA? ............................................................... 10
1.2 SISTEMAS DE ESTADOS FINITOS .................................................. 11
1.2.1 Ejemplo 1: ............................................................................................. 13
1.3 AUTÓMATAS FINITOS DETERMINÍSTICOS. ................................... 14
1.3.1 Ejemplo 1: ............................................................................................. 15
1.4 CADENAS, ALFABETOS Y LENGUAJES .......................................... 19
1.4.1 Lenguajes Regulares ............................................................................ 23
1.5 MAQUINAS EQUIVALENTES ............................................................ 26
1.5.1 Autómatas Finitos no Determinísticos ................................................... 27
1.5.2 Autómatas Finitos con Movimientos ...................................................... 29
1.5.3 Autómatas Finitos de dos Direcciones .................................................. 31
1.5.4 Autómatas Finitos con Salida Maquinas Moore y Mealy ....................... 35
BLOQUE II MÁQUINAS DE TURING Y COMPUTABILIDAD DE PROBLEMAS 38
2.1 MAQUINA DE TURING. ..................................................................... 38
2.1.1 Definición .............................................................................................. 40
2.1.2 Ejemplos ............................................................................................... 41
2.2 CONSTRUCCIÓN DE UNA MÁQUINA DE TURING .......................... 42
2.3 LENGUAJES ACEPTADOS POR MÁQUINAS DE TURING .............. 44
2.4. HIPÓTESIS O TESIS DE CHURCH .................................................. 48
2.5 MAQUINAS DE TURING COMO ENUMERADORES ........................ 48
2.6 MAQUINAS DE TURING RESTRINGIDAS ........................................ 49
2.7 FUNCIONES RECURSIVAS .............................................................. 49
2.8 FUNCIONES PARCIALES ................................................................. 49
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 5/134
2.8.1 FUNCIONES INICIALES ...................................................................... 50
2.8.2 Funciones Recursivas Primitivas .......................................................... 51
2.9 FUNCIONES RECURSIVAS PARCIALES ......................................... 52
2.9.2 El Problema de Correspondencia de Post ............................................ 53
BLOQUE III. COMPLEJIDAD DE PROBLEMAS ................................................. 64
3.1 ANÁLISIS DE ALGORITMOS ............................................................. 65
3.2 COMPUTABILIDAD ............................................................................ 67
3.3 HIPÓTESIS DE CHURH ..................................................................... 69
3.4 COMPLEJIDAD DE UN ALGORITMO ................................................ 70
3.5 RECURSOS INFORMÁTICOS ........................................................... 70
3.6 CASOS PARA EL ESTUDIO DE LA COMPLEJIDAD ........................ 71
3.7 MEDIDAS ASINTÓTICAS Y ÓRDENES DE COMPLEJIDAD ............ 71
3.7.1 REGLAS PRÁCTICAS .......................................................................... 73
3.8 REGLAS PARA CALCULAR EL TIEMPO DE EJECUCIÓN EN EL
PEOR CASO DE LOS DISTINTOS TIPOS DE INSTRUCCIONES. ......... 73
3.9 ESPACIO Y TIEMPO POLINOMIAL ................................................... 76
3.10 LA CLASE DE PROBLEMAS NP ..................................................... 98
3.10.1 PROBLEMAS P Y NP ......................................................................... 99
3.11 MÉTODOS POR DESPLAZAMIENTO Y REDUCCIÓN. ................ 114
BIBLIOGRAFÍA .................................................................................................. 133
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 6/134
PRESENTACIÓN
Toda comunicación involucra la utilización de un lenguaje. Así por ejemplo las
personas se comunican con el resto en los diferentes idiomas conocidos comolenguajes naturaleso con las maquinas con lenguajes artificiales a través de un
conjunto de símbolos. Se define lenguaje como un conjunto de palabras, también
llamadas cadenas o sentencias que están formadas por símbolos de un alfabeto.
Así por ejemplo el idioma español está formado por un conjunto de palabras
compuestas por letras (símbolos del alfabeto español). Una gramática da cuenta
de la estructura de un lenguaje, es decir de las sentencias que lo forman,proporcionando las formas validas en que se pueden combinar los símbolos del
alfabeto. En el caso del español las oraciones deben ajustarse a una gramática.
Una consideración importante es la distinción entre lenguajes formales, que son
los que se trataran en esta antología y lenguajes naturales. Se puede decir que la
diferencia estriba en que los lenguajes formales obedecen a reglas
preestablecidas y por tanto se ajustan a ellas. Sin embargo los lenguajes naturales
(utilizados por el hombre) las reglas gramaticales que rigen su escritura han sido
desarrolladas con posterioridad para explicar esta última. Por otro lado también se
abordará la teoría sobre autómatas o maquina abstracta que no es más que un
dispositivo teórico capaz de recibir y transmitir información. Para realizar esta labor
manipula cadenas de símbolos que se le presentan a la entrada produciendo
otras cadenas de símbolos a su salida mediante un conjunto de estados que
contienen la información necesaria para poder deducir, dado un símbolo de
entrada, cuál será el símbolo de salida en cada momento.
En cuanto a la utilidad práctica teórica de esta asignatura, el bloqueI se ocupa de
las gramáticas, que permiten la especificación de lenguajes formales. El bloque II
(máquinas de Turing) es fundamental para el estudio de la computabilidad. El
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 7/134
últimobloque temático (lenguajes regulares y lenguajes independientes de
contexto) son importantes para la construcción de compiladores: el primero para la
construcción de analizadores léxicos y el segundo para la construcción de
analizadores sintácticos.
En el criterio de Evaluación se sugiere abordar por cada parcial un 50% de
Examen teórico-práctico, 20% de Entrega de Ejercicios, 20% Prácticas de
Programación y 10% participación.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 8/134
OBJETIVO GENERAL
En este material se estudia los modelos de máquinas computacionales, de
gramáticas formales y de los lenguajes correspondientes. Es importante que elalumno comprenda no solamente la forma en que funciona cada autómata, sino
sobre todo la correspondencia entre autómatas, lenguajes y gramáticas, y la
relación jerárquica entre ellos.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 9/134
9
BLOQUE I.AUTÓMATAS FINITOS
Instrucciones: Investigue en ACM o algún otro medio digital acreditado las
siguientes preguntas:
¿Qué es un Autómata?
Cuál es su aplicabilidad
Que impacto tiene en el Área de la Computación y la Electrónica.
Muestre 2 Ejemplos de su Aplicación.
Cuál es la relación existente de la Teoría de Conjuntos y los autómatas
Que es un diagrama de Transiciones
• La Teoría de Lenguajes Formales y
Autómatas es la base para el desarrollo
de compiladores, interpretes, software ytraductores. Por tanto se pretende dar a
conocer al alumno las maquinasabstractas que forman la base de la teoría
de la computación, sus características y
limitantes, estudiar los lenguajes
formales y sus propiedades e Introducir
los conceptos básicos de computabilidad
y complejidad computacional. Por último,
se busca que en este bloque de
información que el estudiante conozca lastécnicas de construcción de Autómatas
finitos para resolver cuando unasecuencia de símbolos forma parte de un
lenguaje regular.
PROPÓSITODEL BLOQUE I
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 10/134
10
Introducción
Antes de entrar en materia es primordial comprender lo siguiente:
¿Por qué es importante la teoría de lenguajes formales y autómatas?¿Qué es un lenguaje formal?
Conocemos lenguajes naturales...
Español, alemán, inglés, chino, árabe...cuando nacemos no sabemos ningunose
puede aprender cualquier lenguaje (por lo menos si se ha nacido en un entorno
adecuado)
El lenguaje es una secuencia de fonemas o símbolosque forman sílabas, palabras,
frases, párrafos, capítulos, novelas, libros, bibliotecas...que tiene una sintaxis
(fonética u ortografía)que tiene una gramática (reglas de concatenación y
construcción de palabras para formar frases)(que tiene un estilo (forma de unir
frases para generar textos)).
Por tanto los lenguajes formales serán meramente símbolos con una gramática
formal para agruparlos.
1.1 ¿QUÉ ES UN AUTÓMATA?
Dispositivos mecánicos o electrónicos o biológicosque en un punto de tiempo
están en un estadoque dado una razón (por ejemplo una señal de entrada)
cambian de estado.
Ejemplos son: reloj mecánico o electrónico, máquina para lavar, todo un
ordenador, ¿elcerebro?, actualmente ya se han construido relojes biológicos con
trozos de DNA artificial y síntesis de proteínasque visualizan su cambio de estado
con luz fluorescente.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 11/134
11
En el contexto de esta asignatura los autómatas serán máquinas matemáticas con
estados y funcionesde transición (donde se puede añadir entrada, salida, memoria
interna modificable, etc.).
En los años 60 se descubrió:Los conceptos de gramáticas (formales) y de los
autómatas que describen el mismo fenómenoy están muy relacionados con los
algoritmosy de esta manera surgió la Teoría de Computabilidad y la Teoría de
Complejidad, es decir,la búsqueda de respuestas a las preguntas tales como:
¿Qué es computable? y ¿Cuántos recursos(memoria, espacio, tiempo,
transiciones) se necesitan?
Es decir, la Teoría de los Lenguajes Formales (y de los Autómatas) esto permite
responder a otras preguntasesenciales de la Informática, por ejemplo:
Tesis de Church: Todo lo que es computable se puede calcular con una Máquina
de Turing.Existen problemas que no son computables.
Por tanto en pocas palabras sin los Lenguajes formales y autómatas: No hay
lenguajes, no hay compiladores, no hay programas, prácticamente no habría nada.
1.2 SISTEMAS DE ESTADOS FINITOS
Un autómata finito o máquina de estado finito es un modelo matemático de un
sistema que recibeuna cadena constituida por símbolos de un alfabeto y determina
si esa cadena pertenece al lenguajeque el autómata reconoce.Las máquinas de
estado finito son una herramienta muy útil para especificar aspectos
relacionadoscon tiempo real, dominios reactivos o autónomos, computación
reactiva, protocolos, circuitos,arquitecturas de software, etc. El modelo de FSM
(Finite State Machine) es un modelo que poseesintaxis y semántica formales y
que sirve para representar aspectos dinámicos que no se expresan enotros
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 12/134
12
diagramas.Los nodos representan los posibles estados de aquello que se desea
modelar. Las etiquetasrepresentan eventos que provocan un cambio. Las aristas
determinan de qué manera cada estado,dado un evento, deriva en otro estado.
Como una perspectiva complementaria podemos mencionar que un autómata
finito es considerado un modelo matemático de una máquina que acepta cadenas
de unlenguaje definido sobre un alfabeto A. Que consiste en un conjunto finito de
estados y un conjuntode transiciones entre esos estados, que dependen de los
símbolos de la cadena de entrada. Elautómata finito acepta una cadena x si la
secuencia de transiciones correspondientes a lossímbolos de x conduce desde el
estado inicial a un estado final.
Si para todo estado del autómata existe como máximo una transición definida para
cadasímbolo del alfabeto, se dice que el autómata es determinístico (AFD). Si a
partir de algúnestado y para el mismo símbolo de entrada, se definen dos o más
transiciones se dice que el autómata es no determinístico (AFND).
Formalmente un autómata finito se define como una 5-uplaM = <E, A, d, e0, F>
dondeE: conjunto finito de estadosA: alfabeto o conjunto finito de símbolos de
entradad: función de transición de estados, que se define como- d: E x A ® E si el
autómata es determinístico- d: E x A ® P(E) si el autómata es no determinístico
(P(E) es el conjunto potenciade E, es decir el conjunto de todos los subconjuntos
de E)e0: estado inicial; e0 Î EF: conjunto de estados finales o estados de
aceptación; F Í EGeneralmente se asocia con cada autómata un grafo dirigido,
llamado diagrama de transiciónde estados. Cada nodo del grafo corresponde a un
estado. El estado inicial se indica medianteuna flecha que no tiene nodo origen.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 13/134
13
Los estados finales se representan con un círculo doble.
Si existe una transición del estado e i al estado e j para un símbolo de entrada a,
existe entoncesun arco rotulado a desde el nodo ei al nodo e j; es decir que ϸ(ei, a)= e j, se representa en eldiagrama
1.2.1 Ejemplo 1:
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 14/134
14
Ejemplo 2:
Autómata finito determinístico que acepta el lenguaje
1.3 AUTÓMATAS FINITOS DETERMINÍSTICOS.
Definición formal:
Es un conjunto finito de estados, típicamente Q.Un alfabeto de símbolos de
entrada, típicamente .Un estado es el estado inicial / de comienzo, típicamente
q0 .
Cero o más estados finales / de aceptación; este conjunto es típicamente F .
Una función de transición, típicamente . Esta función:Toma un estado y un
símbolo de entrada como argumentos.Regresa un estado.
Una “regla” de se escribiría como (q,a) = p, donde q y p son estados, y a es un
símbolo de entrada.
Intuitivamente: Si el AF está en un estado q, y se recibe una entrada a, entonces
el AF va al estado p (nota: q = pOK).
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 15/134
15
Podemos pensar de un autómata como un dispositivo que lee desde una cinta con
símbolos y querealiza cambios de estados internamente:auto
Dibujamos los autómatas como grafos dirigidos (no introducimos el concepto
matemático degrafos formalmente), los estados representan los nodos del grafo, y
dibujamos una arista atribuidacon un símbolo entre dos nodos si existe unatransición correspondiente.
Es decir, el estado inicial está marcado por una flecha y los estados finales están
marcados condoble círculo.
1.3.1 Ejemplo 1:
Un AFD que „acepta‟ la cadena de 0s y 1s donde los números de ceros y unos es
par: cerounopar
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 16/134
16
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 17/134
17
Ejemplo 2: Un Autómata A que acepta L = { x 01y : x , y {0,1}*}
- El DFA acepta cadenas que tienen 01 en alguna parte de la cadena
- El lenguaje del DFA es el conjunto de cadenas que acepta
- {w | w tiene la forma x 01y para algunas cadenas x y y que consisten sólo de0‟s y 1‟s}
El Autómata A = ({q0, q1, q2}, {0,1}, , q0, {q1})
Autómata representado con una tabla de transiciones:
0 1 q0 q2 q0
q1 q1 q1
q2 q2 q1
Autómata representado con un diagrama de transiciones:
Convenciones
Se utilizan algunas convenciones para evitar mencionar el tipo de cada nombre,
para esto utilizamos las siguientes reglas:
Los símbolos de entrada son a, b, etc., o dígitos.
Las cadenas de símbolos de entrada son u, v , ..., z .
Los estados son q, p, etc.
q0 q2
Startq1
0 1
1
0,1
0
q0 q2
Startq1
0 1
1
0,1
0
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 18/134
18
Diagrama de Transiciones
Un AF se puede representar por medio de un grafo; los nodos representan
estados; un arco de p a q se etiqueta con el conjunto de símbolos de entrada a tal
que (q,a) = p.
No hay arco si a no existe.
El estado de inicio se indica con la palabra “start” con una flecha.
Los estados de aceptación tienen doble círculo.
Extensión de a Rutas ’
Intuitivamente, un FAacepta una cadena w = a1a2 ...an si hay una ruta en el
diagrama de transiciones que:
Empieza en el estado de inicio,
Termina en un estado de aceptación, y
Tiene una secuencia de etiquetas a1, a2 , ..., an.
Ejemplo 3:
q0 q2
Startq1
0 1
1
0,1
0
q0 q2
Startq1
0 1
1
0,1
0
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 19/134
19
1.4 CADENAS, ALFABETOS Y LENGUAJES
Cadenas o Palabras
Una secuencia finita de símbolos de un alfabeto es una palabra sobre dicho
alfabeto.
∑1: 0, 1, 00, 01, 11, 000, 1001101
∑2: a, aa, abb, ababa
∑3: napa, palabra
∑6: a, ab, aab, aaab, abab
Escribimos la palabra vacía, es decir, la palabra que no contiene ningún símbolo,
como £.Usamos normalmente letras minúsculas para anotar palabras,
preferiblemente desde el final del alfabeto.El símbolo £ no pertenece a ningún
alfabeto, £ ≠ ∑ la longitud de una palabra sobre un alfabeto es el número de
símbolos que contiene.
∑1 : w = 0 =) |w| = 1, w = 1001101 =) |w| = 7
∑2 : w = a =) |w| = 1, w = ababa =) |w| = 5
∑3 : w = napa =) |w| = 2, w = palabra =) |w| = 3 ∑6 : w = ab =) |w| = 2, w = aab =) |w| = 1 o |w| = 2 ??
Dependiendo del alfabeto puede resultar difícil dividir una palabra en sus
símbolos. Si se puede dividir todas las palabras sobre un alfabeto solamente de
una manera en sus símbolos, se llama tal alfabeto libre. Solemos usar solamente
alfabetos libres.
|£| = 0
El conjunto de todas las palabras que se pueden formar sobre un alfabeto ∑más la
palabra vacía se llama el universo del alfabeto W(∑).
W(∑) = {∑} [ {w | w es palabra sobre∑}
∑CW(∑)
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 20/134
20
£ es palabra de cualquier universo, £ perteneceW(∑).
La cardinalidad del universo es infinito (pero contable o enumerable, vemos más
adelante lo que significa).
Si el alfabeto es libre (o mejor decir, un generador libre), escribimos ∑*por W(∑).
Podemos concatenar palabras, entonces sean w, v y u palabras en ∑*.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 21/134
21
Alfabetos
Un alfabeto es un conjunto finito no vacío de símbolos.
Usamos meta –símbolos (tal como {, }, =, y la coma) para escribir sobre lo que
hablamos. Desde el contexto siempre será claro, si se trata de un símbolo del
alfabeto o si se trata de un meta –símbolo.
Usamos subíndices para distinguir diferentes alfabetos.
Usamos normalmente las minúsculas como alfabeto = {a, . . . , z}, en los ejemplos
normalmente letras desde el principio del alfabeto.
Cardinalidad del alfabeto (número de elementos del alfabeto): |∑| > 0, |∑| <∞
Lenguajes
Un lenguaje es cualquier subconjunto del universo sobre algún alfabeto, es decir,
o también
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 22/134
22
Ejemplo:
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 23/134
23
1.4.1 Lenguajes Regulares
Un lenguaje regular es un tipo de lenguaje formal que satisface las siguientes
propiedades:Los lenguajes más sencillos que se considerarán son los lenguajes
regulares, es decir, los que se pueden generar a partir de los lenguajes básicos,con la aplicación de las operaciones de unión, concatenación y * de Kleene un
número finito de veces.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 24/134
24
Puede ser reconocido por:un autómata finito determinista y un autómata finito no
determinista.
Un autómata de pila, un autómata finito alterno, una máquina de Turing de solo
lectura.Es generado por:
Una gramática regular y una gramática de prefijos
Es descrito por:
Una expresión regular
Lenguajes Regulares sobre un Alfabeto
Un lenguaje regular 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 todas las cadenas sobre el alfabeto {a, b} que contienen un número par de
aes o el lenguaje que consiste en varias aes seguidas de varias b´es.
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.
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 lenguajeL= {an bn, n > 0} es un lenguaje no regular dado que no es
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 25/134
25
reconocido por ninguna de las formas de representación anteriormente
enumeradas.
Propiedades de Lenguajes RegularesDado que la longitud de las cadenas de los lenguajes regulares no está acotada,
los lenguajes regulares incluyen siempre cadenas cuya longitud es mayor que el
número de estados del autómata que las reconoce. Lo anterior implica que para
cadenas cuya longitud es mayor al número de estados, al menos un estado será
visitado mas de una vez, llamemos a ese estado el estado k. Sea i el estado
inicial y j un estado final.
Figura.- El lema del bombeo
En la figura, u es una cadena que lleva al automata del estado i al k pasando por
una variedad de estados, por esa razón se dibujó con linea punteada; v es una
cadena que lleva al autómata del estado k de nuevo al k pasando por un numero
indefinido de estados, que por supuesto depende de la longitud de la misma
cadena y finalmente t es una cadena que lleva al autómata del estado k al j.
El lema del bombeo, nos dice que si uvt es una cadena también lo debe de ser ut
, así como uvvt y en general nt uvn si es que el lenguaje en cuestión es un
lenguaje regular.La utilidad de este lema radica precísamente en decidir si un
lenguaje es regular o nó, puesto que no queremos perder el tiempo buscando un
autómata finito que reconozca un lenguaje que ni siquiera es regular.
Formalmente, el lema del bombeo puede ser expresado de la siguiente manera:
),1||,()||,( Lt uvvuvt z iuvt n z L z z n i L
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 26/134
26
Recuerde que |z| se lee “la longitud de la cadena z”, y también recuerde que el
operador “existe” nos permite cambiar nuestra elección de n, así como de u,v y t,
en cambio para una cierta elección de estas variables el operador “para todo” nos
permite demostrar que el lenguaje no es regular mediante un contraejemplo.
1.5 MAQUINAS EQUIVALENTES
Una Máquina de Estado Finito (Finite State Machine), llamada también Autómata
Finito es una abstracción computacional que describe el comportamiento de un
sistema reactivo mediante un número determinado de Estados y un número
determinado de Transiciones entre dicho Estados.
Las Transiciones de un estado a otro se generan en respuesta a eventos de
entrada externos e internos; a su vez estas transiciones y/o subsecuentes estados
pueden generar otros eventos de salida. Esta dependencia de las acciones
(respuesta) del sistema a los eventos de entrada hace que las Máquinas de
Estado Finito (MEF) sean una herramienta adecuada para el diseño de Sistemas
Reactivos y la Programación Conducida por Eventos (Event Driven Programming),
cual es el caso de la mayoría de los sistemas embebidos basados en micro
controladores o microprocesadores.
Las MEF se describen gráficamente mediante los llamados Diagramas de Estado
Finito (DEF), llamados también Diagramas de Transición de Estados. Existen
básicamente las siguientes maquinas de estado:
Máquinas secuenciales de Mealy:
Dada una palabra de entrada genera otra de salida, los símbolos de salida
dependen del estado y del símbolo de entrada.
Máquinas secuenciales de Moore
Dada una palabra de entrada genera otra de salida, los símbolos de
salidadependen sólo del estado.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 27/134
27
Autómatas probabilísticos o estocásticos
En su funcionamiento interviene el concepto de probabilidad, asociada a
que se produzca una determinada transición.
1.5.1 Autómatas Finitos no Determinísticos
Son autómatas en cuyo diagrama de transición existen varios arcos etiquetados
con elmismo símbolo saliendo del mismo estado, o bien hay transiciones no
existentes.En un momento dado, en un AFND puede suceder lo siguiente:
• Existen varias transiciones posibles aplicables.
• No existe ninguna transición aplicable (máquina no totalmente definida).
- Las transiciones de los AFND pueden ser inciertas.
- Un AFND acepta una cierta cadena si es posible que tras analizarla el autómata
quedeen uno de los estados de aceptación.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 28/134
28
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 29/134
29
1.5.2 Autómatas Finitos con Movimientos
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 30/134
30
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 31/134
31
1.5.3 Autómatas Finitos de dos Direcciones
Un 2DFA es un quinteto
),,,,( 0 F qQ M
Donde: },{: R LQQ
De manera que un 2DFA es un DFA que despues de cambiar de un estado a otro,
se puede mover a la izquierda en la cinta de entrada en lugar de hacerlo siempre
hacia la derecha como los FA's convencionales.
Una descripción instantánea (ID) del 2DFA tiene la forma xqy donde x es la parte
de la cadena de entrada que se encuentra a la iquierda de la "cabeza" de lectura
del autómata, q es el estado en el que se encuentra el sutómata y y es la parte dela cadena de la entrada que está a la derecha de la cabeza de lectura. El carácter
que leerá el autómata es entonces el primero de y.
Entre dos instantáneasconsecutivas se utiliza el símbolo para indicar la
transición de una ID a otra en un solo paso
k k I I 1
Usamos*
para indicar que de una instantánea se puede llegar a otra en varios
pasos
El lenguaje que reconoce un 2DFA es:
)|{)(*
0 F p ywpwqw M L
Ej. El siguiente 2DFA reconoce cadenas formadas de 0's y 1's donde no haya dos
1's consecutivos. Para hacerlo, recorre la cadena de entrada de iquierda a
derecha y al encontrar el primer 1 cambia al estado1
q para "recordar" que ya
encontró un 1 y esta buscando el segundo 1 recorriendo la cadena de entrada a la
derecha. Al encontrar el segundo 1 cambia al estado2
q y cambia de sentido
buscando ahora hacia la izquierda al menos un 0, si lo encuentra regresa al
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 32/134
32
estado inicial0
q y continua su recorrido hacia la derecha. Todos los estados son
finales, es:
a) ),()0,( 00 Rqq b) ),()1,( 10 Rqq
c) ),()0,( 11 Rqq d) ),()1,( 21 Lqq
e) ),()0,( 02 Rqq f) ),()1,( 22 Lqq
Para la entrada 0100101
La secuencia de ID's sería:
01001010q
1001010 0q 0010101 1q 0101010 1q
1010100 1q 0101010 2q1010100 0q 0101001 1q
0101001 2q1010010 0q 10100101q
El comportamiento del 2DFA puede observarse en el siguiente diagrama para la
misma entrada, solo considerese que cuando el autómata cambia de sentido, en
lugar de desplazarse permanece en el mismo lugar de la cinta de entrada pero lee
el carácter de la izquierda si cambió su sentido hacia la izquierda y el de laderecha si cambió su sentido a la derecha en lugar desplazarse y de siempre leer
el carácter de la derecha.
0 1 0 0 1 0 1
0q 0
q 1q 1q 1q
2q
0q 1q 1q
2q
0q 1q
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 33/134
33
Las columnas de estados ubicadas entre símbolos de la cadena de entrada se
conocen como secuencias cruzadas. Las secuencias válidas deben cumplir con
las siguientes características:
- Deben ser de longitud impar- Los estados "Derechos" deben ocupar posiciones impares
- Los estados "Izquierdos" deben ocupar posiciones pares
- No debe haber estados repetidos en una secuencia
Los estados "Derechos" son aquellos a los que la transición hacia ellos tiene
implícito un avance hacia la derecha y los "Izquierdos" son los que al hacer una
transición hacia ellos simpre se hace un avance hacia la izquierda.
Decimos que la secuencia k qqq ,...,, 21 verifica por la derecha a la secuencia
l p p p ,...,, 21 bajo el símbolo b cuando se asegura la posibilidad de que esas dos
secuencias se ubicaran a la izquierda y derecha respectívamanete bajo el símbolo
b en el diagrama de transiciones de estados para alguna cadena que forme parte
del lenguaje que reconoce el autómata comenzando por la derecha. Decimos que
la verifica por la izquierda si se comienzara por la izquierda.
Para averiguar cuales secuencias verifican a cuales bajo el símbolo b podemos
seguir el siguiente procedimiento recursivo:
Base: La cadena nula concuerda por la iquierda y por la derecha a la cadena nula
1ª Regla .- Si la secuencia k qq ,...,3 concuerda con la secuencia l p p p ,...,, 21 por la
derecha bajo el símbolo b y además),(),( 21 Lqbq
Entonces, la secuencia k qqq ,...,, 21 concuerda con la secuencia l p p p ,...,, 21 por la
derecha bajo el símbolo b.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 34/134
34
2ª Regla .- Si la secuenciak qq ,...,2 concuerda con la secuencia l p p ,...,2 por la
izquierda bajo el símbolo b y además
),(),( 11 R pbq
Entonces, la secuencia k qqq ,...,, 21 concuerda con la secuencia l p p p ,...,, 21 por la
derecha bajo el símbolo b.
3ª Regla .- Si la secuencia k qqq ,...,, 21 concuerda con la secuencia l p p ,...,3 por la
izquierda bajo el símbolo b y además
),(),( 21 R pb p
Entonces, la secuenciak
qqq ,...,,21
concuerda con la secuencial
p p p ,...,,21
por la
izquierda bajo el símbolo b.
4ª Regla .- Si la secuencia k qq ,...,2 concuerda con la secuencia l p p ,...,2 por la
derecha bajo el símbolo b y además
),(),( 11 Lqb p
Entonces, la secuencia k qqq ,...,, 21 concuerda con la secuencia l p p p ,...,, 21 por la
izquierda bajo el símbolo b.
Determinando cuales secuencias verifican a cuales por la derecha, podemos
obtener un NFA a partir de un 2DFA.
Ejemplo, Obtengamos un NFA equivalente al 2DFA del ejemplo anterior.
para este autómta, las secuencias válidas son solamente:
0q
1q
120 ,, qqq
021 ,, qqq
Bajo el símbolo 0 concuerdan:
nul por la derecha a nul Base
nul por la izquierda a nul Base
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 35/134
35
0q por la derecha a
0q (1), Regla 2ª y (a)
1q por la derecha a
1q (1), Regla 2ª y (c)
nul por la izquierda a 02qq (2), Regla 3ª y (e)
1q por la derecha a 021 qqq (5), Regla 2ª y (c)
De la misma forma obtenemos las concordancias bajo el símbolo 1
Con esa colección de concordancias revisamos si en base a una de las cuatro
reglas, y la tabla de transciciones del autómata de dos sentidos podemos
aumentar la colección. cuando ya no se pueda aumentar dicha colección
descartamos las concordancias por la izquierda y en base a las concordancias por
la derecha formamos la tabla de transiciones del autómata de un solo sentido.
Para el ejemplo, la tabla será:
Concordancias
por la derecha
bajo 0
Concordancias
por la derecha
bajo 1
][0
q ][0
q ][ 1q
][ 1q ][ 1q , ],,[ 021 qqq -
],,[ 120 qqq - -
],,[ 021 qqq - ][ 1q
1.5.4 Autómatas Finitos con Salida Maquinas Moore yMealy
Las máquinas de Mealy y Moore son circuitos síncronos. Un circuito síncrono es
un circuito digital en el cual sus partes están sincronizadas por una señal de reloj.
En un circuito síncrono ideal, cada cambio en los diferentes niveles lógicos es
simultáneo. Estas transiciones se realizan después de un cambio de nivel de una
señal llamada reloj. Idealmente la entrada a cada elemento de almacenamiento
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 36/134
36
alcanza su valor final antes de que la siguiente señal de reloj ocurra, por lo tanto el
comportamiento de un circuito se puede predecir exactamente. Se requiere se
cierto retardo para cada operación lógica, por lo que existe una máxima rapidez en
el que cada sistema síncrono puede responder. El análisis de un diagrama detiempos puede darnos esta rapidez.
Una máquina de Mealy es una máquina de estados finita, donde las salidas están
determinadas por el estado actual y la entrada. Esto significa que en el diagrama
de estados se incluye una señal de salida para cada arista de transición. Por
ejemplo, en la trayectoria de un estado 1 a un estado 2, si la entrada es cero la
salida puede ser uno, y se debe poner sobre la arista la etiqueta “0/1”.
En contraste, la salida de una máquina de estado finito Moore (máquina de
Moore), depende solo del estado actual y no depende de la entrada actual. Por lo
tanto, losestados de una máquina de Moore son la unión de los estados de la
máquina de Mealy y el producto cartesiano de estos estados y alfabeto de entrada
(posibles entradas).
Definición formal:
Una máquina de Moore se define como una tupla (secuencia finita) de 5{S, Σ, Λ, T,
G} que consiste de:
• Un conjunto finito de estados ( S )
• Un conjunto finito llamado alfabeto de entrada ( Σ )
• Un conjunto finito llamado alfabeto de salida ( Λ )
• Una función de transición (T : S × Σ → S) que dirige a cada estado y a una
entrada al siguiente estado.• Una función de salida (G : S → Λ) que dirige a cada estado al alfabeto de salida.
El número de estados en una máquina de Moore es mayor o igual al número de
estados a su correspondiente máquina de Mealy.
Una máquina de Mealy es una tupla de 6 (S, S0, Σ, Λ, T, G), que consiste de:
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 37/134
37
• Un conjunto finito de estados ( S )
• Un estado inicial S0 el cual es un elemento de (S)
• Un conjunto finito llamado alfabeto de entrada ( Σ )
• Un conjunto finito llamado alfabeto de salida ( Λ )• Una función de transición (T : S × Σ → S)
• Una función de salida (G : S × Σ → Λ)
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 38/134
38
BLOQUE II MÁQUINAS DE TURING Y COMPUTABILIDAD DE
PROBLEMAS
INSTRUCCIONES: LEE, REFLEXIONA Y CONTESTA LOS
PLANTEAMIENTOS CORRESPONDIENTES.
QUÉ ENTIENDES POR AUTÓMATA.
CON EL APOYO DE LA LECTURA DEFINE QUÉ ES UNA MÁQUINA
TURING.
2.1 MAQUINA DE TURING.
Este tipo de autómata (para los fines de esta Antología, usaremos esa palabra
para denotar a una máquina teórica) fue propuesto por Alan Turing, mientras
estudiaba modelos algorítmicos utilizando un modelo computacional: básicamente
consta de un mecanismo de control y un flujo de entrada que concebiremos como
una cinta, además, estás máquinas poseen una cabeza de lectura que pueden
desplazar hacia atrás o hacia adelante y también pueden escribir en la cinta. El
mecanismo de control sólo puede hallarse en uno de un número finito de estados,
uno de tales estados lo denominaremos estado inicial y nos representará el estado
en el cual la máquina comienza los cálculos; mención aparte merece un segundo
estado especial del conjunto de estados de la máquina: el estado de parada o
detenimiento el cual se caracteriza porque marca el final de los cálculos al llegar la
máquina a este.
La idea subyacente es el concepto de que una máquina de Turing puede verse
como un autómata ejecutando un procedimiento efectivo definido formalmente,
donde el espacio de memoria de trabajo es ilimitado, pero en un momento
determinado sólo una parte finita es accesible.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 39/134
39
LA COMPLEJIDAD DE LOS CÁLCULOS EN UNA MAQUINA DE TURING.
Consideremos la ejecución de una transición en una máquina de Turing como un
paso en los cálculos de la máquina y definamos como complejidad temporal enuna máquina de Turing el número de pasos que se ejecutan durante los cálculos.
Por otra parte, la complejidad espacial en una máquina de Turing se define como
el número de celdas de la cinta que dicho cálculo requiere. Es importante hacer
notar que la complejidad espacial y temporal no tienen que ser en lo absoluto
iguales, por ejemplo, durante la ejecución de un cálculo: supongamos que una
máquina escribe 100 veces en la misma celda, ello significa que el cálculo tiene
complejidad temporal de 100 pero complejidad espacial de 1. Otro aspecto a
tomar en cuenta es que las complejidades espacial y temporal no son del todo
independientes entre sí, debido a que en n pasos, una máquina de Turing tiene
acceso a un máximo de n+1 celdas de la cinta. Por consiguiente, si la
com plej idad tempo ral de una máqu ina de Turing es n, ento nces la
complejid ad esp acial del cálcu lo no será mayo r qu e n+1.
Al evaluar la complejidad de un algoritmo, se manejan entonces variaciones en el
rendimiento del mismo, identificando para ello las situaciones del mejor y peor
escenario de desempeño, buscando con ello garantizar que cualquier aplicación
del algoritmo se halle en ese intervalo. Lo que se acostumbra en la práctica es
adoptar un punto de vista pesimista y definir la complejidad por su rendimiento en
el peor de los casos, aunque, aun así, las condiciones necesarias para estudiar un
algoritmo varían de acuerdo con la situación en la que se ejecuta; es decir, en un
ambiente de aplicación, no siempre bastan las evaluaciones del peor caso, mejor
caso o incluso del caso promedio; en cambio, hay que considerar el ambiente enel que se ejecutará el algoritmo.
Finalmente, se hace énfasis en que al evaluar complejidad en una máquina de
Turing no se toma en cuenta el conocimiento preciso de los mecanismos
involucrados para la ejecución del algoritmo, por lo que los resultados obtenidos
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 40/134
40
son válidos en las computadoras más antiguas como las más modernas. La
importancia de ello se da a notar en el momento en el que se consideran
algoritmos con complejidades temporales o espaciales cuya ejecución no llega a
ser en absoluto práctica.
2.1.1 Definición
Definimos una máquina de Turing como una 7-tupla M = (Q, , , s, Б, F , ), donde
Q Es un conjunto finito de estados
Es un alfabeto de entrada
Es un alfabeto llamado alfabeto de la cinta
sQ Es el estado inicial
Б Es el símbolo blanco
F Q Es el conjunto de estados finales o de aceptación
: QQ {L, R } Es una función parcial que se llama función de
transición.
La máquina de Turing posee una cinta dividida en celdas, cada celda es capaz de
almacenar un símbolo. Además posee una cabeza lectora/escritora que lee y
escribe un símbolo en la cinta. Inicialmente la cinta contiene b en todas sus
celdas. La función de transición transforma pares (q, ) en ternas de la forma
( p, t , X ), donde p es el siguiente estado, t es el símbolo escrito en la cinta y X es el
movimiento de la cabeza lectora/escritora, que puede ser L o R .
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 41/134
41
2.1.2 Ejemplos
Por ejemplo, la transición(q1, a) = (q5, b, R ) provoca que la máquina pase de una
configuracióna la configuraciónSe puede dar una descripción instantánea de la
máquina de Turing similar a la de los ADPND, para la transición anterior sería el
carácter subrayado indica la posición de la cabeza lectora/escritora.
(q1, abb) (q5, bbb)
Otra posibilidad es anteponer el estado actual al carácter señalado por la cabeza
lectora/escritora como se muestra
q1abbbq5bb
MÁQUINAS DE TURING COMO ACEPTADORES DE LENGUAJES
Sea M = (Q, , , s, Б, F , ) una máquina de Turing. Entonces el lenguajeaceptado por M esL(M ) = {w * | q1w *w 1 pw 2 para pF y w i
*}
Los lenguajes aceptados por las máquinas de Turing se conocen como lenguajes
recursivamente enumerables.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 42/134
42
El siguiente grafo muestra una máquina de Turing transforma una cadena de la
formaanbam enan+mbmediante la siguiente función de transición:
(q1, a) = (q1, a, R ) (q1, b) = (q2, a, R )
(q2, a) = (q2, a, R )
(q2, Б) = (q3, Б, L)
(q3, a) = (q4, b, L)
(q4, a) = (q4, a, L)
(q4, Б) = (q5, Б, R )
La siguiente máquina de Turing reconoce el lenguaje anbn.
(q1, a) = (q2, c , R )
(q2, a) = (q2, a, R )
(q2, d ) = (q2, d , R )
(q3, b) = (q3, d , L)
(q3, d ) = (q3, d , L)
(q3, a) = (q3, a, L)
(q3, c ) = (q1, c , R )
(q1, d ) = (q4, d , R )
(q4, d ) = (q4, d , R )
(q4, Б) = (q5, Б, L)
2.2 CONSTRUCCIÓN DE UNA MÁQUINA DE TURING
La máquina de Turing consta de un cabezal lector/escritor y una cinta infinita en la
que el cabezal lee el contenido, borra el contenido anterior y escribe un nuevo
valor. Las operaciones que se pueden realizar en esta máquina se limitan a:
avanzar el cabezal lector/escritor para la derecha;
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 43/134
43
avanzar el cabezal lector/escritor para la izquierda.
El cómputo es determinado a partir de una tabla de estados de la forma:
(Estado,valor) (\nuevo estado, \nuevo valor, dirección)
Esta tabla toma como parámetros el estado actual de la máquina y el carácter
leído de la cinta, dando la dirección para mover el cabezal, el nuevo estado de la
máquina y el valor a ser escrito en la cinta.
Con este aparato extremadamente sencillo es posible realizar cualquier cómputo
que un computador digital sea capaz de realizar.
Mediante este modelo teórico y el análisis de complejidad de algoritmos, fue
posible la categorización de problemas computacionales de acuerdo a su
comportamiento, apareciendo así, el conjunto de problemas denominados P y NP,
cuyas soluciones en tiempo polinómico son encontradas según el determinismo y
no determinismo respectivamente de la máquina de Turing.
De hecho, se puede probar matemáticamente que para cualquier programa de
computadora es posible crear una máquina de Turing equivalente. Esta prueba
resulta de la Tesis de Church-Turing, formulada por Alan Turing y Alonzo Church,
de forma independiente a mediados del siglo XX.
La idea subyacente en el concepto de máquina de Turing es una persona
ejecutando un procedimiento efectivo definido formalmente, donde el espacio de
memoria de trabajo es ilimitado, pero en un momento determinado sólo una partefinita es accesible. La memoria se divide en espacios de trabajo denominados
celdas, donde se pueden escribir y leer símbolos. Inicialmente todas las celdas
contienen un símbolo especial denominado “blanco”. Las instrucciones que
determinan el funcionamiento de la máquina tienen la forma, “si estamos en el
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 44/134
44
estado x leyendo la posición y, donde hay escrito el símbolo z, entonces este
símbolo debe ser reemplazado por este otro símbolo, y pasar a la leer la celda
siguiente, bien a la izquierda o bien a la derecha. La máquina de Turing puede
considerarse como un autómata capaz de reconocer lenguajes formales. En esesentido es capaz de reconocer los lenguajes recursivamente e numerables, de
acuerdo a la jerarquía de Chomsky. Su potencia es, por tanto, superior a otros
tipos de autómatas, como el autómata finito, o el autómata con pila, o igual a otros
modelos con la misma potencia computacional.
2.3 LENGUAJES ACEPTADOS POR MÁQUINAS DE TURING
Definición. Un lenguaje L sobre un alfabeto se dice que es recursivamente
enumerable si es aceptado por alguna máquina de Turing. Es decir, L es
recursivamente enumerable si para alguna máquina de Turing M tenemos queL(M )
= {w * | qw *upv para pF y u, v *}
(Dondeq es el estado inicial de M y F es el conjunto de estados finales de M ).Un
lenguaje L es recursivo si L es recursivamente enumerable y hay alguna máquina
de Turing que para sobre todas las entradas que acepta L.
Lenguajes regulares, independientes del contexto, recursivos y recursivamente
enumerables
Sea M = (Q, , s, F , ) un autómata finito determinista. Se puede construir una
máquina de Turing M ‟ = (Q‟, ', , s‟, Б, F ‟, ‟) para la cualL(M ) = L(M ‟) por medio
de:Q‟ = Q {q‟}, donde q‟ es un nuevo estado que no esta en Q.
' =
= {Б}
F ‟ = {q‟}
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 45/134
45
‟(q, ) = ((q, ), , R ), para qQ y „
‟(q, Б) = (q‟, Б, S), para todo qF , donde S es la directiva de cinta
“nomoverse”Teorema.
Si L es un lenguaje regular, entonces L es también un lenguaje recursivo.
Sea M un autómata de pila no determinista. Podemos construir una máquina de
Turing que emule el comportamiento de M . Supongamos un MT con dos cintas, la
primera contendrá la cadena de entrada y la segunda se utilizará para almacenar
la pila. Un apilamiento se emula moviendo la cabeza de la segunda cinta a la
derecha y escribiendo el símbolo que se apilará.
Consideremos el siguiente ADPND dado por
Q = {q1, q2, q3}, s = q1,
= {a, b}, F = {q3},
= {a, b, z },
(q1, , z ) = {(q3, )}, (q1, a, z) = {(q1, az )},
(q1, a, a) = {(q1, aa)}, (q1, b, a) = {(q2, )},
(q2, b, a) = {(q2, )}, (q2, , z ) = {(q3, )},
Este ADPND reconoceanbn. La máquina de Turing empezará en el estado q‟.
Primero se marca el fondo de la pila en la cinta 2. Por tanto, tendremos las
transiciones
(q‟, (a, Б)) = (q1, (a, z ), (S, S))
(q‟, (Б, Б)) = (q1, (Б, z ), (S, S))
Para realizar un apilamiento y consumir un símbolo se tendrán las transiciones
(q1, (a, z )) = ( p1, (a, z ), (S, R ))
(q1, (a, a)) = ( p1, (a, a), (S, R ))
( p1, (a, Б)) = (q1, (a, a), (R , S))
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 46/134
46
Las cuales apilan aes sobre la pila. Para desapilar tendremos
(q1, (b, a)) = (q2, (b, a), (R , L))
(q2, (b, a)) = (q2, (b, a), (R , L))Finalmente, la cadena se acepta cuando ha sido totalmente consumida y se ha
vaciado la pila. La transición del ADPND(q1, , z ) = {(q3, )} corresponde al
movimiento de la máquina de Turing.
(q2, (Б, z )) = (q3, (Б, z ), (S, L))
Teorema. Si L es un lenguaje independiente del contexto, entonces L es también
un lenguaje recursivo.
Teorema. Si L1 y L2son lenguajes recursivos, entoncesL1L2también lo es.
Teorema 5.3.1. Si L es un lenguaje recursivo, entonces *Les un lenguaje
recursivo.
Teorema 5.3.2. Hay un lenguaje recursivamente enumerable L para el cual*Lno
es recursivamente enumerable.
Teorema 5.3.3. Si L1 y L2 son lenguajes recursivamente enumerables,
entoncesL1L2es también recursivamente enumerable.
Teorema 5.3.4. Si L es un lenguaje recursivamente enumerable para
elcual*Ltambién es recursivamente enumerable, entonces L es un lenguaje
recursivo.
Teorema 5.3.5. Un lenguaje L es recursivamente enumerable si y solo si L es
enumerado por alguna máquina de Turing.
Definición 5.4.1.Una gramática no restringida (que también se conoce como una
gramática estructurada por frase) es una 4-tuplaG = (N , , S, P ), donde
N es un alfabeto de símbolos no terminales
es un alfabeto de símbolos terminales conN =
SN es el símbolo inicial
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 47/134
47
P E s un conjunto finito de producciones de la forma ,
donde (N )+ y (N )* (es decir, P (N )+ (N )*
y es un conjuntofinito ).
Teorema 5.4.2. Si G es una gramática no restringida, entonces L(G) es un
lenguaje recursivamente enumerable.
Teorema 5.4.3. Si L = L(M ) es un lenguaje recursivamente enumerable y G se
construye de la forma descrita, entonces L = L(G).
Teorema 5.4.4. Un lenguaje L es recursivamente enumerable si y solo si L = L(G)
para alguna gramática G, no restringida.
Definición 5.5.1. Una gramáticaG = (N , , S, P ) es una gramática sensible alcontexto si todas las producciones son de la forma, donde, (N )+ y | |
| |.
Teorema 5.5.2. El conjunto de los lenguajes sensibles al contexto contiene al
conjunto de los lenguajes independientes del contexto.
Teorema 5.5.3. SeaG = (N , , S, P ) una gramática sensible al contexto. Entonces,
existe una gramática G1 = (N 1, , S1, P 1) sensible al contexto, para la cualL(G) =
L(G1) y S1nunca aparece en el lado derecho de una producción deP 1.Teorema 5.5.4. Sea G = (N , , S, P ) una gramática sensible al contexto.
Entonces, existe una una máquina de Turing T , que para sobre toda entrada y
acepta L(G).
Teorema 5.5.5. Si L es un lenguaje sensible al contexto, entonces L es recursivo.
Teorema 5.5.6. Hay lenguajes recursivos que no son lenguajes sensibles al
contexto.
Teorema 5.5.7. Los lenguajes sensibles al contexto contienen, propiamente, a los
lenguajes independientes del contexto. A su vez, los lenguajes recursivos
contienen, propiamente, a los lenguajes sensibles al contexto.
Teorema 5.5.8. Sobre un alfabeto dado, el conjunto de los lenguajes
recursivamente enumerable contienen propiamente a los lenguajes recursivos que
contienen propiamente al conjunto de los lenguajes sensibles al contexto que
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 48/134
48
contienen propiamente al conjunto de los lenguajes independientes del contexto.
Que a su vez, contienen propiamente los lenguajes regulares.
Lregular Li.c. Ls.c. Lrecursivo Lr.e
2.4. HIPÓTESIS O TESIS DE CHURCH
En la teoría de la computabilidad, la tesis de Church-Turing (también conocido
como la conjetura de Church-Turing, tesis de Church, la conjetura de la Iglesia, y
la tesis de Turing) es una hipótesis combinadas ("Tesis") acerca de la naturaleza
de las funciones cuyos valores son efectivamente calculable, es decir, computable.
En términos simples, se establece que "todo lo computable es computable por una
máquina de Turing".
Se hicieron varios intentos en la primera mitad del siglo 20 para formalizar la
noción de computabilidad:
Los tres procesos de cálculo (la repetición, el cálculo de λ, y la máquina de Turing)
mostraron ser equivalentes-los tres enfoques definen la misma clase de funciones.
Esto ha llevado a matemáticos y científicos informáticos para creer que el
concepto de computabilidad es exactamente caracteriza por estos tres procesos
equivalentes. De manera informal la tesis de Church-Turing afirma que si algún
método (algoritmo) que existe para llevar a cabo un cálculo, el mismo cálculo
también puede ser llevada a cabo por una máquina de Turing (así como por una
función recursiva definida por, y por un λ- la función).
2.5 MAQUINAS DE TURING COMO ENUMERADORES
Sea una máquina de turing M multicinta que posee una cinta de solo escritura(salida) cuyo cabezal no se desplaza nunca a la izquierda.
M escribe cadenas sobre la cinta de salida separadas por un símbolo especial de
separación#.
Contenido de la cinta de salida: x1#x2#...#xn#...dondexi ∈∑lenguaje generado por
m: g(m) = fx1#x2#: : :#xn#: : :gnótese que l = g(m) es finito a no ser que m no pare
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 49/134
49
nuncatodo lenguaje recursivo puede ser generado por una máquinade turing en
orden lexicográfico
2.6 MAQUINAS DE TURING RESTRINGIDAS
Se pueden imponer ciertas restricciones a la TM y de todos modos mostrar que
aceptan el mismo lenguaje.TM con cinta semi-infinita.
La cinta es infinita en un sentido, la cadena de entrada se coloca al principio de la
cinta la cual no continúa a la izquierda. También se incluye la restricción de no
poder escribirB (blank) en la cinta.
Se puede demostrar que un TM normal se puede simular con una TMsemi-infinita
usando dos caminos, uno que simula la cinta a la izquierda dela cadena de
entrada y otro que simula la otra parte de la cinta.
X0 X1 X2 . . .
*X−1 X−2 . . .
Los estados en la TM semi-infinita son los que tiene la TM original junto con U o L
para representar arriba (U) o abajo (L), además de un par de estados para
preparar la TM semi-infinita.
Las transiciones en la cinta de arriba son iguales a las de la TM original, y las de
abajo son contrarias (si la TM original se mueve a la derecha, la TM semi-infinita
inferior se mueve a la izquierda y al revés, si se mueve a la izquierda la TM
original la otra se mueve a la derecha). Solo se tiene que tener cuidado en lassituaciones en donde se cambia de un camino al otro.
2.7 FUNCIONES RECURSIVAS
2.8 FUNCIONES PARCIALES
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 50/134
50
Cualquier dato puede ser codificado como una cadena de ceros y unos (y en
consecuencia como enteros no negativos).
Funciones totales vs. Funciones parciales
EjemplosFunción total de NxN: +
Función parcial de NxN: div
Todas las funciones computables son funciones parciales de la forma:
Donde m y n son enteros no negativos
2.8.1 FUNCIONES INICIALES
Función cero:
Función sucesor:
Proyecciones:
EJERCICIO: ¿Cuál es el resultado de
la siguiente llamada a función?
Combinación:
Composición:
Ejercicios:
Recursividad primitiva:
suma 0 x = 0
suma (y + 1) x = 1 + (suma y x)
mn f :
1)( x x
6)4,6,7(32 7)7(11 ())5,6(20
)))5((,6(22
x g f x g f
g f g
f mk
mn
nk
::
:
),(
::
:
x g x f x g f
g f g
f nmk
mk
nk
)8,6,4(333
1
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 51/134
51
2.8.2 Funciones Recursivas Primitivas
Funciones recursivas primitivas: construidas a partir de las funcionesiníciales
aplicando un número finito de combinaciones, composiciones y recursiones
primitivas
Algunas funciones recursivas primitivas:
Funciones constantes
Correspondencia entre cualquier tupla de 5
elementos y el valor 3
Correspondencia entre cualquier tupla de 3
elementos y el valor 5
Algunas funciones recursivas primitivas:
Función predecesor
Función monus (x-y)
Algunas funciones recursivas primitivas:
Función equal:
))()((1),( y x x y y xeq
n
mk
3
5k
5
3k
))(,()1(
())0(
2
1 y pred y y pred
pred
)),(()1,(
)0,(
y xmonus pred y xmonus
x xmonus
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 52/134
52
Función not:
Funciones tabulares:
Todas las FRP son totales
Existen funciones computables que no son FRP:
¡¡ Div es computable y es parcial !!
En 1928 Ackerman, presentó una función computable, total y no recursiva
primitiva: La función de Ackerman:
Las funciones totales computables se conocen como -recursivas
Los matemáticos pensaron que las FRP abarcaban todas las funciones totales
computables.
2.9 FUNCIONES RECURSIVAS PARCIALES
Son aquellas que se construyen a partir de funciones iníciales aplicando un
número finito de combinaciones, composiciones, recursividades primitivas y
)( 2
1 eqk monus
)),1(,()1,1(
)1,()0,1(1),0(
y x A x A y x A
x A x A y y A
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 53/134
53
minimalizaciones. Las funciones recursivas parciales son un súper conjunto de las
recursivas primitivas
Tesis de Church: La clase de las funciones recursivas parciales contiene todas las
funciones parciales computables.Nadie ha podido demostrar que esta afirmación es falsa.
La tesis de Church es equivalente a la tesis de Turing
Ejercicio 1:
monus(0, pred(1))=0 â†‟ f(0)=1
monus(1, pred(2))=0 â†‟ f(1)=2
monus(2, pred(3))=0 â†‟ f(2)=3
monus(3, pred(4))=0 â†‟ f(3)=4
monus(4, pred(5))=0 â†‟ f(4)=5
monus(5, pred(6))=0 â†‟ f(5)=6
… f es total
2.9.2 El Problema de Correspondencia de Post
El Problema de Correspondencia de Post es un problema de decisión indecidible
que fue propuesto por Emil Post.
Resulta útil para realizar pruebas de indecibilidad. El problema puede ser descrito
como sigue:
Dado un diccionario bilingüe que contiene pares de frases, es decir, listas de
palabras, que significan lo mismo, decidir si existe una frase que significa lo mismoen ambos lenguajes.
Planteamiento del problema
La entrada del problema está formada por dos listas finitas de caracteres de algún
alfabeto∑. Ambas listas de igual longitud:
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 54/134
54
L1 = u1…, un
L2 = v1…, vn
El alfabeto ∑ contiene al menos dos símbolos.Una solución a este problema es
una secuencia de índicesi1,…, ik, 1 ≤ ij ≤ n, tales que
ui1…,uik = vi1…vik
El problema de decisión consiste en saber si existe una solución para el problema
planteado.
Ejemplo:
Sea∑ = {a; b} y sean dos listas L1 y L2 siguientes:i ui Vi
1 aba A
2 bbb Aaa
3 aab Abab
4 bb baba
Una solución al problema es la secuencia 1, 4, 3, 1u1u4u3u1 = aba + bb + aab + aba = ababbaababa
v1v4v3v1 = a + babba + abab + a = ababbaababa
Si eliminamos u4 y v4 de ambas listas, el problema ya no tienesolución
Se puede asegurar que el problema es Indecidible
1.- Realice un autómata finito determinista de un objeto utilizada en la vida diaria y
dibuje su diagrama de transiciones.Objeto: bolígrafo.
Las entradas posibles al sistema son: x1=pulsar ó x2= no pulsar. La respuesta
ante una misma entrada no siempre es la misma.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 55/134
55
Depende también de la historia de las entradas anteriores. Dicha historia de
entradas anteriores se resume diciendo que el sistema está en un estado dado.
Todo lo que puede pasar en la vida útil de un bolígrafo es que su punta esté
dentro o esté fuera. La respuesta depende de la entrada aplicada y de si estádentro o fuera. Además, en la definición de autómata finito debe haber un estado
inicial. Podemos elegir un bolígrafo que inicialmente tuviera la punta dentro.
Solución.-
2. Descríbalas cadenas que acepta el autómata finito determinista representado
en el siguiente diagrama de transiciones:
Solución:
La expresión regular es: digito* ° letra ° (digito letra)*
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 56/134
56
La descripción es: cadenas formadas por cero o más dígitos y al menos una letra,
estando esta (o estas) en cualquier posición.
3.- Diseñe un diagrama de transiciones para reconocer expresiones aritméticas delongitud arbitraria que comprenden enteros positivos separados por signos de
suma, resta, multiplicación o división.
Solución:
4.- Modifique el siguiente esqueleto de diagrama de transiciones de manera que
esté completamente definido y acepte las mismas cadenas que antes.
5. Queremos construir un autómata finito M tal que L(M )={ x my nz p | m, n y p son
enteros no negativos}. ¿Es correcta la siguiente solución?
Solución:
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 57/134
57
x
x
y
y
x
x
y
x y
y
x x
x y
Correcta b) Incorrecta
y
x y z y
z
Solución: B.
No admite la cadena yz .
6.- El lenguaje que consiste en aquellas cadenas que no contienen tres x‟s
consecutivas es el lenguaje complementario del que consiste en aquellas cadenas
que sí contienen tres x‟s consecutivas. Este último lenguaje es regular, puesto que
puede representarse mediante la expresión regular: (xy)* ·x·x·x· (xy)*. A
continuación se muestran los respectivos diagramas de los autómatas que
reconocen los dos lenguajes anteriores.
Solución.-
7.- Escriba un código en lenguaje natural o en un lenguaje de programación que
ejemplifique un analizador léxico directamente a partir del siguiente diagrama de
transiciones:
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 58/134
58
Solución:
Estado := 1;
Leer el siguiente símbolo de entradaWHILE El último símbolo leído no sea el de Fin de Cadena DO
CASE Estado OF
1: CASE Símbolo actual OF
Letra : Estado := 2 ;
„:‟ : Estado := 3 ;
Dígito : Estado := 5 ;
ELSE Salir a rutina de error ;
END (* del CASE interno *)
2: CASE Símbolo actual OF
Letra : Estado := 2 ;
Dígito : Estado := 2;
ELSE Salir a rutina de error ;
END (* del CASE interno *)
3: IF Símbolo actual <> „=„ THEN Salir a rutina de error END ;
4: IF Símbolo actual <> NIL THEN Salir a rutina de error END ;
5: IF Símbolo actual <> dígito THEN Salir a rutina de error END ;
ELSE Salir a rutina de error ;
END (* del CASE externo *)
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 59/134
59
END (* del WHILE *)
IF ( Estado=1 OR Estado=3 ) THEN Salir a rutina de error END ;
8.- Construya una tabla de transiciones a partir del diagrama del ejercicio anterior.
9.- La intersección de una colección finita de lenguajes regulares siempre es
regular. Basta probar pues que el lenguaje descrito en el enunciado coincide con
la intersección de una colección finita de lenguajes regulares del alfabeto {x, y, z}.
Una tal colección la constituyen los lenguajes L1, L2 y L3 donde:
L1 es la colección de todas las cadenas de x, y y z con un número impar de x ‟s
L2 es la colección de todas las cadenas de x, y y z con un número impar de y‟s
L3 es la colección de todas las cadenas de x, y y z con un número par de z ‟s
Las cadenas que pertenezcan al lenguaje L =L1 L2 L3 habrán de verificar las
tres condiciones anteriores. Podemos demostrar que los lenguajes L1, L2 y L3 son
regulares mostrando los autómatas finitos que los reconocen:
10.Elabore una lista de los autómatas finitos deterministas basados en el alfabeto
{x, y} que tengan un estado; y luego los quetengan dos estados.
Solución:
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 60/134
60
x
y
x
y
z z
3 4
x
z
x
z
y y
6 5
y
x
y
x
z z
1 2
Recordemos que un autómata finito determinista cumple:
- Existe un estado inicial.
- De cada estado parte un arco (y sólo uno) por cada una de las entradas posibles.
10.a) Autómatas con un sólo estado. Dos posibilidades.
El primero acepta cualquier cadena.
El segundo es el que no acepta ninguna cadena. Es posible gracias a que hemos
admitido que el conjunto de estados de aceptaciónpuede ser vacío.
Si el autómata debiera tener siempre al menos un estado de aceptación, para
analizar el lenguaje vacío se deberíautilizar el diagrama de la figura, el cual ya no
es de un solo estado por ejemplo:
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 61/134
61
10.b) Autómatas con dos estados.
Recordemos que al ser determinista, en cada estado debe haber un arco y sólo un
arco para cada símbolo de alfabeto. Elprocedimiento para contar los autómatas
es:
Nº de autómatas= (Nº de arcos posibles en cada estado) Nº de estados posibles actuales
Como para un mismo símbolo (en cada estado) debe haber un único arco, el
número de arcos posibles en cada estado es igual alnúmero de arcos diferentes
en cada estado.
Nº de arcos diferentes=N A= (Nº de símbolos de alfabeto)(Nº de estados siguientes
posibles)
Por tanto:
Nº de estados posibles actuales=Nº de autómatas Nº de
Nº de autómatas = [(Nº de símbolos de alfabeto) (Nº de estados posibles
siguientes)] Nº de estados posibles actuales
= [(2*2)]2= 16. Esto correspondería como sigue:
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 62/134
62
Representación Grafica con Autómatas.-
Hay otras 16 combinaciones, con la única variación respecto a las anteriores es de
considerar como estado de aceptación sólo el 1.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 63/134
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 64/134
64
BLOQUE III. COMPLEJIDAD DE PROBLEMAS
COMPLEJIDAD DE LOS CÁLCULOS
Introducción al estudio de complejidad de los cálculos.
La ciencia de la computación es un cuerpo sistematizado del conocimiento
concerniente al cálculo, que sesostiene en dos áreas fundamentales: La Teoría de
la Computabilidad, basada en las ideas y los modelosfundamentales subyacentes
al cálculo, y las técnicas de la ingeniería para el diseño de algoritmos.
La Teoría de la Complejidad computacional estudia losrecursos requeridos para
resolver un problema como son el tiempo y el espacio; por su parte la teoría de
lacomputabilidad se interesa en expresar los problemas como algoritmos sin tener
en cuenta la información sobrelos recursos necesarios para ello.
Para abstraer las variaciones entre los diferentes sistemas computacionales se
utiliza una máquina deTuring como un referente fijo, considerado como un modelo
de máquina isofórmica a cualquier otro sistemainformático.
La Tesis de Church-Turing nos dice que si la máquina de Turing no puede resolver
un problema, ninguna otracomputadora podrá hacerlo, puesto que no existe
algoritmo para resolver el problema. Por esa razón, laslimitaciones
corresponderían a los procesos computacionales y no a la tecnología.
El concepto de algoritmo es el de un procedimiento sistemático y muy bien
especificado para realizar una tarea determinada. Uno de los principales objetivos
de esta Unidad es presentar una idea de cómo se clasifican los problemas de
acuerdo con su complejidad. Diremos que un problema es complejo si su
resolución requiere de un algoritmo complejo.
Existen dos medidas importantes de la complejidad de una estrategia de solución
o algoritmo:
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 65/134
65
La primera medida de un algoritmo es su certeza, es decir, la total confianza de
que cuando el algoritmo es aplicado en un cierto problema, encontrará la solución
correcta o bien indicaría que el problema no tiene solución.
La otra medida es la complejidad de un algoritmo, es decir, la cantidad de trabajo y
recursos involucrados por aquella persona o sistema de cómputo que lleva a cabo
cada uno de los pasos.
En los algoritmos donde se buscan soluciones numéricas el principal indicador de
la medida de trabajo o complejidad es el conteo total de las operaciones
aritméticas realizadas desde el inicio del programa, algoritmo, hasta la obtención
de la solución; de manera inherente a tal conteo, la complejidad del cálculo puede
ser vista desde el punto de vista temporal y/o espacial; es decir, consideramos
que un cálculo es más complejo que otro si requiere mayor tiempo para concluirse,
desde luego, suponiendo que ambos algoritmos son llevados a cabo en entornos
idénticos de ejecución (mismo tipo de máquina, por ejemplo); por otra parte, el otro
punto de vista, el espacial, nos dice que un algoritmo es más complejo que otro si
requiere mayor cantidad de espacio para llevarse a cabo (por ejemplo espacio en
memoria).
De lo anterior, podemos asumir que la complejidad tanto espacial como temporal
puede variar dependiendo del sistema donde se ejecute el cálculo, por ello, para
evitar estas variaciones en el análisis de la complejidad de un cálculo, se requiere
considerar un sistema computacional (o sistema de cálculo) fijo: tal sistema, para
nuestro análisis, es la máquina de Turing, pues esta tiene muchas característicassemejantes a la de los computadores digitales modernos.
3.1 ANÁLISIS DE ALGORITMOS
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 66/134
66
La Teoría de la Complejidad Computacional es la parte de la teoría de la
computación que estudia los recursos requeridos durante el cálculo para resolver
un problema. Un cálculo resulta complejo si es difícil de realizar. En este contexto
podemos definir la complejidad de cálculo como la cantidad de recursosnecesarios para efectuar un cálculo.
Así, un cálculo difícil requerirá más recursos que uno de menor dificultad. Los
recursos comúnmente estudiados son el tiempo (número de pasos de ejecución
de un algoritmo para resolver un problema) y el espacio (cantidad de memoria
utilizada para resolver un problema). Un algoritmo que resuelve un problema pero
que tarda mucho en hacerlo, difícilmente será de utilidad. Igualmente un algoritmo
que necesite un gigabyte de memoria no será probablemente utilizado. A estos
recursos se les puede añadir otros, tales como el número de procesadores
necesarios para resolver el problema en paralelo. Si un cálculo requiere más
tiempo que otro decimos que es más complejo y lo llamamos complejidad
temporal. Por otro lado, si un cálculo requiere más espacio de almacenamiento
que otro decimos que es más complejo, en este caso hablamos de una
complejidad espacial. Es claro que el tiempo que se requiere para efectuar un
cálculo en un computador moderno es menor que el requerido para hacer elmismo cálculo con las máquinas de las década pasadas, y seguramente que el
tiempo en una máquina de la próxima generación será mucho menor. El estudio
de los procesos computacionales, conduce a una clasificación de los problemas
en dos grandes clases: los problemas con solución y los problemas sin solución.
Los problemassolucionables, requieren gran cantidad de recursos como tiempo y
espacio de almacenamiento. El análisis requerido para estimar el uso de recursos
de un algoritmo es una cuestión teórica, y por tanto necesita un marco formal. El
formalismo y abstracción constituye un método necesario para la programación,
considerada como disciplina científica en la que se prioriza la actividad de diseño y
razonamiento, sobre la de depuración mediante prueba y error en un contexto
artesanal.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 67/134
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 68/134
68
Es conveniente suponer que un sistema computacional es fijo (abstracto), con la
finalidad de eliminar las variaciones de un sistema a otro. Brookshear elimina
estas variaciones de análisis en sistemas diferentes y evalúa la complejidad de
cálculo suponiendo un sistema fijo basado en una máquina de Turing, ya quesupone que a partir de ella puede trasladar sus resultados a otros sistemas y
mantener la complejidad. Un lenguaje de programación (el preferido por usted)
tiene un poder expresivo ya que permite escribir cualquier algoritmo (una idea) en
ese lenguaje. Sin embargo, suponemos que existen algunos algoritmos que no
pueden representarse haciendo uso de ese lenguaje. Surge la interrogantede si
esto se debe a una limitación del lenguaje o es una limitación de los procesos
algorítmicos en general (no existe algoritmo). Nos preguntamos, si el lenguaje no
permite escribir un algoritmo o esque no existe un algoritmo que pudiera calcular
dicha función. Consideremos una clase que contienetodas las funciones
computables. Una función es computable si existe un algoritmo para ella,
sinimportar como pueda implantarse o expresarse ese algoritmo. Puede
construirse un conjunto que contenga todas las funciones computables, para ello
se utiliza un método muy usado por los matemáticos, el método recursivo
generacional. Este método permite que a partir de un conjunto básico de funciones
computables, consideradas como funciones iniciales, puedan construirse lasdemás combinándolas en forma recursiva y así obtener el conjunto mayor de
todas las funciones computables.
Puede demostrarse, aunque no es el objetivo de este artículo, que una función de
esta clase puedecalcularse por medio de una máquina de Turing. La Teoría de la
Complejidad Computacionalse basa en un enfoque no funcional, en donde
interesa como se lleva el cálculo y su complejidad enfunción de los recursos que
utiliza. La Teoría de la Computabilidad se interesa en hallar una solucióna un
problema, mas no se interesa por los métodos específicos de expresar una
solución algorítmicaen un sistema computacional; es decir, no interesa cómo se
pueda implantar.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 69/134
69
3.3 HIPÓTESIS DE CHURH
La hipótesis de Churh nos dice que una función computable puede identificarse
con la clase de las funciones parcialmente recursivas. Una función parcialmente
recursiva F: X X es aquella cuyo dominio constituye un subconjunto de X, por
ejemplo en la función div: Zx Z Z, el par (x, 0)no está en el dominio de F, puesto
que no se puede dividir entre cero. La base de la jerarquía deestas funciones
computables consiste en un conjunto de funciones iníciales, a partir de las
cualesse construyen las funciones recursivas primitivas mediante composición de
funciones. Todas estasfunciones son computables, sin embargo, existen funciones
que no son primitivas pero son computables, de estas funciones se dice que no
son totales sino parcialmente recursivas. Inicialmente se pensó que todas lasfunciones recursivas primitivas eran computables, pero Ackerman propuso
laconocida función que lleva su nombre A(0,y)=y+1, A(x+1,0)=A(x,1) y
A(x+1,y+1)=A(x, A(x+1,y)), lacual es computable pero no es recursiva primitiva.
Como esta hipótesis no pone límites al número depasos o cantidad de
almacenamiento necesario para la función, supone que las funciones parcialmente
recursivas son computables. Una función no es computable a menos que pueda
limitarse el cálculo por adelantado o determinar que el cálculo terminará o no en
algún momento. Las máquinas de Turing constituyen una herramienta de
verificación, pues además de servir como aceptadores de lenguajes formales,
pueden considerarse como una calculadora de funciones de los enteros a los
enteros. Las funciones calculadas por una máquina de Turing se conocen como
funciones parcialmente recursivas, y éstas incluyen a las funciones computables.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 70/134
70
3.4 COMPLEJIDAD DE UN ALGORITMO
Definición
La complejidad o eficiencia de un algoritmo se define como el orden de magnitud
de los recursos informáticos que requiere el algoritmo para ser ejecutado.
Utilidad
El estudio de la complejidad de los algoritmos permite evaluar su coste, y así:
1 Comparar algoritmos entre sí.
2 Averiguar si un algoritmo es factible.
Aspectos que intervienen en el cálculo de complejidades
Cuáles son los recursos informáticos que hay que estimar.
En qué casos (para qué tipo de entradas) hay que estimar la complejidad.
Qué significa calcular el orden de magnitud.
Qué reglas prácticas existen para calcular complejidades.
3.5 RECURSOS INFORMÁTICOS
Recursos considerados
Los recursos informáticos a evaluar son el tiempo (de ejecución) y/o el espacio (de
memoria) requeridos por los algoritmos. Ambos dependen claramente del tamaño
de la entrada, por lo que se trata de calcular las funciones TA y EA tales que:
TA(n) = tiempo requerido para la ejecución del algoritmo A con una entrada de
tamaño n.
EA(n) = espacio de memoria requerido para la ejecución del algoritmo A con una
entrada de tamaño n.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 71/134
71
Cómo estimar los recursos
El cálculo del tiempo (similar para el espacio) no debe depender ni del lenguaje de
programación utilizado, ni del compilador, ni de la máquina elegida. Solución:
TA(n) = número de operaciones básicas que realiza el algoritmo A con una
entrada de tamaño n donde una operación básica es aquella cuyo tiempo de
ejecución se puede acotar superiormente por una constante, independientemente
del tamaño de la entrada, la máquina, etc.
3.6 CASOS PARA EL ESTUDIO DE LA COMPLEJIDAD
Las funciones TA y EA no sólo dependen del tamaño de la entrada, sino tambiénde su contenido: ¡no se tarda lo mismo en ordenar 10 números ya ordenados que
en ordenar 10 números totalmente desordenados!
Los casos de estudio más habituales son los siguientes:
• El peor caso, caso extremo en el que el número de operaciones a ejecutar
(o el espacio requerido) es el mayor posible.
• El caso medio o caso probabilístico, que representa una situación
intermedia (su evaluación suele requerir técnicas estadísticas).
• El cálculo en el peor caso asegura que los recursos reales consumidos, sea
cual sea el contenido de la entrada, nunca rebasarán el valor calculado.
3.7 MEDIDAS ASINTÓTICAS Y ÓRDENES DE COMPLEJIDAD
La complejidad de un algoritmo es importante fundamentalmente cuando el
tamaño de la entrada es grande (si hay que ordenar un conjunto de 5 elementos,
la eficiencia del algoritmo no importa demasiado, puesto que en cualquier caso
será razonable).
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 72/134
72
Por ello, para analizar las funciones TA o EA bastará con estudiar su
comportamiento asintótico, es decir, cómo se comportan cuando el tamaño de la
entrada, n, es grande.
Existen varias medidas para estudiar el comportamiento asintótico de una función.
Una de las más habituales es la medida O(f ) (O grande de f ) que se describe a
continuación, que permite obtener cotas superiores.
Conjuntos O(f ) más importantes y su ordenación
O(1) complejidad constante
O(log n) complejidad logarítmica
O(n) complejidad lineal
O(np) complejidad polinómica (p=2: cuadrática, p=3: cúbica)
O(2n) complejidad exponencial
O(n!) complejidad factorial
O(1) O(log n) O(n) O(n log n) O(np) O(2n) O(n!)
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 73/134
73
3.7.1 REGLAS PRÁCTICAS
Resumen de los puntos anteriores
Calcular la complejidad de un algoritmo A= estudiar el comportamiento asintóticode las funciones TA/EA (dependientes del tamaño n de la entrada al algoritmo) en
el peor caso o en un caso medio.
= encontrar una función f : N R+ tal que en el peor caso/caso medio se tenga
TA/EA 2 ε O(f ).
ObservaciónDado que los conjuntos O(f ) proporcionan cotas superiores, se tratará de
encontrar la menor de todas las funciones f : N R+ tales que TA/EA ε O(f ) (por
ejemplo, si TA/EA ε O(n2), evidentemente también es TA/EA ε O(n3), pero ... ¡lo
segundo no aporta nada!).
Consideraciones previas
Todo algoritmo está compuesto por una secuencia de instrucciones.
Existen unas reglas prácticas para calcular el coste de cada uno de los posibles
tipos de instrucciones. La complejidad de un algoritmo se basa en el coste de las
instrucciones que lo componen pero el cálculo depende de si el algoritmo es o no
recursivo.
3.8 REGLAS PARA CALCULAR EL TIEMPO DE EJECUCIÓN EN EL
PEOR CASO DE LOS DISTINTOS TIPOS DE INSTRUCCIONES.REGLA 1: INSTRUCCIONES ELEMENTALES
Se llama instrucción elemental a las operaciones de entrada/salida, asignaciones y
expresiones aritméticas en las que no está involucrada ninguna variable que
dependa del tamaño de la entrada del algoritmo.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 74/134
74
REGLA 2: SECUENCIA DE INSTRUCCIONES
REGLA 3: INSTRUCCIONES DE SELECCIÓN
REGLA 4:
INSTRUCCIONES DE REPETICCION
Nota: la complejidad de un bucle PARA i DESDE a1 HASTA a2 HACER J se
calcula igual que la de un bucle MIENTRAS salvo que en el caso PARA el coste
de la condición B se puede ignorar puesto que es siempre constante.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 75/134
75
REGLA 5: LLAMADAS A SUBPROGRAMAS
En el caso de instrucciones que sean llamadas a otros algoritmos(subprogramas),
el coste de la instrucción será el coste del subprograma:
EDI
CÁLCULO DEL TIEMPO DE EJECUCIÓN EN EL PEOR CASO DE UN
ALGORITMO
Depende de si el algoritmo es o no es recursivo.
SI EL ALGORITMO ES NO RECURSIVO
Su complejidad es el máximo de las complejidades de las instrucciones que lo
componen (la complejidad de cada una de estas instrucciones se calcula
aplicando las reglas anteriores).
SI EL ALGORITMO ES RECURSIVO
Para calcular la complejidad de un algoritmo recursivo es necesario realizar los
dos siguientes pasos:
Plantear la ecuación recurrente asociada con el tiempo de ejecución T del
subprograma.
Resolver la ecuación recurrente anterior (es decir, encontrar una expresión no
recursiva para el valor de T).
Las familias de recurrencias más habituales son:
1 Ecuaciones recurrentes obtenidas mediante sustracción
2 Ecuaciones recurrentes obtenidas mediante división
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 76/134
76
Recurrencias obtenidas mediante substracción
RECURRENCIAS OBTENIDAS POR DIVISIÓN.
3.9 ESPACIO Y TIEMPO POLINOMIAL
ALGUNOS PROBLEMAS QUE SONPROBABLEMENTE INTRATABLES
Para empezar probaremos que dos problemas requieren realmente tiempo
exponencial. En un caso, reducimos nuestro problema a un lenguaje el cual, por el
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 77/134
77
teorema de jerarquía, se sabe que requiere espacio exponencial y en
consecuencia tiempo exponencial. En el segundo caso, mostramos como reducir
nuestros problemas a todos los lenguajes en tiempo exponencial no determinístico
y entonces exponer por un teorema de jerarquía de tiempo no determinista [Cook1973a] que entre ellos debe haber uno que realmente requiera, digamos, espacio
2n.Ahora debemos considerar un problema que tiene que ver con expresiones
regulares, esto es, idear algo tal que (a) por lo menos se requiere espacio 2cn / log
npara resolverlo y (b) este requerimiento puede ser probado fácilmente. Después
de que, consideremos un problema de lógica que no fue ideado mucho antes de
que su complejidad fuera analizada y donde la prueba de la exponencialidad está
fuera de ser directa.
Expresiones Regulares con Exponenciación
Considérese una expresión regular sobre un alfabeto, para el cual se asume por
conveniencia que no contiene a los símbolos ↑, 0 o 1. Sea r ↑ i la representación
de la expresión rr · · · r (i veces), en donde i está escrita en binario. La expresión r
puede incluir el operador ↑ (exponenciación). Por ejemplo, (a ↑ 11 + b ↑ 11) ↑ 10
establece que:
{aaaaaa, aaabbb, bbbaaa, bbbbbb}.
Asúmase que el operador ↑ tiene una precedencia más alta que los otros
operadores. Debemos mostrar que esencialmente requiere espacio exponencial ,
esto es, espacio 2 p(n), para algún polinomio p(n), si es una expresión regular con
exponenciación que denota todas las cadenas sobre su alfabeto (recuerde que ↑,
0 y 1 son usados como operadores y no son parte del alfabeto). Primero damos
unalgoritmo espacio-exponencial para el problema.
Teorema (13.14)
El problema de si una expresión regular con exponenciación denota a todas las
cadenas sobre su alfabeto puede ser resuelto en espacio exponencial.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 78/134
78
Demostración:
Dada una expresión regular de longitud n, debemos expandir los ↑‟s para obtener
una expresión regular ordinaria y mostrar que tiene longitud de a lo mas n2n.
Entonces, debemos convertir ésta expresión a un AFN de a lo mas n2n+2
estados yprobar que si el AFN acepta a *. (Nótese que éste último paso debe ser hecho
sin conversión a un AFD, pues el AFD deberá tener 2n2n+2 estados).
Para eliminar las ↑‟s trabajamos de adentro hacia afuera. Probaremos por
inducción sobre j que una expresión con ↑‟s, que tiene longitud m, con j 0‟s y 1‟s,
tiene una expresión regular ordinaria equivalente de longitud a lo mas m2 j . Base j
= 0. El resultado es inmediato.
Inducción Lea la expresión r de longitud m desde la izquierda hasta que se
encuentre el primer ↑. Entonces lea de regreso hasta el argumento r 1 de la
izquierda de donde se encontró a ↑. Asúmase que ↑ tiene la precedencia más alta,
así su argumento debe ser un símbolo simple o debe estar entre paréntesis; en
consecuencia ésta extracción es fácil. Sea r = r 2r 1 ↑ ir 3. Reemplace r por r ′ =
r 2r 1r 1 · · · r 1r 3, en donde r 1 es escrito i veces. Por la hipótesis de inducción r ′
tiene una expresión regular ordinaria equivalente de longitud a lo mas ( m + (i −
1)|r 1|)2 j −log2 i símbolos. Como 2 j −log2 i = 2 j/i y como |r 1| ≤ m, vemos que:
Si r es de longitud n, entonces seguramente m = n y j ≤ n, así la expresión regular
ordinaria equivalente tendrá longitud de a lo másn2n.
Ahora, usando el algoritmo del Teorema 2.3 podemos producir un AFN de a lo
mas 4n2n= n2n+2 estados. Suponiendo de manera no deterministica símbolo por
símbolo, una entrada a1a2 · · · que el AFN no acepta. Usando n2n+2 celdas,
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 79/134
79
podemos, después de cada suposición, calcular el conjunto de estados que han
entrado después de que el AFN ha leído la secuencia de los símbolos
conjeturados hasta ahora. La entrada necesita no ser escrita abajo, puesto que
podemos calcular el conjunto de estados incorporados de este conjunto encualquier símbolo de la entrada. Si conjeturamos siempre una secuencia de
entrada en la cual no se incorpore ningún estado que acepta el AFN, aceptamos;
la expresión original no denota a *. Por el Teorema de Savitch podemos llevar a
cabo éste proceso de manera deterministica usando espacio n24n. Es fácil
concebir una codificación del AFN que puede ser almacenada en O (n32n) celdas,
pues cerca de n bits son suficientes para codificar a un estado y el alfabeto de
entrada no es mas grande que n. Como n24n> n32n, se sigue que n24nes una cota
superior sobre el espacio requerido.
Debemosproporcionar unacotainferior de2cn/lognparaalgunaconstantesobreelespaci
orequeridoparaelproblema
dearr iba.Observequeproporcionandounacier tacantidaddeespacioserequieretambién
probarquelamismacantidaddetiempoes requerido(aunqueloopuestonoesver dad).
Teorema(13.
15) Existeunaconstantec>0talqueparacadaMTqueaceptael
lenguajeLrcxdeexpresionesregularesconexponenciaciónquedenotaaΣ∗quetomaame
nudomásque2cn/lognespacio(ypor lotanto 2cn/logntiempo).
Demostración:
ConsidéreseunaMTMdeunacintasimpledeterministaespacio
acotado2n.Paracadaentradaxdelongitudn. constr úyaseuna
expresiónregular conexponenciaciónEx quedenotaΣ∗,endondeΣ
eselalf abetodeEx,siysolosiMnoaceptaax.Por loquehacemos queEx
denotetodosloscálculosdeMsobrex.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 80/134
80
Σconsistedetodos lossímbolosdelacintadeM,lossímboloscompuestos[qX],donde
qesunestadoyXunsímbolodelacintaysímboloquesirvede
marca#. Asúmaseque↑,0yel1nosonsímbolosdemar cado.
UnacadenayenΣ∗noesunacadenadeaceptacióndeMsobrexsi
ysolosiunaomásdelassiguientesaseveracionessonverdaderas.
LaDIinicialestáequivocada.
Nohayunestadodeaceptación.
CadaDInosesiguedeunapreviaporunmovimientodeM.
Enloquesigue,usamoscon juntosdesímbolosparar epr esentar laexpresiónregular queeslasumadeéstossímbolos.Deéstamaner a,
siΣ={a1,a2,...,an},entoncesusamosaΣcomounataquigr af ía
paralaexpresiónregular a1+a2+···+an.Demaneraseme jante
tambiénusamosΣ−aparaestablecer laexpresiónregular queeslasumadetodoslossímbol
osenΣexceptoa.
Unaexpresiónregular quedenotatodaslascadenasquenoempiezanconlaDIinicialestadadapor:
START =ǫ+(Σ−#)Σ∗+ A1+ A2+···+
An +Σ↑(n+1)(Σ+ǫ)↑(2−n−1)(Σ−
B)Σ∗+Σ↑(2n+1)(Σ−#)Σ∗
Endonde
A=Σ↑1 (Σ−[q0a1]) Σ*
Ypara 2≤i≤n,
Ai =Σ↑i(Σ−ai)Σ∗
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 81/134
81
Elpenúltimoterminodenotaaσn+1seguidopor hasta2n−n−1
símbolosseguidospor cualquier cosamenosporunblanco,ydenota
cadenastalesquealgunaposiciónentren+1y2ndelaprimeraDI
nocontieneunblanco.Comony 2n−n−1estánescr itosenbinar io,
lalongituddeéstetérminoesproporcionalan.Elúltimotérmino
denotacadenas,en lascualesel2n+1-e si
nosímbolonoes#,lacualtambiénesdelongitudproporcionalan.Lostérminosr estantes
tienensulongitudproporcionalalognyhayn +3detalestérminos.
Deéstamaneralalongituddelaexpresionesproporcionalanlogn.
Cur iosamente,lalongituddelaexpresiónquedenotaunafalsaDI
inicialdominalalongituddelosotrostérminosenEx.
Unaexpresiónregular queobligaaquelacondiciónqueestáahíy
quenoaceptaelestadoestarádadapor:
FINISH=(Σ−{[qX]}|qesunestadofinal)∗
Estaexpresión esdelongitudconstantedependientesolodeM.
Finalmente,seaf(W,X,Y)elsímboloquedenotaaZtalquesiW,XyYsonlasposicionesi−1,iei+1deunaDI,entoncesZentoncesestar á
enlaposiciónidelasiguienteDI.Entoncessea
MOVE=+ (W,X,Y)Σ∗WXYΣ ↑(2n−1)(Σ−f(W,X,Y))Σ∗
Estoes,MOVEeslasuma,sobreunnúmerofinitodeter cias
(W,X,Y)desímbolosenΣ,deaquellascadenasconW,XyY
ocupandoposicionesconsecutivasenunaDIquetieneunsímbolo
incorr ecto2nposicionesaladerecha.Como lalongituddecada
términoeslinealenn,lalongituddeMOVEeslinealenn.
La expresióndeseadaesEx=ST ART+ FINISH+MOVE.SiM aceptaax,
entonceselcálculoaceptadonoestáenEx.Sialguna
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 82/134
82
cadenaynoestáenEx,entoncesdebedeempezar #[q0a1]a2···anB2
−n#,cadaDIdebeseguir lapreviaporunmovimientodeM,ylaaceptacióndebedeocurrir en
algunapar te. DeéstamaneraMaceptaax.Por lotantoEx=Σ∗siysolosiM noaceptaax.
Ahora,seaMunamáquinadeTur ingqueaceptaellenguajeLque
puedeseraceptadoen2nespacioperonoen2n j/nespacio.El
teoremade jerarquíaparaelespacioaseguraquetalMexiste.
SupóngasequehabíaunaMTS(n)espacioacotadaqueaceptaal
con juntoLrexdeexpresionesregularesconexponenciacióndenotando
aΣ∗,conunacodificaciónconvenienteLrextieneunalf abetofinito.
Entoncespodríamosreconocer Lcomosigue.
Dexdelongitudnconstr uyaEx,cuyalongitudesproporcionala
nlogn.Podemosconstr uir Ex proporcionalenespacioanlogn deunamaneraobvia.
Codificar Ex dentrodelalf abetodeLrex.ComoMtieneun
númerofinitodesímbolos,lalongituddelacodificacióndeEx es
cnlognparaalgunaconstantec.EnespacioS(cnlogn),determinesiEx
estáenLrex,siesasí, rechacex,sinoaceptax.
La cantidadtotaldeespacioeselmáximoentrenlognyS(cnlogn).
PuesningunaMTqueusamenosde2n/nespacioyqueaceptaaL existe,debeserque:
nlogn+S(cnlogn)>2n/n
delocontr ar ioLpodríaseraceptadoenespacio2n/npoeelLema
12.3. Asíexisteunaconstanted>0talquesiS(m)fuesemenorque2dm/logm
paratodonúmeromenosparauncon juntofinitodem, entonces(13.4)seríafalso.
SesiguequeS(m)≥2dm/logm par a algunaconstantedyunnúmeroinfinitodem‟s.
Corolario
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 83/134
83
Lrexescompletoparaespacioexponencialconr espectoalar educción
entiempopolinomial.
Demostración:
Enelteorema13.15dimosunareducciónentiempopolinomialpar a
LrexquefuncionaparacadalenguajeLenDSP ACE(2n).Habr íamos
podidogeneralizarlo f ácilmentealreducircualquierlenguajeen
DSP ACE(2p(n)),paraalgúnpolinomiop,aLr ex.
DebemosobservarquelacotanlognsobrelalongituddeEx es
cr íticaparaelTeorema13.15,aunqueparasucorolariohabr íamos
podidopermitir quelalongitudseaalgúnpolinomioen|x|.Si,por
ejemplo,solopodríamosprobarque|Ex|≤|x|2,entoncesnuestr a
cotainferior querequeríamossobreelespacio Lrexdebióhaber sido2dn
enlugar delaqueteníamos.
Teoríasdelacomplejidaddeprimerorden
Ahora debemosconsiderar unproblemaquerequierepor lomenos
tiempo2cn,sernodeterminista,yqueseaconocidoquesepueda
resolver enespacioexponencialydoblementetiempoexponencial.
Comotambiénpuedemostr ar sequeelproblema esnodeterminista tiempoexponencial
difícilconr espectoalasreduccionesentiempo
polinomial,probandounacotainferior queesmejorconr espectoala
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 84/134
84
cantidaddetiemponodeterministaseríaunamejorasobreel
teorema12.10,locualesmuypocopr obable.
Unlenguajedeprimer ordenconsistedeundominio(por ejemplo,losenter osnonegativos),uncon juntodeoperaciones(por e jemplo,+,*),uncon juntodepredi
cados(por ejemplo,=,<)uncon juntode
constantesescogidasdeldominio,yuncon juntodeaxiomas
definiendoelsignificadodelosoperadoresypredicados.Paracada teor íapodemos
definirellenguajedeexpresionesverdaderassobrelasconstantes,operadores,predicado
s, variables,losconector eslógicos,∨,∧y¬yloscuantificador es∀y∃.
Ejemplo
(N,+,∗,=,<,0,1),endondeNestálosenter osnonegativos,es conocidacomoteor íade
números.Elfamosoteoremadeincompletés
deGodelestablecequeellenguajededeclaracionesverdaderasen
teor íadenúmerosesindecidible.Mientr asqueelr esultadodeGodel
pr ecedentealasmáquinasdeTur ing,noesdifícilmostrarsu
r esultado.SiunaMTMaceptacuandoempiezaconunacintaen
blanco,lohaceporuncálculoenelcualninguna DIesmasgrande
quealgunaconstantem.Podemostratar unenteroi,enbinar io,
comouncálculodeMconDI‟sdelongitudm.
La aseveracióndequeMaceptaaǫ,elcualsesabequees
indecidible,puedeserexpresadocomo∃i∃m(Em(i)),endondeEmes
unpredicadoqueesverdaderosiysolosiieslacodificacióndeun
cálculoqueconduceauna aceptacióndeǫconDInomasgrandeque
m.(Algunosdelosdetallesestánenelejercicio13.37.)Deésta maneralateoríadenúmerosesunateoríaidecidible.
Hay unnúmerodeteor íasdecidiblesconocidas.Por e jemplo,
(R,+,=,<,0,1),lateor íaderealesconadición,esdecidible,y
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 85/134
85
debemosmostrarquerequieredemanerainher entetiempono
deterministicoexponencial.Silosrealessonreemplazadospor los
racionales,obtenemosquelaoracióndearr ibaesotravezverdadera,
puessinlamultiplicación,esimposibleencontrarunaasever acióncomo∃x(x∗x=2)queesverdaderaparalosrealesperonoparalos racionales.La
teor íadeenter osconadición(Z,+,=,<,0,1),llamadaar itméticaPresburger,esdecidible,y
sesabequer equier e tiempodoblementeexponencialnodeterministico.Estoes22cn
esuna cotainferior delacomplejidaddetiemponodeterministicodela
ar itméticadePr esbur ger .
Ejemplo
Antesdeproseguir,consideremosunnúmerodeejemplosenlateor ía
derealesconadición.∀x∃y(y=x+1)esverdadero:dicequex+1 esunrealsixloes.
∀x∀y[x = y∨∃z(x<z∧z<y)∨
∨∃z(y<z∧z<x)]
Tambiénesverdadero:establecequeentredosnúmerosr eales dif er entespodemos
encontraruntercer real;estoes,losrealesson densos.Laor ación
∃y∀x(x<y∨x=y)
Esfalsa,puesparacadanúmerorealyexisteunnúmerorealmas
grande.Notequenotenemosmaneradedecidirsiunaoraciónes
verdadera;ladecisióndepende de laspropiedadesyaconocidasdelos
númerosreales,conloqueseasumeellector estáf amiliar izado.
Unprocedimientodedecisión paralosnúmerosrealescon adición
debemosempezarnuestr oestudiodelosrealesconadiciónpordar
unpr ocedimientoquerequiereespacioexponencialytiempo
doblementeexponencial.Paraempezar,pongamosnuestr a
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 86/134
86
declaracióndadaenformanormal,endondetodoslos
cuantificador esseaplicanalaexpresiónentera.Esfácilobtener una
expresiónenéstaformasiprimero renombramoscuantificador esde
variablesyasíellasseránúnicas yentoncesaplicamoslas identidades.
¬(∀x(E))=∃x(¬E)
∀x(E1)∨E2=∀x(E1∨E2)
Ycuatroreglassimilaresobtenidasdelasanter ior espor inter cambiar
∀y∃y/oreemplazando∨por ∧.Esteprocesonoesmásdeldoble
delongituddelaexpresión;losúnicossímbolosquesepudier on agregaralaexpresión
sonunpardepar éntesispor cuantificador . Ahora tenemoslaf ormula
Q1x1Q2x2···QmxmF(x1,x2,...,xm)(13,5)
EndondelosQi‟ssoncuantificador esylaformulaFnotiene
cuantificador es.Fespor lotantounaexpresiónBooleanacuyos
operandossonátomos,unátomoesunaconstanteBooleanaouna
expresióndelaformaE1opE2,endondeopes=o<yE1 yE2 son
sumasdevariablesylasconstantes0y1.SabemosqueFesdeésta
formaporqueningunaotracombinacióntienesentido.Estoes,+
puedeser aplicadosoloavariablesyconstantes,<e= solose
relacionanconexpresionesar itméticasylosoperadoresBooleanos
puedenser aplicadossoloaexpresionesquetienencomoposibles
valoresaFalso/Ver dader o.
Paradeterminar laveracidadofalsedadde(13.5)sustituimos
r epetidamenteparaelcuantificador másinter nounacuantificación
acotada,lacualessímbolológico“or”(enlugar de∃)o“and”(en
lugar de∀)deunnúmerogrande,perofinito,númerodetérminos.
Supóngasequeen(13.5)sefi janlosvaloresx1,x2,...,xm−1.Cada
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 87/134
87
átomoinvolucradoconxmpuedeponerseenlaformaxmopten dondeopes<,=
o>ytesdelaformam−1c0+.cixi,i=1endondelosci‟ssonracionales.Supóngasequetodos
estosátomos sonxmopti,1≤i≤k,endondet1≤t2≤···≤tkparalosvalor es
dadosdex1,...,xm−1.Paraalgúnvalor dexmenelrangoti<xm<ti+1,cadaátomotieneelmismovalor deverdad.Deésta
maneralaveracidadde(13.5)esdependientedel actualvalor dexm enéster ango.
Estonosconducealaobservaciónquelosti‟spar ticionanla línea r eal
enunnúmerofinitodesegmentosylaveracidadde(13.5)depende
solodelsegmentoenelcualestáxmynodelactualvalor dexm.De
éstamanerapodemosprobar(13.5)probandounode losvaloresdexmdecadaunadeunnúmerofinitoderegionescomolosugierela
Figura13.6.
Comolosvaloresdex1,x2,...,xm−1 variarán,realmentenosabemos
elordendelosti‟s.Masaun,probandoxm=ti,paracadai,
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 88/134
88
xm=1(ti+tj)paracadai=j,yxm=±∞.Sabemosqueno
impor taelordendelosti‟s,estamossegurosdetenerunaxmr epr esentativaencadainter va
lodelaFigura13.6ytambiénenlos
mismosti‟s,endondelosátomosconeloperador =puedenllegar a ser cier tos.
SesiguequesiQm=∃,entonces∃xmF(x1,...,xm)puedeser
r eemplazadoporestoes,por elsímbolológico“or”dek(k+1)/2+2términos,cada
unodeloscualesesFconunasubstitucióndexm.SiQm=∀,se
puedehacerunreemplazosimilar sustituyendo∨por ∧.
SiFtienekátomos,F′ tienek[k(k+1)/2+2]átomos,ademásF′ tienealomask3
átomos,parak≥3.También,siloscoeficientesen
losátomosdeFsonelradiodelosenter osdealomasrbits,
entonces,despuésdeagrupar términos,resolver paraxmycalculandoelpromediodedosti‟s,encontramosqueloscoeficientesenlosátomosdeF′
seránproporcionesdeenterosconnomasde4r+1 bits.Deesto
sesiguequecomoa,b,cydsonenter osder -bits,
Eslaproporcióndeenter osmásr -bits,y
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 89/134
89
Eslaproporcióndeunenterode(2r +1)bitsyunenterode2r -bits.
Parar ≥1,entonces,loscoeficientesenF′ nosonmásdecinco
veceslalongituddeloscoeficientesdeF.
Siser epiteelprocesodearr ibaparaeliminar todosloscuantificador es
yvariables,finalmenteproduceunaformulaconsolooperadores lógicos,=
<yconstantes.Lasconstantessonproporcionesde
enter osdealomás5mrbits.Elnúmerodeátomosesa lomás
comocadaátomoesunarelación entreconstantesde5mrbits,y
k,myrsonmenoresquen,lalongitud delaexpresiónesalomás
22dn,paraalgunaconstantec(notequen3n 222n).Podemosevaluar
unátomodelaformaa/b<c/d alcalcular ad−bcycompar ándolo
con0.Deéstamanera,laexpresiónfinalenterapuedeser evaluada
enelcuadradodesulongitud.Enconsecuencianuestr o
pr ocedimientodedecisióntoma22dntiempo,paraalgunaconstanted.
Elpr ocedimientocomolohemosdadotambiéntomaespacio
doblementeexponencial.Masaun,podemos reducirelespacioaun
espaciosimplementeexponencialalevaluar Fr ecur sivamente.
Estamoslistosparaverquenecesitamossolouncon juntofinitode
valoresparacadaxi.Losvaloresxi estarándadospor laf ormula
j=1a jx j,endondelosa j‟ssonracionales,quesonpr opor ciones
deenter os5m− j+1bits,endondereselnúmerodebitsenla
constantemasgrandedelaformulaoriginal,F;notequer ≤logn.
Deéstamaneralosvaloresparax1sonracionalesqueson
proporcionesdeenter osdealomás5mrbits,losvaloresparax2son
proporcionesdeenter osdealomás5m+1r bits,etc.Deéstamaner a
solonecesitamoselcicloconlosvaloresparacadaxi queesaloas
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 90/134
90
de52mrbits.Usamosunpr ocedimientorecursivoEVAL(G)que
determinasiGesverdaderacuandolasvariablestomanlosvalor es±∞ycualquierproporció
ndeunenterode52mrbits.
SiGnotienecuantificador es,entoncessoloconsisteder elaciones
lógicasyar itméticasentrenúmerosracionales,asísuveracidadpuede
serdeterminadadir ectamente.SiG=∀x(G′ ),EVAL(G)llamaa EVAL(G′′ )paratodaG′′
formadadeG′ alreemplazar xpor±∞o
unaproporciónenterade52mrbits.EVAL(G)esverdaderasi
EVAL(G′′ )nosregresaverdadparatodaséstasexpresionesG′′ .Si
G=∃x(G′ ),hacemoslomismo,peroEVAL(G)nosregresaverdadsiemprequealgunaEVAL(
G′′ )esverdadera.
Esfácilverificar quenomásdemcopiasdeEVALsonactivas
simultáneamente.Losar gumentosparalasllamadasactivasaEVAL
puedenserpuestasenunapila,yéstapilautilizaespacioO(m52mr ).
Deéstamanera,siFesunaexpresióndelongitudn,podemosevaluar
aFenespacio2cnytiempo22dn paraalgunasconstantescyd.
Unacotainferior ahora semostraráquelateor íaderealesconadiciónr equier e
esencialmentetiempoexponencialnodeterminista.Senecesitanuna
seriedelemasparamostrarquelamultiplicaciónyexponenciación
pornúmerosenter osacotadospuedenserexpresadospor formulas cor tas.
Lema(13.10)Existec>0talqueparacadanhayunaformulaMn(x,y,z)quees
verdaderasiysolosixesunenterononegativoestr ictamentemenor
que22n,yxy=z.Además |Mn(x,y,z)|<c(n+1)yMn(x,y,z)
puedeser constr uidodenentiempopolinomialenn.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 91/134
91
Demostr ación:
Mk+1(x,y,z)=∃u1···∃u5∃x1···∃x4
[Mk(x1,x2,u1)
∧x=u1+x3+x4
∧Mk(x2,y,u2)∧Mk(x1,u2,u3)
∧Mk(x3,y,u4)∧Mk(x4,y,u5)
∧z=u3+u4+u5] (13.7)
Estoes
u1=x1x2 x=x1x2+x3+x4,
u2=x2y,u3=x1x2y,u4=x3y,u5=x4yyz=x1x2y+x3y+x4y
La condicióndequecadaxi esunenteromenorque22 porquecadaxi
eselprimer ar gumentodealgunaMk. Laformula(13.7)tienecincocopiasdeMk,asíparecequeMk+1
debeserpor lomenoscincovecestangrandecomoMkestohar ía quelalongitud
deMnseaexponencialennynolinealcomo habíamosdicho.Noobstante,podemos
usar el"tr uco" delTeor ema
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 92/134
92
13.10parareemplazarvariascopiasdeunpredicadoporunasimple
copia.Estoes,podemosescr ibir
Mk+1(x,y,z)=∃1···∃u5∃x1···∃x4
[x=u1+x3+x4∧z=u3+u4+u5
∧∀r ∀s∀t[¬(r =x1∧s=x2∧t=u1)
∧¬(r =x2∧s=y∧t=u2)
∧¬(r =x1∧s=u2∧t=u3)
∧¬(r =x3∧s=y∧t=u4)
∧¬(r =x4∧s=y∧t=u5)
∨Mk(r,s,t)]].
Lo cual tiene un número constante de símbolos más de los que Mk tiene.
Unpuntodemenorimportanciaesque siintroducimoslosnuevos
nombresdevariablesparacadaMk,debemosintroducir
eventualmenteunfactorlogndentrodelalongituddeMn,pues
comolosnombresdevariablesdebenestarcodificadasenunalfabeto fi jo
enellenguajedeformulasverdaderas.Noobstante,lasreglasde
alcanceparacuantificarformulasnospermitereutilizarvariablessujetasalarestricciónquelasdocenuevasvariablesintroducidasen Mk
notienenconflictosconlasvariablesindependientesx,y, yz.De
éstamaneraMnrequieresolo15diferentesvariablesylalongitudde
sucódigoesproporcionalalnúmerodesímbolos.
ObservequeMn(x,0,0)establecequexesunenteromenorque22.
Deéstamanerapodemoshacerafirmacionesacercadeenteros
pequeñosenlateoríadelosrealesconadiciónusandoformulasmuy cortas.
Lema(13.11)
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 93/134
93
Existeunaconstantec>0talqueparacadanhayunaformula
Pn(x,y,z)queesverdaderasiysolosixyzsonenterosenelrango 0≤x,z<22 yyx
=z.Además|Pn|≤c(n+1)yPn puedeser construidaapartirdenentiempopolinomialenn.
DEMOSTRACIÓN
ConstruimosporinducciónunasucesióndefórmulasEk(x,y,z,u,v,w)talqueEk
tieneunaconstrucciónexponencialy multiplicativadentro.Larazónparahacer esto
esquedeseamos expresarEk entérminosdemuchascopiasdeEk−1 yentoncesusarel
cuantificadoruniversalparaexpresarEk entérminosdeunacopiade
Ek−1.Nopodríamoshacer esto conPk,puesunafórmulaparaPk involucraaPk−1
yaMk−1.
UsandovariascopiasdeEk,podemosdecirqueexistenenteros
x1,x2,x3,x4enelrangode0≤xi≤22 talesque:x=x1x2+x3+x4 y
yk=(yx1)x2yx3yx4
Finalmente,usamosel"truco" delTeorema13.10paraexpresar Ek+1
entérminosdeunacopiadeEk y unnúmeroconstantedesímbolos adicionales.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 94/134
94
Porúltimo,podemosescr ibir :Pn(x,y,z)=En(x,y,z,0,0,0).
Loanter ior nosdicequez=yk,yxyysonenter osenelrango 0≤x,z<22n
Paramejorarlalegibilidaddeloquesigue,usaremoslassiguientes
abreviaciones,2paraabreviar1+1,2xparax+x,x≤ypara
x<y∨ x=yyx≤y<zpara(x=y∨ x<y)∧ y<z.Expandir
unaformulaabreviada,resultaenalomasmultiplicarlalongitudpor
unfactorconstante.Ademásparalasabreviacionesdearriba,
debemosusarconstantescomo2nymultiplicacionescomoabenlas
formulas.Técnicamenteestasdebenser reemplazadas,introduciendo
unavariableexistencialmentecuantificada,digamosx,yafirmemos
quex=2nox=abporPn(n,2,x)oMn(a,b,x).Estotambién
incrementalalongituddelasformulasporunfactorconstante.
Nos propondremoscodificarcálculosdelamáquinadeTuringcomo
númerosenteros.SeaMunaMTNacotadaentiempo2n.Siel
númerototaldesímbolosdelacinta,símboloscompuestosyel
marcador#esb,entoncesuncálculodeMesunenteroxenel
rangode0≤x<b(2+1)+1.Laafirmación,queunenteroesuncalculo, esfacilitadoporunpre
dicadoqueinterrogaali-esimodigito enlarepresentaciónb-ariadex.
Lema(13.12)
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 95/134
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 96/134
96
paraalgunaconstantes.Porconveniencia,tomamoslos dígitosdeordeninferiordei,
paraestar enelfinalizquierdodel cálculo.
SeaxunaentradadelongitudndeM.ConstrúyaseunaformulaFx,
queesverdaderasiysolosiMaceptaax.Fx esdelaforma∃
i(...),endondelaformulasinlosparéntesisafirmaquei esuncálculo
aceptadodex.EstaformulaesanálogaaladadenelTeorema13.1.
Losprimerosn+1símbolosdelcalculoson#[q0,a1,m]a2···an,asumiendoquex=a1a2···
an,q0 eselestadoinicialymescualquier
eleccióndelprimermovimiento.Paradecirquelosprimerosn+1
movimientosdelcálculosoncorrectos,decimosqueexistenuyj
talesque,elvalordeurepresentaa#[q0,a1,m]a2···an
paraalgunamei=bn+1j+uparaalgúnenteroj.
DebemosescribiréstaformulaenO(n) –espacioentiempoquees
polinomialenn.Porinducciónsobrek=2,3,...,n+1podemos
escribirunaformulaCk(v)convariableindependientev,lacual
afirmaqueelvalordeveselvalornuméricodelosprimerosk
símbolosdelcálculo.Paralabase,k=2,simplementeescribimosla
formulaC2(v)=(v=p1∨v=p2∨···∨v=pn).
Endondelasp j‟ssonlosenterosrepresentadospor#[q0,a1,m]para
elconjuntofinitodevaloresdem.Porlainducción,Ck(v)=∃ (Ck−1(w)∧ v=bw+ak−1),endo
ndelasak‟ssontomadasdevaloresnuméricosdelsímbolode
cintaak−1.ParaevitarusarnvariablesparaexpresarCn+1,lascuales
haríansulongitudO(nlogn),alternamosentredosvariables,por
ejemplovyw,comoconstruimosC2,C3,...,Cn+1.
La fórmuladeseadaafirmaqueCn+1(u)ei=bn+1j+uparaun
enteroj.LaúltimaafirmaciónessimilaralaquehicimosenelLema13.12,ylatécnicanoserá
repetidaaquí.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 97/134
97
ParaexpresarquelaDIinicialfuecorrectaenelTeorema13.1
requirióafirmarque“aproximadamente”p(n)celdasconteníanel
símboloblanco.Estofuedotadoporelsímbolológico∨dep(n)
objetos.Ahora,debemosafirmarque2nceldascontienenelsímboloblancoydeéstamaneranopodemosusar elsímbolológico∨de2n
formulas;éstaseríaunaformulamuylarga.Encambio sise usanlos
cuantificadores∀ jyseafirmaquetambiénjnoesunenteroenel
rangon+2< j≤2n+1oqueelj-esimosímboloesunblanco,el
cualsedenotapor0.Deéstamaneraescr ibimos∀ j[¬Msn( j,0,0)∨¬(n+2≤ j≤2n+1)∨Dnb(i, j,
0)]
LasformulasquefuerzanaquelaúltimaDIcontengaunestadofinal
yfuerzanaquecadaDIsesigadelapreviaDIporquedelaelección
delmovimientoincrustadoenlaDIpreviasontrasladadosdemanera
similardelastécnicasdelTeorema13.1.Teniendo esto hecho,
tenemosunaformulaEx,cuyalongitudes proporcionalan,quees
verdaderasiysolosiMaceptaax.
SupongaqueMaceptaunlenguajeL entiempo2nelcualnoes
aceptadoporcualquierMTN2n/2espacio-acotada.(Laexistenciade
tallenguajesesiguedelajerarquíaNTIMEdeCook[1973a],lacual nohemospr obado.)
PodemosreconoceraL comosigue.Dadaxdelongitudn,produce laformulaEx
queesverdaderasiysolosixestáenL.Ahora siT(n)
esentiemponodeterminista,essuficiente aceptarelconjuntode
formulasverdaderasenlateoríadeprimerordendelosrealescon adición,podemos
determinar sixestáenLentiempop(n)+T(cn).
Entoncesp(n)+T(cn)>2n/2paraunnúmeroinfinitoden‟s,delocontrario,porelLema12.3
reconoceríamosaLentiempoalomas2n/2,paratodan.SesiguequeT(n)≥2dnparaalguna
d>0.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 98/134
98
Corolario
La teoríadelosrealesconadiciónesdifícilentiempoexponencial
conrespectoalasreduccionesentiempopolinomial.
Demostr ación:
La pruebaesunageneralización fácildelapr ecedentereducciónde
unaMTentiempo2nnodeterminista.
3.10 LA CLASE DE PROBLEMAS NP
INTRODUCCIÓN
La complejidad computacional estudia el coste de la resolución de un problema.
El esfuerzo necesario para resolver un problema de forma eficiente puede
variarenormemente.
Como unidad de medida del tiempo de ejecución se suele utilizar la Operación
Básica, para que el rendimiento del algoritmo sea independiente de la potencia
delordenador, la calidad del compilador, la habilidad del programador, etc.
Los recursos comúnmente estudiados encomplejidad computacional son:
El tiempo: mediante una aproximación al número de pasos de ejecución que un
algoritmoemplea para resolver un problema.
El espacio: mediante una aproximación a la cantidad de memoria utilizada para
resolver elproblema.
Clases de Complejidad
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 99/134
99
La mayor parte de los problemas en teoría de la complejidad tienen que ver con
losproblemas de decisión, que corresponden a poder dar una respuesta positiva o
negativa a un problema dado.
Los problemas se clasifican en conjuntos o clases de complejidad (L, NL, P, P-
Completo, NP, NP-Completo, NP Duro...)
Nosotros nos vamos a centrar en las clases P y NP y fundamentalmente en esta
última.
3.10.1 PROBLEMAS P Y NP
LA CLASE P contiene aquellos problemas de decisión que pueden ser resueltos
en tiempo polinómico por una MT determinista, esto es, aquellas en las que para
cada par estado y símbolo exista a lo sumo una posibilidad de ejecución. Los
problemas de complejidad polinómica son tratables, es decir, en la práctica se
pueden resolver en un tiempo razonable.
LA CLASE NP contiene los problemas de decisión que son resueltos por una MT
no determinista en tiempo polinómico y de ahí su nombre: Non-DeterministicPolynomial-time.
Naturalmente, cualquier problema en Ptambién se encuentra en NP:
✔ Si una máquina de Turing determinista resuelve elproblema, una no
determinista también y en igual tiempo(MTD es un caso particular de MTND).
Pero ¿qué relación existe entre la clase P y la clase NP?
Saber si P=NP o P≠NP es el más importante problema abierto en computación
teórica. Demostrar que las clases son distintas es uno de los problemas premiadoscon 1 millón $.
Aunque el enigma está lejos de resolverse, parece que las clases son distintas.
Así que de momento:
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 100/134
100
Como ejemplos de problemas NP tenemos:
El problema del TSP visto en prácticas.
Bin Packing, que consiste en dada una secuencia de números, empaquetarlos enel mínimo número de latas posible, teniendo en cuenta que cada lata tiene
capacidad M y la suma de los números introducidos en la lata nopuede exceder el
valor M.
Los problemas de satisfactibilidad (SAT) de los que hablaremos a continuación.
Problema de satisfactibilidad(SAT)
El problema de satisfactibilidad (SAT) es un problema de lógica matemática y la
teoría de la computación.
La satisfactibilidad proposicional es el problema de decidir si existe una asignación
de 0´s y 1´s a los átomos de una fórmula proposicional que la hacen verdadera.
Se puede asumir que las instancias SAT están expresadas en FNC sin pérdida de
generalidad.
Ejemplo: La asignación de valores de verdadque satisfacen la fórmula
( P ¬ Q) ( Q R) ( ¬ R
¬P) es P = Q = 1 y R = 0, por lo que la fórmula es
satisfactible.
Ejemplo: ( ¬P ¬ Q) ( Q P)
(¬P Q)
(P ¬Q)¿Es satisfactible?
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 101/134
101
La manera obvia para resolver un problema deeste tipo con n variables es
generarsistemáticamente todas las combinacionesposibles (2^n) y parar al
encontrar la solución. Eso está bien para n pequeños....si no el tiempocreceexponencialmente incluso para valores de nno muy grandes.
DAVIS-PUTNAM
➔ A comienzos de los sesenta, M. Davis y H. Putnamdescubrieron un algoritmo
sencillo que mejoraligeramente la búsqueda exhaustiva (su coste no deja deser
exponencial).Se basa en aplicar una regla de resolución que eliminalas variables
una por una y añade todos los resolventesal conjunto de clausulas.Se trata de un
algoritmo completo: Si existe solución laencuentra.
Sea E la expresión en FNC para la que se busca la asignación, elpseudocódigo
del algoritmo sería:Función partir (E)
1. Si E contiene la cláusula vacía, el algoritmo termina y devuelve f.
2. Si E no contiene clausulas el algoritmo finaliza devolviendo laasignación parcial
que teníamos en ese momento.
3. Seleccionar la siguiente variable Xi sin asignar de la expresión E
4. partir (E(Xi=0))
5. partir (E(Xi=1))
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 102/134
102
SAT ∈NP
Porque es un problema de decisiónPorque podemos construir una máquina de Turing No Determinista que resuelva el
problema en tiempo polinómico.
Una MTND para SAT se construirá de la siguiente forma:
1. Emplear la parte no determinista para adivinar yescribir cada una de las
posibilidades (2^n siendo n elnúmero de variables).
2. Para cada una de las 2^n posibilidades(asignaciones) se comprueba de manera
deterministasi hace satisfactible la fórmula.
Sea E la expresión en FNC con N variables. En nuestro caso 5 por simplificar a las
que llamamos X1,X2...X5. Nuestra MTND tendrá 2^N cintas, cada una con una de
las posibles asignaciones a las variables al principio y la expresión a continuación:
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 103/134
103
La máquina constará de dos partes:
La primera, no determinista para copiar a la izquierda de la cinta cada
combinación posible (una vez identificado el número de variables). La segunda,determinista para asignar cada combinación a las variables y finalmente dar el
veredicto. Si al menos una asignación hace satisfactible la expresión entonces la
fórmula es satisfactible.
Turing en su tesis doctoral introdujo un nuevo concepto: Lasmáquinas
conoráculos. Son máquinas estándar que incluyeninstrucciones extra para
preguntar al oráculo e incorporar lasrespuestas a la cinta. Son equivalentes a una
MTNDCon este concepto, la demostración anterior se reduciría a la
últimaparte de lo anterior con un oráculo capaz de proporcionarnos entrelas
2 ^N combinaciones para N variables una combinación que satisfaga la
fórmula (si existe).
Ahora nuestra máquina se rige por la contestación del oráculo (tercer carácter)
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 104/134
104
Al hablar de satisfactibilidad a muchos se les habrá venido a lacabeza el famoso
juego del Sudoku.
Este juego sepuede expresar como un problema
SAT con 729 variablesproposicionales y una
fórmula en FNC de 8829 cláusulas.
TEOREMA DE COOK
Un problema de decisión es NP-completo si todo problema en NP puede
reducirse a él en tiempo polinomial. Si tienes un problema NP tienes una MT-ND
que lo resuelve en tiempo polinomial p(n), siendo n el tamaño del problema. “El
teorema de COOK establece que el problema de satisfactibilidad (SAT) es NP-
Completo”.
Si tenemos un problema NP, entonces existe (y conocemos) una MTND que lo
resuelve en tiempo polinomial conocido p(n). Vamos a transformar esa máquina
MT-ND particular en un problema de satisfacibilidad (empleando en ello un tiempo
polinomial en n). Si se soluciona este problema de satisfacibilidad, se obtienetambién la solución del problema NP original. Habremos demostrado así que todo
problema NP se puede transformar al problema de satisfacibilidad y por tanto el
problema de satisfacibilidad es NP-Completo.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 105/134
105
Paso de la máquina de Turing a problema de satisfacibilidad
Para pasar a un problema de satisfacibilidad la MT-ND que resuelve el problema
NP dado, lo que vamos a hacer es describir la MT-ND en forma de cláusulas de
lógica proposicional.
Definición de los estados
La MT en el momento t debe estar en un único estado. Para describir esto
definimos un conjunto de variables S(t,q). S(t,q) es verdadera si en el momento t la
MT esta en el estado q, y falsa en caso contrario. Para conseguir que en cada
momento el estado sea uno sólo, empezamos a definir la fórmula con las
siguientes cláusulas:
[S(t,q) → ~ S(t,q’)] con q, q‟ estados de la MT tales que q≠q‟ y
t = 0,1...p(n), tiempo de ejecución de la MT.
Definición de la cinta
Definimos una serie de variables T(t,c,s), que representarán la cinta. T(t,c,s) es
cierto si la cinta de la MT tiene el símbolo s en la celda c en el momento t , y falso
en caso contrario. Para asegurar que dichas variables se comportan como una
cinta, añadimos a la fórmula las cláusulas:
[T(t,c,s) → ~ T(t,c,s’)] con t = 0,1,...,p(n), c = [-p(n),p(n)] ys, s‟símbolos del
alf abeto de la MT tales que s ≠s‟.
Definición de cabezal
Definimos las variables H(t,c) para representar el cabezal de laMT. H(t,c) es
verdadero si el cabezal de la MT está en la celda c en el momento t, y falso en
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 106/134
106
caso contrario. Añadimos las cláusulas [H(t,c) → ~ H(t,c’)] con t = 0,1,...,p(n); c,c‟
= [-p(n),p(n)] y c ≠c‟.
Además, para asegurar que en la cinta lo único que se modifica es loque estádebajo del cabezal, añadimos las cláusulas:
[T(t,c,s) ^ ~ H(t,c) → T(t+1,c,s)]con t = 0,1,...,p(n) y c = [-p(n),p(n)]
Finalmente, cada transición de la MT se transforma en un conjunto de cláusulas,
como sigue:
[T(t,c,s) ^ S(t,q) ^ H(t,c) →S(t+1,q‟)]
[T(t,c,s) ^ S(t,q) ^ H(t,c) →H(t+1,c‟)]
[T(t,c,s) ^ S(t,q) ^ H(t,c) →T(t+1,c,s‟)]
con t = 0,1,...,p(n), c = [-p(n),p(n)], s y s‟ símbolos del alfabeto y q y q‟ estados. c‟
es (c+1) o (c-1), según indique la transición.
Condiciones iníciales
H(0,0), en el instante t = 0 el cabezal esta en c = 0;
S(0,0), en el instante t = 0 el estado es q = 0;
La descripción del problema está en las celdas de la 1 a la n:
T(0,i,s(i)) con i = 1,2,...,n.
El problema de satisfacibilidad que hemos construido (en tiempo polinomial en n)
es tal que sólo tiene una solución. Dicha solución incluye necesariamente como
T(0,*,*) el estado de la cinta inicial (con el problema NP dado), como T(1,*,*) el
estado de la cinta tras un paso de la MT, en T(2,*,*) el estado de la cinta tras dos
pasos de la MT, ..., y en T(p(n),*,*) el estado final de la cinta, es decir, la solución
del problema NP dado.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 107/134
107
Por tanto hemos demostrado cómo convertir (en tiempo polinomial) cualquier
problema NP a un problema SAT tal que, si se resuelve dicho problema SAT, se
obtiene la solución del problema NP. Luego SAT es NP-Completo.
¿Dónde quedó el no-determinismo?. Una MT-ND puede ser vista como una MT
que disponga de elemento adivinatorio que llamaremos oráculo. El oráculo forma
parte de la cinta de entrada de la MT y se sitúa a la izquierda de la posición inicial
delectura.(dibujo de la cinta de entrada de la MT).
Así dispondremos de una MT-D (máquina de Turing determinista) en cuya cinta de
entrada tenemos un oráculo y la descripción del problema, en nuestro caso un
problema NP genérico. El oráculo siempre da el camino correcto a seguir.
11.- Cualquier lenguaje finito puede expresarse como la unión finita de los
lenguajes que constituyen cada una de sus cadenas. Es decir, si L = { ω i}i=1…n, y
Li ={ ω i},entonces L = { U Li}i=1…n. El diagrama seria:
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 108/134
108
12.- Muestre que si un autómata finito determinista es capaz de aceptar un
número de cadenas infinito, entonces debe aceptar una cadena que consista en la
concatenación de tres segmentos tales que cualquier repetición del segmentocentral (que es no vacío) dé como resultado otra cadena aceptable. Esto se
conoce como lema de bombeo (“pumping lemma”), pues indica que pueden
generarse otras cadenas aceptables bombeando o ampliando una cadena
aceptable.
Solución:
El autómata es finito -> El número n de estados es finito
El número de cadenas es infinito ->Para cualquier c1 de longitud l1, existe una
cadena c2 de longitud l2>l1.
Estos dos hechos implican el que existan cadenas de longitud l>n. Es decir,
existen cadenas en las que algún estado es recorrido más de una vez. Estas
cadenas pueden ser de esta forma:
Nota: Observemos que al llegar al extremo final del segmento central, nada
impide que ocurra la entrada que provoca la vuelta al extremo inicial de dicho
segmento.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 109/134
109
Por tanto, es posible que se repita cualquier número de veces; y posteriormente
recorrer desde Sj hasta Sn, con lo que son admisibles cadenas con un número
cualquiera de repeticiones del segmento central.
13.- Dada la cadena. Describa el significado.
a). (z U y)* · x
Cualquier combinación de z e y seguida de x , o bien una única x
b). ((x·x*)·y·y*))
Cadenas que empiezan por una sucesión de xs (con al menos una x ) y termina
con una sucesión de ys (con al menos una y ).
c). ((x·x*)U(y·y*))
Cadenas de xs con al menos una x y cadenas de ys con al menos una y .
d). ((x*·y*)·z))
Cadenas formadas por cero o más xs seguidas de cero o más y’s seguidas de
cero o más z’s.
14.-Genere todas las cadenas que consisten en un número impar de x .
x · (x · x) *
15.- Genere todas las cadenas que consisten en un número impar de x’s y un
número par de y’s.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 110/134
110
Veremos primero cuál es el autómata finito que reconoce este lenguaje y de ahí
derivaremos la expresión regular que lo describe. El lenguaje puede verse como la
intersección de dos lenguajes más sencillos: el conjunto de cadenas con un
número impar de x’s y el conjunto de cadenas con un número par de y’s.
El autómata que reconoce el lenguaje puede construirse a partir de los
correspondientes autómatas.
Nota: El autómata anterior puede describirse mediante un diagrama de tan sólo
dos estados.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 111/134
111
16.- Dado el alfabeto { x, z }, queremos construir un autómata finito M tal que L(M )
sea el lenguaje formado por las cadenas que contienen al menos una z , y cada z
está inmediatamente precedida y seguida por una x . ¿Es correcta la siguiente
solución?
x
x x z
x
x
A. Sí B) No
Solución: B.
El autómata no acepta la cadena xzxzx .
17.- Muestre que puede utilizarse un autómata finito determinista para reconocer
una cadena de paréntesis anidados y equilibrados si se asegura que la
profundidad de anidamiento no excederá de un nivel preestablecido.
Este autómata lee cadenas de paréntesis anidados hasta un nivel n, y los acepta
sólo cuando están todos equilibrados.
Solución:
Este autómata permite cadenas del tipo ( ( ) ( ) ). Se vuelven a abrir paréntesis
después de aparecer el primero que cierra.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 112/134
112
18.- ¿Es posible que una gramática en forma normal de Chomsky genere un
lenguaje regular?
A. Sí, es posible b) No, es imposibleSolución: A.
Ejemplo:
G = {S x}, G = {S MN , M MM , N NN , M x, N y}.
19.- Dado el alfabeto { x, y }, queremos construir un autómata de pilaM tal que L(M )
sea el lenguaje en cuyas cadenas hay tres x ‟s por cada dos y ‟s. ¿Es correcta la
siguiente solución? (Se entiende que cada transición que inserta o lee varios
símbolos en la pila representa en realidad varias transiciones consecutivas.)
x,;aa
,;#
y,;bbb
x,bb; y,aaa;
,#;
A) Sí B) No
Solución: B.
El autómata no acepta la cadena xyyxx .
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 113/134
113
,;#
x, z ;
y,z ; x,; z
,#;
20.- Queremos construir un autómata de pila determinista que acepte el lenguaje
x n+2y n. ¿Es correcta la siguiente solución?
a) Sí b) No.
Solución: B.
No es determinista. Se comprueba fácilmente al analizar la cadena xx.
21.- Queremos construir un autómata de pila determinista M tal que L(M ) =
{ x my nz t | m, n y t enteros no negativos, m = n+t }. ¿Es correcta la siguiente
solución?
y, x; z, x;
z, x;
,#; ,;#
y, x; x,; x
a) Sí b) No
Solución: B.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 114/134
114
El autómata no acepta la cadena xz .
22.- EJEMPLO DE AUTOMATAS DE PILA.-
3.11 MÉTODOS POR DESPLAZAMIENTO Y REDUCCIÓN.
E E + E
E E * E
E (E)
E id
ANÁLISIS POR DERIVACIONES ARBITRARIAS.
id + id * id id + (id*(id + id))
E + id * id E + (id*(id + id))
E + E * id E + (E * (id + id))
E * id E + (E * (E + id))
E *E E + (E * (E + E))
E E + (E * (E))
E + (E * E)
E + (E)
E + E
E
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 115/134
115
Utilizando un analizador por desplazamiento o reducción
PILA ENTRADA ACCIÓN
$ id + id * id $ Desplazar
$ id + id * id $ Reducir E id
$ E + id * id $ Desplazar
$ E + id * id $ Desplazar$ E + id * id $ Reducir E id
$ E + E * id $ Reducir E E + E
$ E * id $ Desplazar
$ E * id $ Desplazar
$ E * id $ Reducir E id
$ E * E $ Reducir E E * E
$ E $
PILA ENTRADA ACCIÓN
$ id+(id*(id+id))$ Desplazar
$id +(id*(id+id))$ Reducir E id
$E +(id*(id+id))$ Desplazar
$E+ (id*(id+id))$ Desplazar
$E+( id*(id+id))$ Desplazar
$E+(id *(id+id))$ Reducir E id
$E+(E *(id+id))$ Desplazar
$E+(E* (id+id))$ Desplazar
$E+(E*( id+id))$ Desplazar
$E+(E*(id +id))$ Reducir E id
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 116/134
116
$E+(E*(E +id))$ Desplazar
$E+(E*(E+ id))$ Desplazar
$E+(E*(E+id ))$ Reducir E id
$E+(E*(E+E ))$ Reducir E E + E$E+(E*(E ))$ Desplazar
$E+(E*(E) )$ Reducir E (E)
$E+(E*E )$ Reducir E E * E
$E+(E )$ Desplazar
$E+(E) $ Reducir E (E)
$E+E $ Reducir E E+E
$E $
23.- ¿Cuál es el analizador sintáctico tipo LL más sencillo para la siguiente
gramática?
x N
yN M
xM M
MN S
A) LL(1) B) LL(2)
Solución: A.
El único terminal que plantea ambigüedad es M . Pero basta observar dos caracteres
para saber si hay que aplicar la segunda regla, o la tercera, o rechazar la cadena.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 117/134
117
24.- ANALIZADOR SINTACTICO ll
GRAMÁTICAS LL (1), ELIMINACIÓN DE RECURSIVIDAD POR LA IZQUIERDA
Ejemplo.-
Modelo Ejemplo
A Aᴕ I β E E + T I T
Se sustituye por: T T * F I F
A β A´ F id I (E) A´ ᴕ A´I ϵ Convirtiendo
E TE´
E´ + TE´I ϵ
T FT´
Derivando para: T´ *FT´I ϵ
id * (id + id) F idI (E)
E E
T T ϵ´
T*F FT´ ϵ´
F*F idT´ ϵ´
id*F id* F T´ϵ´
id*(E) id* (E )T´ϵ´
id* (E + T) id* (T E´ )T´ϵ´
id* (T + T) id* (F T´E´ )T´ϵ´
id* (F + T) id* (id T´ E´ )T´ϵ´
id* (id + T) id* (id ϵ E´ )T´ϵ´
id* (id + F) id* (id + T´ E´)T´ϵ´
id* (id + id) id* (id + F T´E´)T´ϵ´
id* (id + id T´E´)T´ϵ´
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 118/134
118
id* (id + id ϵϵ)ϵϵ
id* (id + id)
FORTALIZACIÓN POR LA IZQUIERDA
<Prop>:: = If <expr> then <prop>
I if <expr> then<prop> else <prop>
GRAMATICAS AMBIGUAS
Modelo
A ᴕβ1 I ᴕβ2 <Prop> : : if <expr> then <prop><A>
Se sustituye por: <A> : : = else <prop> I ϵ
A ᴕ A´ A el I Ia I los I las
A ᴕ β1 I ᴕ β2 Convirtiendo:
A el l lA´
A´ aA´´ l os
A´´ I ϵ
ANALIZADOR SINTACTICO LR
EJEMPLO: Algoritmo para obtener la colección de conjuntos de ítems.
Sea C la colección de conjuntos de ítems y S´el símbolo de inicio.
Incluir en C la función closure de la clase de ítems S´-->. S indicada por C: ={
Closure ([S´-->. S])}.
Repetir el paso 4 hasta que no existan más conjuntos de items que puedan
añadirse a C.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 119/134
119
Para cada clase de items I en C y cada símbolo gramatical X; tal que goto (I,X) no
sea vacio y que aun no se encuentre en C, añadir a C el conjunto creado a partir
de goto (I, X).
Funciones First y Follow
First (F) = First (T) = { id, (}
First (E) = First (E´) = {id, (}
Follow (E´) = {$}
Follow (E´) = {+,). $}
Follow (T) = {*,+,),$}
Follow (F) = {*,+,),$}
Construcción de la Tabla Análisis.
Si A ᴕ aβ esta en li y el autómata indica que li sobre a cambiar hacia Ij. Goto
(li, a) = Ij, entonces la tabla de análisis indicará acción shift (cambio) desde el
estado i al estado j.
Acción [i, a]= j donde a = terminal.
Si S´ .S está en li entonces acción [i, $]= aceptar
Si A ᴕ Está en li, entonces acción [i,a]= reducción por la regla A ᴕ para
todo símbolo terminal en Follow (A).
Si goto (li, A)= Ij entonces la función Goto en la tabla de análisis Goto [i, A]= j. li e
lj son conjuntos de items.
A = Símbolo no terminal.
Todas las entradas no definidas en 1 a 4 son error.
El estado inicial en el analizador es el construido a partir del conjunto que
contienen S´-- > . S.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 120/134
120
Construcción de la Tabla LR:
I0: I 1 E´ .E I6: Goto (l1, +)
I 1 E .E+T I9 E E + . T
I 2 E .T I9 T .T + F
I 2 T .T*F I3 T .F
I 3 T .F I4 F . ( E )
I 4 F .(E) I5 F .idI 5 F .id I7: Goto (l2, *)
I1: Goto (lo, E) I 10 T T*.F
a E´ E. I4 F . ( E )
I6 E E.+T I5 F .id
I2: Goto (lo, T) I8: Goto (l4, E)
r E T I11 F ( E. )
I7 T T.*F I 6 E E. + T
I3: Goto (lo, F) I9: Goto (l6, T)
r T F r E E + T
I4: Goto (lo.( ) I7 T T .* F
I8 F (.E) I10: Goto (l7, F)
I8 E .E+T r T T *F
I2 E .T I11: Goto (l8, ))
I2 T .T*F r F ( E ).
I3 T .F
I4 F . (E)
I5 F .id
I5: Goto (lo, id)
r F id
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 121/134
121
EJEMPLO FUNCIONES RECURSIVAS
Ejemplo:
E TE´
E´ +TE´
T FT´
T´ *FT´
F id (E)
Se construye una autómata para darle seguimiento a las llamadas recursivas.
E:
T E´
E:
+ T E´
T:
F T´
T:
* F T´
F:
( E )
0
3 54 6
8 9
1013
14 17
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 122/134
122
Nota: Los estados 2,6,9,13 y 17 son de aceptación.
Entrada : id +id
id 0 1 7 8 14 17
+ 9 10 13 2 3 4
id 5 7 8 14 17
$ 9 10 13 6 3 6
Entrada (id + id)* id( 0 1 7 8 14 15
Id 16 0 1 7 8 14 17
+ 9 10 10 13 2 3 4
id 5 7 8 14 17
) 9 10 13 6 3 6 17
* 9 10 11
id 12 14 17
$ 13 10 13 2 3 6
EJERCICIOS MAQUINA TURING.-
1.- ¿Es regular el lenguaje aceptado por la siguiente máquina de Turing?
A). Sí B) No
Solución: A.
x
R R
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 123/134
123
Es el lenguaje formado por todas las cadenas que no empiezan por x .
2.- Dado el alfabeto { x , y , z }, queremos construir una máquina de Turing quebusque en su cinta la secuencia xy , la sustituya por zz y se detenga en cuanto
haya realizado esta operación. ¿Es correcta la siguiente solución?
A). Correcta. B) Incorrecta.
Solución: B.
Dada la configuración inicial xzyxy , la máquina se detiene con la configuración
xzzxy .
3.-“El lenguaje aceptado por la siguiente máquina de Turing es el lenguaje
formado por todas las cadenas que cumplen estas dos condiciones: (a) la cadenatiene un número par de equis; y (b) la cadena no tiene dos equis seguidas.”
A) Verdadero B) Falso
Solución: B. El autómata acepta la cadena xyxxyx .
4.- Dado el alfabeto { x , y , z }, queremos construir una máquina de Turing que
busque en su cinta la secuencia xy , la sustituya por zz y se detenga en cuanto
haya realizado esta operación. ¿Es correcta la siguiente solución?
A) Correcta. B) Incorrecta.
Rx R zLz y
x
z
x
y, z
R SL Rx SL L
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 124/134
124
Rx R zLz
y
x
z
Solución: B.
Dada la configuración inicial xy . . . , la máquina no se detiene nunca.
5.- Dado el alfabeto { x , y , z }, ¿es independiente de contexto el lenguaje aceptado
por la siguiente máquina de Turing?
Sí B) NoSolución: A.
Es el lenguaje formado por los palíndromos de { x , y , z }
6.- Queremos construir una máquina que venda tabaco haciendo un supuesto de
125 pesos el paquete. El comprador debe introducir monedas de 25 ó 100 pesos.
y luego pulsar la tecla “”. Para controlar el proceso, se construye un autómata
que viene dado por la siguiente tabla. ¿Es correcta esta solución? (La máquina
debe dar una señal de error cuando la cantidad de dinero es incorrecta.
Las demás monedas son devueltas por la máquina, y por tanto no se consideran
en el autómata. Observe que la tecla “” equivale al fin de cadena.)
R } SL R L R
x,y,z ¬ ¬
L
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 125/134
125
Estado 25 100 “”
1 2 5 Error
2 3 error Error
3 4 error Error4 5 error Error
5 6 error Error
6 error error Aceptar
A). Correcta B). Incorrecta
Solución: B.
NOTA: Si se introduce una moneda de 25 y luego una de 100, debería aceptarlo.
EJERCICIOS A RESOLVER.-
1.- Señale la expresión regular que representa el lenguaje que acepta el siguiente
autómata.
a. ( xy * x yy * x y x )
b. ( xy * x yy * x yy * xx *)
c. ( xy * x yy * x )
d. Ninguna de las anteriores
Respuesta:_____
x
y
x
y
y
x
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 126/134
126
El número mínimo de estados de un autómata finito determinista es:
Uno.
Dos.
No hay número mínimo.Depende del alfabeto sobre el que está definido.
Construir un autómata finito que reconozca los números enteros distintos de 0 se
entiende que los números que han de venir expresados en la forma habitual, sin
caracteres innecesarios; por ejemplo, cadenas como “007” deben conducir a
estados de no aceptación.
Construir un autómata finito que reconozca expresiones aritméticas de suma,
resta, multiplicación y división de dos números enteros; por ejemplo, “1725=”.
Indique cómo caracterizaría las cadenas que genera la siguiente gramática:
S S1
S1 x S1 y
S1 xy
S S2
S2 xS2 yy
S2 xy
xy *( xy *)*
{ x ny m : m y n son enteros positivos tales que m = n o m = 2n}
x *(yy )* ( xy )*
Ninguna de las caracterizaciones anteriores es válida
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 127/134
127
Indicar si el autómata de la siguiente figura es determinista o no determinista.
a) Determinista. b) No determinista.
¿Es cierto que el siguiente diagrama representa un autómata determinista de
cuatro estados?
Verdadero. b) Falso
Indique cuál de las siguientes afirmaciones es verdadera:
Un autómata finito determinista M reconoce un lenguaje L(M ) si acepta todas las
cadenas de dicho lenguaje.
Un autómata finito determinista M reconoce un lenguaje L(M ) si acepta
exclusivamente la colección de cadenas de dicho lenguaje.
Un autómata finito determinista M reconoce un lenguaje L(M ) si la colección de
cadenas de dicho lenguaje es determinista.
x,; x
x;
,; y
x, x;
y, y;
y;
x
z
y
z
y
x
x
y
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 128/134
128
Ninguna de las afirmaciones anteriores es cierta.
Construir un autómata de pila determinista que acepte el lenguaje x n+1y n.
Dado el alfabeto { x ,y, z } y estas dos máquinas de Turing, sea L1 el lenguaje
aceptado por la primera y L2 el aceptado por la segunda. ¿Cuál de las siguientes
afirmaciones es verdadera? Realice la comprobación.
L1 = L2
L1L2
L2L1
Ninguna de las anteriores
¿Para cuál de las siguientes gramáticas no existe una gramática equivalente en
laforma normal de Chomsky?
S xN
N Sx
xNx y
Rx R zLz y
x
¬x/R
/R
z/R
/R
x/R
y/z z/L
¬x/R¬z/R
/z
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 129/134
129
S xA
A xAx
A y
S AB
A xAy
A
B yBz
B
S MzN
M xM
M
N yN
N
Sea n un número natural tal que n2. El número total de máquinas de Turing con n
estados es:
Finito b) infinito.
Que lenguaje acepta el siguiente autómata, Analícelo.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 130/134
130
Si iniciamos la máquina de Turing siguiente con la cadena yyxyxx ,
La máquina acepta la cadena.
La máquina entra en un bucle y no termina nunca.
Hay una terminación anormal.
Dado el alfabeto { x , y , z }, construir una máquina de Turing que busque en su cinta
la secuencia xy , la sustituya por zz y se detenga en cuanto haya realizado esta
operación.
Dado el alfabeto { x , y }, construir una máquina de Turing que se detenga cuando y
sólo cuando encuentra en la cinta la secuencia xxy .
x x x
x,;
,#;
,#;
x, x;
x,; x
x
#
/R
/R
/R
/x
/
/
/L
/R
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 131/134
131
Dado el alfabeto { x , y }, construir una máquina de Turing que se detenga cuando y
sólo cuando encuentra en la cinta la secuencia xxy (como cadena o como parte
de una cadena).
¿Cuáles son las cadenas que acepta el siguiente autómata vaciando su pila?
Las cadenas con tantas x ‟s como y ‟s Las cadenas con más x ‟s que y ‟s
Ninguna de las respuestas anteriores.
¿Cuántas celdas tendrá la tabla de análisis sintáctico de un analizador LL para la
siguiente gramática?
20 o menos
Más de 20 y menos de 60
60 o más
x ; x
y, x;
S xA
S yCz
A xyB
A xzC
B yC
B z
C xA
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 132/134
132
Indicar si la siguiente afirmación es verdadera o falsa: “Los analizadores
sintácticos que analizan las cadenas de izquierda a derecha se denominan LR .”
Verdadera. b) Falsa.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 133/134
133
BIBLIOGRAFÍA
J. Glenn Brookshear, Teoría de la Computación: Lenguajes formales,
autómatas y complejidad, Ed. Pearson, Addison Wesley.
Trillo Miguel Angel. Tesis de Licenciatura. Simulador de una Maquina de
Turing en LISP.
Joan Domingo Peña, Introducción a los autómatas programables, Ed.
UOC.
John M. Howie, , Automata and Languages, Clarendon Press, Oxford.
8/9/2019 Lenguajes Formales y Automatas, Isc
http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 134/134
Guía de estudio de
Ingeniería en SistemasComputacionales
CUATRIMESTRE II