A menudo el hablar de algoritmos pareciera ser un tema exclusivamente pensado para personas que trabajan en el ámbito de la computación. Sin embargo en ocasiones ocurre también que hay personas que aún estando involucradas en este ambiente no conocen tan importante concepto.
Los algoritmos se encuentran en el corazón de la computación, y aunque estan tan profundamente ligadas a esta ciencia, estos han existido incluso antes de que la computadora apareciera en escena. Sin embargo es un hecho que la creación y el diseño de estos aumentó a partir de la llegada de las computadoras.
De una manera “informal”, un algoritmo es un procedimiento bien definido que toma algún valor, o una serie de estos, como entrada y produce algún resultado como salida. Entonces un algoritmo es una secuencia de pasos que transforman la entrada en un resultado de salida.
Para muestra basta un botón, a continuación tenemos el algoritmo para la creación de una taza de té:
Algoritmo del TÉ
Entrada: tetera, agua, bolsa de té, taza, fuego
Salida: taza de té
Inicio:
— Llenar la tetera con agua
— Poner la tetera en el fuego
— Mientras no hierva el agua: <dejar calentando en la tetera>
— Introducir la bolsa de té en la tetera
— Esperar 1 minuto
— Servir té en la taza
Resultado de Salida: taza de té
Fin
Dentro del mundo de la computación, los algoritmos son una herramienta para resolver problemas de cómputo. Inicialmente la descripción del problema especifica en terminos muy generales la relación entre la entrada y la salida deseada, luego el algoritmo describe la manera de conseguir dicha relación mediante un procedimiento.
El exito de un algoritmo depende de su diseño, ya que solo se considera correcto si es que el resultado esperado es obtenido para cada entrada con la que sea alimentado.
Dependiendo del área de aplicación, el talento de los creadores y las personas que los implementan para crear programas a partir de ellos, los casos de exito son diversos, y en el día a día son utilizados para resolver desde las tareas más rutinarias hasta problemas complejos con alcances importantes.
Algunos ejemplos importantes son:
- El proyecto del genoma humano: en este caso, el objetivo de identificar todos los 100 mil genes en el ADN, determinando las secuencias de los 3 billones de pares de bases químicas que lo componen, fue posible gracias a sofisticados algoritmos aplicados sobre las bases de datos y estructuras de información que requerían de ser procesada para su ejecución.
- El internet: la capacidad que nos da internet para acceder a los contenidos y de exponer contenido propio se basan en su modelo de transferencia de información. Esto hace posible, no solo la existencia de todos los medios digitales que conocemos hoy en día, si no que ha revolucionado la manera en la que trabajamos, aprendemos, compramos, vendemos y un sin fin de tareas. De nuevo todo ellos basado en algoritmos, algunos creados para la administración del trafico de datos, otros para el manejo de búsquedas, etc.
- El comercio electrónico: el creciente nicho de consumo mediante internet a crecido exponencialmente en los último más, más aún a causa de la actual pandemia. Estas soluciones son posibles gracias no solo al internet, si no también a la implementación de algoritmos de logística, de inteligencia artificial (con la cual se generan modelos de recomendación de productos), asi como algoritmos criptográficos que permiten transferir información sensible para este tipo de transacciones, tales como tarjetas de credito, contraseñas y cuentas bancarias.
El diseño y análisis de los algoritmos son una rama de la computación con algunos temas abiertos de bastante complejidad, y sin duda el avance en esto temas, junto con el desarrollo de lenguajes de programación que permiten llevarlos a su implementación, han sido las bases para todo el desarrollo tecnológico a nivel de software que tenemos hasta hoy en día.