Definición informal: los algoritmos son solo recetas
En su definición 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 cocina para hacer la paella 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.
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 como nos proporciona Google Maps cuando nos encuentra la ruta más idónea caminando:
- Después de salir de la estación de metro Linea 1 de Marina, Dirígete al sur por Avinguda Meridiana.
- En la rotonda, toma la primera salida en dirección Carrer dels Almogàvers.
- Gira a la derecha hacia Carrer de Joan d'Àustria hasta llegar al número 65 Local.
- Llamar al timbre de la puerta y ser recibido.
- Entra por la puerta principal.
Es un algoritmo muy simple que utiliza muchas entradas que los humanos pueden procesar fácilmente; Ya sabemos sobre caminar, 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 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 usados todos los días es el algoritmo de 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 un puntaje. Los resultados de búsqueda que ve en respuesta a su término de búsqueda son un resultado directo de ese puntaje. 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 comprender mejor un ejemplo sencillo: confeccionaremos un programa que lea por teclado dos números enteros distintos y nos muestre el mayor:
- Se hace la entrada de las variables numero1 -> “5” y numero2 -> “10” por teclado.
- Para saber si la variable tiene un valor mayor preguntamos si el contenido de numero1 es mayor (>) que el contenido de numero2.
- Si la respuesta es verdadera imprimimos el numero1.
- En caso que la condición sea falsa imprimimos el numero2.
Como podemos observar nunca se imprime numero1 y numero2 a la vez.
Siguiendo estos pasos, la computadora verá el primer número, que es cinco. Como no es mayor a diez, continúa y verifica el siguiente número. Como ese número es diez, devuelve algo como "El número mayor es: 10".
Codificado en un lenguaje de programación como Python comprensible para un computador, nuestro algoritmo ejemplo se vería como el siguiente:
Todo lo que está haciendo el código es verificar si coincide con la condición de mayor. Si nada lo hace, simplemente devuelve "Falso" pero en este caso hemos comentado que deben introducirse dos números diferentes.
Este es un algoritmo extremadamente simple, pero ya sea una línea de código o un millón, cada algoritmo en existencia opera 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 combina sus noticias, pero aún podemos ver los resultados de esos cálculos. Sin embargo, son importantes, y tenemos una idea bastante buena de la lógica básica detrás de ellos.
- Google PageRank 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.
- El feed de noticias de Facebook mide la fuerza de su relación con las personas y los grupos en función de su actividad, luego utiliza estos y otros factores para generar su feed de noticias.
- Amazon y Netflix utilizan algoritmos de recomendación que analizan los datos del usuario, descifran cosas que cada usuario podría desear y le muestran al usuario esas cosas.
- El 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.
- Las 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 incorporar datos visuales, de audio o digitales, descubrir qué está sucediendo y devolver los resultados apropiados.
Todo es un algoritmo
Una vez que sabes cómo se ve un algoritmo no solo está en nuestra tecnología, ya que, después de todo, están en nuestros cerebros. 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 allí, detrás de escena, lo que nos ayuda a caminar, comprender el lenguaje y tomar decisiones sobre las cosas. Los humanos están equipados para comprender algoritmos a nivel instintivo, por lo que incluso si los algoritmos informáticos están escritos en matemática y código indescifrables, todos pueden traducirse en términos que entendemos.