Académique Documents
Professionnel Documents
Culture Documents
JGCF 2010
Panorama
JGCF 2010
Temario
Contenido Unidad 5 Decidibilidad 5.1 Lenguajes decidibles 5.2 El problema de halting 5.3 Decidibilidad de teoras lgicas
JGCF 2010
5.0 Introduccin
Las cadenas de caracteres son los bloques fundamentales en las ciencias computacionales. Ellas son tiles para comunicar soluciones a las mquinas. Tales soluciones se especifican utilizando lenguajes. La matemtica nos proporciona facilidades para expresar lenguajes que especifiquen procesos. El concepto clave para la definicin matemtica de procesos es el de algoritmo.
JGCF 2010
5.0 Introduccin
Definicin intuitiva de algoritmo Secuencia de operaciones que, aplicada correctamente a un problema de una clase determinada, genera la solucin a ese problema en un tiempo finito. Coleccin simple de instrucciones para caracterizar la realizacin de una tarea.
JGCF 2010
5.0 Introduccin
Definicin formal de algoritmo Funciones recursivas Gedel Funciones -definibles Church, Kleene Algoritmos de Markov Andrei A- Markov Teora de autmatas - Turing
JGCF 2010
5.0 Introduccin
Formalizacin de algoritmos y temas de estudio Para la especificacin matemtica de procesos estudiamos tres teoras distintas: teora de autmatas, computabilidad y decidibilidad, teora de la complejidad computacional. La teora de autmatas nos proporciona el lenguaje para la especificacin de los procesos algortmicos. La teora de la computabilidad y la decidibilidad nos proporciona informacin acerca de los lmites de la resolucin algortmica de problemas. La teora de la complejidad computacional nos proporciona estrategias de medida de la complejidad de cada proceso algortmico.
JGCF 2010 ISC Teora de la Computacin (SCM0433)
5.0 Introduccin
Autmatas como tema de estudio Una mquina es un mecanismo de naturaleza formal. Acepta informacin de entrada (input) y la procesa. El procesamiento es de transformacin simblica que puede adoptar la forma de un clculo o computacin. El procesamiento genera un resultado o salida (output). Su definicin equivale a definir el proceso de transformacin del input en output, lo que equivale a definir una funcin cuyos argumentos son el input y cuyo valor es el output.
JGCF 2010
5.0 Introduccin Autmatas como tema de estudio Hay muchos tipos de autmatas. Cada tipo de autmata se asocia a un poder computacional determinado, es decir, a una capacidad dada de resolucin de problemas. Los problemas se pueden clasificar algortmicamente asocindolos al tipo de autmatas que los resuelve. Los tipos son: autmatas finitos, autmatas con memoria de pila, autmatas linealmente acotados, mquinas de Turing.
Desarrollaron esta teora: Turing, McCulloch, Kleene, Shannon, Moore, Minsky, Wang, Sepherdson, Rabin, McNaughton, Chomsky, McCarthy, Hartmanis.
JGCF 2010 ISC Teora de la Computacin (SCM0433)
5.0 Introduccin
JGCF 2010
5.0 Introduccin
JGCF 2010
JGCF 2010
5.0 Introduccin De los autmatas a las computadoras Una computadora es la realizacin fsica de una Mquina de Turing Universal. Cuando una computadora ejecuta un programa, la mquina universal se convierte en una mquina virtual concreta. esa mquina universal puede ejecutar cualquier programa o proceso computable. Cada instruccin de los lenguajes de alto nivel que se utilizan para programar computadoras, es en realidad una macroinstruccin, es decir, una expresin que resume todo un conjunto ms o menos complejo de operaciones elementales.
JGCF 2010
5.0 Introduccin De los autmatas a las computadoras Una macroinstruccin es una unidad lingstica que hace referencia, en ltimo trmino, a una operacin definible en trminos de Mquina de Turing. Un lenguaje de programacin es un conjunto de macroinstrucciones que puede ser utilizado para definir operaciones o procesos complejos. Hay lenguajes de programacin en distintos niveles, de forma que los lenguajes de un nivel utilizan explcitamente o implcitamente macroinstrucciones del nivel inferior.
JGCF 2010
5.0 Introduccin De los autmatas a las computadoras Un programa es una secuencia finita de instrucciones tal que cada una de ellas es, una macroinstruccin de algn lenguaje de programacin, o un subprograma formulado en ese mismo lenguaje. Una computadora digital es la realizacin fsica de una Mquina de Turing que ejecuta procesos definidos usualmente mediante problemas escritos en lenguajes de programacin de diferentes niveles. Cuando una computadora ejecuta un programa, la mquina universal, que puede ejecutar cualquier programa o proceso computable, se convierte en una mquina virtual concreta.
JGCF 2010
5.0 Introduccin De los autmatas a las computadoras El lenguaje de especificacin de algoritmos utilizado en las MT es de bajo nivel y est muy alejado del lenguaje natural. En la modelacin computacional suelen definirse los algoritmos mediante un lenguaje o pseudocdigo de alto nivel. Los lenguajes de alto nivel poseen diferentes tipos de instrucciones, declarativas, expresiones, ejecutables y comentarios.
JGCF 2010
5.0 Introduccin De los autmatas a las computadoras En aos recientes, la cantidad de datos con la que se espera que las computadoras operen, se ha incrementado en orden de magnitud y no es raro que algunos conjuntos de datos tengan tamao de varios terabytes. Se puede usar una computadora para responder preguntas sobre el Internet, el genoma humano, o los registros de ventas de Wal-Mart. Las computadoras realizan anlisis complejos, como calcular la forma tridimensional de una protena compuesta por muchos miles de tomos. O bien, encontrar informacin relevante en una pgina web producto de una consulta a un pool de billones de ellas.
JGCF 2010
5.0 Introduccin De los autmatas a las computadoras Es probable que el anlisis de algoritmos permita trabajar intensamente en optimizacin, redes de algoritmos, geometra computacional, cmputo distribuido, algoritmos para conjuntos masivos de datos, cmputo paralelo, biologa computacional y cmputo cientfico. Conscientes tambin de que uno de los grandes retos del milenio es que algunos problemas cuentan con varias piezas que la computadora puede fcilmente reconocer como una solucin, pero que no puede encontrar una solucin sin intentar un nmero astronmico de posibilidades.
JGCF 2010
5.0 Introduccin Acerca de Teora de la Computacin Los recursos necesarios para resolver un problema computacional, tales como tiempo, espacio, comunicacin y nmero de procesadores, se escalan con el tamao del problema? Si un problema es intratable, podemos encontrar soluciones aproximadas en una cantidad razonable de tiempo? Se pueden construir protocolos criptogrficos seguros no slo para intercambiar mensajes secretos, sino para tareas necesarias en el comercio electrnico moderno? Cmo pueden alcanzar un consenso los agentes distribuidos, aun con la presencia de fallos y de interferencia maliciosa? Cules son las capacidades y lmites de la computacin?
JGCF 2010 ISC Teora de la Computacin (SCM0433)
5.0 Introduccin
Limitaciones? de los algoritmos Existen algunos problemas que pueden ser resueltos de forma algortmica y otros que no. Nuestro objetivo es explorar los lmites de las soluciones algortmicas. Posiblemente ests ms relacionado con el poder de los algoritmos dado que mucha de la aplicacin de las ciencias computacionales est dedicada a la solucin de problemas. Por ello, la limitacin algortmica puede sorprenderte.
JGCF 2010
5.0 Introduccin
Limitaciones? de los algoritmos Por qu estudiar lo que no se puede resolver? despus de todo, presentar un problema que es irresoluble no parece til si tengo que resolverlo. Se estudia este fenmeno por dos razones: La primera, ayuda a simplificar o a alterar el problema antes de encontrar una solucin algortmica. La segunda es ms cultural, saber que algo no tiene solucin estimula la imaginacin y ayuda a obtener diferentes perspectivas de la computacin.
JGCF 2010
Decidibilidad Un problema de decisin es un conjunto de preguntas cuyas respuestas son ya sea s, o no. Tesis de Turing: Un problema es decidible ssi es computable. En otro caso, es indecidible. Denominamos problema de decisin a la cuestin de si, para una clase dada de problemas, existe un algoritmo o procedimiento efectivo que los resuelva. Decimos que un problema de decisin es indecidible si podemos demostrar que no existe ningn algoritmo que pueda responder a todas las preguntas que el problema pueda plantear.
JGCF 2010 ISC Teora de la Computacin (SCM0433)
Decidibilidad Un algoritmo que resuelve un problema de decisin debe ser: Completo producir una respuesta, positiva o negativa, para cada pregunta del dominio del problema. Mecnico Consistir de una secuencia de instrucciones, cada una de ellas producida sin ingenuidad, intuicin o premonicin. Determinista Cuando se presenten entradas idnticas, siempre producir el mismo resultado.
JGCF 2010
Problemas de decisin El problema hay enteros tales que satisfagan la ecuacin 3x + 6y = 151 no es un problema de decisin. El problema Hay enteros x, y tales que se cumple la ecuacin ax + by = c?, si es un problema de decisin: Para cada asignacin de valores a los parmetros a, b, c hay un problema distinto. Respuesta: si, si el mximo comn divisor (mcd) de a y b divide a c. Tenemos el algoritmo de Euclides para hallar el mcd de dos nmeros.
JGCF 2010
Problemas de decisin El problema hay enteros tales que satisfagan la ecuacin 3x + 6y = 151 no es un problema de decisin. El problema Hay enteros x, y tales que se cumple la ecuacin ax + by = c?, si es un problema de decisin: Para cada asignacin de valores a los parmetros a, b, c hay un problema distinto. Respuesta: si, si el mximo comn divisor (mcd) de a y b divide a c. Tenemos el algoritmo de Euclides para hallar el mcd de dos nmeros.
JGCF 2010
5.1 Lenguajes decidibles Probar que un string es miembro de una CFG es un ejemplo de lenguajes decidibles.
Esos lenguajes nos interesan por varias razones: primero porque ciertos problemas de esta clase estn relacionados con aplicaciones, por ejemplo con teora de compiladores. Segundo, existen problemas relacionados con autmatas y gramticas que no son decidibles con algoritmos.
Problema de aceptacin para DFAs ADFA = { (B, w) | B es un DFA que acepta strings de entrada w} ADFA es un lenguaje decidible.
JGCF 2010
ADFA es un lenguaje decidible. Idea de prueba: simplemente necesitamos presentar una TM M que decida sobre ADFA M = On input (B, w), where B is a DFA and w is a string: 1. Simulate B on input w. 2. If the simulation ends in an accept state, accept. If it ends in a nonaccepting state, reject.
JGCF 2010
Podemos probar un teorema similar para loa autmatas finitos no deterministas ANFA como un lenguaje decidible.
JGCF 2010
Problemas de la parada Existe algn procedimiento efectivo que nos permita determinar, para cualquier MT concreta representada en la Mturing universal, si la Mturing concreta llegar a detenerse despus de iniciar su computacin? Este problema tiene respuesta negativa, por lo que se trata de un problema indecidible. Este resultado es equivalente a los obtenidos respecto a la Lgica Clsica de Primer Orden:
JGCF 2010
Resultados respecto a la Lgica Clsica de Primer Orden Gdel (1931): Cualquier sistema formal cuyo lenguaje sea lo suficientemente rico para describir las operaciones y relaciones bsicas de la aritmtica elemental es incompleto. La aritmtica de Peano, formalizada con la Lgica de Primer Orden con Identidad y smbolos funcionales y con axiomas especficos, es incompleta. El conjunto de los enunciados verdaderos de la aritmtica no es decidible. Church (1936): La lgica de Primer Orden es indecidible.
JGCF 2010
Consecuencias para las ciencias cognitivas Existen problemas elementales no decidibles. Pero los sujetos solucionan problemas muy complejos. Luego se requieren recursos de modelacin no algortmicos (heursticos).
JGCF 2010