Tres contendientes vienen a mi mente:
1.) Newton-Raphson y sus variantes. Estos métodos iterativos “reducen” un gradiente hasta que convergen. Para mí este es EL algoritmo número uno que hace brillar la computadora.
2.) Programación cuadrática: muchos problemas del mundo real se pueden replantear como un problema de optimización de una función cuadrática con restricciones lineales (como los límites superior / inferior de las variables). Dependiendo de las restricciones, puede existir una solución “analítica” (hasta una inversión de matriz). Si no, uno tiene que confiar en métodos iterativos que toman prestadas ideas de 1). Entonces, QP no es realmente un algoritmo único, sino una clase de problemas. Y saber cómo replantear un problema de optimización como QP es tremendamente útil y no hacerlo puede ser muy vergonzoso.
- ¿Qué lenguaje de programación tiene más trabajos disponibles sin experiencia requerida?
- Cómo convertirse en desarrollador de .net
- No soy bueno en programación competitiva, pero estoy bien en Álgebra, Matemáticas y Algoritmos. ¿Cómo debo hacer una carrera exitosa en informática en la India?
- Estoy a punto de comenzar mi carrera en el campo de TI en India. Sin antecedentes de CS, ¿qué debo aprender primero?
- ¿Qué debe aprender un desarrollador de iOS para complementar sus habilidades?
3.) Algoritmos de muestreo aleatorio (evolutivo). La diferencia clave para 1 y 2 es que no es necesario calcular derivados y, por lo tanto, estos funcionan en funciones de recuadro negro. Las funciones de recuadro negro devuelven un valor para cada entrada, pero se desconoce la relación entre la entrada y la salida. El dominio de la función se muestrea aleatoriamente (“explore”) y la optimización progresa al enfocar las muestras futuras en regiones del dominio donde la función ha devuelto valores pequeños (“exploit”). Si bien este enfoque es ineficientemente ineficaz en las funciones convexas (utilice 1 o 2 en su lugar), puede proporcionar una solución razonable en muchas funciones no convexas (“resistentes”). Entre estos algoritmos, se debe mencionar el recocido simulado porque es muy básico e instructivo. Personalmente, soy un fanático de la estrategia evolutiva de adaptación de matriz de covarianza (CMA-ES), porque utiliza el hermoso truco para aprender una aproximación cuadrática local de la función basada en una muestra aleatoria, y luego NO toma el camino más empinado , pero explora la planitud en su lugar.