Introducción. Máquinas de Turing. Turing restringidas. Turing y Computadoras INAOE (INAOE) 1 / 49

Documentos relacionados
Autómatas de Pila. Descripciones instantáneas o IDs. El Lenguaje de PDA. Equivalencia entre PDAs y CFGs INAOE (INAOE) 1 / 50

5 Autómatas de pila 5.1 Descripción informal. 5.2 Definiciones

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 42

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 45

Unidad 4. Autómatas de Pila

13.3. MT para reconocer lenguajes

El Autómata con Pila: Transiciones

Computabilidad y Lenguajes Formales: Autómatas de Pila

Autómatas Finitos Deterministicos (DFA)

El Autómata con Pila

Máquinas Secuenciales, Autómatas y Lenguajes. Tema 3.1: Autómatas Finitos Deterministas

Autómatas Deterministas. Ivan Olmos Pineda

Tipos de datos en S. Lógica y Computabilidad. Codificación de variables y etiquetas de S. Codificación de programas en S

Temas. Objetivo. Que el estudiante logre: 1) Identificar conceptos constructivos de la Teoría de la Computabilidad. 2) Definir autómatas de pila.

Equivalencia Entre PDA y CFL

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Computabilidad y Lenguajes Formales: Autómatas Finitos

Una (muy) breve introducción a la teoría de la computación

Un autómata con pila no determinista (APND) es una septupla Q A B F en la que

Procesadores de Lenguaje

Autómatas de Pila y Lenguajes Incontextuales

Formulación del problema de la ruta más corta en programación lineal

Introducción. El uso de los símbolos en matemáticas.

Materia: Matemática de Tercer Año Tema: Pendiente

GRAMATICAS LIBRES DEL CONTEXTO

Algoritmos y programas. Algoritmos y Estructuras de Datos I

Autómatas Mínimos. Encontrar el autómata mínimo. Universidad de Cantabria. Introducción Minimización de Autómatas Deterministas Resultados Algoritmo

Complejidad computacional (Análisis de Algoritmos)

Algebra lineal y conjuntos convexos

Conjuntos. Un conjunto es una colección de objetos. Si a es un objeto y R es un conjunto entonces por. a R. se entiende que a pertenece a R.

Guía práctica de estudio 03: Algoritmos

En matemáticas el concepto de conjunto es considerado primitivo y no se da una definición de este, por lo tanto la palabra CONJUNTO debe aceptarse

LEX. Las definiciones y subrutinas son opcionales. El segundo %% es opcional pero el primer %% indica el comienzo de las reglas.

1. Curvas Regulares y Simples

Tema: Autómata de Pila

Cálculo Diferencial: Enero 2016

Teoría de Lenguajes y Autómatas Conceptos y teoremas fundamentales

Teoría de Lenguajes. Clase Teórica 7 Autómatas de Pila y Lenguajes Independientes del Contexto Primer cuartimestre 2014

ALGEBRA y ALGEBRA LINEAL. Primer Semestre CAPITULO I LOGICA Y CONJUNTOS.

Grafos. Suponiendo que e = [u, v]. Entonces los nodos u y v se llaman extremos de e y u y v se dice que son nodos adyacentes o vecinos.

Índice Proposiciones y Conectores Lógicos Tablas de Verdad Lógica de Predicados Inducción

Límites y continuidad. Cálculo 1

Máquinas Secuenciales, Autómatas y Lenguajes Formales. Tema 4: Autómatas finitos deterministas. Holger Billhardt holger.billhardt@urjc.

Teoría de Conjuntos y Conjuntos Numéricos

UNIDAD II: TEORÍA DE CONJUNTOS 2.1. INTRODUCCIÓN

Algebra Lineal. Gustavo Rodríguez Gómez. Verano 2011 INAOE. Gustavo Rodríguez Gómez (INAOE) Algebra Lineal Verano / 21

PROGRAMA INSTRUCCIONAL AUTOMATAS Y LENGUAJES FORMALES

Introducción a los códigos compresores

Definición 1 Un semigrupo es un conjunto E provisto de una operación binaria asociativa sobre E, se denota por (E, ).

