Vous êtes sur la page 1sur 27

Ejercicios Parte I

Novoa Flores, Guido Ignacio


Mster en Tcnicas Estadsticas
Programacin matemtica
Curso 2014/2015

Programacin Matemtica

Ejercicio 1. Estudiar la concavidad o convexidad de las siguientes funciones:


f (x, y, z) = x3 + 2y 2 + 4z 4
f (x1 , x2 ) = x1 e(x1 +x2 )

f (x1 , x2 ) = x1 + 2x2 ,

x1 , x2 > 0

En primer lugar, decimos que una funcin f : S R es convexa sobre S, un


conjunto convexo, si:

x1 , x2 S, [0, 1] = f (x1 + (1 )x2 ) f (x1 ) + (1 )f (x2 ).


Por su parte, f es estrictamente convexa si:

x1 , x2 S, (0, 1) = f (x1 + (1 )x2 ) < f (x1 ) + (1 )f (x2 ).


Adems, si f es (estrictamente) convexa, entonces f es (estrictamente)
cncava.
Sin embargo, en la prctica no se suele usar la definicin de funcin convexa, si no que se estudia usando la hessiana de la funcin (si sta es dos veces
derivable) como recoge el siguiente teorema:
Teorema. Sea f : S R una funcin dos veces diferenciable sobre un conjunto
no vaco, abierto y convexo S Rn . Entonces f es convexa si y slo si la
hessiana es semidefinida positiva en cada punto de S. Si la hessiana es definida
positiva en cada punto de S, entonces la funcin f es estrictamente convexa.
Adems, el siguiente resultado nos permite conocer si una matriz simtrica
es (semi)definida positiva (negativa) conociendo sus autovalores
Teorema. Una matriz simtrica Q es definida positiva (resp. negativa) si y slo
si todos los autovalores de Q son positivos (resp. negativos) y es semidefinida
positiva (resp. negativa) si y slo si todos los autovalores de Q son no negativos
(resp. no positivos). La matriz Q es indefinida si y slo si Q tiene al menos un
autovalor positivo y al menos un autovalor negativo.
Ahora estamos en condiciones de estudiar la convexidad/concavidad de nuestras distintas funciones. Para hacer nuestros clculos hemos usado el software
Maxima y adjuntamos los correspondientes comandos.

Guido I. Novoa Flores

Ejercicios Primera Parte

Programacin Matemtica

f (x, y, z) = x3 + 2y 2 + 4z 4 .
(%i1)
(%i2)
(%i3)
(%i4)

--load("vect")$
f:x^3+2*y^2+4*z^4$
H:hessian(f,[x,y,z]);
eigenvalues(H);

Obtenemos que la hessiana de f es:

6x 0
4
Hf = 0
0
0

0
0
48z 2

A la vista de la hessiana vemos que los autovalores son: 1 = 6x, 2 = 4 y


3 = 48z 2 .
Se tiene que si x 0, entonces todos los autovalores son no negativos, por
tanto la funcin f sera convexa en esos puntos. Adems, si x > 0 y z 6=
0 entonces todos los autovalores seran positivos y f resultara estrictamente
convexa. Por su parte, independientemente, de los valores que puedan tomar las
variables x, y, z, se tiene que 2 = 4 con lo cual la funcin f no es cncava en
ningn punto del plano.
f (x1 , x2 ) = x1 e(x1 +x2 ) .
Si repetimos los comandos que usamos para el apartado anterior,
(%i1)
(%i2)
(%i3)
(%i4)
(%i5)

f:x1*exp(-(x1+x2))$
H:hessian(f,[x1,x2]);
eigenvalues(H);
determinant(H);
expand(%);

obtenemos que la hessiana de f es


Hf = e(x1 +x2 )

x1 2
x1 1

x1 1
x1

y su determinante es |Hf | = e2(x1 +x2 ) , como |Hf | < 0 para cualquier


valor de x1 y x2 se tiene que tenemos un autovalor positivo y otro negativo, con
lo cual la hessiana es indefinida y en virtud del teorema anterior se tiene que f
es indefinida.

Guido I. Novoa Flores

Ejercicios Primera Parte

Programacin Matemtica

f (x1 , x2 ) =

x1 + 2x2 ,

x1 , x2 > 0

Con los comandos de Maxima siguientes


(%i1) f:sqrt(x1+2*x2)$
(%i2) H:hessian(f,[x1,x2]);
(%i3) eigenvalues(H);
obtenemos la siguiente hessiana de f
1
4
1

Hf = p
(x1 + 2x2 )3 1
2

1
2

5
1
Los autovalores de la hessiana son 1 = p
y 2 = 0, como
4 (x1 + 2x2 )3
x1 , x2 > 0, entonces 1 < 0. Por tanto la funcin f es cncava en todo R2 .

Guido I. Novoa Flores

Ejercicios Primera Parte

Programacin Matemtica

Ejercicio 2. Estudiar si la siguiente funcin es cuasiconvexa o cuasicncava:


f (x1 ; x2 ) = eax1 +bx2 , con (x1 , x2 ) R2 a, b R.
Por la definicin de cuasiconvexidad se tiene que f : S R, con S Rn un
conjunto no vaco y conexo si x, y S:
f (x + (1 )y) max{f (x), f (y)}

(0, 1).

Por otro lado, f es cuasicncava, si f es cuasiconvexa.


Anlogamente a como hacamos en el ejercico anterior, vamos a estudiar la
cuasiconvexidad de f usando la siguiente proposicin que nos da una condicin
necesaria y suficiente.
Proposicin. f es cuasiconvexa en S si y slo si para cualesquiera x, y S
tales que f (y) f (x) se tiene que f (x)T (y x) 0.
Tomamos x, y R2 tales que f (y) f (x). Se tiene que:

eay1 +by2 eax1 +bx2 ay1 + by2 ax1 + bx2 a(y1 x1 ) + b(y2 x2 ) 0. (1)
Si calculamos el vector gradiente de f en el punto x multiplicado por el
vector y x se obtiene:

f (x) (y x) = ae

= eax1 +bx2

y1 x1
be
y2 x2

a(y1 x1 ) + b(y2 x2 ) .

ax1 +bx2

ax1 +bx2

Es inmediato ver que f (x)T (y x) 0 ya que el primer trmino del


producto es siempre positivo y el segundo es no positivo debido a (1). Con lo
cual, resulta que la funcin es cuasiconvexa en todo R2 .

Guido I. Novoa Flores

Ejercicios Primera Parte

Programacin Matemtica

Ejercicio 3. Resolver grficamente el siguiente problema de programacin no


lineal:
Optimizar

f (x1 , x2 ) = x1 + x2
x21 x2 0

s.a

2x1 + x2 3
2x1 3x2 + 5 0

Este ejercicio se ha resuelto usando el software R. La siguiente Figura 1


muestra el resultado obtenido.

2.
5

0
.2
5
0

0
0

Objetivo
R1
R2
R3

Figura 1: Funcin a optimizar y la regin factible correspondiente.

Guido I. Novoa Flores

Ejercicios Primera Parte

Programacin Matemtica

Como vemos en la Figura 1, tendramos un mnimo en el punto ( 21 , 41 ) en


el cual la funcin objetivo vale 14 y un mximo en el punto ( 21 , 1) en el cual f
vale 52 .

Guido I. Novoa Flores

Ejercicios Primera Parte

Programacin Matemtica

Ejercicio 4. Una empresa desea minimizar sus costes totales, con la condicin
de que los ingresos obtenidos por la venta de las cantidades x1 , x2 de los dos
productos que fabrica superen un cierto umbral mnimo. Sabiendo que los costes
unitarios de fabricacin de cada bien son funciones lineales de los outputs producidos de la forma C1 = x1 , C2 = 2x2 , que se vende todo lo que se produce y
que los precios de venta de los productos son, p1 = 1, p2 = 3, respectivamente,
se pide:
Formular el programa matemtico correspondiente, suponiendo que se deben ingresar, como mnimo, 3 unidades monetarias.
Resolver el programa utilizando las condiciones de Kuhn-Tucker y decir si
son condiciones necesarias y suficientes.
Estudiar cunto variara el coste ptimo con respecto a la situacin anterior si como mnimo deben ingresarse 2.8 unidades monetarias y si como
mnimo deben ingresarse 3.1 unidades monetarias.
De acuerdo al enunciado, el problema se podra modelar de forma general
como:
Min f (x1 , x2 , C1 , C2 ) = C1 x1 + C2 x2
p1 x1 + p2 x2 k,

S.a

x1 , x2 0
Si ahora incluimos los outputs del enunciado, los precios de venta, y el mnimo
de unidades que se quieren vender nuestro problema quedara como sigue:
Min
S.a

x21 + 2x22

x1 + 3x2 3,
x1 , x2 0

