La realización de cualquier tarea requiere la ejecución de una serie de acciones.
La descripción de esa tarea requiere la utilización de frases (sentencias) que reflejen las acciones a realizar.
Se utiliza 1 frase / 1 acción
ALGORITMO: conjunto de instrucciones que es necesario ejecutar ordenadamente para la obtención de un cálculo, la
resolución de un problema o la realización de una tarea en un número finito y determinado de pasos.
Por ejemplo, describir las acciones necesarias para hacer café, o para obtener las raíces de la ecuación de segundo grado.
NOTA. Algoritmo deriva del nombre del matemático persa del siglo IX Mohammed al-Khowârizmî que expuso las reglas para realizar paso a paso las operaciones
aritméticas básicas (sumar, restar, multiplicar y dividir) con números decimales. En latín, su apellido se escribió algorismus, de donde derivó a algoritmo
NOTA. Observe que no todas las tareas se pueden expresar con un algoritmo.
Sus características según D. Knuth son
Finito : Tiene que acabar tras un número finito de pasos.
Definido : Cada paso está definido de modo preciso, sin ambigüedad y están consideradas todas las posibilidades.
Entrada . Todo algoritmo tiene cero o más entradas que las toma al principio o a lo largo del proceso.
Salida . Todo algoritmo produce una o más salidas que dependen de las entradas si las hay.
Efectividad . Todas las operaciones se pueden realizar con papel y lápiz. No es realizable una división entre dos números reales
finitos si los consideramos con infinitas cifras decimales que no sean todas cero
Una consecuencia de las anteriores características el la determinación : todo algoritmo siempre produce la misma salida cada vez
que se le de la misma entrada.
Por ejemplo, para la ecuación de segundo grado hay un algoritmo que da su solución resumido en la fórmula
En este caso,
la entrada está formada por los coeficientes a, b, c de la ecuación;
el proceso es el conjunto de operaciones que realizamos con ellos así como los análisis pertinentes para saber cuántas raíces hay;
la salida son la raíz o raíces que encontramos o la información de que la ecuación no tiene solución real.
Ejercicio
¿Es una receta de cocina siempre un algoritmo? Responder SI o NO y justificar la respuesta.
¿Tiene un número finito de pasos?
¿Tiene entrada?
¿Tiene salida?
¿Está definida?
¿Tiene la característica de determinación?
Propiedades deseables de los algoritmos
Hay dos propiedades deseables en los algoritmos
Generalidad.
Eficiencia.
GENERALIDAD: los algoritmos se deben construir para un caso general no para un caso particular.
Si me piden que construya un algoritmo que calcule la media de edad de una clase de 30 alumnos lo construyo para 30 alumnos .
¿Qué ocurre si más adelante necesito calcular la media de tres clases que tienen 20, 75 y 103 alumnos? ¡Habría que crear otros tres
algoritmos!
Sería mejor que desde el principio hubiéramos creado un algoritmo capaz de obtener la media de edad de los alumnos de una clase
cuyo tamaño puede variar entre 1 y 1000 alumnos.
Hacer bien el trabajo una vez y reutilizarlo luego muchas veces.
http://arca.tic.udc.es/y/01Algor/02algoritmos.htm
EFICIENCIA: Si dos algoritmos son capaces de producir el mismo resultado es más eficiente el que lo consigue usando
menos recursos.
Los recursos que se tienen en consideración son principalmente la memoria y el tiempo de cómputo.
Límites en la búsqueda de la generalidad y de la eficiencia:
Si tuviéramos un Solucionador General de Problemas (General Problem Solver) podríamos someterle cualquier problema, nos
pediría las entradas adecuadas y generaría la salida correcta.
Construir UN programa que lo haga todo no está a nuestro alcance.
Quedarnos con algoritmos concretos no es buena idea
La solución es generalizar aquello que pueda hacerse fácilmente.
Para poder comparar la eficiencia de dos algoritmos hay que aprender a medir el trabajo que realizan.
El trabajo suele depender del caso que se plantea (no es lo mismo ordenar un conjunto de datos que está casi ordenado que
hacerlo con uno que está desordenado).
Suelen plantearse tres casos
La situación más favorable. Suele ser fácil conocerla.
La situación más desfavorable. Suele ser fácil.
La situación promedio. Puede ser muy difícil de medir.
Clases de algoritmos
En informática es interesante distinguir dos tipos de algoritmos/Programas
Automáticos : Realizan todas sus operaciones sin intervención humana.
Interactivos : Necesitan pedir datos a un operario y luego le muestran los resultados.
Los algoritmos automáticos pueden
1. tener los datos de entrada codificados en el propio algoritmo, o bien leerlos de un disco , por ejemplo;
2. escribir los datos de salida en un disco , enviarlos por teleproceso...
En los algoritmos interactivos hay dos personajes : el constructor del algoritmo o programa y el usuario u operador del
programa.
Para que todo funcione bien es necesario un CONTRATO entre ambos personajes donde las obligaciones de uno son derechos para
el otro.
El constructor tiene como obligaciones
Escribir el código correcto
Pedirle al usuario SÓLO los DATOS que no se pueden conocer cuando se hace el programa. Para ello debe indicar con precisión
Qué dato necesita
Que formato se le debe dar
El usuario tiene como obligaciones
introducir los datos que pida el programa
escribirlas en el formato que se le pida.
en el momento que se le indique (ni antes ni después)
Ejercicios
Citar algún derecho del constructor/autor del algoritmo
Citar algún derecho del usuario
Comentarios de: algoritmo - concepto (0)
No hay comentarios