¿Qué son los algoritmos informáticos y cómo funcionan?
Publicado: 2022-01-29A menos que te interesen las matemáticas o la programación, la palabra "algoritmo" puede sonarte griega, pero es uno de los componentes básicos de todo lo que estás usando para leer este artículo. Aquí hay una explicación rápida de lo que son y cómo funcionan.
Descargo de responsabilidad: no soy profesor de matemáticas o informática, por lo que no todos los términos que utilizo son técnicos. Eso es porque estoy tratando de explicar todo en un lenguaje sencillo para las personas que no se sienten muy cómodas con las matemáticas. Dicho esto, hay algunas matemáticas involucradas, y eso es inevitable. Frikis de las matemáticas, siéntanse libres de corregir o explicar mejor en los comentarios, pero por favor, manténganlo simple para los que no tienen inclinación matemática entre nosotros.
Imagen de Ian Ruotsala
¿Qué es un algoritmo?
La palabra 'algoritmo' tiene una etimología similar a 'álgebra', excepto que se refiere al mismo matemático árabe, al-Khwarizmi (solo un dato interesante). Un algoritmo, para los no programadores entre nosotros, es un conjunto de instrucciones que toman una entrada, A, y proporcionan una salida, B, que cambia los datos involucrados de alguna manera. Los algoritmos tienen una amplia variedad de aplicaciones. En matemáticas, pueden ayudar a calcular funciones a partir de puntos en un conjunto de datos, entre cosas mucho más avanzadas. Aparte de su uso en la programación en sí, juegan un papel importante en cosas como la compresión de archivos y el cifrado de datos.
Un conjunto básico de instrucciones
Digamos que su amigo se encuentra con usted en una tienda de comestibles y lo está guiando hacia usted. Dices cosas como "entra por las puertas del lado derecho", "pasa la sección de pescado de la izquierda" y "si ves la lechería, me pasaste". Los algoritmos funcionan así. Podemos usar un diagrama de flujo para ilustrar instrucciones basadas en criterios que conocemos de antemano o que descubrimos durante el proceso.
(Imagen titulada "Rutina para romper el hielo" EDICIÓN: cortesía de Trigger y Freewheel)
Desde START, se dirigiría por el camino y, dependiendo de lo que suceda, seguirá el "flujo" hasta el resultado final. Los diagramas de flujo son herramientas visuales que pueden representar de manera más comprensible un conjunto de instrucciones utilizadas por las computadoras. De manera similar, los algoritmos ayudan a hacer lo mismo con más modelos basados en matemáticas.
gráficos
Usemos un gráfico para ilustrar las diversas formas en que podemos dar direcciones.
Podemos expresar este gráfico como una conexión entre todos sus puntos. Para reproducir esta imagen, podemos dar un conjunto de instrucciones a otra persona.
Método 1
Podemos representar esto como una serie de puntos, y la información seguiría la forma estándar de gráfico = {(x1, y1), (x2, y2), …, (xn, yn)}.
gráfica = {(0,0), (3,0), (3,3), (5,5), (7,10), (8,7), (9,4), (10,1) }
Es bastante fácil trazar cada punto, uno tras otro, y conectarlos al punto anterior. Sin embargo, imagine un gráfico con mil puntos o múltiples segmentos, todos yendo en todas direcciones. Esa lista tendría muchos datos, ¿verdad? Y luego tener que conectar cada uno, uno a la vez, puede ser un fastidio.
Método 2
Otra cosa que podemos hacer es dar un punto de inicio, la pendiente de la línea entre este y el siguiente punto, e indicar dónde esperar el siguiente punto usando la forma estándar de gráfico={(punto de inicio}, [m1, x1, h1 ], …, [mn, xn, hn]} Aquí, la variable 'm' representa la pendiente de la línea, 'x' representa la dirección en la que contar (ya sea x o y), y 'h' le dice cómo muchos para contar en dicha dirección.También puede recordar trazar un punto después de cada movimiento.
gráfica = {(0,0), [0,x,3], [0,y,3], [1,x,2], [2.5,x,2], [-3,x,1], [-3,x,1], [-3,x,1]}
Terminarás con el mismo gráfico. Puede ver que los últimos tres términos en esta expresión son iguales, por lo que podemos reducir eso simplemente diciendo "repita eso tres veces" de alguna manera. Digamos que cada vez que vea aparecer la variable 'R', significa repetir lo último. Podemos hacer esto:
gráfica = {(0,0), [0,x,3], [0,y,3], [1,x,2], [2.5,x,2], [-3,x,1], [R=2]}
¿Qué pasa si los puntos individuales realmente no importan, y solo el gráfico en sí mismo lo hace? Podemos consolidar esas tres últimas secciones así:

