A todos nos ha sucedido que al buscar información en la red sobre algún tema en particular, el buscador se adelanta y nos comienza a mostrar cosas que supuestamente deberían interesarnos. Pero, ¿cómo es que el sistema logra “adivinar” lo que a cada uno le interesa o logra llevarnos para donde él “quiere”? Obviamente no adivina; lo que ocurre es producto del trabajo de los algoritmos computacionales que se encargan de manejar toda la información que entregamos, casi sin darnos cuenta, al navegar por internet o al utilizar cualquier entorno digital en red.
Cada vez que empleamos estos recursos, dejamos una gran cantidad de datos (fotos, videos, comentarios, “likes”, etc. ), que se pueden convertir en información valiosa; algo que se conoce como “huella digital”. Éstas huellas proporcionan información actualizada sobre nuestros gustos, costumbres, preferencias, etc.
De aquí se puede extraer el insumo necesario para alimentar algoritmos que permiten encontrar patrones de conducta de los usuarios para luego poder predecir lo que harán en el futuro. Para las organizaciones o grupos que hacen uso de estas herramientas, la idea es utilizar los resultados que arrojan los algoritmos para tomar decisiones “convenientes” a sus propósitos. Obviamente que se puede hacer mal uso de nuestros datos que andan dando vueltas por ahí… nos consta que esto pasa.
Ahora vamos al origen. La palabra algoritmo proviene del matemático y astrónomo persa Abu Abdullah Muhammad Bin Musa (780-850 DC), quien tomó como seudónimo Al-Khowarizmi, por el lugar donde había nacido, el estado de Khowarizm, uno de los centros de saber y cultura de Asia Central en la Edad Media.
En términos simples, un algoritmo es una sucesión finita de pasos necesarios para la solución de un problema. El problema-desafío en el que estemos interesados podría ser: aprender a conducir un automóvil, cocinar un buen plato, contar con un mecanismo de alerta temprana cuando hay una intrusión en el sistema informático de un banco, etc. A diferencia de un algoritmo cualquiera, el algoritmo computacional es aquel que puede ser codificado utilizando un lenguaje de programación, de modo que las instrucciones puedan ser “entendidas” y ejecutadas correctamente por una máquina.
Ante tal magnitud de datos con los que se cuenta en la actualidad y la diversidad de fuentes de donde provienen, los algoritmos han tenido que adaptarse a una realidad cada vez más exigente. Ya no solo se le pide que resuelva un problema en un tiempo prudente, sino que los resultados de su aplicación también sean cada vez más acertados. Es así como en el último tiempo han surgido nuevos conceptos asociados al término, como: Algoritmo Evolutivo, Algoritmo Genético, Machine Learning, etc.
Por ejemplo, Machine Learning es una disciplina científica que crea sistemas que aprenden automáticamente. Aprender en este contexto quiere decir identificar patrones complejos utilizando cantidades enormes de datos. La máquina que realmente aprende es un algoritmo que revisa los datos y es capaz de predecir comportamientos futuros. Estos sistemas se mejoran de forma autónoma con el tiempo, sin intervención humana.