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é califica como un algoritmo? ¿Puedes escribir uno? ¿Cómo sería si lo hicieras? Dado que controlan muchas partes de nuestra vida diaria, es importante tener una idea básica de lo que sucede exactamente debajo del capó, y en realidad no es tan intimidante como suele parecer.
Definición informal: los algoritmos son solo recetas
En su forma más básica, 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 cupcakes puede ser un algoritmo. También lo son las indicaciones para llegar a la casa de un amigo, tocar una partitura o el proceso de buscar una palabra en un diccionario. Raymond Queneau incluso imprimió un libro de diez sonetos con versos que se pueden mezclar y combinar a la perfección para crear 100.000.000.000 de poemas originales. La forma en que se implementan estos algoritmos varía ampliamente, pero no necesita estar familiarizado con ningún lenguaje de programación para comprender la lógica básica detrás de ellos. Por ejemplo, el siguiente es un algoritmo para dar instrucciones simples para caminar.
- Después de salir por la puerta, gire a la derecha.
- Camine por la carretera hasta llegar a Market Street.
- Cuando llegue a Market Street, gire a la derecha.
- Camina recto hasta que veas un edificio de ladrillos.
- Entra por la puerta principal.
Ese es un algoritmo muy simple que usa muchas entradas que los humanos pueden procesar fácilmente; ya sabemos de andar, de calles, de materiales, de entrar, y todas esas cosas. Si estuviéramos creando un algoritmo direccional para un robot, tendría que ser mucho más largo y más específico, que es lo que hace que muchos algoritmos parezcan tan confusos para los humanos.
Más formalmente: los algoritmos son fórmulas claras e inequívocas
Un algoritmo que probablemente use todos los días es el algoritmo PageRank de Google, que analiza cientos de factores sobre una página web, los ejecuta a través de su fórmula y le asigna 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 tan bien porque sigue un conjunto de reglas claramente definidas que le indican 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 busca 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, devuelve «¡Tres no está en la lista!»
Siguiendo estos pasos, la computadora mirará el primer número, que es uno. Como no es igual a tres, avanza y comprueba el siguiente número. Dado que ese número es tres, devuelve algo como «El número tres es el segundo elemento de la lista».
En el código de Python, un algoritmo de clasificación lineal se vería como la siguiente imagen.
Todo lo que hace ese código es tomar una lista de números, mirar cada elemento de la lista y verificar si coincide con el término de búsqueda. Si nada lo hace, simplemente devuelve «Falso». Este es un algoritmo extremadamente simple, pero ya sea una línea de código o un millón, todos los algoritmos existentes funcionan según el mismo principio básico: tomar información, procesarla de acuerdo con una lógica preestablecida y obtener resultados.
Algoritmos cotidianos
La mayoría de los algoritmos que realmente ejecutan nuestra vida cotidiana no son de código abierto. No sabemos exactamente cómo Google determina qué resultados de búsqueda mostrar o cómo Facebook reúne su fuente de noticias, pero aún podemos ver los resultados de esos cálculos. No obstante, son importantes, y tenemos una idea bastante buena de la lógica básica detrás de ellos.
- PageRank de Google funciona observando la cantidad y la calidad de los enlaces que conducen a una página web y desde ella, aunque hay una gran cantidad de criterios secretos que se actualizan constantemente para mejorar los resultados y evitar que alguien juegue con el sistema.
- Fuente de noticias de Facebook mide la fuerza de su relación con personas y grupos en función de su actividad, luego utiliza estos y algunos otros factores para generar su fuente de noticias.
- amazon y netflix use algoritmos de recomendación que analicen los datos del usuario, descubran las cosas que cada usuario podría querer y muéstrenle al usuario esas cosas.
- Sistema ORION de UPS es un algoritmo enorme (¡más de 1000 páginas!), pero puede calcular la ruta más eficiente para cualquier entrega al mismo tiempo que tiene en cuenta todo tipo de datos en tiempo real y parámetros operativos, como las ventanas de entrega solicitadas.
- aplicaciones de inteligencia artificial como los autos sin conductor, el reconocimiento facial, el procesamiento del lenguaje natural, el análisis predictivo y muchos más se basan en algoritmos que pueden tomar datos visuales, de audio o digitales, descubrir qué está pasando y arrojar resultados apropiados.
- Publicidad Los algoritmos están en todas partes. Si bien los humanos son los que crean los anuncios que ves, es un algoritmo el que finalmente decide si eres la audiencia adecuada.
Todo es un algoritmo.
Una vez que sabes cómo se ve un algoritmo, no puedes dejar de notarlo. No están solo en nuestra tecnología, ya que, 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 dentro de una caja negra que se reorganiza constantemente, pero están ahí, detrás de escena, ayudándonos a caminar, comprender el lenguaje y tomar decisiones sobre las cosas. Los seres humanos están equipados para comprender los algoritmos a un nivel instintivo, por lo que incluso si los algoritmos informáticos están escritos en código y matemáticas indescifrables, todos pueden traducirse a términos que entendemos.
Credito de imagen: Imagen del conjunto de Mandelbrot, Sitios web interconectados para ilustrar el PageRank, CTP TheoryOfComputation Búsqueda lineal, Barras de color del algoritmo de clasificación de shell