11.07.2015 Views

Teor´ıa de Autómatas y Lenguajes Formales

Teor´ıa de Autómatas y Lenguajes Formales

Teor´ıa de Autómatas y Lenguajes Formales

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

7.6. HIPÓTESIS DE CHURCH 129especial <strong>de</strong> una máquina con varias cintas y, por lo tanto, no es más po<strong>de</strong>rosa que ninguno <strong>de</strong> los mo<strong>de</strong>losvistos. Al revés, una MT off-line pue<strong>de</strong> simular cualquier MT, M, usando una cinta más que M. Lo primeroque hará es copiar su input en esta cinta extra y simular a M como si ella fuera el input <strong>de</strong> M.7.6 Hipótesis <strong>de</strong> ChurchLa suposición <strong>de</strong> que la noción intuitiva <strong>de</strong> “función computable” pue<strong>de</strong> i<strong>de</strong>ntificarse con la clase <strong>de</strong> funcionesrecursivas parciales, es conocida como la Hipótesis <strong>de</strong> Church o la Tesis <strong>de</strong> Church-Turing.Aún cuando no se pue<strong>de</strong> esperar tener una “prueba” <strong>de</strong> la hipótesis <strong>de</strong> Church, al menos mientras lanoción informal <strong>de</strong> “computable” permanezca como noción informal, es sin embargo posible dar evi<strong>de</strong>ncia<strong>de</strong> porqué es una suposición rezonable.Si nuestra noción intuitiva <strong>de</strong> “computable” no posee límite en el número <strong>de</strong> pasos o la cantidad <strong>de</strong>almacenamiento necesaria, parece que las funciones recursivas parciales son (intuitivamente) computables.Aún cuando alguien podría argüir que una función no es “computable”, a menos que se pueda limitar lacomputación <strong>de</strong> antemano, o al menos saber si ella terminará o no.Lo que es más discutible es si la clase <strong>de</strong> funciones recursivas parciales incluye a todas las funcionescomputables. Los lógicos-matemáticos han presentado muchos otros formalismos, como el cálculo-λ, sistemas<strong>de</strong> Post y funciones recursivas generales. Para todos ellos se ha <strong>de</strong>mostrado que <strong>de</strong>finen la misma clase <strong>de</strong>funciones, es <strong>de</strong>cir las funciones recursivas parciales. A<strong>de</strong>más, mo<strong>de</strong>los abstractos <strong>de</strong> los computadores comola RAM (Random Access Machine) dan también lugar a las funciones recursivas parciales.La RAM consiste <strong>de</strong> un número infinito <strong>de</strong> palabras <strong>de</strong> memoria, numeradas <strong>de</strong>s<strong>de</strong> 0, cada una <strong>de</strong> lascuales pue<strong>de</strong> almacenar un número entero; y un número finito <strong>de</strong> registros aritméticos, también capaces<strong>de</strong> almacenar un entero. Los enteros pue<strong>de</strong>n ser <strong>de</strong>codificados como instrucciones en la forma usual <strong>de</strong> loscomputadores. No se <strong>de</strong>finirá la RAM más formalmente, pero <strong>de</strong>biera ser claro que si se escoge un conjuntoa<strong>de</strong>cuado <strong>de</strong> instrucciones, la RAM pue<strong>de</strong> simular cualquier computador existente.Teorema 39 Una máquina <strong>de</strong> Turing pue<strong>de</strong> simular una RAM, provisto que las instrucciones <strong>de</strong> la RAMpuedan ser simuladas por una MT.Demostración : Se usa una MT, M, <strong>de</strong> varias cintas para hacer la simulación. Una cinta <strong>de</strong> M tiene laspalabras <strong>de</strong> memoria <strong>de</strong> la RAM, a las que se les ha dado valores. La cinta se ve como#0 ∗ v 0 #1 ∗ v 1 #10 ∗ v 2 # . . . #i ∗ v i # . . .en que v i es el contenido, en binario, <strong>de</strong> la i- ésima palabra. En todo momento, habrá algún número finito <strong>de</strong>palabras <strong>de</strong> la RAM que han sido usadas y M sólo necesita mantener los valores hasta la palabra <strong>de</strong> númeromayor que se haya usado.La RAM tiene un número finito <strong>de</strong> registros aritméticos. M usa una cinta para almacenar el contenido<strong>de</strong> cada registro; otra cinta contiene el “contador <strong>de</strong> posición”, que contiene el número <strong>de</strong> la palabra <strong>de</strong>memoria <strong>de</strong> don<strong>de</strong> se <strong>de</strong>be tomar la próxima instrucción y una cinta “memory address register” en que sepue<strong>de</strong> poner el número <strong>de</strong> una palabra <strong>de</strong> memoria.Supóngase que los primeros 10 bits <strong>de</strong> una instrucción <strong>de</strong>notan una <strong>de</strong> las operaciones estándar en loscomputadores, como load, store, add, etc., y que los bits restantes <strong>de</strong>notan la dirección <strong>de</strong>l operando. Sibien no se discutirá los <strong>de</strong>talles <strong>de</strong> implementación para todas las instrucciones estándar, un ejemplo <strong>de</strong>bieraponer las cosas claras. Supóngase que la cinta con el contador <strong>de</strong> posición tiene el número i en binario. Mbusca en su primera cinta <strong>de</strong>s<strong>de</strong> la izquierda, buscando #i∗. Si se encuentra un blanco antes <strong>de</strong> encontrar#i∗, no hay instrucción en la palabra i y, por lo tanto, la RAM y M se <strong>de</strong>tienen. Si #i∗ es encontrado, losbits que siguen a *, hasta el siguiente # (v i ) se examinan. Suponga que los primeros 10 bits están codificadospara add al registro 2 y los bits restantes son un cierto número j en binario. M agrega 1 a i en el contador<strong>de</strong> posición y copia j en la “memory address register”. Luego M busca #j∗ en la primera cinta, comenzando<strong>de</strong>s<strong>de</strong> la izquierda (#0∗ marca el final por la izquierda). Si #j∗ no se encuentra, se supone que j tiene 0 y

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!