Aunque no ha sido la palabra del año, porque la pandemia lo anula todo, cada vez usamos más la palabra “algoritmo” en nuestros trabajos, en nuestro ocio, en nuestras vidas. Los algoritmos parece que controlan lo que vemos, lo que leemos, lo que compramos, hasta los amigos que tenemos. Los algoritmos son omnipresentes y omnipotentes. La palabra algoritmo es una firme candidata a ser la palabra del siglo XXI, pero ¿sabemos qué es un algoritmo?

Definición y origen de la palabra

La Real Academia de la Lengua Española (RAE) define algoritmo en su primera acepción como “conjunto ordenado y finito de operaciones que permite hallar la solución de un problema”. Su origen, según la propia RAE, quizás viene del latín tardío algobarismus, y este a su vez del árabe clásico ḥisābu lḡubār, que significa “cálculo mediante cifras arábigas”.

Imagen de Compendio de cálculo por compleción y comparación de Al-Juarismi (863). Wikimedia Commons

Otras fuentes, sin embargo, apuntan a que su origen proviene de la latinización del nombre de Al-Juarismi, matemático, astrónomo y geógrafo persa, considerado uno de los grandes matemáticos de la historia, que presentó la primera solución sistemática de ecuaciones lineales y cuadráticas.

Publicidad

Si reflexionamos sobre esta definición, podemos concluir que continuamente aplicamos algoritmos en nuestro día a día.

Y así es. Por poner algunos ejemplos, seguro que alguna vez hemos montado, o ayudado a montar, un mueble de esa conocida empresa sueca a partir de un conjunto más o menos largo, pero finito, de instrucciones. A partir de un montón de piezas metidas en cajas rectangulares podemos tener una cómoda, un armario o un sofá. Seguro que alguna vez también hemos sorprendido a alguien con un rico postre creado a partir de una lista de ingredientes y siguiendo la secuencia ordenada de pasos que se incluyen en la receta.

Si bien estos ejemplos encajan en la definición, la palabra algoritmo se suele asociar más a las matemáticas y a la informática. Veamos brevemente cómo son los algoritmos en estas dos disciplinas.

Publicidad

Algoritmos en matemáticas

Aunque es probable que no lo recordemos, la primera vez que nos enfrentamos a los algoritmos en matemáticas es en educación primaria. En esos cursos, los docentes enseñan algo tan básico y común en la vida como sumar, restar, multiplicar y dividir. En realidad, hacer estas operaciones es aplicar los algoritmos que nos permiten, a partir de unos números de entrada, obtener un resultado de salida. En la resta, por ejemplo, a partir del minuendo y el sustraendo, aplicando una serie de pasos, obtenemos la diferencia entre ambos valores, que es lo que llamamos resta.

En general, dado un problema matemático con solución, sabemos que no tiene por qué existir un único conjunto de pasos para resolverlo, sino que pueden existir varias formas diferentes de hacerlo, es decir, varios algoritmos.

Publicidad

Siguiendo con el ejemplo de la resta, cuando tienen llevadas, podemos aplicar varios algoritmos para llegar a la solución. Para los que fuimos a EGB, solía ser el algoritmo por compensación (más conocido como “me llevo una”) y para los más jóvenes, el algoritmo por agrupamiento. A veces esta diversidad de algoritmos lleva a los padres a desesperarse al intentar ayudar a sus hijos con los deberes del colegio, pero la realidad es que lo importante es que cada uno aplique el algoritmo que mejor se adapte a su forma de razonar.

Por supuesto, a medida que aumentan nuestros conocimientos en matemáticas vamos aprendiendo algoritmos más elaborados que proporcionan soluciones a problemas más complejos.

Algoritmos en informática

Los algoritmos en programación son básicos. Un programa informático no es más que una secuencia de instrucciones para que un ordenador realice una tarea determinada, a partir de unos valores de entrada. Normalmente, esta tarea sirve para resolver un problema. Por lo tanto, lo que estamos haciendo es que el ordenador implemente un algoritmo para que, a partir de un número finito de instrucciones, obtenga una solución. Podemos, por lo tanto, conseguir que un ordenador reste dos números, programando alguno de los algoritmos que nos permiten realizar una resta.

Aprendizaje máquina

En general, los algoritmos se pueden clasificar según el tipo de problemas que solucionan. Los hay de búsqueda, de ordenación, de compresión de datos, de gráficos, criptográficos y de aprendizaje máquina, entre otros.

Publicidad

Los de aprendizaje máquina o machine learning son los que en los últimos años han captado más atención. Estos algoritmos tienen la característica particular de ser capaces de aprender a partir de datos. Así, realizan predicciones que nos permiten tomar decisiones de forma automática, sin que estén establecidas o decididas a priori.

El término machine learning se acuñó ya en el año 1959. Sin embargo, lo que ha provocado que en los últimos años estos algoritmos estén en auge es que ahora es cuando tenemos datos suficientes que nos permiten entrenarlos para poder ser empleados con resultados significativos.

Ya existen algoritmos que nos dan recomendaciones sobre qué ver, qué leer, qué comprar, a qué amigos seguir en las redes sociales en base al contenido que solemos consumir y a los gustos de personas que consumen contenidos similares a los nuestros. Aunque suelen acertar, reforzando de esta forma el propio funcionamiento del algoritmo, no olvidemos que pueden provocar el conocido efecto de burbujas informativas o cámaras de eco.

Si bien parece que estos algoritmos controlan nuestra vida y que pueden resultar peligrosos por los sesgos que se han demostrado que tienen, no olvidemos que están programados, entrenados y validados por personas y, por lo tanto, somos las personas las que conscientemente tenemos que saber qué esperar de ellos, qué decisiones les dejamos tomar por nosotros, regulando su desarrollo para que respeten criterios de equidad, sin ser discriminatorios.

Quizás el futuro nos depare cosas inimaginables a día de hoy, pero por ahora no debemos temer a los algoritmos, sino que debemos darles el valor que tienen para ayudarnos a solventar problemas complejos. Mucho más cuando pueden ser entrenados y ejecutados en máquinas con una gran capacidad de computación.