Un algoritmo se puede concebir como una función que transforma los datos de un problema (entrada) en los datos de una solución (salida). Más aún, los datos se pueden representar a su vez como secuencias de bits, y en general, de símbolos cualesquiera.
Como cada secuencia de bits representa a un número natural (véase Sistema binario),
entonces los algoritmos son en esencia funciones de los números
naturales en los números naturales que sí se pueden calcular. Es decir
que todo algoritmo calcula una función donde cada número natural es la codificación de un problema o de una solución.
En ocasiones los algoritmos son susceptibles de nunca terminar, por ejemplo, cuando entran a un bucle infinito.
Cuando esto ocurre, el algoritmo nunca devuelve ningún valor de salida,
y podemos decir que la función queda indefinida para ese valor de
entrada.
Por esta razón se considera que los algoritmos son funciones parciales, es decir, no necesariamente definidas en todo su dominio de definición.
Cuando una función puede ser calculada por medios algorítmicos, sin
importar la cantidad de memoria que ocupe o el tiempo que se tarde, se
dice que dicha función es computable. No todas las funciones entre secuencias datos son computables. El problema de la parada es un ejemplo.
No hay comentarios:
Publicar un comentario