23 de abril de 2026

¿Qué es el algoritmo?

 


Por Hugo Jara Goldenberg

Hay un término muy especializado, propio de quienes trabajan en la industria informática que se ha hecho popular en el gran público: se trata del algoritmo.

Todo el mundo habla del algoritmo, es el responsable por los videos que se nos ofrecen en nuestras redes, o de las ofertas comerciales con que nos bombardean a raíz de nuestro historial de navegación en la web. Si un emprendimiento digital no funciona o un creador de contenidos pierde visitantes, el culpable es el omnipresente algoritmo. Ahora, con la popularización de las herramientas de Inteligencia Artificial, el público identifica al diálogo inteligente que se produce con esos ambientes, como una interacción con el algoritmo.

Así, para la mayoría de las personas, el algoritmo es un ente con voluntad propia que nos ayuda, o a veces perjudica, en la interacción con la tecnología informática.

¿Pero qué es realmente un Algoritmo?

En términos simples, un algoritmo es un conjunto de instrucciones paso a paso, ordenadas y finitas, diseñadas para resolver un problema específico, o realizar una tarea.

Sin embargo, no solo los computadores usan algoritmos, también nosotros, los humanos de carne y hueso, los utilizamos todo el tiempo, y podemos imaginarlo como una "receta" o procedimiento que indica exactamente qué hacer para llegar a un resultado deseado.

Aquí hay un ejemplo sencillo de un procedimiento de cocina, que tiene las mismas características de un algoritmo, se trata de una receta para preparar un huevo frito, la que se muestra a continuación estructurada paso a paso, para destacar sus componentes lógicos y su naturaleza secuencial.

  • Paso 1: Colocar la sartén sobre el quemador de la cocina.
  • Paso 2: Encender el quemador a fuego medio.
  • Paso 3: Verter el aceite en el sartén.
  • Paso 4: Evaluar el estado del aceite.
    • Si el aceite está caliente y burbujea ligeramente -> Avanzar al Paso 5.
    • Si no -> Esperar 10 segundos y volver a evaluar el Paso 4.
  • Paso 5: Romper la cáscara del huevo.
  • Paso 6: Verter el contenido (clara y yema) en el centro de la sartén.
  • Paso 7: Espolvorear la pizca de sal sobre el huevo.
  • Paso 8: Mientras la clara del huevo siga transparente:
    • Esperar algunos segundos.
    • Seguir en el paso 8, hasta que la clara se vuelve blanca y firme.
  • Paso 9: Apagar el quemador de la cocina.
  • Paso 10: Usar la espátula para retirar el huevo de la sartén.

 

Como vemos, este es un ejemplo muy didáctico porque, al igual que un algoritmo informático, muestra que las instrucciones deben estar ordenadas lógicamente y realizarse respetando estrictamente dicho orden (no se puede romper el huevo antes de encender el fuego y esperar un buen resultado). También incluye condicionales (paso 5) que adaptan el proceso a la realidad física (esperar a que el aceite esté caliente), y utiliza ciclos de comprobación de estado (Paso 8) , que es revisar la cocción de la clara repetidamente hasta que se cumpla la condición de salida, que es que la clara se vuelva blanca y firme.

Es importante aclarar que cualquier programa informático, debe ser diseñado originalmente como un algoritmo, y posteriormente podrá ser llevado a un lenguaje de programación, que es como será presentado al computador para su ejecución. Cualquier aplicación o función que utilizamos cuando interactuamos con nuestro computador, el teléfono celular o cualquier dispositivo “smart” (TV, equipos musicales, relojes, etc), es un programa informático, que se creó a partir de un algoritmo. Parte importante del trabajo de los profesionales informáticos consiste en crear algoritmos, que posteriormente se transforman en programas o funciones de diversa naturaleza, con los que interaccionamos en infinidad de artefactos y artilugios presentes en la vida cotidiana.

 

Características de un Algoritmo

Para que una serie de pasos o un procedimiento sea considerada un algoritmo, debe cumplir con las siguientes condiciones:

  • Precisión: Cada paso debe estar claramente definido sin ambigüedades.
  • Determinismo: Si se repite algoritmo con los mismos datos de entrada, siempre se debe obtener el mismo resultado.
  • Finitud: El algoritmo debe tener un número limitado de pasos y terminar en algún momento.
  • Entrada (Input): Debe existir información inicial necesaria para comenzar.
  • Salida (Output): Debe haber un resultado o solución al finalizar el proceso.

 

Representación de Algoritmos

En la industria informática, los algoritmos se representan de dos formas:

Diagrama de Flujo: Es una representación gráfica que utiliza figuras geométricas (óvalos, rombos, rectángulos) conectadas por flechas para mostrar la secuencia lógica.

