Programación no lineal

La programación no lineal ( PNL , N on Linear P rogramming ) es  un caso de programación matemática que no se reduce a plantear un problema de programación lineal (por ejemplo, en el que la función objetivo o restricción es una función no lineal ) [1] .

El problema de la programación no lineal se plantea como el problema de encontrar el óptimo de una determinada función objetivo bajo las condiciones

donde  - parámetros,  - restricciones,  - número de parámetros,  - número de restricciones.

A diferencia de un problema de programación lineal, en un problema de programación no lineal, el óptimo no se encuentra necesariamente en el límite de la región definida por las restricciones.

Métodos para resolver el problema

Uno de los métodos que nos permite reducir el problema de la programación no lineal a la resolución de un sistema de ecuaciones es el método de los multiplicadores de Lagrange indefinidos .

Si la función objetivo es lineal y el espacio acotado es un politopo , entonces el problema es un problema de programación lineal que se puede resolver utilizando soluciones de programación lineal bien conocidas .

Si la función objetivo es cóncava (problema de maximización) o convexa (problema de minimización) y el conjunto de restricciones es convexo, entonces el problema se llama convexo y, en la mayoría de los casos , se pueden usar métodos de optimización convexos generales .

Si la función objetivo es la relación de funciones cóncavas y convexas (en la maximización) y las restricciones son convexas, entonces el problema puede transformarse en un problema de optimización convexa utilizando técnicas de programación fraccionaria.

Existen varios métodos para resolver problemas no convexos. Un enfoque consiste en utilizar formulaciones especiales de problemas de programación lineal. Otro método implica el uso de métodos de ramificación y límite , donde el problema se subdivide para resolverlo con aproximaciones convexas (problema de minimización) o lineales que forman un límite inferior en el costo total dentro de la partición. En los siguientes apartados, en algún momento, se obtendrá una solución real cuyo coste es igual a la mejor cota inferior obtenida para cualquiera de las soluciones aproximadas. Esta solución es óptima, aunque quizás no la única. El algoritmo se puede terminar en una etapa temprana, con la confianza de que la solución óptima está dentro de la desviación aceptable del mejor punto encontrado; tales puntos se denominan ε-óptimo. La terminación de puntos ε-óptimos, como regla, es necesaria para asegurar la finitud de la terminación. Esto es especialmente útil para problemas grandes y complejos y problemas con costos o valores inciertos, donde la incertidumbre se puede determinar a partir de una estimación de confiabilidad adecuada.

Condiciones de diferenciación y regularidad , las condiciones de Karush-Kuhn-Tucker (KKT) proporcionan las condiciones necesarias para la optimización de la solución. Para la convexidad, estas condiciones también son suficientes.

Otro método para resolver problemas de programación no lineal es la programación dinámica [2] .

Véase también

Enlaces

Notas

  1. Hadley, 1967 , pág. 11, 12
  2. Hadley, 1967 , pág. quince.

Literatura