Sunteți pe pagina 1din 16

INSTITUTO TECNOLOGICO DE LEON.

Carrera: INGIENERIA EN SISTEMAS COMPUTACIONALES.

Maestro: AZCORRA VILLALOBOS AZCORRA.

Materia: TEORIA DE LA COMPUTACION.

Alumno: MARTNEZ LPEZ LUIS RODRIGO.

Tema: Unidad 5 y 6

Unidad 5 Decibilidad
Se dice que un sistema formal es decidible si existe un algoritmo que diga en tiempo finito si una cadena cualquiera es un teorema o no lo es

El identificar los problemas que son computables y los que no lo son tiene un considerable inters, pues indica el alcance y los lmites de la computabilidad, y as demuestra los lmites tericos de los ordenadores. Adems de las cuestiones sobre algoritmos, se han encontrado numerosos problemas menos generales que han resultado ser no computables. La mayora de las demostraciones de no computabilidad se basan en el mtodo de la diagonal.

5.1 Lenguajes decidibles


Los lenguajes decidibles son cadenas de palabras calculables mediante funciones recursivas por lo cual tambin se les llamas lenguajes recursivos. Un posible alfabeto sera, digamos, {a, b} , y una cadena cualquiera sobre este alfabeto sera, por ejemplo, ababba.

Un lenguaje sobre este alfabeto, que incluyera esta cadena, sera: el conjunto de todas las cadenas que contienen el mismo nmero de smbolos que , por ejemplo La palabra vaca (esto es, la cadena de longitud cero) se permite en este tipo de lenguajes, notndose frecuentemente A diferencia de que ocurre con el alfabeto (que es un conjunto finito) y con cada palabra (que tiene una longitud tambin finita), un lenguaje puede estar compuesto por un nmero infinito de palabras. Esos son algunos ejemplos de problemas de decisin expresados como lenguajes: Las frases sobre el alfabeto {a, b} que contienen alternadas las letras a y b. Las frases sobre el alfabeto {a, b, c} que contienen igual nmero de letras a y b. Las frases que describen un grafo con aristas etiquetadas con nmeros naturales que indican su longitud, dos vrtices del grafo y un camino en el grafo que es el camino ms corto entre esos dos vrtices. Las frases que describen una mquina de Turing y una cinta de entrada para esta mquina tal que la mquina se para en un tiempo finito al procesar esa entrada. Existen problemas que no pueden ser resueltos por una computadora, dado que las computadoras solamente pueden ejecutar algoritmos, esto es secuencia de instrucciones universalmente precisas y entendibles que resuelven cualquier instancia de problemas computacionales definidos rigurosamente.

No es una sorpresa que esta idea intuitiva de algoritmo pueda ser definida formalmente. El correspondiente modelo matemtico se llama mquina de Turing (Alan Turing, 1936). La teora de computabilidad tiene como objetivo el estudio de problemas de decisin, con el fin de determinar si los mismos son tericamente decidibles. Los problemas se pueden clasificar desde el punto de vista de la teora de computabilidad en resolubles y no resolubles. Los problemas resolubles son objeto de estudio de la teora de complejidad computacional. En el contexto de complejidad computacional, el inters est centrado en establecer una medida de la cantidad de recursos computacionales (en trminos de tiempo y/o espacio) necesarios para resolver un determinado problema o equivalentemente reconocer un lenguaje LOS PROBLEMAS INTRATABLES RESOLUBLES SE SUBDIVIDEN EN TRATABLES E

