Vivimos en la era del algoritmo. Cada vez más, las decisiones de nuestra vida se ven beneficiadas (o afectadas) gracias a estos. Son funciones tan ligadas a nuestra cotidianidad pero definidas por sólo unas pocas personas.

Por eso creemos que para realmente habitar nuestro espacio online tenemos que saber de qué hablamos cuando decimos algoritmos.

 

Algoritmos informáticos explicados para personas no tecnológicas

Vamos por el principio, por más inteligentes que sean, las computadoras necesitan instrucciones, éstas se dan en forma de programas. Es decir, con ellos se le dice paso a paso, exactamente lo que tiene que hacer. Luego, la computadora ejecuta el programa, siguiendo cada paso mecánicamente, para lograr el objetivo final. Cuando le dices a la computadora qué hacer, también puedes elegir cómo va a hacerlo. Ahí es donde entran los algoritmos.

 

OK, entonces … ¿qué es un algoritmo?

Cuando lees o escuchas sobre tecnología informática constantemente aparece la palabra algoritmo. Sin embargo, los algoritmos tuvieron su origen mucho antes de la era de la informática. La palabra se deriva del trabajo del matemático persa, Al-Khwārizmī.

Su idea era simple: un algoritmo establece una serie de pasos (una fórmula) para realizar un resultado particular. El algoritmo es la técnica básica utilizada para realizar un trabajo, es la receta que define una secuencia de acciones cuidadosamente descritas para resolver un conjunto de problemas. Podemos decir que ¿un algoritmo es una serie de instrucciones a seguir? 👁️‍🗨️

Sí, es cierto, tanto los programas de cómputo como los algoritmos son un conjunto de instrucciones. Sin embargo, cada uno representa dos conceptos muy distintos.

En primera, un algoritmo es una idea, o en palabras de Gregorio Martín Quetglas, catedrático en Ciencias de la Computación, “una sucesión finita de pasos no ambiguos que se pueden ejecutar en un tiempo finitopara resolver problemas entendiendo estos como cuestiones, conceptuales o prácticascuya solución es expresable mediante un algoritmo”. 

En cambio, un programa de cómputo está más ligado a la realización de una o más tareas realizadas por una computadora. Se entiende que un programa puede poner en práctica uno o varios algoritmos, pero también ocurre que el programa es tan simple que la idea de algoritmo no aplica.

El quehacer de un programador suele iniciar con el diseño de algoritmos pensados para la resolución de problemas determinados, algoritmos que más adelante serán incluidos e implementados en un programa de cómputo. Por lo tanto, al hablar de programa se comprueba la idea de que será ejecutado por una computadora. Pero, ¡ojo aquí! el algoritmo, al contrario, es maniobrado por una persona.

[Imagen]

Antes de crear o seleccionar un algoritmo, quienes lo desarrollan se preguntan si el algoritmo que se está considerando es el mejor posible. Para responder a esto, se puede seguir la metodología propuesta en 1940 por el matemático George Poyla. Proceso que fue adaptado a nuestra época, recursos y necesidades.

Vamos a intentar realizar un pequeño ejercicio, para entender la lógica que hay detrás de los algoritmos.

El primer paso consiste en analizar del problema. El objetivo es acceder a la compresión del problema. Para eso necesitas;

  • Definir el problema con total precisión
  • Especificar datos de entrada
  • Especificar información de salida

Lo segundo es diseñar un algoritmo, en esta parte importa la experiencia, pero lo vital es sin duda la creatividad. Debes considerar lo siguiente;

  • Indicar el orden de realización de cada paso
  • Estar definido sin ambigüedad
  • El algoritmo debe ser finito

El tercer y último paso es la programación del algoritmo que conocemos como la fase de resolución práctica. En esta fase las instrucciones del algoritmo se transforman en lenguaje de programación. Aquí no puedes olvidar considerar:

  • Codificación del algoritmo en un programa
  • Ejecución del programa
  • Comprobación del programa

Veamos un ejemplo. “Quiero ir a ver la película XYZ🍿”. Un primer análisis de este “problema” nos lleva a un proceso de resolución que contempla:

  1. Ir al cine donde proyectan XYZ.
  2. Comprar una entrada.
  3. Ver película.
  4. Regresar a casa.

 

Sencillo ¿no?, ahora definamos estos cuatro pasos para obtener la fórmula siguiente:

inicio {algoritmo para ver la película XYZ}
consultar la cartelera de cines
si proyectan XYZ entonces
ir al cine correspondiente
si_no proyectan XYZ
terminar con el objetivo
acudir al cine correspondiente
hacer cola
avanzar en la cola
preguntar si quedan entradas
si hay entradas entonces
comprar una entrada
si_no quedan entradas
declarar fracaso, regresar a casa y terminar
encontrar el asiento correspondiente
mientras proyectan
ver película
regresar a casa
fin

Para que quede un poco más claro, podemos ver otro ejemplo diseñado por elmostacho.com, en dónde se ve la ruta para saber si vive en tí un alma darks 🖤.

[Imagen]

Al algoritmo se le describe como una serie de pasos lógicos en un lenguaje que se entienda fácilmente. Ahora, para que una computadora realmente use estas instrucciones, deben escribirse en un lenguaje de programación. Lo que significa que hay que traducir, o mejor dicho programar, la resolución del problema.

En otras palabras, el guión detallado y creado por una persona es el que dirige a los sistemas digitales para ejecutar automáticamente una rutina de pasos a seguir.

Bueno y a todo esto ¿por qué queremos hablarte de algoritmos?

Has pensado, ¿si una persona es quien programa los algoritmos?, ¿puede reproducir sus formas de pensar en ellos incluyendo el machismo y la discriminación? Entérate en… segunda parte de este ABC de algoritmos.