Autor Tema: ¿QUé algoritmo distingue números computables de no computabes?

0 Usuarios y 1 Visitante están viendo este tema.

01 Agosto, 2015, 05:35 pm
Leído 6159 veces

Raúl Aparicio Bustillo

  • $$\Large \color{#9c57a6}\pi\,\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 3,113
  • Karma: +0/-3
  • Sexo: Masculino
¿Cómo puede reconocer un ordenador que un número que esté intentando calcular es no computable y que no va a llegar más allá de unas cuantas cifras en su aproximación?

01 Agosto, 2015, 06:05 pm
Respuesta #1

feriva

  • $$\Large \color{#a53f54}\pi\,\pi\,\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 11,319
  • País: es
  • Karma: +1/-0
  • Sexo: Masculino
¿Cómo puede reconocer un ordenador que un número que esté intentando calcular es no computable y que no va a llegar más allá de unas cuantas cifras en su aproximación?

Con una instrucción condicional “if”, por ejemplo, que le diga que si llega a cierto número haga un break o regrese a la rutina principal. Si no se le dice nada, y no puede con el cálculo, lo normal es que en pantalla empiecen a aparecer ceros (si se quiere que aproxime un número, sin caer en una parda o un bucle infinito, también hay que programarlo)

01 Agosto, 2015, 06:21 pm
Respuesta #2

Raúl Aparicio Bustillo

  • $$\Large \color{#9c57a6}\pi\,\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 3,113
  • Karma: +0/-3
  • Sexo: Masculino
¿y cómo se sabe que van a aparecer 0´s indefinidamente o en algún momento van a dejar de aparecer y    en vez de un número no computable es un número con muchos ceros? Además, necesitaríamos memoria infinita. Si nuestro cerebro funciona como un ordenador, evidentemente no podemos reconocer todos los números no computables, pero sí algunos de ellos. O si queréis ser un poco más explicitos, como sabe un ordenador que la constante  de Chaytin no es computable, por ejemplo?

01 Agosto, 2015, 08:46 pm
Respuesta #3

feriva

  • $$\Large \color{#a53f54}\pi\,\pi\,\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 11,319
  • País: es
  • Karma: +1/-0
  • Sexo: Masculino
¿y cómo se sabe que van a aparecer 0´s indefinidamente o en algún momento van a dejar de aparecer y    en vez de un número no computable es un número con muchos ceros? Además, necesitaríamos memoria infinita. Si nuestro cerebro funciona como un ordenador, evidentemente no podemos reconocer todos los números no computables, pero sí algunos de ellos. O si queréis ser un poco más explicitos, como sabe un ordenador que la constante  de Chaytin no es computable, por ejemplo?

El ordenador no sabe más que lo que se le programa. Los lenguajes utilizados, como C, Python, etc.., son programas sobre los que a la vez se programa; por decirlo en lenguaje “moderno”, son una aplicación, lenguajes de alto nivel.
 El ordenador, por dentro, funciona en el lenguaje de nivel más bajo, a base de unas celdillas que se cargan o no se cargan eléctricamente dando lugar a números binarios. El centro de operaciones es la “pila de máquina” y es donde se almacenan los valores de los registros (en forma de número binario). El registro principal, que  se llama acumulador, va cargando y descargando bits para “contar”. Para los cálculos existen unos indicadores llamados “flags”; uno de estos “flags” es el indicador de arrastre, que hace algo así como llevar la cuenta de las “llevadas” al sumar y al hacer todo tipo de operaciones. Cuando hay un desbordamiento, el indicador de arrastre pasa de valer cero a 1 y el resultado de la operación se guarda en el acumulador mediante una orden “push” (“meter dato”); esta es la mecánica básica que usa el ordenador para calcular un número. Si no hay “sitio” para guardar nada, puede provocar o bien un bloqueo (en el que la pantalla se queda estática y del que sólo se puede salir desenchufando y volviendo a empezar) o unos “jumps” (saltos) encadenados de forma que los registros se cargan y descargan cíclicamente sin fin; salvo corte de fluido eléctrico, que es la única manera de recuperar el control. Y esto (según el programa que estemos haciendo y en qué dirección de memoria acabe) a veces se puede ver como una sucesión de filas de ceros pasando por la pantalla (en “scroll”); personalmente lo vi muchas veces cuando intenté programar alguna cosa en código máquina con el Spectrum.
  Un bucle infinito es eso, y nunca llega a ser infinito porque alguna vez alguien desconectará el ordenador, pero, si no, sí sería infinito. 

En cuanto a la constante de Chaitin, por lo leí hace mucho, es imposible que sea generada entera por un programa porque el programa tendría que ser prácticamente infinitamente largo, así que, supongo, llega un momento en el que el ordenador no puede sacar más decimales debido a que al programa no le “caben”, no ya al ordenador; pero no me acuerdo bien y no he vuelto a leer sobre el tema.  Lo que es seguro es que ante esa situación el programa no sabe nada; se puede quedar colgado o puede parar y devolver el control siempre y cuando se haya programado para eso.


01 Agosto, 2015, 08:59 pm
Respuesta #4

luis

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 303
  • Karma: +1/-0
  • Sexo: Masculino
¿Cómo puede reconocer un ordenador que un número que esté intentando calcular es no computable y que no va a llegar más allá de unas cuantas cifras en su aproximación?

si el ordenador está calculando, lo que calcula es computable. no entiendo qué significa "lo que intenta calcular".

saludos

luis

01 Agosto, 2015, 09:27 pm
Respuesta #5

Raúl Aparicio Bustillo

  • $$\Large \color{#9c57a6}\pi\,\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 3,113
  • Karma: +0/-3
  • Sexo: Masculino
Los números no calculables son los que no se puede hacer un programa en ningún lenguaje que halle todas sus cifras, no quiere decir que no se puedan aproximar hasta cierto digito decimal. ¿QUé es lo que no entiendes?

01 Agosto, 2015, 09:33 pm
Respuesta #6

luis

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 303
  • Karma: +1/-0
  • Sexo: Masculino
Los números no calculables son los que no se puede hacer un programa en ningún lenguaje que halle todas sus cifras, no quiere decir que no se puedan aproximar hasta cierto digito decimal. ¿QUé es lo que no entiendes?

qué significa "intentar calcular". calcula aquello para lo que fue programado.

saludos

01 Agosto, 2015, 09:35 pm
Respuesta #7

Raúl Aparicio Bustillo

  • $$\Large \color{#9c57a6}\pi\,\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 3,113
  • Karma: +0/-3
  • Sexo: Masculino
Vete a la pregunta simplificada. ¿Cómo sabe un ordenador que la constante de Chaitin no es computable? ¿Con qué algoritmo se   le puede programar para que decida eso?

02 Agosto, 2015, 01:29 am
Respuesta #8

Juan Pablo Sancho

  • Moderador Global
  • Mensajes: 6,238
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
Si quieres calcular \(  \sqrt{2}  \) mediante la recurrencia:

\(  a_1 = 1.4  \)

\( \displaystyle a_{n+1} = \frac{1}{2} \cdot (a_n + \frac{2}{a_n})  \) para \(  n \geq 1  \).

Aparte de otras condiciones, sería bueno poner \(  a_{n+1} - a_n \neq 0  \) , por que dado un \(  n_0 \in \mathbb{N}  \) te dará que \(  a_{n+1} - a_n = 0  \).

En la siguiente recurrencia habría un error por dividir por cero.

En este caso \(  \sqrt{2}  \) no es calculable, pero puedes dar una condición a la computadora para saber donde terminar.   

02 Agosto, 2015, 02:41 am
Respuesta #9

Raúl Aparicio Bustillo

  • $$\Large \color{#9c57a6}\pi\,\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 3,113
  • Karma: +0/-3
  • Sexo: Masculino
Pero los números algebráicos son todos calculables,  o por lo menos es lo que dicen. He puesto como ejemplo la constante de chaintin porque no es recursiva, y qusiera saber cómo se da cuenta un ordenador que no lo es. Porque  si no es capaz de darse cuenta, entonce nuestra   mente no podría ser como un ordenador. \( \sqrt[ ]{2} \) se puede calcular a mano, el algoritmo está bien definido, otra  cosa es que no tengamos tiempo infinito para sacar los infinitos decimales. Por eso entiendo que nuestro cerebro       , de memoria limitada, no puede deducir todos los     números no recursivos, pero algunos sí. Lo de que hallaun algoritmo o no es para comparar nuestra mente con la de un ordenador es una simple comprobación de que nuestra mente es algo más que un ordenador (o quizás es un ordenador muy bien diseñado)

Gracias