3.3 TIPOS DE PROBLEMAS DE PROGRAMACION NO LINEAL
3.3 Tipos De Problemas De Programacion No Lineal
Los problemas de programación no lineal se presentan de muchas formas distintas. Al contrario del método símplex para programación lineal, no se dispone de un algoritmo que resuelva todos estos tipos especiales de problemas. En su lugar, se han desarrollado algoritmos para algunas clases (tipos especiales) de problemas de programación no lineal. Se introducirán las clases más importantes y después se describirá cómo se pueden resolver algunos de estos problemas.
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.
Los tipos de problemas de programación no lineal son:
- Optimización no restringida.
- Optimización linealmente restringida.
- Programación cuadrática
- Programación convexa.
- Programación separable.
- Programación no convexa.
- Programación geométrica.
- Programación fraccional.
- Problema de complementariedad.
ALGORITMOS SIN RESTRICCIÓN
En esta sección se presentarán dos algoritmos para el problema no restringido: el algoritmo de búsqueda directa y el algoritmo de gradiente.
Método de búsqueda directa
Los métodos de búsqueda directa se aplican principalmente a funciones estrictamente unimo- dales de una variable. Aunque puede parecer trivial el caso, la sección 21.1.2 muestra que la optimización de funciones de una variable juega un papel clave en el desarrollo de los algoritmos de varias variables, más generales.
La idea de los métodos de búsqueda directa es identificar el intervalo de incertidum- bre que comprenda al punto de solución óptima. El procedimiento localiza el óptimo estrechando en forma progresiva el intervalo de incertidumbre hasta cualquier grado de exactitud que se desee.
En esta sección se presentan dos algoritmos estrechamente relacionados: los métodos de búsqueda dicótomo y de sección dorada (o áurea). Ambos buscan la maximización de una función unimodal/(x) en el intervalo a ^ x < b, que se sabe que incluye el punto óptimo x*. Los dos métodos comienzan con /0 = (a, b) que representa el intervalo inicial de incertidumbre.
Paso general i. Sea /, _ , = (xD xR) el intervalo actual de incertidumbre (en la iteración 0, xL = a y xR = b). A continuación se definen xx y x2 tales que
xj^ ^ ^ x2 ^ xr
El siguiente intervalo de incertidumbre, /z, se define como sigue:
- Si f(xx) > /(x2), entonces xL < x* < x2. Se definen xR = x2 e /, = (xL, x2) (véase la figura 21.2[a]).
- Si f(xx) < f(x2\ entonces xx < x* < xR. Se definen xL = xx e I¡ = (xh xR) (véase la figura 21.1 [b]). .
- Si f{x\) = /(jc2), entonces xx < x* < x2. Se definen xL = x2 e /, = (xb x2).
La manera en que se determinan xx y x2 garantiza que /, < /,_ p como se demostrará en breve. El algoritmo termina en la iteración ksilk< A, donde A es un grado de exactitud definido por el usuario. *
La diferencia entre los métodos dicótomo y de sección dorada estriba en la forma en que se calculan xx y x2. La tabla siguiente presenta las fórmulas.
En el método dicótomo los valores jc, y x2 se encuentran simétricos respecto del punto medio del actual intervalo de incertidumbre. Esto significa que
La aplicación repetida del algoritmo garantiza que la longitud del intervalo de incertidumbre se acercará al nivel de exactitud deseado, A.
En el método de la sección dorada la idea es de mayor involucramiento. Se puede apreciar que cada iteración del método dicótomo requiere calcular los dos valores/(jc,) y f(x2), Pe” ro termina por descartar alguno de ellos. Lo que propone el método de la sección dorada es ahorrar cálculos mediante el reuso del valor descartado en la iteración inmediata siguiente. Para definir 0 < a < 1
Cuando el intervalo de incertidumbre /, en la iteración i es igual a (jc¿, x2) o a (xu xR). Considere el caso en que /, = (jcl, x2), lo cual significa que xx está incluido en /,. En la iteración /+1, seleccione x2 igual a jc, de la iteración /, lo cual lleva a la siguiente ecuación:
VÍDEO (TIPOS DE PROBLEMAS DE PROGRAMACIÓN NO LINEAL)
Comentarios
Publicar un comentario