Programación no lineal para niños
En matemáticas, programación no lineal (PNL) es el proceso de resolución de un sistema de igualdades y desigualdades sujetas a un conjunto de restricciones sobre un conjunto de variables reales desconocidas, con una función objetivo a maximizar (o minimizar), cuando alguna de las restricciones o la función objetivo no son lineales.
Contenido
Formulación matemática del problema
El problema de programación no lineal puede enunciarse de una forma muy simple:
- maximizar una función objetivo
o
- minimizar una función objetivo (de coste)
donde
Métodos de resolución del problema
Si la función objetivo f es lineal y el espacio restringido es un politopo, el problema es de programación lineal y puede resolverse utilizando alguno de los bien conocidos algoritmos de programación lineal.
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 se puede utilizar el método general de optimización convexa.
Existe una variedad de métodos para resolver problemas no convexos. Uno de ellos consiste en utilizar formulaciones especiales de problemas de programación lineal. Otro método implica el uso de técnicas de Ramificación y poda, cuando el problema se divide en subdivisiones a resolver mediante aproximaciones que forman un límite inferior del coste total en cada subdivisión. Mediante subdivisiones sucesivas, se obtendrá una solución cuyo coste es igual o inferior que el mejor límite inferior obtenido por alguna de las soluciones aproximadas. Esta solución es óptima, aunque posiblemente no sea única. El algoritmo puede ser parado antes, con la garantía de que la mejor solución será mejor que la solución encontrada en un porcentaje acotado. Ello se utiliza en concreto en problemas importantes y especialmente difíciles y cuando el problema cuenta con costes inciertos o valores donde la incertidumbre puede ser estimada en un grado de fiabilidad apropiado.
Las condiciones de Karush-Kuhn-Tucker proporcionan las condiciones necesarias para que una solución sea óptima.
Ejemplos
Ejemplo bidimensional
Un problema sencillo puede definirse por las restricciones:
- x1 ≥ 0
- x2 ≥ 0
- x12 + x22 ≥ 1
- x12 + x22 ≤ 2
con una función objetivo a ser maximizada
- f(x) = x1 + x2
donde x = (x1, x2)
Ejemplo tridimensional
Otro problema simple se define por la restricciones:x12 − x22 + x32 ≤ 2
- x12 + x22 + x32 ≤ 10
con una función objetivo a ser maximizada
- f(x) = x1x2 + x2x3
donde x = (x1, x2, x3)
Véase también
En inglés: Nonlinear programming Facts for Kids