21 votos

Dado cualquier número computable, ¿hay algún algoritmo para decidir si es trascendental?

Dado cualquier número computable $a_c$, ¿hay algún algoritmo para decidir si es trascendental?

Definición de "número computable": Según Ming Li y Vitanyi, un número real $x=0.x_1x_2\ldots$ es semicomputable por abajo si el conjunto de racionales por debajo de $x$ es recursivamente enumerable. Un número $x$ es semicomputable por arriba si $x$ es semicomputable por abajo. Un número $x$ es computable (equivalentemente, recursivo) si es tanto semicomputable por abajo como por arriba. Creo que esto es equivalente a la definición de Turing.

3 votos

¿Qué quieres decir con computable?

1 votos

@Nilan, Según Ming Li y Vitanyi, un número real $x = 0.x_1x_2 \dots$ es semicalculable por debajo si el conjunto de racionales por debajo de $x$ es recursivamente enumerable. Un número $-x$ es semicalculable por encima si $x$ es semicalculable por debajo. Un número $x$ es calculable, equivalentemente, recursivo, si es tanto semicalculable por debajo como por encima. Creo que es equivalente a la definición de Turing.

9 votos

Un número real computable es simplemente un número que puede ser aproximado con cualquier precisión deseada por un programa que se garantiza que se detendrá.

33voto

Vincent Puntos 5027

No. Para cualquier $n$, define

$a_n = \begin{cases} \pi/2^r, & \text{si la máquina de Turing $n$ se detiene en $r$ pasos con la entrada $n$} \\ 0, & \text{si la máquina de Turing $n$ nunca se detiene con la entrada $n$} \end{cases} $

$a_n$ es computable; podemos aproximarla con la precisión deseada. Pero si pudieras determinar si $a_n$ es trascendental o no, habrías resuelto el Problema de la Parada.

1 votos

Entonces, ¿el conjunto de trascendentes computables es un conjunto c.e., y el conjunto de números algebraicos computables es algo así como un conjunto productivo? Esto significa que podemos dar una función computable que mapea de forma biyectiva números algebraicos computables a un conjunto productivo.

0 votos

@XL_at_China: No dije nada de esas cosas, y no veo cómo mi pequeño contraejemplo implica alguna de ellas.

1 votos

Para aclarar, ya que me costó un segundo: $a_n$ es trascendental si y solo si la Máquina de Turing $n$ se detiene, y $a_n$ es computable. Como el problema de la parada no se puede resolver, existe un $n$ para el cual no podemos demostrar que la Máquina de Turing se detiene, y por lo tanto un $a_n$ para el cual no podemos demostrar que es trascendental, pero que $a_n$ sigue siendo computable.

11voto

JoshL Puntos 290

Ten en cuenta que no estás preguntando si un número real en particular es computable, sino si el conjunto de números trascendentales es computable.

En general, si un conjunto de números reales es computable, entonces es un conjunto abierto. Esto se debe a que, dado un número real en el conjunto, tu algoritmo para computar el conjunto debe detenerse después de un número finito de pasos para decir que el número real está en el conjunto. Pero solo puedes determinar una cantidad finita de información sobre el número real en esa cantidad finita de pasos. El conjunto de otros números reales que concuerdan en esa cantidad finita de información es abierto, y también serán aceptados por tu algoritmo. Así que el conjunto de números aceptados es abierto.

Ahora, si puedes decidir si un número arbitrario está en un conjunto, también puedes decidir si un número arbitrario está fuera de del conjunto. Entonces, si un conjunto de números reales es computable, su complemento también lo es. Pero entonces su complemento también es abierto.

Entonces al final un conjunto de números reales que es computable debe ser cerrado y abierto. Solo existen dos conjuntos así en los reales: el conjunto vacío y el conjunto de todos los reales. Esos son los únicos conjuntos computables de números reales.

Este es un ejemplo de cómo la topología de un espacio afecta la computabilidad en ese espacio. Debido a que la recta real es conectada, cualquier subconjunto computable de la recta real tendría que ser clopen. Los únicos dos subconjuntos clopen de $\mathbb{R}$ son $\emptyset$ y $\mathbb{R}$.

Las cosas serían diferentes si miramos el espacio de Baire $\omega^\omega$. Este espacio tiene muchos conjuntos clopen. No todos son computables, pero al menos hay subconjuntos clopen del espacio de Baire que no son ni vacíos ni el espacio entero.


A veces la gente se preocupa por este tipo de prueba, y se preguntan sobre el problema similar en el que, en lugar de que les den un oráculo para el número real, les den un índice para un programa que calcula el número real. Piensan que tal vez este nuevo problema sea computable, ya que parece más débil. Pero, en la práctica, si un problema en particular no es computable cuando la entrada es dada como un oráculo, seguirá siendo no computable si la entrada es dada como un índice, siempre y cuando los otros "parámetros" del problema sean suficientemente efectivos.

La prueba dada por TonyK en otra respuesta muestra cómo hacer esto. El conjunto $T$ de trascendentales no es cerrado. En particular, $0 \not \in T$, pero $\pi/n$ está en $T$ para cada $n$, y $\lim_m \pi/n = 0$. Asumamos para una contradicción que $T$ fuera computable. Entonces podemos hacer un programa que haga lo siguiente:

Comenzar a enumerar una expansión decimal de $0$, y simultáneamente ejecutar el procedimiento de decisión para $T$ en mi propio índice. Si el procedimiento dice que mi número está en $T$, seguir enumerando $0$ para siempre. Si el procedimiento dice que mi número no está en $T', cambia a enumerar una expansión de $\pi/n$ para algún $n$ lo suficientemente grande como para que la expansión decimal finita que he enumerado hasta ahora sea un segmento inicial de la expansión decimal de $\pi/n$.

Esa cita proporciona un número real computable (usando el teorema de recursión de Kleene) y el procedimiento de decisión no puede dar la respuesta correcta para ese número real. Pero, debajo del capó, el algoritmo citado simplemente está aprovechando el hecho topológico de que los trascendentales no son cerrados, que es el verdadero obstáculo.

0 votos

Esto no es del todo correcto. No se nos da el número en forma de un oráculo de caja negra que nos dice un dígito a pedido, en lugar de eso podemos asumir que de hecho se nos proporciona un método para calcular esos dígitos y podemos inspeccionar el método. Si solo observamos que un oráculo siempre devuelve "$3$" como el dígito $n$-ésimo, no podemos concluir que el número sea $\frac13$, porque el oráculo podría dar una respuesta diferente más tarde; pero dado una máquina de Turing que se reduce a una función int getdigit(int n) { return 3; } podemos demostrar que el número es $\frac13$ (y tenemos información completa sobre el número)

0 votos

Carl, me has malentendido, la condición previa es que el número dado sea computable, por lo que lo que pido es un algoritmo que pueda dividir el conjunto en dos subconjuntos, uno es el conjunto de números trascendentales computables, otro es el conjunto de números algebraicos. Sé que no hay un algoritmo decidible para tal problema. Entonces, ¿un problema interesante es si el conjunto de números trascendentales computables puede ser 1-1 reducible a un conjunto creativo? o si el complemento del conjunto de números trascendentales computables, es decir, el conjunto de números algebraicos, puede ser 1-1 reducible a un conjunto productivo?

0 votos

Pero debo agradecerte por tu respuesta que tiene conocimiento de computabilidad.

4voto

MJD Puntos 37705

Esto es demasiado ambicioso. Ni siquiera hay un algoritmo que pueda decidir si un número computable dado es racional.

Tal vez quieras decir "Simplemente calcula la expansión decimal y ve si se repite." Pero eso no es un algoritmo; nunca se detiene con ninguna entrada.

Cuando tienes un número computable, en general solo tienes un programa informático para generar dígitos. Puedes generar cualquier número de dígitos finito. Pero ningún número finito de dígitos es suficiente para determinar si el número es racional o irracional.

Tal vez pienses que puedes averiguar si un programa produce una salida repetitiva sin ejecutarlo realmente. Pero no puedes.

0 votos

No, no puedes generar ningún número finito de dígitos. Por ejemplo, si no sabes si el número es mayor o menor que $1$, ni siquiera puedes calcular el primer dígito.

3 votos

@tonyk La pregunta dice que se nos da un número computable $a_c$. Lo único que se puede hacer con un número computable $a_c$ es, para un $N$ dado, calcular en tiempo finito el $N$-ésimo bit de $a_c$. No hay forma de convertir esto en un algoritmo para decidir si $a_c>1$, pero eso no cambia el hecho de que se puede (por definición) calcular cualquier cantidad finita de dígitos de $a_c$. Contrario a tu afirmación, ciertamente puedo generar el primer dígito de cualquier número computable. Eso puede ser suficiente para decidir $a_c>1$, pero en general no, ya que el primer dígito podría ser $1.

3 votos

"Lo único que puedes hacer con un número computable $a_c$ es, para un dado $N$, calcular en tiempo finito el $N$-ésimo bit de $a_c." No, eso está mal. Dado $\epsilon > 0$, puedes calcular un número racional $q$ tal que $|q-a_c| < \epsilon$; pero esto no te permite calcular algún bit específico de $a_c". Ver mi primer comentario.

4voto

Mike Puntos 1113

Para añadir una pequeña capa de énfasis a lo que se ha escrito hasta ahora: dices 'dado un número computable $a_c$', pero — a diferencia del caso de usar enteros como entrada — en realidad no se te puede dar un número en sí; en cambio, lo que se te da como entrada tiene que ser visto como (equivalente a) un programa para computar el número. Visto bajo esta luz, no es sorprendente que entre en juego el teorema de Rice.

Por el contrario, en un modelo de computación donde los números reales (y enteros) son 'atómicos' y las operaciones atómicas son por ejemplo la suma/resta, multiplicación/división, y comparación, entonces el conjunto de números algebraicos es c.e.; simplemente se puede entrelazar la evaluación de todos los posibles polinomios con valores enteros para probar si el número en cuestión es una raíz. (Creo que en este modelo la trascendentalidad no es computable, y de hecho que es equivalente a $\Pi_1^0$-completo, pero no me lo tomes como seguro).

0 votos

Pero si restringimos la entrada a números computables, ¿es el conjunto de números algebraicos c.e? ¿Y la trascendencia sigue siendo no computable?

0 votos

@XL_at_China Mi punto es que necesitas definir exactamente cuál es tu entrada - 'número computable' no es una entrada en sí misma, a menos que estés hablando de un modelo donde los números reales son atómicos.

0voto

jmans Puntos 3018

Ciertamente no hay ningún algoritmo conocido pues actualmente se desconoce si $\pi+e$ es trascendental, pero bajo cualquier definición razonable que puedas dar de constructibilidad, creo que este número será constructible.

Teniendo en cuenta la dificultad involucrada en establecer la trascendencia de los números, es altamente improbable que exista algún algoritmo en general. Cualquier respuesta más detallada requerirá que primero definas 'constructible'.

0 votos

Curiosamente, en realidad no importa la dificultad de probar la trascendencia o no trascendencia; solo la conectividad de la recta real evita que cualquier conjunto no trivial sea computable.

0 votos

Como demuestran algunas de las otras respuestas, no es solo "altamente improbable que exista un algoritmo así", sino que se sabe que no existe tal algoritmo, como una simple consecuencia de la indecidibilidad del problema de detención.

0 votos

Solo para aclarar que di esta respuesta antes de que el OP aclarara la noción de computable. Por lo tanto, el tono ligeramente reservado en la respuesta.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X