Sunteți pe pagina 1din 3

2.

3 Diseo de algoritmos aplicados a problemas


Un algoritmo puede ser definido como la secuencia ordenada de pasos, sin
ambigedades, que conducen a la resolucin de un problema dado y expresado en
lenguaje natural, por ejemplo el castellano, Todo algoritmo debe ser:

Preciso: Indicando el orden de realizacin de cada uno de los pasos.

Definido: Si se sigue el algoritmo varias veces proporcionndole los mismos datos,


se deben obtener siempre los mismos resultados.

Finito: Al seguir el algoritmo, este debe terminar en algn momento, es decir tener
un nmero finito de pasos.

Para disear un algoritmo se debe comenzar por identificar las tareas ms importantes
para resolver el problema y disponerlas en el orden en el que han de ser ejecutadas. Los
pasos en esta primera descripcin pueden requerir una revisin adicional antes de que
podamos obtener un algoritmo claro, preciso y completo.
Este mtodo de diseo de algoritmos en etapas, yendo de los conceptos generales a los
de detalle, se conoce como mtodo descendente (top-down).
En un algoritmo se deben de considerar tres partes:

Entrada: Informacin dada al algoritmo.

Proceso: Operaciones o clculos necesarios para encontrar la solucin del


problema.

Salida: Respuestas dadas por el algoritmo o resultados finales de los procesos


realizados.

Como ejemplo supongamos que desea desarrollar un algoritmo que calcule la superficie
de un rectngulo proporcionndole su base y altura. Lo primero que debemos hacer es
plantearnos las siguientes preguntas:
Especificaciones de entrada
Qu datos son de entrada?
Cuntos datos se introducirn?
Cuntos son datos de entrada vlidos?
Especificaciones de salida
Cules son los datos de salida?
Cuntos datos de salida se producirn?

Qu formato y precisin tendrn los resultados?


Tcnicas de diseo de algoritmos

Algoritmos voraces (greedy): seleccionan los elementos ms prometedores del


conjunto de candidatos hasta encontrar una solucin. En la mayora de los casos
la solucin no es ptima.
Algoritmos paralelos: permiten la divisin de un problema en subproblemas de
forma que se puedan ejecutar de forma simultnea en varios procesadores.
Algoritmos probabilsticos: algunos de los pasos de este tipo de algoritmos estn
en funcin de valores pseudoaleatorios.
Algoritmos determinsticos: el comportamiento del algoritmo es lineal: cada paso
del algoritmo tiene nicamente un paso sucesor y otro antecesor.
Algoritmos no determinsticos: el comportamiento del algoritmo tiene forma de
rbol y a cada paso del algoritmo puede bifurcarse a cualquier nmero de pasos
inmediatamente posteriores, adems todas las ramas se ejecutan
simultneamente.
Divide y vencers: dividen el problema en subconjuntos disjuntos obteniendo una
solucin de cada uno de ellos para despus unirlas, logrando as la solucin al
problema completo.
Metaheursticas: encuentran soluciones aproximadas (no ptimas) a problemas
basndose en un conocimiento anterior (a veces llamado experiencia) de los
mismos.
Programacin dinmica: intenta resolver problemas disminuyendo su coste
computacional aumentando el coste espacial.
Ramificacin y acotacin: se basa en la construccin de las soluciones al
problema mediante un rbol implcito que se recorre de forma controlada
encontrando las mejores soluciones.
Vuelta atrs (backtracking): se construye el espacio de soluciones del problema en
un rbol que se examina completamente, almacenando las soluciones menos
costosas.

Las caractersticas de un buen algoritmo son:

Debe tener un punto particular de inicio.


Debe ser definido, no debe permitir dobles interpretaciones
Debe ser general, es decir, soportar la mayora de las variantes que se puedan
presentar en la definicin del problema
Debe ser finito en tamao y tiempo de ejecucin

La resolucin de un problema exige el diseo de un algoritmo que resuelva el problema,


como lo muestra la siguiente figura:

Problema

Diseo del
algoritmo

Programa de
computadora

Pasos para la resolucin de un problema


1. Diseo del algoritmo que describe la secuencia ordenada de pasos sin
ambigedades- que conducen a la solucin de un problema dado. (Anlisis del
problema y desarrollo del algoritmo).
2. Expresar el algoritmo como un programa en un lenguaje adecuado. (Fase de
codificacin).
3. Ejecucin y validacin del programa por la computadora.
Verificacin de algoritmos
Una vez que se ha terminado de escribir un algoritmo es necesario comprobar que realiza
las tareas para las que se ha diseado y produce el resultado correcto y esperado. El
modo ms normal de comprobar un algoritmo es mediante su ejecucin manual, usando
datos significativos que abarquen todo el posible rango de valores y anotando enuna hoja
de papel las modificaciones que se den estos datos y en los del resto del algoritmo, en las
diferentes fases hasta la obtencin de los resultados. Este proceso se conoce como
prueba del algoritmo.

Referencias
2.3. DISEO DE ALGORITMOS APLICADOS A PROBLEMAS. - tec-corzo. (s/f).
Recuperado a partir de https://sites.google.com/site/teccorzo/unidad-ii/2-3-disenode-algoritmos-aplicados-a-problemas

S-ar putea să vă placă și