Documentos de Académico
Documentos de Profesional
Documentos de Cultura
0PT1M1Z4C10N M4T3M4T1C4 PDF
0PT1M1Z4C10N M4T3M4T1C4 PDF
ISBN: 978–84–9948–544–7
e-book v.1.0
Reservados todos los derechos. Ni la totalidad ni parte de este libro puede reproducirse o
transmitirse por ningún procedimiento electrónico o mecánico, incluyendo fotocopia, grabación
magnética o cualquier almacenamiento de información o siste ma de reproducción, sin permiso
previo y por escrito de los titulares del Copyright.
Índice general
Introducción 7
1. Preliminares 15
1.1. Topología de Rq . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2. Algunos preliminares de análisis matemático . . . . . . . . . . . . 19
1.3. Preliminares de álgebra lineal . . . . . . . . . . . . . . . . . . . . 21
1.4. Preliminares de análisis convexo . . . . . . . . . . . . . . . . . . 23
3
4 Optimización matemática aplicada
Bibliografía 295
1
MATLAB es marca registrada de The MathWorks, Inc.
(véase www.mathworks.com/trademarks)
7
8 Optimización matemática aplicada
cho problema específico, fueron demostradas por Farkas en 18982 . Véase Prékopa
[22] para mayor detalle sobre los comienzos de la teoría de la optimización tal y
como la conocemos hoy en día.
El tratamiento sistemático de problemas de PNL con restricciones de de-
sigualdad fue iniciado por Karush en 1939, y Kuhn y Tucker en 1951. Estos
autores obtuvieron de forma independiente las condiciones necesarias de op-
timalidad (local), referidas en párrafos anteriores como condiciones de KKT.
Desde la publicación de Kuhn y Tucker [15], diferentes autores han dedicado
un notable esfuerzo a la obtención de las condiciones de KKT bajo diferentes
hipótesis de cualificación de restricciones. Un excelente trabajo de recopilación
de casi una veintena de estas cualificaciones de restricciones y las relaciones
existentes entre ellas lo encontramos en Peterson [20]. Citaremos, por ejemplo,
las hipótesis de cualificación de restricciones de Slater, Mangasarian, Cottle,
Mangasarian-Fromovitz, Kuhn-Tucker, Arrow-Hurwicz-Uzawa, Abadie y Guig-
nard.
incorporando, cada vez más, a las titulaciones tanto de naturaleza teórica, como
los grados en matemáticas, como las de corte más aplicado.
El manuscrito surge con una doble finalidad. Por un lado, pretende servir
de bibliografía básica en asignaturas de optimización aplicada, impartidas en
diferentes ingenierías, en grados y postgrados de economía, estadística, medicina,
etc. Por otro, se trata de un libro de problemas de PNL y de consulta sobre
diferentes aplicaciones de la PL y la PNL en grados y postgrados relacionados
con la optimización teórica y aplicada (por ejemplo, en carreras de matemáticas).
Al mismo tiempo, los contenidos del manuscrito pretenden ser objeto de consulta
de profesionales de diferentes campos relacionados con la logística y la toma de
decisiones.
Como se ha comentado anteriormente, hasta donde los autores han podi-
do comprobar, no existe en la literatura otro libro de características similares.
Se enuncian con todo rigor los conceptos y resultados teóricos esenciales de
PNL, se muestran a nivel instrumental las herramientas computaciones que
ofrece el MATLAB para la resolución de problemas de PL y PNL, y se apli-
can estos conocimientos al desarrollo teórico y la resolución, con alto grado de
generalidad, de una selección de aplicaciones (en ocasiones empleando grandes
bases de datos y programas específicos elaborados por los autores en el lenguaje
del MATLAB). Con todo, la referencia más cercana a la temática del presente
libro es Venkataraman [27].
Pueden encontrarse en la literatura excelentes monografías donde se exponen
la teoría y los métodos de la PNL con todo rigor, incluyendo las demostraciones
de las condiciones de optimalidad y las pruebas relacionadas con la convergencia
de algoritmos de PNL. Dentro de este grupo de publicaciones citaremos Bazaraa
et ál. [4], Bertsekas [5], Fletcher [9] y Luenberger [16].
También encontramos textos de teoría y/o ejercicios dedicados al estudio de
las condiciones de optimalidad y que se caracterizan por su precisión y rigor
matemático, como son Barbolla et ál. [2] y [3], Díaz et ál. [7] y Novo [17].
Por otro lado, existen textos de carácter general sobre los modelos y métodos
de la Investigación Operativa, que dedican alguno de sus temas a dar una breve
introducción a la PNL, de entre los que podemos citar Hillier y Lieberman [13],
Prawda [21], Taha [26] y Winston [28].
12 Optimización matemática aplicada
Preliminares
1.1. Topología de Rq
(q)
z }| {
En lo que sigue Rq representa al producto cartesiano R× · · · × R> siendo
R = ]4> +4[ el conjunto de los números de reales. Las diferentes coordenadas
de { 5 Rq > cuando sea q A 1> se distinguirán mediante subíndices; así escribire-
mos { = ({l )l=1>===>q = En general, los superíndices se emplearán para distinguir
¡ ¢
diferentes elementos de Rq > así, por ejemplo, {1 = {1l l=1>===>q = Por defecto en-
tenderemos que cualquier vector { 5 Rq está expresado como vector columna y
{0 representará su traspuesto; esto es, {0 = ({1 > {2 > ===> {q ). No obstante, cuando
{ = ({1 > ===> {q )0 5 Rq figure como argumento de una función i : Rq $ R> por
¡ ¢
simplicidad, escribiremos i ({1 > ===> {q ) para denotar a i ({) = i ({1 > ===> {q )0 =
Es bien sabido que Rq es un espacio vectorial con las operaciones suma y
producto por escalar dadas por
15
16 Optimización matemática aplicada
Observación 1.1 Cualquier norma en Rq , k·k > permite definir una distancia
dada por
g ({> |) = k{ |k =
Ejemplo 1.2 (Normas k·k1 y k·k" ) Otras normas de interés en casos prác-
ticos son las definidas de la siguiente forma
k{k1 := |{1 | + |{2 | + === + |{q | y k{k" := max {|{l | : l = 1> 2> ===> q} > { 5 Rq >
Definición 1.3 (Bolas) Dada una norma k·k : Rq $ [0> +4[, y dados { 5 Rq
y A 0> la bola abierta centrada en { y de radio (asociada a la norma k·k)
es el subconjunto de Rq dado por
E ({> ) = {| 5 Rq | g ({> |) = k{ |k ? } =
La bola unidad abierta E (0q > 1) asociada a una norma genérica k·k se re-
presentará simplemente por E= La bola unidad abierta asociada la norma k·k1
(respectivamente> k·k2 y k·k" ) se representa por E1 (respectivamente E2 y E" );
véase una ilustración en la figura 1.1.
B
xn
B
Bf
Figura 1.1: Bolas asociadas a las normas k·k1 > k·k2 y k·k" .
Definición 1.4 (Entornos y abiertos) Dada una norma k·k y dado { 5 Rq >
llamamos entorno de { a un subconjunto X Rq tal que
Teorema 1.1 Todas las normas de Rq definen la misma topología (la misma
familia de abiertos).
[ E (0q > P ) =
Se dice que:
(i) P (o t) es definida positiva si t ({) = {0 P { A 0> para todo { 5 Rq \{0q };
(ii) P (o t) es semidefinida positiva si t ({) = {0 P { 0> para todo { 5 Rq >
existiendo algún | 6= 0q tal que t (|) = 0;
(iii) P (o t) es definida negativa si t ({) = {0 P { ? 0> para todo { 5
Rq \{0q };
(iv) P (o t) es semidefinida negativa si t ({) = {0 P { 0> para todo { 5 Rq >
existiendo algún | 6= 0q tal que t (|) = 0;
(v) P (o t) es indefinida si existen {> | 6= 0q tales que t ({) A 0 y t (|) ? 0=
22 Optimización matemática aplicada
Observación 1.2 Nótese que los casos (iii) y (iv) no son excluyentes en el sen-
tido de que la matriz nula (con todos sus coeficientes cero) es tanto semidefinida
positiva como semidefinida negativa.
Proposición 1.3 (Criterio de los valores propios) Sea P una matriz simé-
trica de orden q con coeficientes reales y sean 1 > 2 > ===> q 5 R sus valores
propios. Se tiene:
(i) P es definida positiva si, y solo si, 1 > 2 > ===> q A 0;
(ii) P es semidefinida positiva si, y solo si, 1 > 2 > ===> q 0> y existe algún
l = 0;
(iii) P es definida negativa si, y solo si, 1 > 2 > ===> q ? 0;
(iv) P es semidefinida negativa si, y solo si, 1 > 2 > ===> q 0> y existe algún
l = 0;
(v) P es indefinida si existen l A 0 y m ? 0=
Observación 1.3 Nótese que el criterio de los signos de los menores princi-
pales permite caracterizar los casos de matrices definidas positivas y definidas
negativas, sin embargo, en el caso de semidefinida positiva solo se tiene una
condición suficiente. Por otra parte, destacamos las condiciones (iv) y (v) que
proporcionan condiciones necesarias (que no son suficientes) operativas desde el
punto de vista práctico.
{ + (1 ) | 5 [=
x y x
DxD\
&RQYH[R 1RFRQYH[R
es convexo.
(ii) (Semiespacios abiertos y cerrados) Sea 0q 6= d 5 Rq y e 5 R= Los
semiespacios abierto y cerrado asociados,
© ª
Vd = { 5 Rq | d0 { = d1 {1 + d2 {2 + === + dq {q ? e >
© ª
Vf = { 5 Rq | d0 { = d1 {1 + d2 {2 + === + dq {q e >
es un conjunto convexo.
En efecto,
({1 + (1 ) |1 )2 + ({2 + (1 ) |2 )2
¡ ¢ ¡ ¢
= 2 {21 + {22 + (1 )2 |12 + |22 + 2 (1 ) ({1 |1 + {2 |2 )
2 + (1 )2 + 2 (1 ) ({1 |1 + {2 |2 )
2 + (1 )2 + 2 (1 ) k{k2 k|k2
q q
= 2 + (1 )2 + 2 (1 ) {21 + {22 |12 + |22
D fxDfy
fDxDy
x DxDy y
y f x f x
x x
x x
véase la figura 1.4 donde se muestra que, para una función convexa, la aproxi-
mación de Taylor de primer orden (plano tangente) siempre queda por debajo
de la gráfica de la función.
Nótese que, en este ejemplo, Ki ({) es constante con respecto a {> siendo definida
positiva.
Capítulo 1. Preliminares 29
μ ¶ Ã !
sen {1 cos {2 cos {1 cos {2 sen {1 sen {2
ui ({) = > y Ki ({) = =
cos {1 sen {2 sen {1 sen {2 cos {1 cos {2
¡0¢
Si evaluamos la matriz hessiana en { = 0 > obtenemos
à !
1 0
Ki ({) = >
0 1
En situaciones como ésta, las condiciones (iv) y (v) de la proposición 1.4 pueden
proporcionar una forma rápida de comprobar que i no es convexa: se trata de
encontrar un punto fijo en el que algún elemento diagonal sea negativo; en este
caso, no es necesario evaluar el resto de la matriz. Por ejemplo, si consideramos
¡¢
{ = 20 > el elemento d11 de Ki ({) toma el valor
2 4 6
d11 = 4 2 = ? 0>
4+1 (4 + 1) 25
que es definida o semidefinida positiva para todo { (nótese que al ser diagonal,
los elementos diagonales son los valores propios; véase la proposición 1.3).
Por otro lado, ! es creciente y convexa en R> pues
p
(iii) Consideremos i : R3 $ R> con i ({) ={21 + {22 + {23 = Nótese que si ex-
s
presamos i como composición i = !j donde j ({) := {21 +{22 +{23 y ! (w) := w>
no se verifican las hipótesis de la proposición 1.9 (iii) (! 5 F 2 (]0> +4[) > con
1
!00 (w) = I ? 0), luego, en principio, no podemos concluir que i es convexa.
4 w3
Buscaremos otro argumento: podemos observar que i ({) = k{k2 = Veamos di-
rectamente aplicando la definición que i es convexa. Dados {> | 5 R3 y dado
5 [0> 1] se tiene:
donde se han aplicado las propiedades que definen una norma y el hecho de que
y 1 son no negativos; por lo tanto i es convexa.
(iv) Consideremos i ({) = |{1 {2 + 4{3 | y expresemos i = ! j con
j ({) := {1 {2 + 4{3 y ! (w) = |w| = La convexidad de i se deriva entonces
de la proposición 1.9 (iv). Basta comprobar que ! es convexa, lo cual se obtiene
por un razonamiento análogo al del apartado anterior: si w> v 5 R> 5 [0> 1] >
Q = {{ 5 F : i ({) } >
es convexo.
lo que prueba { + (1 ) | 5 Q =
32 Optimización matemática aplicada
Ejercicio 1.7 Encontrar un ejemplo que muestre que Q puede ser convexo,
aunque i no sea convexa.
Solución. Considérese la función i : ]0> +4[ $ R> i (w) = log (w) = Se tiene
que
V := {{ 5 F : i ({) }
(S ) P lq i ({) =
(S ) P lq i ({)> (2.1)
35
36 Optimización matemática aplicada
Definición 2.1 Dado el problema (2.1) de PNL sin restricciones, se definen los
siguientes elementos:
(i) El valor óptimo de (S ) > denotado por y> está dado por:
y := inf {i ({) : { 5 Rq } ;
³ ´
(i) { 5 Rq es óptimo local de (S ) si, y solo si, { es óptimo local de Se ;
q
³ ´(ii) { 5 R es óptimo global de (S ) si, y solo si, { es óptimo global de
Se =
En lo que sigue diremos que dos problemas de PNL sin restricciones son
equivalentes si, como en el caso de la proposición anterior, ambos problemas
tienen los mismos conjuntos de óptimos locales y óptimos globales (aunque no
el mismo valor óptimo)1 . Veamos algunos ejemplos de problemas equivalentes:
Im i2 = [1> +4[ =
Veamos que las funciones objetivo del resto de problemas resultan de componer
i2 con alguna función estrictamente creciente. En efecto,
s
i1 = !1 i2 > con !1 : R+ $ R dada por !1 (w) = w=
i3 = !3 i2 >
(S ) P lq {3 >
y = inf {h{ : { 5 R} = 0=
© 2 ª
El conjunto de imágenes {i ({) : { 5 R} = { : { 5 R es acotado inferior-
mente por 0> y además, i (0) = 0> luego y = 0 y { = 0 es un óptimo global de
(S ) = La unicidad es inmediata, pues {2 = 0 si, y solo si, { = 0=
Ejemplo 2.6 (Dos problemas con óptimos locales que no son globales)
Consideremos los problemas, en R>
{
(S1 ) P lq { vhq {; (S2 ) P lq {2 +1 vhq {=
Volveremos sobre estos problemas más adelante, cuando hayamos introducido las
condiciones de optimalidad; en este momento, observemos que el valor óptimo
de (S1 ) > denotado por y1 > es 4> dado que si consideramos, por ejemplo, la
© ª
sucesión 3 2 + 2u uMN > se tiene que
¡ 3 ¢ ¡ ¢ ¡ 33 ¢
lı́m 2 + 2u vhq 3
2 + 2u = lı́m 2 2u = 4=
u<" u<"
Luego (S1 ) es no acotado. Por su parte, (S2 ) es resoluble, lo que puede intuirse
en la figura 2.1. Más adelante veremos que (S1 ) y (S2 ) tienen infinitos óptimos
locales.
(S ) P lq i ({)>
)XQFLyQREMHWLYRGH3
)XQFLyQREMHWLYRGH3
G L>
L C=
1 sen {1 sen {2 1=
44 Optimización matemática aplicada
En consecuencia
(S ) P lq {1 cos {2 =
En otras palabras:
L = G = B y y = 4=
Capítulo 2. Optimización sin restricciones 45
(S ) P lq {21 cos {2 =
à !
2 cos {2 0
Ki ({) = =
0 0
A partir de la condición necesaria de segundo podemos asegurar que el conjunto:
n¡ ¢ o
0
{2 : cos {2 ? 0
no contiene ningún óptimo local. Por otra parte, todos los puntos del conjunto
n¡ ¢ o
0
{2 : cos {2 0
¡0¢
Caso 1: { = {2 con cos {2 A 0= Nótese que de la continuidad de la fun-
ción coseno, sabemos que cos {2 A 0 para {2 suficientemente próximo a {2 (se
conserva el signo en un entorno de {2 )> pongamos que
Entonces
i ({) = {21 cos {2 0> si |{2 {2 | ? %=
Puesto que
i ({) = 0 cos {2 = 0>
se tiene:
μ ¶2 μ ¶
q q 1 1
lı́m { = { y i ({ ) = cos + n + ? 0 = i ({) > q 5 N=
q<" q 2 q
se tiene:
lı́m {q = { y i ({q ) ? 0 = i ({) > q 5 N=
q<"
se tiene:
¡ ¢
lı́m i ({q ) = lı́m q2 cos = lı́m q2 = 4=
q<" q<" q<"
Así,
y = 4 y G = B=
En caso de que { no sea óptimo local, para demostrarlo, esto es, para probar que
no existe ningún entorno en las condiciones anteriores, una posible estrategia
(conveniente en la práctica) consiste en encontrar una sucesión {{q }qMN R2
tal que
lı́m {q = { y i ({q ) ? i ({) > para todo q=
q<"
i ({) = ({1 + {2 ) h{1 +{2 = ({1 + {2 + ) h{1 +{2 + = (1 + ) h31+ = (2.2)
Veamos que
(1 + ) h31+ A i ({) = h31 =
luego
³ ´ ³ ´2
i 00 {n = 2 cos {n {n sen {n = 2 cos {n + {n cos {n >
Capítulo 2. Optimización sin restricciones 51
¡ ¢
donde se ha aplicado el hecho de que i 0 {n = sen {n + {n cos {n = 0= Así pues,
³ ´ μ ³ ´2 ¶
i { = cos { 2 + {n
00 n n
A0
Luego existen infinitos óptimo locales, aunque ninguno es global, como se probó
en el ejemplo 2.6.
Ejercicio 2.7 Demostrar que el siguiente problema tiene infinitos óptimos lo-
cales:
{
(S ) P lq sen {=
{2 +1
Solución. Se tiene:
μ ¶
0 {2 + 1 2{2 { 1 1 {2
i ({) = 2 sen { + 2 cos { = 2 sen { + { cos { =
({2 + 1) { +1 { +1 {2 + 1
(S ) P lq i ({)
Solución. se tiene:
μ ¶ μ ¶
({1 31)2 +({2 33)2 2 ({1 1) 0
ui ({) = h = / {1 = 1> {2 = 3=
2 ({2 3) 0
¡1¢
Así, { = 3 es el único punto crítico de (S ) = Puede comprobarse fácilmente
que i es convexa a partir de la proposición 1.9(iii). Para ello, basta expresar
i = !j con ! (w) = hw que es convexa y creciente y j ({) = ({1 1)2 +({2 3)2
que es convexa.
Finalmente, como aplicación del apartado (ii) del teorema anterior se deduce
¡¢
que { = 13 es el único óptimo local, siendo de hecho óptimo global.
Ejercicio 2.9 Demostrar que el problema (S ) P lq {21 +{22 +h{1 +{2 es resoluble
(existe algún óptimo global).
Entonces μ ¶
{1
ui ({) = 0> siendo { = 5 ]1> 0[ × ]1> 0[ .
{1
Además, { es el único punto crítico, pues {1 es la única raíz de la ecuación
‘k ({1 ) = 0’. En efecto, k0 ({1 ) = 2 + 2h2{1 A 0 para todo {1 5 R> y por tanto
k es estrictamente creciente en R> por lo que no puede anularse en más de un
punto. Por otro lado, se comprueba fácilmente que i es convexa pues es suma de
convexas (i = j + k con j ({) = {21 + {22 y k ({) = h{1 +{2 )> véase la proposición
1.9. Así pues, { es el único óptimo global de (S ).
(S ) P lq i ({)
Solución. (i) Adaptemos la función objetivo i ({) = {21 +2{1 {2 +4{22 +{1 +{2
al formato
1
i ({) := {0 T{ + f0 { + e>
2
tomando
à ! μ ¶
2 2 1
T= > f= > e = 0=
2 8 1
μ 1¶
2
El sistema tiene solución única { = = Por tanto, aplicando el apartado (i)
0
del teorema anterior tenemos
½μ 1 ¶¾
2
C=L=G= =
0
El valor óptimo es
1
y = i ({) = {0 T{ + f0 { + e = 0.25=
2
(ii) Para i ({) = {21 + 2{1 {2 + {22 + {1 + {2 + 4> se tiene:
à ! μ ¶
2 2 1
T= > f= > e = 4=
2 2 1
Ahora T es semidefinida positiva. Los puntos críticos son las soluciones del
sistema T{ + f = 0> esto es,
à !μ ¶ μ ¶ μ ¶
2 2 {1 1 0
+ = =
2 2 {2 1 0
El valor óptimo
y = i ({) = 3.75>
μ ¶
1@2
siendo { cualquier óptimo global (por ejemplo, puede tomarse { =
0
para calcular y).
(iii) Para i ({) = {21 + 2{1 {2 + {22 + {1 {2 + 4> se tiene:
à ! μ ¶
2 2 1
T= > f= > e = 4=
2 2 1
y = 4=
(En este caso existirían puntos críticos, pero ninguno es óptimo local, y por
supuesto, ninguno global).
(v) Para i ({) = {21 + 2{1 {2 4{22 + {1 + {2 + 4 se tiene:
à ! μ ¶
2 2 1
T= > f= > e = 4=
2 8 1
y = 4=
(En este caso existirá un único punto crítico que será un máximo global).
(vi) Sea i ({) = {21 + 2{1 {2 {22 + {1 {2 + 4= Se tiene:
à ! μ¶
2 2 1
T= > f= > e = 4=
2 2 1
y = 4=
(Puede comprobarse que existen infinitos puntos críticos, y en este caso, todos
serían máximos globales).
Capítulo 3
(S ) P lq i ({)
(3.1)
v=d jl ({) 0> l = 1> 2> ===> p>
donde { 5 Rq representa a la variable de decisión, i : Rq $ R es la función obje-
tivo de (S ), y jl : Rq $ R, con l = 1> 2> ===> p> son las funciones que determinan
las restricciones de (S ) = A medida que se vayan requiriendo, iremos incorpo-
rando ciertas hipótesis de continuidad y diferenciabilidad a estas funciones= Por
simplicidad, los enunciados de los diferentes resultados teóricos se darán para el
problema (3.1) cuyo sistema de restricciones contiene únicamente desigualdades.
Este tratamiento no supone pérdida de generalidad, pues cualquier igualdad del
tipo ‘k ({) = 0’> con k : Rq $ R> se puede desdoblar en las desigualdades
‘k ({) 0> k ({) 0’.
Como antecedente de la teoría desarrollada en este capítulo, a continuación
recordamos las condiciones de Lagrange, que habitualmente se incluyen en la
materia de cálculo en varias variables. Cuando se considera el problema de PNL
con restricciones de igualdad:
(S0 ) P lq i ({)
(3.2)
v=d jl ({) = 0> l = 1> 2> ===> p>
si { es un óptimo local de (S0 ) > siendo i diferenciable en {> jl de clase F 1 en un
57
58 Optimización matemática aplicada
entorno de {> para todo l = 1> 2> ===> p> y suponiendo que {ujl ({) : l = 1> 2> ===> p}
forma un sistema linealmente independiente> se tiene que
p
X
ui ({) + l ujl ({) = 0q > (3.3)
l=1
para ciertos escalares 1 > 2 > ===> p 5 R= Los escalares 1 > 2 > ===> p se denominan
multiplicadores de Lagrange y, de hecho, el sistema de ecuaciones (3.3) determina
el así llamado método de los multiplicadores de Lagrange, presentado en su día
como una herramienta clave para encontrar el estado de equilibrio estable de
un sistema mecánico. Como se comenta en la introducción, este resultado fue
publicado por Lagrange en 1788, en su libro Mécanique Analytique.
(ii) El valor óptimo de (S ) > denotado por y> está dado por
y := inf {i ({) : { 5 I } ;
G L I=
(Se) P lq ! (i({))
v=d !l (jl ({)) !l (0) > l = 1> 2> ===> p>
³ ´
(i) { 5 Rq es punto factible de (S ) si, y solo si, { es punto factible de Se ;
³ ´
(ii) { 5 Rq es óptimo local de (S ) si, y solo si, { es óptimo local de Se ;
³ ´
(iii) { 5 Rq es óptimo global de (S ) si, y solo si, { es óptimo global de Se =
En lo que sigue cuando dos problemas tengan los mismos conjuntos factibles,
³ ´
los mismos óptimos locales y óptimos globales (como es el caso de (S ) y Se
en la proposición anterior), diremos que son problemas equivalentes.
(S ) P lq ({1 1) ({2 1)
v=d {1 + {2 1>
{1 > {2 0=
A
A {1 = 0 (pues L ({) = {2})>
A
=
2 0> { 5 I=
μ ¶
1
En este caso se deduce { = = Como antes, sustituyendo en el primer
0
bloque, se tiene 1 = 1 y 0 = 1 3 = Así pues, 3 = 1= De nuevo, puesto que
{ 5 I> se trata de un punto de KKT.
Caso VII: L ({) = {2> 3} = Buscamos soluciones del sistema:
; μ ¶ μ ¶ μ ¶
A
A {2 1 1 0
A
A ui ({) = = 2 + 3 >
A
A {1 1 0 1
?
{1 = 0>
A
A
A
A {2 = 0>
A
A
= 0> 0> { 5 I=
2 3
μ ¶
0
Inmediatamente se deduce { = y sustituyendo en el primer bloque, se
0
tiene 1 = 2 y 1 = 3 > lo que contradice la no negatividad de los multipli-
cadores.
Caso VIII: L ({) = {1> 2> 3} = Este caso no proporciona ninguna solución, pues
entre sus ecuaciones encontramos {1 + {2 = 1> junto con {1 = 0 y {2 = 0> lo
que obviamente constituye una contradicción.
En resumen, tenemos los siguientes puntos de KKT:
μ ¶
1@2 1
{= > con 1 = >
1@2 2
μ ¶
0
{= > con 1 = 1 y 2 = 1> y
1
μ ¶
1
{= > con 1 = 1 y 3 = 1=
0
Por otro lado, L ({) = {1> 2}= Obviamente no se cumple LCQ (la primera restric-
ción es no lineal). Tampoco se cumple LICQ pues
μ ¶ μ ¶
0 0
uj1 ({) = y uj2 ({) = >
1 1
(S ) P lq {2
v=d {21 + {22 1>
({1 2)2 + {22 1=
g
x
f
x F
x
g
x
g
x x F ^`
x g
x
f
x
b 5 Rq tal que jl (b
ningún { {) ? 0> l = 1> 2= Por tanto, no se verifica SCQ. Por
¡1¢
ser { = 0 el único punto factible, trivialmente es un óptimo global de (S ) >
y por tanto óptimo local. Sin embargo, no es un punto de KKT de (S ) > pues
¡0¢ ¡¢ ¡ ¢
ui ({) = 31 no es una combinación lineal de uj1 ({) = 20 y uj2 ({) = 32
0 .
Nótese que
1
{{q } I y i ({q ) = ? 0 = i ({) =
q2
A partir de la observación 3.1, concluimos que { no es óptimo local.
Con el fin de profundizar un poco más en el análisis de la optimalidad,
enunciamos dos nuevos resultados que involucran derivadas parciales de segundo
orden. Consideremos la función de Lagrange, O : Rq × Rp
+ $ R> asociada al
problema (S ) introducido en (3.1):
(S ) P lq i ({)
v=d jl ({) 0> l = 1> 2> ===> p>
donde j representa a la función vectorial que tiene a las jl como sus funciones
coordenadas. Asimismo denotaremos por u{ O ({> ) al gradiente, respecto de {>
de O; esto es,
p
X
u{ O ({> ) := ui ({) + l ujl ({) =
l=1
Capítulo 3. Optimización con restricciones 69
Así pues, las condiciones de KKT para el problema (3.1) pueden alternativa-
mente expresarse como1
;
A
A u{ O ({> ) = 0q >
?
l jl ({) = 0> l = 1> 2> ===> p> (Condiciones de KKT)
A
A
= 0> j ({) 0 =
l l p
donde Ki ({) > Kjl ({) > l = 1> ===> p> denotan a las matrices hessianas de las
correspondientes funciones. En los siguientes enunciados, dado un subconjunto
D Rq > Dz representa al subespacio vectorial ortogonal a D; esto es:
© ª
Dz = y 5 Rq : y 0 d = 0> para todo d 5 D =
es definida o semidefinida positiva; esto es, para todo g 5 P ({) > se tiene que
¡ ¢
g0 K{ O {> g 0=
es verdadera (un ejemplo de esta situación aparece en el caso II del ejemplo 3.9).
Así pues, {(1> 0> 0)0 } es una base de P ({) y la matriz asociada a la restricción
¡ ¢
de K{ O {> a P ({) > expresada en dicha base, quedaría:
3 43 4
³ ´E2 0 0 1
FE F
1 0 0 E FE F
C0 2 0D C0D = (2) >
0 0 0 0
con 1 = 1=
b) Veamos que no se cumple la condición suficiente de segundo orden:
à !
¡ ¢ 2 2
K{ O {> = >
2 2
(S ) P lq ({1 1) ({2 1)
v=d {1 + {2 1>
{1 > {2 0=
Solución. Dado que todas las restricciones son lineales, se cumple LCQ en
todos los puntos de I= En este caso, todo óptimo local de (S ) es un punto de
KKT. Así pues, las condiciones de KKT proporcionan todos los “candidatos”
a óptimos locales (“candidatos” en el sentido de puntos no descartables por el
momento). Los puntos de KKT son (véase el ejemplo 3.2):
μ ¶
1@2 1
{= > con 1 = y consideramos 2 = 3 = 0>
1@2 2
μ ¶
0
{= > con 1 = 1> 2 = 1 y consideramos 3 = 0>
1
μ ¶
1
{= > con 1 = 1> 3 = 1 y consideramos 2 = 0=
0
Nótese que, con el fin de definir el vector completo de multiplicadores de KKT,
basta considerar l = 0 si l 5
@ L ({) =
Analicemos ahora las condiciones de segundo orden en cada uno de los puntos
de KKT.
Capítulo 3. Optimización con restricciones 75
¡1 ¢
1 0
¡ ¢0
Caso I: L ({) = {1}> { = con = 12 > 0> 0 = Se tiene que
2> 2 >
à !
¡ ¢ 0 1
K{ O {> = >
1 0
¡ ¢ ¡ ¢
y los subespacios P ({) y P + {> coinciden, pues L + {> = {1} = L ({) =
¡ ¢ © ªz
P ({) = P + {> = (1> 1)0
© ª
= y 5 R2 | (y1 > y2 ) (1> 1)0 = 0
© ª
= y 5 R2 | y1 + y2 = 0 =
¡ ¢
Consideremos {(1> 1)0 } como base de P ({) (= P + {> )= La matriz asociada
¡ ¢
a la restricción de K{ O {> al subespacio P ({) > en dicha base, es
à !à ! à !
³ ´ 0 1 1 ³ ´ 1
1 1 = 1 1 = (2) >
1 0 1 1
¡ ¢
y, como antes, los subespacios P ({) y P + {> se reducen al origen. Así
pues, se cumple trivialmente la condición suficiente de optimalidad, y por tanto
{ = (1> 0)0 es un óptimo local.
En resumen, el conjunto de óptimos locales está dado por
x
VRODSD
x3
x
x x
(k1) {ujl ({) > l 5 L ({)} forma un sistema linealmente independiente (LICQ);
¡ ¢ ¡ ¢
(k2) L ({) = L + {> (lo que implica que P ({) = P + {> );
¡ ¢ ¡ ¢
(k3) K{ O {> es definida positiva sobre el subespacio P + {> (condición
suficiente de segundo orden).
Entonces existe un entorno Y Rq de {> y un entorno Z Rp de 0p >
tales que para todo 5 Z el problema parametrizado
(S ()) P lq i ({)
v=d j({) >
u i ({ ())|=0p = =
En este caso ½μ ¶0 ¾
1 1 0 0
PNNW = > > (1> 0) > (0> 1) =
2 2
¡1 1
¢ 1
Puesto que i 2> 2 = 4 y i (1> 0) = i (0> 1) = 0> se tiene que el conjunto de
óptimos globales es
© ª
G = (1> 0)0 > (0> 1)0 =
(S ) P lq i ({)
v=d jl ({) 0> l = 1> 2> ===> p>
y supongamos que todas las funciones del modelo, i y jl > l = 1> 2> ===> p> son
convexas en Rq = En este caso estamos ante un problema de programación con-
vexa. Nótese que en este caso I> supuesto no vacío, es un conjunto convexo, pues
puede escribirse con intersección de convexos. En efecto,
Tp
I = l=1 {{ 5 Rq | jl ({) 0} >
(ii) Si asumimos que i y las jl > con l 5 L ({) > son diferenciables en { y { es
punto de KKT de (S ) > entonces { es óptimo global de (S ) =
Observación 3.7 Nótese que, bajo la diferenciabilidad de i y las jl > l = 1> ==> p
en todos los puntos factibles, del apartado (ii) del teorema anterior se deduce
que
PNNW G=
Capítulo 3. Optimización con restricciones 81
Por otro lado, como sabemos, para garantizar el otro contenido (y por tanto
la igualdad entre PNNW y G) necesitamos alguna cualificación de restricciones,
como es el caso del siguiente ejemplo.
(S ) P lq {22 {1
v=d {21 + {22 1>
{21 + 4{22 1=
En primer lugar, obsérvese que se cumple SCQ en todos los puntos factibles,
pues j1 ({) = {21 + {22 1 y j2 ({) = {21 + 4{22 1 son convexas y, por ejemplo,
¡ 1 1 ¢0
4> 4 es un punto de Slater (solución estricta) del sistema {j1 ({) 0> j2 ({)
0}=
Puesto que la función objetivo i ({) = {22 {1 es también convexa, estamos
ante un problema de programación convexa en el que se verifica alguna CQ en
todo punto factible. En este caso
PNNW = L = G>
A
A {21 + 4{22 = 1>
A
=
2 0> { 5 I=
De primer bloque de igualdades tenemos 1 = 22 {1 y 2{2 = 82 {2 = De aquí,
se deduce que 2 = 14 si {2 6= 0> lo que contradice la no negatividad de 2 = Por
otro lado, si {2 = 0> entonces de la igualdad {21 + 4{22 = 1 concluimos que {1 = 1
(la otra posibilidad {1 = 1> conduce a 2 = 12 > por lo que no es solución de
nuestro sistema). Como en el caso anterior, el punto { = (1> 0)0 no pertenece al
caso actual, se analizará a continuación.
Caso IV : L ({) = {1> 2}; esto es {21 + {22 = 1> {21 + 4{22 = 1= Buscamos
soluciones del sistema
; μ ¶ μ ¶ μ ¶
A 1 2{1 2{1
A
? 2{2 = 1 2{2 + 2 8{2 >
A
A
A {21 + {22 = 1> {21 + 4{22 = 1>
A
=
1 > 2 0=
Las únicas soluciones del sistema {{21 + {22 = 1> {21 + 4{22 = 1} son (1> 0)0 y
(1> 0)0 = En el primer caso, tendremos
μ ¶ μ ¶ μ ¶
1 2 2
= 1 + 2 >
0 0 0
esto es, 21 + 22 = 1= Así pues { = (1> 0)0 es un punto de KKT asociado a
cualquier vector de multiplicadores tal que
© ª
5 5 R2 | 21 + 22 = 1> 1 > 2 0 ( 6= >)=
Capítulo 3. Optimización con restricciones 83
L P NNW >
por tener las restricciones lineales (se cumple LCQ). Además, la determinación
del conjunto de puntos de KKT se reduce a la resolución de diferentes sistemas de
ecuaciones lineales. Por ejemplo, para el subconjunto de índices activos L ({) =
{l1 > ==> ls } {1> ===> p} las condiciones de KKT conducen al sistema:
; Xs
? (T{ + f) = l dl >
³ ´ m=1 m m
= d0 { El = 0> m = 1> ===> s>
lm m
PNNW L>
G = L = PNNW =
(Además, G 6= > si, y solo si, el valor óptimo de (S F) es finito, en virtud del
teorema 3.7).
Capítulo 3. Optimización con restricciones 85
© ª
cuyo conjunto de soluciones es V := { 5 R3 | 2{1 + 2{2 = 1> {3 = 0 = Veamos
cuáles de estos puntos son factibles. Si 2{1 + 2{2 = 1 y {3 = 0> entonces
{1 + {2 + {3 = 12 1> luego la primera restricción se satisface en todos los
puntos de V= Respecto de la segunda, si { 5 V> se tiene:
μ ¶
1 2{1 1 1
{1 {2 {3 = {1 = 2{1 + 1 / {1 =
2 2 4
(S ) P lq {2
v=d {21 {22 + 1 0>
({1 1)2 + {22 1 0>
¡ ¢3
2 {1 12 + {22 34 0=
n¡ o
32{1 ¢
32{2 es linealmente independiente si { 6= 02 = Así pues, planteamos el sistema
¡0¢ ¡ 1¢ ¡ ¢
1 0
31 = 1 32{ 0
32{2 = La única solución con 1 0 es ({1 > {2 > 1 ) = 0> 1> 2 > que
proporciona un punto no factible. Así pues, no tenemos ningún candidato.
Caso III : L ({) = {2} = En este caso se verifica la cualificación de restricciones
de Slater (j2 es convexa, y por ejemplo j2 (1> 0) = 1 ? 0)= Planteando las
¡ ¢0
condiciones de KKT, encontramos una solución ({1 > {2 > 2 )0 = 1> 1> 12 > que
no corresponde a este caso puesto que la tercera restricción también es activa=
Caso IV : L ({) = {3} = Se verifica la cualificación de restricciones de inde-
¡ ¢0
pendencia lineal, pues la única solución de uj3 ({) = 02 es { = 12 > 0 > que
³ I ui´({)
no es un punto factible. Del sistema
0
= 3 uj3 ({) > obtenemos
³ I
las´ úni-
0
0 3 0 3 3
cas soluciones ({1 > {2 > 3 ) = 2 > 2 > I3 > y ({1 > {2 > 3 ) = 2 > 2 > I13 ; el
1 1 1
F
³ I ´0
1 3 3
que {1 := 2 > 2 no es óptimo local tomemos, por ejemplo, la sucesión
à r !0
1 1 3 1
{u := + > + > u = 2> 3===>
2 u 4 u3
h
r
P
Por ejemplo, Ã !
10 2
Ki (1> 1) =
2 0
es indefinida, luego i no es convexa (en virtud de la proposición 1.8).
Nótese que el conjunto factible es acotado pues, por ejemplo, de las restric-
ciones 1, 3 y 4 obtenemos:
)
u2 + k 16
, 0 k 16> u2 16> u 0 , 0 k 16> 0 u 4=
u> k 0
Por ser además cerrado, I es compacto. Además, se cumple SCQ en todos los
puntos factibles, pues todas las restricciones son convexas y existe un punto de
Slater para el sistema completo, por ejemplo, (u> k)0 = (1> 1)0 = En estas condi-
ciones podemos asegurar la veracidad de la siguiente cadena de inclusiones
> 6= G L PNNW =
De donde se deduce 2u (2u + k) = 2u2 = Puesto que ha de ser u 6= 0> se tiene
(2u + k) = u luego u + k = 0= Si u 6= 0> entonces k ? 0> lo cual no puede ser.
Caso IV : L ({) = {4}= En este caso hemos de resolver el sistema
μ ¶ μ ¶
4u2 2uk 0
= 4 =
u2 1
Además, han de cumplirse u2 + k 16 y k = 0> lo que conduce a (u> k)0 = (4> 0)0
puesto que ha de ser u 0= Entonces 1 = 8 y 4 = 8 16 ? 0= Luego (4> 0)0
no es punto de KKT.
Caso VII : L ({) = {2> 4}= Obtenemos el sistema
μ ¶ μ ¶ μ ¶
4u2 2uk 2 0
2
= 2 + 4 =
u 1 1
Además, 2u + k 10 = 0 y k = 0> lo que nos lleva a (u> k)0 = (5> 0)0 que no es
factible pues no verifica la primera restricción.
Caso VIII : L ({) = {1> 2> 4}= Este caso no admite ninguna solución pues no
existe ningún punto verificando simultáneamente u2 + k 16 = 0> 2u + k 1 = 0
y k = 0=
En resumen, tenemos como único candidato a óptimo global al punto
³s s ´0
(u> k)0 = 7 + 1> 8 2 7 =
n¡s s ¢0 o
Formalmente G 7 + 1> 8 2 7 = Puesto que ha de ser G 6= > en virtud
del teorema de Weierstrass, finalmente concluimos que
ns s o
G = ( 7 + 1> 8 2 7)0 =
El segundo bloque de ecuaciones (las dos últimas) tiene como única solución con
coordenadas no negativas E = 72 > k = 32 = Calculemos ahora los multiplicadores
de KKT. Sustituyendo E y k en el primer bloque de desigualdades para obtener
valores para 1 y 2 :
)
3
4 = 12 1 + 2 3 27
9
, 1 = > 2 = =
= 31 + 2 7 28
4
(S ) P lq {|}
v=d {| + {} + |} 3>
{> |> } 0=
{ = | = }=
Caso XII: L ({) = {2> 3> 4}= Puede comprobarse fácilmente que { = (0> 0> 0)0
es punto de KKT con 2 = 3 = 4 = 0 (y consideramos también 1 = 0) y que
se verifica LICQ (o LCQ)=
El resto de casos (hasta XVI) dan lugar, inmediatamente, a contradicciones.
Por ejemplo, el caso L ({) = {1> 2> 3} conduce a la contradicción 0 = 3 (pues
{| + {} + |} = 3> { = 0> | = 0)=
En resumen, en todos los puntos de I se cumple alguna cualificación de
restricciones y el conjunto de puntos de KKT es
© ª © ª
PNNW = {(1> 1> 1)0 } ^ (0> 0> })0 | } A 0 ^ (0> |> 0)0 | | A 0
© ª
^ ({> 0> 0)0 | { A 0 ^ {(0> 0> 0)0 }=
Consideramos una base de P ({), por ejemplo {(1> 0> 1)0 > (0> 1> 1)0 }, y ana-
¡ ¢
lizamos la matriz asociada a las restricciones de K{ O {> sobre P ({) :
3 43 4
à ! 0 1 1 1 0 à !
2 2 1
1 0 1 E FE
E 1 0 1 F E 0 1F =
F 1 2
>
0 1 1 C 21 1
2D C D 1
2 1
2 2 0 1 1
que es definida positiva. Por tanto, { = (1> 1> 1)0 es óptimo local de (S ) =
Caso d.2 ) En el caso { = (0> 0> })0 con } A 0> = (0> 0> 0> 0)0 > se tiene
¡ ¢
L ({) = {2> 3}, L + {> = > y, por tanto,
© ªz © ª
P ({) = (1> 0> 0)0 > (0> 1> 0)0 = y 5 R3 | y1 = 0> y2 = 0 =
100 Optimización matemática aplicada
¡ ¢
Por otro lado, en este caso trivial en el que L + {> = > se define
¡ ¢
P + {> = R3 =
Además, se tiene: 3 4
} 0 0
¡ ¢ E F
K{ O {> = E F
C} 0 0D =
0 0 0
Para la comprobación de la condición necesaria de segundo orden, seleccionamos
una base de P ({) > por ejemplo (0> 0> 1)0 , y calculamos
3 43 4
0 } 0 0
E FE F
E
(0> 0> 1) C} 0 0D C0F F E
D = (0) =
0 0 0 1
Esto prueba que { = (0> 0> })0 , con } A 0 no es óptimo local (recuérdese la
observación 3.1).
Los casos d.3 ) y d.4 ) correspondientes a { = (0> |> 0)0 con | A 0 y { =
({> 0> 0)0 > con { A 0> respectivamente, se resuelven con argumentos análogos al
anterior. Ninguno de los casos proporciona un óptimo local.
Capítulo 3. Optimización con restricciones 101
Caso d.5 ) { = (0> 0> 0)0 = Este punto no es óptimo local, como puede com-
probarse a partir de la definición. En efecto,
½μ ¶¾
1 1 1 0
> > I>
q q q qMN
3
pues {| + {} + |} = q2
3> {> |> } 0 y, por otro lado
μ ¶
1 1 1 1
i > > = ? 0 = i (0> 0> 0) =
q q q q3
v=d w + u + v 3>
w> u> v 0=
μ ¶
e
Además Se es equivalente (en el sentido de que tiene los mismos óptimos
locales y globales) al problema
³ ´
Sb P d{ wuv
v=d w + u + v 3>
w> u> v 0=
102 Optimización matemática aplicada
³ ´
El nuevo problema Sb tiene conjunto factible acotado (en particular w> u> v 5
[0> 3])> y fácilmente se comprueba que (w> u> v)0 = (1> 1> 1)0 es un óptimo global
(el único punto de KKT con conjunto de índices activos {1}).
³ ´
Por tanto, (w> u> v)0 = (1> 1> 1)0 es el óptimo global de Se = En particular, el
óptimo global de nuestro problema (S ) ha de verificar
105
106 Optimización matemática aplicada
Observación 4.3 En la figura 4.3 puede apreciarse la diferencia que existe en-
tre escribir o no un punto y coma al final de la sentencia. Concretamente, el
punto y coma hace que no se muestren las salidas correspondientes en patalla,
aunque permanecen guardadas en la memoria del programa.
Observación 4.4 (Cursores) Los cursores del teclado (‘%’ y ‘&’) nos permiten
avanzar o retroceder por las diferentes sentencias introducidas en la ventana de
comandos.
110 Optimización matemática aplicada
Los datos de una matriz se encierran siempre entre corchetes, los elementos
de una misma fila se separan por un espacio en blanco o una coma, y para
pasar de una fila a otra pondremos punto y coma. Los vectores fila o columna
se introducen del mismo modo (pues son casos particulares de matrices). Por
ejemplo, para introducir los datos siguientes:
3 4 3 4
2 1 4 2
E F E F
{ = (1> 2> 5) > | = E 3
C D
F > D = E 1@2 6 7 F >
C D
6 1 0 1
S 31 DS = G>
se pide:
a) Determinar D E y D= E (obsérvese la diferencia entre ellas).
b) Calcular el determinante y matriz inversa de D=
c) Expresar los coeficientes de D31 en formato de fracción y como números
con 12 cifras decimales.
d) Calcular los valores propios de D y clasificar la matriz.
e) Calcular el determinante de E; ¿qué ocurre cuando escribimos inv(E)?
f) Calcular D\E.
g) ¿Qué ocurre cuando escribimos D@E?
Capítulo 4. Prácticas de optimización sin restricciones 113
Solución. a)
3 4 3 4
14 10 2 4 1 4
E F E F
DE =E
C26 20 2 F y D= E = E 2
D C 4 10 F=
D
6 8 14 8 15 0
b) det(D) = 42,
3 4
0.2381 0.0238
0.5952
E F
inv (D) = E
C 0.2381 0.0952 0.1905 F=
D
0.2143 0.2857 0.0714
c) Cambiamos el formato numérico a long y rational y obtenemos
3 4
25@42 5@21 1@42
E F
inv (D) = E 5@21 2@21 4@21 F
C D
3@14 2@7 1@14
3 4
0.59523809523810 0.23809523809524 0.02380952380952
E F
=EC 0.23809523809524 0.09523809523810 0.19047619047619 D =
F
0.21428571428571 0.28571428571429 0.07142857142857
d) Los valores propios de D son 3.7595> 1.9098 y 5.8497> luego D es in-
definida.
e) det(E) = 0> luego E no es inversible. Si escribimos inv(E) obtenemos lo
que se muestra en la figura 4.7. Nótese que aparece un mensaje indicando que
la matriz es singular y los cálculos producen Inf (infinito).
f) El resultado de D\E (recuérdese que significa D31 E) en el formato numéri-
co short es: 3 4
0.0476 1.6667
0.6190
E F
D\E = E F
C 1.0476 0.6190 0.6667D =
0.1429 0.1429 1.0000
g) El resultado de D@E se muestra en la figura 4.8. NaN (del inglés, Not a
Number ) aparece en expresiones cuyo valor es indeterminado (por ejemplo, 00 )=
5
(S ) P lq 5{21 + 2{1 {2 + 10{22 + 3{2 {3 + 10{23 + {1 {4 + 4{2 {4 + 10{24 + 2{3 >
2
AA lookfor quadratic
AA help quadprog
x =
-0.0025
0.0162
118 Optimización matemática aplicada
-0.1024
-0.0029
AA s=quadprog(Q,c,M,N)
AA eig(H)
De este modo obtenemos los valores propios de H> que en nuestro ejemplo
son 1 = 9.2811> 2 = 15.0000> 3 = 20.1898 y 4 = 25.5290= Así pues, H es
definida positiva (véase la proposición 1.3) y en virtud del teorema 2.2, el punto
x es óptimo global de (S ) =
p = max{m 5 N |a + m b}=
AA x=-2:0.01:2;
AA y=x.*sin(pi*x);
AA plot(x,y)
AA linspace(-2,2,200);
(i) En cada coordenada seleccionamos una partición del intervalo [-1,1] em-
pleando un incremento = 0.05 (alternativamente podríamos emplear la función
linspace). Así pues, escribimos:
Capítulo 4. Prácticas de optimización sin restricciones 121
AA x=-1:0.05:1;
AA y=-1:0.05:1;
AA [X,Y]=meshgrid(x,y); (realiza el producto cartesiano de x
por y que define la malla en [1> 1]×[1> 1] y almacena los resultados
en las nuevas variables X e Y).
AA z=X.^2+Y.^2; (nótese que ha de emplearse la operación
.^en vez de simplemente ^).
AA surf(X,Y,z)
Para los apartados (ii) y (iii) repetimos la sintaxis anterior cambiando sim-
plemente la definición de z (matriz de imágenes), de este modo obtenemos los
gráficos de la figura 4.13.
global), un máximo local (de hecho global) y punto crítico que no es mínimo ni
máximo local (se suele llamar punto de silla).
i1 ({) = {21 + 2{1 {2 + {22 > i2 ({) = sin {1 sin {2 > i3 ({) = {31 + {32 =
Se pide:
a) En cada caso, elegir un entorno apropiado de 02 donde visualizar la gráfica
de cada función; apropiado en el sentido de que nos permita apreciar su forma
global, incluyendo su tendencia cuando k{k $ 4.
b) De forma intuitiva, atendiendo a la representación gráfica de cada una
de las funciones, indíquese si el correspondiente problema (Sl ) P lq il ({) > l =
1> 2> 3> es acotado o no, resoluble o no, si tiene óptimos locales que no son glo-
bales, y si tiene puntos críticos que no son óptimos locales.
c) De nuevo, atendiendo a la gráfica, indíquese en cada caso si el punto
{ = 02 es punto crítico, óptimo local u óptimo global.
(S ) P lq i ({) >
AA solve(diff(‘f(x)’)
(S ) P lq {6 3{2 + 6{=
{ = 1.1673039782614186842560458998548=
escribiremos:
AA diff(‘(x^2)*exp(x)+sin(x)’,2)
ans=
2*exp(x)+4*x*exp(x)+x^2*exp(x)-sin(x)
Otra función que nos será de utilidad es subs, la cual permite sustitutir
en una expresión simbólica la variable x por un número real. Por ejemplo, si
deseamos sustituir en la expresión simbólica anterior,
2*exp(x)+4*x*exp(x)+x^2*exp(x)-sin(x),
AA subs(’2*exp(x)+4*x*exp(x)+x^2*exp(x)-sin(x)’,1)
y obtendremos:
ans =
18.18650181440543
AA subs(diff(‘f(x)’,2),c)
i 00 (1.1673)
= 49.6995 A 0>
{h{ = =
AA subs(diff(’x*exp(x)-exp(x)-x’,2),0.56714329040978)
y obtenemos:
ans =
2.76322283435188
(S ) P lq i ({) >
Veamos a través del siguiente ejemplo cómo se emplean las funciones an-
teriores para determinar el conjunto de puntos críticos de (S ) y analizar las
condiciones de segundo orden. A diferencia de lo que ocurría en el caso de fun-
ciones de una variable, las funciones jacobian y solve no pueden encadenarse
para determinar en una sola sentencia el conjunto de puntos críticos. Tampoco
podrán encadenarse las funciones jacobian y subs.
Nótese que hemos de declarar las variables respecto de la cuales calcular las
derivadas parciales a través de la función sym (en este caso hemos empleado la
notación x e y para las variables, aunque podía haberse elegido, por ejemplo x1
y x2).
A continuación, para obtener el conjunto de puntos críticos (soluciones del
sistema ui ({) = 0q ) copiamos (Ctrl+C) el resultado anterior de la función
jacobian sin los corchetes y empleamos la función solve como se muestra a
continuación:
AA [x1,x2]=solve(’1.0*x*exp(x^2-y^2)+ 1.0*(x^2+y^2)*x*
exp(x^2-y^2), 1.0*y*exp(x^2-y^2)- 1.0*(x^2+y^2)*y*exp(x^2-y^2)’)
Respecto de la sintaxis de la función solve en el contexto de sistemas de
ecuaciones, es importante declarar los argumentos de salida; por ejemplo, en
130 Optimización matemática aplicada
AA [x1,x2]=solve(‘...’)
AA subs(subs(hess,’x’,0),’y’,1)
AA subs(subs(hess,’x’,0),’y’,-1)
Ejercicio 4.6 Utilizar las funciones jacobian, sym, solve y subs para deter-
minar los conjuntos de puntos críticos y óptimos locales del problema
(S ) P lq {31 + {1 {2 + {32 =
Capítulo 4. Prácticas de optimización sin restricciones 133
AA x=quadprog(Q,c,A,b)
1
P lq 2 x’Qx+c’x
v=d Ax b.
AA [x,fval]=quadprog(Q,c,A,b)
disp (‘...’) para mostrar en pantalla el texto escrito entre las comillas.
Una vez creado y guardado el nuevo programa, para ejecutarlo basta escribir
en la ventana de comandos:
AA pcsin
A In quadprog at 242
In pcsin at 10
Optimization terminated.
Un óptimo global es:
OPTIMO =
-0.50000000000000
-0.00000000000000
El valor óptimo es:
v =
-0.25000000000000
Fin de la ejecución de pcsin
En consecuencia, el problema (S1 ) es resoluble; una solución óptima (global)
es { = (0.5> 0)0 y el valor óptimo y = 0.25=
(iii) En el caso de (S3 ) los datos son Q=[2 2;2 2] y c=[1;-1] (véase la
figura 4.22). Nótese que en este caso T es semidefinida positiva, pero los rangos
de Q y [Q c] no coinciden, lo que significa que no existen puntos críticos. Así
pues, en este caso el problema es no acotado, como se muestra en la ejecución
de pcsin.
(iv) En este caso los datos son Q=[2 2;2 -8] y c=[1;1]. Puesto que Q es
indefinida, el problema (S4 ) es también no acotado. La ejecución de pcsin es
completamente análoga a la del apartado anterior.
AA x=fminunc(‘fun’,x0) (4.3)
AA x=fminunc(‘objetivo’,[1,-1])
podemos añadir uno a uno hasta un total de seis argumentos como se muestra
a continuación:
AA [x,fval,exitflag,output,grad,hessian]=fminunc(‘fun’,x0)
valor por defecto es 1036 = Por su parte la igualdad exitflag=3 (que puede
darse únicamente en el caso de que se emplee cierto algoritmo llamado de
gran escala) indica que la regla de parada esta dada por la condición
¯ ¡ l ¢ ¡ l+1 ¢¯
¯i x -i x ¯ ? TolFun, (4.6)
Observación 4.16 Los valores asignados a los parámetros TolFun y TolX pue-
den ser modificados por el usuario mediante la función optimset e incluidos
como tercer argumento de entrada de fminunc. Por ejemplo, para asignar los
valores 1033 y 1034 a TolFun y TolX, respectivamente, escribiremos:
AA options=optimset(‘TolFun’,0.001,‘TolX’,0.0001);
AA[...]=fminunc(‘fun’,x0,options)
AA [x,f,e,o,g,h]=fminunc(’sin(x(1))*sin(x(2))’, [1 1])
x = [-2.2979e-007, -2.2979e-007];
f = 5.2805e-014;
Nótese que la solución propuesta aproxima al punto crítico (0> 0)0 que no es
óptimo local como puede apreciarse a partir del hecho de que la matriz hessiana
(h) es indefinida.
Sin embargo, si resolvemos el mismo problema a partir de la semilla X0=[1,-1]
escribiremos:
AA [x,f,e,o,g,h]=fminunc(’sin(x(1))*sin(x(2))’, [1 -1])
x =[1.5708 -1.5708];
f = -1;
e = 1;
Capítulo 4. Prácticas de optimización sin restricciones 145
(S ) P lq {1 cos {2
147
148 Optimización matemática aplicada
Para detalles sobre los aspectos algorítmicos, el lector puede consultar el mismo
manual que se encuentra referenciado en la sección 4.3.
P lq f0 x
v=d Ax b>
(5.1)
Aeq x = beq,
LB x UB>
donde x5 Rq es el vector de variables de decisión, f5 Rq es el vector de coefi-
cientes de la función objetivo, ‘Ax b’ y ‘Aeqx = beq’ representan, respectiva-
mente, el sistema de desigualdades lineales y de ecuaciones lineales en formato
matricial, y finalmente LB (del inglés, lower bound ) y UB (del inglés, upper bound)
son vectores de Rq cuyas coordenadas coinciden con las cotas inferiores y las
cotas superiores, respectivamente, de las variables del problema.
Seguidamente se indican algunas modalidades de la sintaxis de la función
linprog:
AA x=linprog(f,A,b)
AA x=linprog(f,A,b,Aeq,beq)
Capítulo 5. Prácticas de optimización con restricciones 149
AA x=linprog(f,A,b,Aeq,beq,LB,UB,x0)
AA [x,fval,exitflag,output,lambda]=linprog(f,A,b,...)
Respecto del último argumento de salida, lambda, para obtener los mul-
tiplicadores de KKT asociados a las distintas restricciones pondremos:
‘lambda.ineqlin’ para obtener los multiplicadores asociados al sistema
de desigualdades ‘Ax b’, escribiremos ‘lambda.eqlin’ para los asocia-
dos al sistema de ecuaciones ‘Aeqx = beq’, ‘lambda.lower’, para los co-
rrespondientes a las cotas inferiores ‘LB x’ y ‘lambda.upper’, para los
correspondientes a las cotas superiores ‘x UB’. En cualquiera de estos
casos, si la dimensión del vector correspondiente es 1, muestra directa-
mente el multiplicador (esto es, cuando existe una única desigualdad, o
una única igualdad, o una cota).
Así, obtenemos e=-3 lo que indica que el problema es no acotado. Nótese que,
en cualquier caso MATLAB asigna unos valores numéricos a las coordenadas de
x, puesto que muestra el punto en el que se ha detenido el algoritmo de búsqueda
de solución óptima.
A continuación, en la figura 5.2 se muestra la sintaxis empleada en la re-
solución de (S2 ) =
l =
ineqlin: 2 (multiplicador de KKT asociado a la única desigualdad)
eqlin: 1 (multiplicador e KKT asociado a la única ecuación)
upper: [3x1 double]
lower: [3x1 double]
A continuación, abordamos la resolución de (S3 ) > véase la figura 5.3.
l =
ineqlin: 4 (multiplicador de KKT asociado a la única desigualdad)
eqlin: [0x1 double] (el modelo no tiene ecuaciones)
upper: [3x1 double]
lower: [3x1 double]
Capítulo 5. Prácticas de optimización con restricciones 153
[2.3191e-010, 2.7215e-010,0]’
Resolución de (S4 ) :
1
P lq 2 x’Hx+f’x
v=d Ax B=
Como en el caso de la función linprog puede ampliarse el número de argumentos
de entrada en los formatos:
x=[-7.8505e-017,-0.5,0]’
Así pues, las dos soluciones propuestas por MATLAB resultan ser óptimos glo-
bales.
El siguiente ejemplo pone de manifiesto que, dependiendo de la semilla elegi-
da, MATLAB puede proporcionar óptimos locales que no sean globales. En
general, la comprobación de la optimalidad global ha de hacerse por métodos
analíticos, empleando resultados teóricos o directamente la definición de óptimo
global.
Se pide:
(i) Resolver (S ) con ayuda de la función quadprog utilizando las semillas
(1> 1) y (1> 1).
(ii) Analizar la optimalidad local y global de las soluciones propuestas por
MATLAB en cada caso.
Solución. (i) La figura 5.6 muestra la resolución del problema actual con la
semilla [-1 1]’.
En este caso, se obtiene la solución x=[0 -1]’ con valor de la función obje-
tivo f=-0.5.
Capítulo 5. Prácticas de optimización con restricciones 157
© ª
PNNW = (0> 0)0 > (0> 1)0 > (2> 3)0 =
158 Optimización matemática aplicada
P lq fun(x)
v=d A x B>
Aeq x = Beq,
(5.2)
C(x) 0>
Ceq(x)= 0>
LB x UB=
Concretamente, la sintaxis empleada en la introducción de los datos del
modelo es la siguiente (véase la ayuda de MATLAB para detalles, escribiendo
“AA help fmincon”):
“X=fmincon(fun,X0,A,B,Aeq,Beq,LB,UB,nonlcon)”.
P lq i ({)
v=d jl ({) 0> l = 1> ===> p>
km ({) = 0> m = 1> ===> s>
donde { 5 Rq y todas las funciones del modelo (i> jl > l = 1> ===> p; km > m = 1> ===> s)
están definidas en Rq y toman sus valores (imágenes) en R=
para ciertos escalares l 0> l = 1> ===> p> m 5 R> m = 1> ===> s= Por su parte,
el texto “maximum constraint violation is less than options.Tol-
Con” significa que:
donde [jl ({)]+ representa la parte positiva de jl ({) > esto es,
AA [x,f,e,o,l]=fmincon(‘fun’,x0,A,B,Aeq,Beq,LB,UB,‘nonlcon’)
se crean nuevas asignaciones para los parámetros aquí nombrados, dejando las
168 Optimización matemática aplicada
Ejercicio 5.2 Se pretende construir un depósito con forma de cilindro sin tapa-
dera para albergar un volumen de al menos 2 m3 y se desea determinar las di-
mensiones óptimas del cilindro en el sentido de minimizar la cantidad de material
necesario para su construcción. Se pide:
(i) Plantear el modelo de optimización correspondiente.
(ii) Encontrar con ayuda de fmincon alguna solución que verifique las condi-
ciones de KKT (aproximadamente).
(iii) ¿Cómo repercutiría en el valor óptimo del problema una ligera variación
en el volumen mínimo que se desea albergar?
Aplicaciones
Capítulo 6
Aplicaciones de la
Programación Lineal
(S ) P lq i ({) = f0 {
v=d d0m { em > m 5 G> (6.1)
d0l { = el > l 5 L>
donde G> L N> G _ L = B> |G| ? 4> |L| ? 4> f> dn 5 Rq > en 5 R > n 5 G ^ L=
Así, el conjunto factible de (P) quedaría
© ª
I = { 5 Rq | d0m { em > m 5 G> d0l { = el > l 5 L =
173
174 Optimización matemática aplicada
P P
(iii) Existen m 0> m 5 G> l 5 R> l 5 L tales que f = m dm + l dl =
mMG lML
Sea un consumidor con renta p que tiene que elegir las cantidades de los
bienes E1 y E2 que desea consumir, de modo que maximice su función de
utilidad x y no sobrepase su renta p. Se considera la siguiente notación:
{1 : cantidad del bien 1 ({1 0),
176 Optimización matemática aplicada
x({1 > {2 ) = f1 {1 + f2 {2 =
• Si {1 {
¯1 entonces debe ser s1 {1 + s2 {2 p=
• Si {1 A {
¯1 entonces debe ser s1 {
¯1 + (s1 + w)({1 {
¯1 ) + s2 {2 p> o lo que es
lo mismo s1 {1 + w({1 {
¯1 ) + s2 {2 p=
• Si {1 {
¯1 y s1 {1 + s2 {2 p> como w({1 {
¯1 ) 0, se tiene s1 {1 + w({1
{
¯1 ) + s2 {2 s1 {1 + s2 {2 p=
• Si {1 A {
¯1 y s1 {1 + w({1 {
¯1 ) + s2 {2 p> como w({1 {
¯1 ) A 0, se tiene
s1 {1 + s2 {2 ? s1 {1 + w({1 {
¯1 ) + s2 {2 p.
Capítulo 6. Aplicaciones de la Programación Lineal 177
f1 s1 f1 s1
f2 ? s2 f2 = s2
s1 f1 s1 +w f1 s1 +w
s2 ? f2 ? s2 f2 = s2
s1 +w f1
s2 ? f2
(S1 ) Min f0 {
v=d { 5 I=
Aplicando el teorema 6.2, (S1 ) tendrá solución si, y solo si, existen 1 > 2 > 3 0
tales que
f = 1 d1 + 2 d2 + 3 d3 = (6.2)
1 (d01 {
¯ e1 ) = 1 (0 0) = 0;
12
2 (d02 {
¯ e2 ) = 2 ( 10) = 0;
5
0
3 (d3 {¯ e3 ) = 3 (4 + 4) = 0=
Por el teorema 6.2, y de la misma forma que en el apartado 1, (S2 ) será resoluble
si, y solo si, existen 1 > 2 > 3 0 tales que
1 d1 + 2 d2 + 3 d3 = f̃= (6.3)
que es compatible indeterminado (con un grado de libertad). Por tanto, una vez
resuelto el sistema, sus soluciones se pueden escribir en función de un parámetro
de la forma 3 4 3 4
1 11
E F E F
E 2 F = 1 E 10 F
C D 3C D > 5 R>
3
Capítulo 6. Aplicaciones de la Programación Lineal 181
garantizan de forma evidente que se cumpla la condición (iii) del teorema 6.2
(recuérdese que los flm son no negativos). Solo falta probar que el conjunto
factible es no vacío. Pero para probar esto basta tomar
l m
ˆlm := Pp
{ =
l=1 l
Capítulo 6. Aplicaciones de la Programación Lineal 183
De este modo,
q
X
m
Xq
m=1
{
ˆlm = l p l ;
X
m=1 l
l=1
p
X
p
l
X
ˆlm = m l=1
{ p = m =
X
l=1 l
l=1
{lm )m=1>===>q
Lo que quiere decir que (ˆ l=1>===>p pertenece al conjunto factible del pro-
blema del transporte.
que mejor se ajusta (en el sentido que precisamos más adelante) a la nube de
puntos
{(|m > {1m > {2m > ===> {qm ) > m = 1> ===> n} =
Para ello, consideramos el vector de parámetros = (0 > 1 > = = = > q ) 5 Rq+1 y
definimos para cada 5 Rq+1 el correspondiente vector de residuos
con
%m () := |m (0 + 1 {1m + = = = + q {qm )> m = 1> ===> n=
à !1
2
P
n
(S ) P lq k%()k2 = %m ()2 >
MRq+1 m=1
s
o equivalentemente (por ser la función w 7$ w una función estrictamente cre-
ciente en R+ )
P
n
(Spf ) P lq %m ()2 = (6.4)
MRq+1 m=1
Capítulo 6. Aplicaciones de la Programación Lineal 185
que depende del parámetro desconocido = (0 > 1 > = = = > q ) 5 Rq+1 =
c) Supongamos además que las variables \m () > m = 1> ===> n> son indepen-
dientes.
d) Consideremos unas realizaciones concretas de las variables \m () > m =
1> ===> n> denotadas por |m > m = 1> ===> n> y sean
1
Nótese que el hecho de que \m ()
Q (0 + 1 {1m + === + q {qm > ) equivale a que la
variable residual Hm () = \m () 3 (0 + 1 {1m + === + q {qm ) se distribuya como la normal de
media 0 y desviación típica =
186 Optimización matemática aplicada
n
X
0
(Shpy ) Max (%m ())2 >
MRq+1
m=1
P
n
(Spf ) Min %m ()2 >
MR m=1
P
n
|%m ()|
m=1 >
(S ) P lq
MRq+1 n
o, equivalentemente, el problema,
P
n
(S1 ) P lq k%()k1 := |%m ()| > (6.5)
MRq+1 m=1
1 3 |{3|
i ({) = h e > { 5 R=
2e
Capítulo 6. Aplicaciones de la Programación Lineal 187
que depende del parámetro desconocido = (0 > 1 > = = = > q ) 5 Rq+1 =
c) Supongamos, además, que las variables \m () > m = 1> ===> n> son indepen-
dientes.
d) Consideremos una realización concreta de la muestra (\m ())m=1>===>n > de-
notada por (|m )m=1>===>n > y sean
P
n
(S1 ) P lq |%m ()| >
MRq+1 m=1
P
n
(S O1 ) P lq xm + ym
x>yMRn > MRq+1 m=1
(6.7)
v=d %m () = xm ym > m = 1> = = = > n>
xm > ym 0> m = 1> = = = > n=
La siguiente proposición formaliza la relación entre las soluciones óptimas
de (S O1 ) y las de (S1 )= Dicha proposición hace uso frecuente de la siguiente
observación.
) = x̂m ŷm > m = 1> = = = > n y x̂m > ŷm 0> m = 1> = = = > n=
%m (ˆ
Pn Pn
Queremos probar que m=1 x̄m + ȳm m=1 x̂m + ŷm . En efecto:
n
X n
X n
X
x̄m + ȳm = )|
|%m (¯ )| =
|%m (ˆ
m=1 m=1 m=1
n
X n
X n
X
= |x̂m ŷm | |x̂m | + |ŷm | = x̂m + ŷm =
m=1 m=1 m=1
n
X n
X n
X
)| =
|%m (¯ |x̄m ȳm | x̄m + ȳm = (6.8)
m=1 m=1 m=1
n
X n
X n
X n
X
)|
|%m (¯ x̄m + ȳm x̃m + ỹm = )| >
|%m (˜
m=1 m=1 m=1 m=1
(Se2 ) P lq g
v=d |%m ()| g> m = 1> = = = > n>
que inmediatamente conduce al problema de PL
(S O2 ) P lq g
v=d %m () g> m = 1> = = = > n> (6.9)
%m () g> m = 1> = = = > n=
g¯ = max {|%m (¯
)| > m = 1> = = = > n} max {|%m (˜ ˜
)| > m = 1> = = = > n} g>
P
n
(S O1 ) P lq xm + ym
x>yMRn > MRq+1 m=1
v=d %m () = xm ym > m = 1> = = = > n>
xm > ym 0> m = 1> = = = > n>
donde recordemos, además, que
(S ) P lq f0 {
v=d D{ e>
(6.10)
Dht { = eht>
OE { X E>
192 Optimización matemática aplicada
n n q+1
z }| { z }| { z }| {
f = (1> ===> 1> 1> ===> 1> 0> ===> 0)0 5 Rn × Rn × Rq+1 =
Nuestro modelo incluye un sistema de ecuaciones lineales que viene dado por
³ ´
Dht = Ln | Ln | 1n | [ >
n×(2n+q+1)
n
z }| {
donde Ln es la matriz identidad de orden n y 1n = (1> ===> 1)0 = El vector de términos
independientes está dado por
eht = \>
var(x) nos devuelve la varianza de los elementos del vector x. Si x fuese una
matriz, mostraría la varianza por columnas.
(se ha optado por introducir los datos por filas para mayor comodidad del
usuario).
A partir de estos datos, la función minmad proporciona dos salidas: vro,
que es la solución óptima del modelo MINMAD, esto es, vro = (0 > 1 > ===> q )0
y h, el vector de residuos para los valores dados de los parámetros.
En ambas funciones se ha añadido la opción de realizar una estimación par-
ticular de | a partir de unos valores observados de las variables independientes.
La función minmad, se presenta a continuación:
Inicio función minmad
%La función minmad proporciona una alternativa al método
%de mínimos cuadrados en modelos de regresión lineal. Mien-
194 Optimización matemática aplicada
function [sol,e]=minmad(dep,indep)
x=indep;
[n,k]=size(x);
y=dep’;
%función objetivo
c=[ones(2*k,1); zeros(n+1,1)];
x=x’;
%restricciones de igualdad
Aeq=[eye(k), -eye(k), ones(k,1),x];
%términos independientes de las ecuaciones de igualdad
beq=y;
%cota inferior
LB=[zeros(2*k,1);-inf*ones(n+1,1)];
[s,t]=linprog(c,[],[],Aeq,beq,LB,[]);
Capítulo 6. Aplicaciones de la Programación Lineal 195
sol=s((2*k+1):(2*k+n+1));
disp(’desea realizar alguna estimación particular de y’)
o=input(’en caso afirmativo, escriba 1, en otro caso,
pulse otro número’);
while o==1
ob=input(’introduzca (en un vector fila) los valores de
la variable independiente’);
obs=[1,ob];
disp(’el valor estimado de y es:’)
z=obs*sol
disp(’desea realizar una nueva estimación’)
o=input(’en caso afirmativo, escriba 1, en otro caso,
pulse otro número’)
end
disp(’estos son los parámetros del plano de regresión’)
disp(’estimados con el método MINMAD’)
%gráfico de los errores
u=s(1:k);
v=s((k+1):(2*k));
e=u-v;
subplot(2,1,1),plot(e,’r.’,’LineWidth’,1,’MarkerSize’,5);
%Regla de Sturges, para saber el nr de intervalos
q=floor(3/2+log10(n*k)/log10(2));
subplot(2,1,2);
hist(e,q);
hold on
%varianza =2/lambda^2
p=min(e):0.01:max(e);
va=var(e);
lambda=sqrt(2/va);
plot(p,((lambda/2)*exp(-lambda*abs(p)))*k,’r’,’LineWidth’,2)
hold off
Fin función minmad
196 Optimización matemática aplicada
(S O2 ) P lq g
v=d %m () g> m = 1> = = = > n>
%m () g> m = 1> = = = > n=
Seguidamente adaptamos (S O2 ) al formato de MATLAB (6.10). La variable
de decisión es { = (> g) 5 Rq+1 × R; así el vector de coeficientes de la función
objetivo es:
q+1
z }| {
f = (0> ===> 0> 1)0 5 Rq+2 =
function [sol,d]=minmaxad(dep,indep)
x=indep;
[n,k]=size(x);
y=dep’;
%función objetivo
c=[zeros(n+1,1);1];
x=x’;
%restricciones de desigualdad
A=[-ones(k,1),-x, -ones(k,1); ones(k,1),x,-ones(k,1)];
%términos independientes de las ecuaciones de desigualdad
b=[-y;y];
%cota inferior
LB=[zeros(n+2,1)];
[s,t]=linprog(c,A,b,[],[],LB,[]);
sol=s(1:n+1);
disp(’desea realizar alguna estimación particular de y’)
o=input(’en caso afirmativo, escriba 1; en otro caso,
pulse otro número’)
while o==1
ob=input(’introduzca (en un vector fila) los valores de
la variable independiente’);
obs=[1,ob];
disp(’el valor estimado de y es:’)
z=obs*sol
disp(’desea realizar una nueva estimación’)
o=input(’en caso afirmativo, escriba 1; en otro caso,
198 Optimización matemática aplicada
T: 45 40 39 30 35 33 41 10 3 1
E: 47 44 39 39 29 48 44 42 28 37
P : 163 171 171 133 167 180 151 169 164 165
T: 8 4 5 9 7 4 8 3 1 3
E: 39 38 34 36 41 23 38 33 35 27
P : 170 143 142 135 165 160 138 151 145 140
AA [sol,d]=minmaxad(dep,inde)
Y obtenemos el modelo:
T = 0.5476E.
Posiblemente un paciente con (32> 157) tardará 17.5238 días en ser dado de
alta, es decir, entre 17 y 18 días.
Ejercicio 6.2 En este ejercicio vamos a usar una base de datos externa al MAT-
LAB, la base de datos del SPSS, con el propósito de usar gran cantidad de
variables y de datos2 . Concretamente, emplearemos el fichero Coches.sav y tra-
2
El programa MATLAB permite insertar datos provenientes de diferentes fuentes. Además
de las bases de datos del SPSS podrían utilizarse otras provenientes de EXCEL (como se
202 Optimización matemática aplicada
bajaremos con las variables consumo (litros cada 100 km), motor (cilindrada
en CC), acel (aceleración de 0 a 100), cv (potencia en CV), peso (total en
kg) y año (año de fabricación). Se desea conocer la relación que existe entre el
consumo de los coches de EE.UU. y las variables motor, cv, peso, acel y año.
Para ello utilizaremos los métodos MINMAD y MINMAXAD.
Estadísticos
$FHOHUDFLyQ
&RQVXPR &LOLQGUDGD DNPK 3HVRWRWDO $xRGHO
ONP HQ&& 3RWHQFLD&9 VHJXQGRV NJ PRGHOR
1 9iOLGRV
3HUGLGRV
ard, seleccionamos Create vector from each column using column names, Finish
(véase la figura 6.15). Podemos renombrar la variables directamente pinchando
P R A V
98 520 10 4050
125 680 3 5200
110 650 8 5250
80 560 12 4080
150 490 2 4130
134 620 6 5700
118 580 9 5220
106 610 5 4100
Localidad P R
A 140 517
B 116 625
C 135 550
Se pide: ajustar los datos mediante los métodos MINMAD y MINMAXAD,
utilizando para ello sendos modelos de PL, y predecir donde se abrirá el próximo
supermercado.
a) En la muestra de hombres.
b) En la muestra de mujeres.
Consideramos el espacio (Rq > ), donde el orden ‘’ está definido de la forma:
Es sabido que esta relación de orden no es total, es decir, hay elementos que
no son comparables. Basta considerar en R2 los puntos } 1 = (1> 2) y } 2 = (3> 1)
para los cuales no se cumple ninguna de las dos desigualdades } 1 } 2 ni } 2 } 1 =
El objetivo de esta aplicación es construir una medida unidimensional, con
ayuda de la programación lineal, que permita establecer un orden total en un
© ª
conjunto dado de puntos } 1 > ===> } n de Rq++ :=]0> +4[q . La finalidad última
© ª
es seleccionar un mínimo o un conjunto de mínimos en } 1 > ===> } n en base a
dicho orden. La construcción que aquí se propone es una versión simplificada
del modelo BCC de Banker, Charnes y Cooper, en el que la medida construida
se conoce como eficiencia, que nosotros designaremos por ef(·).
Hay que tener en cuenta que no se busca un orden cualquiera y sin signifi-
cado (lo que por otra parte sería muy fácil), sino un orden que permita realizar
interpretaciones coherentes del modelo y aplicarlo a situaciones reales. En con-
© ª
creto sería conveniente que el nuevo orden que establezcamos en } 1 > ===> } n > y
Capítulo 6. Aplicaciones de la Programación Lineal 209
que designaremos con los símbolos ‘-’, ‘!’, ‘’, fuera compatible con el de Rq :
más precisamente, si } l } m entonces debería ser } l - } m .
La construcción de la eficiencia, que iniciamos a continuación, está intuiti-
vamente motivada por las consideraciones anteriores y otras que introduciremos
posteriormente.
Dados } 1 > = = = > } n 5 Rq++ , interpretamos cada } l como el vector que contiene
diferentes datos de una determinada organización (por ejemplo coste, mano de
obra ...) que interesa minimizar. Así identificamos } l con la l-ésima organización
existente. A partir de las organizaciones ya existentes } 1 > = = = > } n , el modelo va a
admitir la existencia de otras, que forman el llamado conjunto de organizaciones
posibles, I , definido de la siguiente manera.
Definición 6.1 Dadas las organizaciones } 1 > = = = > } n > se define el conjunto I de
todas las organizaciones posibles como el menor conjunto convexo que verifica:
(i) } l 5 I> para todo l = 1> ===> n;
(ii) Si } 5 I y }˜ }, entonces }˜ 5 I=
(iii) I es cerrado;
(iv) Si } 5 I y }˜ A } (esto es, }˜v A }v para todo v 5 {1> ===> q})> entonces
}˜ 5 int(I )=
} 1 } 1 + === + n } n >
}˜ 1 } 1 + === + n } n >
Pn Pn
para ciertos 1 > = = = > n > 1 > = = = > n 0> con l=1 l = l=1 l = 1=
Capítulo 6. Aplicaciones de la Programación Lineal 211
Luego
Pn
ya que + (1 )l ) = + (1 ) = 1. Por tanto Ib es convexo.
l=1 (l
En consecuencia, hemos probado que I = Ib= Finalmente, se comprueba de
forma directa que Ib (definido en (6.11)) puede expresarse como
n o
Ib = conv } 1 > = = = > } n + Rq+ =
© ª
(ii) Es inmediato al tener por una parte I = conv } 1 > = = = > } n + Rq+ > y por
© ª © ª
otra conv } 1 > ===> } n Rq++ al cumplirse } 1 > ===> } n Rq++ y ser Rq++ convexo.
© ª
(iii) Sabemos que conv } 1 > = = = > } n es compacto, y que Rq+ es cerrado. Como
la suma de un conjunto compacto y un cerrado da como resultado un cerrado,
por (i) se tiene que I es cerrado.
}v }v ). Evidentemente será
(iv) Sean } 5 I y }˜ A }= Tomemos % := min (˜
v=1>===>q
} > 2% ) I :
% A 0. Vamos a comprobar que E2 (˜
} > 2% ) entonces, para todo v 5 {1> ===> q} se tiene:
Si tomamos }ˆ 5 E2 (˜
% % %
}v A =, }ˆv }v = }ˆv ˜
}ˆv ˜ }v +˜ }v }v A +% A 0 =, }ˆv A }v >
}v }v A +˜
2 2 2
por lo que }ˆ 5 I .
Volviendo de nuevo a las propiedades convenientes para nuestro modelo,
el orden construido no debería despreciar a la ligera puntos válidos para ser
mínimo: por ejemplo, dados los puntos } 1 = (3> 3)0 > } 2 = (1> 2)0 > } 3 = (2> 1)0 ,
no parece conveniente la ordenación
}2 ! }3 ! }1>
pues el orden usual de Rq (con qA1) no proporciona ningún motivo para con-
siderar } 2 “inferior” a } 3 . Parece más razonable la ordenación
}2 }3 ! }1=
se reduce a un punto }˜ 6= 0q =
e} = limu u }=
}˜ =
Capítulo 6. Aplicaciones de la Programación Lineal 213
e} 5 I . Además,
Puesto que u } 5 I para todo u y I es cerrado, se tiene que
e 1, esto quiere decir que
teniendo en cuenta que 0 ? e 5 D, es decir,
e =min(D).
Por otro lado, podemos escribir
μ ¶
1
}˜ = limu e }>
u
© ª © ª
Definición 6.3 Dados } 1 > = = = > } n Rq++ y I = conv } 1 > = = = > } n + Rq+ > para
214 Optimización matemática aplicada
}k
k˜
ef (}) = >
k}k
lo que quiere decir que en el modelo construido se buscan los puntos con mayor
eficiencia (los menores respecto al nuevo orden).
Por otro lado, la demostración de la proposición 6.6 nos proporciona la
siguiente fórmula
}k
k˜
ef (}) = = inf { 5 ]0> 1] | } 5 I } =
k}k (6.12)
= min { 5 ]0> 1] | } 5 I } =
(Sl ) P lq h
v=d h} l 5 I=
Capítulo 6. Aplicaciones de la Programación Lineal 215
© ª
Teniendo en cuenta que I = conv } 1 > = = = > } n + Rq+ , podemos expresar
el problema de minimización anterior como el siguiente problema de variables
1 > ===> n > h :
(Sl ) P lq h
P
n
v=d h} l u } u >
u=1
P
n
u = 1>
u=1
u 0> u = 1> 2> = = = > n=
(Sl ) P lq h
P
n
v=d h}vl u }vu > v = 1> = = = > q>
u=1 (6.13)
P
n
u = 1>
u=1
u 0> u = 1> 2> = = = > n=
(i) Para cualesquiera l> m 5 {1> = = = > n}> } l } m implica ef(} l ) ef(} m ) (es
decir, } l - } m ).
(ii) Para todo } 5 I> ef(}) = 1 si, y solo si, } 5 bd(I ).
(iii) Para cualquier punto } 5 I no dominado se tiene que ef(}) = 1; el
recíproco no se cumple en general.
Demostración. (i) Sean l> m 5 {1> = = = > n} tales que } l } m = Conservando la no-
tación anterior, sea }˜l el único elemento de ]0q > } l [_bd(I )> y definamos análoga-
© ª
mente }˜m = Definimos D := 5 [0> 1] | } m }˜l . Nótese que D es cerrado por
ser la antiimagen del cerrado Rq3 := {{ 5 Rq | {v 0> v = 1> ===> q} mediante la
función continua j : [0> 1] $ Rq dada por j () = }˜l } m =
Además, es evidente que 1 5 D> pues } m } l }˜l = Por tanto, podemos
afirmar que D es no vacío y compacto, por tratarse de un cerrado contenido en
@ D por ser }˜l 5 Rq++ = En consecuencia, podemos
el compacto [0> 1]. Además 0 5
afirmar que existe el valor
© ª
ˆ := min 5 [0> 1] | } m }˜l A 0=
ˆ ef(} l )=
que }˜m 5 bd(I )= Por tanto, debe ser ˆ ef(} m )> y teniendo en cuenta que era
ˆ ef(} l )> se tiene ef(} m ) ef(} l )= Esto concluye la demostración del primer
apartado.
(ii) Si ef(}) = 1 entonces, de acuerdo con nuestra notación, } = }˜ 5 bd(I )=
Recíprocamente, dado } 5 bd(I ) se tiene que } 5]0q > }]_ bd(I ). Esto quiere
decir que } es el único punto de dicha intersección y por definición de eficiencia
se tiene:
k}k
ef(}) = = 1=
k}k
(iii) Sea } 5 I no dominado, y supongamos, con el objetivo de llegar a un
absurdo, que ef(}) ? 1= Si defininimos }˜ := ef(})} se tiene por un lado que
}˜ 5 I por la ecuación (6.12), y por otro que }˜ ? }. Esto quiere decir que } es
dominado, lo que contradice la hipótesis inicial. Por tanto, ef(}) = 1.
Para comprobar que el recíproco no se cumple en general, basta considerar
un ejemplo en R2 en el que existan dos puntos distintos en la frontera de I ,
pero que coincidan en una de sus componentes.
(S ) P lq f0 {
v=d D{ e>
Dht { = eht>
OE { X E>
a través de las siguientes asignaciones. En primer lugar, hemos de tener en cuenta
que las variables de nuestro problema (6.13) son 1 > = = = > n > h> que elegiremos en
este orden, esto es, { = (1 > = = = > n > h).
En consecuencia, el vector de coeficientes de la función objetivo es:
μz n}| { ¶0
f = 0> ===> 0> 1 =
n+1
¡ ¢
D = ] | } l q×(n+1) =
μz }| n
{¶
Dht = 1> = = = > 1 =
n
eht = (1) =
function [ef]=eficiencia(Z)
[n,m]=size(Z);
for i=1:n
A=[Z’,-Z(i,:)’];
b=zeros(m,1);
c=[zeros(1,n),1];
Aeq=[ones(1,n),0];
beq=1;
LB=zeros(1,n+1);
UB=[];
ef(i,:)=linprog(c,A,b,Aeq,beq,LB,UB);
end
ef=ef(:,n+1);
disp(’eficiencia : ’)
Fin función eficiencia
Ejercicio 6.5 Entre todos los huertos solares españoles se ha seleccionado una
muestra aleatoria de 12 de ellos, y nos disponemos a realizar un estudio de
220 Optimización matemática aplicada
Solución.
En primer lugar, para establecer una ordenación, basada en el estudio de la
eficiencia, puesto que el modelo presentado está basado en la idea de minimizar
en cada uno de los objetivos trabajaremos con los inversos de kW y bene-
fi. Además, por cuestiones computacionales, multiplicaremos cada uno de estos
inversos por 100 (de este modo, informalmente hablando, los datos de las diferen-
tes columnas presentan magnitudes similares). Nótese que P d{ i ({) +,
1000
P lq i ({) . Así, los datos que manejaremos finalmente se presentan en la si-
guiente tabla:
Capítulo 6. Aplicaciones de la Programación Lineal 221
Figura 6.23: Tabla de los datos iniciales del informe “La universidad en cifras”.
Capítulo 6. Aplicaciones de la Programación Lineal 225
Rposgrad:= Ntilposg/Posgrad.
Titaluci:= Tituofre/Alumci.
Alupdi:= Alumci/PDI.
Pdipas:= PDI/PAS.
Benefimin:= 63Beneficio.
3
Recordemos que otra forma de conseguir este propósito es lo descrito en el ejercicio anterior,
que consiste en invertir las cantidades originales.
226 Optimización matemática aplicada
Figura 6.24: Tabla del Ejercicio 6.6 con las nuevas variables creadas, sobre las que
haremos el estudio de la eficiencia.
Capítulo 6. Aplicaciones de la Programación Lineal 227
6.3.3. Ejercicios
Ejercicio 6.7 Se desea construir una carretera para establecer una comuni-
cación directa entre dos poblaciones vecinas. El Gobierno de la correspondiente
Comunidad Autónoma ha convocado un concurso público de presentación de
propuestas. Diferentes empresas han presentado sus proyectos, y los datos rela-
tivos al Coste final (en millones de euros) y Longitud total (en cientos de
kilómetros) se muestran a continuación en la siguiente tabla:
228 Optimización matemática aplicada
Empresa Eficiencia
A1 0.9286
A2 1
A3 1
A4 0.5
A5 1
A6 0.4643
A7 1
En ambos casos los barcos más eficientes en ese día en concreto son: b5 , b9 ,
b16 y b18 .
Ejercicio 6.9 Ante una nueva y desconocida afección cutánea, un joven investi-
gador en el campo de la dermatología, experimenta con un total de 350 ratas. El
investigador formula 7 tipos de medicamentos, los cuales curan la afección. Como
paso previo a la prueba experimental en humanos el investigador ha dividido las
350 ratas en siete grupos de 50, administrándole a cada grupo un medicamento
diferente. En cada grupo se han medido las variables temperatura (media del
aumento de la temperatura del grupo, medida en grados centígrados), tiempo
Capítulo 6. Aplicaciones de la Programación Lineal 231
(media del número de días que tarda en desaparecer la afección) y coste (coste
de producción de 100 ml del medicamento correspondiente). El investigador de-
sea establecer una ordenación entre dichos medicamentos.
MEDICAMENTO EFICIENCIA
1 0.9646
2 0.8134
3 1
4 0.7956
5 0.7319
6 1
7 1
Nótese que tres de los medicamentos tienen eficiencia 1, por lo que la orde-
nación final entre ellos, de nuevo, es tarea del investigador.
Capítulo 7
Aplicaciones de la
Programación No Lineal
233
234 Optimización matemática aplicada
(S̃1 ) P lq %
({>%)MR2+1
° °
v=d °{ dl ° %> l = 1> = = = > 6=
© ª
Figura 7.2: Mínimo círculo que contiene al conjunto d1 > d2 > = = = > dn R2 .
(S1 ) P lq %
({>%)MRq+1 (7.2)
° °
v=d °{ dl ° %> l = 1> = = = > n=
(S2 ) P lq %2
({>%)MRq+1
° °
v=d °{ dl °2 %2 l = 1> = = = > n> (7.3)
% 0=
puesto que dicho cambio transforma las restricciones del problema (7.3) de la
siguiente manera: dado cualquier l = 1> = = = > n>
° ° ° °
°{ dl °2 %2 / k{k2 2{0 dl + °dl °2 %2 /
1³ 2 ´ 1 ° °2 1 ° °2
/ {0 dl + % k{k2 °dl ° / } 0 dl + °dl ° =
2 2 2
(Recuérdese que en esta aplicación k·k representa a la norma euclídea.)
Teniendo en cuenta esta cadena de equivalencias probaremos el siguiente
resultado.
Lema 7.1 Sea I el conjunto factible del problema de Sylvester (7.3), esto es,
n ° °2 o
I := ({> %) 5 Rq+1 | °{ dl ° %2 > l = 1> = = = > n> % 0 >
y sea ½ ¾
1° °2
J := (}> ) 5 Rq+1
| + } d °d ° > ;l = 1> = = = > n
0 l l
2
Capítulo 7. Aplicaciones de la Programación No Lineal 237
#: I $ J
³ ³ ´´
7 $ {> 12 %2 k{k2 >
({> %)
es biyectiva.
(S3 ) P lq 2 + k}k2
(}>)MRq+1
1° °
°dl °2 > l = 1> = = = > n=
v=d + } 0 dl
2
¯ es solución óptima de (S3 )
} > )
Se tiene que (S3 ) es resoluble. Además, si (¯
{> %̄) definido por
entonces (¯
;
? {
¯ := }¯>
q
= %̄ := 2 } k2 >
¯ + k¯
lo que significa que la función objetivo de (S3 ) está acotada inferiormente por 0
sobre el conjunto factible de (S3 ) = Así pues, (S3 ) es acotado=
El resto de la prueba de este resultado es consecuencia directa de la proposi-
ción 7.1.
¡ ¢
¯ 5 G = PNNW > se tiene:
En efecto, si }¯>
μ ¶ X μ l¶
}
2¯ d ¡ ¢
= l ¯ =
> con l 0> para todo l 5 L }¯>
2 1
¯)
lML (}¯>
P l l
© ª P l
En consecuencia }¯ = 2 d 5 conv d1 > d2 > = = = > dn > ya que 2 = 1=
¯)
lML (}¯> ¯)
lML (}¯>
1 0
(S3 ) P lq x Tx + g0 x
xMRq+1 2
v=d Dx e>
considerando
3 ¡ ¢0 4
à ! à ! d1
Lq 0q 0q E . F
T := 2 > g := > D := E
C .
. 1n F>
D
00q 0 2 ¡ n ¢0
d
3 ° °2 4
°d1 °
1 E .. F
e := EC . F > x := (}1 > }2 > = = = > }q > )0 >
D
2 ° n °2
°d °
(n)
z }| {
donde recuérdese que 0q es el vector nulo de Rq y que 1n := (1> ===> 1)0 =
A continuación, presentamos la función de MATLAB que calcula la mínima
bola mediante la resolución del problema (S3 ). La notación empleada ha sido la
siguiente:
MP: matriz que contiene a los puntos dl por columnas.
Q, d: Matriz y vector que definen la función objetivo de (S3 ) =
A, b: Matriz y vector que definen las restricciones del problema (S3 ) > esto
es, Dx e=
x: centro de la esfera ({1 > = = = > {q ) que se busca.
u: es el vector ({1 > = = = > {q > ), de variables del problema (S3 ).
240 Optimización matemática aplicada
function [x,r]=esfmin(MP)
[n,k]=size(MP);
Q=2*[eye(n),zeros(n,1); zeros(1,n),0]; d=[zeros(n,1);2];
A=-[MP’,ones(k,1)]; b=-0.5*(sum(MP.^2))’;
[u,v]=quadprog(Q,d,A,b); x=u(1:n); r=sqrt(v);
Fin función esfmin
AA MP=[16,16,44,66.5,82,82;13.5,36.5,26.5,44,26,11]
AA [x,r]=esfmin(MP)
y al ser el radio menor que 40 m quedará garantizada una buena señal en todas
las localizaciones. En la figura 7.3 se muestra gráficamente la solución obtenida.
d1 (68> 263)
d2 (251> 340)
d3 (173> 170)
d4 (208> 40)
d5 (312> 190)
(S1 ) P lq %
({>%)MR2+1
° °
v=d °{ dl ° + 25 %>
(S2 ) P lq % 25
({>%)MR2+1
° °
v=d °{ dl ° % 25=
242 Optimización matemática aplicada
(S3 ) P lq
({>)MR2+1
° °
v=d °{ dl ° ;
¯3 es óptimo del problema (S3 ) con valor ¯3 > entonces el óptimo del problema
Y si {
¯3 , pero con valor ¯3 + 25=
original (S1 ) es también {
Utilizando la función esfmin realizada previamente, resolvemos el problema
(S3 ), obteniendo la ubicación óptima de la antena en el punto {
¯ = (204.93> 193.52)>
con valor óptimo ¯ = 153.55. La figura 7.5 ilustra dicha ubicación óptima.
{(|m > {1m > {2m > ===> {qm )> m = 1> ===> n} Rq+1 >
244 Optimización matemática aplicada
que minimiza la norma euclídea el vector de residuos %() = (%m ())m=1>===>n >
siendo
donde = (0 > 1 > ===> q )0 5 Rq+1 = En otros términos, se trata de resolver el
problema
P lq k%()k2 >
MRq+1
%() = \ 0 + 1 [1 + 2 [2 + = = = + q [q =
3 4
0
E F
E 1 F
E F
= \ (1n |[1 | · · · |[q ) E . F = \ [=
E .. F
C D
q
Entonces,
1 0 0
(Spf ) P lq i () := 2 T + f + g= (7.7)
MRq+1
Capítulo 7. Aplicaciones de la Programación No Lineal 245
Dado que T = Ki () > para cualquier > es una matriz simétrica y definida
o semidefinida positiva, pues
© ª
G = 5 Rq+1 | [ 0 [ [ 0 \ = 0 =
n
X
i () = %2l () 0 para todo 5 Rq+1 =
l=1
Además, puesto que i es convexa, en virtud del teorema 2.1 se tiene que el
conjunto de óptimos globales de (Spf ) está dado por
© ª
G = 5 Rq+1 | ui () = 0q+1
© ª
= 5 Rq+1 | T + f = 0
© ª
= 5 Rq+1 | [ 0 [ [ 0 \ = 0 =
246 Optimización matemática aplicada
N D E F G N D E F G
107.5 13 67 8 19 102 11.9 72 9 23
112.4 6.8 33 9 15 104.2 3 51 13 46
84 2.3 59 11 27 110.7 23 46 16 22
113.8 10.1 31 24 25 75.7 2.1 45 8 54
94.1 9.9 43 15 42 77.9 7 25.5 7 61
73.2 7.8 69.9 11 7 81.9 9.8 33 7 63
Se desea ajustar un modelo lineal a estos datos, donde se exprese el calor ge-
nerado N en función de las cantidades de los compuestos D, E, F y G. Esto es,
se desean determinar los parámetros 0 > 1 > ===> 4 del modelo lineal:
N = 0 + 1 D + 2 E + 3 F + 4 G>
que mejor se ajusta a los datos anteriores, en el sentido de los mínimos cuadrados.
Además, se sabe que los parámetros del modelo verifican las restricciones:
1 + 2 + 3 4 y 21 2 = 0=
(Spfu ) P lq 0 T + f0 + g
v=d D e>
Dht = eht =
248 Optimización matemática aplicada
donde
T = 2[ 0 [> f = 2[ 0 \ y g = \ 0 \=
Recuérdese que
3 4 3 4
1 {11 ··· {q1 |1
E . .. .. .. F E . F
[=E .
C . . . . F > \ = E ..
D C
F=
D
1 {1n ··· {qn |n
function [sol,e]=minres(dep,indep,A,b,Aeq,beq)
x=indep;
[n,k]=size(x);
y=dep’;
%función cuadrática
x=x’;
Capítulo 7. Aplicaciones de la Programación No Lineal 249
X=[ones(k,1),x]
Q=2*X’*X;
%función lineal
c=-2*X’*y;
[sol]=quadprog(Q,c,A,b,Aeq,beq);
e=y-X*sol;
Fin función minres
Formalmente, se desea determinar los parámetros 0 > 1 > ===> 3 que proporcionan
el mejor ajuste del modelo
AA dep=precio’;
AA indep=[valterr,valmejor,valtot]’;
Capítulo 7. Aplicaciones de la Programación No Lineal 251
AA [sol,e]=minres(dep,indep,[],[],[0,0,2,-1,0],0)
S = 0 P 1 V 2 > (7.9)
S : 47.5 49.8 51.2 49.3 48.9 57.6 51.9 54.5 48.4 50.5
P: 95 105 110 97 104 145 125 132 92 104
V: 59 64 69 73 56 79 54 68 75 72
{(|m > {1m > {2m > ===> {qm )> m = 1> ===> n} Rq+1 =
P
n
(Spfqo ) P lq (|m i ({1m > {2m > ===> {qm ))2
m=1 (7.10)
v=d= 5 I=
El problema (Spfqo ) será de PNL con restricciones si I está dado como el
conjunto de soluciones de cierto sistema de restricciones. Si I = Rp > el problema
(Spfqo ) puede verse como un problema de PNL sin restricciones.
i (P> V) = 0 P 1 V 2 >
Para ello se va a instalar una grúa torre en dicho recinto con la que se elevarán
(S ) P lq g(d> {) +
v=d { 5 U>
o equivalentemente
(S̃ ) P lq g(d> {)
v=d { 5 U=
I = {{ 5 Rq | D{ e} >
(S2 ) P lq {0 { 2d0 { + d0 d
v=d D{ e=
considerando
T := 2Lq > f := 2d y g := kdk2 =
function [sol,d]=dispol(punto,A,b)
[m,t]=size(A);
%Primero se comprueba si el punto pertenece a F
D=[];
for i=1:m
C=A(i,:)*punto’;
D=[D,C];
end
if D?=b
disp(’El punto pertenece al poliedro’)
sol=[];
d=[];
return
else
n=length(punto);
Q=eye(n);
c=-2*punto;
[sol]=quadprog(2*Q,c,A,b);
d=sqrt((sol’-punto)*(sol’-punto)’);
end
Fin función dispol
U = conv {(52.5> 103.5) , (119.5> 100) , (138> 51) , (59.5> 17) , (36> 69)} =
A partir de las ecuaciones de las rectas que conectan cada par de vértices con-
secutivos llegamos a la representación deseada:
© ª
U := { 5 R2 | D{ e =
Capítulo 7. Aplicaciones de la Programación No Lineal 259
{
¯ = (51.75> 101.94)=
7.4.4. Ejercicios
Ejercicio 7.1 Se desea hallar la distancia del punto d = (3> 4) al poliedro dado
por
© ª
S := { 5 R2 | {1 + {2 4> {1 + 2{2 5> {1 0> {2 0 =
AA A=[1,1;1,2;-1,0;0,-1];
AA b=[4,5,0,0];
AA [sol,d]=dispol([3,4],A,b)
y
5
4
a
, P)
3
d(a
PP(a)
1
P
0
0 1 2 3 4 5
x
Ejercicio 7.2 Se desea minimizar las distancias de los puntos dados a cada uno
de los correspondientes poliedros, mediante la función dispol:
(a) s1 = (4> 6> 7)>
( )
{ 5 R3 | {1 + 3{2 + {3 12> {1 + 9{2 18> {1 0>
I1 = =
{2 0> {3 0
(b) s2 = (2> 6> 5> 10)>
; <
A 4 A
? { 5 R | {1 + {2 + 4{3 4> {1 + 2{4 7>
A A
@
I2 = {1 + {2 3{3 + 5{4 11> {1 0> {2 0> =
A
A A
A
= { 4> { 0 >
3 4
Capítulo 7. Aplicaciones de la Programación No Lineal 261
(S1 ) P lq g({> |)
v=d { 5 I1 >
| 5 I2 >
(S2 ) P lq {0 { 2{0 | + | 0 |
v=d D1 { e1 > (7.13)
D2 | e2 =
Demostración. (i) Veamos que la función objetivo de (S2 ) > que denotaremos
por i> es convexa. Sea
si consideramos
μ ¶ Ã !
{ 2q Lq Lq
} := 5 R > T := 2 >
| Lq Lq
à ! à !
D1 0p×q e1
D := y e := >
0s×q D2 e2
donde D1 > D2 > e1 y e2 son las matrices y vectores que aparecen en el problema
(7.13).
A partir de estos ingredientes implementamos la función dis2pols que re-
suelve el problema de la mínima distancia entre dos poliedros mediante la re-
solución del problema (S2 ) =
264 Optimización matemática aplicada
function [x1,x2,d]=dist2pols(A1,b1,A2,b2)
[m,n]=size(A1); [p,n]=size(A2);
A=[A1,zeros(m,n);zeros(p,n),A2]; b=[b1;b2];
Q=[eye(n),-eye(n);-eye(n),eye(n)];
[z,fval]=quadprog(Q,zeros(2*n,1),A,b);
x1=z(1:n); x2=z(n+1:2*n); d=sqrt(fval);
Fin función dis2pols
A continuación, resolvemos el problema de la zanja planteado en la subsec-
ción 7.5.1.
En primer lugar, representamos los recintos U y V como los conjuntos de
soluciones de sendos sistemas lineales dados por:
© ª © ª
U = { 5 Rq | D1 { e1 y V = { 5 Rq | D2 | e2 =
{
¯ = (140.7643> 131.4013) 5 U e |¯ = (200> 240) 5 V>
Ejercicio 7.3 Se pretende construir un paso elevado que una las zonas D y E
representadas en la figura 7.13. Cada posible paso elevado puede ser representado
por un par ({> |) 5 R4 , donde { 5 D e | 5 E representan los puntos inicial y final
del trayecto respectivamente. Calcúlese el par ({> |) que define el paso elevado
de menor longitud.
E{ := {1 E1 + = = = + {q Eq =
(S ) P d{ E{
v=d {1 + = = = + {q = p>
{1 > = = = > {q 0=
En general, E1 > = = = > Eq son variables aleatorias y, por tanto, E{ es también una
variable aleatoria resultante de una combinación lineal de las anteriores.
268 Optimización matemática aplicada
Y du(E{ ) = {0 T{>
(S ER) P d{ H(E{ ) = f0 {
P lq Y du(E{ ) = {0 T{
v=d {1 + = = = + {q = p>
{1 > = = = > {q 0=
Se trata de un modelo biobjetivo (un objetivo lineal, el beneficio promedio,
y otro cuadrático, el riesgo) con restricciones lineales. Una metodología típica de
resolución de problemas biobjetivo consiste en optimizar uno de los objetivos y
acotar el otro (véanse detalles adicionales en el texto de Novo [17]). Por ejemplo,
Capítulo 7. Aplicaciones de la Programación No Lineal 269
(SP ) P lq {0 T{
v= d f0 { P>
(7.14)
{1 + = = = + {q = p>
{1 > = = = > {q 0=
Por último, queda pendiente la elección del valor P con el que se acota
el beneficio esperado. Con el objetivo de dar una respuesta a esta cuestión,
estudiaremos la resolubilidad del problema (SP ).
(S ) P d{ f0 {
v=d {1 + = = = + {q = p>
{1 > = = = > {q 0>
K1 K2 ··· Kq
k11 k12 ··· k1q
.. .. ..
. . ··· .
km1 km2 ··· kmq
.. .. ..
. . ··· .
kn1 kn2 ··· knq
Concretamente, klm representa el precio medio de la acción de la m-ésima
compañía en el periodo l= A partir de aquí calculamos una matriz de rentabi-
lidades (beneficios) por unidad monetaria invertida en acciones de la m-ésima
compañía en el periodo l, G = (glm )l=2>===>n; m=1>===>q > definida como sigue
klm k(l31)m
glm := > para todo l = 2> ===> n; m = 1> ===> q=
k(l31)m
Finalmente, empleamos esta matriz G para realizar nuestras estimaciones. Así
pues, estimamos H(E1 )> H(E2 )> = = = > H(Eq ) por las medias aritméticas de los
datos contenidos en las columnas de G; esto es, consideramos:
n
X
glm
l=2
b
fm = > sdud m = 1> = = = > q=
n
Del mismo modo, estimamos T por las varianzas y covarianzas muestrales de
b = (b
las columnas de G; así, definimos T tuv ) , u>v=1>===>q
n
X
(glu b
fu )(glv b
fv )
l=2
tbuv = > u> v = 1> = = = > q=
n
Capítulo 7. Aplicaciones de la Programación No Lineal 271
b
(SbP ) P lq {0 T{
v= d f0 { P>
b
(7.15)
{1 + = = = + {q = p>
{1 > = = = > {q 0=
f0 {
(Smin ) P lq b f0 {
(Smax ) P d{ b
v=d {1 + = = = + {q = p> v=d {1 + = = = + {q = p>
{1 > = = = > {q 0> {1 > = = = > {q 0=
end
%beneficio
b=(c’*x’)’;
%gráfico con np puntos
plot(b,r,’r.-’,’LineWidth’,1,’MarkerSize’,5)
xlabel(’Beneficio esperado’);ylabel(’Riesgo’);
title(’Beneficio esperado vs Riesgo’)
Fin función cartera
Figura 7.15: Pantalla que nos muestra los distintos formatos para guardar los
datos.
Una vez guardados todos los ficheros, se ha creado una base de datos (véase
el apéndice A, para una descripción detallada del procedimiento seguido para
crear la base de datos) en la que aparecen por columnas las diferentes variables
K1 > = = = > K10 . Concretamente, el l-ésimo valor de la variable Km que denotaremos
por klm representa el precio medio unitario (diario) de la acción de la empresa
m en el instante (día) l, donde se ha asignado l = 1 al día 02@01@09 e l = 73 al
día 16@04@09=
Ahora, desde MATLAB abrimos la base de datos creada File$Open, abri-
mos directamente el documento Excel. MATLAB nos muestra Import Wizard,
seleccionamos Create vector from each column using column names, Finish.
Por comodidad, creamos una matriz, H, con los valores históricos de las
variables de interés que denotamos por sant (Banco Santander), enag (Ena-
Capítulo 7. Aplicaciones de la Programación No Lineal 275
gas), ende (Endesa), ibe (Iberia), indi (Inditex), mapf (Mapfre), rep (Rep-
sol), sacy (Sacyr Valle), t5 (Telecinco) y telf (Telefónica), e introducimos los
parámetros de entrada en la función cartera. Recordemos que p = 20000 (can-
tidad total a invertir) y hemos elegido qs =10 (esto es, asignaremos 10 valores
del parámetro P que figura en el problema (7.15)).
Así pues, ejecutamos la función cartera con los siguientes datos:
AA H=[sant,enag,ende,ibe,indi,mapf,rep, sacy,t5,telf];
AA [x,b,r,Q,c,Int]=cartera(H,20000,10)
De esta operación, en pantalla se nos muestra el intervalo, Int= [0> 53.7] >
en el que se tomarán los 10 valores del parámetro P de los beneficios esperados
equiespaciados. La matriz Tb de varianzas-covarianzas se encuentra en la figura
7.16 y el vector b
f de beneficios unitarios esperados en la figura 7.17.
Figura 7.18: Gráfico del beneficio frente al riesgo del ejercicio de la cartera.
278 Optimización matemática aplicada
50
y el de los portes (aproximamos el número entero de portes por {|} ):
50
FS = 200 =
{|}
Como restricciones, el enunciado establece que:
Resolución con MATLAB. Las figuras 7.19 y 7.20 muestran las defini-
ciones de la función objetivo y de las restricciones no lineales del problema (7.16)
Capítulo 7. Aplicaciones de la Programación No Lineal 279
AA [x,f,e,o]=fmincon(‘conten’,[1 2 2],[],[],[],[],
[0.5 0.5 0.5],[],‘restvol’)
Se obtiene:
Se obtiene:
Seguidamente escribimos:
AA l.ineqnonlin
Y obtenemos:
ans=
0
6.6391
Atendiendo a la posición en la que hemos introducidos las restricciones (véase
la figura 7.20), el multiplicador de KKT asociado a la restricción ‘{|} 5’ es
282 Optimización matemática aplicada
nulo, por lo que un ligero aumento del miembro derecho, no provocaría cambio
en el valor óptimo (coste) del problema; por su parte, el multiplicador asociado
a ‘{|} 2.5’ es 6.6391 por lo que, en términos informales, si relajamos
ligeramente esta restricción quedando {|} 2.5 % para % suficientemente
pequeño, el objetivo mejoraría (disminuiría) en 6.6391%=
r
r
Aceptamos x como solución (u1 = 2.6 cm> u2 = 3.1 cm> o = 10 m) puesto que
la regla de parada es satisfactoria: e=exitflag=1, lo que indica que se verifican
284 Optimización matemática aplicada
l.ineqnonlin=0.0850,
f=7.1201e+003>
o.firstorderopt: 5.0558e-007,
se tiene que:
° °
° p
X °
° °
° ui ({) + l ujl ({)° 5.0558 × 1037 >
° °
l=1 "
donde i representa la función objetivo y {jl ({) 0> l = 1> ===> p} el sistema de
restricciones del problema (7.18).
Una cuestión de análisis de sensibilidad. ¿Cómo repercute en el coste
una ligera relajación de la restricción relativa al engorde mínimo exigido, esto
es, de la restricción 5.3572P 0.36315 V 0.12994 55.74?
Atendiendo al valor del correspondiente multiplicador de KKT:
l.ineqnonlin=202.7053,
289
290 Optimización matemática aplicada
Por último, guardamos la base de datos; es importante que este libro con-
tenga solo la hoja de la base de datos, para evitar problemas de lectura (a la
hora de importar) desde el MATLAB.
Bibliografía
297
298 Optimización matemática aplicada
299
300 Optimización matemática aplicada
semiespacio abierto, 24
semiespacio cerrado, 24
supremo, 300