¿Qué aspecto tiene un algoritmo?

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 algoritmo? ¿Puedes escribir uno? ¿Cómo se vería si lo hiciera? Dado que son parte de tantas partes de nuestra vida diaria, es importante tener una idea básica de lo que está sucediendo exactamente bajo el capó, y en realidad no es tan intimidante como parece.

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 magdalenas puede ser un algoritmo. También lo son las instrucciones 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 líneas que se pueden mezclar y combinar sin problemas para crear 100.000.000.000 de poemas originales. La forma en que se implementan estos algoritmos varía ampliamente, pero no es necesario 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 indicaciones sencillas para caminar.

algoritmos-direcciones

  1. Después de salir por la puerta, gire a la derecha.
  2. Camine por la calle hasta llegar a Market Street
  3. Cuando llegue a Market Street, gire a la derecha.
  4. Camine recto hasta que vea un edificio de ladrillos.
  5. Entra por la puerta principal.

Es un algoritmo muy simple que usa muchas entradas que los humanos pueden procesar fácilmente; ya sabemos de andar, calles, materiales, entrar y todas esas otras cosas. Si estuviéramos creando un algoritmo direccional para un robot, tendría que ser mucho más largo y 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 y sin ambigüedades

algoritmos-clasificación rápida

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 muy bien porque sigue un conjunto de reglas claramente definidas 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 busca el número 3 en una lista de números.

lista = [1, 3, 5]

  1. Marque cada elemento de la lista.
  2. Tan pronto como uno de los elementos sea igual a tres, devuelva su posición.
  3. Si tres no está en la lista, devuelva “¡Tres no está en la lista!”

Siguiendo estos pasos, la computadora buscará el primer número, que es uno. Como no es igual a tres, sigue adelante y verifica 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.

algoritmos-búsqueda-lineal

algoritmos-salida-lineal

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 no hay nada, solo devuelve “False”. Este es un algoritmo extremadamente simple, pero ya sea una línea de código o un millón, todos los algoritmos existentes operan con el mismo principio básico: tomar información, procesarla de acuerdo con alguna 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 sus noticias, pero aún podemos ver los resultados de esos cálculos. No obstante, son importantes y tenemos una idea bastante clara de la lógica básica detrás de ellos.

algoritmos-pagerank

  • PageRank de Google funciona al observar el número y la calidad de los enlaces que conducen hacia y desde una página web, aunque hay 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 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 muestre esas cosas al usuario.
  • Sistema ORION de UPS es un enorme (¡Más de 1000 páginas!), Pero puede calcular la ruta más eficiente para cualquier entrega y al mismo tiempo tener 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 automóviles autónomos, el reconocimiento facial, el procesamiento del lenguaje natural, el análisis predictivo y muchos más dependen de algoritmos que pueden tomar datos visuales, de audio o digitales, averiguar qué está sucediendo y generar resultados adecuados.
  • Publicidad los algoritmos están en todas partes. Si bien los humanos son los que crean los anuncios que ves, es un algoritmo que finalmente decide si eres la audiencia adecuada.

Todo es un algoritmo

Una vez que sepa cómo es un algoritmo, no puede dejar de notarlos. No solo están 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 reordena 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 en términos que entendemos.

Credito de imagen: Imagen de conjunto de Mandelbrot, Sitios web interconectados para ilustrar PageRank, CTP TheoryOfComputation Búsqueda lineal, Barras de color del algoritmo de clasificación de shell

¿Es útil este artículo?

¡Ayúdanos a difundirlo!

Deja una respuesta

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