Los algoritmos de programación no lineal son métodos numéricos para resolver problemas de Programación No Lineal con computadoras.
Algoritmos para Problemas sin Restricciones
Método de Búsqueda Directa
El método de búsqueda directa consiste en identificar el intervalo de incertidumbre con el punto óptimo. Sea el intervalo actual de incertidumbre, con . Para definir el siguiente intervalo :
- Si .
- Si .
- Si .
Dado un valor pequeño de desplazamiento , hay dos métodos para calcular y :
| Método dicótomo | Método de la sección dorada |
|---|---|
El método de la sección dorada necesita menos cálculos y converge más rápido (es más eficiente). El algoritmo termina cuando , siendo el grado de exactitud deseado.
Método del Gradiente
En el método del gradiente o del ascenso más pronunciado, se parte desde un punto inicial y se calcula sucesivamente , siendo el tamaño de paso óptimo en que maximiza el mejoramiento de .
Se debe determinar el que maximice , lo que se puede resolver por búsqueda directa.
El procedimiento termina cuando , lo que es equivalente a .
Algoritmos para Problemas con Restricciones
Lamentablemente para estos problemas no existe un algoritmo general que siempre funcione.
Programación Separable
Se dice que es separable .
Hay funciones que no son separables pero se pueden hacer separables. Por ejemplo, se puede hacer separable con , estando sujeta a .
Se aproxima (siendo los puntos de quiebre del intervalo con y ), lo que implica , siendo un peso al que .
Programación Cuadrática
Sea el problema de maximizar sujeta a y . La función define una forma cuadrática.
Si la matriz es simétrica y negativa definida, entonces es estrictamente cóncava. Si las restricciones son lineales, entonces el espacio de soluciones es convexo.
Se aplican las condiciones de KKT: sean los multiplicadores de Lagrange para . Con , se llega a:
Programación Estocástica
La programación estocástica resuelve los problemas de optimización de sujeta a , donde son las variables aleatorias .
Método de Combinaciones Lineales
Con este método de combinaciones lineales se busca maximizar sujeta a .
Se aproxima maximizar . Se define a como una combinación lineal de y . Se determina maximizando .
Repetir hasta que .