Lenguajes Formales y Automatas, Isc

134
 Lenguajes Formales y Autómatas Guía de Estudio de Ingeniería en Sistemas Computacionales Cuatrimestre II Vigencia periodo escolar Enero   Abril 2014

Transcript of Lenguajes Formales y Automatas, Isc

Page 1: 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

Page 2: Lenguajes Formales y Automatas, Isc

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. 

Page 3: Lenguajes Formales y Automatas, Isc

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.

Page 4: Lenguajes Formales y Automatas, Isc

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 

Page 5: Lenguajes Formales y Automatas, Isc

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 

Page 6: Lenguajes Formales y Automatas, Isc

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

Page 7: Lenguajes Formales y Automatas, Isc

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.

Page 8: Lenguajes Formales y Automatas, Isc

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.

Page 9: Lenguajes Formales y Automatas, Isc

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

Page 10: Lenguajes Formales y Automatas, Isc

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.

Page 11: Lenguajes Formales y Automatas, Isc

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

Page 12: Lenguajes Formales y Automatas, Isc

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.

Page 13: Lenguajes Formales y Automatas, Isc

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:

Page 14: Lenguajes Formales y Automatas, Isc

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).

Page 15: Lenguajes Formales y Automatas, Isc

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

Page 16: Lenguajes Formales y Automatas, Isc

8/9/2019 Lenguajes Formales y Automatas, Isc

http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 16/134

 

16

Page 17: Lenguajes Formales y Automatas, Isc

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

Page 18: Lenguajes Formales y Automatas, Isc

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

Page 19: Lenguajes Formales y Automatas, Isc

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(∑) 

Page 20: Lenguajes Formales y Automatas, Isc

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 ∑*. 

Page 21: Lenguajes Formales y Automatas, Isc

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

Page 22: Lenguajes Formales y Automatas, Isc

8/9/2019 Lenguajes Formales y Automatas, Isc

http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 22/134

 

22

Ejemplo:

Page 23: Lenguajes Formales y Automatas, Isc

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.

Page 24: Lenguajes Formales y Automatas, Isc

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

Page 25: Lenguajes Formales y Automatas, Isc

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    

Page 26: Lenguajes Formales y Automatas, Isc

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.

Page 27: Lenguajes Formales y Automatas, Isc

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.

Page 28: Lenguajes Formales y Automatas, Isc

8/9/2019 Lenguajes Formales y Automatas, Isc

http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 28/134

 

28

Page 29: Lenguajes Formales y Automatas, Isc

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

Page 30: Lenguajes Formales y Automatas, Isc

8/9/2019 Lenguajes Formales y Automatas, Isc

http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 30/134

 

30

Page 31: Lenguajes Formales y Automatas, Isc

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

Page 32: Lenguajes Formales y Automatas, Isc

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  

Page 33: Lenguajes Formales y Automatas, Isc

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.

Page 34: Lenguajes Formales y Automatas, Isc

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

Page 35: Lenguajes Formales y Automatas, Isc

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

Page 36: Lenguajes Formales y Automatas, Isc

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:

Page 37: Lenguajes Formales y Automatas, Isc

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 × Σ → Λ)

Page 38: Lenguajes Formales y Automatas, Isc

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.

Page 39: Lenguajes Formales y Automatas, Isc

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

Page 40: Lenguajes Formales y Automatas, Isc

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 .

Page 41: Lenguajes Formales y Automatas, Isc

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.

Page 42: Lenguajes Formales y Automatas, Isc

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;

Page 43: Lenguajes Formales y Automatas, Isc

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

Page 44: Lenguajes Formales y Automatas, Isc

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‟} 

Page 45: Lenguajes Formales y Automatas, Isc

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

Page 46: Lenguajes Formales y Automatas, Isc

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

Page 47: Lenguajes Formales y Automatas, Isc

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

Page 48: Lenguajes Formales y Automatas, Isc

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

Page 49: Lenguajes Formales y Automatas, Isc

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

Page 50: Lenguajes Formales y Automatas, Isc

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            

Page 51: Lenguajes Formales y Automatas, Isc

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

Page 52: Lenguajes Formales y Automatas, Isc

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

Page 53: Lenguajes Formales y Automatas, Isc

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:

Page 54: Lenguajes Formales y Automatas, Isc

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.

Page 55: Lenguajes Formales y Automatas, Isc

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)*

Page 56: Lenguajes Formales y Automatas, Isc

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:

Page 57: Lenguajes Formales y Automatas, Isc

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:

Page 58: Lenguajes Formales y Automatas, Isc

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 *)

Page 59: Lenguajes Formales y Automatas, Isc

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:

Page 60: Lenguajes Formales y Automatas, Isc

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: 

Page 61: Lenguajes Formales y Automatas, Isc

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:

Page 62: Lenguajes Formales y Automatas, Isc

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.

Page 63: Lenguajes Formales y Automatas, Isc

8/9/2019 Lenguajes Formales y Automatas, Isc

http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 63/134

