Sei sulla pagina 1di 14

OPTIMIZACIN ESTTICA MULTIVARIANTE CON MAPLE

Autor:
1
Jorge Mauricio Oviedo
Facultad de Ciencias Econmicas. Universidad Nacional de Crdoba

Resumen: El presente trabajo provee un conjunto de rutinas capaces de


crear nuevos comandos reconocidos por el lenguaje Maple que habilitan al
usuario a resolver problemas de optimizacin en n variables y m
restricciones. La generalidad del mismo permite abordar casos de
optimizacin libre y con restricciones de igualdad y desigualdad facultando
el cmputo de las condiciones de primer y segundo orden.

1
joviedo@eco.unc.edu.ar
1- INTRODUCCIN

La resolucin de problemas de optimizacin tanto numrica como simblicamente suele ser una
tarea larga, tediosa y engorrosa en el sentido del alto insumo de tiempo que esta demanda. En este
sentido, el uso de Softwares para facilitar esta tarea, surge como una idea atractiva pero
lastimosamente hasta el momento los paquetes internos provistos por los distintos programas
(Maple y Mathematica principalmente) no contienen comandos fciles y directos que permitan a
una persona sin dominio en le manejo de los mismos, resolver estos problemas.
El objetivo de este trabajo es brindar un paquete de optimizacin que resulte sumamente fcil de
implementar a cada problema con el que el usuario se enfrente. Vale destacar que el mismo provee
las soluciones tanto numricas como simblicas a cada tipo de problemas.
Los problemas que se resuelven mediante este paquete son los siguientes: Optimizacin Libre en n
variables, Optimizacin con restricciones de igualdad en n variables y m restricciones (m < n) y
Optimizacin con restricciones de desigualdad en n variables y m restricciones.

2- CLASIFICACIN DE LOS PROBLEMAS DE OPTIMIZACIN

En una primera gran divisin los problemas de Optimizacin pueden dividirse:


Optimizacin Esttica: donde el objetivo es hallar el valor numrico de una o varias variables
que optimizan el valor de una funcin en una o varias variables respectivamente. A su vez stos
problemas pueden subclasificarse en:
Optimizacin Libre
Optimizacin sujeto a restricciones de igualdad
Optimizacin sujeto a restricciones de desigualdad

Optimizacin Dinmica: donde el objetivo es hallar una funcin o conjunto de funciones que
maximicen o minimicen una integral definida. Estos problemas pueden clasificarse en tiempo
discreto y continuo por un lado, en problemas determinsticos o aleatorios por otro y dentro de
estos en variables aleatorias continuas o discretas. Este tipo de optimizacin exceden el alcance
de este trabajo y se proveer en un traba jo posterior.

3- OPTIMIZACIN LIBRE

Caso 2 variables:
En este problema el objetivo consiste en determinar los valores de x1 y x2 que hacen mximo o
mnimo el valor de una funcin objetivo f. Formalmente el problema puede escribirse de la
siguiente manera:

Max f = f ( x1 , x2 )
x1 , x2

Donde la condicin de primer orden (condicin necesaria) viene dada por el siguiente sistema de
ecuaciones2 :

f ( x1 , x2 ,..., xn ) f ( x1 , x2 ,...xi + h,..., xn ) f ( x1 , x2 ,... xi ,..., xn )


2
Donde f x ( x1 , x2 ,..., xn ) = = lim
i
xi h 0 h
f x1 ( x1 , x2 ) = 0
( x1* ,x 2* )
f x 2 ( x1 , x2 ) = 0

Geomtricamente la condicin de primer orden establece que hay que buscar los valores de las
variables, es decir el punto del dominio para el cual el plano tangente a la grfica de f es horizontal.
Dicho sistema por lo general es no lineal y puede tener varias soluciones es decir pueden existir
varios puntos para los cuales el plano tangente a la grfica de f es horizontal. Dichos puntos son
denominados puntos crticos o candidatos a ptimos de f. ya que los puntos donde f presenta plano
tangente horizontal pueden ser mximos, mnimos o puntos de inflexin (puntos de silla). Para
dicha distincin la condicin de segundo orden (condicin suficiente) hace referencia a la matriz
hessiana (matriz de derivadas segundas) evaluada en cada punto crtico:

f x x ( x1* , x2* ) f x1 x 2 ( x1* ,x2* )