gráfica = {(0,0), [0,x,3], [0,y,3], [1,x,2], [2.5,x,2], [-3,x,3]}
Acorta las cosas un poco desde donde estaban antes.
Método 3
Intentemos hacer esto de otra manera.
y=0, 0≤x≤3
x=0, 0≤y≤3
y=x, 3≤x≤5
y=2.5x-7.5, 5≤x≤7
y=-3x+29, 7≤x≤8
y=-3x+29, 8≤x≤9
y=-3x+29, 9≤x≤10
Aquí lo tenemos en términos algebraicos puros. Una vez más, si los puntos en sí mismos no importan y solo el gráfico sí, podemos consolidar los últimos tres elementos.
y=0, 0≤x≤3
x=0, 0≤y≤3
y=x, 3≤x≤5
y=2.5x-7.5, 5≤x≤7
y=-3x+29, 7≤x≤10
Ahora, el método que elija depende de sus habilidades. Tal vez eres bueno con las matemáticas y las gráficas, así que eliges la última opción. Quizás eres bueno navegando, así que eliges la segunda opción. En el ámbito de las computadoras, sin embargo, estás haciendo muchos tipos diferentes de tareas y la capacidad de la computadora en realidad no cambia. Por lo tanto, los algoritmos están optimizados para las tareas que completan.
Otro punto importante a tener en cuenta es que cada método se basa en una clave. Cada conjunto de instrucciones es inútil a menos que sepa qué hacer con ellas. Si no sabe que debe trazar cada punto y conectar los puntos, el primer conjunto de puntos no significa nada. A menos que sepa lo que significa cada variable en el segundo método, no sabrá cómo aplicarlas, al igual que la clave de un cifrado. Esa clave también es una parte integral del uso de algoritmos y, a menudo, esa clave se encuentra en la comunidad o mediante un "estándar".
Compresión de archivo
Cuando descarga un archivo .zip, extrae el contenido para que pueda usar lo que esté dentro. Hoy en día, la mayoría de los sistemas operativos pueden sumergirse en archivos .zip como si fueran carpetas normales, haciendo todo en segundo plano. En mi máquina con Windows 95 hace más de una década, tuve que extraer todo manualmente antes de poder ver algo más que los nombres de los archivos en el interior. Esto se debe a que lo que se almacenó en el disco como un archivo .zip no se encontraba en una forma utilizable. Piensa en un sofá cama. Cuando quieras usarlo como cama, tienes que quitar los cojines y desplegarlo, lo que ocupa más espacio. Cuando no lo necesite, o desee transportarlo, puede volver a plegarlo.
Los algoritmos de compresión se ajustan y optimizan específicamente para los tipos de archivos a los que están destinados. Los formatos de audio, por ejemplo, cada uno usa una forma diferente de almacenar datos que, cuando son decodificados por el códec de audio, darán un archivo de sonido similar a la forma de onda original. Para obtener más información sobre esas diferencias, consulte nuestro artículo anterior, ¿Cuáles son las diferencias entre todos esos formatos de audio? Los formatos de audio sin pérdidas y los archivos .zip tienen una cosa en común: ambos proporcionan los datos originales en su forma exacta después del proceso de descompresión. Los códecs de audio con pérdida utilizan otros medios para ahorrar espacio en el disco, como recortar las frecuencias que no pueden ser escuchadas por los oídos humanos y suavizar la forma de onda en secciones para eliminar algunos detalles. Al final, si bien es posible que no podamos escuchar realmente la diferencia entre un MP3 y una pista de CD, definitivamente hay un déficit de información en el primero.
Cifrado de datos
Los algoritmos también se utilizan para asegurar datos o líneas de comunicación. En lugar de almacenar datos para que usen menos espacio en disco, se almacenan de una manera que otros programas no pueden detectar. Si alguien roba su disco duro y comienza a escanearlo, puede recoger datos incluso cuando elimine archivos porque los datos en sí todavía están allí, aunque la ubicación de reenvío haya desaparecido. Cuando los datos están encriptados, lo que sea que esté almacenado no parece lo que es. Por lo general, parece aleatorio, como si la fragmentación se hubiera acumulado con el tiempo. También puede almacenar datos y hacer que aparezcan como otro tipo de archivo. Los archivos de imagen y de música son buenos para esto, ya que pueden ser bastante grandes sin despertar sospechas, por ejemplo. Todo esto se hace mediante el uso de algoritmos matemáticos, que toman algún tipo de entrada y la convierten en otro tipo de salida muy específico. Para obtener más información sobre cómo funciona el cifrado, consulte Explicaciones de HTG: ¿Qué es el cifrado y cómo funciona?
Los algoritmos son herramientas matemáticas que proporcionan una variedad de usos en informática. Trabajan para proporcionar un camino entre un punto de inicio y un punto final de manera consistente y brindan las instrucciones para seguirlo. ¿Sabes más de lo que destacamos? ¡Comparte tus explicaciones en los comentarios!