Los problemas tratables son: Aquellos para los cuales existe un algoritmo eficiente que los resuelve. Los intratables son: Aquellos para los cuales no se conoce (o tal vez no exista) un algoritmo eficiente que los resuelva Lenguajes aceptables y decidibles - Lenguaje decidible: es aquel lenguaje L para el cual existe una mquina de Turing que puede aceptar cualquier cadena wL y rechazar cualquier cadena wL. - Lenguaje aceptable: es aquel lenguaje L para el cual no existe ninguna mquina de Turing que puede aceptar cualquier cadena wL y rechazar cualquier cadena wL. - Lenguajes recursivamente innumerables: lenguajes estructurados por frases. - Lenguajes recursivos: lenguajes decidibles por una mquina de Turing Lenguajes aceptables vs. Lenguajes decidibles Lenguaje aceptable La mquina separa al reconocer una cadena del lenguaje Lenguaje decidible La mquina dice si una cadena pertenece al lenguaje o no

Implica reconocer el complemento del lenguaje Existen lenguajes aceptables que no son decidibles! Un lenguaje es aceptable pero su complemento no. PROBLEMA DE LA PARADA El problema de parada para mquinas de Turing es el ejemplo de problema irresoluble ms conocido. Fue adems el primer problema que se demostr formalmente que no tena solucin. El concepto de problema indecidible o irresoluble se aplica a problemas de decisin, es decir, problemas a los que podemos decir si tienen solucin o no. Dentro de estos problemas, existe un conjunto al que no le podemos asignar una respuesta, ni afirmativa ni negativa: no existe un algoritmo que nos permita determinar si el problema tiene solucin. Una de las razones por la que es importante conocer que el problema de la parada no tiene solucin, es que nos permite decidir si otros problemas son resolubles o no definicion Sea M una mquina de Turing arbitraria con un alfabeto de entrada . Sea . Puede decidirse si la mquina M se detendr con la entrada w? Solucin La respuesta a esta pregunta es negativa. No se puede determinar si una mquina de Turing se detiene con una entrada arbitraria. Demostracin Para demostrarlo, supongamos que el problema de la parada tiene solucin, es decir, supondremos que existe una mquina de Turing que es capaz de determinar si otra mquina de Turing para con una entrada determinada. Consideremos una mquina de Turing P, que recibe como entrada una mquina de Turing M y una cadena w codificadas en la cinta y una a continuacin de la otra (Mw), y que se encarga de ejecutar M sobre la cadena w. La mquina P parar y aceptar la entrada si M para con w, y parar y rechazar la entrada si M no para con w. Modificamos la mquina P, creando una mquina P equivalente. Esta mquina no parar si M para con w, y parar si M no para con w.

Ahora crearemos una mquina D, cuya funcin es la siguiente. Recibe una mquina M, la pasa por una mquina que se encarga de copiar la mquina M a continuacin. Por lo tanto, a la salida de la mquina copia, la cinta contendr MM (la codificacin de la mquina repetida). A continuacin, D coge este resultado y lo pasa a travs de P. Con esto intentamos decidir si la mquina M para con la entrada M. Es decir, si M para con la entrada M, entonces D no para, y si M no para con la entrada M, entonces D para. Por ltimo, tomaremos una mquina D (denominaremos SD), y le aplicaremos como entrada una mquina D. SD aplica como entrada a la mquina que recibe, la misma mquina. Por lo tanto, esta mquina en principio parar si D no para con entrada D, y no parar si D para con entrada D. Pero si SD no para y si D para con entrada D, sabiendo que D=SD, llegamos a una contradiccin, por que aplicar D a SD debera dar como resultado lo mismo que aplicar D sobre D. Del mismo modo para el otro caso. Por lo tanto, el problema de la parada no tiene solucin.

5.2 El problema de Halting


Teoras Lgicas y Mquinas de Turing

