TÉCNICAS DE DISEÑO DE ALGORITMOS
- Algoritmos voraces (greedy): seleccionan los elementos más
prometedores del conjunto de candidatos hasta encontrar una solución. En la
mayoría de los casos la solución no es óptima.
- Algoritmos
paralelos: permiten la división de un problema en subproblemas de forma que se
puedan ejecutar de forma simultánea en varios procesadores.
- Algoritmos probabilísticos: algunos de los pasos de este
tipo de algoritmos están en función de valores pseudoaleatorios.
- Algoritmos determinísticos: el comportamiento del
algoritmo es lineal: cada paso del algoritmo tiene únicamente un paso sucesor y
otro antecesor.
- Algoritmos no determinísticos: el comportamiento del
algoritmo tiene forma de árbol y a cada paso del algoritmo puede bifurcarse a
cualquier número de pasos inmediatamente posteriores, además todas las ramas se
ejecutan simultáneamente.
- Divide y vencerás: dividen el problema en subconjuntos
disjuntos obteniendo una solución de cada uno de ellos para después unirlas,
logrando así la solución al problema completo.
- Metaheurísticas: encuentran soluciones aproximadas (no
óptimas) a problemas basándose en un conocimiento anterior (a veces llamado
experiencia) de los mismos.
- Programación
dinámica: intenta resolver problemas disminuyendo su coste computacional
aumentando el coste espacial.
- Ramificación y acotación: se basa en la construcción de
las soluciones al problema mediante un árbol implícito que se recorre de forma
controlada encontrando las mejores soluciones.
- Vuelta atrás (backtracking): se construye el espacio de
soluciones del problema en un árbol que se examina completamente, almacenando
las soluciones menos costosas.
No hay comentarios.:
Publicar un comentario