En matemticas, lgica, ciencias de la computacin y disciplinas relacionadas, un
algoritmo (del griego y latn, dixit algorithmus y este a su vez del matemtico persa Al-Juarismi 1 ) es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad. 2 Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solucin. Los algoritmos son el objeto de estudio de la algoritmia. 1
En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las instrucciones que recibe un trabajador por parte de su patrn. Algunos ejemplos en matemtica son el algoritmo de multiplicacin, para calcular el producto, el algoritmo de la divisin para calcular el cociente de dos nmeros, el algoritmo de Euclides para obtener el mximo comn divisor de dos enteros positivos, o el mtodo de Gauss para resolver un sistema lineal de ecuaciones.
CLASIFICACION DE LOS ALGORITMOS Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras. Son todos aquellos pasos o instrucciones descritos por medio de palabras que sirven para llegar a la obtencin de una respuesta o solucin de un problema cualquier
Cuantitativos: Son aquellos en los que se utilizan clculos numricos para definir los pasos del proceso. Son aquellos pasos o instrucciones que involucran clculos numricos para llegar a un resultado satisfactorio
Tipos de algoritmos de razonamiento: Algoritmos Estticos: son los que funcionan siempre igual, independientemente del tipo de problema tratado. Algoritmos Adaptativos: algoritmos con cierta capacidad de aprendizaje. Algoritmos Probabilsticos: son algoritmos que no utilizan valores de verdad booleanos sino continuos. Existen varios tipos de algoritmos probabilsticos dependiendo de su funcionamiento, pudindose distinguir: Algoritmos numricos: que proporcionan una solucin aproximada del problema. Algoritmos de Montecarlo: que pueden dar la respuesta correcta o respuesta errneas (con probabilidad baja). Algoritmos de Las Vegas: que nunca dan una respuesta incorrecta: o bien dan la respuesta correcta o informan del fallo. Algoritmo Cotidiano: es la serie de pasos que realizamos en nuestra vida diaria para realizar las diferentes tareas y actividades comunes, desde los pasos al levantarnos, as como ir de compras, etc. Algoritmo Voraz: un algoritmo voraz es aquel que, para resolver un determinado problema, sigue una meta heurstica consistente en elegir la opcin ptima en cada paso local con la esperanza de llegar a una solucin general ptima. Algoritmo Determinista: es un algoritmo que, en trminos informales, es completamente predictivo si se conocen sus entradas. Algoritmo Heurstico: es un algoritmo que abandona uno o ambos objetivos; por ejemplo, normalmente encuentran buenas soluciones, aunque no hay pruebas de que la solucin no pueda ser arbitrariamente errnea en algunos casos; o se ejecuta razonablemente rpido, aunque no existe tampoco prueba de que siempre ser as. Las heursticas generalmente son usadas cuando no existe una solucin ptima bajo las restricciones dadas (tiempo, espacio, etc.), o cuando no existe del todo. Algoritmo de escalada: la idea bsica consiste en comenzar con una mala solucin a un determinado problema y, repetidamente, aplicar optimizaciones a la misma hasta que esta sea ptima o satisfaga algn otro requisito. CARACTERISTICAS DE UN ALGORITMO Las caractersticas fundamentales que debe cumplir todo algoritmo son: Un algoritmo debe ser preciso e indicar el orden de realizacin de cada paso. Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez. Un algoritmo debe ser finito. el algoritmo se debe terminar en algn momento; o sea, debe tener un nmero finito de pasos. Un algoritmo debe ser legibles: El texto que lo describe debe ser claro, tal que permita entenderlo y leerlo fcilmente. Un algoritmo debe definir tres partes: Entrada, Proceso y Salida. Ejemplo: el algoritmo de receta de cocina se tendr: Entrada: ingrediente y utensilios. Proceso: elaboracin de la receta en la cocina. Salida: terminacin del plato (por ejemplo, Pollo al horno) PARTES DE UN ALGORITMO Todo Algoritmo debe tener las siguientes partes: Entrada de datos, son los datos necesarios que el algoritmo necesita para ser ejecutado. Proceso, es la secuencia de pasos para ejecutar el algoritmo. Salida de resultados, son los datos obtenidos despus de la ejecucin del algoritmo. TECNICAS DE PRESENTACION Para la representacin de un algoritmo, antes de ser convertido a lenguaje de programacin, se utilizan algunos mtodos de representacin escrita, grfica o matemtica. Los mtodos ms conocidos son: Diagramacin libre (Diagramas de flujo). Diagramas Nassi-Shneiderman. Pseudocdigo. Lenguaje natural (espaol, ingls, etc.). Frmulas matemticas. Diagramas de flujo o flujogramas: son representaciones grficas de los pasos necesarios que conllevan a la solucin algortmica de un problema. Para disearlos se utilizan determinados smbolos o figuras que representan una accin dentro del procedimiento.
Pseudocdigo, significa escribir las instrucciones del algoritmo en lenguaje natural, tal y como lo expresamos de manera cotidiana, este procedimiento facilita su escritura en los lenguajes de programacin. Segn Joyanes (2003): El pseudocdigo es un lenguaje