se tiene una presentacin detallada de la Lgica de Primer Orden. En esta seccin recordaremos los conceptos necesarios para establecer la relacin de una teora lgica en general con los Autmatas de Turing, y en general con la disciplina de Computacin. Una teora lgica (TL) se define a partir de un conjunto de enunciados dados llamados axiomas, unas reglas de inferencia y un esquema de derivacin. A partir de los axiomas y aplicando las reglas de inferencia y el esquema de derivacin se infieren los teoremas de la teora. El conjunto de teoremas de la teora forman un lenguaje formal. Si es posible definir una mquina de Turing tal que reconozca al lenguaje de los teoremas, este lenguaje es decidible y la teora tambin lo es en consecuencia. Dicho en otras palabras, si el conjunto de teoremas visto como un lenguaje es reconocido por una mquina de Turing, entonces la TL es decidible. Y viceversa. Puede hablarse entonces de manera indistinta de teoras lgicas o lenguajes decidibles, como aquellos para los que existe una mquina Turing capaz de reconocerlos. Luego, la correspondencia entre la sintaxis una teora lgica (lenguaje formal) y el reconocimiento simblico de mismo por parte de un autmata queda establecida. de de de la

Desde el punto de vista semntico, las interpretaciones de las cadenas del lenguaje se realizan ya sea por el intrprete bien por el compilador del lenguaje de programacin en el cual se dan las instrucciones (ver Seccin de

Autmatas de Pila). Las cadenas que resultan en instrucciones realizadas por la computadora pueden considerarse interpretadas como verdaderas y por tanto tienen, al menos, un modelo de la Teora Lgica formada por tales cadenas. En particular, los axiomas se consideran teoremas de la teora, los cuales se derivan aplicando cero veces las reglas de inferencia

5.3 Decibilidad Teorias Logicas


Teoras Lgicas y Mquinas de Turing
se tiene una presentacin detallada de la Lgica de Primer Orden. En esta seccin recordaremos los conceptos necesarios para establecer la relacin de una teora lgica en general con los Autmatas de Turing, y en general con la disciplina de Computacin. Una teora lgica (TL) se define a partir de un conjunto de enunciados dados llamados axiomas, unas reglas de inferencia y un esquema de derivacin. A partir de los axiomas y aplicando las reglas de inferencia y el esquema de derivacin se infieren los teoremas de la teora. El conjunto de teoremas de la teora forman un lenguaje formal.

Si es posible definir una mquina de Turing tal que reconozca al lenguaje de los teoremas, este lenguaje es decidible y la teora tambin lo es en consecuencia. Dicho en otras palabras, si el conjunto de teoremas visto como un lenguaje es reconocido por una mquina de Turing, entonces la TL es decidible. Y viceversa. Puede hablarse entonces de manera indistinta de teoras lgicas o lenguajes decidibles, como aquellos para los que existe una mquina Turing capaz de reconocerlos. Luego, la correspondencia entre la sintaxis una teora lgica (lenguaje formal) y el reconocimiento simblico de mismo por parte de un autmata queda establecida. de de de la

Desde el punto de vista semntico, las interpretaciones de las cadenas del lenguaje se realizan ya sea por el intrprete bien por el compilador del lenguaje de programacin en el cual se dan las instrucciones (ver Seccin de Autmatas de Pila). Las cadenas que resultan en instrucciones realizadas por la computadora pueden considerarse interpretadas como verdaderas y por tanto tienen, al menos, un modelo de la Teora Lgica formada por tales cadenas. En particular, los axiomas se consideran teoremas de la teora, los cuales se derivan aplicando cero veces las reglas de inferencia No Computabilidad

