Funcion computable y parcialmente computable

1,310
-1

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,310
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
21
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Funcion computable y parcialmente computable

  1. 1. UNIVERSIDAD AUTÓNOMA DE GUEREROFACULTAD DE MATEMATICASASIGNATURA: LENGUAJES FORMALES YAUTÓMATASTEMA:FUNCIÓN COMPUTABLE YPARCIALMENTE COMPUTABLEPROFESOR:EUGENIO AVILUZ RAMIREZALUMNA: ANA MENDEZ MARTINEZSEXTO SEMESTREFECHA: 07/05/2013
  2. 2. INTRODUCCIONEl presente trabajo nos muestra que existen funciones que no conocíamos, y que son difíciles deresolver mediante un algoritmo de algún lenguaje de programación.No trataremos de resolverlas pero si veremos que algunas se pueden resolver, y otrasdefinitivamente no tienen soluciónLo interesante de este tema es mostrar que existen diferentes funciones o problemas computablesy parcialmente computables que han venido surgiendo desde hace algunos años y que gracias aalgunas personas como Alan Turing, Kurt Gödel etc. nos han ayudado a demostrar que si haysolución para ciertas funciones
  3. 3. ContenidoINTRODUCCION ........................................................................................................................................ 2OBJETIVO:................................................................................................................................................... 51. FUNCION COMPUTABLE Y PARCIALMENTE COMPUTABLE ..................................................... 61.2. FUNCIÓN COMPUTABLE:.................................................................................................................... 71.2.1TEORIA DE LA COMPUTABILIDAD:................................................................................................. 91.3. FUNCION PARCIALMENTE COMPUTABLE ........................................................................................ 111.4. PROBLEMAS NO COMPUTABLES...................................................................................................... 11CONCLUSION ........................................................................................................................................... 13REFERENCIAS.......................................................................................................................................... 14
  4. 4. INDICE DE FIGURASImagen 1 resolver problemas mediante una computadora.......................................................................... 8Imagen 2 cajero automático (ejemplo de función computable)................................................................ 10
  5. 5. 5OBJETIVO:Conocer cuáles son las funciones computables, las formas tan complicadas que son desolucionarlas y lo mucho que son usadas en nuestros días.Definir y conocer las funciones parcialmente computables y los problemas no computables yaque algunos no tienen solución y no son muy usados en los sistemas de trabajo más sin embargoes importante conocerlos y plantearnos por qué no tienen solución.
  6. 6. 61. FUNCION COMPUTABLE Y PARCIALMENTECOMPUTABLEComenzaremos nuestra investigación considerando el poder expresivo de un determinadolenguaje de programación. Recordemos que existen funciones que no pueden calcularse conningún programa escrito en ese lenguaje. La pregunta que debemos plantearnos ahora es si estalimitación es debida al diseño del lenguaje, o si, por el contrario, es un reflejo de las limitacionesde los procesos algorítmicos en general. Es decir, nos preguntamos si la imposibilidad de calcularuna función por un programa en un determinado lenguaje significa que el lenguaje es incapaz deexpresar un algoritmo, o más bien que no existe ningún algoritmo que pueda calcular esa función.Para responder esta pregunta, primero identificaremos una clase de funciones que contiene latotalidad de las funciones computables, es decir, todas aquellas funciones que pueden calcularsepor medios algorítmicos, sin importar como pueda expresarse o implementarse ese algoritmo.Después mostraremos que las funciones de esta clase pueden calcularse por medio de lasmáquinas de Turing, y también mediante algoritmos expresados en un subconjunto muysencillo de la mayoría de los lenguajes de programación. A partir de esto llegaremos a laconclusión de que los limites detectados en las máquinas de Turing y en la mayor parte de loslenguajes de programación son el reflejo de las limitaciones de los procesos computacionales,no del diseño de la máquina o del lenguaje que se emplee.
  7. 7. 71.2. FUNCIÓN COMPUTABLE:Las funciones computables son el objeto básico de estudio de la teoría de la computabilidad yson, específicamente, las funciones que pueden ser calculadas por una máquina de Turing.Un problema es computable cuando existe un procedimiento efectivo (algoritmo) que permiteobtener, para cualquier entrada, una cadena que le corresponde como solución del problema.Las funciones computables son una formalización de la noción intuitiva de algoritmo y segúnla Tesis de Church-Turing son exactamente las funciones que pueden ser calculadas con unamáquina de cálculo. La noción de la computabilidad de una función puede ser relativizada aunconjunto arbitrario de números naturales A, o equivalentemente a una función arbitraria f de losnaturales a los naturales, por medio de máquinas de Turing extendidas con un oráculo por A o f.Tales funciones pueden ser llamadas A-computable o f-computablerespectivamente. Antes de ladefinición precisa de una función computable los matemáticos usaban el términoinformal efectivamente computable.Las funciones computables son usadas para discutir sobre computabilidad sin referirse aningún modelo de computación concreto, como el de la máquina de Turing o el de la máquina deregistros. Los axiomas de Blum pueden ser usados para definir una teoría de complejidadcomputacional abstracta sobre el conjunto de funciones computables.Según la Tesis de Church-Turing, la clase de funciones computables es equivalente a la clase defunciones definidas por funciones recursivas, cálculo lambda, o algoritmos de MarkovAlternativamente se pueden definir como los algoritmos que pueden ser calculados poruna máquina de Turing, unamáquina de Post, o una máquina de registros.En teoría de la complejidad computacional, el problema de determinar la complejidad de unafunción computable es conocido como un problema de funciones. [1].
  8. 8. 8Imagen 1 resolver problemas mediante una computadora
  9. 9. 91.2.1TEORIA DE LA COMPUTABILIDAD:La Teoría de la computabilidad es la parte de la computación que estudia los problemas dedecisión que pueden ser resueltos con un algoritmo o equivalentemente con una máquina deTuring.Un problema de decisión es un problema en donde las respuestas posibles son «sí» o «no». Unejemplo típico de problema de decisión es la pregunta: ¿Es un número entero dado primo? Unainstancia de este problema sería: ¿Es 17 primo? [2].FUNCIONES COMPUTABLES CALCULADAS POR PROGRAMAS -WhileHay funciones computables que se calculan por programas-while. Si P es un programa-while yes la lista de variables en P entonces consideraremos a las primeras variables comovariables de entrada y a las últimas como de salida, de manera sólo un poco más precisa, paraconsideraremosEl programa Pcalcula, o computa, a la funciónDondeEn este caso definimos,
  10. 10. 10En adelante omitiremos los subíndices n,m y k.escomputable si existe un programa-while tal que f=fP.EJEMPLO: un ejemplo de función computable, es una máquina que devuelve el cambio (cajeroautomático)Imagen 2 cajero automático (ejemplo de función computable)
  11. 11. 111.3. FUNCION PARCIALMENTE COMPUTABLEUna función parcialmente computable posee un algoritmo que nos permite computar su valorpara elementos de su dominio, pero que nos tendrá computando eternamente si intentamosobtener un valor funcional para un elemento que no está en su dominio, sin asegurarnos nuncaque no obtendremos un valor. En otras palabras, cuando es posible una respuesta, el algoritmo laprovee; cuando no es posible, el algoritmo nos mantiene buscando la respuesta en vano por untiempo infinito [3].Si una función es parcialmente computable, la máquina que la calcula puede no parar, o pararcon una salida indefinida, para aquellos valores en los que la función no esté definida.1.4. PROBLEMAS NO COMPUTABLESSiempre se había creído que todo problema, ya fuera fácil o difícil, podía resolverse en una seriede pasos. Además esta idea se remonta miles de años atrás.Pero no, esto es una idea errónea yaque una computadora no lo puede solucionar todo.Para David Hilbert, un notable matemático, el hecho de que hubiera problemas que no contaran con unasolución exacta, supuso una gran insatisfacción, porque él mismo pensaba en lo siguiente:“Todoproblema matemático definido debe ser necesariamente susceptible de un planteamiento exacto, ya seaen forma de una respuesta real a la pregunta planteada o debido a la constatación de la imposibilidadde resolverlo, a lo que se debería la falla necesaria de todos los intentos... una de las cosas quenos atrae más cuando nos dedicamos a un problema matemático es precisamente a que dentro denosotros siempre escuchamos la llamada: aquí el problema, busca la solución; puedesencontrarla por pensamiento puro, ya que en matemáticas no existe cosa alguna que no puedaconocerse”.Lo que en realidad quería Hilbert era disponer de un sistema que pudiera resolver con precisiónun determinado problema. Es decir, disponer de un algoritmo para resolver cualquier problema.Esto no fue así ya que demostraron que ciertos problemas resultaban ser no computables. Conesto se venía abajo la teoría de Hilbert. Todo ello supuso una gran sorpresa para los matemáticossobre todo después de que Kurt Gödel publicara su “teorema de la incompletitud”. El primer
  12. 12. 12teorema de la incompletitud de Gödel afirma: “En cualquier formalización consistente de lasmatemáticas que sea lo bastante fuerte para definir el concepto de números naturales, se puedeconstruir una afirmación que ni se puede demostrar ni se puede refutar dentro de ese sistema”.El segundo teorema de la incompletitud de Gödel afirma: “Ningún sistema consistente se puedeusar para demostrarse a sí mismo”. No sólo Gödel encontró problemas que no tuvieran soluciónsino también importantes matemáticos como Alonso Church, Stephen Kleene, Mil Post, AlanTuring.Ejemplos de problemas no computables:Su demostración se basa en el método de la diagonal.El problema de la palabra para Grupos. “Dado un subconjunto S de elementos de un grupo G, setrata de decidir si una expresión compuesta por elementos de S y con las operaciones del grupoes igual al elemento neutro del grupo”.Décimo problema de Hilbert. “Una ecuación diofántica es la ecuación de los ceros enteros de unpolinomio con coeficientes enteros. El décimo problema de Hilbert trata de encontrar unalgoritmo que determine si una ecuación diofántica polinómica dada con coeficientes enterostiene solución entera”. Matiyasevich demostró que no existe dicho algoritmo.Decidibilidad de las teorías lógicas:El cálculo de predicados no es decidible. Esto lo demostraron Church y Turing.
  13. 13. 13CONCLUSIONConcluimos en que las funciones computables son aquellas que pueden resolverse por medio deun algoritmo, las funciones parcialmente computables son las de recursividad o las indefinidas enalgunos valores de la función, y por ultimo las no computables son las que no tienen solución
  14. 14. 14REFERENCIAS[1]:http://es.wikipedia.org/wiki/Funci%C3%B3n_computable[2]. http://es.wikipedia.org/wiki/Teor%C3%ADa_de_la_computabilidad[3].http://books.google.com.mx/books?id=hV35XvRAhvgC&pg=PA82&lpg=PA82&dq=funcion+computable+y+parcialmente+computable+en+informatica&source=bl&ots=2ty88yCVos&sig=IOS7B1p8WyMdx_WZlH56wBBb5HE&hl=es&sa=X&ei=P5OEUcH_AqWE0QGYh4CYCw&ved=0CDAQ6AEwAQ#v=onepage&q=funcion%20computable%20y%20parcialmente%20computable%20en%20informatica&f=false
  15. 15. 15

×