Espacios Vectoriales

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular.

APUNTES DE ÁLGEBRA LINEAL TEMA 2. SISTEMAS DE ECUACIONES LINEALES

Problemas indecidibles

R no es enumerable. Por contradicción, supongamos que existe una biyección f : N! R. diagonalización de Cantor. Para cada i 2 N:

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos

mi la sol fa si Un conjunto está bien definido si se puede establecer sin dudar si un elemento pertenece o no al conjunto.

Conjuntos Los conjuntos se emplean en muchas áreas de las matemáticas, de modo que es importante una comprensión de los conjuntos y de su notación.

Caracterización de los números reales

Convertir un AFND a un AFD

Coordinación de Matemática I (MAT021) 1 er Semestre de 2013 Semana 1: Lunes 11 Viernes 16 de Marzo. Contenidos

Lenguajes, Gramáticas y Autómatas Conceptos

8.1 Indecibilidad 8.5 Indecibilidad en el problema de la correspondencia de Post

Teoremas de Convergencia

2. Continuidad y derivabilidad. Aplicaciones

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

INTRODUCCIÓN. Para las siguientes dos actividades necesitaras: regla, lápiz, tijeras, calculadora.

Conjuntos Infinitos. Ramón Espinoza Armenta AVC APOYO VIRTUAL PARA EL CONOCIMIENTO

Guía práctica de estudio 05: Diagramas de flujo

Estructuras Algebraicas

Capítulo 4. Lógica matemática. Continuar

Inducción en definiciones y demostraciones AUTÓMATAS Y LENGUAJES FORMALES PRELIMINARES MATEMÁTICOS. Números naturales. Inducción matemática

Álgebra y Trigonometría Clase 7 Sistemas de ecuaciones, Matrices y Determinantes

8.4. CRITERIO DE ESTABILIDAD POR EL METODO DIRECTO DE LIAPUNOV

Clase 17: Autómatas de pila

Tema 1. Espacios Vectoriales Definición de Espacio Vectorial

Grupos libres. Presentaciones.

Pregunta 1 [40 puntos] Diga si las siguientes afirmaciones son verdaderas o falsas, demostrando su respuesta.

COLEGIO NUESTRO SEÑOR DE LA BUENA ESPERANZA

INTERVALOS Y SEMIRRECTAS.

Programación Dinámica 1

El Teorema Fundamental del Álgebra

Divisibilidad de un número real entre otro

Semana02[1/23] Conjuntos. 9 de marzo de Conjuntos

MÁQUINAS DE TURING: PROBLEMAS INDECIDIBLES. Roberto J. de la Fuente López VERSION

SISTEMA DE NUMEROS REALES

Espacios topológicos. 3.1 Espacio topológico

Maestría Enseñanza Aprendizaje de las Ciencias Básicas. Dr. Gilberto Paredes

Conjunto R 3 y operaciones lineales en R 3

Representación de números enteros: el convenio exceso Z

Inducción Matemática Conjuntos Funciones. Matemática Discreta. Agustín G. Bonifacio UNSL. Repaso de Inducción, Conjuntos y Funciones

Lógica Proposicional. Guía Lógica Proposicional. Tema III: Cuantificadores

En general, un conjunto A se define seleccionando los elementos de un cierto conjunto U de referencia que cumplen una determinada propiedad.

NÚMEROS COMPLEJOS: C

{ } Listado de elementos del conjunto

Traductores Push Down para Gramáticas LL

Esta expresión polinómica puede expresarse como una expresión matricial de la forma; a 11 a 12 a 1n x 1 x 2 q(x 1, x 2,, x n ) = (x 1, x 2,, x n )

CURSO PROPEDEUTICO DEALGEBRA PARA BQFT QUÍMICO FARMACEÚTICO BIOTECNÓLOGO CURSO PROPEDEUTICO AGOSTO 2013 ELABORÓ ALEJANDRO JAIME CARRETO SOSA

3 Polinomios y funciones racionales

FRACCIONES EQUIVALENTES 3.1.1

06 Análisis léxico II

