Sabemos que Facebook, Google y Amazon tienen algoritmos que nos brindan actualizaciones, resultados de búsqueda y recomendaciones de productos, pero ¿qué significa eso realmente? ¿Qué es un algoritmo? ¿Puedes escribir uno? ¿Cómo se vería si lo hiciera? Con tantas partes de nuestra vida diaria en funcionamiento, es importante tener una idea básica de lo que está sucediendo bajo el capó, y no es tan intimidante como parece a menudo.
Definición informal: los algoritmos son solo recetas
Más básico, un algoritmo es simplemente un conjunto de pasos bien definidos que puede seguir, generalmente tomando algunas entradas y produciendo un conjunto diferente de salidas. Una receta de magdalenas puede ser un algoritmo. Lo mismo ocurre con las instrucciones para llegar a la casa de un amigo, leer una pieza musical o buscar una palabra en un diccionario. Raymond Queneau incluso imprimió un libro de diez sonetos cuyos versos se pueden mezclar y combinar perfectamente para crear 100.000.000.000 de poemas originales. La forma en que se implementan estos algoritmos varía ampliamente, pero no es necesario conocer lenguajes de programación para comprender la lógica básica detrás de ellos. Por ejemplo, el siguiente es un algoritmo para proporcionar instrucciones sencillas.
- Una vez que haya atravesado la puerta, gire a la derecha.
- Tome la carretera hacia Market Street
- Cuando llegue a Market Street, gire a la derecha.
- Camine recto hasta que vea un edificio de ladrillos.
- Entra por la puerta principal.
Este es un algoritmo muy simple que usa muchas entradas que las personas pueden procesar fácilmente; ya conocemos el paseo, las calles, los materiales, la entrada y todo lo demás. Si creamos un algoritmo direccional para un robot, debería ser mucho más largo y específico, lo que hace que muchos algoritmos sean tan confusos para los humanos.
Más formal: los algoritmos son fórmulas claras e inequívocas
Un algoritmo que probablemente use todos los días es el algoritmo de PageRank de Google, que analiza cientos de factores de una página web, lo ejecuta a través de su fórmula y le da una puntuación. Los resultados de búsqueda que ve en respuesta a su término de búsqueda son un resultado directo de esa puntuación. Funciona muy bien porque sigue un conjunto claro de reglas que le dicen qué buscar, qué ignorar y qué hacer con la información que encuentra.
Para visualizar un proceso de búsqueda muy simple, aquí hay un algoritmo de búsqueda lineal que encuentra el número 3 en una lista de números.
lista = [1, 3, 5]
- Marque cada elemento de la lista.
- Tan pronto como uno de los elementos sea igual a tres, devuelve su posición.
- Si tres no está en la lista, devuelva «¡Tres no está en la lista!»
Después de estos pasos, la computadora buscará el primer número, que es uno. Dado que no es igual a tres, siga adelante y verifique el siguiente número. Como ese número es tres, devuelve algo como «El número tres es el segundo elemento de la lista».
En código Python, un algoritmo de ordenación lineal se vería como la siguiente imagen.
Todo lo que hace este código es tomar una lista de números, mirar cada elemento de la lista y ver si coincide con el término de búsqueda. Si no sucede nada, solo se devuelve «Falso». Este es un algoritmo extremadamente simple, pero ya sea una línea de código o un millón, cada algoritmo existente funciona con el mismo principio básico: tomar información, procesarla de acuerdo con la lógica, predefinida y obtener resultados.
Algoritmos diarios
La mayoría de los algoritmos que realmente ejecutan nuestra vida diaria no son de código abierto. No estamos seguros de cómo Google determina exactamente qué resultados de búsqueda mostrar o cómo Facebook proporciona su News Feed, pero aún podemos ver los resultados de esos cálculos. Sin embargo, son importantes y tenemos una idea bastante clara de la lógica básica detrás de ellos.
- PageRank de Google funciona examinando el número y la calidad de los enlaces hacia y desde una página web, aunque existe una gran cantidad de criterios secretos que se actualizan constantemente para mejorar los resultados y evitar que alguien juegue con el sistema.
- Feed de noticias de Facebook mida la fuerza de su relación con personas y grupos en función de su actividad, luego utilice estos y otros factores para generar su fuente de noticias.
- Amazon y Netflix utilice algoritmos de referencia que analicen los datos de los usuarios, descubran lo que cada usuario pueda desear y muestren esas cosas al usuario.
- Sistema SAI ORION es un enorme (¡más de 1000 páginas!), pero puede calcular la ruta más eficiente para cualquier entrega, considerando todo tipo de datos en tiempo real y parámetros operativos, como las ventanas de entrega requeridas.
- Aplicaciones de inteligencia artificial como los vehículos autónomos, el reconocimiento facial, el procesamiento del lenguaje natural, la analítica predictiva, etc., se basan en algoritmos capaces de recuperar datos visuales, de audio o digitales, averiguar qué está pasando y obtener los resultados adecuados.
- publicidad los algoritmos están en todas partes. Si bien son las personas que publican los anuncios lo que ves, es un algoritmo que, en última instancia, decide si eres la audiencia adecuada.
Todo es un algoritmo
Una vez que sepa cómo es un algoritmo, no puede dejar de notarlo. No solo están en nuestra tecnología, después de todo, están en nuestro cerebro. Todo lo que hacemos es el resultado de recibir entradas, procesarlas y producir salidas. La mayoría de estos procesos se almacenan en una caja negra que se reorganiza constantemente, pero están ahí, detrás de escena, para ayudarnos a caminar, comprender el lenguaje y tomar decisiones sobre las cosas. Las personas están listas para comprender los algoritmos a nivel instintivo, por lo que, aunque los algoritmos informáticos están escritos en matemáticas y en código indescifrable, todos pueden traducirse en términos que entendemos.
Credito de imagen: Conjunto de imágenes de Mandelbrot, Sitios web interconectados para ilustrar el PageRank, CTP TheoryOfComputation Búsqueda lineal, Barras de color del algoritmo de clasificación de shell