Utilizamos el siguiente codigo de Maxima para resolver el problema:


(%i1) f:x^2+2*y^2$
(%i2) g:-x-3*y$
(%i3) fx:diff(f,x,1)$
(%i4) fy:diff(f,y,1)$
(%i5) gx:diff(g,x,1)$
(%i6) gy:diff(g,y,1)$
(%i7) e1:fx+l*gx;
(%i8) e2:fy+l*gy;
(%i9) e3:x+3*y-3;
(%i10) sol:algsys([e1,e2,e3],[x,y,l]);
(%i11) f,sol;
Guido I. Novoa Flores

Ejercicios Primera Parte

Programacin Matemtica

6
9
Resolviendo el resultado obtenemos un ptimo en el punto (x1 , x2 ) = ( 11
, 11
)
18
en el cual la funcin objetivo vale 11 = 1.636364. Adems, como la funcin
objetivo es estrictamente convexa y las funciones de restriccin son convexas
entonces las condiciones de Kuhn-Tucker son necesarias y suficientes.

Por su parte, el multiplicador de Lagrange, al cual llamamos l, tiene un valor


de l = 12
11 . ste valor de l es muy til para saber cunto variar, aproximadamente, la funcin objetivo si variamos el umbral mnimo de ventas.
Si en el primer caso tomamos k = 2.8, entonces se produce una variacin en
el umbral mnimo de ventas de k = 0.2, por tanto se esper que la funcin
12
(0.2) 0.218.
objetivo vare lk = 11
Lo comprobamos usando los mismos comandos que antes en Maxima pero
solo modificamos la ecuacin en la que aparece el umbral mnimo de ventas.
(%i12) e3:-x-3*y+2.8;
(%i10) sol2:algsys([e1,e2,e3],[x,y,l]);
(%i11) f,sol2;
42
Se obtiene el ptimo en el punto (x1 , x2 ) = ( 28
55 , 55 ) (0.509, 0.764) y ahora
392
la funcin objetivo vale 275 = 1.425. Obsrvese que f = 0.210909 que es un
valor muy prximo a lk que habamos calculado.

Si ahora tomamos k = 3.1 se obtiene un resultado anlogo al anterior, en


este caso k = 0.1 con lo cual esperamos que la funcin objetivo aumente su
valor en lk = 12
11 0.1 0.109.
Haciendo los clculos
(%i12) e3:-x-3*y+3.1;
(%i10) sol3:algsys([e1,e2,e3],[x,y,l]);
(%i11) f,sol3;
93
El nuevo ptimo est en (x1 , x2 ) = ( 31
55 , 110 ) (0.564, 0.845) y la funcin
961
objetivo toma un nuevo valor de 550 1.747 aproximadamente, en este caso
f = 0.107 como esperbamos.

Guido I. Novoa Flores

Ejercicios Primera Parte

Programacin Matemtica

Ejercicio 5. Minimizar
J=

N
X
(qx2i + ru2i ) + qx23
i=0

sujeto a la condicin dinmica del estado


i = 0, . . . , N 1

xi+1 = axi + bui ,

donde N = 2, q = 2, r = 4, a = 1, b = 0.5.
En primer lugar, se crea un vector de decisin con todas las variables de
estado y de control, esto es, un vector x = (x1 , x2 , x3 , u0 , u1 , u2 ) y se definen la
funcin objetivo y las condiciones dinmicas de estado para i = 0, . . . , N 1.
Luego construimos la funcin lagrangiana y la resolvemos en funcin de sus
multiplicadores de Lagrange, y, por ltimo se resuelve la dual lagrangiana para
obtener los valores ptimos de sus multiplicadores.
Con el siguiente cdigo de Maxima se puede resolver este problema:
(%i1) c0:2*x0^2+4*u0^2$
(%i2) c1:2*x1^2+4*u1^2$
(%i3) c2:2*x2^2+4*u2^2$
(%i4) J:c0+c1+c2+2*x3^2$
(%i5) h1:x1-x0-0.5*u0$
(%i6) h2:x2-x1-0.5*u1$
(%i7) L:J+l*h1+m*h2$
(%i8) Lu0:diff(L,u0,1)$
(%i9) Lu1:diff(L,u1,1)$
(%i10) Lu2:diff(L,u2,1)$
(%i11) Lx1:diff(L,x1,1)$
(%i12) Lx2:diff(L,x2,1)$
(%i13) Lx3:diff(L,x3,1)$
(%i14) sol1:algsys([Lu0,Lu1,Lu2,Lx1,Lx2,Lx3],[u0,u1,u2,x1,x2,x3]);
En sol1 se obtienen los valores ptimos de nuestro vector de decisin en funcin
de los multiplicadores de Lagrange, obtenindose:
l
16
m1
x1 =
4
u0 =

