viernes, 26 de marzo de 2010

I. DEFINICIÓN Y CARACTERÍSTICAS DE UN ALGORITMO


1.1 ¿Qué es Algoritmo? La palabra algoritmo se deriva de la traducción al latín de la palabra árabe Al-khowarizmi(hay muchas variantes para el nombre al usar el alfabeto latin, tales como Al-Khorezmi, Al-Khwarizmi, Al-Khawarizmi, Al-Khawaritzmi o Al-Khowarizmi 780-850), nombre de un matemático y astrónomo árabe que escribió un tratado sobre manipulación de números y ecuaciones en el siglo IX. Su trabajo consistió en preservar y difundir el conocimiento de la antigua Grecia y de la India. Sus libros eran de fácil comprensión, de ahí que su principal valor no fuera el de crear nuevos teoremas o nuevas corrientes de pensamiento, sino el de simplificar las matemáticas a un nivel lo suficientemente bajo para que pudiera ser comprendido por un amplio público. Cabe destacar cómo señaló las virtudes del sistema decimal indio (en contra de los sistemas tradicionales árabes) y cómo explicó que, mediante una especificación clara y concisa de cómo calcular sistemáticamente, se podrían definir algoritmos que fueran usados en dispositivos mecánicos similares a un ábaco en vez de las manos. También estudió la manera de reducir el numero de operaciones necesarias que formaban el cálculo. Por esta razón, aunque no haya sido él el inventor del primer algoritmo, merece que este concepto esté asociado a su nombre. Al-khowarizmi fue sin duda el primer pensador algorítmico.
• 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 solución o indicar la falta de esta a un problema en un tiempo determinado.
• Un ALGORITMO es una secuencia finita ‘bien definida’ de tareas, cada una de las cuales se puede realizar con una cantidad de recursos finitos. Se dice que una tarea esta ‘bien definida’, si se sabe de manera precisa las acciones requeridas para su realización. Aunque los recursos que debe utilizar cada tarea deben ser finitos estos no están limitados, es decir, si una tarea bien definida requiere una cantidad inmensa (pero finita) de algún recurso para su realización, dicha tarea puede formar parte de un algoritmo. Además, se dice que una secuencia de tareas esta ‘bien definida’ si se sabe el orden exacto de ejecución de cada una de las mismas.
• Es un sistema por el cual se llega a una solución, teniendo en cuenta que debe de ser definido, finito y preciso.
• Conjunto de sentencias e instrucciones en lenguaje nativo, los cuales expresan la lógica de un programa.
• Descripción 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 ordenado y finito de pasos que permite hallar la solución de un problema.
• Conjunto de reglas que permiten obtener un resultado determinado a partir de ciertas reglas definidas.
• Descripción precisa de una sucesión de instrucciones que permite llevar a cabo un trabajo en un número finito de pasos.
• Toda receta, proceso, rutina, método, procedimiento, técnica, formula que resuelven un determinado problema.
• Conjunto de instrucciones concretas y detalladas mediante el cual se consigue una acción determinada.
• Un conjunto de símbolos y procedimientos usados en la realización de un cálculo. • Una secuencia de pasos que conducen a la realización de una tarea.
1.2 Características de un algoritmo. Las características que debe poseer una secuencia de tareas para considerarse algoritmo son: precisión, definitud y finitud.
• Preciso: El algoritmo debe indicar el orden exacto de ejecución de cada tarea. • Ser definido: Sin ambigüedad, cada paso del algoritmo debe indicar la acción a realizar sin criterios de interpretación.
• Ser finito: Un número específico y numerable de pasos debe componer al algoritmo, el cual deberá finalizar al completarlos.
• Tener cero o más 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 más 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 programación 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 más ni nada menos que aquello que se requiera para y en su ejecución.
Ejemplos de algoritmos son: Ver una película
1. Buscar el videocasette de la película
2. SI el televisor y la video se encuentran apagados, encenderlos
3. Sacar el video del estuche
4. Introducirlo en la videocasetera
5. Tomar el control del televisor y la video
6. Dirijirme a el sofa
7. Ponerme comodo
8. Disfrutar la película.
Fíjate como he descrito en estos pasos el algoritmo para poder ver una película en la video, este pequeño algoritmo cumple con los requisitos descritos arriba, ya que cada paso precisa un orden y tiene un orden de pasos finitos. En este algoritmo aparece la palabra SI remarcada en mayúsculas, el uso de esta palabra la veremos mas adelante, cuando discutamos sobre el control del flujo del programa o estructuras de control. Los algoritmos se pueden expresar por fórmulas, diagramas de flujo, y pseudocódigos conocidos como herramientas de programación. Está última representación es la mas utilizada por su sencillez y parecido a el lenguaje humano. Como ejercicio te recomendaría que escribieras algunos algoritmos de sucesos en tu vida cotidiana, como por ejemplo: encender el auto, ir al cine, etc.
1.3 Partes de un Algoritmo Todo algoritmo debe obedecer a la estructura básica de un sistema, es decir: entrada, proceso,salida y Retroalimentación. Donde:
ENTRADA: Corresponde al insumo, a los datos necesarios que requiere el proceso para ofrecer los resultados esperados.
PROCESO: Pasos necesarios para obtener la solución del problema o la situación planteada.
SALIDA: Resultados arrojados por el proceso como solución.
RETROALIMENTACIÓN:La retroalimentación se produce cuando las salidas del sistema o la influencia de las salidas del mismo en el contexto, vuelven a ingresar como recursos o información. La retroalimentación permite el control de un sistema y que el mismo tome medidas de corrección en base a la información retroalimentada.

No hay comentarios:

Publicar un comentario