Page 64: Lenguajes Formales y Automatas, Isc

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:

Page 65: Lenguajes Formales y Automatas, Isc

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

Page 66: Lenguajes Formales y Automatas, Isc

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.

Page 67: Lenguajes Formales y Automatas, Isc

8/9/2019 Lenguajes Formales y Automatas, Isc

http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 67/134

Page 68: Lenguajes Formales y Automatas, Isc

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.

Page 69: Lenguajes Formales y Automatas, Isc

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.

Page 70: Lenguajes Formales y Automatas, Isc

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.

Page 71: Lenguajes Formales y Automatas, Isc

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).

Page 72: Lenguajes Formales y Automatas, Isc

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!) 

Page 73: Lenguajes Formales y Automatas, Isc

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.

Page 74: Lenguajes Formales y Automatas, Isc

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.

Page 75: Lenguajes Formales y Automatas, Isc

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

Page 76: Lenguajes Formales y Automatas, Isc

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

Page 77: Lenguajes Formales y Automatas, Isc

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.

Page 78: Lenguajes Formales y Automatas, Isc

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,

Page 79: Lenguajes Formales y Automatas, Isc

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.

Page 80: Lenguajes Formales y Automatas, Isc

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)Σ∗ 

Page 81: Lenguajes Formales y Automatas, Isc

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

Page 82: Lenguajes Formales y Automatas, Isc

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

Page 83: Lenguajes Formales y Automatas, Isc

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

Page 84: Lenguajes Formales y Automatas, Isc

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

Page 85: Lenguajes Formales y Automatas, Isc

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

Page 86: Lenguajes Formales y Automatas, Isc

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

Page 87: Lenguajes Formales y Automatas, Isc

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,

Page 88: Lenguajes Formales y Automatas, Isc

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

Page 89: Lenguajes Formales y Automatas, Isc

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

Page 90: Lenguajes Formales y Automatas, Isc

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.

Page 91: Lenguajes Formales y Automatas, Isc

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

Page 92: Lenguajes Formales y Automatas, Isc

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)

Page 93: Lenguajes Formales y Automatas, Isc

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.

Page 94: Lenguajes Formales y Automatas, Isc

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)

Page 95: Lenguajes Formales y Automatas, Isc

8/9/2019 Lenguajes Formales y Automatas, Isc

http://slidepdf.com/reader/full/lenguajes-formales-y-automatas-isc 95/134

Page 96: Lenguajes Formales y Automatas, Isc

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í.

Page 97: Lenguajes Formales y Automatas, Isc

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.

Page 98: Lenguajes Formales y Automatas, Isc

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 

Page 99: Lenguajes Formales y Automatas, Isc

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:

Page 100: Lenguajes Formales y Automatas, Isc

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?

Page 101: Lenguajes Formales y Automatas, Isc

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

Page 102: Lenguajes Formales y Automatas, Isc

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:

Page 103: Lenguajes Formales y Automatas, Isc

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)

Page 104: Lenguajes Formales y Automatas, Isc

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.

Page 105: Lenguajes Formales y Automatas, Isc

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

Page 106: Lenguajes Formales y Automatas, Isc

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.

Page 107: Lenguajes Formales y Automatas, Isc

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: 

Page 108: Lenguajes Formales y Automatas, Isc

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.

Page 109: Lenguajes Formales y Automatas, Isc

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.

Page 110: Lenguajes Formales y Automatas, Isc

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.

Page 111: Lenguajes Formales y Automatas, Isc

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.

Page 112: Lenguajes Formales y Automatas, Isc

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 .

Page 113: Lenguajes Formales y Automatas, Isc

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.

Page 114: Lenguajes Formales y Automatas, Isc

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

Page 115: Lenguajes Formales y Automatas, Isc

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

Page 116: Lenguajes Formales y Automatas, Isc

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.

Page 117: Lenguajes Formales y Automatas, Isc

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´ϵ´

Page 118: Lenguajes Formales y Automatas, Isc

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.

Page 119: Lenguajes Formales y Automatas, Isc

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.

Page 120: Lenguajes Formales y Automatas, Isc

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

Page 121: Lenguajes Formales y Automatas, Isc

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

Page 122: Lenguajes Formales y Automatas, Isc

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

Page 123: Lenguajes Formales y Automatas, Isc

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 

Page 124: Lenguajes Formales y Automatas, Isc

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

Page 125: Lenguajes Formales y Automatas, Isc

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

Page 126: Lenguajes Formales y Automatas, Isc

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

Page 127: Lenguajes Formales y Automatas, Isc

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

Page 128: Lenguajes Formales y Automatas, Isc

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 

Page 129: Lenguajes Formales y Automatas, Isc

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.

Page 130: Lenguajes Formales y Automatas, Isc

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

Page 131: Lenguajes Formales y Automatas, Isc

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

Page 132: Lenguajes Formales y Automatas, Isc

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.

Page 133: Lenguajes Formales y Automatas, Isc

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.

Page 134: Lenguajes Formales y Automatas, Isc

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