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ótomoMé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 .