Transcripción:

y Computadoras INAOE (INAOE) 1 / 49

Contenido y Computadoras 1 2 3 4 y Computadoras (INAOE) 2 / 49

y Computadoras Hasta ahora hemos visto clases de lenguajes relativamente simples Lo que vamos a ver ahora es preguntarnos qué lenguajes pueden definirse por cualquier equipo computacional Vamos a ver qué pueden hacer las computadoras y los problemas que no pueden resolver, a los que llamaremos indecidibles (INAOE) 3 / 49

y Computadoras Por ejemplo, podemos pensar en un programa de computadora que imprima hola cuando encuentre un entero positivo n > 2, que cumpla: x n + y n = z n, para x, y y z enteros positivos La solución entera de la ecuación de arriba se conoce como el último teorema de Fermat, que llevo a los matemáticos 300 años resolver El poder analizar cualquier programa de computadora y decidir si va a imprimir un letrero como hola es en general indecidible Lo que nos gustaría es tener una teoría de indecibilidad basada en un modelo computacional sencillo (i.e., ) (INAOE) 4 / 49

y Computadoras El propósito de la teoría de indecibilidad no es sólo establecer cuales problemas son indecidibles, sino también dar una guía sobre qué es lo que se puede hacer o no con programación También tiene que ver con problemas, que aunque sean decidibles, son intratables A finales del s. XIX y principios del s. XX, D. Hilbert lanzó la pregunta abierta, si era posible encontrar un algoritmo que determinara el valor de verdad de una fórmula en lógica de primer orden aplicada a los enteros. (INAOE) 5 / 49

y Computadoras En 1931, K. Gödel probó su teorema de incompletes para probar que no se podía construir dicho algoritmo. En 1936, A. publicó su máquina de como un modelo para cualquier tipo de computación (aunque todavía no existían las computadoras) La hipótesis de Church o la tésis de Church- dice que lo que las máquinas de (y para tal caso las computadoras modernas) pueden computar son las funciones recursivamente enumerables (INAOE) 6 / 49

y Computadoras Una máquina de consiste de un control finito que puede estar en cualquier estado de un conjunto finito de estados. Se tiene una cinta dividida en celdas, cada celda con un símbolo. Inicialmente, la entrada (cadena finita de símbolos del alfabeto) se coloca en la cinta, el resto de las celdas tienen el símbolo especial vacío. La cabeza de la cinta está siempre sobre una celda y al principio está sobre la celda más a la izquierda con el primer símbolo de la cadena de entrada. (INAOE) 7 / 49

y Computadoras Un movimiento o transición puede cambiar de estado (o quedarse en el estado actual), escribir un símbolo (reemplazando el símbolo que existía o dejando el mismo) y mover la cabeza a la izquierda o derecha. (INAOE) 8 / 49

y Computadoras Formalmente, una máquina de es una séptupla: M = (Q, Σ, Γ, δ, q0, B, F), donde: Q: es un conjunto finito de estados Σ: es un conjunto finito de símbolos de entrada Γ: es el conjunto de símbolos de la cinta (Σ Γ) δ: la función de transición δ(q, X) = (p, Y, D), donde p es el siguiente estado en Q, Y es el símbolo en Γ que se escribe en la celda que está viendo la cabeza de la cinta y D es la dirección (izq. o der.). q 0 : es el estado inicial B: es el símbolo de vacío, que está en Γ pero no en Σ F: es el conjunto de estados finales o de aceptación. (INAOE) 9 / 49

Descripciones Instantáneas y Computadoras Como la cinta es infinita, se representan sólo los símbolos entre los B s (a veces se pueden incluir algunos B s) y se incluye un símbolo especial para indicar la posición de la cabeza. Por ejemplo: X 1 X 2... X i 1 qx i X i+1... X n representa un ID donde: q es el estado de la máquina de La cabeza de la cinta está viendo el i-ésimo símbolo a la izquierda X 1 X 2... X n es el pedazo de cinta entre los símbolos más a la izquierda y más a la derecha que no son vacíos. (INAOE) 10 / 49