H f ( x1 , x2 ) = 1 1
* *
f x x ( x1* , x2* ) * *
f x 2 x 2 ( x1 , x2 )
21

Dicha matriz provee toda la informacin necesaria de f en las inmediaciones de cada punto por
medio de una aproximacin de Taylor de segundo orden en el sentido de que avisa si el entorno del
punto es cncavo o convexo. Algebraicamente, para discernir si cada punto crtico es efectivamente
un punto que optimiza a f se hace referencia la concepto de menores principales de orden n asociado
a una matriz cuadrada de orden m (m >= n). Un menor principal de orden n asociado a una matriz
de orden m es el determinante que surge de considerar una submatriz de orden n conformada por las
primeras n filas y las primeras n columnas. Con esta definicin la condicin de segundo orden se
puede enunciar en trminos de los menores principales de la matriz hessiana evaluada en cada punto
crtico. En efecto:

H1 > 0 H1 < 0
Mnimo Mximo
H2 > 0 H2 > 0

Es decir para que efectivamente un punto crtico (que satisface la condicin de primer orden) sea un
mximo local de f es suficiente que los menores principales asociados a la matriz hessiana evaluada
en el punto crtico en cuestin alternen en signo empezando por signo negativo. Para el caso de un
mnimo se requiere que todos sean positivos.

Caso n variables:
En esta situacin el problema se presenta como:

Max f = f ( x1 , x2 ,..., xn )
x1 , x 2 ,...,xn

donde ahora la condicin de primer orden viene dada por es siguiente sistema de n ecuaciones:

f x1 ( x1 , x2 ,..., xn ) = 0
f x 2 ( x1 , x2 ,..., x n ) = 0
( x1* , x2* ,..., xn* )
M
f x n ( x1 , x2 ,..., x n ) = 0
Donde al igual que en el caso anterior el sistema es no lineal y puede presentar mltiples soluciones.
Cada una de ellas ser un punto crtico y para decidir si dichos puntos son o no puntos ptimos se
recurre a analizar el signo de los menores principales de la matriz hessiana evaluada en cada punto
critico:

f x x ( x1* , x2* ,..., xn* ) K f x1 xn (x1* , x2 * ,..., x n* )


11
H f ( x1 , x2 ,..., xn ) =
* * *
M O M
*
f x x ( x1 , x2 ,..., xn ) L
* * *
f xn xn ( x1 , x2 ,..., xn )
* *
n1

En esta situacin para el caso de mnimo es suficiente que todos los menores principales sean
positivos mientras que para el caso de mximo se requiere que alternen en signo comenzando por
signo negativo. Algebraicamente se tiene:

H1 > 0 H1 < 0
H2 > 0 H2 > 0
Mnimo Mximo
M M
Hn > 0 (1) Hn > 0
n

4- OPTIMIZACIN RESTRICCIONES DE IGUALDAD

Caso 2 variables y una restriccin:


Este tipo de problema consiste en hallar los valores de x1 y x2 que perteneciendo a una curva del
dominio ( g(x1, x 2 ) = m ) confieran a f un valor mximo o mnimo. Formalmente este problema
puede escribirse de la siguiente manera:

Max f = f ( x1 , x2 )
x1 , x2

st : g( x1 , x2 ) = m

Para su resolucin se hace uso de la funcin Lagrangeana (L) y de los multiplicadores de Lagrange
() como sigue:

MaxL = f ( x1 , x2 ) + [ m g ( x1 , x2 )]
x1 , x2

La condicin de primer orden ahora se escribe en trminos de la funcin Lagrangeana y arroja el


siguiente sistema de ecuaciones:

Lx1 ( x1 , x2 ) = 0
Lx2 ( x1 , x2 ) = 0 ( x1* , x2* , * )
L (x1 , x2 ) = 0
Al igual que en los otros casos las ecuaciones pueden resultar ser no lineales y con soluciones
mltiples. Cada una de dichas soluciones constituye los puntos crticos que luego debern verificar
las condiciones de segundo orden. En este caso se recurre a una matriz hessiana de la funcin
Lagrangeana orlada con ceros y evaluada en cada punto crtico. Luego sobre estas matrices se
toman los menores principales:

0 g x1 ( x1* , x2* , * ) g x 2 (x1* ,x 2* , * )



