Las cinco condiciones de un algoritmo

Los algoritmos, además de ser un conjunto finito de reglas que dan lugar a una secuencia de operaciones para resolver un tipo específico de problemas, deben cumplir con cinco importantes condiciones.

Las cinco condiciones mostradas, reducen significativamente el espectro tan amplio que hasta ahora se ha manejado como algoritmo.

Así por ejemplo, aunque una receta de cocina podría considerarse como un algoritmo, es común encontrar expresiones imprecisas en ella que dan lugar aambigüedad (violando la condición 2), tales como “añádase una pizca de sal”, “batir suavemente”, etc., invalidando con ello la formalidad de un algoritmo dentro del contexto que nos interesa.

Cinco condiciones con las que debe cumplir un algoritmo

1.Finitud:Un algoritmo tiene que acabar siempre tras un número finito de pasos. (Un procedimiento que tiene todas las características de un algoritmo salvo que posiblemente falla en su finitud, se conoce como método de cálculo.)
2.Definibilidad:Cada paso de un algoritmo debe definirse de modo preciso; las acciones a realizar han de estar especificadas para cada caso rigurosamente y sin ambigüedad.
3.Conjunto de entradas:Debe existir un conjunto especificado de objetos, cada uno de los cuales constituye los datos iniciales de un caso particular del problema que resuelve el algoritmo. A este conjunto se le denomina conjunto de entradas del algoritmo.
4.Conjunto de salidas:Debe existir un número especificado de objetos, cada uno de los cuales constituye la salida o respuesta que debe obtener el algoritmo para los diferentes casos particulares del problema. A este conjunto se le denomina conjunto de salidas del algoritmo. Para cada entrada del algoritmo, debe existir una salida asociada que constituye la solución al problema particular determinado por dicha entrada.
5.Efectividad:Un algoritmo debe ser efectivo. Esto significa que todas las operaciones a realizar por el algoritmo deben ser lo bastante básicas para poder ser efectuadas de modo exacto, y en un lapso de tiempo finito por el procesador que ejecute el algoritmo.