Descripciones Instantáneas y Computadoras Usamos la misma notación de ID que para los PDAs: y. Supongamos que δ(q, X i ) = (p, Y, L), el siguiente movimiento es a la izquierda (L). Entonces: X 1 X 2... X i 1 qx i X i+1... X n X 1 X 2... X i 2 px i 1 YX i+1... X n (INAOE) 11 / 49

Excepciones y Computadoras 1 Si i = 1 entonces M se mueve al B a la izquierda de X 1 : qx 1 X 2... X n pbyx 2... X n 2 Si i = n y Y = B, entonces X n se une a la cadena infinita de B s y no se escribe: X 1 X 2... X n 1 qx n X 1 X 2... X n 2 px n 1 (INAOE) 12 / 49

Excepciones y Computadoras Ahora, supongamos que δ(q, X i ) = (p, Y, R), movimiento hacia la derecha (R): X 1 X 2... X i 1 qx i X i+1... X n X 1 X 2... X i 1 YpX i+1... X n Excepciones: 1 Si i = n entonces la i + 1 celda tiene un B que no era parte de la ID anterior: X 1 X 2... X n 1 qx n X 1 X 2... X n 1 YpB 2 Si i = 1 y Y = B, entonces X 1 se une a la cadena infinita de B s y no se escribe: qx 1 X 2... X n px 2... X n (INAOE) 13 / 49

Ejemplo y Computadoras Una TM que acepta: {0 n 1 n n 1} La podemos definir como: M = ({q 0, q 1, q 2, q 3, q 4 }, {0, 1}, {0, 1, X, Y, B}, δ, q 0, B, {q 4 }) Con la siguiente tabla de transición: Símbolo Estado 0 1 X Y B q 0 (q 1, X, R) (q 3, Y, R) q 1 (q 1, 0, R) (q 2, Y, L) (q 1, Y, R) q 2 (q 2, 0, L) (q 0, X, R) (q 2, Y, L) q 3 (q 3, Y, R) (q 4, B, R) q 4 (INAOE) 14 / 49

Ejemplo y Computadoras Por ejemplo, si le damos la entrada 0011 sigue las siguientes transiciones: q 0 0011 Xq 1 011 X0q 1 11 Xq 2 0Y 1 q 2 X0Y 1 Xq 0 0Y 1 XXq 1 Y 1 XXYq 1 1 XXq 2 YY Xq 2 XYY XXq 0 YY XXYq 3 Y XXYYq 3 B XXYYBq 4 B Mientras que para la cadena 0010, tenemos lo siguiente: q 0 0010 Xq 1 010 X0q 1 10 Xq 2 0Y 0 q 2 X0Y 0 Xq 0 0Y 0 XXq 1 Y 0 XXYq 1 0 XXY 0q 1 B (INAOE) 15 / 49

Diagramas de Transición para TMs y Computadoras En un diagrama de transición para TMs los nodos son los estados y los arcos tienen etiquetas de la forma X/YD donde X y Y son símbolos de la cinta y D es la dirección. Para cada δ(q, X) = (p, Y, D), tenemos un arco con etiqueta: X/YD que va del nodo q al nodo p. Lo único que falta es el símbolo vacío que suponemos que es B. (INAOE) 16 / 49

Ejemplo Por ejemplo, el diagrama de transición para la TM anterior es: y Computadoras (INAOE) 17 / 49

Ejemplo y Computadoras Diseñar una TM que calcula la función llamada monus o substracción propia, que se define como: m n = max(m n, 0). La siguiente tabla y diagrama de transición lo definen, con entrada 0 m 10 n : Símbolo Estado 0 1 B q 0 (q 1, B, R) (q 5, B, R) q 1 (q 1, 0, R) (q 2, 1, R) q 2 (q 3, 1, L) (q 2, 1, R) (q 4, B, L) q 3 (q 3, 0, L) (q 3, 1, L) (q 0, B, R) q 4 (q 4, 0, L) (q 4, B, L) (q 6, 0, R) q 5 (q 5, B, R) (q 5, B, R) (q 6, B, R) q 6 (INAOE) 18 / 49

