You are on page 1of 9

Los problemas de programacin no lineal se presentan de muchas formas distintas.

Al con trario 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.

Optimizacin no restringida.

2.

Optimizacin linealmente restringida.

3.

Programacin cuadrtica

4.

Programacin convexa.

5.

Programacin separable.

6.

Programacin no convexa.

7.

Programacin geomtrica.

8.

Programacin fraccional.

9.

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 degradiente.
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 incertidumbre 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 x2tales que
xj^ ^ ^ x2 ^ xr
El siguiente intervalo de incertidumbre, /z, se define como sigue:
1.

Si f(xx) > /(x2), entonces xL < x* < x2. Se definen xR = x2 e /, = (xL, x2) (vase la figura
21.2[a]).

2.

Si f(xx) < f(x2\ entonces xx < x* < xR. Se definen xL = xx e I = (xh xR) (vase la figura 21.1
[b]). .

3.

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 iteracin ksilk< A,donde A es un grado de exactitud definido
por
el
usuario.
*
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 apre ciar
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 necuaciones 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 ne cesaria (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.

f(x) es cncava.

2.

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
deprogramacingeo- 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 yx, 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 especiales 1 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
deprogramacin 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.

You might also like