H L ( x1* , x2* , * ) = g x1 ( x1* , x2* , * ) Lx1 x1 ( x1* , x2* , * ) Lx1 x2 ( x1* , x2* , * )

g x (x1* , x2* , * ) Lx x ( x1* , x2* , * ) Lx x ( x1* , x2* , * )
2 2 1 2 2

Mnimo: H3 < 0 Mximo: H3 > 0

Como se aprecia los menores principales se toman a partir del orden tres por lo que en definitiva
solo hay que atender al signo del determinante de la matriz hessiana orlada evaluada en cada punto
crtico.

Caso n variables y m restricciones (m < n)


Similarmente al caso planteado con anterioridad, el problema consiste en hallar un punto n
dimensional (es decir los valores de x1,x2,,xn ) tales que satisfaciendo un conjunto de restricciones
(siempre menor al nmero de incgnitas) confieran a f un valor mximo o mnimo. Formalmente el
problema se traduce a:

Max f = f ( x1 , x2 ,..., xn )
x1 , x 2 ,...,xn

st : g1 ( x1 , x2 ,..., x n ) = m1
g 2 (x1 , x2 ,..., x n ) = m2
M
g m ( x1 , x2 ,..., x n ) = mm

Nuevamente se plantea la funcin Lagrangeana que ahora se generaliza de la siguiente manera:

Max L = f ( x1 ,x2 ,..., xn ) + 1[m1 g1 (x1 ,x2 ,..., xn )] + 2[m2 g 2 (x1 , x2 ,..., xn )] + L+ m[ mm gm (x1 , x2 ,..., xn )]
x1 , x2 ,..., xn

Mientras que la condicin de primer orden arroja el siguiente sistema de n + m ecuaciones


Lx1 ( x1 , x2 ) = 0
Lx 2 (x1 ,x2 ) = 0
M
Lx n ( x1 , x2 ) = 0
( x1* , x 2* ,..., xn *, 1* , 2* ,..., m * )
L1 ( x1 , x2 ) = 0
L 2 ( x1 , x2 ) = 0
M
L m ( x1 , x2 ) = 0

Las soluciones para dicho sistema constituyen los puntos crticos candidatos a extremos relativos
(mximos o mnimos) de la funcin sujeta a las restricciones. A continuacin se debe recurrir a la
matriz hessiana orlada que para el caso de m restricciones adopta la siguiente forma en trminos
matriciales:

0m x m g X ( x1* , x2* ,..., xn* , 1* ,... m* )m x n


HL ( x1* , x2* ,..., xn* , 1* ,...m * ) =
g XT ( x1* , x2* ,..., xn* , 1* ,...m* )m x n HL ( x1* , x2* ,..., xn* , 1* ,...m* )n x n

donde:
0 m x m es una matriz cuadrada de ceros de orden m x m

g1x (x1* ,x2* ,..., xn* , 1* ,...m* ) K g1x (x1* ,x2* ,..., xn* , 1* ,...m* )
1 n

g X (x1 ,x2 ,..., xn , 1 ,...m )m x n =
* * * * *
M O M
m
g x (x1* ,x2* ,..., xn* , 1* ,...m* ) L g m x (x1* ,x2* ,..., xn* , 1* ,...m* )
1 n
g X ( x1 , x2 ,..., xn , 1 ,...m ) m x n es la transpuesta de la matriz anterior
T * * * * *

Una vez obtenida la matriz hessiana orlada se debe atender al signo de los menores principales a
partir del orden 2 m +1. Para el caso de mnimo se requieren que todos tengan el signo de (-1)m y
para mximo se requiere que los menores alternen en signo comenzando por el signo de (-1) m+1 .

5- OPTIMIZACIN RESTRICCIONES DE DESIGUALDAD

En este caso el problema es:

Max f = f ( x1 , x2 ,..., xn )
x1 , x 2 ,...,xn

st : g1 ( x1 , x2 ,..., x n ) < m1
g 2 (x1 , x2 ,..., x n ) < m2
M
g m ( x1 , x2 ,..., x n ) < m m

La funcin Lagrangeana ser:


Max L = f ( x1 ,x2 ,..., xn ) + 1[m1 g1 (x1 ,x2 ,..., xn )] + 2[m2 g 2 (x1 , x2 ,..., xn )] + L+ m[ mm gm (x1 , x2 ,..., xn )]
x1 , x2 ,..., xn