m
16
m
x2 =
4

u1 =

u2 = 0,
x3 = 0.

Ahora, construimos la dual lagrangiana y se resuelve para obtener los valores


ptimos de sus multiplicadores, que luego substuimos para obtener el ptimo de
nuestro vector de decisin.
Guido I. Novoa Flores

Ejercicios Primera Parte

Programacin Matemtica

(%i15)
(%i16)
(%i17)
(%i18)
(%i19)
(%i20)

duL:L,sol1;
expand(duL);
ec1:diff(duL,l,1)$
ec2:diff(duL,m,1)$
sol2:algsys([ec1,ec2],[l,m]);
SOL:sol1,sol2;

En sol2 estn los valores ptimos de l, m en funcin de x0 , que se supone


que es un valor conocido, obtenindose:
l=

544
x0
89

m=

256
x0 .
89

Por ltimo, se sustituyen estos valores en sol1 y se obtiene la solucin final


a nuestro problema (SOL).
34
x0
89
72
x1 =
x0
89

u0 =

Guido I. Novoa Flores

16
x0
89
64
x2 =
x0
89

u1 =

10

u2 = 0,
x3 = 0.

Ejercicios Primera Parte

Programacin Matemtica

Ejercicio 6. Haciendo uso del mtodo smplex modificado para problemas de


programacin cuadrtica, maximizar
f (x1 , x2 ) = 15x1 + 30x2 + 4x1 x2 2x21 4x22
sujeto a
x1 + 2x2 30 y
x1 0, x2 0
En primer lugar, consideramos la funcin lagrangiana del problema de minimizacin correspondiente y obtenemos que:

L(x, y, ) = 2x21 + 4x22 4x1 x2 15x1 30x2 + (x1 + 2x2 30)


Por las condiciones de Kuhn-Tucker sabemos que:
4x1 4x2 15 + = 0
8x2 4x1 30 + 2 = 0
x1 + 2x2 30 = 0 y (x1 + 2x2 30) = 0
x, y, 0
A este problema le podemos hacer corresponder el siguiente problema de
programacin lineal:
Min
S.a

R1 + R2

4x1 4x2 + + R1 = 15

4x1 + 8x2 + 2 + R2 = 30
x1 + 2x2 + s1 = 30
s1 = 0
x1 , x2 , , s1 , R1 , R2 0
Empezamos metiendo en la base las variables x1 , x2 y , con lo cual si tratamos R1 , R2 y s1 como no bsicas tenemos que igualarlas a 0 y completar la tabla
del smplex. Adems, la nica diferencia a la hora de pivotar es que tenemos que
exigir la condicin de que s1 = 0, pero como s1 no est en la base podemos
usar esas variables para la iteracin inicial.
En el Cuadro 1 vemos como quedara nuestra tabla del Smplex y los dems
parmetros que tenemos que controlar.
Guido I. Novoa Flores

11

Ejercicios Primera Parte

Programacin Matemtica

Base
x1
x2

z, zj
z zj

xB
12
9
3
0

cj
cB
0
0
0
0
0

0
x1
1
0
0
0
0

0
x2
0
1
0
0
0

0
0
1
0
0

1
R1
1
0
0
0
-1

1
R2
0
1
0
0
-1

0
s1
0
0
1
0
0

Cuadro 1: Tabla smplex


Para calcular la columna xB hubo que resolver el sistema 3x3 resultante al
hacer R1 = R2 = s1 = 0. Al hacer esto vemos que z zj 0 para todas las
variables, con lo cual estamos en el ptimo de nuestro problema de programacin
lineal. Con lo cual el ptimo del problema original se alcanza en (x1 , x2 ) = (12, 9)
con un valor de la funcin objetivo de 270.

Guido I. Novoa Flores

12

Ejercicios Primera Parte

Programacin Matemtica

Ejercicio 7. Considerar el siguiente problema:


min (x 1)2 + (y 1)2
sujeto a:
x + y =

1
2

x+y 1
x, y 0
1. Resolverlo grficamente.
2. Comprobar la respuesta utilizando la teora de Kuhn-Tucker.
3. Encontrar la funcin dual l(, ) y probar que es cncava