Se ha visto que los algoritmos son un concepto fundamental de la ciencia de la computacin y se ha desarrollado cierto conocimiento interno sobre la forma en que pueden construirse. Se sabe que existen algoritmos para tejer un suter, construir un modelo de aeroplano, preparar un pastel y ejecutar una sonata de Beethoven. Es conocido que las computadoras pueden controlar seales de trfico, lneas de produccin y plantas qumicas. Pueden llevar las revisiones de vuelos en lneas areas, controlar robots y producir nominas. Existen algoritmos para preparar una taza de caf, determinar cual es el mayor de un conjunto de nmeros, descubrir si un nmero es primo o no o no primo e imprimir el mximo comn divisor de 2 nmeros. Desde la poca escolar se recuerda que existen algoritmos para sumar, resta, multiplicar y dividir nmeros enteros y para calcular races cuadradas. Sin duda existen algoritmos para calcular logaritmos, determinar la frecuencia de las palabras en un fragmento dado de texto y controlar un submarino nuclear. Existen trabajos que las computadoras no pueden realizar. Hay muchas cosas que una computadora no puede hacer. En realidad, el nmero de cosas que pueden calcularse o computarse es infinitesimal en comparacin con el nmero de cosas que a uno le gustara calcular, las computadoras no pueden hacer muchas cosas. Historia de la Computabilidad La idea de disponer de un algoritmo, o receta para efectuar alguna tarea, ha existido durante miles de aos. Tambin durante muchos aos la gente crey que si cualquier problema poda iniciarse de manera precisa, entonces con suficiente esfuerzo seria posible encontrar una solucin con el tiempo(o tal vez una prueba de que no existe solucin podra proporcionarse con el tiempo). En otras palabras, se crea que no haba problema que fuera tan intrnsicamente difcil que en principio nunca pudiera resolverse. Uno de los grandes promotores de esta creencia fue el famoso matemtico David Hilbert. En cierta ocasin afirmo: Todo problema matemtico definido debe ser necesariamente susceptible de un planteamiento exacto, ya sea en forma de una respuesta real a la pregunta planteada o debido a la constatacin de la imposibilidad de resolverlo, a lo que se debera la falla necesaria de todos los intentos una de las cosas que nos atrae mas cuando nos dedicamos a un problema matemtico es precisamente que dentro de nosotros siempre escuchamos la llamada: e aqu el problema, busca la solucin; puedes encontrarla por pensamiento puro, ya que en matemticas no existe cosa alguna que no pueda conocerse. La meta de Hilbert era crear un sistema matemtico formal en el que todos los sistemas pudieran plantearse con precisiones y trminos de proposiciones que fueran verdaderas o falsas. Su idea era encontrar un algoritmo que, dada cualquier proposicin en el sistema formal, determinara

si esa proposicin era o no verdadera. Si Hilbert hubiera logrado este objetivo, entonces cualquier problema que estuviera bien definido podra haberse resuelto simplemente al ejecutar el algoritmo. Al decidir la verdad de una proposicin dada en el sistema formal, Hilbert lo denomin entscheidungsproblem, considerndolo como un problema abierto fundamental en matemticas. Por desgracia para el objetivo de Hilbert, en la dcada de 1930 se produjo una serie de investigaciones que mostraron que el entscheidungsproblem no es computable. Es decir, no existe algn algoritmo del tipo que buscaba Hilbert. Un cnico podra decir que los matemticos dieron un suspiro de alivio, porque si hubiera tal algoritmo, todos se quedaran sin trabajo en cuanto se le encontrara. Sin embargo a los matemticos les sorprendi este notable descubrimiento. Las primeras noticias del descubrimiento surgieron en 1931 cuando Kurt Gdel public su ahora famoso teorema de la incompletez. Entre otras cosas, este teorema mostr que no existe algn algoritmo cuya entrada puede ser cualquier no verdad. Siguiendo cerca de Gdel otros matemticos ms tales como Alonso Church, Stephen Kleene, Mil Post, Alan Turing y muchos otros, encontraron ms problemas que carecan de solucin algortmica. Tal vez la caracterstica ms notable de estos primeros resultados sobre problemas que no pueden resolverse por medio de las computadoras es que se obtuvieron en la dcada de 1930 antes de que se hubieran construido las primeras computadoras.

UNIDAD 6 REDUCIBILIDAD
Se dice que un problema L1 se reduce en tiempo polinomial determinstico a otro problema L2, si asumiendo que existe un algoritmo A2 en P que resuelve L2 es posible construir un algoritmo A1 en P que resuelva L1. Escribiremos L1 W L2 para significar que L1 se reduce a L2. Intuitiva: Una problema P1 se reduce polinomialmente a otro problema P2, si existe un algoritmo que transforme una instancia del problema P1 en una instancia del problema P2 en tiempo polinomial determinstico. Ejemplo Ordenar se reduce a encontrar el menor

