¿Qué son los algoritmos informáticos y cómo funcionan?

A menos que le gusten las matemáticas o la programación, la palabra «algoritmo» puede sonarle griega, pero es uno de los componentes básicos de todo lo que utiliza para leer este artículo. Aquí hay una explicación rápida de qué 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. Esto se debe a que trato de explicar todo en un inglés simple para que la gente no se sienta cómoda con las matemáticas. Dicho esto, hay algunas matemáticas involucradas y es inevitable. Los amantes de las matemáticas se sienten libres de corregir o explicar mejor en los comentarios, pero manténgalo simple para los reacios a las matemáticas 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 matemático árabe mismo, al-Khwarizmi (sólo una pieza interesante de información). Un algoritmo, para los no programadores entre nosotros, es un conjunto de instrucciones que toman una entrada, A, y proporcionan una salida, B, que altera 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 de instrucciones básicas.

Digamos que su amigo se encuentra con usted en una tienda de comestibles y usted lo guía hacia usted. Dices cosas como «entra por las puertas de la derecha», «pasa la sección de pescado de la izquierda» y «si ves la lechería, me has pasado». Los algoritmos funcionan así. Podemos utilizar un diagrama de flujo para ilustrar instrucciones basadas en criterios que conocemos de antemano o que descubrimos en el proceso.

(imagen titulada «Rutina para romper el hielo«EDITAR: Cortesía de Gatillo y rueda libre)

Desde el INICIO caminarás por el camino y dependiendo de lo que suceda seguirás el “flujo” hasta un 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. Asimismo, los algoritmos ayudan a hacer lo mismo con más modelos matemáticos.

Gráficos

Usemos un gráfico para ilustrar las diferentes formas en que podemos dar instrucciones.

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 la gráfica = {(x1, y1), (x2, y2),…, (xn, yn)}.

gráfico = {(0.0), (3.0), (3.3), (5.5), (7.10), (8.7), (9.4), (10.1)}

Es bastante fácil rastrear cada punto uno tras otro y conectarlos al punto anterior. Sin embargo, imagina un gráfico con mil puntos o varios segmentos que van en todas direcciones. Esta lista contendría muchos datos, ¿no es así? Y luego tener que conectar cada uno, uno a la vez, puede ser doloroso.

Método 2

Une autre chose que nous pouvons faire est de donner un point de départ, la pente de la ligne entre celui-ci et le point suivant, et d’indiquer où s’attendre au point suivant en utilisant la forme standard de graph={( punto de partida}, [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 xo y) y «h» le dice cuánto contar en esa dirección. También puede recordar dibujar un punto después de cada movimiento.

gráfico = {(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 de esta expresión son los mismos, por lo que tal vez podamos reducirlo a decir «repita esto tres veces» de alguna manera. Digamos que cada vez que ves aparecer la variable ‘R’ significa que se repite lo último. Podemos hacerlo:

gráfico = {(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 lo hace el gráfico en sí? Podemos consolidar estas tres últimas secciones de la siguiente manera:

gráfico = {(0,0), [0,x,3], [0,y,3], [1,x,2], [2.5,x,2], [-3,x,3]}

Hace las cosas un poco más cortas de lo que eran 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

Lo tenemos aquí en términos algebraicos puros. Nuevamente, si los puntos en sí mismos no importan y solo el gráfico lo hace, 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 bien, el método que elija dependerá de sus habilidades. Tal vez seas bueno en matemáticas y gráficos, entonces eliges la última opción. Tal vez seas bueno en la navegación, luego eliges la segunda opción. En el área de las computadoras, sin embargo, se realizan muchos tipos de tareas y la capacidad de la computadora no cambia realmente. Por lo tanto, los algoritmos están optimizados para las tareas que realizan.

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 se supone 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. Esta clave también es una parte integral del uso de algoritmos y, a menudo, esta clave se encuentra en la comunidad o a través de una «centralita».

Compresión de archivo

Cuando descarga un archivo .zip, extrae su contenido para poder usar todo lo que contiene. 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 diez años, tuve que extraer todo manualmente antes de poder ver algo más que los nombres de archivo dentro. Esto se debe a que lo que se almacenó en el disco como un archivo .zip no estaba en una forma utilizable. Piense 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 quiera llevarlo, puede doblarlo.

Los algoritmos de compresión se ajustan y optimizan específicamente para los tipos de archivos para los que están destinados. Los formatos de audio, por ejemplo, utilizan cada uno una forma diferente de almacenar datos que, cuando son decodificados por el códec de audio, darán como resultado un archivo de sonido similar a la forma de onda original. Para obtener más información sobre estas diferencias, consulte nuestro artículo anterior, ¿Cuáles son las diferencias entre todos estos formatos de audio? Los formatos de audio sin pérdida 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, aunque realmente no podemos escuchar la diferencia entre una pista MP3 y una pista de CD, ciertamente existe una brecha de información en la primera.

Cifrado de datos

Los algoritmos también se utilizan para proteger datos o líneas de comunicación. En lugar de almacenar datos para que utilicen 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 recuperar datos incluso cuando elimine archivos porque los datos en sí todavía están allí aunque la ubicación de transferencia haya desaparecido. Cuando los datos están encriptados, no todo lo almacenado se ve como lo es. Por lo general, se siente impredecible, 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 excelentes para esto, ya que pueden ser bastante grandes sin despertar sospechas, por ejemplo. Todo esto se hace utilizando algoritmos matemáticos, que toman un tipo de entrada y lo convierten en otro tipo de salida muy específico. Para obtener más información sobre cómo funciona el cifrado, consulte HTG explica: ¿Qué es el cifrado y cómo funciona?

Los algoritmos son herramientas matemáticas que ofrecen una variedad de usos en informática. Trabajan para proporcionar un camino entre un punto de partida y un punto final de manera coherente y proporcionan las instrucciones para seguirlo. ¿Sabes más de lo que hemos destacado? ¡Comparte tus explicaciones en los comentarios!

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *