Está en la página 1de 4

2.

ALGORITMOS
En la resolucin de un problema se puede presuponer la existencia del problema as como la existencia de algn dispositivo para su solucin. Los requerimientos para un problema bien planteado son que (1) la informacin conocida ha sido claramente especificada; (2) se puede determinar cuando el problema ha sido resuelto; y (3) el problema no cambia durante su resolucin. El "dispositivo" que se usar para resolver el problema puede ser humano o mquina o una combinacin de los dos. Definicin (Algoritmo): Dados un problema y un dispositivo, un algoritmo es la caracterizacin precisa de un mtodo de resolucin al problema, presentado en un lenguaje comprensible al dispositivo. En particular, un algoritmo es caracterizado por las siguientes propiedades: 1. La aplicacin del algoritmo a un conjunto particular de entradas genera una secuencia finita de acciones 2. La secuencia de acciones tiene una nica accin inicial 3. Cada accin en la secuencia tiene un nico sucesor 4. La secuencia finaliza con la solucin al problema o con una indicacin de que el problema no tiene solucin para ese conjunto de datos. Definicin (Procedimiento efectivo): Es una descripcin finita, no ambigua, de un conjunto finito de operaciones. Un procedimiento efectivo que especifica una secuencia de operaciones y que siempre se detiene se llama algoritmo. Origen : La palabra algoritmo proviene del nombre de un autor persa : Abu Ja'far Mohammed ibn Msa al-Khowrizm (Siglo IX), autor del libro "Kitab al jabr w'al-muqabala" ("Reglas de Restauracin y Reduccin"). Khowrizm es hoy la pequea ciudad de Khiva. Caractersticas: Un algoritmo es similar a una receta, mtodo tcnica, procedimiento, rutina, slo que la palabra algoritmo implica algo un poco diferente. Adems de ser simplemente un conjunto finito de reglas que dan una secuencia de operaciones para resolver un tipo especfico de problemas, un algoritmo tiene algunas importantes caractersticas:

FINITUD. Un algoritmo siempre termina despus de un nmero finito de pasos. PRECISION. Cada paso de un algoritmo debe ser definido en forma precisa; las acciones a ser realizadas deben ser especificadas en forma rigurosa y no ambigua para cada caso. La expresin de un procedimiento (mtodo computacional) en un lenguaje de computador es lo que se conoce como programa. ENTRADA. Un algoritmo tiene cero o ms entradas, es decir cantidades que le son suministradas inicialmente. especfico de objetos. EFECTIVIDAD. Esto significa que todas las operaciones a ser realizadas en el algoritmo deben ser suficientemente bsicas de modo que puedan, en principio, ser realizadas en un tiempo finito por el hombre, usando lpiz y papel. SALIDA. Un algoritmo tiene una o ms salidas De las caractersticas anteriores, conviene destacar que FINITUD no es una restriccin lo suficientemente fuerte. Un algoritmo requiere no slo un nmero finito de pasos, sino que un nmero muy finito, es decir, un nmero razonable [Knuth, Donald E., "The Art Of Computer Programming" Vol 1, Addison Wesley ,1973] Es necesario tambin destacar que la aplicacin prctica de procedimientos (o mtodos computacionales) ha llevado a algunos a hablar de algoritmos infinitos, es decir, algoritmos que no terminan. Estos procedimientos son tiles cuando pese a requerir un nmero infinito de pasos para la obtencin de un resultado exacto, permiten la obtencin de resultados intermedios, que son una aproximacin razonable de lo esperado. Aqu es necesario que la secuencia de estimaciones sea convergente, o sea, a mayor nmero de pasos, mejor es la estimacin del resultado. Un ejemplo de este caso lo es el algoritmo (procedimiento en este caso) para calcular 'pi' usando la expresin Estas entradas son elegidas desde un conjunto

pi = 4( 1 - 1/3 + 1/5 - 1/7 + 1/9 - ...), el cual es de muy lenta convergencia. Para obtener 6 dgitos correctos de pi son necesarios 40.000 trminos de la serie; si ahora se requieren 12 dgitos correctos, entonces se necesitan 15.000.000.000 de trminos. As, para este tipo de procedimientos hay que considerar cuatro puntos principales: i) deben generar una secuencia de estimaciones ii) debemos ser capaces de determinar cuan buenas son las estimaciones iii) deben generar una secuencia convergente de estimaciones iv) debemos tener algunas indicaciones de la velocidad de convergencia. [Se recomienda leer Encyclopedia of Computer Science (Ralston &Reilly) pp. 27 - 39] Definicin (Pseudocdigo): Es un lenguaje algortmico que permite describir mtodos de solucin a problemas. Ejemplo : Alrededor de 1950, la palabra algoritmo comenz a ser asociada con ms frecuencia con el algoritmo de Euclides, un proceso para encontrar el mximo comn divisor de dos nmeros (esto aparece en el libro "Elementos" de Euclides, Proposiciones 1 y 2).

ALGORITMO DE EUCLIDES. Dados dos enteros positivos m y n, encontrar el mximo divisor comn, es decir, el mayor entero que divida a m y n. Entrada(s) : Nmeros enteros no negativos m y n Salida(s):

Ejemplo de instancia: Entrada : 105, 6 Salida : 3

Algoritmo: empezar ingresar m, n p m/n r m%n while r 0 hacer empezar mn nr p m/n r m%n fin deplegar r fin

El algoritmo de Euclides tiene la propiedad de finitud, aunque es verdad que para algunos valores de m y n el paso 1 puede ser ejecutado ms de un milln de veces. En relacin con la precisin, en el paso 1, se ha hecho la suposicin de que la persona o dispositivo que lo va a usar entiende exactamente lo que significa dividir m por n, y lo que es resto. En el algoritmo de Euclides hay dos entradas, m y n, que son elegidas desde el conjunto de los enteros positivos. Adems, las operaciones sobre enteros son efectivas, porque los enteros pueden ser representados sobre papel de una manera finita y existe al menos un mtodo para dividir uno por otro. Finalmente, el algoritmo presentado tiene una salida, n, que es el mximo divisor comn.

Se recomienda leer captulo 4 (Algoritmos) del libro Introduccin a las Ciencias de la Computacin del autor J.Glenn Brookshear.

También podría gustarte