Pseudocódigo: Es una forma de escribir los pasos usando un lenguaje más humano, pero con una estructura similar a la de un lenguaje de programación.

Los programadores cuando diseñan un algoritmo eligen una de las dos formas para representarlo. Para entender estas formas de representación vamos a crear un algoritmo muy sencillo que reciba dos números y muestre el resultado de la suma de ellos.

Lo primero que hay que hacer es establecer los pasos lógicos del algoritmo:

Paso 1: Obtener el primer número a sumar

Paso 2: Obtener el segundo número a sumar

Paso 3: Realizar la suma

Paso 4: Mostar el resultado de la suma

A continuación, se presenta este algoritmo como como Pseudocódigo y como Diagrama de Flujo. Para generar estas representaciones se utilizó el software PSeint, muy popular en las asignaturas en donde los estudiantes de las carreras de informática aprenden a programar.

Representación del algoritmo SUMAR como Pseudocódigo

 

Ahora, El mismo algoritmo representado como diagrama de flujo

Finalmente, para transformar este algoritmo en un programa, debemos codificarlo en algún lenguaje de programación. Existen muchos lenguajes de programación, con distintas sintaxis, en este ejemplo utilizaremos el lenguaje Visual Basic:

 

Module SUMAR

                        Sub Main()

                                                Dim num1 As String

                                                Dim num2 As String

                                                Dim suma As Double

                                                Console.WriteLine("Ingrese el primer número")

                                                num1 = Console.ReadLine()

                                                Console.WriteLine("Ingrese el segundo número")

                                                num2 = Console.ReadLine()

                                                suma = num1+num2

                                                Console.WriteLine("El resultado de la suma es: ",suma)

                        End Sub

End Module

 

Ahora ya tenemos nuestro programa en lo que se conoce como código fuente, el cual a continuación se lleva al computador para que sea traducido al código de máquina, que es el traspaso del programa a una versión en binario, es decir escrita solo con unos y ceros, que es lo finalmente entienden los circuitos del computador. En este momento el programa ya está listo para ser “ejecutado” o “procesado”, según la jerga informática. Si procesamos este programa en un computador, aparecerán en la pantalla los mensajes solicitando los dos números, y a continuación se mostrará en pantalla la suma respectiva.

 

¿Por qué son importantes?

En resumen, los algoritmos son el corazón de la tecnología informática. Todos los programas, desde los más simples a los más complejos, surgen de un diseño inicial como algoritmo.

Podemos decir que un algoritmo es como el plano de un programa, y permite encapsular el intelecto y la lógica humana en un formato estructurado. Esto garantiza que, sin importar cuántas veces se ejecute el proceso o en qué hardware lo procesemos, los pasos seguirán siendo consistentes y el resultado final será siempre el mismo. Es la base que permite la automatización confiable de procesos a velocidades de millones de operaciones por segundo.

Historia de los algoritmos

Aunque, los algoritmos se asocian con computadoras y la modernidad, en realidad son un constructo matemático muy antiguo, tanto que podemos decir que son parte de la historia humana desde hace milenios. En las civilizaciones antiguas ya existían procedimientos sistemáticos (algoritmos) para resolver problemas.

En las primeras civilizaciones de Mesopotamia y Egipto ya se empleaban procedimientos y reglas paso a paso, para realizar cálculos aritméticos para resolver problemas administrativos asociados a cosechas, cobro de impuestos y otros.

En la Antigua Gracia, el matemático Euclides describió un procedimiento para calcular el máximo común divisor entre dos números, uno de los primeros ejemplos de algoritmo formalmente definidos.

En el mundo islámico encontramos al matemático persa Al-Juarismi (Al-Khwarizmi), quien escribió tratados sobre aritmética y álgebra en el siglo IX. Su obra, traducida al latín en Europa, dio origen al término “algorismus”, que luego evolucionó a “algoritmo”.

En la edad moderna los algoritmos comienzan a vincularse con el cálculo y las máquinas, y vemos a personajes como Isaac Newton que creó algoritmos iterativos para encontrar raíces de funciones complejas; o Blaise Pascal y Gottfried Wilhelm Leibniz quienes desarrollaron calculadoras mecánicas para ejecutar algoritmos de operaciones aritméticas.

También encontramos a  Charles Babbage quien diseñó la máquina analítica, considerada precursora del computador, y Ada Lovelace (hija del poeta victoriano Lord Byron) quien diseñó el primer algoritmo destinado a ser ejecutado por una máquina, y es recordada como la primera programadora de la historia.

Durante el siglo XX el concepto toma un carácter más riguroso dentro de la lógica y la computación teórica, principalmente gracias al aporte de Alan Turing, quien introduce la máquina de Turing, un modelo abstracto que define qué es computable y de define al algoritmo como un procedimiento finito, preciso y efectivo para resolver un problema.

 Desde la segunda mitad del siglo XX hasta hoy Los algoritmos se convierten en el núcleo de la informática, el software y la inteligencia artificial, y su utilización se expande a todos los ámbitos de la sociedad.

 

El algoritmo como mecanismo de traducción ontológica

Sin embargo, el algoritmo no es solo una "receta" de programación, como la mayoría de las personas lo entiende; es por sobre todo un mecanismo de traducción ontológica. Debemos recordar que la ontología es la rama de la filosofía que estudia el ser, la existencia y la realidad.

Para entender el verdadero poder y valor de los algoritmos, debemos comprender cómo se conecta la naturaleza continua y analógica de la realidad, con la tecnología digital.

En nuestra experiencia cotidiana, aspectos de la realidad como el espacio y el tiempo existen en un espectro analógico y continuo. Entre dos puntos en el espacio o entre un instante de tiempo y el siguiente, existe una infinidad de fracciones posibles. Sin embargo, un algoritmo opera en un universo estrictamente finito, binario y paso a paso.

Por lo tanto, para que el mundo físico pueda ser procesado por una máquina, el algoritmo debe fragmentar ese continuo de la realidad en "paquetes" o "estados" discretos indivisibles (ceros y unos). Ontológicamente, el algoritmo obliga a la realidad a cambiar su forma de ser (continua), para poder existir dentro del sistema computacional (discreto).

Por lo tanto, afirmar que los algoritmos son un medio para “discretizar el continuo”, es una cuestión profundamente ontológica porque nos obliga a preguntarnos y cuestionarnos cómo definimos y entendemos la naturaleza de la realidad y qué consideramos que "existe" dentro de un sistema lógico o computacional.

Al discretizar el continuo, los algoritmos construyen un nuevo estrato ontológico: la realidad virtual o digital. En este nuevo mundo, las leyes de la “física continua” son reemplazadas por las reglas matemáticas discretas impuestas por el algoritmo. Pero esta transformación plantea una pregunta ontológica crucial: el modelo digitalizado que crea el algoritmo, ¿es una réplica fiel de la realidad o es una realidad completamente nueva?, claramente nadie tiene la respuesta a esta inquietante pregunta.

En resumen, los algoritmos actúan como un filtro que traduce la sustancia infinita y fluida del universo físico al estado finito y estructurado del mundo digital, redefiniendo en el proceso lo que significa "ser" dentro de la máquina.

Finalmente, entender un algoritmo como un contructo matemático que discretiza y simplifica la naturaleza continua e infinita de la realidad física, es aceptar que la informática - al igual que la física moderna (con el Principio de la Indeterminación de Heisenberg)  o las matemáticas (con el Principio de Incompletitud de Godel) -, jamás nos podrá ofrecer una visión exacta de la realidad sino solo un modelo aproximado, sumamente útil y aparentemente perfecto e infalible, pero ontológicamente incompleto y acotado. Así, con humildad debemos aceptar que el Universo, en su totalidad continua y compleja, jamás podrá ser comprendido o representado de manera perfecta por ningún sistema humano, ya sea matemático, físico o computacional.

 

Reflexiones finales

A lo largo de estas líneas se ha intentado explicar qué es un algoritmo, analizándolo desde su utilidad práctica, su historia milenaria, hasta su límite ontológico. Vivimos inmersos en una era digital donde pareciera que todo el conocimiento humano está al alcance de la mano. Los sistemas informáticos gobiernan todos los ámbitos de la vida moderna, asistiéndonos con una precisión matemática que casi roza lo milagroso y sobrenatural.

Sin embargo, al apagar el computador y al alejarnos de las interfaces lógicas de la tecnología digital, regresamos al mundo del continuo. Es en esa realidad analógica donde reside verdaderamente nuestra naturaleza y experiencia vital. Ningún software, por perfecto que sea su código o iteración, puede simular la consciencia, las emociones ni los insondables sentimientos humanos.

Los algoritmos son, en definitiva, nuestra mejor herramienta para intentar comprender la realidad y desenvolvernos en la vida moderna, pero no son la realidad en sí. La vida real, con sus imprevistos, sus emociones y su majestuosidad infinita, siempre será una experiencia profundamente humana, hermosa y trascendente, pero definitivamente nunca computable.


Referencias bibliográficas

La Información: Historia y Realidad; James Gleick; Editorial Crítica; 2012

Del ábaco a la revolución digital; Vicenc Torra; RBA Coleccionables S.A.; 2012

Historia de las Matemáticas; Sergio Castro; The Galobart Books; 2019

Métodos numéricos; Francis Scheid, Rosa Elena Di Constanz0; MacGrawHill; 1993

Metodología de la programación; Osvaldo Cairó; Editorial Alfaomega; 2005


No hay comentarios.: