Diseño de algoritmos
10 idiomas
Artículo
Discusión
Leer
Editar
Ver historial
Herramientas
Apariencia
ocultar
Texto
Pequeño
Estándar
Grande
Anchura
Estándar
Ancho
Color (beta)
Automático
Claro
Oscuro
Este artículo o sección necesita referencias que aparezcan en
una publicación acreditada.
Busca fuentes: «Diseño de
algoritmos» – noticias · libros · académico · imágenes
Este aviso fue puesto el 4 de febrero de 2010.
En ciencias de la computación, el diseño de algoritmos es un método
específico para poder crear un modelo matemático ajustado a un
problema específico para resolverlo. El diseño de algoritmos
o algorítmica es un área central de las ciencias de la computación,
también muy importante para la investigación de operaciones (también
conocida como investigación operativa), en ingeniería del software y en
otras disciplinas afines.
Técnicas de Diseño de algoritmos
[editar]
Existen varias técnicas de diseño de algoritmos que permiten desarrollar
la solución al problema planteado, algunas de ellas son:
Algoritmo divide y vencerás: El método está basado en la
resolución recursiva de un problema dividiéndolo en dos o más
subproblemas de igual tipo o similar.
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.
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.
Control de Proyectos Wikimedia
autoridades Datos: Q2971515