Para resolvermo grficamente usamos R y se obtiene la siguiente Figura 2

Objetivo
R=
R2
R>=

0.625

Figura 2: Funcin a optimizar y la regin factible correspondiente.


Guido I. Novoa Flores

13

Ejercicios Primera Parte

Programacin Matemtica

Como vemos en la Figura 2, hay un ptimo en el punto (x, y) = ( 14 , 34 ) en el


que la funcin objetivo vale 58 = 0.625.
Si queremos comprobarlo usando Kuhn y Tucker, calculamos su lagrangiana
usando Maxima
(%i1)
(%i2)
(%i3)
(%i4)
(%i5)
(%i6)
(%i7)
(%i8)

f:(x-1)^2+(y-1)^2$
L:f+l*(-x+y-1/2)+m*(x+y-1)$
Lx:diff(L,x,1)$
Ly:diff(L,y,1)$
Ll:diff(L,l,1)$
Lm:diff(L,m,1)$
sol:algsys([Lx,Ly,Ll,Lm],[x,y,l,m]);
f,sol;

En sol estn los valores ptimos para (x, y) as como para l y m. Si ahora
queremos calcular la funcin dual duL(l, m) y probar que es cncava procederamos como sigue: Introduciramos los valores ptimos de (x, y) en funcin de
l y m y los sustituiramos en la funcin lagrangiana original.
(%i9) op:algsys([Lx,Ly],[x,y]);
(%i10) duL:L,op;
(%i11) expand(%);
(%i12) hessian(%,[l,m]);
(%i13) eigenvalues(%);
Vemos que la hessiana de la dual lagrangiana es:

HduL =

Sus autovalores son 1 = 2 = 1, ambos negativos, por tanto la dual


lagrangiana es estrictamente cncava.

Guido I. Novoa Flores

14

Ejercicios Primera Parte

Programacin Matemtica

Ejercicio 8. Considrese el siguiente problema de programacin convexa linealmente restringida:


Maximizar
3x1 + 4x2 x31 2x22
sujeto a la condicin
x1 + x2 1
donde x1 , x2 0
Comenzar con la solucin inicial (x1 , x2 ) = (1/4, 1/4) para realizar tres
iteraciones del algoritmo de Frank-Wolfe.
Utilizar las condiciones de Kuhn-Tucker para verificar si la solucin obtenida en el apartado anterior es ptima.
El algoritmo de Frank-Wolfe sirve para optimizar funciones convexas con
restricciones lineales del tipo Ax b y x 0.
En este algoritmo, se parte de una solucin factible x0 y en cada iteracin
(k):
Para j = 1, . . . , n calculamos cj como sigue:
f k1
(x
) = cj .
xj
k
Se encuentra una solucin ptima
Pn xLP para el problema de programacin
lineal de maximizar g(x) = j=1 cj xj sujeto a Ax b y x 0.

Para la variable t [0, 1] se establece:


h(t) = f (x) para x = xk1 + t(xkLP xk1 ),
de forma que h(t) proporciona el valor de f (x) sobre el segmento de recta
entre xk1 y xkLP .
Se maximiza h(t) en t [0, 1] y se establece xk igual al valor de x correspondiente
Si xk1 y xk estn lo suficientemente prximos, entonces xk x . En caso
contrario se hace k = k + 1 y se repite el proceso.
En nuestro caso partimos de x0 = (1/4, 1/4). Ahora consideramos las derivadas parciales de la funcin a optimizar y obtenemos que:

Guido I. Novoa Flores

15

Ejercicios Primera Parte

Programacin Matemtica

f
(x1 , x2 ) = 3 3x21
x1

f
(x1 , x2 ) = 4 4x2 .
x2

1
=
Si ahora sustituimos x0 en las derivadas parciales obtenemos c1 = 3 3 16
1
y c2 = 4 4 4 = 3. Ahora tenemos que resolver el problema lineal:

45
16

45
x1 + 3x2
16

Max

x1 + x2 1,

S.a

x1 , x2 0.
Se obtiene como solucin x1LP
Consideramos x1 = ( 41 , 14 ) +

= (0, 1).

3t+1
t (0, 1) ( 14 , 14 ) = ( 1t
4 , 4 ) y maximizamos
1 3
(t 75t2 + 99t + 103).
para t [0, 1] la funcin h(t) = f (x1 ) =
64

El ptimo se alcanza en t = 25 4 37 0.67. Si sustituimos t en el valor


de x1 , llegamos a que x1 = (0.0825, 0.7525). Ahora tendramos que repetir todo
el proceso hasta completar las tres iteraciones.
En el Cuadro 2 vemos como vara el punto xk y como mejora la funcin
objetivo en cada iteracin. Adems tambin adjuntamos todos los parmetros
que hacen falta para ejecutar cada iteracin.
k

xk1

c1

c2

xkLP

( 14 , 14 )

45
16

(0, 1)

1
3
64 (t
3

xk

f (xk )

0.67

(0.0825, 0.7525)

2.12

h(t)
75t2 + 99t + 103)

(0.0825, 0.7525)

(1, 0)

0.77t 1.34t + 1.98t + 2.12

0.51

(0.56, 0.36)

2.69

(0.56, 0.36)

2.09

2.52

(0, 1)

0.167t3 1.29t2 + 0.436t + 2.69

0.174

(0.45, 0.48)

2.74

Cuadro 2: Resumen del algoritmo de Frank-Wolfe en cada iteracin


Con lo cual, despus de tres iteraciones tomamos como solucin x = (0.45, 0.48).
Vamos a usar las condiciones de Kuhn-Tucker para ver si es la solucin ptima.
Con el siguiente cdigo de Maxima
(%i1)
(%i2)
(%i3)
(%i4)
(%i5)
(%i6)
(%i7)
(%i8)

load("vect");
f:x1^3+2*x2^2-3*x1-4*x2$
g:x1+x2$
fx1:diff(f,x1,1)$
fx2:diff(f,x2,1)$
gx1:diff(g,x1,1)$
gx2:diff(g,x2,1)$
e1:fx1+l*gx1$

Guido I. Novoa Flores

16

Ejercicios Primera Parte

Programacin Matemtica

(%i9) e2:fx2+l*gx2$
(%i10) e3:x1+x2-1$
(%i11) algsys([e1,e2,e3],[x1,x2,l]);



13 2 5 13
obtenemos que la solucin ptima a es x =
,
(0.535, 0.465)
3
3

lo que produce un valor de la funcin objetivo de f (x ) = 2.88. Vemos por lo


tanto que el valor de x que tomamos en el iterante 3 no es el ptimo, aunque se
aproxima de forma considerable a l.

Por ltimo, representamos esta situacin grficamente usando GeoGebra para ver donde estn los puntos xk y donde est el ptimo. En la Figura 3 vemos
tambin las rectas gk que hay que optimizar, los puntos xkLP y los segmentos
que unen estos puntos con los puntos xk1 .
1.1

g1 : ( 45
16 x1 + 3x2 = 3)
g3 : (2.06x1 + 2.56x2 = 2.56)

1.0

g2 : (3x1 + x2 = 3)

x1 x3
LP LP

0.9

0.8

x1 =(0.0825,0.7525)

0.7

0.6
x3 = (0.45, 0.48)

0.5

OPT

0.4

x2 =(0.56,0.36)

0.3

x0 = ( 41 ,

1
4)

0.2

0.1
x2LP

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1.0

1.1

Figura 3: Resumen grfico del algoritmo de Frank-Wolfe

Guido I. Novoa Flores

17

Ejercicios Primera Parte

Programacin Matemtica

Ejercicio 9. Sea el problema de maximizar f : R2 pR2 con f (x) = x sujeto


a x X = {x R2 : 0 xi 4 i = 1, 2 y x2 2 + 4 (x1 2)2 con x1
[2, 4]}.
a) Dibujar la regin factible.
b) Identificar grficamente los conjuntos de soluciones dbilmente eficientes,
eficientes y propiamente eficientes en el sentido de Geoffrion.
Empezamos dibujando la regin factible X y vemos su representacin grfica
en la Figura 4
4.0

3.0

Regin
factible

2.0

1.0

1.0

2.0

3.0

4.0

5.0

Figura 4: Regin factible


Como nuestro problema es de maximizacin, un punto x ser dbilmente
eficiente si no existe x X tal que fj (x) > fj (x ) para todo j = 1, . . . , p. De
esta forma, los puntos dbilmente eficientes sern los representados en la Figura
5.

Guido I. Novoa Flores

18

Ejercicios Primera Parte

Programacin Matemtica

(2, 4)

4.0

Dbilmente Eficientes

3.0
(4, 2)

2.0

1.0
(4, 0)

1.0

