martes, 25 de junio de 2019

Definicion y caracteristicas del Algoritmos

Definición

En general, no existe ningún consenso definitivo en cuanto a la definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un cálculo o un problema abstracto, es decir, que un número finito de pasos convierten los datos de un problema (entrada) en una solución (salida).[1][2][3][4][5][6]​ Sin embargo cabe notar que algunos algoritmos no necesariamente tienen que terminar o resolver un problema en particular. Por ejemplo, una versión modificada de la criba de Eratóstenes que nunca termine de calcular números primos no deja de ser un algoritmo.[7]
A lo largo de la historia varios autores han tratado de definir formalmente a los algoritmos utilizando modelos matemáticos. Esto fue realizado por Alonzo Church en 1936 con el concepto de "calculabilidad efectiva" basada en su cálculo lambda y por Alan Turing basándose en la máquina de Turing. Los dos enfoques son equivalentes, en el sentido en que se pueden resolver exactamente los mismos problemas con ambos enfoques.[8][9]​ Sin embargo, estos modelos están sujetos a un tipo particular de datos como son números, símbolos o gráficas mientras que, en general, los algoritmos funcionan sobre una vasta cantidad de estructuras de datos.[3][1]​ En general, la parte común en todas las definiciones se puede resumir en las siguientes tres propiedades siempre y cuando no consideremos algoritmos paralelos:[7]
  • Tiempo secuencial. Un algoritmo funciona en tiempo discretizado –paso a paso–, definiendo así una secuencia de estados computacionales por cada entrada válida (la entrada son los datos que se le suministran al algoritmo antes de comenzar).
  • Estado abstracto. Cada estado computacional puede ser descrito formalmente utilizando una estructura de primer orden y cada algoritmo es independiente de su implementación (los algoritmos son objetos abstractos) de manera que en un algoritmo las estructuras de primer orden son invariantes bajo isomorfismo.
  • Exploración acotada. La transición de un estado al siguiente queda completamente determinada por una descripción fija y finita; es decir, entre cada estado y el siguiente solamente se puede tomar en cuenta una cantidad fija y limitada de términos del estado actual.
En resumen, un algoritmo es cualquier cosa que funcione paso a paso, donde cada paso se pueda describir sin ambigüedad y sin hacer referencia a una computadora en particular, y además tiene un límite fijo en cuanto a la cantidad de datos que se pueden leer/escribir en un solo paso. Esta amplia definición abarca tanto a algoritmos prácticos como aquellos que solo funcionan en teoría, por ejemplo el método de Newton y la eliminación de Gauss-Jordan funcionan, al menos en principio, con números de precisión infinita; sin embargo no es posible programar la precisión infinita en una computadora, y no por ello dejan de ser algoritmos.[10]​ En particular es posible considerar una cuarta propiedad que puede ser usada para validar la tesis de Church-Turing de que toda función calculable se puede programar en una máquina de Turing (o equivalentemente, en un lenguaje de programación suficientemente general):[10]             








CARACTERISTICAS DE LOS ALGORITMOS

Un algoritmo, además de ser una secuencia de acciones lógicas que hay que realizar para completar un procesotambien requieren cumplir con las 5 condiociones siguiente:


1.- Finitud. Un algoritmo debe terminar en un número finito de pasos-

2.- Definitividad. Cada paso del algoritmo debe definirse de modo preciso; las acciones a realizar deben de estar especificadas rigurosamente y sin ambiguuedad para cada caso.

3.- Entrada. Un algoritmo tiene cero o mas entradas. Esto es las cantidades de datos de inicio se generan en el mismo algoritmo o se conocen previamente.

4.- Salida.
 Un algoritmo tiene una o más salidas. Es decir, hay datos o cantidades al término del algoritmo que tiene una relación especifica con los datos o conatidades de entrada.
5.- Efectividad.
 El algoritmo debe de ser efectivo. Esto significa que todad las operaciones deben ser suficientemente sencillas para poder en principio ser realizadas de modo exacto y en un tiempo finito por un procesador.




Image result for algoritmos



































No hay comentarios:

Publicar un comentario