¿Qué es un algoritmo?

Hoy respondo a la pregunta de la pequeña Solène, que se pregunta qué puede ser un algoritmo

Esta palabra parece un poco complicada, pero en realidad significa algo muy simple: un algoritmo es una secuencia de instrucciones

algoritmo
Foto pixabay

Eso es todo. Estas instrucciones son a menudo muy simples, incluso tratamos de hacerlas lo más simple posible. 

Normalmente se usan para hacer algo, pero también puedes hacer algoritmos que son inútiles.

Lo que hace que los algoritmos sean un poco complicados es que a menudo están escritos en un lenguaje particular, para ser entendidos por las máquinas. Para explicar todo esto, tomemos el ejemplo de una receta.

La receta de la masa para panqueques es en realidad un algoritmo: es una secuencia de operaciones simples que le permiten preparar … masa para panqueques. Tiene sentido.

La receta a menudo se divide en pasos, que deben realizarse en orden. Los algoritmos se representan casi de la misma manera: los pasos se descomponen enlazándolos con flechas, un poco como abajo:

Para hacer panqueques, simplemente sigue las instrucciones en orden. Las recetas son algoritmos diseñados para los humanos y por lo tanto están escritas en un lenguaje que los humanos pueden entender. 

Dado que se supone que los humanos son razonablemente inteligentes, hay muchas cosas que no es necesario especificar en la receta, como quitar la cáscara de los huevos o no utilizar la leche de mapache. 

Para las máquinas, es un poco diferente: ¡Tienes que especificar todo!

En general, se utiliza un algoritmo para procesar lo que se denomina «entradas» para dar un resultado.

 Aquí, los insumos son los ingredientes y el equipo de cocina, y el resultado es la masa para panqueques.

Las instrucciones descritas en el algoritmo deben ser muy simples y no confusas. Para obtener el mismo resultado, hay un número infinito de algoritmos posibles

En la receta del panqueque, podríamos añadir un paso donde la botella de leche se gira cinco veces sobre sí misma antes de usarla.

 Esto no cambiaría el resultado, así que es un paso inútil. Un buen algoritmo es una receta que es fácil de seguir, no pierde tiempo innecesariamente y no causa errores. 

Un buen algoritmo también debe tener un principio y sobre todo… ¡un final! Todos los informáticos del mundo se vieron enfrentados una vez al horror absoluto de un bucle infinito: ¡como si estuvieras condenado a hacer tortitas para siempre!

Las condiciones en los algoritmos 

El algoritmo de la receta del panqueque es muy simple porque sólo hay una opción posible en cada paso.

Para acercarnos a esta noción de elección, consideraremos otro algoritmo: el que nos permite determinar si podemos hacer panqueques o no, dependiendo de lo que haya en la nevera y en los armarios.

Antes de empezar a hacer tortitas, normalmente te aseguras de que tienes todo lo que necesitas. 

Es algo fácil para un humano, pero supongamos que tienes la suerte de tener un robot que te ayude en la cocina. 

Para asegurarse de que tiene suficientes ingredientes, aquí está uno de los algoritmos que podría usar, sabiendo que necesitará huevos, leche, harina, azúcar y mantequilla.

En este diagrama, el robot comprobará una a una todas las condiciones necesarias para la preparación suave de los panqueques. 

Las preguntas que tiene que hacerse se muestran en diamantes y las instrucciones en rectángulos. En cada paso, dependiendo de las respuestas, las instrucciones pueden cambiar:

Algoritmos en lenguaje informático 

Hoy en día, todas las máquinas con componentes electrónicos utilizan algoritmos, que pueden ser más o menos complicados.

Estos algoritmos suelen ser diseñados por humanos, que hacen esquemas que se parecen a los que hemos visto antes. 

Pero para ser entendidos por las máquinas, estos esquemas deben ser traducidos al lenguaje informático.

Consideremos, por ejemplo, un algoritmo muy simple, todavía en la cocina: el que permite al horno mantener la temperatura requerida. 

Llamémoslo el «algoritmo de la buena temperatura». Esto es lo que podría parecer (en una versión muy simple):

Para que el horno entienda este algoritmo y pueda seguir las instrucciones, debe ser traducido al lenguaje de la computadora