Diagrama de Transición y Computadoras (INAOE) 19 / 49

Lenguaje de una TM y Computadoras El lenguaje que aceptan las TMs es el conjunto de cadenas w Σ tales que q 0 w αpβ para un estado p en F y cualesquiera cadenas en la cinta α y β. Los lenguajes que aceptan las TMs se llama lenguajes recursivamente enumerables o lenguajes RE. (INAOE) 20 / 49

Halting y Computadoras Otra forma de aceptar cadenas usado normalmente en las TMs es aceptar por paro (halting). Decimos que una TM se para (halts) si entra a un estado q leyendo el símbolo de la cinta X y no existe ningún movimiento, i.e., δ(q, X) no está definido. Por ejemplo la máquina de que calcula, se para (halts) con todas las cadenas de 0 s y 1 s ya que eventualmente alcanza el estado q 6. Suponemos que una TM siempre se para en un estado de aceptación (INAOE) 21 / 49

Ejercicios y Computadoras Muestre las IDs para la TM que acepta {0 n 1 n n 1} de las cadenas: (i) 00 y (ii) 000111 Diseñe una TM que acepte: (i) todas las cadenas con el mismo número de 0 s que de 1 s y (ii) que acepte {a n b n c n n 1} (INAOE) 22 / 49

Extensiones a TMs y Computadoras Una TM es tan poderosa como una computadora convencional. Se pueden realizar varias extensiones a una TM que permiten hacer especificaciones más simples, aunque no aumentan su expresividad (reconocen los mismos lenguajes). (INAOE) 23 / 49

Extenciones y Computadoras Podemos usar el control finito de una TM no sólo para indicar la posición actual, sino también para almacenar una cantidad finita de datos. No se extiende el modelo, lo que hacemos es que pensamos en el estado como una tupla. Por ejemplo, si queremos aceptar 01 + 10 podemos almacenar el primer elemento que se lee y asegurarnos que ese elemento no aparezca en el resto de la cadena. (INAOE) 24 / 49

Extensiones y Computadoras El M = (Q, {0, 1}, {0, 1, B}, δ, [q 0, B], {[q 1, B]}) Su función de transición es: δ([q 0, B], a) = ([q 1, a], a, R) para a = 0 o a = 1. δ([q 1, a], ca) = ([q 1, a], ca, R) donde ca es el complemento de a. Si a = 0 entonces ca = 1, y viceversa. δ([q 1, a], B) = ([q 1, B], B, R) para a = 0 o a = 1, llegando al estado de aceptación: [q 1, B]. (INAOE) 25 / 49

Tracks múltiples y Computadoras Otro truco es pensar que tenemos varios caminos paralelos. Cada una tiene un símbolo y el alfabeto de la cinta de la TM es una tupla con un componente por cada camino. El siguiente dibujo ilustra una TM con almacenamiento de información en el control y con caminos múltiples (INAOE) 26 / 49

Tracks múltiples y Computadoras (INAOE) 27 / 49

Tracks múltiples y Computadoras Un uso común de esto es usar un camino para guardar información y otro para guardar una marca. Por ejemplo, si queremos reconocer: L wcw = {wcw w (0 + 1) + } M = (Q, Σ, Γ, δ, [q 1, B], [B, B], {[q 9, B]}) Q: el conjunto de estados en {q 0, q 1,..., q 9 } {0, 1, B}, osea pares que tienen un estado de control (q i ) y un componente de dato (0, 1 o blank). Γ: los símbolos de la cinta son {B, } {0, 1, c, B}, donde el primer componente es vacío (blank) o (para marcar símbolos del primer y segundo grupo de 0 s y 1 s). Σ: los símbolos de entrada son [B, 0] y [B, 1]. δ: la función de transición es (donde a y b pueden ser 0 o 1): (INAOE) 28 / 49

