Magic Markers | Videos explicativos

¿Qué es un algoritmo?

Publicado el_
21.7.2015

El mundo digital está lleno de cosas cada vez más asombrosas. Hay carros que se manejan solos, celulares que convierten nuestra voz en texto, robots que compran y venden acciones en la bolsa, etc. ¿Cómo es posible todo esto? Por supuesto, la respuesta completa pasa por muchos inventos (microchips, sensores y demás) pero una buena parte la explicación se reduce a un concepto clave: los algoritmos. 

Un algoritmo, por muy complejo y técnico que parezca, no es más que una secuencia de instrucciones. Tan simple como eso. ¿Instrucciones para qué? Para lo que sea. Lo único que importa es que haya un estado inicial, un input. Y que, siguiendo al pie de la letra una secuencia de pasos, se produzca siempre un resultado, un output. 

Por supuesto, todo esto suena muy abstracto y es en la práctica que uno se da cuenta de que ya conoce este concepto. ¿Todavía recuerdan cómo se multiplica con papel y lápiz? ¿El paso a paso? Básicamente, toca comenzar por la derecha, multiplicar número por número, acumular las decenas y sumar para obtener el resultado. Pues bien, eso es un algoritmo. El input es aquello que uno quiere multiplicar. Digamos, 65 por 34. El output es el resultado de la operación. Y el algoritmo como tal son los pasos que nos enseñaron en el colegio. Pero no nos quedemos en la descripción. Hay que ver el algoritmo corriendo. 

  • Comenzamos por las unidades. 4 x 5: 20. 
  • Anotamos el cero y ponemos el 2 en la columna de las decenas.
  • 4 x 6: 24. Más 2 que teníamos guardados: 26. 
  • Como ya no nos quedan columnas adicionales. Anotamos eso y tachamos el número de arriba.
  • Ahora, la otra columna. 3 x 5: 15.
  • 5 y ponemos 1 arriba.
  • 3 x 6: 18. Más 1: 19.
  • Anotamos eso.
  • Sumamos los dos resultados, pendientes de que los números de abajo estén corridos hacia la izquierda. Y voilá: 2 210.  

Uno puede no tener ni idea de lo que está haciendo y, con tal de que siga los pasos, va a llegar al resultado correcto. Ahora piensen que ese aprendizaje aplica a muchas cosas y que buena parte del conocimiento que compartimos tiene la forma de una secuencia de pasos. Por ejemplo, una receta de cocina es un algoritmo. El input son los ingredientes. El output es la cena terminada. Y, de nuevo, el algoritmo indica cómo pasar de un estado al otro. Hay algoritmos para poner un bombillo, para alistarse en la mañana, para subirse al bus. Y, en general, si uno busca instrucciones en las cosas que hacemos, las encuentra en todas partes. 

La gracia de los algoritmos es que nos permiten obtener resultados sin entender lo que estamos haciendo, pero también que nos permiten comunicar tareas complejas sin explicar el porqué. Eso siempre lo hemos necesitado, pero es particularmente útil ahora, pues tenemos un interlocutor que no entiende absolutamente nada, pero que es perfectamente capaz de seguir millones de instrucciones por segundo: el computador.  

La programación es el arte de convertir las cosas que hacemos o las que quisiéramos hacer en una secuencia de instrucciones que un computador pueda procesar, en un algoritmo. Y para eso se utilizan lenguajes lógicos con variables, funciones y ciclos, entre otras cosas.  Curiosamente, eso nos pone del lado incómodo de la historia. El que sigue instrucciones, el computador, puede darse el lujo de no entender lo que está haciendo; pero el que diseña las instrucciones, nosotros o, más bien, los programadores, tiene que llegar a un nivel de comprensión muy profundo. Y si es difícil darle instrucciones a un ser humano, alguien que puede descifrar cosas por sus propio medios, alguien que interpreta información dependiendo del contexto, ahora imagínense el reto que es darle instrucciones a un computador. A una persona le puedo decir: echa agua en la tetera, pon la tetera sobre un fogón, prende el fogón. Cuando haga un ruido la tetera, apaga el fogón y sirve el agua dentro de un pocillo. A un computador le tengo que decir qué es la tetera, dónde está, qué quiere decir “sobre el fogón” y un millón de cosas más. 

Diseñar un algoritmo es una labor inmensamente creativa y cada respuesta que encontramos para un problema en particular es una solución que podemos replicar infinitas veces. El resultado es que todo el tiempo estamos interactuando con algoritmos. Y lo interesante es que esos algoritmos no sólo hacen la vida más fácil, cosas como mandar emails y pagos en línea, sino que también modifican nuestras decisiones. Un algoritmo te recomienda libros en Amazon, otro te entrega resultados en Google, un tercero te dice por dónde manejar tu carro. Y ¿Cómo se logra semejante proeza? Con instrucciones, muchas, pero todas sencillas. 

En últimas, lo más interesante de los algoritmos es que nos dicen muchas cosas. Son la solución al problema de cómo automatizar X o Y tarea, una solución que puede ser elegante y asombrosa, pero también son una forma de manipular lo que nos rodea a través de la computación y además ponen en evidencia el modo en que interpretamos el mundo. ¿Por dónde nos lleva ese camino? ¿Qué cosas podremos automatizar en el futuro? Eso está por verse, pero si miramos hacia atrás, piensen que la evolución, a su manera, es un algoritmo. El input es la materia. Las instrucciones son reproducción, mutación y selección. Y el output es la diversidad de todas las formas de vida que existen.

Volver al inicio
YouTube Magic Markers - Videos explicativosFacebook Magic Markers - Videos explicativosInstagram Magic Markers - Videos explicativos