2.0

3.0

4.0

5.0

Figura 5: Puntos dbilmente eficientes


Por su parte, la definicin de punto eficientes es ms fuerte que la de dbilmente eficiente ya que se pide que fj (x) fj (x ) para todo j y alguna
desigualdad estricta. Por eso los puntos de la forma (4, ) con [0, 2) no son
eficientes ya que el punto (4, 2) los mejora. Por tanto, los puntos eficientes son
los de la Figura 6.
(2, 4)

4.0

Eficientes

3.0
(4, 2)

2.0

1.0

1.0

2.0

3.0

4.0

5.0

Figura 6: Puntos eficientes


Por ltimo, los puntos (2, 4) y (4, 2) no son eficientes en el sentido de Geoffrion. Por ejemplo, para el punto (4, 2) si tomamos (3.9975, 2.1) X se tiene:
2.1 2
2.01 2
= 39.975 y (3.999975, 2.01) X se tiene
= 399.975.
4 3.9975
4 3.99975
Deducimos entonces que a poco que se empeore la primera componente, podemos mejorar la segunda de forma relativa. Con lo cual, los puntos eficientes en
el sentido de Geoffrion son los de la Figura 7

Guido I. Novoa Flores

19

Ejercicios Primera Parte

Programacin Matemtica

4.0

Geoffrion Efi.
3.0

2.0

1.0

1.0

2.0

3.0

4.0

5.0

Figura 7: Puntos eficientes en el sentido de Geoffrion

Guido I. Novoa Flores

20

Ejercicios Primera Parte

Programacin Matemtica

Ejercicio 10. El servicio de aguas Distrito 88, en el suroeste de Estados Unidos, recoge agua procedente de los ros en un embalse E1 en la montaa. El
caudal estimado es de 294 millones de pies de acre. Al menos 24 millones de
pies de acre de agua son contratados para ir directamente desde E1 hasta las poblaciones del entorno, aunque stas aceptan tanta cantidad de agua como pueda
ser suministrada. El caudal restante va a un segundo embalse E2 en el desierto
perdindose un 20 % por evaporacin en el camino. Parte del agua en E2 puede
ser dedicada al regado de granjas en los alrededores. El resto del agua atraviesa
una presa hidroelctrica y corre ro abajo. Para mantener los equipos, el agua
sobre la presa debe ser al menos de 50 millones de pies de acre. Distrito 88
vende agua a las poblaciones por valor de 050$ por pie de acre de agua y para
el regado de los granjeros a 020 $ por pie de acre de agua. El agua utilizada
en la presa hidroelctrica cuesta 080 $ por pie de acre de agua. Distrito 88
quiere maximizar tanto el agua suministrada para el riego como el beneficio de
sus ventas.
a) Tras modelar el problema por medio de un programa multiobjetivo lineal,
establecer y resolver una sucesin de programas lineales para obtener una
solucin lexicogrfica del problema priorizando los objetivos en el orden
dado en el enunciado.
b) Establecer y resolver un objetivo lineal suma ponderada de objetivos iniciales que pondere el primero dos veces ms que el segundo.
En primer lugar, vamos a modelar el problema como un problema de maximizacin multiobjetivo.

Figura 8: Distribucin del Distrito 88

Guido I. Novoa Flores

21

Ejercicios Primera Parte

Programacin Matemtica

A la vista de la Figura 8 vemos como est distribuido el Distrito 88 y el


recorrido que hace el agua desde que sale del embalse E1 hasta que llega al
final. Definimos las siguientes variables:
x1 = Millones de pies de acre enviados desde E1 hasta las poblaciones,
x2 = Millones de pies de acre enviados desde E2 hasta las granjas,
x3 = Millones de pies de acre enviados desde E1 hasta las presas.
Una vez introducidas las variables de nuestro problema, podemos enumerar
las restricciones.
Como las poblaciones contratan, al menos, 24 millones de pies de acre pero
aceptan todo lo que se les mande (y en total hay 294 millones de pies de acre)
se tiene que 24 x1 294.
Por otro lado, el caudal restante se dirige al embalse E2 perdindose un 20 %,
y el caudal restante se divide entre una presa hidroelctrica y agua dedicada al
regado de granjas. Con lo cual, obtenemos que 0.8(294 x1 ) = x2 + x3 .
Finalmente, el agua enviada a la presa debe ser al menos de 50 millones de
pies de acre, lo que implica que x3 50. Adems, es trivial ver que x1 , x2 , x3 0.
A Distrito 88 le interesa maximizar tanto el agua suministrada para el riego
(x2 ), como los beneficios (50000x1 + 20000x2 + 80000x3 ).
Por tanto, el problema de optimizacin multiobjetivo queda de la siguiente
forma:
Max
Max

x2

50000x1 + 20000x2 + 80000x3


S.a

24 x1 294

0.8(294 x1 ) = x2 + x3
x3 50
x1 , x2 , x3 0
Si queremos obtener una solucin lexicogrfica priorizando los objetivos en
el orden dado tenemos que resolver el problema de maximizar el regado, y una
vez obtenido un ptimo, incluirlo en el problema de maximizar los beneficios
como restriccin.

Guido I. Novoa Flores

22

Ejercicios Primera Parte

Programacin Matemtica

Formalmente, habra que resolver:


Max
S.a

x2

24 x1 294

0.8x1 + x2 + x3 = 235.2
x3 50
x1 , x2 , x3 0
Una vez resuelto, obtenemos que el ptimo de este problema se encuentra
en (x1 , x2 , x3 ) = (24, 166, 50). Ahora, resolveramos la otra funcin objetivo,
aadiendo la restriccin de x2 166.
Max

50000x1 + 20000x2 + 80000x3


S.a

24 x1 294

0.8(294 x1 ) = x2 + x3
x3 50
x2 166
x1 , x2 , x3 0
Resolviendo este nuevo problema, obtenemos que el ptimo vuelve a ser
(x1 , x2 , x3 ) = (24, 166, 50), lo cual conlleva unos beneficios de 8520000$.
Por ltimo, si queremos resolver el problema lineal suma ponderada tenemos
que considerar el siguiente modelo:
Max

w1 x2 + w2 (50000x1 + 20000x2 + 80000x3 )


S.a

24 x1 294

0.8(294 x1 ) = x2 + x3
x3 50
x1 , x2 , x3 0
donde w1 y w2 es el peso que asignamos a cada funcin objetivo. Como
queremos que el primero pondere ms que el segundo tenemos que w1 = 2w2 .
Si tomamos w2 = 1 el problema queda de la siguiente forma:
Max

50000x1 + 20002x2 + 80000x3


S.a

Guido I. Novoa Flores

24 x1 294
23

Ejercicios Primera Parte

Programacin Matemtica

0.8(294 x1 ) = x2 + x3
x3 50
x1 , x2 , x3 0
cuya solucin ptima es (x1 , x2 , x3 ) = (24, 0, 216) con un valor de 18480000$.
Ntese el gran cambio que hay entre las soluciones de un problema y otro al
cambiar el modelo.

Guido I. Novoa Flores

24

Ejercicios Primera Parte

Programacin Matemtica

Ejercicio 11. Considerar el problema multiobjetivo siguiente:


max x1
max 2x1 + 2x2
s.a

x1 4
x2 7
2x1 + x2 9
x1 , x2 0

a) Plantear el problema multiobjetivo dual.


b) Encontrar una solucin eficiente del problema multiobjetivo dual.
Antes de plantear el multiobjetivo dual tenemos que definir el problema
escalar P() P(1 , 2 ) asociado que tomara la siguiente forma:
Max 1 x1 + 2 (2x1 + 2x2 ) = x1 (1 + 22 ) + x2 2
S.a

x1 4
x2 7
2x1 + x2 9
x1 , x2 0

Ahora tenemos un problema de programacin lineal y le asociamos el dual


correspondiente D()
Min 4u1 + 7u2 + 9u3
S.a

u1 + 2u3 1 + 22
u2 + u3 2
u1 , u2 , u3 0

Para encontrar una solucin eficiente del problema multiobjetivo dual, primero tenemos que darle valores a 1 , 2 con la condicin de que 1 + 2 = 1.
Guido I. Novoa Flores

25

Ejercicios Primera Parte

Programacin Matemtica

Tomando 1 = 2 =

1
2

tendramos el problema D( 12 12 ) siguiente:

Min 4u1 + 7u2 + 9u3


S.a

u1 + 2u3
u2 + u3

3
2

1
2

u1 , u2 , u3 0
cuyo ptimo est en el punto u = (0.5, 0, 0.5). La solucin correspondiente
del primal escalar sera x = (4, 1) con un valor de 6.5.

Guido I. Novoa Flores

26

Ejercicios Primera Parte

Vous aimerez peut-être aussi