Método del Gradiente Un modelo de Programación no Lineal (PNL) es aquel donde las variables de decisión se expresan como funciones no lineales ya sea en la función objetivo y/o restricciones de un modelo de optimización. Esta característica particular de los modelos no lineales permite abordar problemas donde existen economías o deseconomías de escala o en general donde los supuestos asociados a la proporcionalidad no se cumplen. En este sentido el método del gradiente (conocido también como método de Cauchy o del descenso más pronunciado) consiste en un algoritmo específico para la resolución de modelos de PNL sin restricciones, perteneciente a la categoría de algoritmos generales de descenso, donde la búsqueda de un mínimo esta asociado a la resolución secuencial de una serie de problemas unidimensionales. Los pasos asociados a la utilización del método del gradiente o descenso más pronunciado consiste en: Ejemplo del Método del Gradiente Considere el siguiente modelo de programación no lineal sin restricciones. Aplique 2 iteraciones del método del gradiente a partir del punto inicial X0=(1,1).
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Método del Gradiente
Un modelo de Programación no Lineal (PNL) es aquel donde las variables de decisión se expresan como funciones no lineales ya sea en la función objetivo y/o restricciones de un modelo de optimización. Esta característica particular de los modelos no lineales permite abordar problemas donde existen economías o deseconomías de escala o en general donde los supuestos asociados a la proporcionalidad no se cumplen.
En este sentido el método del gradiente (conocido también como método de Cauchy o del descenso más pronunciado) consiste en un algoritmo específico para la resolución de modelos de PNL sin restricciones, perteneciente a la categoría de algoritmos generales de descenso, donde la búsqueda de un mínimo esta asociado a la resolución secuencial de una serie de problemas unidimensionales.
Los pasos asociados a la utilización del método del gradiente o descenso más pronunciado consiste en:
Ejemplo del Método del Gradiente
Considere el siguiente modelo de programación no lineal sin restricciones. Aplique 2 iteraciones del método del gradiente a partir del punto inicial X0=(1,1).
Luego de realizar la segunda iteración se verifica que se cumplen las condiciones necesarias de primer orden (d1=(0,0)). Adicionalmente se puede comprobar que la función objetivo resulta ser convexa y en consecuencia las condiciones de primer orden resultan ser suficientes para afirmar que la coordenada (X1,X2)=(-2,1) es el óptimo o mínimo global del problema.
Ejemplo del Método del Gradiente o Método del Descenso más PronunciadoPara la optimización de modelos de Programación No Lineal sin restricciones se
dispone de una categoría de métodos denominados “Algoritmos Generales de
Descenso” entre los cuales se destaca el Método del Gradiente o Método del
Descenso más Pronunciado (conocido adicionalmente como Método de Cauchy) que
reducen el cálculo de un mínimo local a una secuencia de problemas de búsqueda
lineal (o búsqueda unidimensional).
Consideremos el siguiente problema de Programación No Lineal no restringido:
:
Es importante observar lo siguiente: El punto de partida para comenzar las iteraciones
es arbitrario y al ser evaluado en la función objetivo se alcanza un valor de V(8,7)=-
149. Si evaluamos el punto que se alcanza al realizar una iteración del método la
función objetivo obtiene el siguiente valor V(12,5)=-169 que como se puede apreciar
reduce el valor de la función objetivo. En resumen el Método del Gradiente consta de 2
pasos principales:
Primero: El cálculo de una dirección de descenso que esta dado por el negativo del
gradiente de la función objetivo evaluado en el punto de partida o en el de la k-ésima
iteración. En el ejemplo dicha dirección desde la coordenada original (8,7) esta dada en
la dirección del vector d°=(8,-4).
Un ejemplo generalSea la función convexa f(x)=12(x21+ηx22) donde η>0 es una origen (x1,x2)=(0,0).Para aplicar el método del gradiente, empezamos fijando η y definiendo f.eta=10; % definimos etaf = @(x1,x2)(x1.^2+eta*x2.^2)/2; % definimos la función[u,v] = meshgrid(-1:0.02:1,-1:0.02:1); % calculamos variables para dibujar fF=f(u,v);figure,surf(u,v,F) % representación de f como superfície
figure,contourf(u,v,F,20); % representación de f con curvas de nivelcolorbar
Implementamos el método del gradiente. Calculamos el gradiente analíticamente y lo definimos.
Gradf = @(x)[x(1); eta*x(2)]; % definimos el gradientetau = 1.8/eta; % definimos el tamaño de pasox=[0.5,0.5]'; % valor inicialX=x; % inicializamos la sucesiónfor k=1:20 % construímos la sucesión x=x-tau*Gradf(x); X=[X x];end
En dos gráficas podemos ver el camino que sigue la sucesión X y cómo f(x(k)) va disminuyendo.figure, hold oncontourf(u,v,F,20) % representación función fplot(X(1,:), X(2,:), 'w.-') % representación sucesión Xtitle('Sucesión X')hold offf_descenso=f(X(1,:),X(2,:)); % cálculo de f para los puntos de Xfigure,plot(f_descenso) % representacióntitle('Valor de la función f en cada iteración')
Multiplicadores de Lagrange
Introducción[editar]
Consideremos un caso bidimensional. Supongamos que tenemos la función, f (x, y), y queremos
maximizarla, estando sujeta a la condición:
donde c es una constante. Podemos visualizar las curvas de nivel de f dadas por
para varios valores de dn, y el contorno de g dado por g(x, y) = c. Supongamos que hablamos de la
curva de nivel donde g = c. Entonces, en general, las curvas de nivel de f y g serán distintas, y la
curva g = c por lo general intersectará y cruzará muchos contornos de f. En general, moviéndose a
través de la línea g=c podemos incrementar o disminuir el valor de f. Sólo cuando g=c (el contorno
que estamos siguiendo) toca tangencialmente (no corta) una curva de nivel de f, no se incrementa
o disminuye el valor de f. Esto ocurre en el extremo local restringido y en los puntos de
inflexión restringidos de f.
Un ejemplo familiar puede ser obtenido de los mapas climatológicos, con sus curvas de nivel de
presión y temperatura (isóbaras e isotermas respectivamente): el extremo restringido ocurrirá
donde los mapas superpuestos muestren curvas que se tocan.
Geométricamente traducimos la condición de tangencia diciendo que los gradientes de f y g son
vectores paralelos en el máximo. Introduciendo un nuevo escalar, λ, resolvemos
[f(x, y) - λ (g(x, y) − c)] = 0
para λ ≠ 0.
Una vez determinados los valores de λ, volvemos al número original de variables y así
continuamos encontrando el extremo de la nueva ecuación no restringida.
de forma tradicional. Eso es, para todo (x, y) satisfaciendo la condición
porque es igual a cero en la restricción, pero los ceros de F(x, y) están todos
en .
El método de los multiplicadores de Lagrange[editar]
Sea f (x) una función definida en un conjunto abierto n-dimensional {x ∈ Rn}. Se
definen s restricciones gk (x) = 0, k=1,..., s, y se observa (si las restricciones son satisfechas) que:
El método consiste en convertir el problema con restricciones de igualdad en uno de óptimos libres, gracias a la incorporación de las restricciones a la función objetivo. Distinguimos dos casos:
1. Caso de una única restricción
2. Caso de más de una restricción
En ambos casos, se construye una función, llamada función de Lagrange, y se determina qué puntos cumplen la condición necesaria para ser óptimos del problema y, posteriormente, se estudia si son máximos o mínimos analizando el cumplimiento de la condición suficiente.
Ejemplos de aplicación:
Ver ejemplo 1
Ver ejemplo 2
Ver interpretación de los multiplicadores de Lagrange