Saltar a contenido

Refinamiento de algoritmos

¿Cómo sería el algoritmo para determinar el mayor de tres números enteros?

  1. Ingresar 3 números enteros.
  2. Comparar el primer número con el segundo, deduciendo cuál es el mayor número.
  3. Comparar el mayor número deducido anteriormente con el tercer número, deduciendo cuál es el mayor número.
  4. Indicar cuál es el último mayor número deducido, siendo este el mayor número de los tres.

Así como está planteado, este algoritmo es muy difícil de implementar como programa, puesto que las instrucciones son muy generales y seguramente no existan comandos en ningún lenguaje que las representen.

Por lo tanto, será necesario descomponer el algoritmo en instrucciones más simples. Este procedimiento se denomina refinamiento del algoritmo.

Refinamiento de un algoritmo

Definición

El refinamiento de un algoritmo es un proceso que implica tomar un algoritmo general o abstracto y hacerlo más detallado y específico. Este proceso se realiza a menudo en pasos, comenzando con una descripción de alto nivel del algoritmo y luego añadiendo más y más detalles hasta que el algoritmo esté completamente especificado.

Este proceso también se conoce como refinamiento sucesivo o refinamiento paso a paso. Cada paso del proceso de refinamiento toma una parte del algoritmo y la descompone en pasos más pequeños y más detallados.

El objetivo del refinamiento de un algoritmo es crear un algoritmo que sea lo suficientemente detallado como para ser implementado en un programa de computadora. Al final del proceso de refinamiento, el algoritmo debe ser lo suficientemente específico como para que un programador pueda escribir código de computadora que implemente el algoritmo.

En resumen, el refinamiento de un algoritmo es un proceso de descomposición y especificación que transforma un algoritmo de alto nivel en un algoritmo detallado y específico que puede ser implementado en código de computadora.

Atomicidad de las instrucciones indivisibles o de un conjunto de instrucciones como un todo

En informática, se denomina instrucción atómica o instrucción particular única a un conjunto de instrucciones que al ser ejecutadas son vistas por el resto del sistema como una sola instrucción indivisible.

Para cumplir esto, se requieren dos condiciones:

  1. Ningún otro proceso puede tomar conocimiento de los cambios realizados hasta que se completen todas las instrucciones del conjunto

  2. Si no puede realizarse al menos una de las instrucciones del conjunto, el estado del sistema debe retrotraerse al inicio de las operaciones, tal como si ninguna hubiese sido ejecutada

Para el resto del sistema no es accesible ningún estado intermedio durante la ejecución del conjunto de operaciones.

Teniendo esto en mente, deberemos seguir refinando nuestro algoritmo hasta cumplir con estas dos condiciones.