Vous êtes sur la page 1sur 31

Teora de la Computacin (SCM0433)

Jos Gerardo Carpio Flores Enero-Junio de 2010

JGCF 2010

ISC Teora de la Computacin (SCM0433)

Contexto Desarrollo Evaluacin

Panorama

Comprender la teora de la decidibilidad aplicada a los lenguajes.

JGCF 2010

ISC Teora de la Computacin (SCM0433)

Contexto Desarrollo Evaluacin

Temario

Contenido Unidad 5 Decidibilidad 5.1 Lenguajes decidibles 5.2 El problema de halting 5.3 Decidibilidad de teoras lgicas

JGCF 2010

ISC Teora de la Computacin (SCM0433)

Contexto Desarrollo Evaluacin

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

ISC Teora de la Computacin (SCM0433)

Contexto Desarrollo Evaluacin

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

ISC Teora de la Computacin (SCM0433)

Contexto Desarrollo Evaluacin

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

ISC Teora de la Computacin (SCM0433)

Contexto Desarrollo Evaluacin

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)

Contexto Desarrollo Evaluacin

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

ISC Teora de la Computacin (SCM0433)

Contexto Desarrollo Evaluacin

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)

Contexto Desarrollo Evaluacin

5.0 Introduccin

JGCF 2010

ISC Teora de la Computacin (SCM0433)

Contexto Desarrollo Evaluacin

5.0 Introduccin

JGCF 2010

ISC Teora de la Computacin (SCM0433)

JGCF 2010

ISC Teora de la Computacin (SCM0433)

Contexto Desarrollo Evaluacin

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

ISC Teora de la Computacin (SCM0433)

Contexto Desarrollo Evaluacin

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

ISC Teora de la Computacin (SCM0433)

Contexto Desarrollo Evaluacin

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

ISC Teora de la Computacin (SCM0433)

Contexto Desarrollo Evaluacin

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

ISC Teora de la Computacin (SCM0433)

Contexto Desarrollo Evaluacin

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

ISC Teora de la Computacin (SCM0433)

Contexto Desarrollo Evaluacin

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

ISC Teora de la Computacin (SCM0433)

Contexto Desarrollo Evaluacin

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)

Contexto Desarrollo Evaluacin

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

ISC Teora de la Computacin (SCM0433)

Contexto Desarrollo Evaluacin

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

ISC Teora de la Computacin (SCM0433)

Contexto Desarrollo Evaluacin

5.1 Lenguajes decidibles

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)

Contexto Desarrollo Evaluacin

5.1 Lenguajes decidibles

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

ISC Teora de la Computacin (SCM0433)

Contexto Desarrollo Evaluacin

5.1 Lenguajes decidibles

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

ISC Teora de la Computacin (SCM0433)

Contexto Desarrollo Evaluacin

5.1 Lenguajes decidibles

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

ISC Teora de la Computacin (SCM0433)

Contexto Desarrollo Evaluacin

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

ISC Teora de la Computacin (SCM0433)

Contexto Desarrollo Evaluacin

5.1 Lenguajes decidibles

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

ISC Teora de la Computacin (SCM0433)

Contexto Desarrollo Evaluacin

5.1 Lenguajes decidibles

Podemos probar un teorema similar para loa autmatas finitos no deterministas ANFA como un lenguaje decidible.

Presentamos una TM N que decide sobre ANFA


N = On input (B, w), where B is a NFA and w is a string: 1. Convert NFA B to an equivalent DFA C, using the correct procedure for this convertion. 2. Run TM M on input (C,w) 3. If M accepts, accept. ends in a nonaccepting state, reject.

JGCF 2010

ISC Teora de la Computacin (SCM0433)

Contexto Desarrollo Evaluacin

5.2 El problema de halting

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

ISC Teora de la Computacin (SCM0433)

Contexto Desarrollo Evaluacin

5.2 El problema de halting

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

ISC Teora de la Computacin (SCM0433)

Contexto Desarrollo Evaluacin

5.2 El problema de halting

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

ISC Teora de la Computacin (SCM0433)

Vous aimerez peut-être aussi