Вы находитесь на странице: 1из 13

3.

3 Tipos de Problemas de Programacin No Lineal


Los problemas de programacin no lineal se presentan de muchas formas distintas. Al contrario del mtodo smplex para programacin 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 programacin no lineal. Se introducirn las clases ms importantes y despus se describir cmo se pueden resolver algunos de estos problemas.

Si la funcin objetivo f es lineal y el espacio restringido es un politopo, el problema es de Programacin lineal y puede resolverse utilizando alguno de los bien conocidos algoritmos de programacin lineal.

Si la funcin objetivo es cncava (problema de maximizacin), o convexa (problema de minimizacin) y el conjunto de restricciones es convexo, entonces se puede utilizar el mtodo general de Optimizacin convexa

Existe una variedad de mtodos para resolver problemas no convexos. Uno de ellos consiste en utilizar formulaciones especiales de problemas de programacin lineal. Otro mtodo implica el uso de tcnicas de Ramificacin y poda, cuando el problema se divide en subdivisiones a resolver mediante aproximaciones que forman un lmite inferior del coste total en cada subdivisin. Mediante subdivisiones sucesivas, se obtendr una solucin cuyo coste es igual o inferior que el mejor lmite inferior obtenido por alguna de las soluciones aproximadas. Esta solucin es ptima, aunque posiblemente no sea nica. El algoritmo puede ser parado antes, con la garanta de que la mejor solucin ser mejor que la solucin encontrada en un porcentaje acotado. Ello se utiliza en concreto en problemas importantes y especialmente difciles 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 solucin sea ptima.

Los tipos de problemas de programacin no lineal son:


1. 2. 3. 4. 5. 6. 7. 8. 9. Optimizacin no restringida. Optimizacin linealmente restringida. Programacin cuadrtica Programacin convexa. Programacin separable. Programacin no convexa. Programacin geomtrica. Programacin fraccional. Problema de complementariedad.

ALGORITMOS SIN RESTRICCIN


En esta seccin se presentarn dos algoritmos para el problema no restringido: el algoritmo de

bsqueda directa y el algoritmo de gradiente.

Mtodo de bsqueda directa Los mtodos de bsqueda directa se aplican principalmente a funciones estrictamente unimo- dales de una variable. Aunque puede parecer trivial el caso, la seccin 21.1.2 muestra que la optimizacin de funciones de una variable juega un papel clave en el desarrollo de los algoritmos de varias variables, ms generales. La idea de los mtodos de bsqueda directa es identificar el intervalo de incertidum- bre que comprenda al punto de solucin ptima. El procedimiento localiza el ptimo estrechando en forma progresiva el intervalo de incertidumbre hasta cualquier grado de exactitud que se desee. En esta seccin se presentan dos algoritmos estrechamente relacionados: los mtodos de bsqueda dictomo y de seccin dorada (o urea). Ambos buscan la maximizacin de una funcin unimodal/(x) en el intervalo a ^ x < b, que se sabe que incluye el punto ptimo x*. Los dos mtodos 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 iteracin 0, xL = a y xR

= b). A continuacin se definen xx y x2 tales que xj^ ^ ^ x2 ^ xr


El siguiente intervalo de incertidumbre, /z, se define como sigue:

1. 2. 3.

