Вы находитесь на странице: 1из 20

INTRODUCCION A LOS ALGORITMOS

Manuel Antonio Morales Gonzlez


Un Poco de Historia
El trmino proviene del matemtico rabe Al'Khwarizmi (800 DC), que
escribi un tratado sobre los nmeros.

La exposicin clara de cmo calcular de una manera sistemtica a travs de algoritmos
diseados para ser usados con algn tipo de dispositivo mecnico similar a un baco,
ms que con lpiz y papel, muestra la intuicin y el poder de abstraccin de
Al'Khwarizmi. Hasta se preocupaba de reducir el nmero de operaciones necesarias en
cada clculo. Por esta razn, aunque no haya sido l el inventor del primer algoritmo,
merece que este concepto est asociado a su nombre.

Definicin de Algoritmo
El concepto intuitivo de algoritmo, lo tenemos prcticamente todos: Un
algoritmo es una serie finita de pasos para resolver un problema.

De este modo, podemos definir algoritmo como un "conjunto de reglas
operacionales inherentes a un cmputo". Se trata de un mtodo sistemtico,
susceptible de ser realizado mecnicamente, para resolver un problema dado.

As podemos, decir que un Algoritmo es un conjunto finito de
instrucciones precisas para resolver un problema

Definicin de Algoritmo
Hay que hacer nfasis en dos aspectos para que un algoritmo exista:

1.El nmero de pasos debe ser finito. De esta manera el algoritmo debe
terminar en un tiempo finito con la solucin del problema,

2.El algoritmo debe ser capaz de determinar la solucin del problema.

Caractersticas de un algoritmo
1. Entrada: definir lo que necesita el algoritmo
2. Salida: definir lo que produce.
3. No ambiguo: explcito, siempre sabe qu comando ejecutar.
4. Finito: El algoritmo termina en un nmero finito de pasos.
5. Definitud: Hace lo que se supone que debe hacer. La solucin es
correcta
6. Efectividad: Cada instruccin se completa en tiempo finito. Cada
instruccin debe ser lo suficientemente bsica como para que en principio
pueda ser ejecutada por cualquier persona usando papel y lpiz.
7. General: Debe ser lo suficientemente general como para contemplar
todos los casos de entrada
En Resumen
As podemos, decir que un Algoritmo es un conjunto finito de
instrucciones precisas para resolver un problema.

Un algoritmo es un mtodo o proceso seguido para resolver un problema.
Si el problema es visto como una funcin, entonces el algoritmo toma una
entrada y la transforma en la salida.

Un problema es una funcin o asociacin de entradas con salidas. Un
problema puede tener muchos algoritmos.

Por tanto, un algoritmo es un procedimiento para resolver un problema
cuyos pasos son concretos y no ambiguos. El algoritmo debe ser correcto,
de longitud finita y debe terminar para todas las entradas. Un programa es
una instanciacin de un algoritmo en un lenguaje de programacin.



Ante situaciones nuevas o problemas, el que no sabe buscar soluciones se
sentir confuso y angustiado y entonces no busca una estrategia y dar una
primera solucin para poner punto final a su agona.

El que sabe buscar soluciones, selecciona la estrategia que le parece ms
cercana a la requerida y hace una hbil adaptacin que se ajusta a la nueva
demanda.


En Resumen





Algoritmos + Estructuras de Datos = Programas

Estructura de datos: parte esttica, almacenada.
Algoritmo: parte dinmica, manipulador
Resultado
PROBLEMA
Algoritmos
+
Estructuras de
datos
Existen diversas formas de representacin de algoritmos, pero no hay un
consenso con relacin a cul de ellas es mejor.

Dentro de las formas de representacin de algoritmos ms conocidas,
sobresalen:

1.La descripcin narrativa
2.El Flujograma convencional
3.El diagrama Chapn (o diagramas estructurados NS Nassi-Schneiderman)
4.El pseudocdigo, o tambin conocido como lenguaje estructurado.


Formas de Representacin de Algoritmos
Anlisis de Algoritmos

El anlisis de algoritmos proporciona los mtodos necesarios para poder
comparar distintos algoritmos que resuelven un mismo problema.


Un algoritmo es eficiente si administra correctamente los recursos.

Anlisis de Algoritmos
La eficiencia algortmica hace referencia al consumo de recursos por parte
de los algoritmos, principalmente, tiempo y espacio.

Adems, para que la comparacin tenga sentido, los algoritmos deben
analizarse respecto al mismo modelo de computacin
Tipos de Problemas a resolver
Algoritmos de ordenamiento
Bsqueda
Procesamiento de textos
Algoritmos de grafos
Matemticos
Algoritmos geomtricos

Recursos Computacionales
Almacenamiento principal
Trfico generado
Almacenamiento secundario
Tiempo de computo
Concepto de eficiencia
Un algoritmo ser tanto ms eficiente cuanto menos recursos consuma:
tiempo y espacio de memoria para ejecutarlo.

Porqu estudiar Algoritmos
Para evitar probar y ver qu sucede. No ambiguo
Medir tiempos de ejecucin.
Problemas:
Los test podran no ser representativos de todas las entradas.
Los test no nos dicen si hay otras soluciones.

Porqu estudiar Algoritmos?
Ventajas:
Sirve para predecir si el algoritmo es utilizable (anlisis
independiente de la mquina).
Permite compararlo con otros algoritmos.
Ayuda a entender mejor el algoritmo.
Efectos:
Hacer mejoras en la eficiencia
Ayuda en la correctitud.
Permite definir nuevas estructuras de datos.

Cmo Analizar un Algoritmo?
Lo que se entiende por analizar un algoritmo es medir la cantidad de
tiempo y espacio que requiere un algoritmo para su ejecucin
En otras palabras, se refiere a preguntarse si es que el algoritmo diseado
es factible de ejecutar en el computador que se dispone. Significa poder
predecir el
comportamiento del algoritmo antes de llevarlo a un programa.

reas de Estudio de los Algoritmos
Cmo construir algoritmos?
Divide y vencers, programacin dinmica, etc.
Cmo expresar algoritmos?
Programacin estructurada, de objetos, de agentes, funcional, lgica,
...
Cmo validar algoritmos?
Verificacin formal, invariantes, ...
Cmo analizar algoritmos?
Complejidad computacional, robustez, amigabilidad, ...

Tareas en el Anlisis de Algoritmos
Determinar qu operaciones se emplean y su costo relativo .
Determinar conjuntos de datos para exhibir todos los patrones posibles de
comportamiento.
Anlisis a-priori: se determina una funcin (de ciertos parmetros) que
acote el tiempo de cmputo del algoritmo.
Anlisis a-posteriori: estadsticas reales sobre tiempo y memoria.

Estructuras Algortmicas
Las estructuras de operacin de programas son un grupo de formas de
trabajo, que permiten, mediante la manipulacin de variables, realizar
ciertos procesos especficos que nos lleven a la solucin de problemas.
Estas estructuras se clasifican de acuerdo con su complejidad en:

Вам также может понравиться