Rss Feed
  1. © Fernando Cuartero
    Especial para Razón Atea

    En noviembre de 1936, Alan Turing publicó el artículo “On computable numbers, with an application to the Entscheidungsproblem” en la revista de la Sociedad Matemática de Londres. En este artículo se presentan dos conceptos cruciales de la Teoría de la Informática, la Máquina de Turing y el Problema de Parada (Halting Problem).
    En su versión original, Turing planteaba la cuestión de la existencia de un número natural x, tal que, para todo número natural y, la Máquina de Turing número x podría predecir si la Máquina de Turing número y pararía tomando como entrada la cinta vacía. La esencia de este problema, trasladada a un leguaje más sencillo, y puesto que una Máquina de Turing es un algoritmo, que, en definitiva, es un programa informático; puede ser descrita como la pregunta de si es posible predecir con antelación y por análisis de su código, si un algoritmo, o un programa informático parará, o continuará su ejecución indefinidamente.
    La idea subyacente en el problema analizado por Turing, en mi humilde opinión, y probablemente equivocada, puede ser extrapolada para preguntarnos por la posible existencia de un ser con la cualidad de la «omnipotencia», y es lo que pretendo plasmar en las siguientes líneas.
    Es cierto que en la Biblia no aparece ninguna referencia a la cualidad de «omnipotencia», y tampoco parece muy claro que significa ese concepto. Mis conocimientos de teología son muy limitados o nulos, pues aunque, en principio, se afirma la existencia de un ser Todopoderoso, es decir, que todo lo puede; los teólogos rebajan esta capacidad sustancialmente. Por ejemplo, Dios no puede mentir, Dios no puede cometer pecados, etc. Comienzan, pues, las limitaciones a la omnipotencia divina, rebajando esta cualidad a afirmar que Dios puede hacer todo aquello que no vaya contra su carácter o algo así. Bueno, podemos aceptar eso, parece razonable; pero continúan las limitaciones, por ejemplo, parece que Dios tampoco puede crear un círculo cuadrado, y tampoco crear una roca tan pesada que él no pueda levantar. Tampoco esto puede, y las razones son que Dios no puede cometer contradicciones ni crear absurdos.
    Particularmente, siempre me ha parecido poco honesto intelectualmente el ir proponiendo soluciones ad hoc conforme van apareciendo limitaciones a la omnipotencia de Dios. No obstante, debemos admitir que cada uno puede definir la omnipotencia como quiera, incluso, si al final queda reducida a que la misma simplemente le permite hacer nacer a su hijo de una virgen, por supuesto, siempre que nadie lo pueda analizar, o a que puede hacer resucitar de la muerte a su hijo al tercer día de morir, también en ausencia de testigos e incluso aunque esos tres días queden reducidos a poco más de 30 horas, pues la omnipotencia de Dios sí que le permite crear días de 10 horas. Siguiendo en esa línea, y con una adecuada definición, dicha omnipotencia podría ser perfectamente alcanzada por los bajitos y algo rellenos, como el autor de estas líneas. Como si no bastase definir a un dios, cualquier dios, como «muy poderoso», sino que debe ser «todopoderoso», aunque sea necesario rebajar el concepto, con el consabido abuso de las hipérboles en los calificativos para describir a un Dios, Todopoderoso, Omnisciente, Altísimo (por cierto, ésta siempre me ha chocado, ¿alguien sabe cuánto mide?), etc.
    En definitiva, ya que la omnipotencia de Dios queda reducida sensiblemente, pidámosle algo bastante terrenal y mundano, como experimento para ver hasta donde puede llegar esta omnipotencia divina, y si aún merece seguir recibiendo tal calificativo. Por ejemplo, podríamos pedirle que le echara una mano a Turing.
    El experimento propuesto será el siguiente. Todos sabemos que las computadoras son máquinas infernales, creadas por el mismo demonio para confundir a los hombres de buena voluntad y aumentar, en la medida de lo posible, todos los males de este mundo. Prueba de ello lo tenemos en la maldita habilidad que tienen las mismas para quedarse en un estado catatónico, que en jerga informática se denomina «ordenador colgado». En ese estado, la máquina es absolutamente incapaz de responder a ningún estímulo exterior, la pantalla se bloquea, el teclado no responde, el ratón está en su madriguera, etc. La única solución es apagar la alimentación eléctrica. Además esto suele ocurrir cuando llevamos horas trabajando en (pausa para grabar) el informe trascendental para nuestro futuro profesional que debemos presentar antes de media hora, y está casi terminado pero sin grabar nada.
    Dudo que los santos Agustín y Tomás de Aquino hubiesen aceptado en este Dios la cualidad de bondad infinita, de haber sabido que permitiría en un futuro la existencia de estos engendros del infierno, y dudo también que el mismísimo Leibniz aceptase que es el mejor de los mundos posibles aquel en que se permiten tamañas barbaridades.
    La situación descrita suele alcanzarse cuando el programa en ejecución, normalmente por error, alcanza un estado que se repite indefinidamente sin que sea posible salir de él. Por ejemplo,

    I = 0;
    Mientras I < i =" I">


    Es un programa sencillo, bien estructurado y que para tras diez ejecuciones de un bucle. Pero es fácil cometer un error, y escribir

    I = 0;
    Mientras 1 < i =" I">


    Confundir el símbolo 1 con el símbolo I no es difícil, y el resultado es que 1 siempre es menor que 10, de donde el programa al alcanzar esta situación nunca re recuperará. En ocasiones puede terminar con un error, cuando el rango de números se supera, pero en otras, ni aún así termina, y podría no haber más remedio que un reinicio de la máquina, para la recuperación.
    Por supuesto los culpables de esta situación no podían ser otros que los informáticos, una raza descastada ruin, y malvada, gentes de baja cualidad, y generalmente con su alma vendida al demonio, incapaces de hacer el bien y de contribuir a la felicidad y bienestar de la especie humana para contrariar los designios del señor.
    Como informático renegado, y para volver al camino del señor y a la senda del bien, me planteé deshacer todo el mal que los informáticos propagan por el mundo. Para ello, ideé la realización de un programa informático con un funcionamiento bastante simple. Este programa, instalado en el disco duro de un ordenador, analizaría cualquier otro programa para garantizar que funcionaría correctamente y no se quedaría colgado.
    Tras mucho trabajo, me confesé incapaz de realizar ese esfuerzo, quizá tantos años de propagar el mal me habían debilitado para la tarea, o quizá, con los años de inactividad, mi habilidad se había resentido. Oré por tanto con fervor, oré por la salvación de la Tierra, oré por la regeneración de los informáticos, oré por el bienestar de la humanidad; y Dios, en su bondad, me escuchó. Dios me hizo gala de un Don y me ofreció Su Programa. Un programa informático que llamaré P, y que instalé sin dudar en mi disco duro. Este programa funcionaba como he indicado, analizaba cualquier otro programa grabado en el disco, llamémosle Q, y en un sencillo fichero localizado en el escritorio me dejaba su divina respuesta, un «SÍ» con el que indicaba que el programa tenía una posibilidad de fallar, en alguna posible condición de su ejecución, y quedarse colgado, o bien, mediante un «NO», indicaba que el programa no fallaba, tenía un comportamiento correcto, y tras un tiempo de ejecución, siempre terminaría, en cualesquiera que fuesen las circunstancias.
    Debo reconocer que, en un asomo de duda, antes de firmar el contrato de aceptación como usuario final, le pedí una comprobación ejecutando P con entrada el propio P, la respuesta «NO» me tranquilizó; aunque era innecesaria, pues ¿quién podía dudar de una garantía divina por toda la eternidad?
    Lo instalé, y probé, con Windows XP, respuesta «SÍ», con Word versión X.X, respuesta «SÍ», con Mozilla, respuesta «SÍ», con diversos programas de tipo «Hola mundo», obteniendo respuesta «NO». Todo concordaba, el funcionamiento era perfecto, como no podía ser de otra manera en un programa realizado por Dios. Por supuesto, admitiendo que se introduzcan todos los datos, claro; mientras un programa espera unos datos, que no le son introducidos, es claro que no puede continuar. Además, esto puede hacerse, pues al fin y al cabo, un ordenador tiene una memoria finita, y los posibles estados en que se ejecuta el programa, realizado por Dios, también son finitos. Por supuesto, la cantidad puede ser grande, pero el tiempo necesario es una minucia para Dios, y aunque al final nos fuese inútil por el tiempo de respuesta, eso es una cuestión que en estos momentos no hace al caso, sino que es posible hacerlo.
    Sólo faltaba generalizarlo, y obligar a todo informático a que, antes de que licenciara un programa, me lo enviara para su comprobación, y que sólo se distribuyeran programas que diesen «NO». Bueno, para extender más los beneficios podría distribuir las copias del programa, pero tampoco hay que desdeñar los beneficios de un monopolio.
    Pero entonces ocurrió la catástrofe. Antes de comenzar a explotarlo en serie, se me ocurrió realizar el siguiente experimento. Creé un programa que llamaré R y lo grabé en mi disco duro para examinarlo. El programa era sencillo y entraba dentro de las habilidades que aún mantenía, y en esencia, hacía lo siguiente:


    Programa R
    1. Ejecutar el programa P tomando como entrada el programa R, grabado en el disco duro.
    2. Si en el fichero de salida aparece un NO entonces entrar en un bucle infinito.
    3. Si en el fichero de salida aparece un SÍ entonces finalizar.


    Lo curioso es que, antes de ejecutar este programa, y para asegurarme, una vez grabado en el disco duro procedí a analizarlo con el programa P. El programa, con funcionamiento garantizado por toda la eternidad falló, y no dio ninguna respuesta. Se quedó colgado. ¿Qué chapuza me había dado Dios? ¿Qué diablos había ocurrido? Un programa garantizado por toda la eternidad, qué indignante.
    Por supuesto, busqué el número de atención al cliente de la Factoría de Software del Cielo. Exigí hablar con el mismísimo Dios en persona, que, debo reconocerlo, me trató con mucha amabilidad; me confesó que era un impostor, y que le perdonase pues lo de su omnipotencia era una vulgar invención, pero era muy difícil estar a la altura de las circunstancias para atender al mercado. Por supuesto que le perdoné, como informático sujeto siempre a las prisas entendí su situación, y nos fuimos de copas a adorar a Dionisios, el único Dios que en esas circunstancias está siempre a tu lado.

  2. 196 comentarios: