¿Qué es un algoritmo?
En los últimos años todos hemos oído hablar de los famosos algoritmos de las grandes plataformas de internet. Estamos a la merced de los algoritmos de los gigantes de las redes.
Seguramente, lo que acabas de comprar por internet lo has hecho porque un algoritmo te ha empujado a hacerlo, no porque tuvieras la necesidad.
Con solo oír mencionar esta palabra ya nos asustamos, y rápidamente nos viene a la cabeza una de aquellas pizarras llenas de fórmulas incomprensibles. Lo cierto es que un algoritmo puede ser tan complicado o tan sencillo como nosotros queramos.
Los aprendemos en Primaria
Un algoritmo no es más que una secuencia de pasos que deben seguirse a partir de unas órdenes dadas. Es decir: si se da esto, haz esto otro. A partir de estos datos, haz esta operación. Uno de los algoritmos más básicos puede ser una simple suma. Si tenemos dos cifras, debemos sumar los dos valores y obtener un resultado.
Pero ¿qué pasa si las sumas son de dos cifras? Aquí la cosa se complica. Debemos aprender el algoritmo de sumar primero las unidades y luego las decenas. Para subir de nivel, vamos a plantear una instrucción añadida. Si la suma de las unidades es superior a 9... nos llevamos una. Y así con todo.
Aquí es cuando los padres, cuyos algoritmos matemáticos aprendidos son distintos de los que se instruyen en la escuela actual, chocan con los hijos cuando les intentan ayudar a hacer los deberes y ven que lo que antes eran reglas de tres, ahora son ecuaciones y se ejecutan de una forma distinta para conseguir el mismo resultado. Sí, un mismo objetivo final puede tener varios algoritmos y todos son válidos.
Aunque no lo parezca, cualquier acción tiene su algoritmo y nosotros somos los ordenadores que los ejecutamos. Vamos a cascar un huevo.
- [¿Disponemos de huevos?] Sí: Coger un huevo y avanzar al paso 2. No: Detener el algoritmo Cascar huevo y ejecutar el algoritmo Comprar huevos.
- Conseguir un cuenco para poner el contenido del huevo en su interior.
[¿Tenemos el recipiente lo suficientemente cerca como para poder volcar el contenido del huevo en él?] Sí: avanzar al paso 3. || No: Ejecutamos la orden Acercar el cuenco al huevo y avanzamos al paso 3. [¿El cuenco es lo suficientemente consistente para poder cascar el huevo en el borde?] Sí: avanzamos al paso 3. || No: Detenemos el algoritmo Cascar huevo y ejecutamos el algoritmo Conseguir cuenco apto y avanzar al paso 3. || Incierto. Detenemos algoritmo Cascar huevo y ejecutamos Comprobar cuenco. - Sostener cuenco con mano izquierda con una firmeza 40 sobre 100 y avanzar al paso 4.
- Tomar el huevo con la mano derecha y golpearlo contra el borde del cuenco con una Fuerza de intensidad 3 sobre 100. Punto de colisión: eje horizontal central del huevo. [¿Se ha partido el huevo lo suficiente como para poder separar las dos mitades de la cáscara?] Sí: Avanzar al paso 5. || No: Retroceder al paso 4 aumentando la fuerza de impacto en relación inversa a la parte de huevo que quede por quebrar.
- Tomamos el huevo con las dos manos, usando como superficie de contacto las yemas de los dedos (excepto el meñique). Cada mano asirá una mitad del huevo, de modo que quede la fractura de la cáscara a la vista). Avanzamos al paso 6.
- Situamos el huevo 5 centímetros sobre el centro del interior del cuenco.
- Introducimos la punta de los dedos pulgares en la línea de fractura del huevo con una Fuerza 2 sobre 100.
[¿Se ha ampliado la línea de fractura lo suficiente como para separar las mitades con los dedos pulgares?] Sí: Avanzar al paso 8. || No: Repetimos el paso 7 incrementando el valor Fuerza en uno sobre 100 repetidamente hasta obtener respuesta Sí. Avanzar al paso 8. - Separar las dos mitades de la cáscara a una distancia suficiente para que pueda caer el contenido del huevo en el centro del cuenco. Ejecutar algoritmo Desechar cáscara. Ejecutar algoritmo Batir huevo.
Esta era una versión simplificada del algoritmo. Seguramente, alguna vez habría sucedido algo inesperado y la ejecución se habría interrumpido o yo me habría colgado. Entonces habría que afinar el algoritmo, es decir, aprender para la próxima vez.
Y así, durante todo el día, en todos nuestros actos. Un algoritmo tras otro.
¿Funciona así la Inteligencia Artificial?
A grandes rasgos, sí. Alguien introduce una serie de órdenes y variables al ordenador para que éste actúe de una forma u otra en función de una u otra situación. Lo que pasa es que en el caso de los ordenadores, los algoritmos son infinitamente más largos y complejos, ya que es un árbol que se va ramificando una y otra vez. Tómese unos segundos para reflexionar y valorar el trabajo de los programadores.
Con la evolución tecnológica y el surgimiento del big data, los algoritmos han conseguido apoderarse de los gustos, preferencias y a menudo voluntades de los usuarios, a partir de los datos que ellos mismos generan. Por ejemplo, si 20.000 personas de mi edad, con mi estado civil, mi poder adquisitivo y que han visto otras series relacionadas con las que he visto yo, es muy probable que no me escape de la recomendación de turno para que la serie Tal me entre por la vista y no pueda resistir la tentación de hacer clic y verla.
Y con la publicidad pasa lo mismo. Los anuncios están cada vez más segmentados y conocen más nuestros gustos gracias a los algoritmos que deciden, a partir de unos datos que nosotros generamos (voluntariamente o no), qué anuncio nos aparecerá dos fotos más abajo.
Y es que en los últimos años, el concepto de aprendizaje máquina (machine learning) ha ganado una gran importancia. El machine learning es un algoritmo avanzado capaz de crecer y perfeccionarse a partir de casos y situaciones previas, de las que ha aprendido para actuar en una próxima ocasión.
Los algoritmos garantizan que nunca dejaremos de tirar y malgastar el dinero. Pero lo haremos muy a gusto, eso sí. Mañana me llega ese cepillo mágico que me dejará el teclado como nuevo. ¡Qué ganas tengo de estrenarlo y olvidarlo en un cajón!