Anda di halaman 1dari 7

Definicin: Algoritmo Podemos encontrar muchas definiciones de algoritmo en los textos de programacin, todas ellas muy similares:

Conjunto ordenado y finito de pasos que permite hallar la solucin de un problema. Una secuencia de pasos que conducen a la realizacin de una tarea. Descripcin exacta de la secuencia en que se ha de realizar un conjunto de actividades tendientes a resolver un determinado tipo de problema o procedimiento. Conjunto de sentencias / instrucciones en lenguaje nativo, los cuales expresan la lgica de un programa. Es un sistema por el cual se llega a una solucin, teniendo en cuenta que debe de ser definido, finito y preciso. Toda receta, proceso, rutina, mtodo, procedimiento, tcnica, formula que resuelven un determinado problema. Conjunto de instrucciones concretas y detalladas mediante el cual se consigue una accin determinada. Conjunto de reglas que permiten obtener un resultado determinado a partir de ciertas reglas definidas. Descripcin precisa de una sucesin de instrucciones que permite llevar a cabo un trabajo en un nmero finito de pasos. Un conjunto de smbolos y procedimientos usados en la realizacin de un clculo.

Las definiciones mas completas o formales:

Secuencia finita de instrucciones, reglas o pasos que describen de forma precisa las operaciones de un ordenador debe realizar para llevar a cabo un tarea en un tiempo mas finito. [Donald E. Knuth, 1968] Descripcion de un esquema de comportamiento expresado mediante un reportorio finito de acciones y de informaciones elementales, identificadas, bien comprendidas y realizables a priori. Este repertorio se denomica lexico [Pierre Scholl, 1988] Un algoritmo es un conjunto finito de pasos definidos, estructurados en el tiempo y formulados con base a un conjunto finito de reglas no ambiguas, que proveen un procedimiento para dar la solucin o indicar la falta de esta a un problema en un tiempo determinado. [Rodolfo Quispe-Otazu, 2004]

Caracteristicas: Las caractersticas fundamentales que debe cumplir todo algoritmo son:

Ser definido: Sin ambigedad, cada paso del algoritmo debe indicar la accin a realizar sin criterios de interpretacin. Ser finito: Un nmero especfico y numerable de pasos debe componer al algoritmo, el cual deber finalizar al completarlos.

Tener cero o ms entradas: Datos son proporcionados a un algoritmo como insumo (o estos son generados de alguna forma) para llevar a cabo las operaciones que comprende. Tener una o ms salidas: Debe siempre devolver un resultado; de nada sirve un algoritmo que hace algo y nunca sabemos que fue. El devolver un resultado no debe ser considerado como nicamente verlos en forma impresa o en pantalla, como ocurre con las computadoras. Existen muchos otros mecanismos susceptibles de programacin que no cuentan con una salida de resultados de esta forma. Por salida de resultados debe entenderse todo medio o canal por el cual es posible apreciar los efectos de las acciones del algoritmo. Efectividad: El tiempo y esfuerzo por cada paso realizado debe ser preciso, no usando nada ms ni nada menos que aquello que se requiera para y en su ejecucin.

Historia: La palabra algoritmo proviene del nombre del matemtico llamado Abu Abdullah Muhammad bin Musa al-Khwarizmi (hay muchas variantes para el nombre al usar el alfabeto latin, tales como Al-Khorezmi, Al-Khwarizmi, Al-Khawarizmi, AlKhawaritzmi o Al-Khowarizmi) que vivi entre los siglos VIII y IX. Su trabajo consisti en preservar y difundir el conocimiento de la antigua Grecia y de la India. Sus libros eran de fcil comprensin, de ah que su principal valor no fuera el de crear nuevos teoremas o nuevas corrientes de pensamiento, sino el de simplificar las matemticas a un nivel lo suficientemente bajo para que pudiera ser comprendido por un amplio pblico. Cabe destacar cmo seal las virtudes del sistema decimal indio (en contra de los sistemas tradicionales rabes) y cmo explic que, mediante una especificacin clara y concisa de cmo calcular sistemticamente, se podran definir algoritmos que fueran usados en dispositivos mecnicos similares a un baco en vez de las manos. Tambin estudi la manera de reducir el numero de operaciones necesarias que formaban el clculo. Por esta razn, aunque no haya sido l el inventor del primer algoritmo, merece que este concepto est asociado a su nombre. Al-Khorezmi fue sin duda el primer pensador algortmico. Ya en el siglo XIX, se produjo el primer algoritmo escrito para un computador. La autora fue Ada Byron, en cuyos escritos se detallaban la mquina analtica en 1842. Por ello que es considerada por muchos como la primera programadora aunque, desde Charles Babbage, nadie complet su mquina, por lo que el algoritmo nunca se implement. La idea de resolver un problema o de disponer de un algoritmo es bastante antigua, tal es as, que exista la errada creencia que no haba problema que no se pudiera resolver y en base a ello, el matemtico David Hilbert quiso descubrir un algoritmo para los algoritmos. Hoy en dia gracias a los trabajos de Kurt Gdel, Alonzo Church (calculo lamba), Alan Turing (maquina de turing), se sabe que dentro del universo de problemas, una pequea parte es computable, luego que el objetivo que perseguia David Hilbert no era computable, es lo que se ha denominado como la computabilidad de los algoritmos.

Referencias:

Ricardo Baeza Yates. Computacin: de los Juegos a los Algoritmos, y de la Teora a la Prctica. Mayo 2003 Ricardo Baeza Yates. Algoritmia. Mayo 1995 Eduardo Ren Rodrguez vila. El Correcto y Completo Desarrollo de un Algoritmo. Mayo 2004

Algoritmo: Conjunto de operaciones que se utilizan para resolver un problema especfico. En este conjunto de instrucciones se indica la secuencia de operaciones que se deben realizar para, a partir de los datos de entrada, obtener el resultado buscado. El concepto de algoritmo es anterior a los ordenadores, y ampliamente utilizado en el mundo de la ciencia para la resolucin metdica de problemas. Sin embargo, con la aparicin de los ordenadores se comprob que era una herramienta ideal, ya que cualquier algoritmo puede transformarse en un programa informtico. Caractersticas del algoritmo: Tiene que ser finito (con un final), preciso (detallar el orden de las operaciones a realizar) y unvoco (al aplicar el algoritmo a los mismos datos de entrada, siempre se obtendr el mismo resultado a la salida). Un Algoritmo es un conjunto ordenado y finito de pasos o instrucciones que conducen a la solucin de un problema. La naturaleza de los problemas varan con el mbito o con el contexto donde estan planteados; as, existen problemas matemticos, qumicos, filosficos, etc. Segn esto la naturaleza de los algoritmos tambin es variada y no todos ellos pueden ser ejecutados por la computadora. En este curso consideramos aquellos algoritmos que expresan soluciones usando reglas cuantitativas cuyas instrucciones pueden ser introducidas en la computadora, a este tipo de algoritmos se denominan Algoritmos Computacionales. En la resolucin de un problema con la computadora la parte pensante esta en el algoritmo. As pues la eficacia de un programador no esta en conocer la herramienta de programacin, cosa necesaria, sino en saber resolver problemas con la computadora para lo cual se requiere conocer un concepto conocido como metodologa de la programacin cuyo eje central es el algoritmo. Una vez que la solucin de un problema ha sido expresada mediante un algoritmo el paso siguiente es convertirlo a programa para lo cual se elige un lenguaje de programacin. De modo que un programa resulta ser la implementacin de un algoritmo en un determinado lenguaje de programacin. Esto significa, por otro lado, que un algoritmo es independiente del lenguaje de programacin. PROBLEMA -> ALGORITMO -> PROGRAMA

El pseudocdigo es una herramienta algortmica que permite escribir pseudoprogramas (una imitacin de un programa real) utilizando un lenguaje de pseudoprogramacin que es una imitacin de los lenguajes de programacin de alto nivel. As, un pseudocdigo es una combinacin de smbolos (+, -, *, /, %, >, >=,

<, <=, !=, ==, y, o, no), trminos (Leer, Imprimir, Abrir, Cerrar, Hacer...Mientras, Mientras...Hacer, Para...Mientras, etc) y otras caractersticas comnmente utilizadas en uno o ms lenguajes de alto nivel. No existen reglas que determinen que es o no es un pseudocdigo, sino que vara de un programador a otro. El objetivo del pseudocdigo es permitir al programador centrarse en los aspectos lgicos de la solucin evitando las reglas de sintxis de un lenguaje de programacin. Posteriormente el pseudocdigo debe ser traducido a programa usando un lenguaje de programacin de alto nivel como Java, C++, C, etc. Ejemplo INICIO Llenar Echar Echar Remover FIN 2.1:Disee un algoritmo para preparar una limonada.

una jarra con un litro el jugo de tres cuatro cucharadas de el agua hasta disolver completamente

de

el

agua limones azucar azucar

Ejemplo 2.2 :- Disee un algoritmo que permita hallar la suma y el promedio de tres nmeros. INICIO LEER suma promedio IMPRIMIR FIN Notas:* El tmino LEER significa obtener un dato de algn dispositivo de entrada, como el teclado, y almacenarlo en una variable. Una variable es una localizacin en la memoria que tiene un nombre y cuyo contenido puede cambiar a lo largo de la ejecucin de un programa. As numero1, numero2 y numero3 son variables. * El trmino IMPRIMIR significa mostrar el valor de una variable en algn dispositivo de salida, como la pantalla.

numero1, numero1 =

numero2, numero2 suma suma, +

+ /

numero3 numero3 3 promedio

UNIVERSIDAD DE LAS AMRICA TECNOLOGA EN REDES Y TELECOMUNICACIONES Carlos Alberto Herrera Lema
ALGORITMOS MATEMATICOS

