Algoritmo

El concepto de algoritmo, que es asimilable al de un conjunto de instrucciones que puedan seguirse sin ningún tipo de ambigüedad, se remonta a la Matemática de la antigua Grecia, con el algoritmo de Euclides. Actualmente con la implantación de los ordenadores surge el concepto de máquina logarítmica, es decir, de una máquina capaz de procesar por si misma todos los pasos que conlleva un logaritmo para la resolución de un problema. Hoy en día la creación de logaritmos es un área de intensa investigación, en la que se están tomando como modelos muchos de los procesos que se dan en la naturaleza, ya que los seres vivos actúan de forma automática según programas genéticos.

Instrucciones y recetas.

Para lavar un cesto que contiene ropa del tipo blusas, camisas, batas de trabajo (tejidos sintéticos):

1. introduzca la ropa en el bombo de lavado y ciérrelo
2. Ponga jabón de lavar en el cajetín
3. Gire el indicador de temperatura hasta el número 40º
4. Ajuste el botón de programa al Nº 3 (prelavado-lavado-enfriamiento-4 enjuagues y Parada de enjuague)
5. Cuando la máquina se haya parado y se haya apagado la luz indicadora, saque la ropa limpia de la lavadora.

Esto es un algoritmo.

Una receta de cocina que sea clara (sin ocultar los detalles más importantes) y escrita paso a paso hubiera servido también como ejemplo de algoritmo, así como también las instrucciones que acompañan a cualquier aparato de video y que nos dicen todo lo que tenemos que hacer para programar la grabación de una película que nos interesa ver y que empieza a la cuatro de la madrugada. La poca afición que la gente muestra, en general, por los algoritmos queda patente en la infrautilización que suele hacerse de la mayoría de los electrodomésticos. Ingenieros técnicos y programadores se rompen la cabeza para proporcionar prestaciones a una lavadora de la que la mayoría de la gente sólo utiliza dos, o lava con agua caliente o con agua fría. El tanto por ciento de las personas que saben programar un video también es sorprendentemente bajo. Sin embargo, si no existieran los algoritmos nuestra vida cotidiana se convertiría en un auténtico infierno.

Algoritmos

¿Qué diferencia hay entre un algoritmo y un conjunto de instrucciones para realizar una tarea? En principio ninguna. Cuando para sumar dos números como 748 y 461 los dispone de esta forma

 y hace lo que le enseñaron en el colegio, no está más que poniendo en práctica el algoritmo de la suma, es decir, realizando una serie de operaciones mecánicas sin tener que pensar si son o no teóricamente correctas. Realizar un algoritmo no requiere de ninguna inteligencia, en todo caso de cierta destreza, ya que toda la inteligencia necesaria para realizar la operación está contenida en el algoritmo.

Un algoritmo es, pues, una secuencia finita de instrucciones que deben ser realizables, que no plantean ningún tipo de ambigüedad y que nos permiten resolver, de manera genérica, algún tipo de problema. Esta última condición nos asegura, por ejemplo, que el algoritmo que utilizamos para la suma es independiente de los números que tengamos que sumar.
No ponemos otros ejemplos, como pueden ser la división o la extracción de raíces cuadradas, porque seguramente casi nadie se acuerda de cómo se llevan a cabo sus correspondientes algoritmos. Y la mayoría de las personas olvidamos estas destrezas porque existen unos maravillosos dispositivos llamados calculadoras que lo hacen mejor y más rápidamente. Y es que el objetivo de los algoritmos es el evitarnos trabajos rutinarios que pueden perfectamente ser realizados por una máquina. Así como un vehículo nos evita tener que caminar ciertas distancias, las máquinas nos evitan tener que hacer cálculos engorrosos. Pero todo tiene siempre alguna desventaja. De la misma forma que nos vemos obligados a emplear cierto tiempo en hacer ejercicio físico para que nuestros acomodados músculos no se anquilosen, hay quien opina que en un futuro no muy lejano tendremos que hacer una especie de “footing intelectual”, a base de sumas, multiplicaciones y raíces cuadradas, para que no se nos anquilosen las neuronas.

Máquinas algorítmicas

El algoritmo de prelavado, lavado y centrifugado de una lavadora doméstica y el de las instrucciones de vuelo de una lanzadera espacial se diferencian básicamente en dos cosas: en la complejidad y en el dispositivo mecánico capaz de llevarlo a cabo. Ambas cosas guardan una estrecha relación. Un algoritmo puede ser muy eficaz cuando lo resuelve una computadora, pero imposible si se pretende hacerlo con papel y lápiz. El fracasado intento de Babagge (1791-1871), el matemático inglés que diseñó la primera máquina calculadora que realmente merecía ese nombre, es un dramático ejemplo del desfase entre algoritmo y dispositivo; llegó a tener el primero, pero no la tecnología adecuada para construir la máquina.

A un dispositivo capaz de materializar un algoritmo se le puede dar el nombre genérico de “máquina algorítmica”. Entre todas las posibles, la máquina por excelencia sería el ordenador. En informática los algoritmos se materializan como programas, es decir, en un lenguaje que pueda entender el ordenador (de hecho el único que puede entender). De todas formas hay que insistir en no olvidar que debe mantenerse siempre una cierta solución de compromiso entre algoritmo y máquina algorítmica. Aunque la optimización de algoritmos alcanza logros sorprendentes, los ordenadores no lo pueden todo.

Producir una lista de números aleatorios en un ordenador, es decir escogidos al azar, requiere de complejos algoritmos y es una tarea imprescindible para muchas aplicaciones importantes, entre ellas la generación de claves criptográficas. Curiosamente, Paul Erdös (1913-1996) el matemático húngaro que estaba considerado como el gran gurú de este tipo de algoritmos, en su vida había tocado un ordenador.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *