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

A travs de los aos, los cientficos de la

computacin han identificado diversas


tcnicas generales que a menudo producen
algoritmos eficientes para la resolucin de
muchas clases de problemas.
Es una herramienta poderosa que sirve
para resolver cierto tipo de problemas
reduciendo la complejidad y ocultando los
detalles del problema. Esta herramienta
consiste en que una funcin o procedimiento se
llama a s mismo.

Una gran cantidad de algoritmos pueden ser
descritos con mayor claridad en trminos de
recursividad, tpicamente el resultado ser
que sus programas sern ms pequeos.

Existen numerosas definiciones de
recursividad , una de las ms importantes o
sencillas :

La caracterstica importante de la
recursividad es que siempre existe un medio
de salir de la definicin, mediante la cual
se termina el proceso recursivo.
Directa o simple: un subprograma se llama a si
mismo una o ms veces directamente.

un subprograma A llama a otro subprograma B
y ste a su vez llama al subprograma A.
Muchos algoritmos tiles tienen una estructura
recursiva, de modo que para resolver un
problema se llaman recursivamente a s
mismos una o ms veces para solucionar su
problemas muy similares.
Esta estructura obedece a una estrategia
dividir-y-conquistar, en que se ejecuta tres pasos
en cada nivel de la recursin:

Dividir. Dividen el problema en varios su
problemas similares al problema original pero de
menor tamao;

Conquistar. Resuelven recursivamente los su
problemas si los tamaos de los su problemas
son suficientemente pequeos, entonces resuelven
los su problemas de manera directa; y luego,

Combinar. Combinan estas soluciones para
crear una solucin al problema original.

Programacin: Es el proceso de hacer un
diseo, hacer el cdigo y depurar una
aplicacin computacional.
Algoritmo: Mtodo para resolver un
determinado problema mediante una serie de
pasos precisos, definidos y finitos.
Carcter finito: Todos los algoritmos debern
de tener cierto nmero de pasos a seguir hasta
llegar a un Fin.
Precisin: Cada paso del algoritmo tendr
que estar especificado para llevarlo a cabo.
Entrada: Cada algoritmo tiene entradas, es
decir, datos dados antes o mientras se est
realizando el proceso del algoritmo.
Salida: El algoritmo tiene una o varias salidas
especificadas relacionadas con la entrada.
Eficacia: Se prefiere que el algoritmo sea lo
ms bsico posible, en donde las instrucciones
de los pasos sean fciles de entender. Todo en
conjunto debe ser eficaz.
Pseudocdigo: Es la manera en la que se
describe un algoritmo con un lenguaje natural,
de manera breve y detallada.
Diagrama de flujo: Es la manera de poder
visualizar un algoritmo grficamente. En estos
se utilizan smbolos conectados para dar a
conocer un flujo o una secuencia.
Problema: Es una situacin o una cuestin en
donde se presenta un dilema y es necesario una
solucin para resolverla.

Algoritmo
Lenguaje de
computacin
Cdigo
objeto
Escritura en
lenguaje
especifico
Compilacin
Mapa conceptual acerca de la metodologa para resolver un problema:



Para el diseo de los algoritmos, se suelen
utilizar:
Diseo de diagramas de flujo.
Pseudocdigo.

Terminal
Subprograma
Entrada/Salida
Decisin
Conectores
El pseudocdigo se conoce como una herramienta
de programacin en las que las instrucciones se
escriben en palabras similares al ingls o al
espaol. Si hablamos del mismo problema,
desarrollando el pseudocdigo se obtendra algo
como:
Inicio
Leer: 2+2
Procesar: 2+2 = Resultado
Imprimir: Resultado = 4
Fin.
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 ancesor.
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.

Diseo de algoritmos
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.
http://es.wikipedia.org/wiki/Dise%C3%B1o_
de_algoritmos

http://es.wikipedia.org/wiki/Resoluci%C3%B
3n_de_problemas_de_programaci%C3%B3n

http://www.ganimides.ucm.cl/haraya/doc/T
ecnicas_algoritmicas.pdf

http://es.wikipedia.org/wiki/Algoritmo_divi
de_y_vencer%C3%A1s

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