Técnica algorítmica - Algorithmic technique
En matemáticas e informática , una técnica algorítmica es un enfoque general para implementar un proceso o cálculo .
Técnicas generales
Hay varias técnicas algorítmicas ampliamente reconocidas que ofrecen un método o proceso probado para diseñar y construir algoritmos. Se pueden utilizar diferentes técnicas según el objetivo, que pueden incluir búsqueda , clasificación , optimización matemática , satisfacción de restricciones , categorización , análisis y predicción .
Fuerza bruta
La fuerza bruta es una técnica simple y exhaustiva que evalúa todos los resultados posibles para encontrar una solución.
Divide y conquistaras
La técnica de divide y vencerás descompone problemas complejos de forma recursiva en subproblemas más pequeños. Luego se resuelve cada subproblema y estas soluciones parciales se recombinan para determinar la solución general. Esta técnica se utiliza a menudo para buscar y clasificar.
Dinámica
La programación dinámica es una técnica sistemática en la que un problema complejo se descompone de forma recursiva en subproblemas más pequeños y superpuestos para su solución. La programación dinámica almacena los resultados de los subproblemas superpuestos localmente utilizando una técnica de optimización llamada memorización .
Evolutivo
Un enfoque evolutivo desarrolla soluciones candidatas y luego, de manera similar a la evolución biológica, realiza una serie de alteraciones aleatorias o combinaciones de estas soluciones y evalúa los nuevos resultados frente a una función de adecuación. Los resultados más adecuados o prometedores se seleccionan para iteraciones adicionales, para lograr una solución óptima general.
Recorrido del gráfico
El recorrido de gráficos es una técnica para encontrar soluciones a problemas que se pueden representar como gráficos . Este enfoque es amplio, e incluye la búsqueda en profundidad , búsqueda en amplitud , recorrido de árbol , y muchas variaciones específicas que pueden incluir optimizaciones locales y excluyendo espacios de búsqueda que se pueden determinar a ser no óptimo o no posible. Estas técnicas se pueden utilizar para resolver una variedad de problemas, incluido el camino más corto y los problemas de satisfacción de restricciones.
Avaro
Un enfoque codicioso comienza evaluando un resultado posible del conjunto de resultados posibles y luego busca localmente una mejora en ese resultado. Cuando se encuentra una mejora local, repetirá el proceso y nuevamente buscará localmente mejoras adicionales cerca de este óptimo local. Una técnica codiciosa es generalmente simple de implementar, y esta serie de decisiones se pueden usar para encontrar óptimos locales dependiendo de dónde comenzó la búsqueda. Sin embargo, es posible que las técnicas codiciosas no identifiquen el óptimo global en todo el conjunto de posibles resultados.
Heurístico
Un enfoque heurístico emplea un método práctico para llegar a una solución inmediata que no se garantiza que sea óptima.
Aprendiendo
Las técnicas de aprendizaje emplean métodos estadísticos para realizar la categorización y el análisis sin programación explícita. El aprendizaje supervisado , aprendizaje sin supervisión , aprendizaje por refuerzo y aprendizaje profundo técnicas se incluyen en esta categoría.
Optimización matemática
La optimización matemática es una técnica que se puede utilizar para calcular un óptimo matemático minimizando o maximizando una función.
Modelado
El modelado es una técnica general para abstraer un problema del mundo real en un marco o paradigma que ayuda con la solución.
Recursividad
La recursividad es una técnica general para diseñar un algoritmo que se autodenomina con una parte progresivamente más simple de la tarea hasta uno o más casos base con resultados definidos.