Algoritmo
Un algoritmo (del latín, dixit algorithmus y éste a su vez del matemático persa al-Jwarizmi) es una lista bien definida, ordenada y finita de operaciones que permite hallar la solución a un problema. Dado un estado inicial y una entrada, a través de pasos sucesivos y bien definidos se llega a un estado final, obteniendo una solución. Los algoritmos son objeto de estudio de la algoritmia, y su definición queda formalizada por el modelo computacional de la Máquina de Turing.
Su importancia radica en mostrar la manera de llevar a cabo procesos y resolver mecánicamente problemas matemáticos o de otro tipo. Al igual que las funciones matemáticas, los algoritmos reciben una entrada y la transforman en una salida, comportándose como una caja negra. Sin embargo, para que un algoritmo pueda ser considerado como tal, debe ser determinista, eficiente, tener un número finito de instrucciones y debe acabar. Por determinista se entiende que, si se sigue el mismo proceso más de una vez, se llega siempre al mismo resultado; por eficiente, que el consumo de tiempo y memoria debe estar cercano o ser el menor posible.
El concepto de algoritmo, aunque similar y obviamente relacionado, no debe confundirse con el concepto de programa. Mientras el primero es la especificación de un conjunto de pasos (operaciones, instrucciones, órdenes,…) orientados a la resolución de un problema, el segundo es ese conjunto de operaciones especificadas en un determinado lenguaje de programación y para un computador concreto, susceptible de ser ejecutado (o compilado o interpretado). Un algoritmo, estrictamente hablando, no puede ejecutarse hasta que se implementa, ya sea en un lenguaje de programación, en un circuito eléctrico, en un aparato mecánico, usando papel y lápiz, o en algún otro modelo de computación.
En la vida cotidiana se emplean algoritmos en multitud de ocasiones para resolver diversos problemas. Algunos ejemplos se encuentran en los instructivos (manuales de usuario), los cuales muestran algoritmos para usar el aparato en cuestión o inclusive en las instrucciones que recibe un trabajador por parte de su patrón. También existen ejemplos de índole matemática, como el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclides para calcular el máximo común divisor de dos enteros positivos, o el método de Gauss para resolver un Sistema lineal de ecuaciones.
Nota del editor:
En términos generales, las recetas o algoritmos son soluciones a un cierto tipo de problemas, llamados problemas computacionales o algorítmicos. Un problema de este tipo puede ser visto como la búsqueda de una "caja negra", que está especificada con una precisa definición de las entradas legales y con una precisa definición de las salidas legales como una función de las entradas. Esta es la forma en que cada salida depende de la entrada, tal y como puede verse en el siguiente gráfico:
Un problema algorítmico se ha solucionado cuando se ha encontrado un algoritmo apropiado. Y entonces, la "caja negra" produce la salida apropiada desde cualquier entrada legal cuando se ejecuta el proceso que está prescrito y gobernado por este algoritmo. La palabra cualquier de la última frase es muy importante, no estamos interesados en soluciones que no funcionan para todas las entradas especificadas. Una solución que funcione bien para algunas entradas legales es fácil de obtener y no nos interesa.
Fuente: wikipedia.org