Sabemos que existe Menor(i; j), que devuelve el elemento menor del segmento del arreglo A[i, j]. Ejemplo PROCEDIMIENTO Ordena(A; n) COMIENZA PARA i =1 A n HAZ j = Menor(i; n) intercambia(i; j) FINPARA TERMINA

6.2. Problemas Insolubles Teora de Lenguajes


Ejemplo 1.- Sea el problema Pacept el siguiente problema: Pacept: Existe un procedimiento efectivo capaz de determinar si una mquina de Turing acepta una determinada cadena ? Otra manera de formular el problema sera: Pacept: Existe un procedimiento efectivo capaz de determinar si una determinada cadena, , pertenece al lenguaje que reconoce la mquina de Turing T?

Para demostrar que Pacept no es soluble, comenzaremos suponiendo que lo es, llegando de esta manera a un absurdo. Este absurdo tendr lugar debido a que la solubilidad de Pacept implica la solubilidad de Pdet. Expresado de otra manera, demostramos que Pdet se reduce a Pacept. Demostracin: Supongamos que Pacept es un problema de decisin soluble. Al ser un problema soluble, entonces existe un procedimiento efectivo (o mquina universal de Turing), X, que resuelve Pacept. X toma como datos de entrada la descripcin de una mquina de Turing T y una cadena y determina en un tiempo finito si T acepta o no a la cadena . Es decir X recibe como entrada al par (T,) y retorna un 1 si T acepta , mientras que devuelve la salida 0 si T no acepta . Construyamos a partir de X, un procedimiento efectivo (o mquina universal de Turing) Y La mquina Y recibe como entrada un par (T,), la cadena de ambos problemas es la misma, lo que necesitamos es un proceso adicional que modifique T de manera que las respuestas de X, respondan el problema de la detencin. Este proceso adicional se lleva a cabo en la mquina universal X que realiza lo siguiente: a. Recibe como dato de entrada la mquina de Turing T. b. Modifica T manteniendo su definicin de quntuplas pero indicando que todos los estados son aceptadores. c. Retorna la mquina modificada con el nombre T. Combinando las mquinas X y X, tenemos la mquina universal Y que tiene el siguiente comportamiento: 1. Y recibe como entrada el par (T, ). 2. La mquina universal Y utiliza X, la cual a partir de T construye T. 3. El par (T, ) es ingresado a la mquina universal X. 4. Si la respuesta de X es 1 entonces T acepta pero entonces T se detiene sobre . Dado que T se comporta como T solo que siempre que se detiene acepta, podemos afirmar que T se detiene sobre y que por lo tanto Y emite un 1 5. Si la respuesta de X es 0 entonces T no acepta pero entonces T no se detiene sobre . Dado que T tiene a todos sus estados como aceptadores, significa que para no aceptar la cadena, la nica posibilidad es que T no se haya detenido. Como T se comporta como T, podemos afirmar que esta tampoco se detiene y por lo tanto Y emite un 0, ya que T no se detiene sobre . Conclusin:

La mquina universal Y retorna 1 (T se detiene sobre ) si X retorna 1 (T acepta ). La mquina universal Y retorna 0 (T no se detiene sobre ) si X retorna 0 (T no acepta ). Hemos mostrado como construir la mquina universal Y que resuelve el problema de la detencin a partir de la mquina universal X que resuelve un problema que supusimos soluble. Sabemos por hiptesis que el problema de la detencin es un problema insoluble, por lo tanto la solucin encontrada mediante la mquina universal Y no puede existir. Lo que implica que alguna de sus componentes no puede existir, es decir o bien X, o bien X no existe. Como por construccin X existe, luego X no. Podemos entonces concluir que Pacept es un problema no-soluble. Ejemplo 2.- Sea el problema Palguna el siguiente problema: Pacept: Existe un procedimiento efectivo capaz de determinar si una mquina de Turing se detiene sobre alguna cadena? Para demostrar que Palguna no es soluble, comenzaremos suponiendo que lo es, llegando de esta manera a un absurdo. Este absurdo tendr lugar debido a que la solubilidad de Palguna implica la solubilidad de Pdet. Expresado de otra manera, demostramos que Pdet se reduce a Palguna. Demostracin: Supongamos que Palguna es un problema de decisin soluble. Al ser un problema soluble, entonces existe un procedimiento efectivo (o mquina universal de Turing), Alguna, que resuelve Palguna. Alguna toma como datos de entrada la descripcin de una mquina de Turing T y determina en un tiempo finito si T se detiene sobre alguna cadena o no. Es decir Alguna recibe como entrada (T) y retorna un 1 si T se detiene para alguna cadena, mientras que devuelve la salida 0 si T no se detiene para ninguna cadena. Construyamos a partir de Alguna, un procedimiento efectivo (o mquina universal de Turing) Detencin La mquina Detencin recibe como entrada un par (T,), el problema Palguna solo tiene como entrada una mquina de Turing, por lo que necesitamos un proceso adicional que combine T y de manera que las respuestas de Alguna, respondan el problema de la detencin. Este proceso adicional se lleva a cabo en la mquina universal X que realiza lo siguiente: a. Recibe como dato de entrada la mquina de Turing T y la cadena . b. Construye una mquina de Turing T tal que: i. Para la cadena se comporta como la mquina de Turing T. j. Para toda cadena que no sea la nueva mquina T nunca se detiene o cicla indefinidamente. Combinando las mquinas universales Alguna y X, tenemos la mquina universal Detencin que tiene el siguiente comportamiento: 1. Detencin recibe como entrada el par (T, ). 2. La mquina universal Detencin utiliza X, la cual a partir de T y construye la nueva mquina de Turing T. 3. La mquina de Turing T

obtenida en el paso anterior es ingresada a la mquina universal Alguna. 4. Si la respuesta de Alguna es 1 entonces T se detiene para alguna cadena. De la manera en la que construimos T esa cadena necesariamente es la cadena (ya que para el resto sabemos que la mquina siempre cicla) como el comportamiento de T frente a la cadena es el mismo que tiene la mquina T entonces podemos afirmar que T se detiene sobre y que por lo tanto Detencin emite un 1 5. Si la respuesta de Alguna es 0 entonces T no se detiene para ninguna cadena. De la manera en la que construimos T la nica cadena sobre la que T poda detenerse era y que el comportamiento frente a esta cadena era el mismo que el de la mquina T. Podemos entonces afirmar, que la mquina de Turing T tampoco se detiene frente a la cadena y que por lo tanto la respuesta que emite Detencin es igual a 0. Conclusin: La mquina universal Detencin retorna 1 (T se detiene sobre ) si Alguna retorna 1 (T se detiene sobre alguna cadena). La mquina universal Detencin retorna 0 (T no se detiene sobre ) si Alguna retorna 0 (T se detiene sobre ninguna cadena). Hemos mostrado como construir la mquina universal Detencin que resuelve el problema de la detencin a partir de la mquina universal Alguna que resuelve un problema que supusimos soluble. Sabemos por hiptesis que el problema de la detencin es un problema insoluble, por lo tanto la solucin encontrada mediante la mquina universal Detencin no puede existir. Lo que implica que alguna de sus componentes no puede existir, es decir o bien Alguna, o bien X no existe. Como por construccin X existe, luego Alguna no puede existir. Podemos entonces concluir que Palguna es un problema no-soluble. Ejemplo 3.- Sea el problema Pvacio el siguiente problema: Pvacio: Existe un procedimiento efectivo capaz de determinar si una mquina de Turing no acepta ninguna cadena? En este caso tomaremos como el problema insoluble a reducir a este al problema de la aceptacin Pacept, demostrado como insoluble anteriormente. Demostracin: Supongamos que Pvacio es un problema de decisin soluble. Al ser un problema soluble, entonces existe un procedimiento efectivo (o mquina universal de Turing), Sol vacio, que resuelve Pvacio. Sol Vacio toma como datos de entrada la descripcin de una mquina de Turing T y determina en un tiempo finito si T no acepta cadena alguna. Es decir Sol Vacio recibe como entrada T y retorna un 1 si T no acepta cadena alguna, mientras que devuelve la salida 0 si T acepta alguna cadena. Construyamos a partir de Sol Vacio, un procedimiento efectivo (o mquina universal de Turing) Aceptacin La mquina Aceptacin recibe como entrada un par (T,), el problema Pvacio solo tiene como entrada una mquina de Turing, por lo que necesitamos un proceso adicional que combine T y de manera que las respuestas de Sol Vacio, respondan el problema de la aceptacin. Este proceso adicional se lleva a cabo en la mquina universal X que realiza lo

