De forma general, el Algoritmo puede ser definido como el objeto de estudio de la Algoritmia, así como el esquema o conjunto de instrucciones, que permiten la solución de un problema, por lo que entonces es ampliamente usado en disciplinas como la Lógica, las Matemáticas y las Ciencias de la computación, entre otras.
Sin embargo, al momento de querer tener una visión mucho más integral sobre el Algoritmo se deberán revisar algunos aspectos, como por ejemplo su definición precisa, las propiedades que se le atribuyen o las distintas formas de expresión de pueden tener. A continuación, las siguientes cuestiones.
Definición general de Algoritmo
Por consiguiente, podrá comenzarse por señalar que no existe una sola definición sobre el Algoritmo, pues en sus distintos momentos cada una de las disciplinas que hacen uso de ellas, así como diferentes autores ha promulgado su propia definición.
No obstante, a grandes rasgos, el Algoritmo puede definirse como un conjunto de instrucciones o reglas, que se presentan de forma no ambigua, definida, ordenada y limitada, que permite entonces que el usuario las siga, logrando con ellas desarrollar un proceso o resolver un problema, obteniendo los resultados esperados.
Por ende, el Algoritmo también le permite al usuario solucionar problemas, procesar datos, realizar cómputos, aprender a manejar maquinaria o incluso realizar actividades de su vida cotidiana. Algunos ejemplos de algoritmos de la vida diaria serían por ejemplo un manual de instrucciones o una receta culinaria, en tanto se presentan como una serie de pasos, que de cumplirse producirán un resultado específico.
Propiedades del Algoritmo
Con respecto a las propiedades o características que pueden encontrarse en el Algoritmo, las diferentes disciplinas coinciden en señalar las siguientes:
- Las instrucciones que componen el Algoritmo deben presentarse siempre de forma ordenada y secuencial.
- En este sentido, el Algoritmo siempre presenta una entrada, compuesta por el primer paso que inaugura el Algoritmo, y una salida, que sería el resultado final que se espera arroje el método que se ha seguido.
- Así mismo, las instrucciones del Algoritmo, además de secuenciales, deben ser no ambiguas, es decir, ser lo suficientemente precisas para que el usuario no tenga riesgo de confusión.
- El Algoritmo por lo general siempre conduce a una salida o solución. Sin embargo, no siempre es así, un ejemplo específico de esto será el caso de una versión adaptada de criba de Eratóstenes, en donde nunca se termine de calcular los números primos. Este proceso contendrá un número de pasos e instrucciones, que llevarán a un proceso infinito, por lo que no se puede decir que cuente con una salida, pero aun así al ser un grupo secuencial de instrucciones y pasos, entonces sí se puede afirmar que es un algoritmo.
- Por otro lado, el Algoritmo corresponde a un estado abstracto, pues cada algoritmo es independiente en su implementación.
- No permite la exploración, cada uno de sus pasos lleva al siguiente como única opción, es decir, el usuario solo puede seguir las instrucciones de forma secuencial para alcanzar la solución esperada.
- Otra de las propiedades del Algoritmo es ser finito, en tanto debe tener solo un número de instrucciones, puesto que si fuese un conjunto infinito, el usuario no podría seguirlo nunca o por completo.
- Al ser objetos abstractos, creados por un individuo, los Algoritmos tienen la posibilidad de ser registrados bajo las leyes de Derechos de autor, es decir, el creador de un Algoritmo puede registrarlo.
Medios de expresión de un Algoritmo
Pese a que se trata de un solo objeto abstracto, en realidad el Algoritmo tiene muchas formas de expresarse. En consecuencia, puede ser mostrado por medio de lenguajes de programación, pseudocódigos, diagramas de flujo o el simple lenguaje natural.
No obstante, por lo general, las diferentes disciplinas consideran que una expresión de este conjunto de instrucciones por medio de diagramas de flujo o pseudocódigos permite el planteamiento de las instrucciones de manera mucho más precisa, o incluso extensas. Así mismo, esta afirmación indica que estos dos tipos de expresión alejan al usuario de las imprecisiones que sí podría contener el lenguaje natural, por más esquemático que se presentarán las instrucciones.
Por otro lado, a la hora de hablar de la expresión de un Algoritmo, se deberán tomar en cuenta dos factores: los niveles de expresión y las principales manera. A continuación, una breve explicación de cada uno de ellos:
Niveles de descripción del Algoritmo
Las diferentes disciplinas señalan que todo algoritmo suele contar con tres niveles distintos de expresión, los cuales son los siguientes:
- Descripción de alto nivel: en esta parte del Algoritmo se debe establecer el problema que se tratará de solucionar con las instrucciones. Igualmente, se selecciona el modelo matemático, y se procede a explicar, por medio de ilustraciones y lenguaje natural, los pasos que se seguirán, para solucionar el problema.
- Descripción formal: en este nivel, por lo general se hace uso de un lenguaje de pseudocódigo, a fin de escribir los distintos pasos que pueden llevar a que se consiga una solución específica.
- Implementación: por su parte, la Implementación será un algoritmo que se exprese en un lenguaje de programación específico, que permita llevar a cabo las distintas instrucciones.
Formas de expresión de los algoritmos
Así mismo, las diferentes disciplinas consideran dos formas específicas de expresión de los algoritmos. A continuación, una explicación de cada uno de ellos:
- Diagrama de flujo: esta forma de expresión puede ser considerado como una descripción gráfica de los pasos que deberán seguirse, así como la entrada y la salida del conjunto de instrucciones. Por ende, el Diagrama de flujo se puede explicar como la descripción gráfica de los algoritmos.
- Pseudocódigo: por otra parte, también se encuentra que el pseudocódigo puede ser descrito como una descripción de algo nivel de este conjunto de instrucciones. Es decir, se constituya por una mezcla de lenguaje natural y un lenguaje de programación, basado en distintas convenciones sintácticas. Este tipo de expresión busca facilitarles a los usuarios el entendimiento de estas instrucciones.
Imagen: pixabay.com