Tracks múltiples y Computadoras 1 δ([q 1, B], [B, a]) = ([q 2, a], [, a], R) 2 δ([q 2, a], [B, b]) = ([q 2, a], [B, b], R) 3 δ([q 2, a], [B, c]) = ([q 3, a], [B, c], R) 4 δ([q 3, a], [, b]) = ([q 3, a], [, b], R) 5 δ([q 3, a], [B, a]) = ([q 4, B], [, a], L) 6 δ([q 4, B], [, a]) = ([q 4, B], [, a], L) 7 δ([q 4, B], [B, c]) = ([q 5, B], [B, c], L) 8 δ([q 5, B], [B, a]) = ([q 6, B], [B, a], L) 9 δ([q 6, B], [B, a]) = ([q 6, B], [B, a], L) 10 δ([q 6, B], [, a]) = ([q 1, B], [, a], R) 11 δ([q 5, B], [, a]) = ([q 7, B], [, a], R) 12 δ([q 7, B], [B, c]) = ([q 8, B], [B, c], R) 13 δ([q 8, B], [, a]) = ([q 8, B], [, a], R) 14 δ([q 8, B], [B, B]) = ([q 9, B], [B, B], R) (INAOE) 29 / 49

Subrutinas y Computadoras Una subrutina de una TM es un conjunto de estados que realiza algún proceso útil. Su llamado ocurre cuando se hace una transición a su estado inicial. Si se requiere llamar varias veces desde diferentes estados, se tienen que hacer varias copias con estados diferentes. Por ejemplo, la siguiente TM implementa la multiplicación, y empieza con una cadena 0 m 10 n 1 en su cinta y termina con la cadena 0 mn en la cinta. El núcleo es una subrutina llamada Copia que copia un bloque de 0 s al final. Copia convierte una ID de forma 0 m k 1q 1 0 n 10 (k 1)n a la siguiente ID 0 m k 1q 5 0 n 10 kn. (INAOE) 30 / 49

Subrutinas Las siguientes figuras ilustran la subrutina Copia y la TM completa para multiplicación: y Computadoras (INAOE) 31 / 49

Subrutinas y Computadoras (INAOE) 32 / 49

TM con múltiples cintas y Computadoras Tiene un número finito de cintas. En el estado inicial los símbolos de entrada son colocados en la primera cinta y la cabeza del resto de las cintas en un B arbitrario. En un movimiento, el control entra a un nuevo estado y en cada cinta se escribe un símbolo en la celda que está leyendo, cada cabeza de cada cinta hace un movimiento que puede ser a la izquierda, derecha o quedarse donde está. Las TM con cintas múltiples aceptan entrando a un estado de aceptación. (INAOE) 33 / 49

TM con múltiples cintas y Computadoras (INAOE) 34 / 49

TM con múltiples cintas y Computadoras Se puede demostrar que todo lenguaje aceptado por una TM con múltiples cintas es recursivamente enumerable. Básicamente para una TM con k cintas se simula una TM de una cinta con 2k caminos, donde la mitad de los caminos guardan el contenido de las cintas y la otra mitad guardan una marca que indica la posición de las cabezas de cada cinta. (INAOE) 35 / 49

TM no determinista y Computadoras En una TM no determinista (NTM) la función de transición es ahora un conjunto de tripletas y puede seleccionar cualquier elemento de ese conjunto en cada transición. δ(q, X) = {(q 1, Y 1, D 1 ), (q 2, Y 2, D 2 ),..., (q k, Y k, D k )} Una NTM acepta una cadena w si existe una secuencia de selecciones de movimientos que nos llevan a un ID con un estado de aceptación. De nuevo se puede probar que para cada NTM existe una TM (determinista). Básicamente se siguen las m posibles opciones en cada movimiento siguiendo un esquema tipo breadth-first. (INAOE) 36 / 49

Restringidas y Computadoras Se pueden imponer ciertas restricciones a la TM y de todos modos mostrar que aceptan el mismo lenguaje. (INAOE) 37 / 49

TM con cinta semi-infinita y Computadoras La cinta es infinita en un sentido, la cadena de entrada se coloca al principio de la cinta la cual no continua a la izquierda. También se incluye la restricción de no poder escribir B (blank) en la cinta. Se puede demostrar que un TM normal se puede simular con una TM semi-infinita usando dos caminos, uno que simula la cinta a la izquierda de la cadena de entrada y otro que simula la otra parte de la cinta. (INAOE) 38 / 49