siguiente: a. Recibe como dato de entrada la mquina de Turing T y la cadena . b. Construye una mquina de Turing T tal que: i. Para la cadena se comporta como la mquina de Turing T. j. Para toda cadena que no sea la nueva mquina T nunca se detiene o cicla indefinidamente. Combinando la mquinas universales Sol Vacio y X, tenemos la mquina universal Aceptacin que tiene el siguiente comportamiento: 1. Aceptacin recibe como entrada el par (T, ). 2. La mquina universal Aceptacin utiliza X, la cual a partir de T y construye la nueva mquina de Turing T. 3. La mquina de Turing T obtenida en el paso anterior es ingresada a la mquina universal Sol Vacio. 4. Si la respuesta de Sol Vacio es 1 entonces T no acepta cadena alguna. De la manera en la que construimos T la nica cadena sobre la que haba incertidumbre con respecto a la aceptacin o no es (ya que para el resto sabemos que la mquina siempre cicla). Como el comportamiento de T frente a la cadena es el mismo que tiene la mquina T entonces podemos afirmar que T no acepta la cadena ya que de lo contrario habra una cadena que T aceptara. Por lo tanto Aceptacin debe emitir un 0 5. Si la respuesta de Sol Vacio es 0 entonces T acepta alguna cadena. De la manera en la que construimos T la nica cadena que pudo ser aceptada es . Como la aceptacin de depende de T (debido a la manera en que T fue construida) podemos asegurar que T acepta y por lo tanto la mquina universal Aceptacin retorna el valor 1. Conclusin: La mquina universal Aceptacin retorna 1 (T acepta ) si Sol Vacio retorna 0 (T acepta alguna cadena). La mquina universal Aceptacin retorna 0 (T no acepta ) si Sol Vacio retorna 1 (T no acepta cadena alguna). Hemos mostrado como construir la mquina universal Aceptacin que resuelve el problema de la aceptacin (Pacept) a partir de la mquina universal Sol Vacio que resuelve un problema Pvacio. Sabemos por hiptesis que el problema de la aceptacin es un problema insoluble, por lo tanto la solucin encontrada mediante la mquina universal Aceptacin no puede existir. Lo que implica que alguna de sus componentes no puede existir, es decir o bien Sol Vacio, o bien X no existe. Como por construccin X existe, luego Sol Vacio no puede existir y por lo tanto Pvacio es un problema insoluble.

6.3 Funciones Computables


En teora de la computabilidad funciones computables o funciones Turingcomputables son los objetos bsicos de estudio. Hacen nuestras nociones intuitivas de algoritmo presicas y segn el tesis Church-Turing son exactamente las funciones que pueden ser calculados con una mquina de calculacin. La nocin de la computabilidad de una funcin puede ser relativizado a un conjunto arbitrario de nmeros naturales A, o equivalentamente a una funcin arbitraria f de los naturales a los naturales, por medio de mquinas de Turing extendidas por un oracle por A o f. Tales funciones puede ser llamados A-computable o f-computable