Las condiciones de Kuhn-Tucker para mximo son:

L L
xj =0 0 xj 0 ( j = 1,2,..., n)
x j x j
L L
i =0 0 i 0 (i = 1,2,..., m)
i i

Los problemas de minimizacin pueden resolverse en trminos de las condiciones para mximo
mediante el simple artilugio:
Primero se debe definir la funcin objetivo como la opuesta (es decir multiplicada por -1)
Los problemas de minimizacin suelen tener desigualdades del tipo mayor o igual en
consecuencia se las debe transformar el sentido de las desigualdades multiplicando ambos
miembros por -1 de modo que las desigualdades sean del tipo menor o igual

6- IMPLEMENTACIN EN MAPLE

Como se apreci en las secciones anteriores la tarea de resolver los sistemas de ecuaciones que
surgen de las condiciones de primer orden como as tambin el cmputo de las matrices hessianas,
su evolucin en los puntos crticos y el clculo de los menores principales, es realmente tediosa y
demandante de un alto insumo de tiempo. En este sentido el presente paquete de optimizacin
permite al usuario mediante sencillos comandos resolver las condiciones de primer y segundo orden
para todos los puntos crticos de los diversos problemas planteados en la seccin anterior. Posee
adems la generalidad de ser extensivo a n variables y m restricciones.
Para ello se han creado un conjunto de rutinas que permiten incorporar nuevas funciones al lenguaje
Maple

Los comandos disponibles son los siguientes:


libre: este comando permite obtener cada uno de los puntos crticos de un problema de
optimizacin libre en n variables, el cmputo de la matriz hessia na evaluada en cada uno de los
puntos crticos y el clculo de los menores principales asociados a cada candidato a ptimo.
lagrange: por medio de esta orden se obtienen los candidatos a ptimos (incluyendo a los
multiplicadores de Lagrange) de un problema de optimizacin restringida en n variables y m
restricciones como as tambin las matrices hessianas orladas evaluadas en sus respectivos puntos
crticos y los correspondientes menores principales a partir del de orden 2m+1
Maxkt: este comando habilita al usuario a hallar los puntos de un problema de programacin no
lineal en n variables y m restricciones que satisfacen las condiciones de Kuhn-Tucker para el caso
de maximizacin. Mediante un simple artilugio este comando tambin puede ser usado para el caso
de minimizacin.

INICIALIZACIONES :

A continuacin se exponen el conjunto de rutinas que permiten al programa reconocer los


nuevos comandos anteriormente enunciados.
# Rutina para resolver problemas de optimizacin libre #

# Creacin de la function libre #


restart;
libre:=proc(f,X)
local A, j, k, B;

# Condicin de primer orden #


print(____________________________________________________________);
_EnvExplicit := true:
A:=[solve({seq(diff(f,X[i])=0,i=1..nops(X))},{seq(X[i],i=1..nops(X))})]:
for j from 1 by 1 to nops(A) do
print(Punto_Critico[j]);

# Condicin de Segundo orden #


print([A[j],fvalue=eval(f,A[j])]);
print(Hessian[j]=eval(linalg[hessian](f,X),A[j]));
B:= eval(linalg[hessian](f,X),A[j]):
print(Minors[j]=[seq(linalg[det](linalg[submatrix](B, 1..k, 1..k)),k=1..nops(X))]);
print(____________________________________________________________);

od;
end:

# Rutina para resolver problemas de optimizacin restricciones de igualdad #

# Creacin de la function lagrange #


lagrange:=proc(h,g,v,l)
local A, j, k, B, f, T, X, m, q, G, GT, Ceros, HH;
f:= h-linalg[multiply](linalg[transpose](l),g):
T:= convert(linalg[stackmatrix](linalg[transpose]([v]),linalg[transpose]([l])),vector):
X:=[seq(T[m],m=1..(nops(v)+nops(l)))]:

# Condici n de primer orden #


print(____________________________________________________________);
_EnvExplicit := true:
A:=[solve({seq(diff(f,X[i])=0,i=1..nops(X))},{seq(X[i],i=1..nops(X))})]:
for j from 1 by 1 to nops(A) do
print(Punto_Critico[j]);
print(A[j]);
print(fvalue=eval(f,A[j]));

# Condicin de Segundo orden #