19-08-210 ALGORITMOS TRC260-40/ 118


TIPOS DE ALGORITMOS
Algoritmo de Factorizacin de enteros o Divisin por tentativa

La divisin por tentativa es el algoritmo de factorizacin de enteros ms sencillo y fcil de entender. Dado un entero compuesto n (a lo largo de este artculo, n ser "el entero a factorizar"), la divisin por tentativa consiste en intentar dividir n entre todo nmero primo menor o igual a . Si se encuentra un nmero que es divisor den, en divisin entera, ese nmero es un factor de n.
Algoritmo de Euclides

El algoritmo de Euclides es un mtodo antiguo y eficaz para calcular el mximo comn divisor (MCD). Fue originalmente descrito por Euclides en su obra Elementos. El algoritmo de Euclides extendido es una ligera modificacin que permite adems expresar al mximo comn divisor como una combinacin lineal. Este algoritmo tiene aplicaciones en diversas reas como lgebra, teora de nmeros y ciencias de la computacin entre otras. Con unas ligeras modificaciones suele ser utilizado en computadoras electrnicas debido a su gran eficiencia.
Algoritmo original de Euclides

En la concepcin griega de la matemtica, los nmeros se entendan como magnitudes geomtricas. Un tema recurrente en la geometra griega es el de la conmensurabilidad de dos segmentos: dos segmentos (nmeros) AB y CD son conmensurables cuando existe un tercer segmento PQ el cual cabe exactamente un nmero entero de veces en los primeros dos, es decir, PQ mide (mensura: medida) a los segmentos AB y CD.

No cualquier par de segmentos es conmensurable, como encontraron los pitagricos cuando establecen que no es un nmero racional, pero en el caso de dos segmentos conmensurables se desea hallar la mayor medida comn posible.

Euclides describe en la proposicin VII.2 de sus Elementos un mtodo que permite hallar la mayor medida comn posible de dos nmeros (segmentos) que no sean primos entre s, aunque de acuerdo a la poca tal mtodo se explica en trminos geomtricos, lo que se ilustra en la siguiente transcripcin.
Algoritmo de Euclides tradicional

Al dividir a entre b (nmeros enteros), se obtiene un cociente q y un residuo r. Es posible demostrar que el mximo comn divisor de a y b es el mismo que el de b y r . ste es el fundamento principal del algoritmo. Tambin es importante tener en cuenta que el mximo comn divisor de cualquier nmero a y 0 es precisamente a. Para fines prcticos, la notacin mcd(a, b) significa mximo comn divisor de a y b.
Algoritmo de Euclides extendido

El algoritmo de Euclides extendido permite, adems de encontrar un mximo comn divisor de dos nmeros enterosa y b, expresarlo como la mnima combinacin lineal de esos nmeros, es decir, encontrar nmeros enteros s y t tales que mcd(a, b) =as +b t. Esto se generaliza tambin hacia cualquier dominio euclidiano.
Eliminacin de Gauss-Jordn

En matemticas, la eliminacin Gaussiana, eliminacin de Gauss o eliminacin de Gauss-Jordn, llamadas as debido a Carl Friedrich Gauss y Wilhelm Jordn, son algoritmos del lgebra lineal para determinar las soluciones de un sistema de ecuaciones lineales, encontrar matrices e inversas. Un sistema de ecuaciones se resuelve por el mtodo de Gauss cuando se obtienen sus soluciones mediante la reduccin del sistema dado a otro equivalente en el que cada ecuacin tiene una incgnita menos que la anterior. Cuando se aplica este proceso, la matriz resultante se conoce como: "forma escalonada".
Algoritmo de Horner

En el campo matemtico del anlisis numrico, el Algoritmo de Horner, llamado as por William George Horner, es un algoritmo para evaluar de forma eficiente polinomios de una forma monomial

Algoritmo de Strassen

En la disciplina matemtica del lgebra lineal, el algoritmo de Strassen, llamado as por Volker Strassen, es un algoritmo usado para la multiplicacin de matrices. Es asintticamente ms rpido que el algoritmo de multiplicacin de matrices estndar, pero ms lento que el algoritmo ms rpido conocido, y es til en la prctica para matrices grandes.
Algoritmo AKS o Test de primalidad AKS

El test de primalidad AKS o algoritmo AKS es un algoritmo determinista que decide en tiempo polinmico si un nmero natural es primo o compuesto. Fue diseado por los cientficos de computacin Manindra Agrawal, Neeraj Kayal y Nitin Saxena del Instituto tecnolgico hind de Kanpur en el ao 2002, y eventualmente mejorado por otros investigadores del rea. Su descubrimiento Su descubrimiento pone fin a uno de los ms grandes problemas de la teora de nmeros y teora de la COMPLEJIDAD COMPUTACIONAL.

Anda mungkin juga menyukai