TM con cinta semi-infinita y Computadoras X 0 X 1 X 2... 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. (INAOE) 39 / 49

TM con cinta semi-infinita y Computadoras 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). Sólo se tiene que tener cuidado en las situaciones en donde se cambia de un camino al otro. (INAOE) 40 / 49

Máquinas multistack Podemos pensar en una generalización de los PDAs cuando consideramos varios stacks. y Computadoras (INAOE) 41 / 49

Máquinas multistack y Computadoras Una máquina de k-stacks es un PDA determinista con k stacks. Un movimiento en esta máquina, cambia el estado y reemplaza el símbolo de arriba de cada stack con una cadena normalmente diferente para cada stack. La transición sería: δ(q, a, X 1, X 2,..., X k ) = (p, γ 1, γ 2,..., γ k ). Donde en estado q con X i hasta arriba de cada uno de los i = 1, 2,..., k stacks, se consume el símbolo a y se reemplaza cada X i por γ i. (INAOE) 42 / 49

Máquinas multistack y Computadoras Se puede demostrar que un PDA con 2 stacks puede simular una TM. En la demostración se supone que al final de la cadena de entrada existe un símbolo especial que no es parte de la entrada. Lo primero que se hace es que se copia la cadena al primer stack, se hace pop de este stack y push en el segundo stack, con esto el primer elemento de la cadena de entrada está hasta arriba del segundo stack, y luego se empiezan a simular las transiciones de estados. (INAOE) 43 / 49

Máquinas multistack y Computadoras El primer stack vacío nos representa todos los blanks a la izquierda de la cadena de entrada y en general lo que está a la izquierda de donde apunta la cabeza de la cinta de la TM. Si TM reemplaza X por Y y se mueve a la derecha, PDA introduce (pushes) Y en el primer stack y saca (pops) X del segundo emphstack. Si TM reemplaza X por Y y se mueve a la izquierda, PDA saca (pops) el primer elemento del primer stack (digamos Z ) y reemplaza X por ZY en el segundo stack. (INAOE) 44 / 49

Máquinas contadoras (counter machines) y Computadoras Una máquina contadora tiene la misma estructura que una máquina multistack, sólo que en lugar de stacks tiene contadores. Un contador tiene algún entero positivo y sólo puede distinguir entre 0 (cero) o un contador diferente de cero. En cada movimiento, cambia de estado y suma o resta 1 del contador que no puede volverse negativo). (INAOE) 45 / 49

Máquinas contadoras y Computadoras También podemos verlo como una máquina multistack restringida que tiene dos símbolos de stack Z 0 (marca el fondo) y X. El tener X i Z 0 nos identifica al contador i. Se puede demostrar que los lenguajes aceptados por una máquina de un contador son los CFL. Se puede demostrar que cualquier lenguaje recursivamente enumerable puede ser aceptado por una máquina de dos contadores. (INAOE) 46 / 49

y Computadoras y Computadoras y Computadoras Una computadora puede simular una máquina de. Aunque con un número muy grande de símbolos y cadenas en principio infinitas, se podrían tener problemas de memoria, se puede codificar la TM (TM universal) y simular en una computadora convencional sin problemas de memoria. Una TM puede simular una computadora usando varias cintas para tomar en cuenta los diferentes procesos que se realizan en una computadora (para representar la memoria de la computadora, la siguiente instrucción a realizar, si se requiere copiar cierto contenido de la memoria, cambiarlo, etc.). (INAOE) 47 / 49

y Computadoras y Computadoras y Computadoras (INAOE) 48 / 49

y Computadoras y Computadoras y Computadoras Se puede demostrar que si una computadora tiene sólo instrucciones que incrementan la longitud del tamaño de las palabras en 1 y las instrucciones de tamaño w se pueden realizar en una TM con cintas múltiples en O(k 2 ) pasos, entonces una TM parecida a la mostrada arriba pueden simular n pasos de la computadora en O(n 3 ) pasos. (INAOE) 49 / 49