G:=convert([seq([seq(diff(g[j],v[i]),i=1..nops(v))],j=1..nops(g))],matrix):
Ceros:=convert([seq([seq(0,i=1..nops(g))],j=1..nops(g))],matrix):
GT:=linalg[transpose](G):
HH:=linalg[hessian](f,v):
print(Hessian[j]=eval(linalg[stackmatrix](linalg[concat](Ceros,G),linalg[concat](GT,HH)),A[j
]));
B:= eval(linalg[stackmatrix](linalg[concat](Ceros,G),linalg[concat](GT,HH)),A[j]):
q:= 2*nops(l)+1:
print(Minors[j]=[seq(linalg[det](linalg[submatrix](B, 1..k, 1..k)),k=q..nops(X))]);
print(____________________________________________________________);
od;

end:

# Rutina para resolver problemas de optimizacin restricciones de desigualdad #

# Creacin de la function Maxkt #


Maxkt:=proc(h,g,v,l)
local A, j, k, B, f, T, X, m, q, qq, t, u, uu, gg, uuu, L;
f:= h-linalg[multiply](linalg[transpose](l),g):
T:= convert(linalg[stackmatrix](linalg[transpose]([v]),[l]),vector):
X:=[seq(T[m],m=1..(nops (v)+nops(l)))]:
L:=[]: print(____________________________________________________________);

# Condicin de primer Kuhn-Tucker #


_EnvExplicit := true:
A:=[solve({seq(X[i]*diff(f,X[i])=0,i=1..nops(X))},{seq(X[i],i=1..nops(X))})]:
gg:=[]:
for j from 1 by 1 to nops(A) do
qq:=0:
for t from 1 by 1 to nops(v) do
if(evalf(eval(diff(f,v[t]),A[j]))<=0) then qq:=qq+1 fi:
od;
for u from 1 by 1 to nops(l) do
if(evalf(eval(diff(f,l[u]),A[j]))>=0) then qq:=qq+1 fi:
od;
for uu from 1 by 1 to nops(X) do
if(evalf(eval(X,A[j]))[uu]>=0) then qq:=qq+1 fi:
od;

if(qq=2*nops(X)) then
print(Punto_Critico[j]);
print(A[j]);
print(fvalue=eval(f,A[j]));
gg:= [op(gg),eval(f,A[j])]:
L := [op(L),A[j]]:
print(____________________________________________________________);
fi;

od;
for uuu from 1 by 1 to nops(gg) do
if(max(seq(gg[ii],ii=1..nops(gg)))=gg[uuu]) then print([MaxGlobal_fvalue=gg[uuu],L[uuu]])
fi;
od;

end:

7- SINTAXIS Y EJEMPLOS

OPTIMIZACIN LIBRE

Sintaxis

libre ( funcin , listado de variables independientes );

Ejemplo

Sea el siguiente problema: Max f = x^3 + 3*x*y^2 - x*y

> libre(x^3+3*x*y^2-x*y,[x,y]);
OPTIMIZACIN RESTRICCIONES DE IGUALDAD

Sintaxis

lagrange ( funcin , listado de restricciones igualadas a cero, listado de variables


independientes, listado de multiplicadores de lagrange );

Ejemplo

Sea el siguiente problema: Max f = x^2+y^2


st: 3x+5y=1

> lagrange(x^2+y^2,[3*x+5*y-1],[x,y],[l]);

OPTIMIZACIN RESTRICCIONES DE DESIGUALDAD

Sintaxis

Maxkt ( funcin , listado de restricciones igualadas a cero "del tipo menor que" , listado
de variables independientes, listado de multiplicadores de lagrange );

Ejemplo

Sea el siguiente problema: Max f = x^ 2 + y^ 2

st: 3 x + 5 y < 1

> Maxkt(x^2+y^2,[3*x+5*y-1],[x,y],[l]);
8- BIBLIOGRAFA

APSTOL, Tom: Calculus. Ed. Revert. 1976. Segunda Edicin


CHIANG, Alpha: Economa Matemtica. Ed. McGraw-Hill. 1998
LUEMBERGER, M.: Programcicion lineal y no lineal
STEIN, S.: Clculo con geometra analtica. Ed Mc. Graw-Hill. 1995
STEWARD, James: Clculo. Ed. Iberoamerica.1981

Potrebbero piacerti anche