Si f(xx) > /(x2), entonces xL < x* < x2. Se definen xR = x2 e /, = (xL, x2) (vase la figura 21.2[a]). Si f(xx) < f(x2\ entonces xx < x* < xR. Se definen xL = xx e I = (xh xR) (vase 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 /, < /,_ usuario. *

como se demostrar en breve. El

algoritmo termina en la iteracin ksilk< A, donde A es un grado de exactitud definido por el

La diferencia entre los mtodos dictomo y de seccin dorada estriba en la forma en que se calculan

xx y x2. La tabla siguiente presenta las frmulas.

En el mtodo dictomo los valores jc, y x2 se encuentran simtricos respecto del punto medio del actual intervalo de incertidumbre. Esto significa que

La aplicacin repetida del algoritmo garantiza que la longitud del intervalo de incertidumbre se acercar al nivel de exactitud deseado, A. En el mtodo de la seccin dorada la idea es de mayor involucramiento. Se puede apreciar que cada iteracin del mtodo dictomo requiere calcular los dos valores/(jc,) y f(x2), Pe ro termina por

descartar alguno de ellos. Lo que propone el mtodo de la seccin dorada es ahorrar clculos mediante el reuso del valor descartado en la iteracin inmediata siguiente. Para definir 0 < a < 1

Cuando el intervalo de incertidumbre /, en la iteracin 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 iteracin /+1, seleccione

x2 igual a jc, de la iteracin /, lo cual lleva a la siguiente ecuacin:


x2(iteracin i+l) = x{(iteracin i)

Comparado con el mtodo dictomo, el mtodo de la seccin dorada converge ms rpidamente hacia el nivel deseado de exactitud. Adicionalmente, cada iteracin en el mtodo de la seccin dorada requiere la mitad de los clculos, en virtud de que recicla siempre un conjunto de los clculos correspondientes a la iteracin inmediata anterior.

EJEMPLO

El mximo valor de f(x) ocurre en x = 2. La siguiente tabla muestra los clculos para las iteraciones 1 y 2, usando el mtodo dicotomo y el de la seccin dorada. Supondremos que A = 0.1.

Al continuar de la misma forma, el intervalo de incertidumbre terminar por estrecharse hasta la tolerancia A deseada.

La plantilla ch21DichotomousGoldenSection.xls de Excel est diseada para manejar cualquiera de estos dos mtodos en forma automtica. Los datos son/(*), a,b y A. La funcin f{x) se captura en la celda E3 como sigue: = IF(C3< = 2,3*C3, (-C3+20)/3)

OPTIMIZACIN NO RESTRINGIDA

Los problemas de optimizacin no restringida no tienen restricciones, por lo que la funcin objetivo es sencillamente Maximizar f(x)

sobre todos los valores x= (x1, x2,,xn). Segn el repaso del apndice 3, la condicin necesaria para que una solucin especfica x = x* sea ptima cuando f(x) es una funcin diferenciable es

Cuando f (x) es cncava, esta condicin tambin es suficiente, con lo que la obtencin de x* se reduce a resolver el sistema de las n ecuaciones obtenidas al establecer las n derivadas parciales iguales a cero. Por desgracia, cuando se trata de funciones no lineales f (x), estas ecuaciones suelen ser no lineales tambin, en cuyo caso es poco probable que se pueda obtener una solucin analtica simultnea. Qu se puede hacer en ese caso? Las secciones 13.4 y 13.5 describen procedimientos

algortmicos de bsqueda para encontrar x* primero para n = 1 y luego para n > 1. Estos
procedimientos tambin tienen un papel importante en la solucin de varios tipos de problemas con restricciones, que se describirn en seguida. La razn es que muchos algoritmos para problemas

restringidos estn construidos de forma que se adaptan a versiones no restringidas del problema en
una parte de cada iteracin. Cuando una variable Xj tiene una restriccin de no negatividad, x- > 0, la condicin necesaria (y tal vez) suficiente anterior cambia ligeramente a

para cada j de este tipo. Esta condicin se ilustra en la figura 13.11, donde la solucin ptima de un problema con una sola variable es x = 0 aun cuando la derivada ah es negativa y no cero. Como este ejemplo tiene una funcin cncava para maximizar sujeta a una restriccin de no negatividad, el que su derivada sea menor o igual a 0 en # = 0, es una condicin necesaria y suficiente para que

x= 0 sea ptima.

Un problema que tiene algunas restricciones de no negatividad y que no tiene restricciones funcionales es un caso especial (m = 0) de la siguiente clase de problemas.

OPTIMIZACIN LINEALMENTE RESTRINGIDA

Los problemas de optimizacin linealmente restringida se caracterizan por restricciones que se ajustan por completo a la programacin lineal, de manera que todas las funciones de restriccin g (x) son lineales, pero la funcin objetivo es no lineal. El problema se simplifica mucho si slo se tiene que tomar en cuenta una funcin no lineal junto con una regin factible de programacin lineal. Se han desarrollado varios algoritmos especiales basados en una extensin del mtodo smplex para analizar la funcin objetivo no lineal.

Un caso especial importante descrito a continuacin es la programacin cuadrtica.

PROGRAMACIN CUADRTICA
De nuevo los problemas de programacin cuadrtica tienen restricciones lineales, pero ahora la funcin objetivo /(x) debe ser cuadrtica. Entonces, la nica diferencia entre stos y un

problema de programacin lineal es que algunos trminos de la funcin objetivo incluyen el

cuadrado de una variable o el producto de dos variables.

PROGRAMACIN CONVEXA

La programacin convexa abarca una amplia clase de problemas, entre ellos como casos especiales, estn todos los tipos anteriores cuando /(x) es cncava. Las suposiciones son

1. 2.

f(x) es cncava. Cada una de las g(x) es convexa.

PROGRAMACIN SEPARABLE

La programacin separable es un caso especial de programacin convexa, en donde la suposicin adicional es Todas las funciones f(x) y g(x) son funciones separables. Una funcin separable es una funcin en la que cada trmino incluye una sola variable, por lo que la funcin se puede separar en una suma de funciones de variables individuales. Por ejemplo, si f(x) es una funcin separable, se puede expresar como

son cada tina funciones de una sola variable x1 y x2, respectivamente. Usando el mismo razonamiento, se puede verificar que la funcin considerada en la figura 13.7 tambin es una funcin separable.

Es importante distinguir estos problemas de otros de programacin convexa, pues cualquier problema de programacin separable se puede aproximar muy de cerca mediante uno de programacin lineal y, entonces, se puede aplicar el eficiente mtodo smplex.

son cada tina funciones de una sola variable x1 y x2, respectivamente. Usando el mismo razonamiento, se puede verificar que la funcin considerada en la figura 13.7 tambin es una funcin separable.

Es importante distinguir estos problemas de otros de programacin convexa, pues cualquier problema de programacin separable se puede aproximar muy de cerca mediante uno de programacin lineal y, entonces, se puede aplicar el eficiente mtodo smplex.

PROGRAMACIN NO CONVEXA

La programacin no convexa incluye todos los problemas de programacin no lineal que no satisfacen las suposiciones de programacin convexa. En este caso, aun cuando se tenga xito en encontrar un mximo local, no hay garanta de que sea tambin un mximo global. Por lo tanto, no se tiene un algoritmo que garantice encontrar una solucin ptima para todos estos problemas; pero s existen algunos algoritmos bastante adecuados para encontrar mximos locales, en especial cuando las formas de las funciones no lineales no se desvan demasiado de aquellas que se supusieron para programacin convexa. En la seccin 13.10 se presenta uno de estos algoritmos.

Ciertos tipos especficos de problemas de programacin no convexa se pueden resolver sin mucha dificultad mediante mtodos especiales. Dos de ellos, de gran importancia, se presentarn ms adelante.

PROGRAMACIN GEOMTRICA
Cuando se aplica programacin no lineal a problemas de diseo de ingeniera, muchas veces la funcin objetivo y las funciones de restriccin toman la forma

En tales casos, las ci y a ty representan las constantes fsicas y las x} son las variables de diseo. Estas funciones por lo general no son ni cncavas ni convexas, por lo que las tcnicas de programacin convexa no se pueden aplicar directamente a estos problemas de programacingeo-

mtrica. Sin embargo, existe un caso importante en el que el problema se puede transformar en un problema de programacin convexa equivalente. Este caso es aquel en el que todos los coeficientes c en cada funcin son estrictamente positivos, es decir, las funciones son polinomios positivos generalizados (ahora llamados posinomiales), y la funcin objetivo se tiene que minimizar. El problema equivalente de programacin convexa con variables de decisin y x, y2,, yn se obtiene
entonces al establecer

en todo el modelo original. Ahora se puede aplicar un algoritmo de programacin convexa. Se ha desarrollado otro procedimiento de solucin para resolver estos problemas de programacin

posinomial, al igual que para problemas de programacin geomtrica de otros tipos.1

PROGRAMACIN FRACCIONAL
Suponga que la funcin objetivo se encuentra en la forma de una fraccin, esto es, la razn o cociente de dos funciones,

Estos problemas de programacin fraccional surgen, por ejemplo, cuando se maximiza la razn de la produccin entre las horas-hombre empleadas (productividad), o la ganancia entre el capital invertido (tasa de rendimiento), o el valor esperado dividido entre la desviacin estndar de alguna medida de desempeo para una cartera de inversiones (rendimiento/riesgo). Se han formulado algunos procedimientos de solucin especiales1 para ciertas formas de f1(x) y f2 (x)

Cuando se puede hacer, el enfoque ms directo para resolver un problema de programacin fraccional es transformarlo en un problema equivalente de algn tipo estndar que disponga de un procedimiento eficiente. Para ilustrar esto, suponga que f(x) es de la forma de programacin

fraccional lineal

donde c y d son vectores rengln, x es un vector columna y c0 y dQ son escalares. Tambin suponga que las funciones de restriccin g (x) son lineales, es decir, las restricciones en forma matricial son Ax < b y x > 0.

Con algunas suposiciones dbiles adicionales, el problema se puede transformar en un problema equivalente de programacin lineal si se establece

que se puede resolver con el mtodo smplex. En trminos generales, se puede usar el mismo tipo de transformacin para convertir un problema de programacin fraccional con /(x) cncava, f2 (x) convexa y g (x) convexas, en un problema equivalente de programacin convexa.

Вам также может понравиться