AlgoritmoThis is a featured page

Definición:

Un algoritmo es un conjunto de reglas o procedimientos definidos para resolver un problema por medio de un número finito de operaciones, propone principios racionales para no perderse, avanzar metódicamente y con seguridad, y progresar por caminos seguros y comprobados.

Su importancia radica en mostrar la manera de llevar a cabo procesos y resolver mecánicamente problemas matemáticos y de otro tipo.

Un ejemplo clásico de algoritmo es el denominado Algoritmo de Euclides, que se utiliza para calcular el máximo común divisor de dos números. El procedimiento es el siguiente:


  1. Se efectúa la división entera del número mayor entre el menor.
  2. Si el resto es cero el máximo común divisor es el divisor. Se finaliza.
  3. Si el resto no es cero, se intercambian los siguientes valores: el divisor se convierte en dividendo y el resto será el divisor.
  4. Se vuelve al paso primero.
Este ejemplo matemático puede parecer algo complejo para aquellos que no posean formación matemática. En la vida cotidiana, aunque no lo percibamos, se emplean continuamente procedimientos algorítmicos para resolver los problemas más comunes. Por ejemplo.

En la consulta de un diccionario para conocer el significado de una palabra siempre se emplea un algoritmo:


  1. Seleccionar el diccionario de la lengua que se trate.
  2. Buscar en él el conjunto de palabras que comienzan por la misma letra que la expresión cuyo significado se desea conocer.
  3. Dentro de un grupo seleccionado de términos se rechazan aquellos cuyo segundo carácter no coincida con el de la palabra en cuestión.
Paso a paso se irá restringiendo la busqueda. Se pueden presentar dos situaciones:
  • La palabra deseada se localiza. Fin del algoritmo.
  • La palabra buscada no se encuentra. Si no se ha cometido un error en el procedimiento de busqueda, se puede asegurar que la palabra no pertenece a dicho idioma.
Es evidente que este algoritmo finaliza en un número finito de pasos y cuando acaba da una solución o avisa que se ha cometido un error. Otra caracteristica de importante de los algoritmos es que sirven para resolver un determinado problema para cualquier conjunto de valores. El ejemplo anterior demuestra esta propiedad: Permite conocer el significado de cualquier palabra de un lenguaje.

Caracteristicas de los Algoritmos.


El científico de computación Donald Knuth ofreció una lista de cinco propiedades, que son ampliamente aceptadas como requisitos para un algoritmo:
  1. Carácter finito. "Un algoritmo siempre debe terminar después de un número finito de pasos".
  2. Precisión. "Cada paso de un algoritmo debe estar precisamente definido; las operaciones a llevar a cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso".
  3. Entrada. "Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes de que el algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas entradas son tomadas de conjuntos específicos de objetos".
  4. Salida. "Un algoritmo tiene una o más salidas: cantidades que tienen una relación específica con las entradas".
  5. Eficacia. "También se espera que un algoritmo sea eficaz, en el sentido de que todas las operaciones a realizar en un algoritmo deben ser suficientemente básicas como para que en principio puedan ser hechas de manera exacta y en un tiempo finito por un hombre usando lápiz y papel".
Knuth admite que, aunque su descripción pueda ser intuitivamente clara, carece de rigor formal, puesto que no está exactamente claro qué significa "precisamente definido", "de manera rigurosa y no ambigua", o "suficientemente básicas", y así sucesivamente.
A partir del carácter finito y de la salida se deduce que ante una misma situación inicial (o valores de entrada) un algoritmo debe proporcionar siempre el mismo resultado (o salida), con excepción de los algoritmos probabilistas.

Medios de expresión de un algoritmo.


Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programción entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico.
La descripción de un algoritmo usualmente se hace en tres niveles:
  1. Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.
  2. Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.
  3. Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones.

Diagramas de flujo


Los diagramas de flujo son descripciones gráficas de algoritmos; usan símbolos conectados con flechas para indicar la secuencia de instrucciones y están regidos por ISO.
Los diagramas de flujo son usados para representar algoritmos pequeños, ya que abarcan mucho espacio y su construcción es laboriosa. Por su facilidad de lectura son usados como introducción a los algoritmos, descripción de un lenguaje y descripción de procesos a personas ajenas a la computación.

Pseudocódigos


Pseudocódigo es la descripción de un algoritmo que asemeja a un lenguaje de programación pero con algunas convenciones del lenguaje natural. Tiene varias ventajas con respecto a los diagramas de flujo, entre las que se destaca el poco espacio que se requiere para representar instrucciones complejas. El pseudocódigo no está regido por ningún estándar. pseudo viene de falso y por ende es un codigo al que aunque es entendible no se aplica al proceso que debe realizar la maquina


Artículos relacionados: Diagramas de flujo, Pseudocodigos


No user avatar
mmunoz
Latest page update: made by mmunoz , May 26 2008, 6:54 AM EDT (about this update About This Update mmunoz Edited by mmunoz

7 words added

view changes

- complete history)
Keyword tags: None
More Info: links to this page
There are no threads for this page.  Be the first to start a new thread.