sábado, 7 de abril de 2018

¿Algo-de-ritmo?

 ¿Qué es...?
Algoritmo (*) es la palabra tecnológica de moda: los algoritmos hacen esto y aquello, conocen nuestras pasiones más íntimas, van a copar nuestros trabajos, se disponen a destruir la sociedad y el mundo... En el lenguaje cotidiano se hace referencia a ellos como si fueran genios malvados, demiurgos traviesos o el espinazo de megacorporaciones sin escrúpulos. En realidad, un algoritmo es algo más sencillo, un mecanismo ciego y sin voluntad, pero que, como veremos, sí está cambiando el mundo de forma definitiva y merece la máxima atención, no se nos vaya a ir el asunto de las manos.
¿Qué es un algoritmo? Simplemente una serie de instrucciones sencillas que se llevan a cabo para solventar un problema. La regla de multiplicar que aprendimos en el colegio y que permite sacar el producto de dos números de varias cifras, con papel y lápiz, es un sencillo algoritmo. Pero podemos dar una definición algo más rigurosa:
"Conjunto de reglas que, aplicada sistemáticamente a unos datos de entrada apropiados, resuelven un problema en un numero finito de pasos elementales", según enuncia el profesor de la Facultad de Informática de la Universidad Complutense Ricardo Peña Marí, autor a la sazón del libro De Euclides a Java, la historia de los algoritmos y de los lenguajes de programación (Nívola). "Es importante notar que el algoritmo tiene que ser finito y que ejecuta las instrucciones de manera sistemática, es decir, que es ciego ante lo que está haciendo, y que los pasos con los que opera son elementales", comenta el profesor.
Así, un algoritmo podría ser una receta de cocina o las instrucciones para fabricar un avión de papel a partir de un folio. Los algoritmos tienen una entrada (input) y una salida (output), entre ambas están las instrucciones: la entrada podría ser la carne picada, el tomate, las láminas de pasta y la salida la lasaña perfectamente gratinada. "Aunque en estas tareas muchas veces influye la habilidad de las personas que las realizan: no es lo mismo una receta de cocina preparada por un gran chef, que incluso puede mejorarla, que por un principiante", matiza Miguel Toro, catedrático del Departamento de Lenguajes y Sistemas Informáticos de la Universidad de Sevilla. En realidad, los algoritmos recogen operaciones tan sencillas que pueden ser realizadas con éxito por cualquiera. Incluso por las máquinas. He aquí el quid de la cuestión. 
Porque aunque los algoritmos existen por lo menos desde los tiempos de los babilonios, con la llegada de las computadoras tomaron mucho más protagonismo. La unión de máquinas y algoritmos es lo que está cambiando el mundo. El matemático británico Alan Turing, famoso por haber reventado la máquina Enigma de mensajes cifrados de los nazis y por haberse suicidado mordiendo una manzana envenenada tras sufrir una dura persecución debido a su condición homosexual, fue de los primeros que relacionó algoritmo y computadoras. De hecho, fue de los primeros que imaginó una computadora tal y como los conocemos. Incluso llegó a pensar que las máquinas podrían pensar, y hasta escribir poemas de amor.
La Máquina de Turing no es una máquina que exista en el mundo físico, sino un constructo mental. Consiste en una cinta infinita sobre la que se van haciendo operaciones repetitivas hasta dar soluciones, viene a ser una definición informática del algoritmo y una computadora, el primero, conceptualizado: "En esencia, es el precursor de las computadoras: tiene una memoria, unas instrucciones (un programa), unas operaciones elementales, una entrada y una salida", explica el profesor Peña. Lo más interesante es que es una máquina universal, que puede llevar a cabo cualquier programa que se le ordene. Dentro de los problemas del mundo hay de dos tipos: los que puede resolver una Máquina de Turing (llamados computables) y los que no (los no computables), igual que vemos en el mundo real tareas que pueden realizar las máquinas (cada vez más) y otras que sólo pueden realizar los humanos. Todos las computadoras, tablets, smartphones, etcétera, que conocemos son máquinas de Turing.
 "En definitiva, el trabajo de los programadores informáticos consiste en traducir los problemas del mundo a un lenguaje que una máquina pueda entender", afirma Peña. Es decir, en algoritmos que la máquina maneje: para ello hay que picar realidad en pequeños problemas en sucesión y poner a la computadora a la tarea. Un programa de computadora es un algoritmo escrito en un lenguaje de programación que al final acaba convertido en miles de sencillas operaciones que se realizan con corrientes eléctricas en el procesador, corrientes representadas por los famosos unos y ceros, los dígitos que caracterizan lo digital. Cuando jugamos a un videojuego en tres dimensiones, o miramos Facebook, o utilizamos un procesador de textos, en realidad la máquina está realizando numerosas operaciones con pequeñas corrientes eléctricas, sin saber que de todo eso sale Lara Croft con dos pistolas. La clave es que son muchas operaciones a la vez: un ordenador de 4 gigahertzios puede hacer 4, 000 millones operaciones en solo un segundo. En esencia, esto son los algoritmos y esto es la informática.
***************************************************************
 (*) La palabra "algoritmo" proviene del árabe al-Khwarizmi, que significa 'oriundo de la ciudad de Khwarazm' (en la actualidad: Khiva, moderna urbe en Uzbekistán) que el matemático de Bagdad, del siglo IX, autor de tratados sobre álgebra, incluía en su nombre: Abu Ja'far Muhammad ibn Musa al-Khwarizmi

No hay comentarios: