Si bien puede parecernos un término reciente, su origen en el ámbito informático se encuentra en el siglo XIX. Antes de explicar qué es, conozcamos su evolución histórica.
Historia de los algoritmos
Desde que Ada Lovelace creara el primer algoritmo informático hasta su utilización en aplicaciones tecnológicas tan recientes como la IA generativa, a lo largo de las décadas los algoritmos han ido evolucionando enormemente.
Como se explica en este artículo de Fundación Telefónica sobre la breve historia del algoritmo, después de Ada Lovelace el matemático George Boole sentó las bases de los ceros y unos (en su libro de 1847 The Mathematical Analysis of Logic) con los que se codifica la información digital; un sistema conocido como álgebra booleana.
Ya en el siglo XX, Leonardo Torres Quevedo -considerado como un personaje influyente de la robótica actual– desarrolló en 1912 un autómata conocido como El ajedrecista, la primera máquina capaz de jugar al ajedrez en la historia gracias a un algoritmo que, bajo ciertas condiciones, permitía ganar las partidas.
La formulación del algoritmo informático como tal llegó en la década de los años 30 del siglo XX con Alan Turing, quien además de precursor de la informática actual también es considerado uno de los padres de la IA.
Precisamente con la consolidación de la inteligencia artificial, los algoritmos han evolucionado hacia modelos próximos al pensamiento humano, como demuestra, por ejemplo, la victoria en 1996 del supercomputador Deep Blue al campeón mundial de ajedrez Gary Kasparov en una partida de esta disciplina.
Una sofisticación de los algoritmos que, por ejemplo, gracias a la IA generativa, permite crear imágenes, textos o sonidos.
Qué es un algoritmo
La RAE define algoritmo como un “conjunto ordenado y finito de operaciones que permite hallar la solución de un problema” o como el “método y notación en las distintas formas de cálculo”.
Así pues, podríamos resumir los algoritmos como instrucciones acotadas y ordenadas con las que conseguir un objetivo paso a paso.
Desde la entrada –input– hasta la salida –output– las instrucciones a seguir deben estar ordenadas contando con una serie finita de instrucciones para conseguir una determinada solución.
Los algoritmos presentan una serie de características comunes como son la precisión (no pueden contar con ambigüedades y tienen que ser objetivos), el orden (la secuencia no puede presentar dudas), la concreción (qué hacer o no hacer ante determinados supuestos), ser finitos (con un número concreto de datos) y definidos (no puede dar una respuesta diferente ante la recepción de un mismo input).
Tipos de algoritmos
Dependiendo de qué y cómo lo hace el algoritmo, encontramos los siguientes tipos.
Algoritmos de búsqueda
Seamos o no conscientes, los algoritmos de búsqueda son parte de nuestra vida cotidiana. A través de estos procedimientos, los motores de búsqueda recuperan y clasifican contenidos de sus bases de datos con el objetivo de ofrecer a los usuarios los resultados más ajustados a los criterios de búsqueda.
Este tipo de algoritmos permiten la recogida eficaz de datos si bien es cierto que pueden requerir recursos informáticos considerables.
Algoritmos probabilísticos
Aunque es cierto que no cumplen con la premisa de aportar soluciones óptimas, los algoritmos probabilísticos son útiles ante supuestos condicionados por limitaciones de memoria o de tiempo.
En este caso se ofrecen resultados adecuados, pudiendo suceder que ante los mismos datos se presenten soluciones diferentes o incluso en algún caso erróneas.
En algunos de estos supuestos, la posibilidad de error puede minimizarse si se alarga el periodo destinado a la realización de los cálculos.
Algoritmos de ordenamiento
Desde un listado, los elementos se reorganizan en función de una relación de orden, como su propio nombre indica, siendo el lexicográfico o el numérico de los más frecuentes.
De enorme relevancia para el mantenimiento y posterior manipulación de datos, ayudan a ordenarlos u optimizar su búsqueda, lo cual desemboca en la mejora de la experiencia de usuario.
Algoritmos predictivos
Mediante proyecciones lógicas futuras se buscan opciones probables de input. Es decir, se trata de una representación matemática de un factor que tiene lugar en la realidad y que puede ayudar a predecir, como se puede deducir de su nombre, posibles comportamientos futuros.