Aquiles, la Tortuga y el Dilema de cierto Zenón…

¿Qué ocurriría si un gran guerrero y una pequeña tortuga tuvieran que disputar una carrera? Según Zenón de Elea, el matemático y filósofo griego del siglo V a. C., el guerrero nunca alcanzaría a la tortuga — al menos según la lógica de su famosa paradoja. Sin embargo, el sentido común nos dice lo contrario. Así es como las matemáticas resolvieron el dilema tras casi dos mil años de debate.

La Paradoja

«El valiente Aquiles y la pequeña tortuga deciden disputar una carrera. Aquiles, confiado en su victoria, decide concederle a la tortuga una generosa ventaja. ¿Cómo podría el gran guerrero perder ante el pequeño y lento animal? La tortuga parte y Aquiles espera. Solo después de un tiempo el valiente Aquiles comienza a perseguirla. Aquiles, cada minuto, reduce a la mitad la distancia que lo separa de la tortuga… ¿logrará el héroe alcanzar a su rival alguna vez?»

Si le hubieras hecho esta pregunta a Zenón, habría respondido tranquilamente que no.

El razonamiento es el siguiente: imagina la distancia entre Aquiles y la tortuga como un número entero que divides entre dos en cada intervalo. El resultado, por pequeño que sea, nunca será igual a cero — siempre será un número decimal más pequeño, hasta el infinito.

Dónde Se Equivocó Zenón

Zenón concluyó que la suma de cantidades infinitas da un valor infinito:

1/2 + 1/4 + 1/8 + 1/16 + … = ¿infinito?

El error reside precisamente aquí. Zenón creía que la suma de cantidades infinitas debe dar necesariamente un resultado infinito. Como demuestra el cálculo, no es así. Dado x = 1/2:

(1-x)(x¹ + x² + x³ + …) = x − x^(n+1)

Por lo tanto: x¹ + x² + x³ + … = (x − x^(n+1)) / (1−x)

Si x = 1/2, la suma converge a: (1/2) / (1/2) = 1

El tiempo que tarda Aquiles es, por tanto, finito. Podemos tratarlo como un simple problema de cinemática.

La Solución Numérica

  • Distancia inicial Aquiles–Tortuga: 1000 metros
  • Velocidad de Aquiles: 10 m/s
  • Velocidad de la tortuga: 1 m/s

La distancia recorrida por Aquiles (10t) debe ser igual a la ventaja inicial más la distancia recorrida por la tortuga:

10t = 1000 + t → 9t = 1000 → t = 111,1 segundos

El bueno de Aquiles alcanza a la tortuga en poco menos de dos minutos. Zenón, después de dos mil años, puede por fin dormir tranquilo.

La Implementación en C#: La Paradoja en un Ordenador

El siguiente programa simula la carrera mediante un algoritmo recursivo en C#. El aspecto interesante es que ninguna máquina real puede representar la paradoja de Zenón de forma literal: la distancia sigue reduciéndose, pero en un momento dado la variable alcanza el límite de precisión del tipo de dato… y Aquiles atrapa a la tortuga. Prueba a cambiar el tipo de la variable de distancia (de decimal a double o float) y observa cómo cambia el comportamiento.

using System;
namespace ZenoInCSharp
{
    class Class1
    {
        [STAThread]
        static void Main(string[] args)
        {
            decimal x = 1000;
            Console.WriteLine("Achilles and the Tortoise: an implementation of Zeno's Paradox.n");
            Zeno(ref x);
        }

        static public int min = 0;

        static void Zeno(ref decimal x)
        {
            if (x > 0)
            {
                Console.WriteLine("Achilles is " + x + " metres from the tortoise after " + min + " minutes.");
                Console.WriteLine("(Press Enter)");
                Console.ReadLine();
                x = x / 2;
                min++;
                Zeno(ref x);
            }
            else
            {
                Console.WriteLine("Achilles catches the tortoise in " + min + " minutes.");
                Console.WriteLine("We have a FINITE amount of memory to store the distance.");
                Console.WriteLine("Otherwise, by virtue of the paradox, the tortoise would win the race.");
                Console.ReadLine();
            }
        }
    }
}

Artículo publicado originalmente en itvirtualcommunity.net (2004), reescrito y actualizado en 2012.