respectivamente. Antes la definicin preciso de una funcin computable matemticos solan usar el trmino informal efectivamente computable. Funciones computables son usados para discutir computabilidad sin referir a ningn modelo de computacin concreto, como mquina de Turing o mquina de registros. Los axiomas de Blum puede ser usados para definir una teora de complejidad computacional abstracta sobre el conjunto de funciones computables. Segn el tesis Church-Turing, la clase de funciones computables es equivalente a la clase de funciones definidos por funciones recursivos, calculo de lamda, o algoritmos de Markov. Alternativamente se pueden definir como los algoritmos que pueden ser calculados por mquina de Turing, sstema de Post, o mquina de registros. En teora de la complejidad computacional, el problema de determinar la complejidad de una funcin computable esta conocido como un problema de funciones. Una funcin parcial est llamado computable si el grfico de f es un conjunto recursivamente enumerable. El conjunto de funciones parcialmente computables con un parmetro es normalmente escrito o isi el nmero de parmetros es claro del contexto. Una funcin total est llamado computable si el grfico de f es un conjunto recursivo. El conjunto de funciones totalmente computables con un parmetro es normalmente escrito o . Una funcin computable f est llamado predicado computable si es una funcin con valor booleano, o sea A veces, por razones de claridad, escribimos una funcin computable como Podemos fcilmente codificar g en una nueva funcin usando ana funcin de pares. Propiedades El conjunto de funciones computables contable. Dados dos funciones computables f yg entonces f+g, fg y fog son funciones computables. Funciones computables son definibles aritmeticamente. Una funcin con valor booleano f es un predicado computable si y solo si el lenguaje es recursivo.

6.4 Reducibilidad de Turing


En teora de la computabilidad funciones computables o funciones Turingcomputables son los objetos bsicos de estudio. Hacen nuestras nociones intuitivas de algoritmo presicas y segn el tesis Church-Turing son exactamente las funciones que pueden ser calculados con una mquina de calculacin. La nocin de la computabilidad de una funcin puede ser relativizado a un conjunto arbitrario de nmeros naturales A, o equivalentamente a una funcin arbitraria f de los naturales a los naturales, por medio de mquinas de Turing extendidas por un oracle por A o f. Tales funciones puede ser llamados A-computable o f-computable respectivamente. Antes la definicin preciso de una funcin computable matemticos solan usar el trmino informal efectivamente computable. Funciones computables son usados para discutir computabilidad sin referir a ningn modelo de computacin concreto, como mquina de Turing o mquina de registros. Los axiomas de Blum puede ser usados para definir una teora de complejidad computacional abstracta sobre el conjunto de funciones computables. Segn el tesis Church-Turing, la clase de funciones computables es equivalente a la clase de funciones definidos por funciones recursivos, calculo de lamda, o algoritmos de Markov. Alternativamente se pueden definir como los algoritmos que pueden ser calculados por mquina de Turing, sstema de Post, o mquina de registros. En teora de la complejidad computacional, el problema de determinar la complejidad de una funcin computable esta conocido como un problema de funciones. Una funcin parcial est llamado computable si el grfico de f es un conjunto recursivamente enumerable. El conjunto de funciones parcialmente computables con un parmetro es normalmente escrito o isi el nmero de parmetros es claro del contexto. Una funcin total est llamado computable si el grfico de f es un conjunto recursivo. El conjunto de funciones totalmente computables con un parmetro es normalmente escrito o . Una funcin computable f est llamado predicado computable si es una funcin con valor booleano, o sea A veces, por razones de claridad, escribimos una funcin computable como Podemos fcilmente codificar g en una nueva funcin

usando ana funcin de pares. Propiedades El conjunto de funciones computables contable. Dados dos funciones computables f yg entonces f+g, fg y fog son funciones computables. Funciones computables son definibles aritmeticamente.