Fundamentos de computabilidad El modelo estndar El formidable
Fundamentos de computabilidad El modelo estándar
El formidable caso de A. Turing Alan Mathison Turing, Londres 1912 - Cheshire 1954 1931: Turing ingresa en el King's College, Cambridge, para estudiar matemáticas 1932 -33: empiezan a centrarse sus intereses: - lee Introduction to mathematical philosophy de Russell - entra en contacto con la mecánica cuántica a través de una obra de Von Neumann 1933: lee un artículo de Lógica en el Moral Science Club de Cambridge
El formidable caso de A. Turing 1934: se gradúa en el King’s College 1935 (primavera): asiste a un curso avanzado de Max Newman's sobre fundamentos de matemáticas. Allí toma contacto por primera vez con dos problemas: i. Los teoremas de Gödel ii. La cuestión de la decidibilidad 1935: Turing es elegido fellow of King's College con una disertación titulada On the Gaussian error function 1936: Se publica On Computable Numbers, with an application to the Entscheidungsproblem. 1936 -37: empieza su relación con el grupo de Princeton a través de Church. Empieza su investigación de cara al Ph. D
El formidable caso de A. Turing 1939: Turing se integra en el equipo de trabajo de la Government Code and Cypher School ubicada en las famosas instalaciones de Bletchley Park. 1939: publica Systems of Logic Based on Ordinals en el que se intenta superar los resultados de Gödel. El texto se basa en idas de Church y guarda relación con el contenido de su Tesis doctoral. 1945 -46: Turing recibe el encargo del National Physical Laboratory de Londres diseñar un ordenador. Turing elabora el proyecto para la realización del Automatic Computing Engine (ACE).
El formidable caso de A. Turing 1947 -48: Investiga el concepto de neural net e inicia sus estudios en I. A. 1950: Turing published Computing machinery and intelligence in Mind. 1951: Turing es elegido Fellow de la Royal Society de Londres 1952: Turing es arrestado por violar los Estatutos británicos sobre homosexualidad 1953: Estudia el problema de la morfogénesis y vuelve su interés por la mecánica cuántica y la teoría de la 1954: muere por envenenamiento en circunstancias extrañas
El grupo de Princeton A. Church: Assistant Professor de Matemáticas en Princeton desde 1929. Cálculo- Respuesta al Entscheidungsproblem Tesis de Church S. C. Kleene: Se doctora en 1934 bajo la dirección de A. Church. Sistematización del concepto de recursividad (Funciones recursivas por minimalización) Equivalencia entre recursividad general y minimalización
El grupo de Princeton Institute for Advanced Studies (Princeton, 1930 -40)
Máquinas de Turing Hardware P Cabeza lectora: escribe; borra y se desplaza de celda en celda Cinta de cálculo dividida en celdas La cinta se extiende en ambas direcciones y no está limitada
Máquinas de Turing Software i. Vb=<N, 0, i, d, *, B> ii. Una instrucción es un cuádruplo n. XYm en el que n, m son enteros positivos de los cuales n nunca es 0. X puede ser “*” o “B”. Y puede ser “*”, “B”, “i” o “d”. iii. Una máquina o programa es una colección finita de instrucciones que satisface los dos siguientes requisitos: nunca hay dos instrucciones i, i’ compartiendo los dos primeros elementos de su descripción. Alternativamente, ii’ (n=n’ & X=X’ i=i’). hay al menos una instrucción para la que m=0.
Máquinas de Turing Un diagrama de flujo para una máquina de Turing consiste en un gráfico compuesto a la partir de los elementos siguientes: i. nodos n ii. flechas etiquetadas X: Y Teniendo en cuenta, además, lo siguiente: i. de cada nodo sólo parten a lo sumo dos flechas etiquetadas ii. X e Y admiten como valores aquellos estipulados para los componentes X e Y de una instrucción, y iii. El numeral que aparece en i. corresponde a los estados de una máquina. iv. Cada flecha del tipo ii puede tener como origen cualquier elemento del tipo i, salvo el 0 y cualquier otro como llegada, incluyendo aquel del que parte.
Máquinas de Turing Máquina de leer 1*d 1 1 B: i 1 Bi 2 2*i 2 *: d 2 *: i 2 Bd 0 B: d 0
Máquinas de Turing Enumerabilidad de Máquinas de Turing (teorema de enumeración): Existe una cantidad infinita enumerable de Máquinas de Turing La Clase formada por todas las máquinas de Turing es además efectivamente enumerable: - Es posible determinar la tabla de una máquina a del número –índice- de esa máquina. partir
Máquinas de Turing Funciones computables: Una función numérica es computable syss existe una máquina de Turing que computa sus valores. - (x 1, . . . xn) es computable syss existe una Mi(x 1, . . . xn) que calcula sus valores. - (x 1, . . . xn) tiene un índice: su índice es i Las siguientes proposiciones son equivalentes: i. es Turing-computable ii. es -definible iii. es Recursiva general iv. es Recusiva por minimalización
Máquinas de Turing Máquina universal: Teorema de existencia: Hay máquinas de Turing representables como U(y, x 1, . . . xn) que satisfacen el siguiente enunciado: - U(y, x 1, . . . xn)=My(x 1, . . . xn)
Máquinas de Turing Diagonalización (G. Cantor) Hilbert described Cantor's work as: “. . . the finest product of mathematical genius and one of the supreme achievements of purely intellectual human activity. ” Cantor demuestra la no enumerabilidad de los reales en diciembre de 1873 apareciendo publicado el resultado en 1874 en: G. Cantor: “Über eine Eigenschaft des Inbegriffes aller reellen algebraischen Zahlen. “, Crelle's Journal für Mathematik, 77: 258263, 1874.
Máquinas de Turing Diagonalización (G. Cantor) Números reales: i. un número real puede ser identificado a través de su expansión decimal que es posiblemente infinita. ii. Un número real tiene, por tanto, el siguiente aspecto: <x 1, x 2, . . . xi, . . . >
Máquinas de Turing Diagonalización (G. Cantor) 1. Supongamos que el conjunto de los números reales R es enumerable 2. Eso significa que existe una posible enumeración de sus elementos: r 1, r 2, . . . rn, . . . en la que cada número real aparece al menos una vez.
Máquinas de Turing Diagonalización (G. Cantor) 3. Puesto que cada número real no es sino una secuencia del tipo: <x 1, x 2, . . . xi, . . . > la enumeración supuesta daría lugar a la siguiente tabla: T r 1 <x 11, x 12, . . . x 1 i, . . . > r 2 <x 21, x 22, . . . x 2 i, . . . > . . . . ri <xi 1, xi 2, . . . xii, . . . > . . . .
Máquinas de Turing Diagonalización (G. Cantor) 4. Cada secuencia <x 1, . . . xi, . . . > representa un número real. ¿Están todas las secuencias de ese tipo, donde xi N, en la tabla anterior? T r 1 <x 11, x 12, . . . x 1 i, . . . > r 2 <x 21, x 22, . . . x 2 i, . . . > . . . . ri <xi 1, xi 2, . . . xii, . . . > . . . .
Máquinas de Turing Diagonalización (G. Cantor) 5. Sea d la secuencia que se indica a continuación: d=<x 11, x 22, . . . xii, . . . >, Generada tomando cada uno de los elementos que en la tabla T forman la diagonal r 1 <x 11, x 12, . . . x 1 i, . . . > r 2 <x 21, x 22, . . . x 2 i, . . . > . . . . ri <xi 1, xi 2, . . xii, . . . >
Máquinas de Turing Diagonalización (G. Cantor) 6. Parece innegable que d representa un número real 7. Definimos ahora d* como: d*=<x*11, x*22, . . . x*ii, . . . >, donde la única condición sobre cada elemento es la siguiente: x*ii xii, x*ii=xii+1, por ejemplo.
Máquinas de Turing Diagonalización (G. Cantor) 8. ¿Se encuentra d* en la tabla T? i. Supongamos que es así. En tal caso d* será ri para algún entero positivo i. ii. Como cada ri no es sino una secuencia del tipo <x 1, x 2, . . . xi, . . . >, tenemos que: d*= <xi 1, xi 2, . . . xii, . . . > iii. Ahora bien, por la definición de d* debemos recordar que d* no es sino <x*11, x*22, . . . x*ii, . . . >, lo que significa que xii=x*ii
Máquinas de Turing Diagonalización (G. Cantor) 9. ¿Se encuentra d* en la tabla T? Pero x*ii es, por definición, cualquier entero positivo distinto de xii, xii+1, por ejemplo, lo cual lleva por 9. iii a xii=xii+1 r 2 x 11 x 22 . . . . ri <x*i 1, x*i 2, . . x*ii, . . . > xii
Máquinas de Turing Diagonalización (G. Cantor) 10. d* no está en T 11. Pero T es el resultado de cualquier posible enumeración de los reales, por tanto, El conjunto de los números reales no es enumerable
Máquinas de Turing Otros resultados obtenibles por diagonalización La clase de las funciones numéricas definidas sobre los naturales no es enumerable. El conjunto de partes de los naturales no es enumerable: <2 , es decir existen conjuntos infinitos de distinto cardinal.
Máquinas de Turing Diagonalización para máquinas de Turing: Problema de parada Función del problema de parada: h(x, y)= 1 si Mxy se detiene arrojando un output 0 en otro caso ¿Es h(x, y) computable? Es decir, existe una máquina M(x, y) que calcule sus valores?
Máquinas de Turing Diagonalización para máquinas de Turing: Problema de parada 1. Supongamos que h(x, y) es computable 2. Si h(x, y) es computable, entonces también lo es H(x), donde - H(x)=h(x, x) 3. Por el teorema de enumeración lo anterior lleva a afirmar que H(x) tiene un índice, es decir, H(x)=Mn(x) para algún n 4. A partir de Mn(x) se construye sin problemas una máquina M*(x) que muestra la siguiente conducta: M*(x)= 1 syss Mn(x)=0 entra en un bucle en otro caso
Máquinas de Turing Diagonalización para máquinas de Turing: Problema de parada 5. Por el teorema de enumeración lo anterior supone que M*(x) es Mi(x) para algún entero positivo i 6. ¿Qué conducta muestra Mi(x) cuando computa el valor i, es decir, cuando x=i? 7. Supongamos Mi(i)=1 8. Por la definición de M*(x) - Mi(x) es M*(x)-, eso significa que Mn(i)=0 9. Pero por la definición de Mn(x), Mn(i)=0 sólo tiene lugar cuando Mi(i) no arroja un output, contradiciendo así la hipótesis.
Máquinas de Turing Diagonalización para máquinas de Turing: Problema de parada 10. Debemos concluir por tanto Mi(i) entra en un bucle 11. Pero si Mi(i) entra en un bucle, entonces Mn(i)=0 por su propia definición 12. Ahora bien, si Mn(i)=0, Mi(i)=1 por su definición a partir de Mn(x). 13. Por tanto, Mi(i) no entra en un bucle
Máquinas de Turing Diagonalización para máquinas de Turing: Problema de parada 14. Mi(i) no adquiere de forma consistente un valor y por tanto, 15. Mi(x) no puede ser construida 16. Pero eso significa que Mn(x) no existe, de donde se sigue que 17. H(x) no es computable, lo cual obliga a concluir que 18. h(x, y) no es computable
Máquinas de Turing Diagonalización para máquinas de Turing: Problema de parada h(x, y) no es computable Función del problema de parada: h(x, y)= 1 si Mxy se detiene arrojando un output 0 en otro caso
- Slides: 31