Y para ello, debemos identificar lo que se llaman variables: son los datos que la máquina debe conocer para seguir las instrucciones del algoritmo.

 Aquí, el horno debe conocer la temperatura solicitada por el usuario del horno (que puede escribirse Tu) y la temperatura actual del horno (que puede escribirse Tf).

En el diagrama se incluye también un período de tiempo durante el cual el horno lleva a cabo una instrucción. 

Esto puede asociarse con una variable t. El algoritmo de calentamiento puede entonces reescribirse de una manera un poco más «cruda». El algoritmo se convierte en..:

Algoritmo de buena temperatura
paso 1 Leer y memorizarte 

paso 2 Medida Tf

Si Tf es menor que Tu: calienta el horno fuertemente durante un tiempo t = 60 segundos y luego vuelve al paso 2.

Si Tf es igual a Tu: calentar el horno moderadamente durante un tiempo t = 60 segundos y luego volver al paso 2.

Tf es mayor que Tu: interrumpe el calentamiento por un tiempo t = 60 segundos y luego vuelve al paso 2.

Pero esto no es suficiente, todavía es necesario simplificar las frases utilizando un vocabulario muy básico que corresponde a operaciones elementales ya conocidas por la máquina.

En el algoritmo simplificado que figura a continuación, las palabras en verde son funciones: instrucciones que lanzan una acción u otro algoritmo, definido en otro lugar. Por ejemplo, la función de contador realiza una cuenta atrás a partir del valor t.

Algoritmo de buena temperatura

Comienza
paso 1 Léete
paso 2 Leer Tf
t = 60

Si Tf menos de Tu
Así que
ejecutar el contador (t)
siempre y cuando t sea mayor que 0
…que funcione la calefacción de fortines siempre y cuando…

ir al paso 2

Bien, si…

Si Tf = Tú
Así que
ejecutar el contador (t)

siempre y cuando t sea mayor que 0
…que se calienten suavemente siempre y cuando…

ir al paso 2

Bien, si…

De lo contrario
ejecutar el contador (t)
siempre y cuando t sea mayor que 0
correr el stopfin de la calefacción siempre y cuando

ir al paso 2

Bien, si…

fin

Todavía podríamos simplificar el algoritmo sustituyendo las palabras por símbolos, ¡pero ya te haces una idea!

Los algoritmos en la vida cotidiana

Como puedes imaginar, la gran mayoría de los algoritmos son mucho más complicados que eso. 

Pero lo que es genial, para la gente que los inventa, es que están escritos con un vocabulario simple y restringido, incluso cuando provienen de teorías matemáticas bastante avanzadas. 

Este es el caso, por ejemplo, del algoritmo de Dijkstra, que se utiliza para encontrar una ruta óptima en las aplicaciones de GPS. 

Los algoritmos, con su malvado doble matemático, se encuentran casi en todas partes hoy en día. 

En los videojuegos, por ejemplo: todo lo que sucede en la pantalla depende de los algoritmos, y usted mismo proporciona ciertas variables al presionar los botones.

Todos los programas instalados en tu ordenador utilizan algoritmos. Los motores de búsqueda, la privacidad de las transacciones en línea, la gestión de bonos en Candy Crush y la gestión de inventario de Ikea dependen de algoritmos.

La calidad de los algoritmos depende principalmente del tiempo que les lleva resolver un problema y proporcionar un resultado correcto, y de los recursos que utilizarán en las computadoras. 

Se paga mucho dinero para que la gente encuentre los mejores algoritmos, los que van más rápido y requieren menos cantidad de memoria. Y si no sabes qué hacer después, esta puede ser una buena pista.

Igualmente puedes ampliar los conocimientos de algoritmos con algún libro digital adquirido en las tiendas en línea de Amazon, WalMart, Costco, Sams Club, Chedraui, Carrefour,  aliexpress, alibaba  o MercadoLibre.

Te Puede interesar:

Descubre cómo transferir tus copias de seguridad al Nintendo Switch

Google: Cómo Eliminar Automáticamente tu Historial Web y de Localización

¿Cómo iniciar un blog?

Limpiar la caché de tu celular y archivos basura

Windows 10: Cómo Acceder a la BIOS del PC