Está en la página 1de 302

Optimizacin matemtica aplicada.

Enunciados, ejercicios y aplicaciones del mundo real con MATLAB

Mara Josefa Cnovas, Vctor Huertas, Mara Sempere

Optimizacin matemtica aplicada.


Enunciados, ejercicios y aplicaciones del mundo real con MATLAB.
Mara Josefa Cnovas
Vctor Huertas
Mara Sempere
ISBN: 9788499485447
e-book v.1.0

ISBN edicin en Papel: 978-84-9948-243-9

Edita: Editorial Club Universitario. Telf.: 96 567 61 33


C/. Cottolengo, 25 San Vicente (Alicante)
www.ecu.fm
Maqueta y diseo: Gamma. Telf.: 965 67 19 87
C/. Cottolengo, 25 San Vicente (Alicante)
www.gamma.fm
gamma@gamma.fm

Reservados todos los derechos. Ni la totalidad ni parte de este libro puede reproducirse o
transmitirse por ningn procedimiento electrnico o mecnico, incluyendo fotocopia, grabacin
magntica o cualquier almacenamiento de informacin o siste ma de reproduccin, sin permiso
previo y por escrito de los titulares del Copyright.

ndice general
Introduccin

Esquemas tericos y ejercicios

13

1. Preliminares

15

1.1. Topologa de Rq . . . . . . . . . . . . . . . . . . . . . . . . . . .

15

1.2. Algunos preliminares de anlisis matemtico . . . . . . . . . . . .

19

1.3. Preliminares de lgebra lineal . . . . . . . . . . . . . . . . . . . .

21

1.4. Preliminares de anlisis convexo

23

. . . . . . . . . . . . . . . . . .

2. Optimizacin sin restricciones

35

2.1. Definiciones y primeros ejemplos . . . . . . . . . . . . . . . . . .

35

2.2. Condiciones de optimalidad . . . . . . . . . . . . . . . . . . . . .

39

2.3. Ejercicios resueltos . . . . . . . . . . . . . . . . . . . . . . . . . .

42

2.4. Los casos convexo y cuadrtico . . . . . . . . . . . . . . . . . . .

52

3. Optimizacin con restricciones

57

3.1. Notacin y definiciones . . . . . . . . . . . . . . . . . . . . . . . .

58

3.2. Las condiciones de Karush, Kuhn y Tucker . . . . . . . . . . . .

61

3.2.1. Hiptesis de cualificacin de restricciones . . . . . . . . .

64

3.2.2. Condicin de optimalidad de primer orden . . . . . . . . .

66

3.3. Condiciones de optimalidad de segundo orden . . . . . . . . . . .

67

3.4. Interpretacin de los multiplicadores de KKT . . . . . . . . . . .

76

3.5. Optimalidad global . . . . . . . . . . . . . . . . . . . . . . . . . .

78

II

Optimizacin matemtica aplicada


3.5.1. Aplicacin del Teorema de Weierstrass . . . . . . . . . . .

78

3.5.2. El caso convexo . . . . . . . . . . . . . . . . . . . . . . . .

80

3.5.3. El caso cuadrtico . . . . . . . . . . . . . . . . . . . . . .

83

3.6. Esquema de resultados y ejercicios resueltos . . . . . . . . . . . .

87

Prcticas de optimizacin con MATLAB

103

4. Prcticas de optimizacin sin restricciones


4.1. Clculo matricial y grficos con MATLAB (prctica 1)

105
. . . . . 106

4.1.1. Clculos directos y variables . . . . . . . . . . . . . . . . . 107


4.1.2. Vectores y matrices . . . . . . . . . . . . . . . . . . . . . . 110
4.1.3. Cmo pedir ayuda . . . . . . . . . . . . . . . . . . . . . . 113
4.1.4. Grficos en 2 y 3 dimensiones . . . . . . . . . . . . . . . . 118
4.1.5. Ejercicios propuestos . . . . . . . . . . . . . . . . . . . . . 122
4.2. Optimizacin sin restricciones con la herramienta de matemtica
simblica (prctica 2) . . . . . . . . . . . . . . . . . . . . . . . . 123
4.2.1. Optimizacin de funciones de una variable . . . . . . . . . 124
4.2.2. Optimizacin de funciones de varias variables . . . . . . . 128
4.2.3. Ejercicios propuestos . . . . . . . . . . . . . . . . . . . . . 132
4.3. Funciones bsicas de optimizacin sin restricciones (prctica 3) . 133
4.3.1. Optimizacin cuadrtica sin restricciones con ayuda de
quadprog . . . . . . . . . . . . . . . . . . . . . . . . . . 133
4.3.2. Optimizacin no lineal sin restricciones con ayuda de fminunc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
4.3.3. Ejercicios propuestos . . . . . . . . . . . . . . . . . . . . . 145
5. Prcticas de optimizacin con restricciones

147

5.1. Optimizacin lineal y cuadrtica con linprog y quadprog (prctica 4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148


5.1.1. Sintaxis de la funcin linprog . . . . . . . . . . . . . . . 148
5.1.2. Sintaxis de la funcin quadprog . . . . . . . . . . . . . . 153
5.2. Optimizacin no lineal con fmincon (prctica 5) . . . . . . . . . 158
5.2.1. Definicin de las restricciones en un M-archivo . . . . . . 159

ndice general

5.2.2. Definicin de la funcin objetivo en un M-archivo . . . . . 161


5.2.3. Algunos parmetros y mensajes de parada . . . . . . . . . 161
5.2.4. Ejercicios propuestos . . . . . . . . . . . . . . . . . . . . . 168

III

Aplicaciones

6. Aplicaciones de la Programacin Lineal

171
173

6.1. Introduccin: resultados bsicos de Programacin Lineal y primeros


ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
6.1.1. Un modelo bsico del consumidor . . . . . . . . . . . . . . 175
6.1.2. Resolubilidad con conjunto factible no acotado . . . . . . 178
6.1.3. Un problema de transporte . . . . . . . . . . . . . . . . . 181
6.2. Regresin lineal: Modelos MINMAD y MINMAXAD . . . . . . . 183
6.2.1. Planteamiento del modelo . . . . . . . . . . . . . . . . . . 183
6.2.2. Resolucin con MATLAB . . . . . . . . . . . . . . . . . . 191
6.2.3. Ejercicios resueltos . . . . . . . . . . . . . . . . . . . . . . 198
6.2.4. Ejercicios propuestos . . . . . . . . . . . . . . . . . . . . . 205
6.3. Aplicacin al clculo de la eficiencia. . . . . . . . . . . . . . . . . 208
6.3.1. Resolucin con MATLAB . . . . . . . . . . . . . . . . . . 217
6.3.2. Ejercicios resueltos . . . . . . . . . . . . . . . . . . . . . . 219
6.3.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
7. Aplicaciones de la Programacin No Lineal

233

7.1. Localizacin de una antena WIFI . . . . . . . . . . . . . . . . . . 233


7.1.1. Resolucin con MATLAB . . . . . . . . . . . . . . . . . . 239
7.2. Ubicacin de una antena de telefona mvil . . . . . . . . . . . . 240
7.2.1. Ejercicio propuesto: Instalacin de una plataforma de salvamento martimo . . . . . . . . . . . . . . . . . . . . . . 242
7.3. Ajuste por mnimos cuadrados . . . . . . . . . . . . . . . . . . . 243
7.3.1. Ajuste a modelos lineales sin restricciones . . . . . . . . . 243
7.3.2. Ajuste a modelos lineales con restricciones: un problema
de reacciones qumicas . . . . . . . . . . . . . . . . . . . . 246
7.3.3. Resolucin con MATLAB . . . . . . . . . . . . . . . . . . 247

Optimizacin matemtica aplicada


7.3.4. Ejercicio propuesto: Un modelo explicativo del precio de
la vivienda . . . . . . . . . . . . . . . . . . . . . . . . . . 249
7.3.5. Ajuste a modelos no lineales: Un modelo de produccin
basado en la funcin de produccin de Cobb-Douglas . . . 251
7.4. Distancia de un punto a un poliedro . . . . . . . . . . . . . . . . 254
7.4.1. Ilustracin: El problema de la gra . . . . . . . . . . . . . 254
7.4.2. Planteamiento general . . . . . . . . . . . . . . . . . . . . 256
7.4.3. Resolucin con MATLAB . . . . . . . . . . . . . . . . . . 257
7.4.4. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
7.5. Distancia entre dos poliedros . . . . . . . . . . . . . . . . . . . . 261
7.5.1. Ilustracin: Construccin de una zanja para conectar dos
recintos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
7.5.2. Planteamiento general . . . . . . . . . . . . . . . . . . . . 262
7.5.3. Resolucin con MATLAB . . . . . . . . . . . . . . . . . . 263
7.5.4. Ejercicio propuesto: Construccin de un paso elevado . . . 265
7.6. Problema de la cartera ptima . . . . . . . . . . . . . . . . . . . 266
7.6.1. Ilustracin: Un problema de inversin en diferentes empresas del IBEX35 . . . . . . . . . . . . . . . . . . . . . . 266
7.6.2. Planteamiento general . . . . . . . . . . . . . . . . . . . . 267
7.6.3. Resolucin con MATLAB . . . . . . . . . . . . . . . . . . 270
7.7. Dos modelos sencillos de diseo industrial . . . . . . . . . . . . . 278
7.7.1. Diseo de un contenedor para transportar arena . . . . . 278
7.7.2. Construccin de una tubera . . . . . . . . . . . . . . . . 282
7.8. Un problema de engorde del ganado vacuno . . . . . . . . . . . . 284

A. Creacin de una base de datos con Excel

289

Bibliografa

295

Smbolos y abreviaturas

297

ndice alfabtico

299

Introduccin
El presente libro versa principalmente sobre el planteamiento y la resolucin
(analtica y con ayuda del programa informtico MATLAB1 ) de problemas de
optimizacin no lineal, con diferentes incursiones en la optimizacin lineal. As
pues, el objetivo fundamental del libro es proporcionar herramientas analticas
y computaciones para la bsqueda de mximos o mnimos de una determinada
funcin objetivo dentro del conjunto de soluciones factibles, el llamado conjunto factible, definido como el conjunto de soluciones de un cierto sistema de
ecuaciones e inecuaciones llamadas restricciones del problema (vase (3.1) para
una formulacin matemtica del modelo). Se considera tambin, en una primera
etapa, el caso de problemas de optimizacin sin restricciones (vase (2.1) para
un planteamiento formal). Cuando tanto la funcin objetivo como el sistema
de restricciones son lineales, estamos ante un problema de Programacin Lineal
(PL para abreviar); en otro caso, en el que alguna de las mencionadas funciones
es no lineal, nos encontramos ante un problema de Programacin No Lineal (que
abreviamos por PNL).
Trabajaremos en el contexto de problemas con una cantidad finita de variables de decisin (cada una de ellas tomando valores en el conjunto de los
nmeros reales) y una cantidad finita de restricciones. Ambas, PL y PNL, son
ramas de la Programacin Matemtica (PM), la cual se ocupa del estudio terico
y prctico de problemas de optimizacin generales, incluyendo tambin la Programacin Entera, Programacin Multiobjetivo, Programacin Semi-Infinita e
Infita, etc. En lo que sigue emplearemos indistintamente los trminos progra1

MATLAB es marca registrada de The MathWorks, Inc.

(vase www.mathworks.com/trademarks)

Optimizacin matemtica aplicada

macin y optimizacin; as por ejemplo, PNL y optimizacin no lineal sern


empleados como sinnimos.
A efectos de la teora, por simplicidad en los resultados, el problema de
optimizacin siempre ser considerado en el formato de minimizar con restricciones expresadas en trminos de desigualdades en el sentido de . Ntese
que no es restrictivo adoptar siempre este formato, pues todo problema escrito
en trminos de maximizar es equivalente al de minimizar el opuesto de la funcin objetivo original. Adems, obviamente toda restriccin del tipo  puede
escribirse en el formato de  sin ms que multiplicar ambos miembros de la
desigualdad por 1 y toda igualdad = puede expresarse en trminos de dos
desigualdades.

Breves notas histricas. Es bien sabido que el teorema de las condiciones


de Karush, Kuhn y Tucker (vase la seccin 3.2) constituye un pilar bsico en la
teora y los mtodos de la PNL, y que ste se verifica bajo una amplia coleccin
de hiptesis, llamadas hiptesis de cualificacin de restricciones; de hecho, la
bsqueda de nuevas hiptesis de cualificacin de restricciones constituye actualmente una lnea activa de investigacin.
Conceptualmente, el antecedente directo a las condiciones de Karush, Kuhn
y Tucker (KKT por brevedad) lo encontramos en el llamado mtodo de los multiplicadores de Lagrange, publicado por este autor en 1788, en su libro Mcanique
Analytique. El mtodo de los multiplicadores de Lagrange se aplica a problemas
de optimizacin con restricciones de igualdad, mientras que las condiciones de
KKT se establecen para problemas de optimizacin con desigualdades. A pesar
de que, en primera instancia, puede parecer que el salto conceptual de problemas
con igualdades a problemas con desigualdades no es muy grande, la teora de
las condiciones de KKT no aparece hasta mediados del siglo XX. Seguidamente
se indican algunas fechas clave en el desarrollo de la PNL.
El caso de problemas de PNL con restricciones de desigualdad fue ya considerado por Fourier en 1798, tambin en el contexto de la Mecnica Analtica,
aportando algunas ideas fundamentales acerca de condiciones necesarias de optimalidad para cierto problema de equilibrio mecnico. Estas condiciones, para di-

Introduccin

cho problema especfico, fueron demostradas por Farkas en 18982 . Vase Prkopa
[22] para mayor detalle sobre los comienzos de la teora de la optimizacin tal y
como la conocemos hoy en da.
El tratamiento sistemtico de problemas de PNL con restricciones de desigualdad fue iniciado por Karush en 1939, y Kuhn y Tucker en 1951. Estos
autores obtuvieron de forma independiente las condiciones necesarias de optimalidad (local), referidas en prrafos anteriores como condiciones de KKT.
Desde la publicacin de Kuhn y Tucker [15], diferentes autores han dedicado
un notable esfuerzo a la obtencin de las condiciones de KKT bajo diferentes
hiptesis de cualificacin de restricciones. Un excelente trabajo de recopilacin
de casi una veintena de estas cualificaciones de restricciones y las relaciones
existentes entre ellas lo encontramos en Peterson [20]. Citaremos, por ejemplo,
las hiptesis de cualificacin de restricciones de Slater, Mangasarian, Cottle,
Mangasarian-Fromovitz, Kuhn-Tucker, Arrow-Hurwicz-Uzawa, Abadie y Guignard.
Resumen de contenidos. El libro est estructurado en tres partes bien
diferenciadas y precisamente la composicin de contenidos de estas tres partes
es la principal caracterstica que diferencia a sta de otras obras que podemos
encontrar en la literatura sobre optimizacin matemtica. La seleccin de contenidos del libro est inspirada en la vertiente prctica de las asignaturas de Programacin No Lineal y Modelos de Optimizacin (con un total de 7,5 crditos
tericos y 6 crditos prcticos), impartidas en la Universidad Miguel Hernndez
de Elche (UMH) por M.J. Cnovas, coautora de la presente obra.
La parte I recoge los enunciados fundamentales de la teora de la PNL ilustrados con diferentes ejemplos y ejercicios resueltos. Los autores han prestado especial atencin a los aspectos didcticos y al rigor matemtico a la hora de
introducir los diferentes conceptos y resultados, as como a la completitud de
los mismos. Concretamente, se enuncian las condiciones de KKT bajo determinadas hiptesis de cualificacin de restricciones. Este libro incluye tres de estas
hiptesis, seleccionadas por criterios didcticos y de utilidad prctica. Tambin
2

Aunque la prueba de este resultado se encuentra en un trabajo de este autor publicado en

hngaro en 1898, la referencia ms extendida es Farkas [8].

10

Optimizacin matemtica aplicada

se enuncian las condiciones de optimalidad local de segundo orden, un teorema


sobre la interpretacin de los llamados multiplicadores de KKT y diferentes resultados sobre la optimalidad global. Adems de los contenidos propios sobre
PNL, por motivos de completitud, la obra incorpora un captulo de preliminares
donde se recogen las herramientas bsicas necesarias provenientes del anlisis
matemtico, del lgebra lineal y del anlisis convexo.
La parte II presenta las instrucciones bsicas del manejo de MATLAB relativas a la resolucin de problemas de PL y PNL. Los contenidos de esta parte,
agrupados en dos captulos, estn pensados para ser impartidos en diferentes
sesiones de prcticas con ordenador (en un total de 5 sesiones como se indica en las secciones correspondientes) con una duracin total aproximada de 10
horas. Concretamente, esta parte presenta las instrucciones bsicas para la representacin grfica de funciones en 2 y 3 dimensiones, el clculo diferencial y
resolucin de sistemas de ecuaciones en el formato de la matemtica simblica, y las funciones implementadas en MATLAB que resuelven problemas de
optimizacin con y sin restricciones.
En relacin con estas dos primeras partes, los autores han optado por incluir
los enunciados tericos de optimizacin clsica sin demostracin, y la descripcin
a nivel de usuario de las instrucciones bsicas de MATLAB, sin entrar en los
detalles tcnicos de los algoritmos empleados, con el fin de dar cabida a la tercera
parte del libro.
La parte III recoge diferentes aplicaciones de la PL y la PNL expuestas con
detalle. La mayor parte de estas aplicaciones incluyen motivaciones y justificaciones tericas expuestas con rigor, as como un tratamiento sistemtico de
su resolucin con la correspondiente implementacin en el lenguaje de programacin de MATLAB.
La conjuncin en esta obra de las tres partes que la componen la hacen,
hasta donde hemos podido comprobar, diferente de las diversas opciones que
encontramos en la literatura.
Finalidad y ubicacin de la obra en la literatura existente. En los
ltimos aos, paralelamente al desarrollo de los ordenadores, el estudio de la
optimizacin ha experimentado un notable auge. De hecho, esta materia se va

Introduccin

11

incorporando, cada vez ms, a las titulaciones tanto de naturaleza terica, como
los grados en matemticas, como las de corte ms aplicado.
El manuscrito surge con una doble finalidad. Por un lado, pretende servir
de bibliografa bsica en asignaturas de optimizacin aplicada, impartidas en
diferentes ingenieras, en grados y postgrados de economa, estadstica, 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 optimizacin terica y aplicada (por ejemplo, en carreras de matemticas).
Al mismo tiempo, los contenidos del manuscrito pretenden ser objeto de consulta
de profesionales de diferentes campos relacionados con la logstica y la toma de
decisiones.
Como se ha comentado anteriormente, hasta donde los autores han podido comprobar, no existe en la literatura otro libro de caractersticas similares.
Se enuncian con todo rigor los conceptos y resultados tericos esenciales de
PNL, se muestran a nivel instrumental las herramientas computaciones que
ofrece el MATLAB para la resolucin de problemas de PL y PNL, y se aplican estos conocimientos al desarrollo terico y la resolucin, con alto grado de
generalidad, de una seleccin de aplicaciones (en ocasiones empleando grandes
bases de datos y programas especficos elaborados por los autores en el lenguaje
del MATLAB). Con todo, la referencia ms cercana a la temtica del presente
libro es Venkataraman [27].
Pueden encontrarse en la literatura excelentes monografas donde se exponen
la teora y los mtodos 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].
Tambin encontramos textos de teora y/o ejercicios dedicados al estudio de
las condiciones de optimalidad y que se caracterizan por su precisin y rigor
matemtico, como son Barbolla et l. [2] y [3], Daz et l. [7] y Novo [17].
Por otro lado, existen textos de carcter general sobre los modelos y mtodos
de la Investigacin Operativa, que dedican alguno de sus temas a dar una breve
introduccin a la PNL, de entre los que podemos citar Hillier y Lieberman [13],
Prawda [21], Taha [26] y Winston [28].

12

Optimizacin matemtica aplicada


Finalmente, comentamos que tambin existen manuales sobre MATLAB con

aplicaciones a diferentes campos, y que dedican algn captulo a la resolucin


de problemas de optimizacin. Citamos, por ejemplo, Prez [19].
El programa MATLAB en la enseanza de la PNL. Desde el punto de vista didctico, MATLAB presenta diferentes virtudes: adems de incluir
una herramienta especifica de optimizacin (optimization toolbox ), permite representar las grficas y curvas de nivel de funciones de una o dos variables, lo
que ayuda a desarrollar la intuicin del alumno en relacin con los conceptos de
ptimo local y global. Adems, contiene herramientas de matemtica simblica
que permiten ilustrar los resultados tericos sobre condiciones de optimalidad
mediante la resolucin de ejercicios, tal y como se hara de forma analtica con
lpiz y papel. Adems, MATLAB permite desarrollar nuevos programas, por
ejemplo, para sistematizar la bsqueda de soluciones ptimas en determinadas
situaciones reales (tal y como se hace en la parte III del libro). Tambin, permite
implementar algoritmos de optimizacin, aunque ste no es uno de los objetivos
del libro. Finalmente, es destacable la presencia del MATLAB en el mbito universitario, puesto que presenta numerosas utilidades, no solo para matemticos,
sino tambin para ingenieros, qumicos, informticos, etc.
Agradecimientos. Los autores agradecen al profesor Jos Mara Amig, en
calidad de director del Departamento de Estadstica, Matemticas e Informtica
de la Universidad Miguel Hernndez de Elche, el apoyo prestado durante la
elaboracin de este libro, formalizado a travs del contrato de prcticas internas
de Mara Sempere bajo la tutela de Mara Josefa Cnovas. Por otro lado, los
autores manifiestan su agradecimiento al profesor Juan Parra por su inestimable
ayuda en el proceso de revisin de la obra, tanto por su minuciosa correccin de
los contenidos matemticos como por sus comentarios y sugerencias sobre los
aspectos didcticos. Asimismo, los autores desean agradecer la supervisin y los
consejos del profesor Marco A. Lpez en relacin con el enfoque y la seleccin
de contenidos del libro. Finalmente, los autores agradecen a Pascual Bonmat
su ayuda y confianza depositadas en este proyecto.

Parte I

Esquemas tericos y ejercicios

Captulo 1

Preliminares
1.1.

Topologa de Rq
(q)

En lo que sigue

Rq

z }| {
representa al producto cartesiano R R> siendo

R = ]4> +4[ el conjunto de los nmeros de reales. Las diferentes coordenadas


de { 5 Rq > cuando sea q A 1> se distinguirn mediante subndices; as escribiremos { = ({l )l=1>===>q = En general, los superndices se emplearn para distinguir

diferentes elementos de Rq > as, por ejemplo, {1 = {1l l=1>===>q = Por defecto entenderemos 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 funcin 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


{ + | = ({l + |l )l=1>===>q > { = ({l )l=1>===>q > con {> | 5 Rq >  5 R=
Definicin 1.1 Una norma definida en Rq es una aplicacin kk : Rq $
[0> +4[ que verifica las propiedades:
(i) k{k = 0 si, y solo si, { = 0;

(ii) k{k = || k{k > para todo  5 R y todo { 5 Rq ;

(iii) k{ + |k  k{k + k|k > para cualesquiera {> | 5 Rq =


15

16

Optimizacin matemtica aplicada

Definicin 1.2 Una distancia definida en Rq es una aplicacin g : Rq Rq $

[0> +4[ que verifica las propiedades:

(i) g ({> |) = 0 si, y solo si, { = |;


(ii) g ({> |) = g (|> {) > para cualesquiera {> | 5 Rq =
(iii) g ({> })  g ({> |) + g (|> }) > para cualesquiera {> |> } 5 Rq =
Observacin 1.1 Cualquier norma en Rq , kk > permite definir una distancia
dada por

g ({> |) = k{  |k =
Ejemplo 1.1 (p-normas) Un caso particular de norma es la llamada s-norma,
kks > para s 5 ]1> +4[ > definida por
k{ks =

q
X
l=1

!1

({l )s

> { 5 Rq =

Un caso especialmente importante es el de la norma kk2 > tambin llamada


norma eucldea. Es la norma usual de Rq para medir distancias en lnea recta:
v
u q
uX
2
({l  |l )2 > para cualesquiera {> | 5 Rq =
g2 ({> |) = k{  |k2 = t
l=1

El producto escalar usual entre dos vectores de Rq guarda la siguiente relacin


con las normas eucldeas de ambos1 :
q
X
0
{|=
{l |l  k{k2 k|k2

(1.1)

l=1

Ejemplo 1.2 (Normas kk1 y kk" ) Otras normas de inters en casos prcticos son las definidas de la siguiente forma

k{k1 := |{1 | + |{2 | + === + |{q | y k{k" := max {|{l | : l = 1> 2> ===> q} > { 5 Rq >
donde max representa el mximo. Dichas normas inducen las correspondientes
distancias
g1 ({> |) :=

q
X
l=1

|{l  |l | y g" ({> |) := max {|{l  |l | : l = 1> 2> ===> q} > {> | 5 Rq =

En general, |{0 || $ k{ks k|kt (desigualdad de Hlder) siendo s> t A 1 tales que 1@s+1@t =

1> siendo s = t = 2 un caso particular.

Captulo 1. Preliminares

17

En lo que sigue 0q denotar al vector de Rq que tiene todas sus coordenadas


nulas.
Definicin 1.3 (Bolas) Dada una norma kk : Rq $ [0> +4[, y dados { 5 Rq

y  A 0> la bola abierta centrada en { y de radio  (asociada a la norma kk)

es el subconjunto de Rq dado por

E ({> ) = {| 5 Rq | g ({> |) = k{  |k ? } =
La bola unidad abierta E (0q > 1) asociada a una norma genrica kk se representar simplemente por E= La bola unidad abierta asociada la norma kk1

(respectivamente> kk2 y kk" ) se representa por E1 (respectivamente E2 y E" );


vase una ilustracin en la figura 1.1.

B
xn


B
Bf

Figura 1.1: Bolas asociadas a las normas kk1 > kk2 y kk" .
Definicin 1.4 (Entornos y abiertos) Dada una norma kk y dado { 5 Rq >
llamamos entorno de { a un subconjunto X  Rq tal que
E ({> )  X> para algn  A 0=
Un abierto en Rq ser un subconjunto D  Rq que tiene la propiedad de ser
entorno de todos sus puntos. En otras palabras, D  Rq es abierto si para
cualquier { 5 D existe  A 0 tal que E ({> )  D=
Teorema 1.1 Todas las normas de Rq definen la misma topologa (la misma
familia de abiertos).
Definicin 1.5 (Cerrado) Un subconjunto F  Rq es cerrado si su complementario, Rq \F> es abierto.

18

Optimizacin matemtica aplicada

Definicin 1.6 (Punto interior y frontera) Dados { 5 Rq > [  Rq se dice


que:
(i) El punto { es interior a [ si existe algn  A 0 tal que E ({> )  [;
(ii) El punto { est en la frontera de [ si para cualquier  A 0 se tiene que
E ({> ) _ [ 6= B y E ({> ) _ (Rq \[) 6= B=
El conjunto de todos los puntos interiores a [ se representa por int ([) y el de
los puntos de la frontera por bd ([) (del ingls, boundary). La clausura de un
conjunto [  Rq es la unin de su interior y su frontera:
cl ([) = int ([) ^ bd ([) =
Definicin 1.7 (Acotado) Un subconjunto [  Rq se dice acotado si existe
alguna constante P A 0 tal que
[  E (0q > P ) =
Definicin 1.8 Un subconjunto [  Rq es compacto2 si es cerrado y acotado.
Definicin 1.9 (Funcin continua) Una funcin k : Rq $ Rp es continua
si para cualquier abierto D  Rp se tiene que
k31 (D) := {{ 5 Rq | k ({) 5 D} es abierto.
La definicin anterior puede enunciarse tambin en trminos de conjuntos
cerrados: k : Rq $ Rp es continua si para cualquier cerrado F  Rp se tiene
que k31 (F) es tambin cerrado.
Ejemplo 1.3 (Cerrados como solucin de sistemas) En la formulacin de
problema de PNL con restricciones se considerarn conjuntos descritos de la
siguiente manera
I := {{ 5 Rq | jl ({)  0> l = 1> 2> ===> p} >
2

Por motivos didcticos, se introducen los compactos como los conjuntos cerrados y acota-

dos. Es bien sabido que la compacidad suele definirse en trminos ms generales, y la propiedad
de ser cerrado y acotado es una caracterizacin de la compacidad en Rq = El hecho de ser una
caracterizacin nos permite adoptarla como definicin alternativa.

Captulo 1. Preliminares

19

donde, para todo l> jl : Rq $ R es una funcin continua= Veamos que I es un


cerrado. Si consideramos la funcin
j = (j1 > ===> jp ) : Rq $ Rp >
ntese que otra forma de expresar I es como sigue:
I := j 31 (]4> 0]p ) = {{ 5 Rq | jl ({) 5 ]4> 0] > l = 1> ===> p} =
Puesto que ]4> 0]p  Rp es cerrado, tenemos que I es cerrado.

1.2.

Algunos preliminares de anlisis matemtico

Dada una funcin i : D  Rq $ R> siendo D abierto, y dado { 5 D> como es


habitual,

Ci
C{l

({) y

C2i
C{l C{m

({) representan, respectivamente, la derivada parcial

de i con respecto a {l en el punto { y la derivada parcial segunda de i con


respecto a {l y {m en {= Recordemos que i es de clase F 1 en D> lo que se escribe
como i 5 F 1 (D) > si todas las derivadas parciales de i son continuas en D> y
i es de clase F 2 en D> i 5 F 2 (D) > si todas las derivadas parciales segundas
son continuas en D= Siguiendo con las derivadas parciales de orden superior, en
general, i 5 F s (D) representa el hecho de que existan las derivadas parciales de
orden s 5 N de i y sean continuas en D= Para indicar que existen las derivadas
parciales de cualquier orden y son continuas en D> se escribe i 5 F " (D) =
El vector gradiente de i en { 5 Rq >

Ci
ui ({) =
({)
C{l
l=1>===>q
ser expresado como vector columna. La matriz hessiana de i en { 5 Rq > ser
denotada por Ki ({) > esto es,
Ki ({) =

C2i
({)
C{l C{m
l>m=1>===>q=

Las siguientes proposiciones enuncian resultados bien conocidos de anlisis de


varias variables.
Proposicin 1.1 (Simetra de la matriz hessiana) Sean i : D  Rq $ R>
y { 5 D> siendo D abierto, y supongamos que i 5 F 2 (D) = Entonces Ki ({) es
simtrica.

20

Optimizacin matemtica aplicada

Proposicin 1.2 (Propiedades de las funciones de clase F s ) Sea s 5 N^


{4}= Se tienen las siguientes propiedades:

(i) (Suma y producto) Si j> k 5 F s (D) > entonces j + k 5 F s (D) y jk 5

F s (D) ;
(ii) (Cociente) Si j> k 5 F s (D) > y D  {{ 5 Rq | k ({) 6= 0} entonces

j
k

F s (D) ;

(iii) (Producto por escalar) Si j 5 F s (D) > entonces j 5 F s (D) > siendo
 5 R;
(iv) (Composicin) Sean j  (j1 > j2 > ===> jp ) : Rq $ Rp y k : Rp $ R tales
que jl 5 F s (D) para todo l = 1> ===> p 5 N> y k es tambin de clase F s en algn
abierto Y verificando Im j  Y  Rp ; entonces k  j 5 F s (D) = Adems, si
i = k  j : Rq $ R y { 5 D> se tiene:
p

X Ck
Cjm
Ci
({) =
(j ({))
({) = (Regla de la cadena).
C{l
C|m
C{l
m=1

Ejemplo 1.4 Ejemplos de funciones de clase F 2 en R (de hecho de clase F " )


son:
(i) i : R $ R dada por i ({) = d0 + d1 { + === + dn {n > con d0 > d1 > ===> dn 5 R
(funciones polinmicas);
(ii) i : R $ R dada por i ({) = sen { (tambin i ({) = cos {);
(iii) i : R $ R dada por i ({) = h{ .
Ejemplo 1.5 Un ejemplo de funcin de clase F 2 en R \ {0} es i : R $ R dada
s
por i ({) = 3 { (y, de hecho cualquier raz de ndice impar)=
Ejemplo 1.6 Ejemplos de funciones de clase F 2 en ]0> +4[ son la funciones
s
logaritmo (i ({) = log {) y raz cuadrada (i ({) = {)=
Ejemplo 1.7 Las funciones dadas a travs de un cociente de polinomios, i ({) =
d0 +d1 {+===+dn {n
e0 +e1 {+===+en {n

con dn 6= 0> en 6= 0> n 5 N> son de clase F 2 sobre el abier

to D = R\ { 5 R |e0 + e1 { + === + en {n = 0 (ntese que D es abierto, pues el

conjunto de races reales del denominador es finito, de hecho, a lo sumo tiene n


races).

Captulo 1. Preliminares

21

Ejemplo 1.8 A partir de los ejemplos anteriores, aplicando las propiedades


de clculo de las funciones de clase F s > puede comprobarse fcilmente que las
siguientes funciones son de clase F 2 (de hecho F " ) en Rq (q se precisa en cada
caso):
(i) i : R2 $ R> i ({) = sen {1 sen {2 ;
(ii) i :

Rq

$ R dada por i ({) =

q
X

dlm {l {m > con dlm 5 R para todo

l>m=1

l> m = 1> ===> q;


3

(iii) i : R2 $ R> i ({) = {42 h{1 +sen {1 sen {2 ;


q

(iv) i : R2 $ R> i ({) = 3 1 + {21 + 3 log {21 + {22 + 1 =

1.3.

Preliminares de lgebra lineal

Como veremos a continuacin, un detalle clave en la verificacin de las condiciones de optimalidad de segundo orden es la clasificacin de la matriz Ki ({) >
que en nuestro caso siempre ser simtrica (pues supondremos i 5 F 2 (D) > con
{ 5 D  Rq > siendo D abierto).
Definicin 1.10 (Clasificacin de matrices y formas cuadrticas) Sea
P = (plm )ql>m=1 una matriz simtrica de orden q con plm 5 R para todo l> m =
1> ===> q y sea t : Rq $ R su forma cuadrtica asociada, esto es,
q
X
X
t ({) = { P { =
pll {2l +
2plm {l {m > { 5 Rq =
0

l=1

l?m

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 algn | 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 algn | 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

Optimizacin matemtica aplicada

Observacin 1.2 Ntese que los casos (iii) y (iv) no son excluyentes en el sentido de que la matriz nula (con todos sus coeficientes cero) es tanto semidefinida
positiva como semidefinida negativa.
La siguiente proposicin caracteriza cada una de las situaciones de la definicin anterior en trminos de los valores propios de P= En este momento, recordemos un resultado importante de lgebra lineal que establece que toda matriz
simtrica de orden q con coeficientes en R es diagonalizable, esto es, existen una
matriz diagonal G una matriz invertible S tales que S 31 P S = G; los elementos diagonales de la matriz G son los valores propios de P= En particular, si
P es simtrica, siempre existen q valores propios reales (con posibles repeticiones). Recordemos tambin que los valores propios de P coinciden con las
races del polinomio caracterstico s () := det (P  L) > donde L representa
a la matriz identidad de orden q> det (P  L) denota al determinante de la
matriz caracterstica P  L> con  5 R=
Proposicin 1.3 (Criterio de los valores propios) Sea P una matriz simtrica 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 algn
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 algn
l = 0;
(v) P es indefinida si existen l A 0 y m ? 0=
Proposicin 1.4 (Menores y elementos diagonales) Sea P = (plm )ql>m=1
una matriz simtrica de ordenq con coeficientes
reales y sean P1 > P2 > ===> Pq los

menores dados por Pn := det (plm )nl>m=1 ). Se tienen los siguientes enunciados:
(i) P es definida positiva si, y solo si, P1 > P2 > ===> Pq A 0;

(ii) P es definida negativa si, y solo si, sign (Pl ) = (1)l > donde sign ()
representa el signo del nmero real > esto es, sign () = 1 si  A 0> sign () =
1 si  ? 0 y sign (0) = 0;

Captulo 1. Preliminares

23

(iii) Si P1 > P2 > ===> Pq31 A 0 y Pq = 0> entonces P es semidefinida positiva;


(iv) Si P es definida positiva, entonces sus elementos diagonales pll A 0
para todo l;
(v) Si P es semidefinida positiva, entonces sus elementos diagonales pll  0
para todo l> y adems det (P ) = 0=
Observacin 1.3 Ntese que el criterio de los signos de los menores principales permite caracterizar los casos de matrices definidas positivas y definidas
negativas, sin embargo, en el caso de semidefinida positiva solo se tiene una
condicin suficiente. Por otra parte, destacamos las condiciones (iv) y (v) que
proporcionan condiciones necesarias (que no son suficientes) operativas desde el
punto de vista prctico.
El caso de matrices de orden 2 es especialmente simple, y con el valor del
determinante y de la traza (suma de los elementos de la diagonal principal)
pueden caracterizarse todas las situaciones como se especifica en el siguiente
resultado.
Proposicin 1.5 (El caso de matrices 2 2) Sea P simtrica de orden 2 y

sea wu (P ) su traza. Se tiene:

(i) P es definida positiva si, y solo si, det (P ) A 0 y wu (P ) A 0;


(ii) P es semidefinida positiva si, y solo si, det (P ) = 0 y wu (P )  0;
(iii) P es definida negativa si, y solo si, det (P ) A 0 y wu (P ) ? 0;
(iv) P es semidefinida negativa si, y solo si, det (P ) = 0 y wu (P )  0;
(v) P es indefinida si, y solo si, det (P ) ? 0=

1.4.

Preliminares de anlisis convexo

Definicin 1.11 Un subconjunto [  Rq es convexo si para cualesquiera puntos {> | 5 [ y cualquier  5 [0> 1] se tiene que
{ + (1  ) | 5 [=
Vase la figura 1.2 para una ilustracin de la definicin de conjunto convexo
y su negacin.

24

Optimizacin matemtica aplicada

Dx D \
&RQYH[R

1RFRQYH[R

Figura 1.2: Ilustracin de un conjunto convexo y otro no convexo.

Ejercicio 1.1 (Hiperplanos y semiespacios) Demostrar los siguientes enunciados:


(i) (Hiperplanos) Sea 0q 6= d 5 Rq y e 5 R= El hiperplano asociado,

es convexo.

K = { 5 Rq | d0 { = d1 {1 + d2 {2 + === + dq {q = e >

(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 >

son conjuntos convexos.

Solucin. (i) Sean {> | 5 K> esto es, d0 { = d0 | = e; y sea  5 [0> 1] = Se


tiene:
d0 ({ + (1  ) |) = d0 { + (1  ) d0 | = e + (1  ) e = e>
luego {+(1  ) | 5 K (pues verifica la ecuacin lineal que define al hiperplano
K)=
(ii) Veamos que Vd es convexo. Sean {> | 5 Vd > esto es, d0 { ? e y d0 | ? e; y
sea  5 [0> 1] > en otras palabras   0 y (1  )  0 y al menos uno de ellos es
positivo= Entonces
d0 ({ + (1  ) |) = d0 { + (1  ) d0 | ? e + (1  ) e = e>

Captulo 1. Preliminares

25

luego { + (1  ) | 5 Vd = Ntese que se ha aplicado el hecho de que   0 y


(1  )  0 para conservar el sentido de la desigualdad  y el que al menos uno
sea positivo para garantizar que al menos una de las desigualdades es estricta.
La prueba de que Vf es convexo es anloga a la anterior (de hecho ms
sencilla) reemplazando ? por .
Ejercicio 1.2 Demostrar que el crculo, dado por

es un conjunto convexo.

F = { 5 R2 | {21 + {22  1 ,

Solucin. Sean {> | 5 F; esto es


{21 + {22  1 e |12 + |22  1=
Sea  5 [0> 1] = Veamos que
{ + (1  ) | = ({1 + (1  ) |1 > {2 + (1  ) |2 ) 5 F;
esto es, que
({1 + (1  ) |1 )2 + ({2 + (1  ) |2 )2  1=
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

 2 + (1  )2 + 2 (1  ) = ( + (1  ))2 = 1>

donde la primera y la ltima de las desigualdades se obtienen como aplicacin


directa de la hiptesis y la segunda desigualdad viene de (1.1). As pues, { +
(1  ) | 5 F y por tanto F es convexo.
En lo que sigue emplearemos el smbolo := para definir elementos, conjuntos
y funciones; as pues, [ := se lee [ se define como (o [ es igual, por
definicin, a...).

26

Optimizacin matemtica aplicada

Proposicin 1.6 Sean [1 > [2 > ===> [n  Rq convexos. Entonces:


(i) [1 _ [2 _ === _ [n es convexo;
( n
)
X
(ii) [1 + [2 + == + [n :=
{l 5 Rq : {l 5 [l > l = 1> ===> n es convexo=
l=1

(definimos [1 + [2 + === + [n = B si algn [l = B)=

Ejemplo 1.9 (Poliedros) Las intersecciones de semiespacios e hiperplanos dan


lugar a conjuntos convexos llamados poliedros. En nuestro caso estaremos especialmente interesados en poliedros cerrados. Formalmente, sean dm 5 Rq > em 5 R>
m = 1> ===> t> y consideremos el conjunto:

S = { 5 Rq | d0m {  em > m = 1> ===> s> d0m { = em > m = s + 1> ===> t >

suponiendo s> t 5 N con 1 ? s  t (si s = t> solo tendremos inecuaciones)= A


partir del ejemplo y la proposicin anterior se deduce inmediatamente que S es
convexo.
Definicin 1.12 (Envoltura convexa) Sean {1 > ===> {u  Rq . Se dice que { 5
Rq es una combinacin convexa de {1 > ===> {u si existen escalares 1 > ==> u tales
que
{=

u
u
X
X
l {l > con
l = 1 y 1 > ==> u  0=
l=1

l=1

Dado un conjunto arbitrario [ 

Rq >

llamamos envoltura convexa de [> deno-

tada por frqy ([) > al conjunto de todas las combinaciones convexas (finitas) de
elementos de [; esto es,
)
( u
u
X
X
l
l
l { | { 5 [> l  0> l = 1> ===> u>
l = 1> u 5 N =
frqy ([) =
l=1

l=1

(frqy (B) := B)=


Proposicin 1.7 Sea [  Rq = La envoltura convexa de [ es el menor3 convexo que contiene a [=
3

En el sentido de que frqy ([)

\
frqy ([) =

es convexo y cualquier otro convexo \


[ verifica

Captulo 1. Preliminares

27

Definicin 1.13 Sea B 6= F  Rq convexo y sea i : F $ R= Se dice que i es

convexa en F si para cualesquiera {> | 5 F y cualquier  5 [0> 1] > se tiene:


i ({ + (1  ) |)  i ({) + (1  ) i (|) =

En la figura 1.3 se ilustra la definicin de funcin convexa. En trminos informales, la grfica de una funcin convexa queda por debajo (pudiendo coincidir)
del segmento que une a los puntos ({> i ({)) con (|> i (|)) =

D f x  D f y 
f Dx D y 

Dx D y

Figura 1.3: Ilustracin de la definicin de funcin convexa.

Proposicin 1.8 (Convexidad bajo hiptesis de diferenciabilidad) Sea


B 6= D  Rq un abierto convexo. Se tiene:

(i) Supongamos que i 5 F 1 (D) = Entonces i es convexa en D si, y solo si,


i ({)  i ({) + ui ({)0 ({  {) > para cualesquiera {> { 5 D;
(ii) Supongamos que i 5 F 2 (D) = Entonces i es convexa en D si, y solo si,

para cualquier { 5 D>


Ki ({) es definida o semidefinida positiva.
La segunda de las caracterizaciones anteriores ser utilizada frecuentemente
en ejercicios prcticos (bajo la hiptesis requerida). Se incluye la primera de las
caracterizaciones por motivos de completitud, adems de favorecer la intuicin:

28

Optimizacin matemtica aplicada

y
x

f x  f x
x  x
x

Figura 1.4: Ilustracin del apartado (i) de la proposicin 1.8=

vase la figura 1.4 donde se muestra que, para una funcin convexa, la aproximacin de Taylor de primer orden (plano tangente) siempre queda por debajo
de la grfica de la funcin.
Observacin 1.4 Cuando digamos simplemente que i es convexa sin especificar sobre qu convexo, se entender que es convexa en todo el espacio Rq =
En este caso el abierto D de la proposicin anterior es el propio Rq = Concretamente, por ejemplo, en el apartado (ii) de la proposicin anterior quedara:
si i 5 F 2 (Rq ) > se tiene que i es convexa si, y solo si, Ki ({) es definida o
semidefinida positiva para todo { 5 Rq =
Ejercicio 1.3 Analizar si cada una de las siguientes funciones es convexa en R2
o no.
(i) i ({) = {21 + 4{22 ;
(ii) i ({) = {1 {2 ;
(iii) i ({) = cos {1 cos {2 ;
(iv) i ({) = log({21 + {22 + 1)=
Solucin. (i) Se tiene que
!


2 0
2{1
ui ({) =
> { 5 R2 =
> y Ki ({) =
8{2
0 8
Ntese que, en este ejemplo, Ki ({) es constante con respecto a {> siendo definida
positiva.

Captulo 1. Preliminares

29

(ii) Para i ({) = {1 {2 se tiene:


Ki ({) =

0 1
1 0

> { 5 R2 >

que es indefinida (vase por ejemplo la proposicin 1.5).


(iii) Para i ({) = cos {1 cos {2 se tiene> para todo { 5 R2 >

 cos {1 cos {2 sen {1 sen {2


 sen {1 cos {2
ui ({) =
> y Ki ({) =
=
 cos {1 sen {2
sen {1 sen {2  cos {1 cos {2
Si evaluamos la matriz hessiana en { =
Ki ({) =

1
0

0
0

> obtenemos

1

>

que es definida negativa, luego i no es convexa;


(iv) Para i ({) = log({21 + {22 + 1) se tiene:
ui ({) =

2{1
{21 +{22 +1
2{2
{21 +{22 +1

2
{21 +{22 +1

3
E
Ki ({) = C

4{21

({21 +{22 +1)

34{1 {2
2
({21 +{22 +1)

34{1 {2
2
({21 +{22 +1)
2
4{
2
 2 22 2
{21 +{22 +1
({ +{ +1)
1

4
F
D=

En situaciones como sta, las condiciones (iv) y (v) de la proposicin 1.4 pueden
proporcionar una forma rpida de comprobar que i no es convexa: se trata de
encontrar un punto fijo en el que algn 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


d11 =

2
6
4
4
=  ? 0>
2
4+1
25
(4 + 1)

luego Ki ({) no es definida ni semidefinida positiva, y por tanto, i no es convexa.


En ocasiones, las siguientes propiedades pueden resultar de utilidad a la hora
de comprobar la convexidad de determinadas funciones.

30

Optimizacin matemtica aplicada

Proposicin 1.9 (Propiedades) Sea B 6= D  Rq un abierto convexo. Se


tiene:

(i) Si i> j : D $ R son convexas en D> entonces i + j es convexa en D;


(ii) Si i : D $ R es convexa en D y   0> entonces i es convexa en D;
(iii) Si i : D $ R es convexa en D> Im i 6= B y ! : Im i $ R es convexa y

creciente4 , entonces !  i es convexa en D;

(iv) Si i : D $ R es de la forma i ({) = d0 { + e> con d 5 Rq > e 5 R (funcin


afn) y ! : Im i $ R es convexa, entonces !  i es convexa en D=
Ejercicio 1.4 Analizar si las siguientes funciones son convexas.
2

(i) i : R3 $ R> dada por i ({) = h{1 +4{2 +5{3 ;


(ii) i : R3 $ R> dada por i ({) = ({1 + 3{2  4{3 + 1)2 ;
p
(iii) i : R3 $ R> i ({) = {21 + {22 + {23 ;

(iv) i : R3 $ R> i ({) = |{1  {2 + 4{3 | =

Solucin. (i) Podemos expresar i de la forma i = !  j donde j : R3 $ R


y ! : R $ R vienen dadas por
j ({) := {21 + 4{42 + 5{63 y ! (w) = hw =
Es fcil comprobar que j es convexa, pues
3
2
0
0
E
2
Kj ({) = E
0
C 0 48{2
0
0
150{43

4
F
F>
D

que es definida o semidefinida positiva para todo { (ntese que al ser diagonal,
los elementos diagonales son los valores propios; vase la proposicin 1.3).
Por otro lado, ! es creciente y convexa en R> pues
!0 (w) = !00 (w) = hw A 0 para todo w 5 R=
Aplicando entonces la proposicin 1.9 (iii) se tiene que i = !  j es convexa.
(ii) Como consecuencia inmediata de la proposicin 1.9(iv) se tiene que i es
convexa.
4

Obviamente si ! est definida sobre algn conjunto convexo que contiene a Im i , el resul-

tado es igualmente vlido.

Captulo 1. Preliminares

31

p
{21 + {22 + {23 = Ntese que si exs
presamos i como composicin i = !j donde j ({) := {21 +{22 +{23 y ! (w) := w>
(iii) Consideremos i : R3 $ R> con i ({) =

no se verifican las hiptesis de la proposicin 1.9 (iii) (! 5 F 2 (]0> +4[) > con
!00 (w) = 

1
I
4 w3

? 0), luego, en principio, no podemos concluir que i es convexa.

Buscaremos otro argumento: podemos observar que i ({) = k{k2 = Veamos di-

rectamente aplicando la definicin que i es convexa. Dados {> | 5 R3 y dado


 5 [0> 1] se tiene:
i ({ + (1  ) |) = k{ + (1  ) |k2  k{k2 + k(1  ) |2 k2
= || k{k2 + |1  | k|k2 = i ({) + (1  ) i (|) >

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 proposicin 1.9 (iv). Basta comprobar que ! es convexa, lo cual se obtiene


por un razonamiento anlogo al del apartado anterior: si w> v 5 R>  5 [0> 1] >
! (w + (1  ) v) = |w + (1  ) v|  |w| + |(1  ) v|
=  |w| + (1  ) |v| = ! (w) + (1  ) ! (v) =
El estudio de la convexidad de funciones en ocasiones puede ser de utilidad para analizar la convexidad de determinados conjuntos, en concreto de los
conjuntos de nivel inferior de una funcin convexa.
Ejercicio 1.5 Sea B 6= F  Rq convexo y sea i : F $ R convexa. Demostrar
que el conjunto de nivel inferior , dado por

Q = {{ 5 F : i ({)  } >
es convexo.
Solucin. Situmonos en el caso no trivial en el que Q 6= B= Sean {> | 5 Q

y sea  5 [0> 1] > veamos que { + (1  ) | 5 Q = En efecto:

i ({ + (1  ) |)  i ({) + (1  ) i (|)   + (1  )  = >


lo que prueba { + (1  ) | 5 Q =

32

Optimizacin matemtica aplicada

Ejercicio 1.6 Demostrar que los siguientes conjuntos son convexos:

(i) F = { 5 R3 | {21 + 4{22 + 4{43  1> {1  {3  0 ;

(ii) F = { 5 R3 | |{1 + 4{2 + 4{3 |  1> h{1 +4{2  0 =

Solucin. (i) F = { 5 R3 | {21 + 4{22 + 4{43  1 _ { 5 R3 | {1  {3  0 =

Veamos que cada uno por separado son conjuntos convexos. Respecto del primero,
es un nivel inferior de la funcin i1 ({) = {21 + 4{22 + 4{43 > que se comprueba fcilmente que es convexa, pues
4

3
2 0

E
Ki1 ({) = E
C 0 8

0
0

F
F
D

0 0 48{23
es definida o semidefinida positiva para todo { 5 R3 = Por su parte, el segundo, es
un nivel inferior de la funcin i2 ({) = {1  {3 que es convexa, de hecho Ki2 ({)
es la matriz nula. As pues, F es convexo.
(ii) Como en el apartado anterior, basta ver que las funciones j1 ({) =
|{1 + 4{2 + 4{3 | y j2 ({) = h{1 +4{2 son convexas, lo cual se deduce inmedia-

tamente de la proposicin 1.9 (iii) y (iv).

Ejercicio 1.7 Encontrar un ejemplo que muestre que Q puede ser convexo,
aunque i no sea convexa.
Solucin. Considrese la funcin i : ]0> +4[ $ R> i (w) = log (w) = Se tiene
que
Q = {w 5 ]0> +4[ | log (w)  }
n
o
= w 5 ]0> +4[ | w = hlog(w)  h
i
i
= 0> h >
que es convexo, y i no es convexa.
Observacin 1.5 (Funciones cncavas) Puede hacerse un desarrollo paralelo para funciones cncavas. Si B 6= F  Rq convexo, una funcin i : F $ R
es cncava si i es convexa. Para funciones de clase F 2 en un abierto convexo

Captulo 1. Preliminares

33

D se tiene que: i es cncava si, y solo si, Ki ({) es definida o semidefinida


negativa para todo { 5 D= Los conjuntos de nivel superior
V := {{ 5 F : i ({)  }
son convexos, si i : F $ R es cncava. En estos prelimiminares hemos prestado especial atencin a las funciones convexas pues juegan un papel destacado en el estudio de problemas de optimizacin en el formato de minimizar y
donde las restricciones estn expresadas mediante desigualdades en el sentido
. Anlogamente, la concavidad sera una propiedad destacada si el formato
fuese de maximizar con restricciones de .

Captulo 2

Optimizacin sin restricciones


A lo largo de este captulo consideramos un problema de optimizacin sin
restricciones, que denotamos por (S ), consistente en minimizar una determinada funcin objetivo i definida en Rq y con valores en R; formalmente (S ) se
representa de la siguiente manera:
(S ) P lq i ({) =
La seccin 2.1 introduce la notacin y definiciones bsicas relativas al problema
(S ) > y precisa qu entendemos por resolver (S ) = En la seccin 2.2 presentaremos un resumen de resultados tericos bsicos (condiciones de optimalidad) que
pueden resultar de utilidad en la tarea de resolver (S ) = Apoyndonos en los
resultados tericos, resolveremos diferentes ejemplos de forma exacta. En esta
seccin, adems, los problemas convexos y los problemas cuadrticos ocupan un
lugar destacado debido a sus buenas propiedades en relacin con la optimalidad.

2.1.

Definiciones y primeros ejemplos

Consideremos el problema de PNL sin restricciones dado por:


(S ) P lq i ({)>

(2.1)

donde { 5 Rq representa a la variable de decisin y i : Rq $ R es la funcin objetivo de (S ) = A medida que se vayan requiriendo, iremos incorporando
35

36

Optimizacin matemtica aplicada

ciertas hiptesis de diferenciabilidad a i= Seguidamente presentamos diferentes


elementos destacados asociados al problema (S ) =
Definicin 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 } ;
(ii) Un punto { 5 Rq es ptimo local de (S ) si existe un entorno de {>
X  Rq > tal que
i ({)  i ({) para todo { 5 X ;
(iii) Un punto { 5 Rq es ptimo global de (S ) si
i ({)  i ({) para todo { 5 Rq ;
en otras palabras, si el valor ptimo se alcanza en { (i.e., y = i ({))=
En lo que sigue, por resolver (S ) entenderemos determinar estos elementos
destacados: su valor ptimo, el conjunto de ptimos locales y ptimos globales.
Atendiendo a estos elementos haremos la siguiente clasificacin.
Definicin 2.2 Consideremos el problema de PNL sin restricciones (2.1).
(i) Se dice que (S ) es acotado si su valor ptimo es finito (y A 4), esto
es, si i est acotada inferiormente;
(ii) Se dice que (S ) es resoluble si existe algn ptimo global.
La siguiente proposicin puede resultar de utilidad a la hora de simplificar
determinados problemas de optimizacin.
Proposicin 2.1 Sea (S ) el problema (2.1) y sea
optimizacin dado por


Se P lq ! (i ({)) >


Se el nuevo problema de

donde ! : D $ R es una funcin estrictamente creciente en D> siendo D un


subconjunto de nmeros reales que contiene a Im i> la imagen de i= Se tienen
las siguientes equivalencias:

Captulo 2. Optimizacin sin restricciones

37


(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 proposicin 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:
Ejemplo 2.1 (Problemas equivalentes) Veamos que los siguientes problemas son equivalentes:
q
2

(S1 ) P lq 1 + {21 + 4{42 > (S2 ) P lq 1 + {21 + 4{42 > (S3 ) P lq 1 + {21 + 4{42 >

2
4
(S4 ) P lq log 1 + {21 + 4{42 > (S5 ) P lq 21+{1 +4{2 =
En concreto, veamos que todos son equivalente a (S2 ) = Denotemos por il a

la funcin objetivo de (Sl ) > l = 1> 2> ===> 5= Ntese que


Im i2 = [1> +4[ =
Veamos que las funciones objetivo del resto de problemas resultan de componer
i2 con alguna funcin estrictamente creciente. En efecto,
i1 = !1  i2 > con !1 : R+ $ R dada por !1 (w) =

s
w=

Obsrvese que !1 es estrictamente creciente en R+  Im i2 = Por su parte,


i3 = !3  i2 >
donde podemos considerar !3 : R+ $ R definida por !3 (w) = w2 y de este modo
!3 es estrictamente creciente en R+  Im i2 = Respecto del problema (S4 ) se
tiene:
i4 = !4  i2 > con !4 : ]0> +4[ $ R dada por !4 (w) = log w>
que tambin es estrictamente creciente en ]0> +4[ = Finalmente,
i5 = !5  i2 > con !5 : R $ R dada por !5 (w) = 2w >
siendo !5 estrictamente creciente en R=
1

En este sentido el problema de maximizar i ({) equivale al de minimizar 3i ({) ; por lo

que desarrollaremos la teora en trminos de minimizar.

38

Optimizacin matemtica aplicada


Los siguientes ejemplos muestran diferentes situaciones que pueden ocurrir

en el contexto de la PNL sin restricciones. Por simplicidad, estos ejemplos estn


planteados en R= En lo que sigue N y Z representan, respectivamente, al conjunto
de nmeros naturales {1> 2> ===} y al de los enteros.
Ejemplo 2.2 (Un problema no acotado) Consideremos el problema, en R>
(S ) P lq {3 >
esto es, i ({) = {3 > { 5 R= Si consideramos, por ejemplo, la sucesin {u}uMN ,

se tiene:

lm i (u) = lm u3 = 4=

u<"

u<"

Por tanto, el conjunto de imgenes {i ({) : { 5 R} no est acotado inferiormente,

lo que equivale a y = 4=

Ejemplo 2.3 (Un problema acotado, pero no resoluble) Consideremos el


problema, en R>
(S ) P lq h{ =
As, en este caso, el conjunto de imgenes {i ({) : { 5 R} = {h{ : { 5 R} est

acotado inferiormente por cero; de hecho, h{ A 0 para todo { 5 R= Adems


y = 0> puesto que si consideramos la sucesin {u}uMN se tiene que
lm i (u) = lm h3u = 0=

u<"

u<"

En resumen, el conjunto {h{ : { 5 R} est acotado inferiormente por 0 y existe


alguna sucesin contenida en el conjunto con lmite 0= Entonces,
y = inf {h{ : { 5 R} = 0=
En consecuencia, (S ) es acotado. Sin embargo, no es resoluble, pues no existe
ningn { 5 R tal que h{ = 0 (no se alcanza el nfimo).
Ejemplo 2.4 (Un problema con un nico ptimo global) Consideremos el
problema, en R>
(S ) P lq {2 =

Captulo 2. Optimizacin sin restricciones

39

El conjunto de imgenes {i ({) : { 5 R} =

{ : { 5 R es acotado inferior-

mente por 0> y adems, 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.5 (Un problema con infinitos ptimos globales) Consideremos el problema, en R>
(S ) P lq vhq {=

El conjunto de imgenes {i ({) : { 5 R} = {vhq { : { 5 R} es acotado infe

riormente por 1> y adems i 3


2 + 2n = 1 para todo n 5 Z= Por tanto,

y = 1 y, para cualquier n 5 Z>

3
2

+ 2n es un ptimo global de (S ) =

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 ms 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

sucesin 3
2 + 2u uMN > se tiene que
lm

u<"

3
2

+ 2u vhq 3
m 33
2 + 2u = l
2  2u = 4=
u<"

Luego (S1 ) es no acotado. Por su parte, (S2 ) es resoluble, lo que puede intuirse
en la figura 2.1. Ms adelante veremos que (S1 ) y (S2 ) tienen infinitos ptimos
locales.

2.2.

Condiciones de optimalidad

Consideremos de nuevo el problema de PNL sin restricciones:


(S ) P lq i ({)>
siendo i : Rq $ R= En realidad los resultados de esta seccin son vlidos para
funciones definidas en un abierto D  Rq =

40

Optimizacin matemtica aplicada

)XQFLyQREMHWLYRGH 3























)XQFLyQREMHWLYRGH 3


















Figura 2.1: Ilustracin de dos problemas con infinitos ptimos locales.



Captulo 2. Optimizacin sin restricciones

41

A continuacin, se enuncian las condiciones de optimalidad relativas a un


punto dado { 5 Rq = Por motivos didcticos, la condicin de primer orden (que
involucra derivadas parciales) se enuncia bajo la hiptesis i 5 F 1 (D) y las de
segundo orden (que involucran a las derivadas parciales de segundo orden) bajo
la hiptesis i 5 F 2 (D) > siendo D un abierto que contiene a { (estos resultados
pueden obtenerse bajo hiptesis ms dbiles como puede consultarse en el texto
de Bazaraa et l. [4]).
Proposicin 2.2 (Condicin necesaria de optimalidad de primer orden)
Sea { 5 D  Rq > con D abierto, y supongamos que i 5 F 1 (D) = Si { es un ptimo local de (S ) > entonces
ui ({) = 0q =
Un punto { 5 Rq que verifica la condicin ui ({) = 0q se llama punto
crtico.
Proposicin 2.3 (Condiciones de optimalidad de segundo orden) Sea
{ 5 D  Rq > con D abierto, y supongamos que i 5 F 2 (D) = Se tiene:
(i) (Condicin necesaria) Si { 5 Rq es un ptimo local de (S ) > entonces
(adems de verificar ui ({) = 0q ) se tiene que Ki ({) es definida positiva o
semidefinida positiva.
(ii) (Condicin suficiente) Si ui ({) = 0q y Ki ({) es definida positiva,
entonces { es un ptimo local de (S ) =

Esquema de casos posibles


ui ({) 6= 0q

{ no ptimo local

ui ({) = 0q , Ki ({) DP

{ ptimo local

ui ({) = 0q , Ki ({) SDP

ui ({) = 0q , Ki ({) 6= 0qq no DP ni SDP

{ no ptimo local

En el esquema, y de aqu en adelante, 0qq representa a la matriz cuadrada


de orden q con todos sus coeficientes nulos. Por otro lado, DP y SDP representan
las abreviaturas de definida positiva y semidefinida positiva.

42

Optimizacin matemtica aplicada

2.3.

Ejercicios resueltos

En lo que sigue C> L y G representarn, respectivamente los conjuntos de

puntos crticos, ptimos locales y ptimos globales de nuestro problema (S ) = C>


L y G son tres subjuntos de Rq que verifican las relaciones:
G  L>

lo cual es inmediato a partir de las correspondientes definiciones de ptimo local


y ptimo global; adems, si la funcin objetivo de (S ) > i> es de clase F 1 en
algn abierto que contenga a L> entonces
L  C=
Seguidamente presentamos diferentes ejercicios acadmicos con el fin de afianzar
y adquirir destreza en el manejo de las condiciones de optimalidad resumidas en
el esquema anterior.
Ejercicio 2.1 Resolver el siguiente problema de PNL sin restricciones, esto
es, determinar los conjuntos de ptimos locales y ptimos globales, y su valor
ptimo:
(S ) P lq sen {1 sen {2 =
Solucin. En primer lugar determinamos el conjunto de puntos crticos.
Para ello hemos de resolver el sistema

0
cos {1 sen {2
=
=
ui ({) =
sen {1 cos {2
0
De la primera ecuacin se deduce:
cos {1 = 0 ( , {1 =


+ n> n 5 Z) sen {2 = 0 ( , {2 = v> v 5 Z)=
2

Analicemos los dos casos por separado:


Caso 1 : {1 =


2

+ n> n 5 Z= Sustituyendo este valor en la segunda ecuacin,

se deduce (1) cos {2 = 0= Luego cos {2 = 0> lo que implica que {2 =


2

+ u> u 5

Z=
Caso 2 : {2 = v> v 5 Z= Sustituyendo en la segunda ecuacin obtenemos
() sen {1 = 0> luego {1 = w> w 5 Z=

Captulo 2. Optimizacin sin restricciones

43

En resumen el conjunto de puntos crticos es:





v
2 + n : n> u 5 Z ^
C=
:
v>
w
5
Z
=

w
2 + u
Estudiemos ahora la matriz hessiana evaluada en cada uno de estos puntos. Se
tiene:
Ki ({) =

 sen {1 sen {2
cos {1 cos {2

cos {1 cos {2
 sen {1 sen {2

Evaluemos Ki ({) en cada uno de los casos:


!
;
 +n
A
1 0
A
A
; si { = 2 +u y n y u tienen la misma paridad,
A
A
A
2
0 1
A
A

!
A
A
A
 +n
A
1 0
A
2
A
A
? 0 1 ; si { = 2 +u y n y u tienen distinta paridad,

!
Ki ({) =
A

0
1
A
A
A
; si { = v
A
w y v y w tienen la misma paridad,
A
A
1 0
A
A

!
A
A
A

0
1
A
A
A
; si { = v
=
w y v y w tienen distinta paridad.
1 0
Aplicando la proposicin 1.5 clasificamos la matriz Ki ({) > obteniendo que en
el primer caso esta matriz es definida negativa, en el segundo es definida positiva
y en los dos ltimos indefinida. Por tanto, el conjunto de ptimos locales est
dado por
L=

2

2

+ n
+ u

: n> u 5 Z tienen distinta paridad >

(ntese que el resto de casos no cumplen la condicin necesaria de segundo


orden). Veamos, adems que todos los ptimos locales son globales en este caso.
 +n
En efecto, sean n> u 5 Z con distinta paridad y consideremos { = 2 +u = Se
2

tiene:


{1
+ n sen
+ u = 1  sen {1 sen {2 > para todo
i ({) = sen
5 R2 >
2
2
{2

donde la ltima desigualdad se deduce del hecho de que, para cualquier {{12 5


R2 > |sen {1 sen {2 | = |sen {1 | |sen {2 |  1> y por tanto


1  sen {1 sen {2  1=

44

Optimizacin matemtica aplicada

En consecuencia
G = L y el valor del problema es y = 1=
Ejercicio 2.2 Resolver el siguiente problema de PNL sin restricciones:
(S ) P lq {1 cos {2 =
Solucin. Consideremos ahora la funcin objetivo i ({) = {1 cos {2 = Determinemos el conjunto de puntos crticos de (S ):

cos {2
0
cos {2 = 0>
ui ({) =
=
,
{1 sen {2 = 0=
{1 sen {2
0
De la primera ecuacin se obtiene: {2 =


2

+ n> n 5 Z= Sustituyendo este valor

en la segunda ecuacin, se tiene {1 (1) = 0= Luego el conjunto de puntos


crticos es:
C=


2

0
+ n

:n5Z =

Analicemos las condiciones de segundo orden. Para cualquier { 5 R2 >

!
0
 sen {2
Ki ({) =
=
 sen {2 {1 cos {2
Sea n 5 Z y { =


+n
2

; se tiene:

;
!
A
0 1
A
A
A
> si n es par;
A
?
1 0
!

Ki ({) =
A
0
1
A
A
A
> si n es impar.
A
=
1 0

En cualquier caso Ki ({) es indefinida (vase la proposicin 1.5) y, por tanto,


ninguno de los puntos crticos es ptimo local. As pues, (S ) no tiene ptimos
locales y por tanto no tiene ptimos globales. El problema, de hecho, es no
acotado dado que
lm i

q<"

En otras palabras:

q


= lm q (1) = 4=
q<"

L = G = B y y = 4=

Captulo 2. Optimizacin sin restricciones

45

Ejercicio 2.3 Resolver el siguiente problema de PNL sin restricciones:


(S ) P lq {21 cos {2 =
Solucin. Determinemos el conjunto de puntos crticos de (S ):

2{1 cos {2
0
2{1 cos {2 = 0>
ui ({) =
=
,
{21 sen {2
0
{21 sen {2 = 0=
De la primera ecuacin se obtiene:
(
Caso 1 : {1 = 0;

Caso 2 : cos {2 = 0 , {2 =


2

+ n> n 5 Z=

En el caso 1, sustituyendo el valor {1 = 0 en la segunda ecuacin, sta se satisface


independientemente de los valores de {2 (pues se obtiene 0 = 0)= En el caso 2,
sustituyendo {2 =


2

+ n> n 5 Z> en la segunda ecuacin se tiene {21 (1) = 0>

luego {1 = 0= En definitiva, el conjunto de puntos crticos es


n
o
C = {02 : {2 5 R =
Por otro lado Ki ({) =
0
{2 > con {2 5 R> se tiene:

2 cos {2

2{1 sen {2

2{1 sen {2

{21 cos {2

Ki ({) =

2 cos {2 0
0

y evaluada en { =

A partir de la condicin necesaria de segundo podemos asegurar que el conjunto:


o
n
0
:
cos
{
?
0
2
{2

no contiene ningn ptimo local. Por otra parte, todos los puntos del conjunto
o
n
0
:
cos
{

0
2
{2

verifican la condicin necesaria de optimalidad pero no la suficiente, luego por


el momento no puede asegurarse si son o no ptimos locales (vase el esquema
resumen tras la proposicin 2.3). Analizaremos si son ptimos o no directamente
por la definicin. Distinguiremos dos casos:

46

Optimizacin matemtica aplicada


Caso 1: { =

0
{2

con cos {2 A 0= Ntese que de la continuidad de la fun-

cin coseno, sabemos que cos {2 A 0 para {2 suficientemente prximo a {2 (se


conserva el signo en un entorno de {2 )> pongamos que
cos {2 A 0> si |{2  {2 | ? %> para cierto % A 0=
Entonces
i ({) = {21 cos {2  0> si |{2  {2 | ? %=
Puesto que
i ({) = 0 cos {2 = 0>
si consideramos como entorno de { el subconjunto X = R ]{2  %> {2 + %[ > se
tiene:
i ({) = 0  i ({) > para todo { 5 X>
en conclusin, en este caso, { es un ptimo local de (S ) =

Caso 2: { = {02 con cos {2 = 0> esto es, {2 = 2 + n> n 5 Z= Veamos que {
no es ptimo local. Distnguimos dos casos:

Caso 2.a: n par. En este caso, obsrvese que, para todo q>


1
1
= cos
+ n +
?0
cos {2 +
q
2
q
Entonces, si consideramos la sucesin {{q }qMN  R2 dada por
q

{ :=


2

1
q

+ n +

1 > q 5 N>

se tiene:

1

1
lm { = { y i ({ ) =
+ n +
? 0 = i ({) > q 5 N=
cos
q<"
q
2
q
q

En estas condiciones { no puede ser ptimo local de (S ) =

Caso 2.b: n impar, en cuyo caso, cos {2  q1 = cos 2 + n  q1 ? 0 para


todo q= Entonces, dada {{q }qMN  R2 definida por
q

{ :=


2

1
q

+ n 

1 > q 5 N>

Captulo 2. Optimizacin sin restricciones

47

se tiene:
lm {q = { y i ({q ) ? 0 = i ({) > q 5 N=

q<"

Por tanto, { no es ptimo local de (S ) =


En resumen, el conjunto de ptimos locales coincide con
L=

n
0
{2

o
: cos {2 A 0 =

Ninguno de los ptimos locales es global, pues de hecho el problema no es acotado. En efecto, si consideramos la sucesin {{q }qMN  R2 definida por

q
> q 5 N>
{ :=

q

se tiene:

lm i ({q ) = lm q2 cos  = lm q2 = 4=

q<"

As,

q<"

q<"

y = 4 y G = B=
Observacin 2.1 El ejercicio anterior maneja en afirmativo y en negativo la
definicin de ptimo local. La tcnica empleada en dicho ejercicio es estndar:
para probar que { es ptimo local, ha de encontrarse un entorno X de { (o al
menos asegurar su existencia) tal que
i ({)  i ({) > para todo { 5 X=
En caso de que { no sea ptimo local, para demostrarlo, esto es, para probar que
no existe ningn entorno en las condiciones anteriores, una posible estrategia
(conveniente en la prctica) consiste en encontrar una sucesin {{q }qMN  R2
tal que

lm {q = { y i ({q ) ? i ({) > para todo q=

q<"

Ejercicio 2.4 Resolver el problema de PNL sin restricciones


2 2

(S ) P lq {21 + {22 h{1 +{2 =

48

Optimizacin matemtica aplicada

Solucin. Se tiene que

2
2
2
2

{2 +{2 {1
2{1 h{1 +{2 + {21 + {22 2{1 h{1 +{2
2
2
1
2

= 2 1 + {1 + {2 h
=
ui ({) =
2
2
2
2
{2
2{2 h{1 +{2 + {21 + {22 2{2 h{1 +{2
2 2

As, puesto que 2 1 + {21 + {22 h{1 +{2 6= 0 para todo {>
(

{1 = 0>
0
ui ({) =
,
0
{2 = 0=
En otras palabras


0
C=
=
0
Ntese que en este caso, un camino ms directo que el de analizar las condiciones

de segundo orden es simplemente comprobar que { = 00 es un ptimo global.


En efecto,

2 2

i ({) = 0  {21 + {22 h{1 +{2 para cualesquiera {1 > {2 =

As, en este caso, dado que { = 00 es el nico candidato a ptimo local y global

(recurdese que G  L  C)> se tiene:


0
C=L=G=
y y = 0=
0

Ejercicio 2.5 Resolver el problema de PNL sin restricciones


(S ) P lq ({1 + {2 ) h{1 +{2 =
Solucin. Se tiene que

{1 +{2
+ ({1 + {2 ) h{1 +{2
1
h
{1 +{2
(1 + {1 + {2 )
=
=h
ui ({) = {1 +{2
{
+{
1
2
1
h
+ ({1 + {2 ) h
Luego el conjunto de puntos crticos coincide con

C = { 5 R2 | 1 + {1 + {2 = 0 =

Analicemos las condiciones de segundo orden:

!
h{1 +{2 (1 + {1 + {2 ) + h{1 +{2 h{1 +{2 (1 + {1 + {2 ) + h{1 +{2
Ki ({) =
h{1 +{2 (1 + {1 + {2 ) + h{1 +{2 h{1 +{2 (1 + {1 + {2 ) + h{1 +{2
!

1
1
=
= (2 + {1 + {2 ) h{1 +{2
1 1

Captulo 2. Optimizacin sin restricciones


Si { 5 C> esto es, 1 + {1 + {2 = 0> se tiene:

31

Ki ({) = h

49

1 1
1 1

>

que es una matriz semidefinida positiva, luego se cumple la condicin necesaria


de segundo orden pero no la suficiente. Luego, hemos de acudir directamente a
las definiciones para averiguar si cada uno de los puntos crticos es ptimo local.
Consideremos { 5 C; por un lado
i ({) = h31 >
y por otro, veamos que
i ({)  h31 para { suficientemente prximo a {=
Sea { 5 Rq > y sea  := {1 + {2  ({1 + {2 ) = Se tiene que
i ({) = ({1 + {2 ) h{1 +{2 = ({1 + {2 + ) h{1 +{2 + = (1 + ) h31+ =

(2.2)

Veamos que
(1 + ) h31+ A i ({) = h31 =
De hecho, veamos que la funcin k : R $R> k () := (1 + ) h31+ tiene un
mnimo global en  = 0= Calculemos las derivadas primera y segunda
uk () = k0 () = h31+ + (1 + ) h31+ = h31+ =
Kk () = k00 () = h31+  + h31+ = h31+ (1 + ) =
As, el nico punto crtico de k es  = 0 y, adems, Kk (0) = h31 A 0> luego,
sabemos que  = 0 es un mnimo local de k= Por ser k una funcin de R en R>
para ver que  = 0 es mnimo global, basta fijarse en las zonas de crecimiento
y decrecimiento de k :
k0 () ? 0 si  ? 0> y k0 () A 0 si  A 0>
luego k es decreciente en ]4> 0[ y creciente en ]0> +4[ = Por tanto,  = 0 es
un mnimo global de k> lo que significa que
(1 + ) h31+ A i ({) = h31 > para todo =

(2.3)

50

Optimizacin matemtica aplicada

A partir de (2.2) y (2.3), si fijamos arbitrariamente { 5 R2 > y denotamos por


 := {1 + {2  ({1 + {2 ) se tiene:
i ({) = (1 + ) h31+ A h31 = i ({) >
lo que prueba que { es un ptimo global de (S ) = En consecuencia, todos los
puntos crticos son ptimo globales, esto es,

G = L = C = { 5 R2 | 1 + {1 + {2 = 0 =
Ejercicio 2.6 (Revisitado) Demostrar que el siguiente problema tiene infinitos ptimos locales:
(S ) P lq { sen {=
Solucin. Sea i ({) = { sen {= Se tiene:
i 0 ({) = sen { + { cos { = 0=
En este caso, no podemos despejar explcitamente { de la ecuacin anterior,
pero s podemos garantizar la existencia de infinitas soluciones de la ecuacin a
partir del Teorema de Bolzano. En concreto consideremos, para cada n 5 Z> el

intervalo 2 + n> 2 + (n + 1)  y ntese que


i0

+ n i 0
+ (n + 1)  = sen
+ n sen
+ (n + 1)  = 1>
2
2
2
2

pues n y n + 1 tienen distinta paridad. As, i 0 cambia de signo en los extremos

del intervalo 2 + n> 2 + (n + 1)  y, entonces, el Teorema de Bolzano asegura


la existencia de
{n 5

i
2

+ n>

h


+ (n + 1)  tal que i 0 {n = 0> para todo n 5 Z=
2

Por otro lado,


i 00 ({) = cos { + cos { + { ( sen {) = 2 cos {  { sen {>
luego

2

i 00 {n = 2 cos {n  {n sen {n = 2 cos {n + {n cos {n >

Captulo 2. Optimizacin sin restricciones

51


donde se ha aplicado el hecho de que i 0 {n = sen {n + {n cos {n = 0= As pues,

2

00
n
n
A0
i { = cos { 2 + {n
si n es impar. Luego, para todo n 5 Z impar, {n es un ptimo local, esto es,
n
o
{n : n 5 Z impar  L=

Luego existen infinitos ptimo locales, aunque ninguno es global, como se prob
en el ejemplo 2.6.
Observacin 2.2 En PNL frecuentemente no podrn resolverse las ecuaciones
que proporcionan los candidatos a ptimos locales de forma exacta. En estos
casos, hacemos hincapi en los hechos siguientes: como aplicacin del Teorema
de Bolzano puede garantizarse la existencia de soluciones y los algoritmos de
PNL proporcionarn aproximaciones de dichas soluciones (por ejemplo, en el
programa MATLAB encontramos implementados algunos de estos algoritmos
de PNL).
Ejercicio 2.7 Demostrar que el siguiente problema tiene infinitos ptimos locales:
(S ) P lq

{2

{
sen {=
+1

Solucin. Se tiene:
1
{2 + 1  2{2
{
i ({) =
cos { = 2
sen { + 2
2
{ +1
{ +1
({2 + 1)
0

1  {2
sen { + { cos { =
{2 + 1

Para cada n 5 N impar se tiene:


n cos (n)
n
=
? 0>
2
(n) + 1
(n)2 + 1
(n + 1)  cos ((n + 1) )
(n + 1) 
i 0 ((n + 1) ) =
=
A 0=
2
((n + 1) ) + 1
((n + 1) )2 + 1
i 0 (n) =

Esto es, cuando n es impar, para algn % A 0> i es decreciente en el intervalo


]n> n + %[ y creciente en ](n + 1)   %> (n + 1) [ = En esta situacin ha de existir un mnimo local de i en el intervalo ]n> (n + 1) [ > para cada n impar, lo
que prueba que existen infinitos ptimos locales.

52

Optimizacin matemtica aplicada

2.4.

Los casos convexo y cuadrtico

En esta seccin se analizan dos casos particulares de problemas de PNL sin


restricciones: problemas con funcin objetivo convexa y problemas con funcin
objetivo cuadrtica. El primer caso tiene inters fundamentalmente por el buen
comportamiento de estos problemas con respecto a la optimalidad global, y el
segundo, por su simplicidad en el clculo.
Teorema 2.1 (Problemas convexos) Sea { 5 Rq > consideremos el problema
(S ) P lq i ({)
con i : Rq $ R convexa. Se tiene:
(i) Si { es un ptimo local de (S ) > entonces { es un ptimo global de (S ) ;
(ii) Supongamos que i 5 F 1 (Rq ) = Si ui ({) = 0q > entonces { es un ptimo
global de (S ) =
2

Ejercicio 2.8 Resolver el problema (S ) P lq h({1 31)

+({2 33)2 =

Solucin. se tiene:

({1 31)2 +({2 33)2

ui ({) = h
As, { =

1
3

0
2 ({1  1)
=
/ {1 = 1> {2 = 3=
0
2 ({2  3)

es el nico punto crtico de (S ) = Puede comprobarse fcilmente

que i es convexa a partir de la proposicin 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 aplicacin 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 algn ptimo global).
Solucin. Se tiene que


2{1 + h{1 +{2
0
ui ({) =
=
, 2{1 = 2{2 = h{1 +{2 =
{
+{
2{2 + h 1 2
0

Captulo 2. Optimizacin sin restricciones

53

Dado que ha de ser {1 = {2 > nuestro problema se traduce en encontrar una


solucin de la ecuacin:
2{1 + h2{1 = 0=
Sin embargo, en esta ecuacin no nos es posible despejar explcitamente {1 =
As pues, probaremos la existencia de solucin sin llegar a determinarla explcitamente. En efecto, sea k ({1 ) = 2{1 + h2{1 = Ntese que k (0) = h0 = 1> y
k (1) = 2 +

1
h2

? 0= En virtud del teorema de Bolzano, podemos asegurar la

existencia de {1 5 ]1> 0[ tal que


k ({1 ) = 2{1 + h2{1 = 0=
Entonces


{1
ui ({) = 0> siendo { =
5 ]1> 0[ ]1> 0[ .
{1

Adems, { es el nico punto crtico, pues {1 es la nica raz de la ecuacin


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 ms de un
punto. Por otro lado, se comprueba fcilmente que i es convexa pues es suma de
convexas (i = j + k con j ({) = {21 + {22 y k ({) = h{1 +{2 )> vase la proposicin
1.9. As pues, { es el nico ptimo global de (S ).
Teorema 2.2 (Problemas cuadrticos) Consideremos el problema
(S ) P lq i ({)
con i : Rq $ R cuadrtica expresada de la forma
1
i ({) := {0 T{ + f0 { + e>
2
siendo T una matriz simtrica de orden q> f 5 Rq > e 5 R= Pueden presentarse
los siguiente casos:
(i) Si el sistema ui ({) = T{+f = 0q es compatible y T (= Ki ({) para todo
{) es definida o semidefinida positiva, entonces, (S ) es resoluble y adems los
conjuntos de puntos crticos, de ptimos locales y de ptimos globales coinciden,
esto es,
C = L = G = {{ 5 Rq | T{ + f = 0q } =

54

Optimizacin matemtica aplicada


(ii) Si el sistema ui ({) = T{ + f = 0q es compatible y T> supuesta no

nula, es definida o semidefinida negativa, el problema (S ) es no acotado, esto


es, y = 4= (El conjunto de puntos crticos coincide con el de mximos locales
y mximos globales).
(iii) Si el sistema ui ({) = T{ + f = 0q es compatible y T es indefinida,
el problema (S ) es no acotado. En este caso, los puntos crticos son puntos de
silla;
(iv) Si el sistema ui ({) = T{ + f = 0q es incompatible (no existen puntos
crticos), entonces (S ) es no acotado.
Observacin 2.3 Ntese que, como consecuencia directa de la proposicin 1.8
(ii), la funcin objetivo del teorema anterior (i ({) := 12 {0 T{ + f0 { + e> { 5 Rq )
es convexa si, y solo si, T es definida o semidefinida positiva.
Ejercicio 2.10 Resolver los siguientes problemas cuadrticos:
(i) (S ) P lq {21 + 2{1 {2 + 4{22 + {1 + {2 ;
(ii) (S ) P lq {21 + 2{1 {2 + {22 + {1 + {2 + 4;
(iii) (S ) P lq {21 + 2{1 {2 + {22 + {1  {2 + 4;
(iv) (S ) P lq {21 + 2{1 {2  4{22 + {1 + {2 + 4;
(v) (S ) P lq {21 + 2{1 {2  4{22 + {1 + {2 + 4;
(vi) (S ) P lq {21 + 2{1 {2  {22 + {1  {2 + 4=
Solucin. (i) Adaptemos la funcin objetivo i ({) = {21 +2{1 {2 +4{22 +{1 +{2
al formato
1
i ({) := {0 T{ + f0 { + e>
2
tomando
T=

2 2
2 8


1
> e = 0=
> f=
1

Ntese que T es definida positiva. Ahora hemos de resolver el sistema


T{ + f = 0> esto es,

!
{1
1
0
=
+
=
1
0
{2
2 8
2 2

Captulo 2. Optimizacin sin restricciones

55

1
2
= Por tanto, aplicando el apartado (i)
El sistema tiene solucin nica { =
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=
1
2 2
Ahora T es semidefinida positiva. Los puntos crticos son las soluciones del
sistema T{ + f = 0> esto es,
!

2 2
1
0
{1
+
=
=
{2
1
0
2 2
Se trata de un sistema compatible indeterminado, esto es, con infinitas soluciones. Concretamente, en virtud del teorema anterior,

El valor ptimo

C = L = G = { 5 R2 | 2{1 + 2{2 + 1 = 0 =
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:
T=

2 2
2 2

> f=

1
> e = 4=
1

En este caso el sistema T{ + f = 0 dado por

!
2 2
1
0
{1
>
+
=
1
0
{2
2 2

56

Optimizacin matemtica aplicada

es incompatible (no tiene solucin). As pues,


y = 4=
(iv) Para i ({) = {21 + 2{1 {2  4{22 + {1 + {2 + 4 se tiene:
T=

2 8

> f=


1
> e = 4=
1

T es indefinida, as que
y = 4=
(En este caso existiran puntos crticos, pero ninguno es ptimo local, y por
supuesto, ninguno global).
(v) Para i ({) = {21 + 2{1 {2  4{22 + {1 + {2 + 4 se tiene:
T=

2

8


1
> e = 4=
> f=
1

La matriz T es definida negativa, por tanto


y = 4=
(En este caso existir un nico punto crtico que ser un mximo global).
(vi) Sea i ({) = {21 + 2{1 {2  {22 + {1  {2 + 4= Se tiene:
T=

2

2

1
> e = 4=
> f=
1

La matriz T es semidefinida negativa, por tanto


y = 4=
(Puede comprobarse que existen infinitos puntos crticos, y en este caso, todos
seran mximos globales).

Captulo 3

Optimizacin con restricciones


A lo largo de este captulo consideramos el problema de PNL con restricciones
dado por:
(S ) P lq i ({)
v=d jl ({)  0>

l = 1> 2> ===> p>

(3.1)

donde { 5 Rq representa a la variable de decisin, i : Rq $ R es la funcin objetivo 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 incorporando ciertas hiptesis de continuidad y diferenciabilidad a estas funciones= Por
simplicidad, los enunciados de los diferentes resultados tericos se darn para el
problema (3.1) cuyo sistema de restricciones contiene nicamente desigualdades.
Este tratamiento no supone prdida 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 teora desarrollada en este captulo, a continuacin
recordamos las condiciones de Lagrange, que habitualmente se incluyen en la
materia de clculo en varias variables. Cuando se considera el problema de PNL
con restricciones de igualdad:
(S0 ) P lq i ({)
v=d jl ({) = 0> l = 1> 2> ===> p>

(3.2)

si { es un ptimo local de (S0 ) > siendo i diferenciable en {> jl de clase F 1 en un


57

58

Optimizacin matemtica 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


ui ({) +

p
X

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 mtodo de los multiplicadores de Lagrange, presentado en su da
como una herramienta clave para encontrar el estado de equilibrio estable de
un sistema mecnico. Como se comenta en la introduccin, este resultado fue
publicado por Lagrange en 1788, en su libro Mcanique Analytique.

3.1.

Notacin y definiciones

A continuacin, introducimos los conceptos bsicos relacionados con la resolucin de nuestro problema de PNL con restricciones.
Definicin 3.1 Dado el problema (S ) de PNL con restricciones introducido en
(3.1), se definen los siguientes elementos:
(i) El conjunto factible de (S ) > denotado por I> es el conjunto de soluciones
del sistema de restricciones de (S ) > esto es,
I := {{ 5 Rq | jl ({)  0 > l = 1> ===> p} ;
(ii) El valor ptimo de (S ) > denotado por y> est dado por
y := inf {i ({) : { 5 I } ;
(adoptamos el convenio de que y = +4 cuando I = >)=
(iii) Un punto { 5 I es ptimo local de (S ) si existe un entorno de {>
X  Rq > tal que
i ({)  i ({) para todo { 5 X _ I ;
(iv) Un punto { 5 I es ptimo global de (S ) si
i ({)  i ({) para todo { 5 I ;
en otras palabras, si el valor ptimo se alcanza en el punto factible { (i.e.,
y = i ({))=

Captulo 3. Optimizacin con restricciones

59

Observacin 3.1 En los ejercicios prcticos, cuando se trate de demostrar que


un punto { 5 I no es ptimo local, lo haremos mediante la caracterizacin
secuencial de esta propiedad. Concretamente, el que { 5 I no sea ptimo local
de (S ) equivale a la existencia de una sucesin {{q }  I tal que
lm {q = {

i ({q ) ? i ({) > q = 1> 2> ====

Como en los captulos anteriores, L y G representan los conjuntos de ptimos

locales y ptimos globales de (S ) = Obviamente se tiene la relacin


G  L  I=

En este contexto, por resolver (S ) entenderemos determinar estos elementos


destacados: su valor ptimo, el conjunto de ptimos locales y ptimos globales.
Por su parte, la clasificacin de problemas de PNL con restricciones queda de
la siguiente manera.
Definicin 3.2 Sea (S ) un problema de PNL con restricciones.
(i) Se dice que (S ) es consistente si existe algn punto factible (I 6= B);

(ii) Se dice que (S ) es acotado si su valor ptimo es finito (4 ? y ? +4);


(iii) Se dice que (S ) es resoluble si existe algn ptimo global (G 6= B).
Seguidamente presentamos la contrapartida de la proposicin 2.1 en el mbito de la optimizacin con restricciones.
Proposicin 3.1 Sea (S ) el problema (3.1) y sea
optimizacin dado por
(Se) P lq ! (i({))

v=d !l (jl ({))  !l (0) >


Se el nuevo problema de

l = 1> 2> ===> p>

donde ! : D $ R es una funcin estrictamente creciente en D> con Im i 


D  R; y donde, para cada l = 1> 2> ===> p> !l : Dl $ R es una funcin estrictamente creciente en Dl > con (Im jl ^ {0})  Dl  R= Se tienen las siguientes
equivalencias:

60

Optimizacin matemtica aplicada



(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 =

Observacin 3.2 Se puede establecer un resultado anlogo al de la proposicin

anterior para problemas cuyos sistemas de restricciones tengan trminos independientes arbitrarios, esto es, para problemas cuyos sistemas de restricciones
asociados sean de la forma
{jl ({)  el > l = 1> ===> p} >
con el 5 R para todo l= En este caso, las funciones !l de la proposicin anterior
han de ser estrictamente crecientes en Dl > con (Im jl ^ {el })  Dl  R=
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 proposicin anterior), diremos que son problemas equivalentes.

Ejemplo 3.1 Veamos que los siguientes problemas son equivalentes:


2
3
Se
P lq log {21 + 1 + 3 log (|{2 | + 1)
(S ) P lq {1 + 1 (|{2 | + 1)
p
v=d
{21 + {22  3> y
v=d
{21 + {22  9>
log |{1 | + log |{2 |  0>

|{1 {2 |  1=

En efecto, si i representa a la funcin objetivo de (S ) > la funcin objetivo de



Se coincide con la composicin !  i> donde ! : ]0> +4[ $ R> con ! (w) = log w=

Ntese que ]0> +4[  Im i = [1> +4[ = Respecto de las restricciones, si j1 y j2


denotan a las funciones que figuran en las restricciones de (S ) > esto es,
q
j1 ({) = {21 + {22 y j2 ({) = log |{1 | + log |{2 | >


las restricciones de Se vienen determinadas por !1  j1 y !2  j2 donde
!1 : R+ $ R> con !1 (w) = w2 > y !2 : R $ R> con !2 (w) = hw =

Ntese que !1 es estrictamente creciente en R+  Im j1 ^ {3} = R+ > y !2 es

estrictamente creciente en R=

Captulo 3. Optimizacin con restricciones

3.2.

61

Las condiciones de Karush, Kuhn y Tucker

Desde la aparicin de las condiciones de Karush, Kuhn y Tucker en 1951


(vase la introduccin para detalles adicionales), la teora y los mtodos de la
programacin no lineal han experimentado un notable desarrollo. Bajo ciertas
hiptesis sobre las restricciones de un problema, las condiciones de Karush,
Kuhn y Tucker (KKT, para abreviar) proporcionan todos los candidatos a ptimos locales del mismo. Las condiciones de KKT se formulan en trminos de
un sistema de igualdades (vase la definicin 3.3) que en ocasiones es fcilmente
resoluble de forma exacta, en cuyo caso constituyen un mtodo directo de resolucin de problemas de optimizacin. Diversas aplicaciones en esta lnea pueden
encontrarse, por ejemplo, en Barbolla et l. [2], Bertsekas [5] y Luenberger [16].
A continuacin, se introducen formalmente las condiciones de KKT.
En lo que sigue cada vez que aparezca el gradiente de una funcin asumiremos
implcitamente que ste existe. As, por ejemplo, en la siguiente definicin asumimos implcitamente que existen los gradientes ui ({) y ujl ({) > l = 1> ===> p=
Definicin 3.3 Consideremos el problema (S ) de PNL con restricciones introducido en (3.1). Se dice que { 5 I es un punto de Karush, Kuhn y Tucker
(KKT, para abreviar) de (S ) si existen escalares l  0> con l = 1> 2> ===> p,
tales que
ui ({) =

p
X

l ujl ({) >

(3.4)

l=1

l jl ({) = 0> l = 1> ===> p=


En ocasiones, nos referiremos a las condiciones anteriores (3.4) como condiciones de KKT y, en particular, a las igualdades del segundo bloque (l jl ({) =
0> l = 1> ===> p) como condiciones de complementariedad .
La definicin de punto de KKT puede escribirse, alternativamente, haciendo
uso del llamado conjunto de ndices activos L ({), que se define como
L ({) = {l 5 {1> ===> p} | jl ({) = 0} =

62

Optimizacin matemtica aplicada


As pues, el enunciado alternativo de la definicin de punto de KKT quedara:

{ 5 I es un punto de KKT si existen escalares l  0> l 5 L ({), tales que


ui ({) =

l ujl ({) =

lML({)

Entendemos que

lML({) l ujl ({)

= 0 si L ({) = >=

Ntese que para determinar el conjunto de puntos de KKT han de distinguirse diferentes casos, dependiendo de las diferentes elecciones de conjuntos de
ndices activos. Atendiendo a la definicin 3.3 tambin puede observarse que la
resolucin del sistema de ecuaciones (3.4), concretamente el sistema de ecuaciones {l jl ({) = 0> l = 1> ===> p} > conduce al anlisis de diferentes casos (por

ejemplo, j1 ({) = 0 j1 ({) 6= 0> etc). En ltima instancia, la resolucin prc-

tica de las ecuaciones (3.4) conduce al mismo procedimiento de distinguir los


posibles conjuntos de ndices activos.
Ejemplo 3.2 Determinar el conjunto de puntos de KKT del problema:
(S ) P lq ({1  1) ({2  1)
v=d

{1 + {2  1>
{1 > {2  0=

Como se ha comentado anteriormente, distinguiremos diferentes casos. Puesto


que (S ) tiene tres restricciones (j1 ({) = {1 + {2  1  0> j2 ({) = {1  0>
j3 ({) = {2  0) analizaremos un total de 23 combinaciones.
Caso I: L ({) = >= En este caso, se trata de determinar el conjunto de puntos
crticos del problema sin restricciones que sean factibles para (S ). En concreto,

0
{2  1
, {1 = {2 = 1=
=
ui ({) =
{1  1
0

1
Puesto que { =
5
@ I> este caso no proporciona ningn punto factible.
1
Caso II: L ({) = {1} = Buscamos soluciones del sistema:


;
{2  1
1
A
A
ui
({)
=

=

>
1
A
?
{1  1
1
{1 + {2 = 1 (pues L ({) = {1})>
A
A
A
=
1  0> { 5 I=

Captulo 3. Optimizacin con restricciones

63

Del primer bloque se deduce 1  {2 = 1 = 1  {1 > lo que implica {1 = {2 =


Sustituyendo en el segundo bloque,
obtenemos {1 = {2 = 12 > y por tanto 1 =

1@2
1  12 = 12  0= Puesto que { =
5 I> se trata de un punto de KKT.
1@2
Caso III: L ({) = {2} = Buscamos soluciones del sistema:


;
{2  1
1
A
A
A
? ui ({) =  {1  1 = 2 0 >
{1 = 0 (pues L ({) = {2})>
A
A
A
=
2  0> { 5 I=
Del primer bloque se deduce 1  {2 = 2 y {1 = 1> lo que contradice la
igualdad {1 = 0= As pues, este caso no proporciona ninguna solucin.
Caso IV: L ({) = {3} = Buscamos soluciones del sistema:

;
0
{2  1
A
A
= 3
>
A ui ({) = 
?
1
{1  1
{2 = 0 (pues L ({) = {3})>
A
A
A
=
3  0> { 5 I=
Del primer bloque se deduce 1 = {2 y 1  {1 = 3 > por lo que se encuentra
una contradiccin con {2 = 0=
Caso V: L ({) = {1> 2} = Buscamos soluciones del sistema:
;



{2  1
1
1
A
A
ui
({)
=

=

+

>
A
1
2
A
A

1
1
0
{
1
A
?
{1 + {2 = 1>
A
A
A
{1 = 0>
A
A
A
=
  0>   0> { 5 I=
1


0
Se deduce inmediatamente que { =
= Sustituyendo en el primer bloque,
1
se tiene 0 = 1  2 y 1 = 1 > lo que implica 2 = 1= Puesto que, { 5 I> se trata
de un punto de KKT.
Caso VI: L ({) = {1> 3} = Buscamos soluciones del sistema:
;



{2  1
1
0
A
A
ui ({) = 
= 1
+ 3
>
A
A
A
{1  1
1
1
A
?
{1 + {2 = 1>
A
A
A
{2 = 0>
A
A
A
=
  0>   0> { 5 I=
1

64

Optimizacin matemtica aplicada


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:
;



{

1
1
0
2
A
A
ui ({) = 
= 2
+ 3
>
A
A
A
{1  1
0
1
A
?
{1 = 0>
A
A
A
{2 = 0>
A
A
A
=
  0>   0> { 5 I=
2


0
y sustituyendo en el primer bloque, se
0
tiene 1 = 2 y 1 = 3 > lo que contradice la no negatividad de los multipliInmediatamente se deduce { =

cadores.
Caso VIII: L ({) = {1> 2> 3} = Este caso no proporciona ninguna solucin, pues

entre sus ecuaciones encontramos {1 + {2 = 1> junto con {1 = 0 y {2 = 0> lo
que obviamente constituye una contradiccin.
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
Ms adelante analizaremos la optimalidad local y global de cada uno de estos
puntos.

3.2.1.

Hiptesis de cualificacin de restricciones

Bajo ciertas hiptesis, referidas en la literatura como hiptesis de cualificacin de restricciones (que abreviaremos por CQ, del ingls constraint qualification), las condiciones de KKT proporcionan todos los candidatos a ptimos
locales. Formalmente, la siguiente implicacin es cierta cuando se verifica alguna
CQ: si { es un ptimo local del problema (3.1), entonces { es punto de KKT

Captulo 3. Optimizacin con restricciones

65

del mismo. Existen en la literatura numerosas hiptesis de cualificacin de restricciones, como puede consultarse en el artculo de Peterson [20]. En este libro
recogemos tres de estas hiptesis:
LCQ (del ingls, Linear Constraint Qualification) se verifica en { 5 I si
las jl > con l 5 L ({) > son lineales;
LICQ (Linear Indepence Constraint Qualification) se verifica en { 5 I si
el sistema de vectores {ujl ({) > l 5 L ({)} es linealmente independiente;
SCQ (Slater Constraint Qualification) se verifica en { 5 I si las jl > con
l 5 L ({) > son convexas y existe {
b 5 Rq tal que jl (b
{) ? 0> l 5 L ({) ; en

este caso se dice que {


b es un punto de Slater (solucin estricta) del sistema

{jl ({)  0> l 5 L ({)} =

El siguiente ejemplo publicado en 1951 por Kuhn y Tucker proporciona un


modelo de optimizacin con un ptimo global en el que no se verifica ninguna
de las tres cualificaciones anteriores.
Ejemplo 3.3 (Kuhn y Tucker, 1951) Consideremos el problema de PNL,
en R2 > dado por:
(S ) P lq {1
v=d {2  {31  0>
{2  0=
0
Puede comprobarse fcilmente que { = 0 es ptimo local; de hecho es ptimo
global, pues todo punto factible verifica {31  {2  0> y entonces
i ({) = {1  0 = i ({) para todo { 5 I=
Por otro lado, L ({) = {1> 2}= Obviamente no se cumple LCQ (la primera restric-

cin es no lineal). Tampoco se cumple LICQ pues




0
0
y uj2 ({) =
>
uj1 ({) =
1
1

que forman un sistema linealmente dependiente. Finalmente, tampoco se verifica


SCQ, pues la primera restriccin no es convexa.

66

Optimizacin matemtica aplicada

3.2.2.

Condicin de optimalidad de primer orden

El siguiente teorema recoge el enunciado que venimos anunciando y que


constituye un resultado fundamental en programacin no lineal.
Teorema 3.1 (Las condiciones de KKT) Consideremos el problema (S ) de
PNL con restricciones introducido en (3.1). Sea { 5 I y supongamos que las
funciones i y jl , con l 5 L ({) > son diferenciables en {> y que las jl >con l 5
@ L ({) >
son continuas en {= Supongamos, adems, que se cumple al menos una de las
condiciones LCQ, LICQ o SCQ en {= Si { es un ptimo local de (S ), entonces
{ es un punto de KKT.
Los siguientes ejemplos ponen de manifiesto que las hiptesis de cualificaciones de restricciones no son superfluas en el teorema anterior.
Ejemplo 3.4 (Ejemplo 3.3 revisitado) Recurdese que { =

0
0

es un p-

timo global, y por tanto local, del problema de optimizacin presentado en el


ejemplo 3.3. En este punto, ya se comprob que no se verifica ninguna de las
tres cualificaciones de restricciones anteriores. De hecho, { es un ptimo local
que no es punto de KKT (vase la figura 3.1). En efecto,



1
0
0
> mientras que uj1 ({) =
y uj2 ({) =
>
ui ({) =
0
1
1
luego ui ({) no es combinacin lineal de uj1 ({) y uj2 ({) =
Ejemplo 3.5 Consideremos el problema de PNL, en R2 > dado por:
(S ) P lq {2
v=d {21 + {22  1>
({1  2)2 + {22  1=
Puede comprobarse fcilmente que I se reduce a un punto, en concreto I =

{ 10 } (vase la figura 3.2)= En este punto, { = 10 > el conjunto de ndices activos

es L ({) = {1> 2}= No se verifica LCQ (restricciones no lineales). Tampoco se


verifica LICQ pues uj1 ({) = 20 y uj2 ({) = 32
0 = Las funciones j1 y j2

son convexas; sin embargo, no existe ningn punto de Slater; esto es, no existe

Captulo 3. Optimizacin con restricciones

67

g  
x

f  
x

F
x

g  
x

Figura 3.1: Ilustracin del ejemplo 3.4.

g  
x

g 
x F ^`
x
x
f 
x

Figura 3.2: Ilustracin del ejemplo 3.5.

{) ? 0> l = 1> 2= Por tanto, no se verifica SCQ. Por


ningn {
b 5 Rq tal que jl (b
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


no es una combinacin lineal de uj1 ({) = 20 y uj2 ({) = 32
ui ({) = 31
0 .

3.3.

Condiciones de optimalidad de segundo orden

El siguiente ejemplo muestra que las condiciones de KKT no son suficientes


para garantizar la optimalidad local del punto considerado.

68

Optimizacin matemtica aplicada

Ejemplo 3.6 (Las condiciones de KKT no son suficientes) Consideremos el problema


(S ) P lq {21  {22 + {1
v=d

{21 + {22  1>


{1  0> {2  0=

Veamos que { =

0
0

es un punto de KKT y, sin embargo, no es un ptimo

local. Se tiene que L ({) = {2> 3}> as las condiciones de KKT quedan:
(

0

ui ({) =  10 = 2 31
0 + 3 31 >
2 > 3  0=

Obviamente 2 = 1 y 3 = 0 proporcionan una solucin del sistema anterior.


Por tanto, { es un punto de KKT. Veamos que { no es un ptimo local de (S ) =
Consideremos la sucesin

0
{ = 1 > q = 1> 2> ====
q

Ntese que
1
? 0 = i ({) =
q2
A partir de la observacin 3.1, concluimos que { no es ptimo local.
{{q }  I y i ({q ) = 

Con el fin de profundizar un poco ms en el anlisis de la optimalidad,


enunciamos dos nuevos resultados que involucran derivadas parciales de segundo
orden. Consideremos la funcin 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>

que viene dada por


O ({> ) = i({) + 0 j ({)
donde j representa a la funcin vectorial que tiene a las jl como sus funciones
coordenadas. Asimismo denotaremos por u{ O ({> ) al gradiente, respecto de {>
de O; esto es,
u{ O ({> ) := ui ({) +

p
X
l=1

l ujl ({) =

Captulo 3. Optimizacin con restricciones

69

As pues, las condiciones de KKT para el problema (3.1) pueden alternativamente expresarse como1
;
A
u{ O ({> ) = 0q >
A
?
l jl ({) = 0> l = 1> 2> ===> p> (Condiciones de KKT)
A
A
=
  0> j ({)  0 =
l

Al vector   0p formado por los escalares que intervienen en las condiciones


de KKT se le llama vector de multiplicadores de KKT.
En lo que sigue denotaremos por K{ O ({> ) a la matriz hessiana, respecto
de {, de O; esto es:
K{ O ({> ) := Ki ({) +

p
X

l Kjl ({) >

l=1

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 =

Teorema 3.2 (Condicin necesaria de segundo orden) Sea { un ptimo


local del problema (S ) > introducido en (3.1). Supongamos que i> jl > l 5 L ({) >
son de clase F 2 en un entorno de {> que jl > l 5
@ L ({) son funciones continuas
en {> y que {ujl ({) > l 5 L ({)} forma un sistema linealmente independiente2 =
Entonces se verifican los siguientes enunciados:
(l) Existen un nico ,   0p verificando

0
u{ O {>  = 0q > y  j ({) = 0;

(ll) Adems, la restriccin de K{ O {>  (en rigor la restriccin de la forma

cuadrtica asociada) al subespacio

P ({) := {ujl ({) : l 5 L ({)}z


1

Sp

Las condiciones de complementariedad tambin podran expresarse en una nica ecuacin

l=1

l jl ({) = 0 lo que equivale a 0 j ({) = 0= Este hecho es consecuencia de que todos los

sumandos l jl ({) son negativos o nulos.


2
Recordemos que esta hiptesis constituye la cualificacin de restricciones que abrevibamos
por LICQ. En esta situacin, se dice que { es un punto regular de (S ) =

70

Optimizacin matemtica aplicada

es definida o semidefinida positiva; esto es, para todo g 5 P ({) > se tiene que

g0 K{ O {>  g  0=

Observacin 3.3 En el caso en el que P ({) = {0q } la condicin (ii) del


teorema anterior se satisface trivialmente.

En el siguiente enunciado distinguiremos entre dos clases de restricciones


activas asociadas a un punto de KKT {> y al vector  que recoge los multiplicadores de KKT. Siguiendo la terminologa de Fletcher [9], llamaremos restricciones fuertemente activas (o tambin, no degeneradas) a las asociadas al
conjunto de ndices

L + {>  := l 5 L ({) | l A 0 >

mientras que el resto de restricciones de desigualdad activas son denominadas


restricciones dbilmente activas. En trminos informales, esta distincin viene
motivada por el hecho de que esta ltima clase de restricciones activas no desempean ningn papel en las condiciones de KKT (estas condiciones se verifican,
aun eliminando del planteamiento dichas restricciones).
Teorema 3.3 (Condicin suficiente de segundo orden) Sea { 5 I un
punto de KKT del problema (S ) introducido en (3.1) y sea   0p un vec

tor de multiplicadores asociados a { (esto es, {>  verifica las condiciones de

KKT). Supongamos que i> jl > l 5 L ({) > son de clase F 2 en un entorno de {>

@ L ({) son funciones continuas en {= Si, adems, se verifica que la


y que jl > l 5

restriccin de K{ O {>  al subespacio

P + {>  := ujl ({) : l 5 L + {> 

es definida positiva (esto es, g0 K{ O {>  g A 0 para todo g 5 P + {>  \ {0q })>

entonces { es un ptimo local de (S ).

Observacin 3.4 Si P + {>  = {0q }> se verifica trivialmente la condicin

suficiente de optimalidad enunciada en el teorema anterior, pues P + {>  \ {0q }


= > y entonces la implicacin lgica

g 5 P + {>  \ {0q } , g0 K{ O {>  g A 0>

Captulo 3. Optimizacin con restricciones

71

es verdadera (un ejemplo de esta situacin aparece en el caso II del ejemplo 3.9).
El siguiente ejemplo pone de manifiesto que las condiciones necesarias del
teorema 3.2 no son suficientes para garantizar la optimalidad local.
Ejemplo 3.7 (La condicin necesaria no es suficiente) Consideremos el
problema, en R3 >
(S ) P lq {21  {22 + {3
v=d

{2 > {3  0=

Veamos que:
a) { = (0> 0> 0)0 es un punto de KKT de (S );

b) Si  un vector de multiplicadores asociado a {, la matriz K{ O {>  es

definida positiva sobre P ({) =

c) Se cumple la condicin necesaria de optimalidad segundo orden? Y la


suficiente?
d) Es { un ptimo local del problema?
Solucin.
a) Se tiene que L ({) = {1> 2} y las condiciones de KKT en { se escriben

como:

;
0
0
0
A
A
? ui ({) =  (0> 0> 1) = 1 (0> 1> 0) + 2 (0> 0> 1) >
{2 = {3 = 0>
A
A
=
 >   0=
1

La nica solucin del sistema anterior es 1 = 0> 2 = 1= Ambos escalares son


no negativos y, por tanto, { = (0> 0> 0)0 es un punto de KKT con vector de
multiplicadores asociado  = (0> 1)0 =
b) En este caso

3
4
2 0 0
F

E
F
K{ O {>  = E
C0 2 0D =
0 0 0

Por otro lado, dado que j1 ({) = {2 y j2 ({) = {3 > se tiene:

z
P ({) = {ujl ({) : l 5 L ({)}z = (0> 1> 0)0 > (0> 0> 1)0

= y 5 R3 | (y1 > y2 > y3 ) (0> 1> 0)0 = 0> (y1 > y2 > y3 ) (0> 0> 1)0 = 0

= y 5 R3 | y2 = 0>  y3 = 0 =

72

Optimizacin matemtica aplicada

As pues, {(1> 0> 0)0 } es una base de P ({) y la matriz asociada a la restriccin

de K{ O {>  a P ({) > expresada en dicha base, quedara:


3
43 4
2
0
0
1

E
FE F
FE F
1 0 0 E
C0 2 0D C0D = (2) >
0 0 0
0

que obviamente es definida positiva.


c) Se cumple la condicin necesaria de segundo orden (vase el teorema 3.2),
sin embargo, veamos que no se cumple la suficiente. Para ello, hemos de analizar

la restriccin de K{ O {>  a P + {>  (tal y como se indica en el teorema 3.3).

Puesto que L + {>  = {2} (pues 2 es el nico multiplicador de KKT no nulo),


se tiene:

z

z
= (0> 0> 1)0
P + {>  = ujl ({) : l 5 L + {> 

= y 5 R3 | (y1 > y2 > y3 ) (0> 0> 1)0 = 0

= y 5 R3 | y3 = 0 =

As pues, {(1> 0> 0)0 > (0> 1> 0)0 } forma una base de P + {>  y la matriz aso

ciada a la restriccin de K{ O {>  a P + {>  > en dicha base, es


3
43
4
! 2 0 0

!
1 0
FE
F
1 0 0 E
2
0
E0 2 0F E0 1F =
=
DC
D
0 1 0 C
0 2
0 0 0
0 0

Dicha restriccin es indefinida, y por tanto no se satisface la condicin suficiente


de segundo orden.
d) Como consecuencia del estudio realizado en los apartados previos, no
podemos concluir si { es o no ptimo local, pues se cumplen las condiciones
necesarias de primer y segundo orden pero no la suficiente. Ntese, adems,
que en este ejemplo se cumple LICQ en todos los puntos factibles pues, para

cualquier {> {uj1 ({) > uj2 ({)} = (0> 1> 0)0 > (0> 0> 1)0 forman un sistema de

vectores linealmente independiente.

En esta situacin, analizaremos la optimalidad de { a partir de la definicin.


Concretamente, haremos uso de la observacin 3.1. Consideremos la sucesin

Captulo 3. Optimizacin con restricciones


{{q } dada por

73

1
{ := 0> > 0 > q = 1> 2> ====
q
q

Se tiene que

{q 5 I y i ({q ) =

1
? 0 = i ({) > para todo q=
q2

En esta situacin, { no es un ptimo local de (S ) =

Ejemplo 3.8 (La condicin suficiente no es necesaria) Consideremos el


problema, en R2 >
(S ) P lq ({1  {2 )2  {1 + {2
v=d
Se pide:
a) Comprobar que { =

1 0
2> 2

{1  {2  0=

es un punto de KKT.

b) Se cumple en { la condicin suficiente de segundo orden?


c) Comprobar que { es un ptimo global de (S ) =
Solucin. a) En efecto, L ({) = {1} y se cumplen las condiciones de KKT:


1
1
ui ({) = 
= 1
>
1
1
con 1 = 1=
b) Veamos que no se cumple la condicin suficiente de segundo orden:
!

2 2
>
K{ O {>  =
2 2
y, por otro lado

z

z
= (1> 1)0
P + {>  = ujl ({) : l 5 L + {> 

= y 5 R2 | y1  y2 = 0 =

Consideramos una base de P + {>  > {(1> 1)0 }> y la matriz asociada a la

restriccin de K{ O {>  a dicho subespacio, en dicha base, es


!

! !

2 2
1
= (0) =
= 0 0
1 1
1
1
2 2

74

Optimizacin matemtica aplicada

Puesto que dicha matriz no es definida positiva, no se cumple la condicin suficiente de segundo orden.
c) En este apartado se muestra que { es ptimo global de (S ) a pesar de
no cumplir la condicin suficiente de optimalidad, por lo que decimos que dicha
condicin suficiente de optimalidad local no es necesaria. Trataremos este apartado directamente mediante la definicin; esto es, veamos que
i ({)  0 (= i ({)) para todo { 5 I=
En efecto, si { 5 I , se verifica {1  {2  0= Bajo esta hiptesis, esto es, si { 5 I>
se tiene:
i ({) = ({1  {2 )2  {1 + {2  0  {1 + {2  0>
como queramos probar.
Ejemplo 3.9 (Ejemplo 3.2 revisitado) Determinar el conjunto de ptimos
locales del problema:
(S ) P lq ({1  1) ({2  1)
v=d

{1 + {2  1>
{1 > {2  0=

Solucin. 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 (vase 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
Ntese que, con el fin de definir el vector completo de multiplicadores de KKT,
@ L ({) =
basta considerar l = 0 si l 5
Analicemos ahora las condiciones de segundo orden en cada uno de los puntos
de KKT.

Captulo 3. Optimizacin con restricciones


Caso I: L ({) = {1}> { =

75

0
con  = 12 > 0> 0 = Se tiene que

0 1
K{ O {>  =
>
1 0

1 0
2> 2 >

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 restriccin de K{ O {>  al subespacio P ({) > en dicha base, es


!
! !

1

0 1
1
= (2) >
= 1 1
1 1
1
1
1 0
que es definida negativa.
As pues, no cumple la condicin necesaria de segundo orden, y por tanto {
no es ptimo local de (S ) = Ntese, adems, que en dicho punto se cumple LICQ,
pues {uj1 ({)} es linealmente independiente. Recurdese que esta hiptesis tambin figura en el teorema 3.2.

Caso II: L ({) = {1> 2}> { = (0> 1)0 con  = (1> 1> 0)0 = Se tiene que
!

0 1
>
K{ O {>  =
1 0

y los subespacios P ({) y P + {>  se reducen al origen. En efecto,

z

P ({) = P + {>  = (1> 1)0 > (1> 0)0

= y 5 R2 | y1 + y2 = 0>  y1 = 0 = {02 }=

En este caso, se cumple trivialmente la condicin suficiente de optimalidad (vase


la observacin 3.4), y por tanto { = (0> 1)0 es un ptimo local.
Caso III: L ({) = {1> 3}> { = (1> 0)0 con  = (1> 0> 1)0 = Se tiene que
!

0 1
>
K{ O {>  =
1 0

76

Optimizacin matemtica aplicada

y, como antes, los subespacios P ({) y P + {>  se reducen al origen. As

pues, se cumple trivialmente la condicin suficiente de optimalidad, y por tanto


{ = (1> 0)0 es un ptimo local.
En resumen, el conjunto de ptimos locales est dado por
L = {(0> 1)0 > (1> 0)0 }=

3.4.

Interpretacin de los multiplicadores de KKT

Imaginemos que deseamos construir una caja de cartn como la de la figura:

x

VRODSD
x3

x
x

x

Supongamos que el beneficio que reporta para nosotros la construccin de


dicha caja es proporcional a su volumen una vez cerrada, de forma que nos
interesa minimizar i ({1 > {2 > {3 ) = {1 {2 {3 (lo que equivale a maximizar el
volumen)= Supongamos asimismo que tenemos restringida la cantidad de material (rea total), estando sujetos a la restriccin
j ({1 > {2 > {3 ) = 2 ({1 + {2 ) ({2 + {3 )  f0  0>
siendo f0 una constante positiva, y por supuesto {1  0> {2  0 y {3  0=
Dada la naturaleza del problema, en un ptimo local tendrn que ser positivos {1 > {2 y {3 (pues si alguno de ellos fuese cero el volumen de la caja sera

Captulo 3. Optimizacin con restricciones

77

nulo, y evidentemente no tendramos un ptimo local). Esto significa que, con


el fin de buscar puntos de KKT que pudieran ser ptimos locales, podremos
considerar {1  0> {2  0 y {3  0 como restricciones inactivas.
As, considerando la restriccin de material como la nica activa, encon p
p
p 0
tramos que el nico punto de KKT es { = 23 f20 > 13 f20 > 23 f20 > tenindose
s
adems que uj ({) = 2f0 (1> 2> 1)0 6= 03 = El multiplicador de KKT asociado es

p
1 = 19 f20 = Poniendo  = 1 > 0> 0> 0 > se tiene que la restriccin de K{ O {> 

al subespacio y 5 R3 | y1 + 2y2 + y3 = 0 es definida positiva, por lo que en


virtud de la condicin suficiente de segundo orden, el problema considerado pre-

senta en { un ptimo local (puede comprobarse a partir de la definicin que,


de hecho, se trata de un ptimo global)> tenindose i ({) =
volumen mximo de

I
2 3@2
27 f0 )=

I
3 2 3@2
27 f0

(esto es un

Llegados a este punto nos planteamos la siguiente pregunta: Cunto mejorara nuestro objetivo si pudisemos disponer de una pequea cantidad adicional,
ff0 > de rea total? En otras palabras, si tuvisemos la posibilidad de aumentar
un poco el rea total de la caja, hasta qu precio por unidad de rea (expresado
en las mismas unidades que el objetivo) estaramos dispuestos a pagar por esa
pequea cantidad adicional de rea? La respuesta es sencilla: dicho precio es ,
puesto que el beneficio cambiado de signo es E (f0 ) = i ({) =
tiene:

I
3 2 3@2
27 f0 ,

y se

s
r
 2 3 1@2 1 f0
f =
= =
E (f0 ) =
27 2 0
9
2
0

Veremos a continuacin que, bajo hiptesis adecuadas, este resultado se verifica en general: l puede interpretarse como el precio (en las unidades de la
funcin objetivo) que estaramos dispuestos a pagar por unidad de incremento
del miembro derecho de la l-sima restriccin (para incrementos pequeos), pues
esa unidad producira una mejora (disminucin) del objetivo de, aproximadamente, l unidades.
Teorema 3.4 (Interpretacin de los multiplicadores de KKT) Sea { un
punto de KKT del problema (S ) introducido en (3.1), y sea   0p un vector
de multiplicadores asociado a {. Supongamos que i> jl > l 5 L ({) son de clase F 2
en un entorno de {> que jl > l 5
@ L ({) son funciones continuas en {= Supongamos,
adems, que se verifican las siguientes condiciones:

78

Optimizacin matemtica aplicada


(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 + {>  (condicin

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({)  >
presenta en Y un nico ptimo local, que adems es estricto, { () ; en particular
{ (0p ) = {= Adems { () es de clase F 1 en Y> y
u i ({ ())|=0p = =

3.5.

Optimalidad global

Los resultados presentados en las secciones anteriores presentan condiciones


necesarias y una condicin suficiente relativas a la propiedad de optimalidad
local. Esta seccin recoge determinados resultados que, en ocasiones, pueden
resultar de utilidad a la hora de verificar la optimalidad global.

3.5.1.

Aplicacin del Teorema de Weierstrass

Recordemos el siguiente resultado clsico del anlisis matemtico.


Teorema 3.5 (Teorema de Weierstrass) Sea D  Rq un subconjunto compacto no vaco, y sea i : D $ R continua. Entonces, existen {1 , {2 5 D tales
que:

i {1  i ({) para todo { 5 D (existe mnimo global), y

i {2  i ({) para todo { 5 D (existe mximo global).

Observacin 3.5 En los ejemplos y ejercicios de este libro las funciones jl


sern continuas, lo que garantiza que nuestro conjunto factible I es siempre
cerrado (vase el ejemplo 1.3). As pues, para poder aplicar el teorema anterior

Captulo 3. Optimizacin con restricciones

79

nos quedar por verificar si I es acotado (recurdese que en Rq un subconjunto


es compacto si, y solo si, es cerrado y acotado).
Observacin 3.6 (I 6= > compacto junto con CQ en todo I ) El

enun-

ciado del Teorema de Weierstrass es especialmente til en la resolucin de


ejercicios cuando, adems de ser I compacto y no vaco, en todos los puntos
factibles se verifica alguna cualificacin de restricciones. En este caso se tienen
las siguientes condiciones (recordemos que L representa el conjunto de ptimos
locales, G el de ptimos globales):

G6= > (Teorema de Weierstrass),


G L  P NNW >
donde PNNW denota al conjunto de puntos de KKT. Ntese que la hiptesis de
cualificacin de restricciones en todos los puntos factibles garantiza la veracidad
del ltimo contenido.
En este caso, una vez determinados los ptimos locales o los puntos de KKT,
basta comparar sus imgenes para decidir cuales son ptimos globales.
Esta es la situacin del ejemplo 3.2: se cumple LCQ en todos los puntos
factibles. Adems, I es acotado, pues
{1 + {2  1
{1 > {2  0
En este caso
PNNW =
Puesto que i

1
2> 2

1
4

, 0  {1  1> 0  {2  1=

1 1
>
2 2

> (1> 0) > (0> 1)

y i (1> 0) = i (0> 1) = 0> se tiene que el conjunto de

ptimos globales es

G = (1> 0)0 > (0> 1)0 =

En este caso particular ya habamos determinado el conjunto de ptimos locales


(L ={(1> 0)0 > (0> 1)0 }) en el ejemplo 3.9, as pues, bastaba comparar las imgenes

de dichos ptimos locales.

80

Optimizacin matemtica aplicada

3.5.2.

El caso convexo

Consideremos el problema de PNL con restricciones (3.1),


(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 programacin convexa. Ntese que en este caso I> supuesto no vaco, es un conjunto convexo, pues
puede escribirse con interseccin de convexos. En efecto,
I =

Tp

l=1 {{

5 Rq | jl ({)  0} >

y cada uno de los conjuntos de nivel inferior, {{ 5 Rq | jl ({)  0} > es convexo


como se demostr en el ejercicio 1.5.

Los problemas de programacin convexa constituyen un caso particular de


problemas de PNL de especial inters, fundamentalmente por su buen comportamiento en relacin con la optimalidad global. Concretamente, se tiene el
siguiente resultado:
Teorema 3.6 (Optimalidad global en el caso convexo) Consideremos el
problema (S ) de PNL con restricciones (3.1), y supongamos i y jl > l = 1> 2> ===> p>
son convexas en Rq = Se verifican los siguientes enunciados:
(i) Si { es ptimo local de (S ) > entonces { es ptimo global de (S ) ; en otros
trminos:
G = L=
(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 ) =
Observacin 3.7 Ntese 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=

Captulo 3. Optimizacin con restricciones

81

Por otro lado, como sabemos, para garantizar el otro contenido (y por tanto
la igualdad entre PNNW y G) necesitamos alguna cualificacin de restricciones,

como es el caso del siguiente ejemplo.

Ejemplo 3.10 Determinar el conjunto de puntos de KKT, ptimos locales y


ptimos globales del siguiente problema, en R2 :
{22  {1

(S ) P lq
v=d

{21 + {22  1>


{21 + 4{22  1=

En primer lugar, obsrvese 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
es un punto de Slater (solucin estricta) del sistema {j1 ({)  0> j2 ({) 
4> 4

0}=

Puesto que la funcin objetivo i ({) = {22  {1 es tambin convexa, estamos


ante un problema de programacin convexa en el que se verifica alguna CQ en
todo punto factible. En este caso
PNNW = L = G>
como consecuencia de la siguiente cadena de contenidos (debajo de las inclusiones primera y ltima se indican la hiptesis bajo las cuales son ciertas):
PNNW

(S ) convexo

GL

CQ en todo I

PNNW =

En definitiva, la resolucin del problema actual se reduce al clculo de los


puntos de KKT:
Caso I : L ({) = >= El sistema


1
0
ui ({) = 
=
2{2
0

no tiene solucin (ocurre la contradiccin 1 = 0).


Caso II : L ({) = {1}; esto es {21 + {22 = 1> {21 + 4{22 ? 1= Buscamos las

soluciones del sistema


;
1
2{1
A
A

=

>
1
A
?
2{2
2{2
{21 + {22 = 1>
A
A
A
=
1  0> { 5 I=

82

Optimizacin matemtica aplicada

Del primer bloque de igualdades tenemos 1 = 21 {1 y 2{2 = 21 {2 = De aqu,


se deduce que 1 = 1 si {2 6= 0> lo que contradice la no negatividad de 1 = Por
otro lado, si {2 = 0> entonces de la igualdad {21 + {22 = 1 concluimos que {1 = 1

(la otra posibilidad {1 = 1> conduce a 1 =  12 > por lo que no es solucin de


nuestro sistema). En rigor, el punto { = (1> 0)0 no pertenece a este caso, pues
verifica las dos restricciones con igualdad; esto es, L ({) = {1> 2}> por lo que ser

analizado ms adelante.

Caso III : L ({) = {2}; esto es {21 + {22 ? 1> {21 + 4{22 = 1= Buscamos las

soluciones del sistema


;
1
2{1
A
A
A
?  2{2 = 2 8{2 >
{21 + 4{22 = 1>
A
A
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 solucin de

nuestro sistema). Como en el caso anterior, el punto { = (1> 0)0 no pertenece al


caso actual, se analizar a continuacin.
Caso IV : L ({) = {1> 2}; esto es {21 + {22 = 1> {21 + 4{22 = 1= Buscamos

soluciones del sistema




;
1
2{1
2{1
A
A
A
?  2{2 = 1 2{2 + 2 8{2 >
{21 + {22 = 1> {21 + 4{22 = 1>
A
A
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= >)=

Captulo 3. Optimizacin con restricciones

83

En el segundo caso, si { = (1> 0)0 > se tiene:





1
2
2
= 1
+ 2
>
0
0
0
esto es, 21 22 = 1= Puesto que no existe ningn  que verifique simultneamente las condiciones 21  22 = 1> 1 y 2  0> { = (1> 0)0 no es punto de
KKT.
Finalmente, concluimos que

PNNW = L = G = (1> 0)0 =

3.5.3.

El caso cuadrtico

Un problema de programacin cuadrtica (PC para abreviar) es aquel cuya


funcin objetivo es cuadrtica y las restricciones son lineales. Formalmente puede
escribirse de la forma:
(S F) P lq

1 0
2 { T{

v=d

+ f0 { + e

D{  E>

(3.5)

donde { 5 Rq es la variable de decisin, T es una matriz simtrica de orden q>


f 5 Rq > e 5 R> D es una matriz de orden p q (p 5 N)> y E 5 Rp =

La programacin cuadrtica tambin constituye un caso particular de inters

dentro de la PNL. De hecho, pueden consultarse en la literatura algoritmos


especficos de resolucin de problemas cuadrticos (vase, por ejemplo, [4] y
[5]). Entre sus propiedades destacamos el hecho de que
L  P NNW >
por tener las restricciones lineales (se cumple LCQ). Adems, la determinacin
del conjunto de puntos de KKT se reduce a la resolucin 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>


m
lm

donde dlm representa la lm -sima fila de D=

84

Optimizacin matemtica aplicada


Otro resultado destacado de la programacin cuadrtica viene recogido en el

siguiente teorema que puede encontrarse en [10]. En l se emplea la terminologa


(de problema consistente, acotado y resoluble) dada en la definicin 3.2.
Teorema 3.7 (Frank y Wolfe, 1956) Consideremos el problema (S F) de programacin cuadrtica dado en (3.5). Si (S F) es consistente, esto es, si existen
soluciones factibles, entonces (S F) es resoluble si, y solo si, (S F) es acotado.
Observacin 3.8 El resultado anterior puede aplicarse obviamente a problemas de programacin cuadrtica sin restricciones, que pueden ser vistos como
problemas con restricciones donde el conjunto factible I = Rq (por ejemplo,
basta tomar D y e con todos sus coeficientes nulos)=
La siguiente proposicin presenta un caso especialmente sencillo, el de la
programacin cuadrtica convexa. Ntese que, si i es la funcin objetivo de
(S F) > entonces
Ki ({) = T> para todo { 5 Rq =
As pues, en el caso en el que T es definida o semidefinida positiva, i es convexa
(vase la proposicin 1.8). Puesto que las restricciones tambin son convexas
(por ser lineales), bajo estas condiciones se tiene que
PNNW  L>
como consecuencia del teorema 3.6(ii). Estos comentarios conducen al siguiente
resultado:
Proposicin 3.2 (Problemas cuadrticos convexos) Consideremos el problema (S F) de programacin cuadrtica introducido en (3.5) y supongamos que
T es definida o semidefinida positiva. Entonces, se tiene que
G = L = PNNW =
(Adems, G 6= > si, y solo si, el valor ptimo de (S F) es finito, en virtud del
teorema 3.7).

Captulo 3. Optimizacin con restricciones

85

Ejemplo 3.11 Resolver el siguiente problema de optimizacin en R3 > esto es,


determinar los conjuntos de puntos de KKT, ptimos locales y ptimos globales.
(S F) P lq {21 + 2{1 {2 + {22 + {23 + {1 + {2
v=d

{1 + {2 + {3  1>
{1  {2  {3  1=

Adaptamos nuestro problema al formato (3.5) considerando


3
4
3 4
!

2 2 0
1

E
F
E F
1
1
1
1
F
E
F
T=E
>
f
=
>
E
=
=
>
e
=
0>
D
=
C2 2 0D
C1D
1
1 1 1
0 0 2
0
A continuacin, determinamos el conjunto de puntos de KKT, distinguiendo los
diferentes casos de conjuntos de ndices activos.
Caso I: L ({) = >; esto es {1 + {2 + {3 ? 1> {1  {2  {3 ? 1= En este caso
hemos de resolver el sistema
ui ({) = (T{ + f) = 0>

cuyo conjunto de soluciones es V := { 5 R3 | 2{1 + 2{2 = 1> {3 = 0 = Veamos


cules de estos puntos son factibles. Si 2{1 + 2{2 = 1 y {3 = 0> entonces

{1 + {2 + {3 =  12  1> luego la primera restriccin se satisface en todos los


puntos de V= Respecto de la segunda, si { 5 V> se tiene:
{1  {2  {3 = {1 

1  2{1
2

= 2{1 +

1
1
 1 / {1  =
2
4

En resumen, en este caso, el conjunto de puntos de KKT est dado por

1
{ 5 R3 | 2{1 + 2{2 = 1> {3 = 0> {1 ?
=
4
Ntese que se ha considerado el menor estricto en {1 ? 14 para garantizar que
L ({) = >=
Caso II: L ({) = {1}; esto es, {1 + {2 + {3 = 1> {1  {2  {3  1= En este

86

Optimizacin matemtica aplicada

caso, las condiciones de KKT se escriben como:


4
3 4
; 3
A
2{1 + 2{2 + 1
1
A
A
E
F
E F
A
A
E
F
E
F
A
A
?  C2{1 + 2{2 + 1D = 1 C1D >
2{3
1
A
A
A
A
{1 + {2 + {3 = 1>
A
A
A
=
1  0> { 5 I=
Del primer bloque de igualdades deducimos 2{3 = 1 y 2{1 + 2{2 + 1 = 2{3 =
Por otro lado
{1 + {2 + {3 = 1
2{1 + 2{2 + 1 = 2{3

, {3 =

3
3
, 1 =  >
4
2

lo que contradice la no negatividad de 1 = As pues, este caso no produce ningn


punto de KKT.
Caso III: L ({) = {2}; esto es, {1 + {2 + {3 ? 1> {1  {2  {3 = 1= Las

condiciones de KKT se escriben como sigue:


4
3 4
; 3
A
2{
+
2{
+
1
1
1
2
A
A
E
F
E F
A
A
E
F
E F
A
A
?  C2{1 + 2{2 + 1D = 2 C1D >
2{3
1
A
A
A
A
{1  {2  {3 = 1>
A
A
A
=
2  0> { 5 I=

Del primer bloque de igualdades deducimos  (2{1 + 2{2 + 1) = 2 = 2 > y


por tanto 2 = 0= As pues,

<
A
2{1 + 2{2 + 1 = 0 A
0

@
1 3
>  > 0 5 I=
,{=
2{3 = 0
A
4 4
A
{ { { =1 >
1

En consecuencia, el punto { =

0
3
4> 4> 0

es punto de KKT con 2 = 0=

Caso IV: L ({) = {1> 2}= En este caso hemos de resolver el sistema
4
3 4
3 4
; 3
A
2{1 + 2{2 + 1
1
1
A
A
E
F
E F
E F
A
A
E
F
E
E
F
A
A  C2{1 + 2{2 + 1D = 1 C1D + 2 C1F
D>
?
2{3
1
1
A
A
A
A
{1 + {2 + {3 = 1> {1  {2  {3 = 1>
A
A
A
=
1 > 2  0> { 5 I=

Captulo 3. Optimizacin con restricciones

87

Del primer bloque de ecuaciones se deduce,  (2{1 + 2{2 + 1) = 1 + 2 =


1  2 = 2{3 = As pues 2 = 0 y junto con el segundo bloque obtenemos el
sistema de 3 ecuaciones y 3 incgnitas siguiente:
<
2{1 + 2{2 + 1 = 2{3 A
A
@
3
3
, {1 = 1> {2 =  > {3 = =
{1 + {2 + {3 = 1
A
4
4
A
{ { { =1 >
1

A continuacin, sustituyendo en el primer bloque de igualdades obtenemos 1 =


 32 lo que contradice la no negatividad de los escalares. Por tanto, este caso,
tampoco produce ningn nuevo punto de KKT.
En resumen, se tiene que

1
3
>
G = L = PNNW = { 5 R | 2{1 + 2{2 = 1> {3 = 0> {1 
4
puesto que T es semidefinida positiva (sus valores propios son 4, 0 y 2).

3.6.

Esquema de resultados y ejercicios resueltos

Seguidamente, por motivos didcticos, presentamos los siguientes esquemas


donde se resume la informacin ms relevante de este captulo. En cada momento se asumir que se verifican las hiptesis de diferenciabilidad necesarias:
por ejemplo, cuando se haga referencia a la condicin { es punto de KKT
asumiremos implcitamente que i y las jl > con l 5 L ({) son diferenciables en
{ y cuando se haga referencia a condiciones de segundo orden, asumiremos que
dichas funciones son de clase F 2 en un entorno del punto considerado.
Caso: (S ) un problema de PNL general. El siguiente esquema resume
la informacin contenida en
;
A
A
A
A
A
A
?
{ ptimo local de (S )
A
A
A
A
A
A
=

los teoremas 3.1, 3.2 y 3.3.


, { punto de KKT de (S )

, K{ O {>  DP o SDP sobre P ({)


LICQ

+ { punto de KKT de (S ) y K{ O {>  DP

sobre P + {> 
CQ

Recurdese que DP y SDP son abreviaturas de definida postiva y semidefinida


positiva.

88

Optimizacin matemtica aplicada


En trminos de contenidos, obviando las condiciones de segundo orden, ten-

dramos
G  L  PNNW ^ N >
donde N denota al conjunto de puntos factibles donde no se cumple LCQ, ni

LICQ, ni SCQ. En otros trminos, los candidatos a ptimos locales, en sentido


de puntos no descartables a priori> apoyndonos en el teorema 3.1, seran tanto

los puntos de KKT como los que no verifican ninguna de las hiptesis LCQ,
LICQ o SCQ.
Caso: (S ) un problema de PNL general con I 6= > compacto. En

este caso, se aade la propiedad de que G 6= > (Teorema de Weierstrass):


(
En general: > 6= G  L  PNNW ^ N >
Bajo CQ en todo punto factible: > 6= G  L  PNNW

Caso: (S ) un problema de programacin convexa. A continuacin, se


resume la informacin del teorema 3.6:
(
En general: G = L  PNNW ^ N y PNNW  G>

Bajo CQ en todo punto factible: G = L = PNNW =

Caso: (S ) un problema de programacin cuadrtica. Se tiene:


(
En general: G  L  PNNW >
Si T es DP o SDP: G = L = PNNW =

Ejercicio 3.1 Consideremos el problema de PNL, en R2 > dado por:


(S ) P lq {2
v=d

 {21  {22 + 1  0>

({1  1)2 + {22  1  0>


3

2 {1  12 + {22  34  0=

Analizando las diferentes elecciones de conjuntos de ndices activos, obtenemos las siguientes situaciones (obsrvese que, puesto que tenemos tres restricciones, tendremos que contemplar 23 = 8 casos).
Caso I : L ({) = >= Ningn punto verifica ui ({) = 02 =
Caso II : L ({) = {1} = Si { es tal que L ({) = {1} > ha de ser { 6= 02 (pues {21 +

{22 = 1) y, por tanto, se verifica LICQ en dicho punto, puesto que {uj1 ({)} =

Captulo 3. Optimizacin con restricciones

89

n
o
32{1

es linealmente independiente si { 6= 02 = As pues, planteamos el sistema


1

0
1 0
= 1 32{
32{2 = La nica solucin con 1  0 es ({1 > {2 > 1 ) = 0> 1> 2 > que

32{2

0
31

proporciona un punto no factible. As pues, no tenemos ningn candidato.

Caso III : L ({) = {2} = En este caso se verifica la cualificacin de restricciones

de Slater (j2 es convexa, y por ejemplo j2 (1> 0) = 1 ? 0)= Planteando las


0

condiciones de KKT, encontramos una solucin ({1 > {2 > 2 )0 = 1> 1> 12 > que
no corresponde a este caso puesto que la tercera restriccin tambin es activa=

Caso IV : L ({) = {3} = Se verifica la cualificacin de restricciones de inde


0
pendencia lineal, pues la nica solucin de uj3 ({) = 02 es { = 12 > 0 > que

las nino es un punto factible. Del sistema


= 3 uj3 ({) > obtenemos
I ui({)

I
0
0
0
0
3
3
3
1
1
1
cas soluciones ({1 > {2 > 3 ) = 2 > 2 >  I3 > y ({1 > {2 > 3 ) = 2 > 2 > I13 ; el
primero no es punto de KKT pues 3 ? 0= El segundo hace activas tambin a
las dos primeras, as que no corresponde a este caso.
Situaciones anlogas presentan los casos V: L ({) = {1> 2} y VI: L ({) =

{1> 3} =

Caso VII : L ({) = {2> 3} = Se verifica LICQ, y las condiciones de KKT

proporcionan como nico candidato (realmente correspondiente a este caso) a

0
({1 > {2 > 2 > 3 )0 = 1> 1> 12 > 0 =

Caso VIII : Finalmente, en el caso L ({) = {1> 2> 3} no se verifican SCQ,

ni LICQ, y por supuesto no se verifica LCQ. As pues, no pueden emplearse

ninguno de los resultados sobre condiciones necesarias de optimalidad (teoremas


3.1 y 3.2) para descartar nuevos puntos. En este sentido, automticamente,
todos los puntos que pertenezcan a este caso son candidatos a ptimos locales.

I 0
I 0
Concretamente, tendramos dos nuevos candidatos: 12 > 32 3 y 12 > +2 3 =

En resumen, disponemos de tres candidatos a ptimos locales; esto es, con

la notacin de esta seccin:


G  L  P NNW ^ N =

(1> 1)0 >

s !0
s !0 )
1  3
1 + 3
>
>
>
2 2
2 2

En la figura 3.3, en la que hemos representado el conjunto factible de (S ) > puede

I 0
I 0
apreciarse intuitivamente que 12 > 32 3 y 12 > +2 3 no son en realidad ptimos

locales (recurdese que se est minimizando {2 )= Formalmente, para comprobar

90

Optimizacin matemtica aplicada







F



















Figura 3.3: Ilustracin del ejercicio 3.1.

que {1 :=

I 0
1 3 3
>
2
2

no es ptimo local tomemos, por ejemplo, la sucesin

{u :=

!0
r
1 1
3
1
+ >
+
> u = 2> 3===>
2 u
4 u3

que converge a {1 y verifica:



{u 5 I y i ({u ) ? i {1 > para todo u  2=

I 0
Por otro lado, para comprobar que {2 := 12 > +2 3 tampoco es ptimo local,

basta considerar la sucesin


4
3
s
2 0

1
1
1
1
D > u = 2> 3====
| u := C + > 1 
+
2 u
2 u


Puede comprobarse fcilmente que |u 5 I y i (| u ) ? i {2 > para todo u  2=

El punto { = (1> 1)0 > ser un ptimo local de (S ) > y de hecho global. En

este caso particular no hace falta realizar ningn clculo adicional, pues I es un
compacto (se deja al lector la comprobacin de este hecho). En esta situacin,
el Teorema de Weierstrass asegura que debe existir un ptimo global de (S ),
esto es, G 6= >= Puesto que { = (1> 1)0 es el nico candidato, ste ha de ser un
ptimo global de (S ) =

Captulo 3. Optimizacin con restricciones

91

h
P

Figura 3.4: Ilustracin del ejercicio 3.2.

Ejercicio 3.2 (I compacto y todos sus puntos verifican SCQ) Se desea


construir un depsito con forma cilndrica acabado en dos semiesferas (vase la
figura 3.4) con el fin de albergar la mayor cantidad posible de combustible. Como se muestra en la figura, el depsito se transportar sobre un remolque de
10 m de longitud, por lo que la longitud de este depsito no debe exceder los
10 m. Adems, por motivos de estabilidad en el transporte, las dimensiones del
depsito, u y k> han de verificar u2 + k  16= Se pide:
a) Plantear un modelo de optimizacin (S ) en trminos de minimizar, cuya
solucin nos proporcione las medidas del depsito de mayor volumen posible.
b) Determinar un ptimo global de (S ). Se trata de un problema convexo?
c) Qu ocurrira si se pudiera disponer de un ligero incremento en la longitud
del remolque?
Solucin. a) El objetivo del problema claramente consiste en maximizar el
volumen, el cual viene dado por la suma del volumen de una esfera de radio u>
y un cilindro de radio u y altura k; esto es,

Se P d{ 43 u3 + u2 k
v=d u2 + k  16;
2u + k  10;
u> k  0=
Escrito en trminos de minimizar nos lleva al modelo
(S ) P lq  43 u3  u2 k
v=d u2 + k  16;
2u + k  10;
u> k  0=

92

Optimizacin matemtica aplicada


b) El problema no es convexo. En efecto, veamos que la funcin objetivo

i (u> k) =  43 u3  u2 k no es convexa. Para ello determinamos la matriz hessiana:


!

8u  2k 2u


4u2  2uk
=
> Ki (u> k) =
ui (u> k) =
u2
2u
0
Por ejemplo,
Ki (1> 1) =

!
10 2
2

es indefinida, luego i no es convexa (en virtud de la proposicin 1.8).


Ntese que el conjunto factible es acotado pues, por ejemplo, de las restricciones 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 adems cerrado, I es compacto. Adems, 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 condiciones podemos asegurar la veracidad de la siguiente cadena de inclusiones
> 6= G  L  PNNW =
Por tanto, el conjunto de puntos de KKT proporciona todos los candidatos a
ptimos locales y globales.
Con el fin de agilizar la resolucin de este problema, veamos en primer lugar
que no es necesario analizar todas las combinaciones de ndices activos (en este
caso habra un total de 24 combinaciones) puesto que a priori podemos descartar
aquellas combinaciones que contienen al ndice 3 (entendemos que j1 (u> k) =
u2 + k  16> j2 (u> k) = 2u + k  10> j3 (u> k) = u> j4 (u> k) = k). Formalmente,
si 3 5 L (u> k) > entonces u = 0 y el punto (0> k)0 no es ptimo global de (S ) para
ningn valor de k pues i (0> k) = 0 A i (1> 1) > siendo (1> 1)0 5 I= Seguidamente
determinamos los puntos de KKT distinguiendo los 8 casos restantes.
Caso I : L ({) = >= En este caso hemos de resolver el sistema

0
4u2  2uk
=
=
ui (u> k) =
2
u
0

Captulo 3. Optimizacin con restricciones

93

De aqu se deduce u = 0 y como hemos comprobado anteriormente, un punto


de la forma (0> k) no puede ser ptimo global.
Caso II : L ({) = {1}= Resolvemos el sistema
(

2u (2u + k) = 2u1 >


2u
4u 2  2uk
= 1
,

2
1
u
u2 = 1 =
Puesto que ha de ser u 6= 0> se tiene  (2u + k) = 1 y u2 = 1 = Adems, en el
caso actual ha de cumplirse u2 + k = 16= As pues, queda el sistema
)
s
2u + k = u2
1
,u=
1 33 =
2
u2 + k = 16

Si nos quedamos con la raz positiva u = 12 1 + 33 


= 3. 3723> entonces k =
s 2

1
2
16  u = 16  4 1 + 33 
= 4. 6277= Este punto no es factible pues no verifica
la segunda restriccin.

Caso III : L ({) = {2}= Resolvemos el sistema


(

2u (2u + k) = 22 >


2
4u2  2uk
= 2
,

2
u
1
u2 = 2 =
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

0
4u2  2uk
=

=

4
1
u2

Puesto que estamos suponiendo que k = 0> se tiene de la primera ecuacin u = 0


y como se ha comentado anteriormente (0> 0)0 no es ptimo global del problema
(de hecho no lo es ningn punto de la forma (0> k)0 )=
Caso V : L ({) = {1> 2}= Resolvemos el sistema

2u
2
4u2  2uk
= 1
+ 2
>

2
u
1
1

(3.6)

junto con u2 + k = 16 y 2u + k = 10= La nica solucin de coordenadas no


s
s
negativas es u = 7 + 1> k = 8  2 7= Sustituyendo estos valores en (3.6)
s
s
obtenemos los escalares 1 = 8 + 27  7> 2 = 12
7  7 ambos no negativos.

94

Optimizacin matemtica aplicada


Caso VI : L ({) = {1> 4}= Hemos de resolver el sistema
(

2u (2u + k) = 2u1 >


2u
0
4u2  2uk
=

+

,

1
4
u2
1
1
u2 = 1  4 =

Adems, 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
+ 4
=
2
u
1
1
Adems, 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 restriccin.
Caso VIII : L ({) = {1> 2> 4}= Este caso no admite ninguna solucin pues no

existe ningn punto verificando simultneamente 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
7 + 1> 8  2 7 =
(u> k)0 =
Formalmente G 

ns
s 0 o
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 =

c) Responderemos a este apartado aplicando el teorema 3.4.

Para ello,

hemos de verificar que se satisfacen las hiptesis del teorema. En primer lus 0
s
s 0
s

7 + 1> 8  2 7 y  = 8 + 27  7> 12
gar, si denotamos por { =
7  7 >

ntese que L ({) = L + {>  = {1> 2}= Ntese, adems, que se cumple LICQ y

que P + {>  = {02 }> luego se cumple trivialmente la condicin suficiente de

segundo orden.

Respecto de la pregunta de este apartado podemos responder en trminos


informales diciendo que un ligero incremento en el remolque (miembro derecho
de la restriccin 2), pongamos un incremento de % A 0> modifica el objetivo de
s
(S ) en 2 % =  12
7  7%= En trminos del problema original de maximizar el
s
volumen, podramos decir que el volumen aumenta en 12
7  7%=

Captulo 3. Optimizacin con restricciones

95

Ejercicio 3.3 (I compacto y todos sus puntos verifican SCQ) Se pretende canalizar el cauce de un ro mediante un canal cuya seccin transversal
tendr forma de trapecio, cuya base menor, e, medir 1 m. Si denotamos por E
y k (medidas en metros) a la base mayor y a la altura del trapecio, respectivamente, por razones de resistencia k2 no debe superar a la semisuma de las bases
y, por otro lado, e + E + k  6. Con el fin de determinar las dimensiones que
maximizan el rea del trapecio, resolveremos las siguientes cuestiones:
a) Plantear el modelo de optimizacin (S ) correspondiente, en trminos de
minimizar. Se trata de un problema convexo?
b) Determinar el conjunto de ptimos globales=
Solucin. a) El planteamiento ser

Se P d{ 12 (E + 1) k
v=d k2 

1
2

(E + 1) ;

1 + E + k  6;
E> k  0=

En trminos de minimizar con restricciones de  escribimos el modelo equivalente


(S ) P lq  12 (E + 1) k
v=d

 12 (E + 1) + k2  0;
5 + E + k  0;
E> k  0=

El problema no es convexo pues, aunque las restricciones son convexas, la


funcin objetivo no lo es. En efecto, si i (E> k) =  12 (E + 1) k> se tiene:
ui (E> k) =

 12 k
 12 E 

1
2

y Ki (E> k) =

 12

 12

Ntese que Ki (E> k) es indefinida para cualquier (E> k) =


b) Puede comprobarse fcilmente que I es compacto y no vaco, y se verifica
0

SCQ en todos los puntos factibles (por ejemplo, el punto 1> 12 es un punto de
Slater). Por tanto

> 6= G  L  PNNW =

96

Optimizacin matemtica aplicada

Luego las condiciones de KKT proporcionan todos los candidatos a ptimos


globales. Por otro lado, por un argumento anlogo al del ejercicio anterior, puede
comprobarse que en un ptimo global no pueden ser activas ninguna de las
restricciones 3 y 4= As pues, hemos de analizar cuatro combinaciones.
Caso I : L ({) = >= En este caso, ha de ser

 12 k
0
=
>
ui (E> k) =
1
1
0
2E  2
lo que conduce a k = 0, y no nos lleva a ningn ptimo global.
Caso II : L ({) = {1}= Resolvemos el sistema

1
 12 k
2

=
= 1
1
1
2k
2E  2
La primera ecuacin nos lleva a 1 = k> lo que implica k = 0 (pues 1  0>
k  0)= En estas condiciones la primera restriccin no puede ser activa.
Caso III : L ({) = {2}= Resolvemos el sistema

 12 k
1
=

, k = E + 1=

2
1
1
1
2E  2
Adems, ha de ser 5 + E + k = 0 que nos lleva a E = 2> k = 3> que no satisface
la primera restriccin.
Caso IV : L ({) = {1> 2}= Las condiciones de KKT quedan
;

1

 12 k
2
1
A
? 
+ 2
= 1
;
1
1
2k
1
2E  2
A
=  1 (E + 1) + k2 = 0>  5 + E + k = 0=
2
El segundo bloque de ecuaciones (las dos ltimas) tiene como nica solucin 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
9
4

= 31 + 2

3
27
, 1 = > 2 = =
7
28

Ejercicio 3.4 (I no acotado, (S ) no convexo) Se desean determinar las dimensiones ptimas ({> |> } medidas en metros) de una caja, en el sentido de maximizar su volumen, suponiendo que existe una limitacin del material disponible
de 6 m2 . En concreto se pide:

Captulo 3. Optimizacin con restricciones

97

a) Plantear el problema de optimizacin que resuelve esta cuestin; se trata


de un problema convexo?
b) Comprobar que I no es acotado.
c) Determinar el conjunto de puntos de KKT del problema analizando la
verificacin de LCQ, LICQ o SCQ.
d) Determinar el conjunto de optimos locales.
e) Determinar el conjunto de ptimos globales.
Solucin. a) El planteamiento del problema quedara:

Se P d{ {|}
v=d

{| + {} + |}  3>

{> |> }  0=

En trminos de minimizar lo escribios como sigue


(S ) P lq
v=d

{|}
{| + {} + |}  3>
{> |> }  0=

El problema no es convexo pues ni la funcin objetivo ni la primera restriccin lo son. Respecto de la funcin objetivo i ({> |> }) = {|} se tiene:
3
4
3
4
|}
0 } |
E
F
E
F
F > Ki ({> |> }) = E} 0 {F >
ui ({> |> }) = E
{}
C
D
C
D
{|
| { 0
y, por ejemplo, Ki (1> 1> 1) es indefinida.
b) I no es acotado, pues, por ejemplo, la sucesin no acotada
est contenida en I (q q1 + q q1 +

1
q2

 3> para todo q 5 N)=

n
0 o
q> q1 > q1

c) Puesto que se nos pide el conjunto de puntos de KKT, analizaremos todas


las posibilidades.
Caso I : L ({) = >; esto es, suponemos que {| + {} + |} ? 3> {> |> } A
0= Entendemos que se cumple trivialmente, por ejemplo, LCQ. Este caso no
proporciona ninguna solucin.
Caso II : L ({) = {1}; esto es, suponemos que {| + {} + |} = 3> {> |> } A 0=

En los puntos de este caso se cumple LICQ, pues (| + }> { + }> { + |)0 6= 03 =

98

Optimizacin matemtica aplicada

Para determinar los puntos de KKT, resolvemos el sistema


3 4
3
4
|}
|+}
E F
E
F
E{} F = 1 E{ + } F , 1 = |} = {} = {| =
C D
C
D
|+}
{+}
{+|
{|
{+|
Puesto que {> |> } A 0> se obtiene
{ = | = }=
Teniendo en cuenta adems que {| + {} + |} = 3> la nica solucin es
1
{ = | = } = 1> con 1 = >
2
que es un punto de KKT.
Casos III,IV y V : L ({) = {2}> L ({) = {3}> e L({) = {4}= Estos casos no

proporcionan ninguna solucin. Por ejemplo, si L ({) = {2}> estamos bajo las

hiptesis { = 0> | A 0> } A 0= En este caso,


3 4
3 4
1
|}
E F
E F
E{} F = 2 E 0 F =
C D
C D
0
{|

La primera ecuacin conduce a la contradiccin 0 ? |} = 2  0= De forma


anloga se analizan los dos casos restantes.
Casos VI, VII y VIII : L ({) = {1> 2}> L ({) = {1> 3} e L({) = {1> 4}= Puede

comprobarse fcilmente que en todos los casos se cumple LICQ. Veamos que no
se obtiene ningn punto de KKT. Analicemos, por ejemplo, el caso L ({) = {1> 2}

(los dems son anlogos por la simetra del problema). Suponemos {|+{}+|} =
3> { = 0> | A 0> } A 0= Las condiciones de KKT conducen a
3
3 4
3 4
4
|+}
1
|}
E
E F
E F
F
E{} F = 1 E{ + } F + 2 E 0 F , |} = 1 (| + })  2 > 0 = 1 } = 1 |>
C
C D
C D
D
{+|
0
{|
lo que implica 1 = 0> que conduce a la contradiccin 0 ? |} = 2  0=
Casos IX, X y XI : L ({) = {2> 3}> L ({) = {2> 4}> e L({) = {3> 4}= En

todos los casos se cumple LCQ. Adems, estos casos proporcionan, respecti

vamente, los conjuntos de soluciones (0> 0> })0 | } A 0 > (0> |> 0)0 | | A 0 y

({> 0> 0)0 | { A 0 > con multiplicadores nulos en todos ellos.

Captulo 3. Optimizacin con restricciones

99

Caso XII: L ({) = {2> 3> 4}= Puede comprobarse fcilmente que { = (0> 0> 0)0

es punto de KKT con 2 = 3 = 4 = 0 (y consideramos tambin 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 contradiccin 0 = 3 (pues
{| + {} + |} = 3> { = 0> | = 0)=

En resumen, en todos los puntos de I se cumple alguna cualificacin 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 }=

d) Analizaremos las condiciones de segundo orden en cada uno de puntos de


KKT. Distinguiremos los casos correspondientes:
{ = (1> 1> 1)0 > con vector de multiplicadores de KKT  =

(1@2> 0> 0> 0)0 se tiene L ({) = {1} = L + {>  y, por tanto,
Caso d.1 )

Por otro lado,

z
P ({) = P + {>  = (2> 2> 2)0

= y 5 R3 | 2y1 + 2y2 + 2y3 = 0 =

3
4
4 3
1 1
0 1 1
0
F 1E
F E

E
E
F
F E 1
K{ O {>  = E
C1 0 1D + 2 C1 0 1D = C 2
 12
1 1 0
1 1 0
3

 12
0
 12

 12

F
 12 F
D=
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
FE
F
1 0 1 E
1
2
E 1 0  1 F E 0 1F =
>
D
2D C
1
0 1 1 C 21
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

Optimizacin matemtica aplicada

Por otro lado, en este caso trivial en el que L + {>  = > se define

P + {>  = R3 =

Adems, se tiene:

4
} 0
F

E
F
K{ O {>  = E
C} 0 0D =
0
0 0
0

Para la comprobacin de la condicin 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
F
E
(0> 0> 1) C} 0 0D C0F
D = (0) =
0
0 0
1
Por tratarse de matriz nula, verifica la condicin necesaria, por lo que { =
(0> 0> })0 sigue siendo candidato a ptimo local. Veamos si cumple la suficiente.

La restriccin de K{ O {>  sobre P + {>  = R3 da lugar a la misma matriz, que es indefinida; luego no podemos aplicar el teorema 3.3 para deducir la
optimalidad local del punto actual.
En esta situacin, hemos de acudir directamente a la definicin de ptimo local. Veamos que { = (0> 0> })0 , con } A 0 no es ptimo local. En efecto,
n
0 o
1 1 0
1 1
>
>
}
y
ntese
que
5 I para q
consideremos la sucesin
q q
q> q> }
qMN

suficientemente grande, puesto que


{| + {} + |} =

}
}
1
+ +  3> para q suficientemente grande (q  q0 ) =
2
q
q q

Por otro lado,


i

1 1
> >}
q q

=

1
} ? 0 = i (0> 0> }) > para todo q=
q2

Esto prueba que { = (0> 0> })0 , con } A 0 no es ptimo local (recurdese la
observacin 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 anlogos al
anterior. Ninguno de los casos proporciona un ptimo local.

Captulo 3. Optimizacin con restricciones

101

Caso d.5 ) { = (0> 0> 0)0 = Este punto no es ptimo local, como puede comprobarse a partir de la definicin. En efecto,

1 1 1 0
> >
 I>
q q q
qMN
pues {| + {} + |} =

3
q2

 3> {> |> }  0 y, por otro lado

1 1 1
> >
q q q

1
? 0 = i (0> 0> 0) =
q3

En resumen, el conjunto de ptimos locales de (S ) > equivalentemente de



e
S > es

L = (1> 1> 1)0 =



e) Veamos que (1> 1> 1) es un ptimo global de Se > lo que equivale a que

sea ptimo global de (S ). Para ello, acudiremos directamente a la definicin.


Denotemos por w := {|> u := {}> v = |}= Ntese que
wuv = {|{}|} = ({|})2 =
As pues, el objetivo de


Se puede escribirse como (teniendo en cuenta que

todas las variables toman valores no negativos):


{|} =

s
wuv=


En trminos de las nuevas variables, el problema Se se traduce en:

e
Se P d{
v=d

s
wuv

w + u + v  3>
w> u> v  0=


e
Adems Se es equivalente (en el sentido de que tiene los mismos ptimos
locales y globales) al problema

Sb P d{
v=d

wuv
w + u + v  3>
w> u> v  0=

102

Optimizacin matemtica aplicada


El nuevo problema Sb tiene conjunto factible acotado (en particular w> u> v 5
[0> 3])> y fcilmente 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

w = {| = 1> u = {} = 1> v = |} = 1>


de donde se deduce { = | = } = 1 (ntese que { = |1 > { =

1
}

e igualando se llega

a | = }; utilizando entonces |} = 1 se llega a | = } = 1 , { = 1)= En resumen,



el ptimo global de Se se alcanza en ({> |> })0 = (1> 1> 1)0 =
Observacin 3.9 Para el anlisis de la optimalidad local, en ocasiones las

condiciones necesaria y suficiente de segundo orden en el punto considerado


{, no ayudan ni a descartar { como ptimo local ni a confirmar que se trata de
un ptimo local. En este caso, como ocurre en los casos d.2) a d.5) del apartado
d) del ejercicio anterior, tendremos que acudir directamente a la definicin.

Parte II

Prcticas de optimizacin con


MATLAB

Captulo 4

Prcticas de optimizacin sin


restricciones
El objetivo de este captulo es doble. Por un lado, pretende desarrollar la
intuicin (en 2 y 3 dimensiones) acerca de las diferentes situaciones que pueden
presentarse en relacin con un problema de optimizacin. Con este fin, la seccin
4.1 nos introduce en los primeros clculos con el programa MATLAB orientados
principalmente a la elaboracin de grficas en 2 y 3 dimensiones, previamente
se introducen las nociones bsicas de clculo matricial necesarias.
Por otro lado, un objetivo fundamental consiste en adquirir destreza en la
resolucin de problemas de optimizacin sin restricciones. A ello estn dedicadas
las secciones 4.2 y 4.3. La seccin 4.2 presenta diferentes funciones bsicas de
matemtica simblica, concretamente, aquellas que pueden ayudar en la resolucin de (S ) apoyndose en las condiciones de optimalidad= Por su parte,
la seccin 4.3 presenta las funciones bsicas de la herramienta de optimizacin
(en ingls optimization toolbox ) de MATLAB correspondientes a problemas de
optimizacin sin restricciones.
Las presentes prcticas estn elaboradas con la versin 7.1 de MATLAB, si
bien el material que aqu se presenta puede ser utilizado tanto para versiones
anteriores como posteriores. Como se ha comentado en el prrafo anterior, se
har uso, adems, de la llamada optimization toolbox que contiene una amplia
coleccin de algoritmos de optimizacin ya implementados en MATLAB.
105

106

Optimizacin matemtica aplicada


El nombre MATLAB viene de Matrix Laboratory. Se trata de un sistema

interactivo donde los elementos bsicos donde se almacenan los datos son matrices (sin necesidad de declarar a priori su dimensin). Para una descripcin
detallada del producto MATLAB puede consultarse The MathWorks Web site
(http://www.mathworks.com). Un amplio material de introduccin al uso de
este programa puede encontrarse en http://www.mathworks.com/access/
helpdesk/help/pdf_doc/matlab/getstart.pdf. Vase tambin el texto [19] para una
introduccin al MATLAB junto con la exposicin de diversas aplicaciones.
Tambin pueden consultarse diferentes tutoriales sobre MATLAB en http://
www.mathworks.com/academia/student_center/tutorials/launchpad.html.

4.1.

Clculo matricial y grficos con MATLAB (prctica 1)

Iniciamos el programa con doble click sobre el icono de MATLAB. Aparece


entonces la pantalla inicial de MATLAB (vase de la figura 4.1) donde podemos
encontrar las ventanas: Workspace, Command History y Command Window.

Figura 4.1: Pantalla inicial de MATLAB.

Captulo 4. Prcticas de optimizacin sin restricciones

107

En realidad, la coleccin de ventanas que aparece por defecto se selecciona


en el men Desktop de la barra de herramientas de MATLAB. Nuestra ventana
de trabajo ser esta ltima, Command window, que traduciremos por ventana
de comandos.
En la ventana de comandos pueden realizarse clculos directos, o bien ejecutarse las funciones y los programas elaborados con el lenguaje de programacin
de MATLAB.

4.1.1.

Clculos directos y variables

Comenzaremos realizando clculos directos con nmeros reales mediante las


operaciones tpicas: suma (+), diferencia (-), producto (*), cociente (/ o \ ; por

ejemplo, 3/2=2\3) y potencia (^).

Por ejemplo, para realizar la operacin 2 + 3


que encontramos en la figura 4.2.

4
3

3
+ 5 > empleamos la sintaxis

Figura 4.2: Clculos directos con MATLAB.

Una vez escrita la operacin numrica pulsamos ENTER y aparece el resultado almacenado en la variable ans (del ingls, answer ). ans es el nombre
de la variable que crea MATLAB por defecto para almacenar siempre el ltimo
clculo. Vase de nuevo la figura 4.2.

108

Optimizacin matemtica aplicada

Observacin 4.1 (Formatos numricos) Por defecto, los resultados se expresan en formato numrico decimal con 4 cifras decimales. Vanse otros formatos numricos a travs de la opcin Numeric format, dentro de Preferences del men File (el formato por defecto es short; entre otros, podemos
encontrar el formato long que representa los nmeros con 16 cifras decimales,
y el formato rational que los escribe en forma de fraccin).
Para crear una nueva variable, o bien asignamos directamente un valor
numrico o bien la definimos en trminos de otras ya existentes, por ejemplo,
como resultante de ciertas operaciones aritmticas.
Ejemplo 4.1 (Empleo de variables) Obtendremos el beneficio total de una
fbrica de turrones utilizando las variables siguientes: PRECIO_A (precio de una
pastilla de turrn tipo A) = 5, PRECIO_B (precio de una pastilla de turrn
10
(millones de unidades del turrn
(40 + PRECIO_A2 )
10
(millones de unidades del turrn tipo
(100 + PRECIO_B2 )

tipo B) = 4, DEMANDA_A =


tipo A) y DEMANDA_B =

B). Introduciremos los datos en MATLAB y obtendremos el ingreso total, tal y


como se muestra en las figuras 4.3 y 4.4.

Figura 4.3: Introduccin de variables.

Captulo 4. Prcticas de optimizacin sin restricciones

109

Figura 4.4: Resultado final del ejemplo 4.1.

Observacin 4.2 (Acerca del nombre de una variable) En relacin con


el nombre de una variable, no estn permitidos los espacios en blanco; adems,
MATLAB es sensible al empleo de maysculas.
Observacin 4.3 En la figura 4.3 puede apreciarse la diferencia que existe entre 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.
Comandos bsicos en relacin con las variables existentes:
clear: elimina todas variables; para eliminar una sola variable escribiremos
el nombre de dicha variable a continuacin (por ejemplo, clear PRECIO_A).
who: muestra en pantalla las variables actuales (figura 4.5); whos proporciona una informacin ms detallada del tamao de las variables.
save y load nos permite guardar y recuperar variables.
Observacin 4.4 (Cursores) Los cursores del teclado (% y &) nos permiten
avanzar o retroceder por las diferentes sentencias introducidas en la ventana de
comandos.

110

Optimizacin matemtica aplicada

Figura 4.5: Comando who.

4.1.2.

Vectores y matrices

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
F > D = E 1@2 6 7 F >
{ = (1> 2> 5) > | = E
3
C D
C
D
6
1 0 1
emplearemos la sintaxis de la figura 4.6. Para referirnos a alguna componente
de {> | o D pondremos { (l) > | (l) > D (l> m) =
Respecto de operaciones bsicas con matrices destacamos las siguientes:
La suma y diferencia de las matrices D y E se representa por D + E y
D  E= Estas operaciones requieren que ambas matrices tengan la misma
dimensin.
El producto usual de las matrices D y E se representa por D  E= Esta
operacin requiere que el nmero de columnas de D coincida con el nmero
de filas E=

Captulo 4. Prcticas de optimizacin sin restricciones

111

Figura 4.6: Introduccin de vectores y matrices.

El producto de una matriz por la inversa de otra, en los sentidos DE 31


(E ha de ser inversible) y D31 E (D ha de ser inversible), se representan
por D@E y D\E=
La potencia D , con  5 R, suponiendo que existe (lo que implica en
particular que D sea cuadrada) se representa por D2 =
La matriz resultante del producto elemento a elemento de las matrices D
y E (que han de tener la misma dimensin) se representa por D=  E; esto
es,
D=  E := (dlm elm )l=1>===>p>

m=1>===>q

La matriz resultante del cociente elemento a elemento de las matrices D


y E> se representa por D=@E; esto es,
D=@E := (dlm @elm )l=1>===>p>

m=1>===>q

112

Optimizacin matemtica aplicada


La matriz resultante de elevar cada elemento de D a  5 R se denota por
D=> as:


D= := dlm l=1>===>p>

m=1>===>q

La matriz inversa de D> supuesta inversible, se representa, o bien por


inv(D) > o simplemente D (1) =
El determinante de D se denota por det(D) =
La traspuesta de D se denota por D0 =
La matriz diagonal cuya diagonal principal contiene a los valores propios
de D> se denota por eig(D) =
Si D es diagonalizable en R> esto es, si existen una matriz diagonal G y
una matriz inversible S tales que
S 31 DS = G>
esta matrices S y G se obtienen mediante la sintaxis
[S> G] = eig (D) =
Ejemplo 4.2 (Clculos matriciales) Dadas la matrices
3
4
3
4
2 1 2
2 1 2
E
F
E
F
F y E = E2 2 2 F >
D=E
1
2
5
C
D
C
D
2 5 0
4 3 0
se pide:
a) Determinar D  E y D=  E (obsrvese la diferencia entre ellas).
b) Calcular el determinante y matriz inversa de D=
c) Expresar los coeficientes de D31 en formato de fraccin y como nmeros
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?

Captulo 4. Prcticas de optimizacin sin restricciones

113

Solucin. a)
3
4
3
4
14 10 2
4
1 4
E
F
E
F
F y D=  E = E 2
F=
DE =E
26
20
2
4
10
C
D
C
D
6 8 14
8 15 0
b) det(D) = 42,
3

4
0.2381 0.0238
E
F
F=
inv (D) = E
0.2381
0.0952
0.1905
C
D
0.2143 0.2857 0.0714
0.5952

c) Cambiamos el formato numrico a long y rational y obtenemos


4
3
25@42 5@21 1@42
F
E
F
inv (D) = E
4@21
5@21
2@21
D
C
3@14
2@7
1@14
3
4
0.59523809523810 0.23809523809524 0.02380952380952
E
F
F
=E
C 0.23809523809524 0.09523809523810 0.19047619047619 D =
0.21428571428571 0.28571428571429 0.07142857142857
d) Los valores propios de D son 3.7595> 1.9098 y 5.8497> luego D es indefinida.
e) det(E) = 0> luego E no es inversible. Si escribimos inv(E) obtenemos lo
que se muestra en la figura 4.7. Ntese que aparece un mensaje indicando que
la matriz es singular y los clculos producen Inf (infinito).
f) El resultado de D\E (recurdese que significa D31 E) en el formato numrico short es:

4
0.0476 1.6667
E
F
F
D\E = E
C 1.0476 0.6190 0.6667D =
0.1429 0.1429 1.0000
0.6190

g) El resultado de D@E se muestra en la figura 4.8. NaN (del ingls, Not a


Number ) aparece en expresiones cuyo valor es indeterminado (por ejemplo, 00 )=

4.1.3.

Cmo pedir ayuda

Emplearemos dos comandos bsicos para activar la ayuda del MATLAB


(alternativamente puede emplearse la ayuda del men Help).

114

Optimizacin matemtica aplicada

Figura 4.7: Matriz no inversible (o singular).

Figura 4.8: Resultado de D@E (E es singular).

Captulo 4. Prcticas de optimizacin sin restricciones

115

En primer lugar, help muestra en pantalla la ayuda especfica de un comando


en particular. Vase en la figura 4.9 la sintaxis empleada para pedir informacin
acerca de inv. Ntese que el empleo de help para obtener informacin sobre un
determinado comando, requiere conocer el nombre exacto de dicho comando.

Figura 4.9: Sintaxis del comando help.

Para solicitar informacin acerca de los comandos existentes relacionados


con cierta palabra clave, emplearemos lookfor seguido de dicha palabra clave
(escrita en ingls). De este modo, se mostrar en pantalla el listado de comandos
en cuya ayuda figura dicha palabra clave.
En ocasiones, la manera ms operativa de obtener la informacin deseada
pasa por combinar lookfor y help, como se muestra en el siguiente ejemplo.
Ejemplo 4.3 (Ayuda sobre problemas cuadrticos) Se desea determinar
un ptimo global del siguiente problema de programacin cuadrtica sin restricciones
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
y suponemos que no conocemos o no recordamos en este momento qu funcin
de MATLAB hemos de emplear.

116

Optimizacin matemtica aplicada


En primer lugar, utilizaremos lookfor para buscar funciones relacionadas.

En este caso hemos escrito:


AA lookfor quadratic
(del ingls quadratic programming). Aparece entonces un listado de funciones,
junto con una breve descripcin de cada una. A la vista del listado de funciones, seguidamente pediremos ayuda especfica sobre la funcin quadprog,
escribiendo para ello:
AA help quadprog
La figura 4.10 muestra, parcialmente, la informacin que aparece en pantalla
acerca de quadprog.

Figura 4.10: Resultado de la bsqueda help quadprog.

Obsrvese que existen diferentes opciones en relacin con los argumentos de


entrada (datos del problema) y con los de salida. En nuestro caso, emplearemos
la versin ms sencilla, pues, como salida, deseamos conocer un ptimo global

Captulo 4. Prcticas de optimizacin sin restricciones

117

de (S ) > y como argumentos entrada, nicamente disponemos de los coeficientes


que determinan la funcin objetivo, pues el problema no tiene restricciones.
Concretamente, emplearemos la sintaxis AA x= quadprog(H,f,A,b) para
obtener un ptimo global, x, del problema
1
xHx+fx
2
v=d Ax  b,

P lq

definiendo en este caso A y b como matrices vacas (sin elementos) a travs de


la sintaxis A=[] y b=[]. Vase la seccin 2.4 para detalles tericos sobre los
problema cuadrticos sin restricciones.
Observacin 4.5 En lo que sigue emplearemos un tipo de letra especfico (typewriter), semejante al que aparece en la pantalla de MATLAB, en la notacin
de los diferentes elementos (matrices, vectores, puntos, etc.) empleados como
argumentos de entrada o salida en el programa MATLAB.
Por ejemplo, en adelante, x y { representan al mismo elemento (variable
de decisin del problema de optimizacin) y se emplear uno u otro formato
dependiendo del contexto; del mismo modo, por ejemplo, [0 0 2 0] y (0> 0> 2> 0)
representan al mismo vector.
As pues, escribiremos:

AA H=[10 2 0 5/2;2 20 3 4;0 3 20 0;5/2 4 0 20];


AA f=[0 0 2 0];
AA A=[],b=[];
AA x=quadprog(H,f,A,b)

La solucin propuesta por MATLAB es:


x =
-0.0025
0.0162

118

Optimizacin matemtica aplicada


-0.1024
-0.0029

Observacin 4.6 (Posicin de los argumentos de entrada) En cualquiera de las funciones de MATLAB, lo que identifica a cada uno de los argumentos
de entrada o salida es la posicin que ocupan y no la notacin empleada. As,
por ejemplo, si se escribe:
AA s=quadprog(Q,c,M,N)
s representa a la solucin del problema de minimizar 12 xQx+cx sujeto al sistema de restricciones MxN.
Observacin 4.7 (Comprobacin de la optimalidad global) Como veremos ms adelante, en principio, las soluciones propuestas por MATLAB son
puntos crticos del problema. Para garantizar que el punto considerado es ptimo global, analizamos el carcter de la matriz H (que coincide con la hessiana
de la funcin objetivo). Para ello, escribimos:
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 (vase la proposicin 1.3) y en virtud del teorema 2.2, el punto
x es ptimo global de (S ) =

4.1.4.

Grficos en 2 y 3 dimensiones

Para representar grficamente funciones reales de variable real emplearemos


la funcin plot (para detalles sobre las diferentes opciones admitidas escrbase
help plot). La opcin ms sencilla consiste en introducir, como argumentos de
entrada, dos vectores, x=({l )l=1>===>s e y=(|l )l=1>==>s , de la misma dimensin, y
escribir plot(x,y). De esta forma, aparecen representados grficamente los pares
({l > |l )l=1>===>s =
Para representar grficamente una funcin, i> hemos de elegir un intervalo
[a,b] sobre el que se mostrar la grfica. Elegimos una particin de [a,b] y almacenamos en el vector x los elementos de dicha particin. En la prctica, podemos

Captulo 4. Prcticas de optimizacin sin restricciones

119

emplear las siguientes funciones de MATLAB para definir automticamente el


vector x:
x=linspace(a,b,p) define un vector cuyas coordenadas constituyen una
particin de [a,b] formada por p puntos equiespaciados;
x=a :  : b define el vector (a,a+> ===>a+p)> siendo
p = max{m 5 N |a + m  b}=
Una vez definido el vector x=({l )l=1>==>s , definimos
y = (|l )l=1>==>s > donde |l = i ({l ) para todo l=
Ejemplo 4.4 (Grficas de funciones de R en R) Se desea representar grficamente la funcin i ({) = { sin { en el intervalo [2> 2]=
Atendiendo a los comentarios anteriores escribiremos:

AA x=-2:0.01:2;
AA y=x.*sin(pi*x);
AA plot(x,y)

Aparece entonces la figura 4.11.


En la definicin de x podra emplearse alternativamente la funcin linspace;
por ejemplo,
AA linspace(-2,2,200);
La eleccin del incremento, en el primer formato, y la eleccin del nmero
de puntos, en el segundo, la realiza el ususario.
Observacin 4.8 (Empleo de la operacin .*) Ntese que en la definicin
de y, ha de emplearse la operacin .* para que el producto se haga coordenada a
coordenada. Por otro lado, en el producto pi*x no es necesario pues pi es una
constante (el nmero )=

120

Optimizacin matemtica aplicada






















Figura 4.11: Ilustracin del ejemplo 4.4.

Para representaciones grficas en 3 dimensiones (funciones de R2 en R> por


ejemplo) emplearemos la funcin surf con tres argumentos de entrada, esto es,
escribiremos surf (x,y,z). Para representar i : R2 $ R hemos de elegir un rectngulo [a,b][c,d]  R2 donde visualizar la grfica. En realidad, tendremos que
considerar una malla (en ingls, grid ) de puntos en [a,b][c,d] que definiremos
mediante la funcin meshgrid, como se ilustra en el ejemplo siguiente.

Ejemplo 4.5 (Grficos en 3 dimensiones) Deseamos representar grficamente las siguientes funciones en el rectngulo [1> 1] [1> 1] :
(i) i ({> |) = {2 + | 2 ;
(ii) i ({> |) = {2  | 2 ;
(iii) i ({> |) = {2  | 2 =
(i) En cada coordenada seleccionamos una particin del intervalo [-1,1] empleando un incremento  = 0.05 (alternativamente podramos emplear la funcin
linspace). As pues, escribimos:

Captulo 4. Prcticas de optimizacin 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; (ntese que ha de emplearse la operacin
.^en vez de simplemente ^).
AA surf(X,Y,z)

De este modo, obtenemos el grfico de la figura 4.12.



















Figura 4.12: Ilustracin del ejemplo 4.5(i).


Para los apartados (ii) y (iii) repetimos la sintaxis anterior cambiando simplemente la definicin de z (matriz de imgenes), de este modo obtenemos los
grficos de la figura 4.13.
Observacin 4.9 Las ilustraciones de estas tres funciones corresponden claramente a situaciones donde se tiene, respectivamente, un mnimo local (de hecho

122

Optimizacin matemtica aplicada







































Figura 4.13: Ilustracin del ejemplo 4.5(ii) y (iii).

global), un mximo local (de hecho global) y punto crtico que no es mnimo ni
mximo local (se suele llamar punto de silla).

4.1.5.

Ejercicios propuestos

Ejercicio 4.1 Consideremos los siguientes problemas de programacin cuadrtica sin restricciones:
(i) (S1 ) P lq {21 + 2{1 {2 + {22 + {23 + {1 + {2 + {3 ;
(ii) (S2 ) P lq {21 + 2{1 {2 + {22  {23 + {1 + {2 + {3 ;
(iii) (S3 ) P lq {21 + 4{22 + 8{23 + {1 + {2 + {3 =
Conservando la notacin del ejemplo 4.3 (donde la funcin objetivo de un
problema cuadrtico se escribe de la forma 12 xHx+fx), se pide:
a) En cada caso, analizar el carcter de la matriz H, e indicar si la correspondiente funcin objetivo es convexa o no;
b) Emplear la funcin quadprog para proporcionar, si existe, un ptimo
de cada problema. Interprtese en cada caso el mensaje de salida de MATLAB
(recurdense las situaciones que pueden plantearse atendiendo al teorema 2.2).
Ejercicio 4.2 Consideremos las funciones reales de variable real:
i1 ({) =
Se pide:

{2

{
2
cos {> i2 ({) = { cos {> i3 ({) = h3{ y i4 ({) = {4 + 1=
+1

Captulo 4. Prcticas de optimizacin sin restricciones

123

a) En cada caso, elegir un entorno apropiado de 0 donde visualizar la grfica


de cada funcin; apropiado en el sentido de que nos permita apreciar su forma
global, incluyendo su tendencia cuando { $ 4 y { $ 4.
b) De forma intuitiva, atendiendo a la representacin grfica de cada una
de las funciones, indquese si el correspondiente problema (Sl ) P lq il ({) > l =
1> ===> 4> es acotado o no, resoluble o no, si tiene ptimos locales que no son
globales, y si tiene puntos crticos que no son ptimos locales.
Ejercicio 4.3 Consideremos las funciones de R2 en R :
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 grfica
de cada funcin; 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 representacin grfica de cada una

de las funciones, indquese 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 globales, y si tiene puntos crticos que no son ptimos locales.
c) De nuevo, atendiendo a la grfica, indquese en cada caso si el punto
{ = 02 es punto crtico, ptimo local u ptimo global.

4.2.

Optimizacin sin restricciones con la herramienta de matemtica simblica (prctica 2)

El objetivo de esta seccin es resolver problemas de optimizacin sin restricciones de la forma


(S ) P lq i ({) >
donde { 5 Rq y i : Rq $ R> con ayuda de la herramienta (en ingls, toolbox )
de MATLAB denominada symbolic mathematic. Esta herramienta nos permitir calcular derivadas, gradientes, resolver ecuaciones y sistemas, etc., tal y
como lo haramos de forma analtica (en contraste con la resolucin por mtodos numricos que veremos en la seccin siguiente). De este modo, podremos

124

Optimizacin matemtica aplicada

resolver problemas de PNL sin restricciones siguiendo los pasos de la seccin


2.3.

4.2.1.

Optimizacin de funciones de una variable

A lo largo de esta subseccin consideramos el problema


(S ) P lq i ({) >
donde { 5 R y i : R $ R es de clase F 2 en R= Nuestro primer paso consistir
en la determinacin del conjunto de puntos crticos de (S ), esto es, en resolver
la ecuacin, en general no lineal,
i 0 ({) = 0>

(4.1)

donde i 0 representa la primera derivada de i= Para ello emplearemos las funciones de MATLAB di y solve. De hecho, para determinar directamente el
conjunto de soluciones de la ecuacin (4.1) basta escribir:
AA solve(diff(f(x))
como se ilustra en el siguiente ejemplo.
Ejemplo 4.6 (Determinacin de puntos crticos) Deseamos determinar el
conjunto de puntos crticos del problema
(S ) P lq {6  3{2 + 6{=
En la figura 4.14 se muestra la sintaxis empleada en la resolucin de la
ecuacin i 0 ({) = 0> i ({) = {6  3{2 + 6{ junto con las soluciones propuestas
por MATLAB= Se trata de una ecuacin polinmica de grado 5. Por tanto,
proporciona 5 races, de las cuales solo una es real,
{ = 1.1673039782614186842560458998548=
Observacin 4.10 Ntese que la funcin objeto de estudio ha de escribirse entre comas. De este modo, x^6-3*x^2+6*x se interpreta como una cadena de
caracteres. (En otro caso, x ha de tener previamente asignado un valor numrico
y x^6-3*x^2+6*x representara el resultado numrico de la operacin correspondiente).

Captulo 4. Prcticas de optimizacin sin restricciones

125

Figura 4.14: Ilustracin del ejemplo 4.6.

La funcin di admite como segundo argumento de entrada el orden de la


derivada solicitada. Por ejemplo, para calcular la segunda derivada de la funcin
i ({) = {2 h{ + sin {>
escribiremos:
AA diff((x^2)*exp(x)+sin(x),2)
La salida de MATLAB en este caso es:
ans=
2*exp(x)+4*x*exp(x)+x^2*exp(x)-sin(x)
Otra funcin que nos ser de utilidad es subs, la cual permite sustitutir
en una expresin simblica la variable x por un nmero real. Por ejemplo, si
deseamos sustituir en la expresin simblica anterior,
2*exp(x)+4*x*exp(x)+x^2*exp(x)-sin(x),
la variable x por 1, escribiremos:

126

Optimizacin matemtica aplicada


AA subs(2*exp(x)+4*x*exp(x)+x^2*exp(x)-sin(x),1)

y obtendremos:
ans =
18.18650181440543
Observacin 4.11 (Anlisis de las condiciones de segundo orden) Para
el anlisis de las condiciones de segundo orden (vase la proposicin 2.3) en el
punto crtico x=c, hemos de sustituir c en la segunda derivada de la funcin objetivo. Esta operacin puede realizarse directamente encadenando las funciones
di y subs como sigue:
AA subs(diff(f(x),2),c)
Vase una ilustracin de este hecho en el siguiente ejemplo.
Ejemplo 4.7 (Ejemplo 4.6 revisitado) Deseamos analizar si el nico punto
crtico del problema (S ) P lq {6  3{2 + 6{> es un ptimo local. Recordemos
que el punto crtico era { = 1.1673= Para ello escribimos la sentencia que se
muestra en la figura 4.15.

Figura 4.15: Comprobacin de la condicin de segundo orden.

Captulo 4. Prcticas de optimizacin sin restricciones

127

Vase la solucin en la misma figura, esto es,


i 00 (1.1673) 
= 49.6995 A 0>
luego, { = 1.1673 es un ptimo local (cumple la condicin suficiente de segundo
orden).
Ejemplo 4.8 Deseamos determinar el conjunto de puntos crticos y ptimos
locales del problema
(S ) P lq ({  1) h{  {=
Determinamos, en primer lugar, el conjunto de puntos crticos como se muestra en la figura 4.16.

Figura 4.16: Determinacin del conjunto de puntos crticos.

Ntese que, en este ejemplo, en principio, no se obtiene un valor numrico,


sino la expresin lambertw(1)= Puede consultarse en la ayuda de esta funcin
que en general lambertw() denota a la solucin de la ecuacin
{h{ = =
En nuestro ejemplo la ecuacin viene de i 0 ({) = {h{  1 = 0. Un hecho destacable en relacin con este punto es que en esta ecuacin no podemos despejar
la variable {= De hecho, MATLAB proporcionar una aproximacin numrica

128

Optimizacin matemtica aplicada

(obtenida mediante algoritmos de resolucin de ecuaciones). En la figura 4.17


se muestra cmo determinar el valor numrico de lambertw(1)=

Figura 4.17: Aproximacin numrica de la funcin lambertw.

A continuacin, analizamos las condiciones de segundo orden en dicho punto,


escribiendo:
AA subs(diff(x*exp(x)-exp(x)-x,2),0.56714329040978)
y obtenemos:
ans =
2.76322283435188
As pues, i 00 (0.56714329040978) = 2.76322283435188 A 0 y por tanto
{ = 0.56714329040978 es un ptimo local de (S ) =

4.2.2.

Optimizacin de funciones de varias variables

A lo largo de esta subseccin consideramos el problema


(S ) P lq i ({) >
donde { 5 Rq y i : Rq $ R es de clase F 2 en Rq = Las funciones de MATLAB
que emplearemos para la resolucin de (S ) sern:

Captulo 4. Prcticas de optimizacin sin restricciones

129

jacobian junto con sym: determina el traspuesto del gradiente de i ({)


respecto de las variables simblicas declaradas a travs de la funcin sym.
solve: resuelve sistemas de ecuaciones.
subs: para sustituir cada variable por un valor numrico.
Veamos a travs del siguiente ejemplo cmo se emplean las funciones anteriores para determinar el conjunto de puntos crticos de (S ) y analizar las
condiciones de segundo orden. A diferencia de lo que ocurra en el caso de funciones de una variable, las funciones jacobian y solve no pueden encadenarse
para determinar en una sola sentencia el conjunto de puntos crticos. Tampoco
podrn encadenarse las funciones jacobian y subs.
Ejemplo 4.9 (Anlisis de las condiciones de optimalidad) Deseamos
determinar el conjunto de puntos crticos y ptimos locales del siguiente problema de optimizacin, empleando para ello las funciones jacobian, sym, solve
y subs:
(S ) P lq

2 2
1 2
{1 + {22 h{1 3{2 =
2

En primer lugar, calculamos ui ({)0 mediante la funcin jacobian (vase


la figura 4.18).
Ntese que hemos de declarar las variables respecto de la cuales calcular las
derivadas parciales a travs de la funcin sym (en este caso hemos empleado la
notacin x e y para las variables, aunque poda haberse elegido, por ejemplo x1
y x2).
A continuacin, para obtener el conjunto de puntos crticos (soluciones del
sistema ui ({) = 0q ) copiamos (Ctrl+C) el resultado anterior de la funcin
jacobian sin los corchetes y empleamos la funcin solve como se muestra a
continuacin:
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 funcin solve en el contexto de sistemas de
ecuaciones, es importante declarar los argumentos de salida; por ejemplo, en

130

Optimizacin matemtica aplicada

Figura 4.18: Clculo del gradiente mediante la funcin jacobian.

nuestro caso hemos escrito:


AA [x1,x2]=solve(...)
En este ejemplo los argumentos de salida de solve se han denominado x1 y x2
aunque podra haberse empleado otra notacin (vase la observacin 4.6) .
As, la solucin propuesta por MATLAB es (por motivos de espacio, presentamos
la solucin como vector fila, en vez de columna como aparece en la pantalla de
MATLAB):
x1 =[0. 1.*i -1.*i 0. 0.] y x2 =[0. 0. 0. 1. -1.].
En consecuencia, existen tres soluciones del sistema con coordenadas reales,
que son [x1,x2] = [0,0], [x1,x2] = [0> 1] y [x1,x2] = [0> 1].
Seguidamente analizamos las condiciones de segundo orden. Calculamos la
matriz hessiana de la funcin objetivo, Ki ({) > como se muestra en la figura
4.19.
A continuacin, sustituimos cada uno de los puntos crticos en la matriz
hessiana, denotada en este caso por hess, como se muestra en la figura 4.20.

Captulo 4. Prcticas de optimizacin sin restricciones

Figura 4.19: Clculo de la matriz hessiana.

Figura 4.20: Sustitucin de las variables en la matriz hessiana.

131

132

Optimizacin matemtica aplicada


En otros trminos, hemos comprobado que

!
1 0
Ki (0> 0) =
=
0 1
Para evaluar la matriz hessiana en (0> 1)0 escribiremos:
AA subs(subs(hess,x,0),y,1)
Finalmente evaluamos la matriz hessiana en (0> 1)0 escribiendo:
AA subs(subs(hess,x,0),y,-1)
Se obtienen los siguientes resultados
!

0.73575888234288
0
=
Ki (0> 1) = Ki (0> 1) =
0
0.73575888234288
En consecuencia, en el punto (0> 0)0 se verifica la condicin suficiente de

optimalidad de segundo orden y, por tanto, podemos afirmar que (0> 0)0 es ptimo
global. Por otro lado, (0> 1)0 y (0> 1)0 no verifican la condicin necesaria de
segundo orden; as pues, estos dos ltimos puntos no son ptimos locales.

4.2.3.

Ejercicios propuestos

Ejercicio 4.4 Encontrar todas las soluciones reales del sistema


(
{31  {1 {2  1 = 0>
{1 + {22  1 = 0=

Ejercicio 4.5 Encontrar una solucin real del sistema


(
{1 h{1 +{2 = 1>
{2 h{1 +{2 = 1=

Ejercicio 4.6 Utilizar las funciones jacobian, sym, solve y subs para determinar los conjuntos de puntos crticos y ptimos locales del problema
(S ) P lq {31 + {1 {2 + {32 =

Captulo 4. Prcticas de optimizacin sin restricciones

4.3.

133

Funciones bsicas de optimizacin sin restricciones (prctica 3)

El objetivo de esta prctica es resolver problemas de optimizacin con ayuda


de las utilidades que ofrece optimization toolbox. Concretamente, emplearemos las siguientes funciones:
quadprog: resuelve problemas de programacin cuadrtica.
fminunc: resuelve problemas no lineales generales sin restricciones.
Concretamente, a lo largo de esta seccin, se comentar la sintaxis que ha de
emplearse en la ejecucin de estas funciones, describiendo los argumentos de entrada de las mismas (inputs) y los de salida (outputs). Respecto de las salidas,
adems de proporcionar una propuesta de solucin ptima y de valor ptimo,
pueden informar acerca de ciertos detalles tcnicos de los algoritmos empleados en la resolucin, incluyendo la regla de parada empleada en cada caso. De
entre estos aspectos tcnicos, describiremos brevemente las reglas de parada
empleadas en cada caso, aunque no entraremos en otros detalles tcnicos sobre
eleccin del algoritmo de resolucin y la descripcin de las iteraciones realizadas.
Para detalles sobre estos aspectos puede consultarse el documento Optimization ToolboxW P 4, Users Guide que puede encontrarse en la direccin de internet: http://www.mathworks.com/access/ helpdesk/ help/pdf_doc/optim/optim_
tb.pdf.

4.3.1.

Optimizacin cuadrtica sin restricciones con ayuda de


quadprog

El objetivo de esta subseccin es resolver problemas de optimizacin de la


forma
(S ) P lq 12 {0 T{ + f0 { + g>

(4.2)

con ayuda de la funcin quadprog y aplicando el teorema 2.2 para distinguir


aquellos casos en los que el problema (4.2) es resoluble y aquellos en los que
no lo es. Esta funcin fue ya utilizada en la subseccin 4.1.3 para resolver algunos problemas de programacin cuadrtica sin restricciones. En esta seccin
implementaremos un sencillo programa, denominado pcsin.m, con ayuda del

134

Optimizacin matemtica aplicada

lenguaje de programacin de MATLAB con las siguientes caractersticas:


El programa pcsin.m comienza su ejecucin solicitando al usuario los
datos T, f y g=
A continuacin, el programa analiza si el problema (4.2) es resoluble o no;
esto es, analiza si se cumple que T es definida o semidefinida positiva y
si el rango de T coincide con el de la matriz ampliada (T | f) (vase el

teorema 2.2).

Si se cumplen las condiciones anteriores, el programa proporcionar una


solucin numrica apelando a la funcin quadprog. En caso contrario se
mostrar el mensaje El problema es no acotado.
La modalidad ms sencilla de la sintaxis de quadprog es:
AA x=quadprog(Q,c,A,b)
con la que se resuelve el problema
P lq

1
2 xQx+cx

v=d

Ax  b.

Si deseamos, adems, conocer el valor de la funcin objetivo en la solucin propuesta bastar con escribir:
AA [x,fval]=quadprog(Q,c,A,b)
Como se adelant en la subseccin 4.1.3, puede emplearse la sintaxis anterior
en la resolucin de nuestro problema definiendo las matrices del sistema de
restricciones de la forma:
AA A=[]>b=[]
Para comenzar la implementacin del programa pcsin, desde la barra de herramientas de MATLAB seleccionaremos File, a continuacin New $ M-file.
En este programa se emplearn los siguientes comandos de MATLAB (vase la
figura 4.21):

Captulo 4. Prcticas de optimizacin sin restricciones

135

clear (vase tambin la subseccin 4.1.1) para borrar de la memoria


cualquier asignacin anterior que tuvieran los elementos Q,c,A y b.
disp (...) para mostrar en pantalla el texto escrito entre las comillas.
I=input (...) para pedir al usuario la asignacin numrica (vector o
matriz) de I.
Recurdese que eig(Q) proporciona el vector cuyas coordenadas son los
valores propios de Q.
if en combinacin con else y end crea la estructura condicional tpica
segn la cual el programa ejecuta determinadas sentencias si se cumplen
determinadas condiciones (las escritas tras if ) u otras en caso contrario
(obsrvese el texto escrito tras else en la figura 4.21).
Una vez redactado el nuevo programa se ha grabado (a travs de la opcin
File$save as) con el nombre pcsin.m.
Observacin 4.12 La extensin .m es la empleada por este tipo de archivos
creados mediante el editor de textos de MATLAB> y por defecto se almacena en
el directorio work=
Una vez creado y guardado el nuevo programa, para ejecutarlo basta escribir
en la ventana de comandos:
AA pcsin
Como ilustracin, presentamos el siguiente ejercicio.
Ejercicio 4.7 (Ejercicio 2.10 revisitado) Resolver con MATLAB> en concreto mediante el programa pcsin, los siguientes problemas cuadrticos:
(i) (S1 ) P lq {21 + 2{1 {2 + 4{22 + {1 + {2 ;
(ii) (S2 ) P lq {21 + 2{1 {2 + {22 + {1 + {2 + 4;
(iii) (S3 ) P lq {21 + 2{1 {2 + {22 + {1  {2 + 4;
(iv) (S4 ) P lq {21 + 2{1 {2  4{22 + {1 + {2 + 4;
(v) (S5 ) P lq {21 + 2{1 {2  4{22 + {1 + {2 + 4;
(vi) (S6 ) P lq {21 + 2{1 {2  {22 + {1  {2 + 4=

136

Optimizacin matemtica aplicada

Figura 4.21: Implementacin del nuevo programa pcsin.

Solucin. Resolveremos (S1 )> (S3 ) y (S4 )= La resolucin de los restantes es


completamente anloga.
(i) Escribimos AA pcsin en la ventana de comandos y comienza la ejecucin. A continuacin, se muestran los detalles:
Ejecucin de pcsin
AA pcsin
Este programa resuelve problemas de la forma
Minimizar (1/2)*xQx+cx+d
Introduzca la matriz (simtrica) Q [2 2;2 8]
Introduzca el vector (columna) c [1;1]
Introduzca el trmino independiente d 0
Warning: Large-scale method does not currently solve this problem
formulation,
switching to medium-scale method.

Captulo 4. Prcticas de optimizacin sin restricciones

137

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 ejecucin de pcsin
En consecuencia, el problema (S1 ) es resoluble; una solucin 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] (vase la
figura 4.22). Ntese 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 crticos. As
pues, en este caso el problema es no acotado, como se muestra en la ejecucin
de pcsin.

Figura 4.22: Ilustracin de la resolucin de (S3 ) =

138

Optimizacin matemtica aplicada


(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 tambin no acotado. La ejecucin de pcsin es


completamente anloga a la del apartado anterior.
Observacin 4.13 La funcin quadprog puede proporcionar otros argumentos de salida, ampliando la informacin sobre los mtodos numricos empleados
y otros detalles acerca de la regla de parada empleada en cada caso. De hecho, los cuatro primeros argumentos de salida de quadprog son comunes a los
de las funciones fminunc y fmincon. Estos argumentos de salida se vern
con un poco ms de detalle en la seccin siguiente (puede escribirse AA help
quadprog en la ventana de comandos de MATLAB para detalles adicionales).

4.3.2.

Optimizacin no lineal sin restricciones con ayuda de fminunc

La presente seccin est dedicada a la resolucin de problemas de optimizacin no lineal sin restricciones con ayuda de la funcin fminunc. En primer
lugar, revisaremos la sintaxis empleada por esta funcin que puede consultarse en la ayuda que ofrece MATLAB escribiendo en la ventana de comandos:
AA help fminunc. La sintaxis ms sencilla es:
AA x=fminunc(fun,x0)

(4.3)

donde x representa la solucin propuesta por MATLAB al problema de minimizar la funcin objetivo fun y donde x0 representa el punto inicial (semilla)
que se emplear en el algoritmo de resolucin.
Sintaxis relativa a la funcin objetivo
La funcin objetivo puede introducirse directamente en el lugar que ocupa
el argumento de entrada fun, o bien puede definirse en un fichero de texto
(recurdese con extensin .m). En este momento, revisaremos estas dos formas
alternativa de introducir la funcin objetivo del problema.
Observacin 4.14 Ntese que en cualquier caso las variables de la funcin

Captulo 4. Prcticas de optimizacin sin restricciones

139

Figura 4.23: Resolucin con MATLAB del ejemplo 4.10.

objetivo han de ajustarse a la sintaxis x(1),x(2),..., entendiendo que son coordenadas de la variable vectorial x.
Ejemplo 4.10 (Vase el ejercicio 2.1) Resolveremos con MATLAB el problema de optimizacin
(S ) P lq sen {1 sen {2 >
considerando la semilla x0=[1,-1].
Solucin. A continuacin, en la figura 4.23, presentamos la sintaxis empleada, tal y como se indica en (4.3), introduciendo la funcin objetivo directamente
en la ventana de comandos. La misma figura muestra las salidas de MATLAB=
Ntese que la solucin propuesta, x=[1.5708,-1.5708], es una buena aproximacin del ptimo global (@2> @2) (vase el ejercicio 2.1).
De forma alternativa, la funcin objetivo puede ser definida en un fichero .m
como se muestra en la figura 4.24. Esta misma figura ilustra la sintaxis general
que ha de emplearse para definir una funcin nueva. En este caso, hemos llamado
objetivo a dicha funcin, y tiene un argumento (vectorial) de entrada, x, y un
argumento de salida denotado por f.
El fichero se grabar con el mismo nombre de la funcin y con extensin
.m. As pues, el nombre del fichero es objetivo.m. Una vez definida la funcin

140

Optimizacin matemtica aplicada

Figura 4.24: Definicin de una nueva funcin.

objetivo, basta escribir en la ventana de comandos:


AA x=fminunc(objetivo,[1,-1])
y obtendremos el mismo resultado anterior. La figura 4.25 muestra la correspondiente ejecucin en MATLAB=

Figura 4.25: Sintaxis de fminunc.

Acerca de las reglas de parada de la funcin fminunc


Como se coment anteriormente, no entraremos en los detalles del algoritmo de resolucin empleado aunque s comentaremos los mensajes relativos a la
regla de parada empleada. En el caso del ejemplo anterior aparece el mensaje
Optimization terminated: relative infinity-norm of gradient less than

Captulo 4. Prcticas de optimizacin sin restricciones

141

options. TolFun. Este mensaje indica que el mtodo numrico se ha detenido


en el punto x por cumplirse el hecho de que la norma infinito de la funcin
objetivo en x es menor que el valor de determinado parmetro llamado TolFun
(que por defecto toma el valor de 1036 ), en trminos formales
kui (x)k" ? TolFun,

(4.4)

siendo i la funcin objetivo actual. En este caso, la solucin propuesta por


MATLAB> x=[1.578,-1.578], es una buena aproximacin de un ptimo global
0

(en concreto de 2 >  2 > que es un ptimo global tal y como se analiz en el

ejercicio 2.1).

Observacin 4.15 (La condicin de punto crtico) Si x es un punto crtico del problema sin restricciones, esto es si kui (x)k" = 0> la condicin (4.4) se

cumple trivialmente. De hecho, si i es de clase F 1 > la condicin (4.4) se cumplir


en un entorno del punto crtico x (como consecuencia de la continuidad de la

funcin } 7$ ui (}))= As pues, si la iteracin n-sima (n 5 N) del algoritmo

empleado por MATLAB proporciona un punto xk lo suficientemente cercano de


un punto crtico (formalmente, si verifica (4.4)), dicho punto ser propuesto
como solucin. Ilustraremos esta situacin con el siguiente ejemplo.
Ejemplo 4.11 Resolveremos con MATLAB el problema de optimizacin
(S ) P lq sen {1 sen {2 >
considerando la semilla x0=[1,1]=
Solucin. Seguidamente se muestra la resolucin con MATLAB= Ntese que
el nico cambio con respecto al ejemplo anterior se encuentra en la semilla x0,
y en este caso el proceso iterativo nos conduce hacia una aproximacin de un
punto crtico (una aproximacin de (0> 0)0 ) que no es ptimo (ni siquiera local)
del problema.
El resto de la seccin est dedicada a especificar nuevos argumentos de entrada y de salida de la funcin fminunc, prestando especial atencin a los relativos
a nuevas reglas de parada. Respecto de los argumentos de salida, adems de x,

142

Optimizacin matemtica aplicada

Figura 4.26: Resolucin del ejemplo 4.11.

podemos aadir uno a uno hasta un total de seis argumentos como se muestra
a continuacin:
AA [x,fval,exitflag,output,grad,hessian]=fminunc(fun,x0)
Recurdese que los nombres asignados a cada argumento pueden modificarse,
pues lo que identifica a cada uno de los argumentos de entrada y salida es la
posicin que ocupa (observacin 4.6).
Atendiendo a la notacin anterior, a continuacin comentamos brevemente
las nuevas salidas:
fval (5 R) representa al valor de la funcin objetivo en la solucin propuesta x (5 Rq );
exitflag muestra diferentes reglas de parada del algoritmo empleado.
Concretamente, exitflag=1 representa la condicin comentada anteriormente relativa a puntos crticos (condicin (4.4)). En el caso en el que
exitflag=2 el proceso se detiene en xl+1 porque se verifica la siguiente
condicin:

l l+1
x -x ? TolX,

(4.5)

donde xl y xl+1 representan dos puntos consecutivos generados por el


algoritmo correspondiente, y TolX (A0) denota a cierto parmetro cuyo

Captulo 4. Prcticas de optimizacin sin restricciones

143

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 condicin
l l+1
? TolFun,
i x -i x

(4.6)

donde i representa a la funcin objetivo del problema y TolFun es el mismo parmetro que aparece en la condicin (4.4). El mensaje exitflag=0
indica que se ha alcanzado el nmero mximo de evaluaciones de la funcin objetivo o el de iteraciones. Valores negativos para exitflag (concretamente -1 y -2) representan condiciones en las que se entiende que el
proceso se detiene sin xito en la bsqueda de solucin ptima (para detalles adicionales, el lector puede consultar el Optimization ToolboxW P
4, Users Guide que puede encontrarse en la web indicada al comienzo de
la presente seccin).
output contiene informacin acerca del proceso iterativo (por ejemplo,
nmero de iteraciones), el valor de la norma kui (x)k" en la solucin
propuesta, algoritmo empleado, etc.

grad y hessian representan al gradiente y la matriz hessiana en la solucin propuesta por MATLAB= Estos dos elementos son interesantes a la
hora de verificar las condiciones de optimalidad de primer y segundo orden
que se estudiaron en la seccin 2.2.
Observacin 4.16 Los valores asignados a los parmetros TolFun y TolX pueden ser modificados por el usuario mediante la funcin 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)
Ejemplo 4.12 Resolveremos con MATLAB el problema de optimizacin
(S ) P lq sen {1 sen {2 >

144

Optimizacin matemtica aplicada

considerando las semillas X0=[1,1] y X0=[1,-1] y observando todos los argumentos de salida.
Solucin. Ejecutamos fminunc con la semilla X0=[1,1]:

AA [x,f,e,o,g,h]=fminunc(sin(x(1))*sin(x(2)), [1 1])
y obtenemos los elementos (omitiremos los valores del cuarto argumento de
salida denotado aqu por o):
x = [-2.2979e-007, -2.2979e-007];
f = 5.2805e-014;
e = 1 (se verifica la condicin (4.4));
g =[-2.2979e-007 -2.2979e-007] (gradiente de la funcin objetivo en
x);

!
2.8104 10311
1
h =
=
1
2.8104 10311
Ntese que la solucin propuesta aproxima al punto crtico (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])
y obtenemos (de nuevo omitimos la informacin del cuarto argumento):
x =[1.5708 -1.5708];
f = -1;
e = 1;

Captulo 4. Prcticas de optimizacin sin restricciones

145

g =[2.2293e-007 -2.2293e-007] (prximo al vector nulo);

!
1
9.0588 1039
h =
(definida positiva)=
9.0588 1039
1

4.3.3.

Ejercicios propuestos

Ejercicio 4.8 (Ejercicio 2.2 revisitado) Resolver con MATLAB el siguiente


problema de PNL sin restricciones
(S ) P lq {1 cos {2
a partir de las semillas X0=[0,pi/2], X0=[0,-pi/2] y X0=[pi,0] comentando en cada caso los argumentos de salida x,fval,exitflag,grad y hessian,
y especificando si la solucin propuesta aproxima a algn ptimo local o no.
Ejercicio 4.9 (Ejercicio 2.4 revisitado) Resolver con MATLAB el problema de PNL sin restricciones
2 2

(S ) P lq {21 + {22 h{1 +{2 >

a partir de las semillas X0=[0,0], X0=[1,-1] y X0=[100,100] comentando


en cada caso los argumentos de salida x,fval,exitflag,grad y hessian, y
especificando si la solucin propuesta aproxima a algn ptimo local o no.
Ejercicio 4.10 Resolver con MATLAB el problema de PNL sin restricciones

2
2
(S ) P lq {21 + {22 h3{1 3{2 >

a partir de las semillas X0=[0,0], X0=[1,-1] y X0=[1000,1000], comentando en cada caso los argumentos de salida x,fval,exitflag,grad y hessian,
y especificando si la solucin propuesta aproxima a algn ptimo local o no.

Captulo 5

Prcticas de optimizacin con


restricciones
El presente captulo se ocupa de la resolucin con MATLAB de problemas
de optimizacin con restricciones. Prestaremos especial atencin a los problemas
de optimizacin no lineal, aunque dedicaremos parte de la primera seccin a los
problemas de programacin lineal. Concretamente, revisaremos las funciones de
MATLAB:
linprog (del ingls linear programming), empleada en la resolucin de
problemas de programacin lineal;
quadprog (quadratic programming), de la que haremos uso para resolver
problemas de programacin cuadrtica;
fmincon, dedicada a la resolucin de problemas de programcin no lineal
con restricciones.
Las tres funciones forman parte de la herramienta Optimization Toolbox
ya comentada en el captulo anterior. En este libro nos ocuparemos de los aspectos relacionados con la sintaxis requerida en cada una de estas funciones, y el
anlisis de las soluciones propuestas por dichas funciones (y en particular de las
reglas de parada empleadas en cada caso); sin embargo, no es objeto de estudio
del presente libro el anlisis del algoritmo de resolucin empleado en cada caso.
147

148

Optimizacin matemtica aplicada

Para detalles sobre los aspectos algortmicos, el lector puede consultar el mismo
manual que se encuentra referenciado en la seccin 4.3.

5.1.

Optimizacin lineal y cuadrtica con linprog y


quadprog (prctica 4)

5.1.1.

Sintaxis de la funcin linprog

A travs de la ayuda, AA help linprog, obtendremos la informacin


necesaria sobre la sintaxis que debemos emplear para ejecutar correctamente la
funcin linprog. Esta funcin resuelve problemas adaptados al formato:
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 decisin, f5 Rq es el vector de coeficientes de la funcin objetivo, Ax  b y Aeqx = beq representan, respectivamente, el sistema de desigualdades lineales y de ecuaciones lineales en formato
matricial, y finalmente LB (del ingls, lower bound ) y UB (del ingls, 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 funcin
linprog:
Informalmente hablando, la sintaxis minimal de esta funcin es:
AA x=linprog(f,A,b)
y se emplea en la resolucin de problemas de optimizacin lineal cuyo
sistema de restricciones contiene nicamente desigualdades lineales.
Pueden aadirse otros argumentos de entrada con la sintaxis:
AA x=linprog(f,A,b,Aeq,beq)

Captulo 5. Prcticas de optimizacin con restricciones

149

o x=linprog(f,A,b,Aeq,beq,LB,UB), dependiendo del tipo de restricciones del problema (5.1). Puede escribirse LB=[] o UB=[] cuando el problema no presente cotas inferiores o superiores.
Existe adems la posibilidad de indicar el punto inicial, x0, del algoritmo
de resolucin implementado en MATLAB mediante la sintaxis:
AA x=linprog(f,A,b,Aeq,beq,LB,UB,x0)
y de modificar ciertos parmetros del proceso de resolucin (como determinadas reglas de parada emprica) aadiendo como ltimo argumento de
entrada el vector llamado options (vase de nuevo el manual Optimization ToolboxW P 4, Users Guide indicado en la seccin 4.3).
Junto a cada una de las modalidades anteriores, se dispone de diferentes
opciones respecto de los argumentos de salida: as, por ejemplo si escribimos [x,fval]=linprog(f,A,b,...) obtendremos, adems de la solucin propuesta por MATLAB, el valor del objetivo en dicha solucin
(fval).
En nuestro caso, estaremos especialmente interesados en la sintaxis
AA [x,fval,exitflag,output,lambda]=linprog(f,A,b,...)
puesto que el quinto de los argumentos de salida (denotado aqu por
lambda) proporciona los multiplicadores de KKT asociados al punto x.
Adems, el tercero de los argumentos de salida (exitflag) proporciona
cierta informacin sobre la regla de parada empleada en la solucin propuesta. Por lo general, tanto en sta como en las restantes funciones analizadas en este libro (fminunc, quadprog y fmincon), valores positivos
de exitflag representan situaciones de xito en cuanto al estado de la
solucin; concretamente, representan reglas de parada asociadas a situaciones en las que se verifica alguna condicin deseable (vanse, por ejemplo,
las condiciones (4.4), (4.5) y (4.6) asociadas a los valores exitflag=1, 2
y 3 en relacin con fminunc). En el caso de la funcin linprog, puede
obtenerse el valor exitflag=1 que se interpreta como que el algoritmo

150

Optimizacin matemtica aplicada


empleado converge hacia x, exitflag=0 significa que se ha alcanzado el
nmero mximo de iteraciones, exitflag=-2 aparece cuando no se ha encontrado una solucin factible, exitflag=-3 indica que el problema es no
acotado, etc. Por su parte, el argumento de salida output proporciona
cierta informacin relativa a la implementacin del algoritmo (para detalles el lector puede consultar la ayuda del programa o el manual sobre
Optimization Toolbox referido al comienzo de este captulo).
Respecto del ltimo argumento de salida, lambda, para obtener los multiplicadores 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 asociados al sistema de ecuaciones Aeqx = beq, lambda.lower, para los correspondientes 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 dimensin del vector correspondiente es 1, muestra directamente el multiplicador (esto es, cuando existe una nica desigualdad, o
una nica igualdad, o una cota).
Ilustraremos los comentarios anteriores con los siguientes ejemplos.

Ejemplo 5.1 Resolver con MATLAB los siguientes problemas de programacin


lineal, indicando en cada caso la solucin propuesta, el valor de la funcin objetivo en dicha solucin, los multiplicadores de KKT correspondientes y la regla
de parada empleada.
(S1 ) P lq

{1 + 2{2  2{3

(S2 ) P lq

3{1  2{2  {3

v=d {1 + {2 + {3  1>

v=d {1 + {2 + {3  1>

{1  {2  {3  1>

{1  {3 = 3>

(S3 ) P lq
v=d

{1 + 2{2  4{3
{1 + {2 + {3  1>
1  {1  4> 0  {2  2=

(S4 ) P lq

{1 + 2{2 + 4{3

v=d {1 + {2 + {3 = 1>
{1 > {2 > {3  0=

Solucin. La figura siguiente muestra la sintaxis empleada en la resolucin


de (S1 ) =

Captulo 5. Prcticas de optimizacin con restricciones

151

Figura 5.1: Sintaxis de (S1 ) en el ejemplo 5.1.

As, obtenemos e=-3 lo que indica que el problema es no acotado. Ntese que,
en cualquier caso MATLAB asigna unos valores numricos a las coordenadas de
x, puesto que muestra el punto en el que se ha detenido el algoritmo de bsqueda
de solucin ptima.
A continuacin, en la figura 5.2 se muestra la sintaxis empleada en la resolucin de (S2 ) =

Figura 5.2: Sintaxis de la resolucin (S2 ) en el ejemplo 5.1.

En este caso se tiene:


e=1> lo que indica que el algoritmo converge con xito.
La solucin propuesta es x = [-1.0679, 6.1358, -4.0679].
El valor de la funcin objetivo es f=-5.

152

Optimizacin matemtica aplicada


Respecto de los multiplicadores aparece la siguiente informacin:
l =
ineqlin: 2 (multiplicador de KKT asociado a la nica desigualdad)
eqlin: 1 (multiplicador e KKT asociado a la nica ecuacin)
upper: [3x1 double]
lower: [3x1 double]
A continuacin, abordamos la resolucin de (S3 ) > vase la figura 5.3.

Figura 5.3: Sintaxis de la resolucin (S3 ) en el ejemplo 5.1.

En este caso se tiene:


e=1> luego el algoritmo converge.
La solucin propuesta es x = [1, 2.4683e-011, -7.131e-011].
El valor de la funcin objetivo es f=1.
Respecto de los multiplicadores aparece la siguiente informacin:
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]

Captulo 5. Prcticas de optimizacin con restricciones

153

Para obtener los valores numricos de los multiplicadores asociados a las


cotas superiores e inferiores pondremos: AAl.upper y AAl.lower.
Obtenemos los siguientes resultados: para l.upper,
[2.3191e-010, 2.7215e-010,0]
y para l.lower, [5,6,0].
Resolucin de (S4 ) :

Figura 5.4: Sintaxis de la resolucin de (S4 ) en el ejemplo 5.1.

En este problema tambin se tiene e=1> la solucin propuesta es una aproximacin de (1> 0> 0)0 > con valor de la funcin objetivo 1. El multiplicador de KKT
asociado a la ecuacin es -1 y los multiplicadores asociados a las cotas inferiores
son 0, 1 y 3. Ntese que el problema no tiene cotas superiores.

5.1.2.

Sintaxis de la funcin quadprog

Seguidamente comentamos algunos aspectos de la sintaxis de la funcin


quadprog en relacin con la resolucin de problemas cuadrticos con restricciones (vase la subseccin 4.3.1 en relacin con el caso de problemas cuadrticos
sin restricciones).
Como sabemos, la funcin quadprog admite diferentes argumentos de entrada y salida (escrbase AA help quadprog para ms detalles). La versin
ms sencilla es AA x=quadprog(H,f,A,B), donde x es la solucin propuesta
por MATLAB del problema:

154

Optimizacin matemtica aplicada

P lq

1
2 xHx+fx

v=d

Ax  B=

Como en el caso de la funcin linprog puede ampliarse el nmero de argumentos


de entrada en los formatos:
AA x=quadprog(H,f,A,B,Aeq,Beq), que resuelve el problema anterior
aadiendo como restricciones el sistema de ecuaciones Aeq x = Beq,
AA x=quadprog(H,f,A,B,Aeq,Beq,LB,UB) aade al anterior el vector
de cotas inferiores LB y de cotas superiores UB; esto es, LB ?= x ?= UB.
AA x=quadprog(H,f,A,B,Aeq,Beq,LB,UB,x0) ampla los argumentos
de entrada con el punto semilla x0. Adems, pueden modificarse ciertos
parmetros del proceso de resolucin (por ejemplo, reglas de parada del
algoritmo) aadiendo como ltimo argumento de entrada el vector llamado
options (vase el manual Optimization ToolboxW P 4, Users Guide
comentado anteriormente).
Respecto de los argumentos de salida, vase la subseccin anterior referida
a la funcin linprog. La nica diferencia se encuentra en el tercer argumento
de salida, exitflag, que en este caso puede tomar los valores positivos 1, 3 y
4, asociados con reglas de parada satisfactorias, 0 en el caso de en el que se
excede el nmero mximo de iteraciones, y los valores negativos -2,-3,-4 y -7,
asociados con reglas de parada del algoritmo insatisfactorias en el sentido de
que no parece haberse alcanzado un ptimo local, por ejemplo, -2 indica que no
se ha encontrado punto factible y -3 indica que posiblemente el problema es no
acotado (de nuevo vanse detalles en el manual indicado en el prrafo anterior).
Ejemplo 5.2 (Ejemplo 3.11 revisitado) Resolver el siguiente problema de
optimizacin en R3 con ayuda de la funcin quadprog utilizando las semillas [0
0 0] y [1 0 0]:
(S F) P lq {21 + 2{1 {2 + {22 + {23 + {1 + {2
v=d

{1 + {2 + {3  1>
{1  {2 + {3  1=

Captulo 5. Prcticas de optimizacin con restricciones

155

Solucin. Emplearemos la notacin Q y c en vez de H y f con el fin de


mantener la notacin de la subseccin 3.5.3 dedicada a la teora de los problemas
cuadrticos. La figura 5.5 muestra la sintaxis empleada en la resolucin de este
ejemplo con la semilla x0=[0 0 0].

Figura 5.5: Sintaxis de la funcin quadprog.

Se obtienen los siguientes resultados:


x=[-7.8505e-017,-0.5,0]
y su imagen mediante la funcin objetivo es f=-0.25. El indicador de la regla de
parada toma el valor e=1. Respecto de los multiplicadores de KKT, se muestra
la salida siguiente:
l =
lower: [3x1 double]
upper: [3x1 double]
eqlin: [0x1 double]
ineqlin: [2x1 double]
Para obtener los valores numricos de los multiplicadores de KKT asociados
a las dos desigualdades pondremos AA l.ineqlin y aparece en pantalla:
ans =
0
0

156

Optimizacin matemtica aplicada


Seguidamente resolvemos el mismo problema con la semilla x0=[1 0 0].

En este caso obtenemos la solucin x=[0.25,-0.75, 2.4652e-032], con valor


de la funcin objetivo f=-0.25. El valor de e es tambin 1 y los multiplicadores
de KKT asociados a las dos desigualdades son nulos.
En este momento recordamos que el conjunto de soluciones ptimas es (como
se comprob en el ejemplo 3.11):

1
=
G = L = PNNW = { 5 R3 | 2{1 + 2{2 = 1> {3 = 0> {1 
4
As pues, las dos soluciones propuestas por MATLAB resultan ser ptimos globales.
El siguiente ejemplo pone de manifiesto que, dependiendo de la semilla elegida, MATLAB puede proporcionar ptimos locales que no sean globales. En
general, la comprobacin de la optimalidad global ha de hacerse por mtodos
analticos, empleando resultados tericos o directamente la definicin de ptimo
global.
Ejemplo 5.3 (ptimo local que no es global) Consideremos el problema
en R2
(S ) P lq
v=d

1 2
2 {1

 12 {22

{1 + {2  1>
{1  {2  1>
{1 + {2  5>
{1  {2  1=

Se pide:
(i) Resolver (S ) con ayuda de la funcin 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.
Solucin. (i) La figura 5.6 muestra la resolucin del problema actual con la
semilla [-1 1].
En este caso, se obtiene la solucin x=[0 -1] con valor de la funcin objetivo f=-0.5.

Captulo 5. Prcticas de optimizacin con restricciones

157

Figura 5.6: Resolucin del ejemplo 5.3 con x0=[-1 1].

Puede comprobarse que partiendo de la semilla [1 1] se obtiene la solucin


x=[2 3] con f=-2.5.
Ntese que tenemos soluciones distintas con valores de la funcin objetivo
distintos. Obviamente, como consecuencia de la comparacin de ambos valores,
se desprende que x=[0 -1] no es ptimo global. En cualquier caso, con la informacin que proporciona MATLAB no tenemos elementos de juicio suficientes
para garantizar si x=[2 3] es o no ptimo global.
(ii) Para analizar la optimalidad local y global hemos de recurrir a los conocimientos tericos. Por ejemplo, en este caso, se comprueba fcilmente que el
conjunto factible es compacto y, por tanto, existe algn ptimo global (en virtud
del Teorema de Weierstrass, vase la subseccin 3.5.1). De hecho, sumando los
dos miembros de las restricciones 1 y 4 se deduce que {1  1= Realizando la
misma operacin con las restricciones 2 y 3 se deduce {1  3= De las restricciones
1 y 3 se deduce {2  3> y de las restricciones 2 y 4 se deduce {2  1=
Adems, puesto que se cumple alguna cualificacin de restricciones en cada
uno de los puntos factibles (pues todas las restricciones son lineales), todo ptimo
global es punto de KKT. En este caso, puede comprobarse siguiendo los pasos
descritos en el captulo 3 que el conjunto de puntos de KKT es

PNNW = (0> 0)0 > (0> 1)0 > (2> 3)0 =

158

Optimizacin matemtica aplicada


Adems, si i representa a la funcin objetivo, se tiene que i (0> 0) = 0>

i (0> 1) = 0.5 y i (2> 3) = 2.5= Luego (2> 3)0 ha de ser un ptimo global de
(S ) =
Finalmente, queda verificar si (0> 1)0 es un ptimo local. Tmese el entorno
de (0> 1)0 dado por
X := ]1> 1[ ]2> 0[
y ntese que si { 5 X _ I (recurdese que I denota al conjunto factible de (S ))>
en particular se tiene que {2 5 [1> 0[ = En consecuencia,
1
1
1
{ 5 X _ I , i ({) = {21  {22  0  = i (0> 1) =
2
2
2
As pues, hemos comprobado que (0> 1)0 es un ptimo local del problema.

5.2.

Optimizacin no lineal con fmincon (prctica 5)

La presente seccin est dedicada a la resolucin de problemas de PNL con


restricciones con ayuda de la funcin fmincon de MATLAB. Esta funcin resuelve problemas de optimizacin adaptados al formato:
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 introduccin de los datos del
modelo es la siguiente (vase la ayuda de MATLAB para detalles, escribiendo
AA help fmincon):
La sintaxis ms sencilla es X=fmincon(fun(x),X0,A,B) a travs de la
cual se resuelve el problema de minimizar la funcin objetivo fun(x) en
general no lineal, sujeto al sistema de desigualdades lineales A x  B.
El segundo argumento de entrada, X0, representa la semilla del proceso
iterativo.

Captulo 5. Prcticas de optimizacin con restricciones

159

Si el problema de optimizacin contiene entre sus restricciones un sistema


de ecuaciones lineales de la forma Aeq x = Beq (vase (5.2)), puede escribirse X=fmincon(fun,X0,A,B,Aeq,Beq).
A continuacin, se introducen las cotas inferiores y superiores mediante la
sintaxis X=fmincon(fun,X0,A,B,Aeq,Beq, LB,UB).
Finalmente, se aaden al modelo las restricciones no lineales C(x) 0 y
Ceq(x)= 0. Se recomienda definir estas restricciones no lineales en un
M-archivo como se explica a continuacin. As, por ejemplo, si grabamos
el fichero de las restricciones no lineales con el nombre nonlcon.m, para
ejecutar entonces la funcin fmincon escribiremos:
X=fmincon(fun,X0,A,B,Aeq,Beq,LB,UB,nonlcon).

5.2.1.

Definicin de las restricciones en un M-archivo

El siguiente ejemplo ilustra cmo hemos de crear un M-archivo, que llamaremos nonlcon (del ingls, nonlinear constraints), para almacenar las restricciones no lineales de un problema de optimizacin. Este M-archivo contendr una
funcin cuyo argumento de entrada ser x y cuyos argumentos de salida sern
C y Ceq (recordemos que el orden es importante).
Ejemplo 5.4 (Restricciones en un M-archivo) Consideremos el problema
de optimizacin, en R4 :
P lq

{21 + {22 + {23 + {4

v=d

{1 + {2 + {3 + 4{4 = 2>
{21 + {22 + {23 + {24  400>
{21  {24  0>
{1 {2 = 100>
{1 > {2  0=

Recordemos que para crear un nuevo M-archivo desde la barra de herramientas de MATLAB seguiremos los pasos: file $ New $ M-file. De este modo,
entraremos en el editor de textos de MATLAB. La figura 5.7 muestra la sintaxis
empleada en la edicin de las restricciones no lineales del presente ejemplo.

160

Optimizacin matemtica aplicada

Obsrvese que x es la variable de decisin vectorial y x(1),...,x(4) son sus coordenadas. Ntese tambin que la funcin nonlcon tiene dos argumentos de
salida C y Ceq correspondientes a las funciones que definen las restricciones de
desigualdad e igualdad, respectivamente. C y/o Ceq pueden ser vectoriales, en
cuyo caso, se escribirn como vectores columna.

Figura 5.7: Edicin de las restricciones no lineales.

La funcin objetivo puede definirse tambin en un M-archivo independiente,


lo que resulta conveniente en el caso de funciones de cierta envergadura, o bien
puede ser introducida directamente en la ventana de comandos. En la figura
5.8 se muestra como introducir la funcin objetivo siguiendo la segunda opcin.
Ntese que tanto la funcin objetivo como el nombre del fichero nonlcon han
de escribirse entre comillas. Respecto de la semilla, x0=[1 2 3 4], se ha elegido
arbitrariamente.

Figura 5.8: Sintaxis de la funcin fmincon.

Captulo 5. Prcticas de optimizacin con restricciones

5.2.2.

161

Definicin de la funcin objetivo en un M-archivo

Continuando con el mismo ejemplo anterior, seguidamente definimos la funcin objetivo en un M-archivo que llamaremos fun (vase la figura 5.9).

Figura 5.9: Edicin de la funcin objetivo en un M-archivo.

As pues, resolvemos el problema de optimizacin que nos ocupa mediante


la sintaxis que se muestra en la figura 5.10.

Figura 5.10: Sintaxis de la resolucin del ejemplo 5.4.

5.2.3.

Algunos parmetros y mensajes de parada

La funcin fmincon emplea determinados parmetros para controlar la interrupcin del proceso iterativo que lleva implementado. A continuacin, comentaremos cuatro de estos parmetros; vanse los detalles sobre los algoritmos
implementados y el resto de parmetros de control en el manual Optimization
ToolboxW P 4, Users Guide (vase la seccin 4.3).

162

Optimizacin matemtica aplicada


La funcin fmincon tiene asignados determinados valores por defecto a los

mencionados parmetros. Estos valores pueden modificarse mediante la funcin optimset. Para comenzar es importante conocer el nombre de dichos
parmetros y para ello puede escribirse en la ventana de comandos AA options=optimset (vase la figura 5.11). De hecho, de este modo estamos almacenando en options el conjunto de todos los valores por defecto de los parmetros.

Figura 5.11: Nombre de los parmetros de fmincon.

En esta subseccin comentaremos los parmetros TolFun, TolCon, MaxFunEvals y MaxIter.


En el resto de esta subseccin, por simplicidad en la notacin, trabajaremos
con el problema de PNL en el formato siguiente:
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)
estn definidas en Rq y toman sus valores (imgenes) en R=
Los parmetros TolFun y TolCon tienen un valor asignado por defecto
de 1036 y se emplean en la comprobacin de las condiciones de KKT en

Captulo 5. Prcticas de optimizacin con restricciones

163

la solucin propuesta, x. De hecho, uno de los posibles mensajes de parada es Optimization terminated: first-order optimality measure
less than options.TolFun and maximum constraint violation is
less than options.TolCon. Este mensaje se interpreta de la siguiente
forma:
First-order optimality measure less than options.TolFun significa que se cumplen las siguientes desigualdades:

s
p
X
X

ui ({) +

uj
({)
+

uk
({)
l
l
m
m

l=1
m=1

 TolFun,

(5.3)

y para todo l> se tiene |l jl ({)|  TolFun>

(5.4)

"

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.TolCon significa que:
[jl ({)]+  TolCon, para todo l>

(5.5)

|km ({)|  TolCon, para todo m>

(5.6)

donde [jl ({)]+ representa la parte positiva de jl ({) > esto es,
[jl ({)]+ = max{0> jl ({)}=
Los parmetros MaxFunEvals y MaxIter representan, respectivamente,
el nmero mximo de evaluaciones de la funcin objetivo y el nmero mximo de iteraciones. Los valores asignados por defecto son 100q (100*nmero
de variables) y 400, respectivamente. Estos parmetros actan como criterios de parada en el sentido de que si se excede alguno de estos valores
asignados, el algoritmo se detiene. Concretamente, el mensaje Maximum
number of function evaluations exceeded; increase OPTIONS.MaxFunEvals significa que el algoritmo se ha detenido porque se ha excedido
el nmero de evaluaciones de la funcin objetivo y se aconseja incrementar
el parmetro MaxFunEvals. Por su parte, el mensaje Maximum number
of iterations exceeded; increase OPTIONS.MaxIter significa que se
ha excedido el nmero mximo de iteraciones y se aconseja incrementar el
valor del parmetro MaxIter.

164

Optimizacin matemtica aplicada


Seguidamente se presentan ilustraciones de estos mensajes.

Ejemplo 5.5 (Ejemplo 5.4 revisitado) La figura 5.12 muestra el mensaje


de salida en la resolucin del ejemplo 5.4.

Figura 5.12: Mensaje relativo a las condiciones de KKT.

En este caso, en el punto propuesto { = (10> 10> 0.1250>  4.5313)0 se verifican las condiciones (5.3), (5.4), (5.5) y (5.6); esto es, se verifican aproximadamente las condiciones de KKT en dicho punto. Si se quiere conocer el valor
de los escalares l > l = 1> ===> p> m > m = 1> ===> s> hemos de pedirlo como argumento de salida de forma anloga a como se haca con la funcin quadprog. Si
escribimos:
AA [x,f,e,o,l]=fmincon(fun,x0,A,B,Aeq,Beq,LB,UB,nonlcon)
obtenemos, adems de x, el valor de la funcin objetivo en dicho punto,
f =195.4844, e=1 que significa precisamente que se verifican aproximadamente
las condiciones de KKT, cierta informacin adicional que viene recogida en el
cuarto argumento de salida, o (el nmero de iteraciones empleadas, o.iterations: 11, el nmero de evaluaciones de la funcin objetivo, o.funcCount: 62,

Captulo 5. Prcticas de optimizacin con restricciones

165

el valor mximo de los miembros de la izquierda de (5.3) y (5.4), o.firstorderopt: 6.6542e-007) y los valores de los escalares l > l = 1> ===> p> m > m =
1> ===> s> que viene recogidos en l.lower (correspondientes a las cotas inferiores), l.upper (correspondientes a las cotas superiores), l.eqlin (asociados
a las ecuaciones lineales), l.eqnonlin (asociados a las ecuaciones no lineales),
l.ineqlin (asociados a las inecuaciones lineales) y l.ineqnonlin (asociados
a las inecuaciones no lineales).
En nuestro caso, se obtiene l.lower=l.upper=[0,0,0,0]; l.eqlin=-0.25
(asociado a la restriccin {1 + {2 + {3 + 4{4 = 2)> l.eqnonlin=-1.9750 (asociado a la restriccin {1 {2 = 100)> l.ineqlin: [0x1 double] (no existen inecuaciones lineales), l.ineqnonlin=[0,0], asociados a las restricciones
{21 + {22 + {23 + {24  400 y  {21 + {24  0=
Ejemplo 5.6 Consideremos el problema de PNL
P lq

{21 + 4{42 + 3{63 + {4

v=d

{1 + {2 + {3 + 4{4 = 2>
{21 + {22 + {43 {24  400>
{1 {2  100>
{21

 {24 = 100>

{3 {4 = 200>
{1 > {2  0=
Se pide:
(i) Ejecutar la funcin fmincon con la semilla x0=[1 1 1 1] e indicar el
motivo de parada; se cumplen (aproximadamente) las condiciones de KKT en
la solucin propuesta?
(ii) Asignar a los parmetros MaxFunEvals y MaxIter los valores 1000 y 900,
respectivamente; encuentra algn punto donde se cumplan (aproximadamente)
las condiciones de KKT?
Solucin. (i) La figura 5.13 muestra la edicin de las restricciones no lineales
del presente ejemplo.
Las matrices A, B, Aeq, Beq, LB y UB son idnticas a las del ejercicio anterior.
A continuacin, en la figura 5.14 se muestra el resto de la sintaxis de fmincon,

166

Optimizacin matemtica aplicada

Figura 5.13: Edicin de las restricciones no lineales del ejemplo 5.6.

el mensaje de salida, la solucin propuesta, x, y el valor de la funcin objetivo


en dicha solucin, f. Ntese que el mensaje de salida indica que la parada del
proceso iterativo de resolucin se debe a que se ha excedido el nmero mximo
de evaluaciones de la funcin objetivo.

Figura 5.14: Resolucin del ejemplo 5.6.

Podemos comprobar, adems, que no se cumplen de forma aproximada las


condiciones de KKT. Concretamente, que no se cumplen las condiciones (5.3) y
(5.4).

Captulo 5. Prcticas de optimizacin con restricciones

167

En la figura 5.15 puede observarse que o.firstorderopt=1.732 104 > lo que

significa que
;

s
p
A
P
P
A

? ui ({) +
l ujl ({) +
m ukm ({) >

max
l=1
m=1
"
A
A
=
|l jl ({)| > l = 1> ===> p

<
A
A
@
A
A
>

= 1.732 104 =

En la misma figura puede observarse que el nmero de iteraciones empleadas es


de 20 y el de evaluaciones de la funcin objetivo es 404 (cuando el lmite est
en 100q = 400)=

Figura 5.15: Valores de exitflag y output en el ejemplo 5.6.

(ii) En general, la asignacin de nuevos valores a los parmetros contenidos


en options se hace mediante la funcin optimset. La figura 5.16 muestra la
sintaxis empleada en la asignacin de los valores 1000 y 900 a los parmetros
MaxFunEvals y MaxIter. La sintaxis sera anloga si se quisieran modificar
TolFun o TolCon. Ntese que mediante la sintaxis:
AA options=optimset(Nombre del parmetro, asignacin,...)
se crean nuevas asignaciones para los parmetros aqu nombrados, dejando las

168

Optimizacin matemtica aplicada

Figura 5.16: Asignacin de nuevos valores a los parmetros mediante optimset.

asignaciones por defecto para el resto de parmetros. Posteriormente, ha de


introducirse options en el lugar 10 de los argumentos de entrada de fmincon.
Finalmente comentamos que, de nuevo, valores positivos de exitflag (el tercero de los argumentos de salida de fmincon) se corresponden con reglas de
parada satisfactorias (por ejemplo, exitflag=1 significa que se cumple la aproximacin de las condiciones de KKT especificadas en (5.3), (5.4), (5.5) y (5.6)),
el valor nulo significa que se ha excedido el nmero mximo de evaluaciones de
la funcin objetivo o el nmero mximo de iteraciones. Por su parte, valores
negativos indican que la solucin propuesta no es satisfactoria (por ejemplo,
exitflag=-2 significa que no se ha encontrado una solucin factible).

5.2.4.

Ejercicios propuestos

Ejercicio 5.1 Se desea minimizar la cantidad de cartn (en m2 ) empleado en la


elaboracin de una caja de dimensiones {1 > {2 y {3 (donde {1 y {2 representan
las dimensiones de la base y {3 la altura), suponiendo que desea albergarse un
volumen de al menos 1 m3 = Adems, por razones de resistencia de la caja, debe
ponerse doble capa de cartn en su base. Se pide:
(i) Plantear el modelo que resuelve esta cuestin.
(ii) Resolver el modelo anterior con ayuda de la funcin fmincon partiendo
de diferentes semillas (ensayar con 5 semillas distintas); en cada caso comentar
si la solucin propuesta por MATLAB verifica aproximadamente las condiciones
de KKT.
(iii) Cmo cambiara el valor ptimo del problema si se relajara ligeramente

Captulo 5. Prcticas de optimizacin con restricciones

169

la restriccin de volumen (esto es, si se deseara albergar un volumen de al menos


1  %, con % A 0 suficientemente pequeo)?
Ejercicio 5.2 Se pretende construir un depsito con forma de cilindro sin tapadera para albergar un volumen de al menos 2 m3 y se desea determinar las dimensiones ptimas del cilindro en el sentido de minimizar la cantidad de material
necesario para su construccin. Se pide:
(i) Plantear el modelo de optimizacin correspondiente.
(ii) Encontrar con ayuda de fmincon alguna solucin que verifique las condiciones de KKT (aproximadamente).
(iii) Cmo repercutira en el valor ptimo del problema una ligera variacin
en el volumen mnimo que se desea albergar?
Ejercicio 5.3 Se desea determinar el punto ms cercano y el ms alejado de
(0> 2> 2) a la regin

D = ({> |> }) | {2 + |2 + } 2  2> {2 + |2  1> { + | + }  0 =

Para ello se pide:

(i) Plantear los problemas de optimizacin que resuelven estas dos cuestiones.
(ii) Resolver (de forma aproximada) los dos problemas anteriores con ayuda
de fmincon.
(iii) Indicar en cada caso los valores correspondientes de los multiplicadores
de KKT.

Parte III

Aplicaciones

Captulo 6

Aplicaciones de la
Programacin Lineal
6.1.

Introduccin: resultados bsicos de Programacin


Lineal y primeros ejemplos

Un problema de PL puede escribirse de la siguiente forma:


(S ) P lq i ({) = f0 {
v=d

d0m {  em > m 5 G>


d0l {

(6.1)

= 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) quedara

I = { 5 Rq | d0m {  em > m 5 G> d0l { = el > l 5 L =

Las |L| restricciones de igualdad se pueden desdoblar en 2 |L| restricciones de

desigualdad, por lo que cuando sea necesario, podremos suponer sin prdida de

generalidad que no existen restricciones de igualdad en el problema. Por tanto


en la PL, el conjunto factible resulta ser la interseccin de semiespacios cerrados,
esto es, un poliedro (vase la ilustracin de la figura 6.1 para un poliedro acotado
y otro no acotado).
A continuacin, se enuncian un par de resultados bsicos de la PL que sern
de utilidad para las aplicaciones de las secciones siguientes.
173

174

Optimizacin matemtica aplicada


Conjunto factible acotado

Conjunto factible no acotado

Figura 6.1: Conjunto factible de un problema de PL.


Puesto que la linealidad es una cualificacin de restricciones, y los problemas
de PL son un caso particular de los problemas convexos, sabemos (vese la
seccin 3.5.2) que coincidirn los ptimos globales, ptimos locales y puntos de
KKT del problema (6.1): G = L = PNNW . Teniendo en cuenta la forma que

adoptan las condiciones de KKT para el caso particular de la PL, se tiene el


siguiente teorema:
Teorema 6.1 Dado el problema de PL (6.1) y dado {
5 I , son equivalentes:
(i) {
es ptimo local;
(ii) {
es ptimo global;
(iii) {
es punto de KKT, esto es, existen m  0> m 5 G, l 5 R> l 5 L tales

que:
f =

m dm +

mMG
0
m (dm {
 em )

<
l dl > @

lML

= 0> m 5 G=

>

Es bien sabido que en PL la resolubilidad y la acotacin son propiedades


equivalentes. El siguiente teorema recoge este enunciado aadiendo adems una
caracterizacin algebraica de estas propiedades.
Teorema 6.2 Dado el problema de PL (6.1) con conjunto factible no vaco,
son equivalentes:
(i) (S ) es resoluble;
(ii) (S ) es acotado (4 ? y ? +4) ;

Captulo 6. Aplicaciones de la Programacin Lineal


(iii) Existen m  0> m 5 G> l 5 R> l 5 L tales que f =

175
P

m dm +

mMG

l dl =

lML

Observacin 6.1 En un problema de programacin lineal con f 6= 0q , los pti-

mos, si existen, se alcanzan siempre en la frontera, donde existe alguna restric-

cin activa. Este hecho es consecuencia directa de las condiciones de KKT, que
en PL caracterizan la optimalidad, como se enuncia en el teorema 6.1.

Resolucin grfica de los problemas de PL bidimensionales


Puesto que son representables en el plano, los problemas de PL bidimensionales admiten una resolucin grfica de forma sencilla. Los pasos a seguir son los
siguientes:
1. Se representan las rectas que definen las restricciones y se localiza el
conjunto factible.
2. Se representan el gradiente, f, y los conjuntos de nivel (lneas rectas perpendiculares a f) de la funcin objetivo.
3. Finalmente, en trminos informales, la solucin o soluciones del problema
(S ) se encontrarn en el conjunto de nivel de valor ms bajo que intersecta al
conjunto factible.
A continuacin, presentamos tres ejemplos con la finalidad de ilustrar diferentes aspectos de la PL. El primero, adems de por la modelizacin en s misma, se introduce con el objetivo de ilustrar la resolucin grfica de problemas
bidimensionales. El segundo presenta una ilustracin del teorema 6.2 de caracterizacin de la resolubilidad. El tercero constituye un problema clsico de
aplicacin de la PL, donde se hace hincapi en la modelizacin y en la comprobacin terica de la resolubilidad (de nuevo como ilustracin del teorema
6.2)

6.1.1.

Un modelo bsico del consumidor

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 funcin de
utilidad x y no sobrepase su renta p. Se considera la siguiente notacin:
{1 : cantidad del bien 1 ({1  0),

176

Optimizacin matemtica aplicada


{2 : cantidad del bien 2 ({2  0),
s1 : precio unitario del bien 1 (s1 A 0),
s2 : precio unitario del bien 2 (s2 A 0).
Supondremos que las preferencias del consumidor pueden ser representadas

por una funcin de utilidad lineal:


x({1 > {2 ) = f1 {1 + f2 {2 =
Supongamos, adems, que existe un impuesto sobre el bien 1 de w A 0 unidades
1 
por cada unidad consumida que exceda la cantidad {
1 (con {

p
s1 ).

Ahora pasamos a resolver el problema, calculando, en primer lugar, el conjunto factible. Para ello solo hay que tener en cuenta que el gasto debe ser menor
que la renta del consumidor, distinguiendo adems cuando se aplica el impuesto:
Si {1  {
1 entonces debe ser s1 {1 + s2 {2  p=
1 entonces debe ser s1 {
1 + (s1 + w)({1  {
1 ) + s2 {2  p> o lo que es
Si {1 A {
lo mismo s1 {1 + w({1  {
1 ) + s2 {2  p=

Por tanto, el conjunto factible se puede describir como

I = { 5 R2 | {1  {
1 > s1 {1 + s2 {2  p ^

{ 5 R2 | {1 A {
1 > s1 {1 + w({1  {
1 ) + s2 {2  p =

Veamos que I coincide con el siguiente conjunto expresado ya en el formato


de la PL:

1 ) + s2 {2  p =
Ie = ({1 > {2 ) 5 R2 | s1 {1 + s2 {2  p> s1 {1 + w({1  {

Como la inclusin Ie  I es inmediata, solo queda probar que I  Ie:

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=

1 y s1 {1 + w({1  {
1 ) + s2 {2  p> como w({1  {
1 ) A 0, se tiene
Si {1 A {
1 ) + s2 {2  p.
s1 {1 + s2 {2 ? s1 {1 + w({1  {

Captulo 6. Aplicaciones de la Programacin Lineal

177

Por tanto, el problema que tiene que resolver el consumidor quedara

(S ) P lq x({1 > {2 ) = f1 {1  f2 {2


v=d

s1 {1 + s2 {2  p>
1 ) + s2 {2  p>
s1 {1 + w({1  {
{1 > {2  0=

Seguidamente indicamos el conjunto de soluciones de (S ) distinguiendo cinco


casos (ilustrados en las figuras 6.2, 6.3 y 6.4):
f1
f2

(i) En el caso
(ii) Si

f1
f2

s1
s2 >

la solucin es (0> sp2 )0 =

s1
1 0
p 0
1{
{1 > p3s
) ]=
s2 > el conjunto de soluciones es el segmento [(0> s2 ) > (
s2

(iii) Si

s1
s2

f1
f2

(iv) Si

f1
f2

s1 +w
s2 >

(v) Si

s1 +w
s2

f1
f2 >

s1 +w
s2 >

1 0
1{
la solucin es (
{1 > p3s
)=
s2

1 0 p+w
1{
el conjunto de soluciones es [(
{1 > p3s
) > ( s1 +w{1 > 0)0 ]=
s2
{1
0
la solucin es ( p+w
s1 +w > 0) =

Las lneas discontinuas representan los conjuntos de nivel de la funcin objetivo; un aumento de grosor indica una disminucin del valor de la funcin.
f1
f2

s1
s2

f1
f2

Figura 6.2: Casos (i) y (ii).

s1
s2

178

Optimizacin matemtica aplicada


s1
s2

f1
f2

s1 +w
s2

f1
f2

s1 +w
s2

Figura 6.3: Casos (iii) y (iv).

s1 +w
s2

f1
f2

Figura 6.4: Caso (v).

6.1.2.

Resolubilidad con conjunto factible no acotado

Se sabe que el conjunto factible de un problema de PL es siempre cerrado,


por ser la interseccin de semiespacios cerrados (vase el ejemplo 1.9). Si adems
es acotado, el conjunto factible ser compacto y por el Teorema de Weierstrass
se sabe que existe al menos un mnimo. Por tanto, el problema ser resoluble.

Captulo 6. Aplicaciones de la Programacin Lineal

179

Cuando su conjunto factible no es acotado, el problema puede no ser resoluble. Vamos a ver esto en los dos problemas siguientes:
1. Sean d1 = (2> 1)0 > d2 = (1> 2)0 > d3 = (1> 2)0 > f = (1> 1)0 > e1 =

0> e2 = 10> e3 = 4, I = { 5 R2 | d01 {  0> d02 {  10> d03 {  4 y el problema


(S1 ) Min f0 {
v=d

{ 5 I=

Aplicando el teorema 6.2, (S1 ) tendr solucin si, y solo si, existen 1 > 2 > 3  0
tales que
f = 1 d1 + 2 d2 + 3 d3 =

(6.2)

Pero observemos que la ecuacin (6.2) define el sistema


(

21  2  3 = 1>
1 + 22  23 = 1>

que es compatible indeterminado. Una de las infinitas soluciones es 1 = 15 > 2 =


0> 3 = 35 = Por el hecho de existir una solucin del sistema (6.2) con todas las
coordenadas no negativas, el problema (S1 ) es resoluble.
Se puede resolver (S1 ) grficamente (vase la figura 6.5) y se comprueba que
el ptimo del problema es {
= ( 45 > 85 )0 =

Figura 6.5: Problema resoluble con I no acotado.

180

Optimizacin matemtica aplicada


Se puede utilizar el teorema 6.1 para probar que {
es ptimo del problema

(S1 ) : Puesto que d01 {


= 0> d02 {
=

12
5 >

d03 {
= 4> las ecuaciones de complemen-

tariedad quedan
 e1 ) = 1 (0  0) = 0;
1 (d01 {
12
2 (d02 {
 e2 ) = 2 (  10) = 0;
5
0
3 (d3 {
 e3 ) = 3 (4 + 4) = 0=
Por tanto, 2 = 0 y 1 > 3 quedan libres por el momento. Resolviendo el sistema
!
!
!

1
2
1
>
+ 3
=
1
1
1
2
se obtiene 1 = 15 > 3 = 35 > y entonces f = 15 d1 + 0d2 + 35 d3 = Por tanto, {
es
punto de KKT como queramos probar.
2. Sean f = (3> 1)0 , I el mismo conjunto factible del apartado 1 de este
mismo ejemplo, y (S2 ) el problema
(S2 ) Min f0 {
v=d

{ 5 I=

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)

La ecuacin (6.3) define el sistema


(

21  2  3 = 3>
1 + 22  23 = 1>

que es compatible indeterminado (con un grado de libertad). Por tanto, una vez
resuelto el sistema, sus soluciones se pueden escribir en funcin de un parmetro
 de la forma

3
1

E
F
E
E 2 F = 1 E
D 3C
C
3

4
11

F
10 F
D >  5 R>


Captulo 6. Aplicaciones de la Programacin Lineal

181

Figura 6.6: Problema no resoluble con I no acotado.

donde se observa que la primera coordenada es siempre negativa. Luego no


existen parmetros 1 > 2 y 3 que cumplan la ecuacin (6.3) y sean a la vez no
negativos, por lo que (S2 ) no es resoluble.
Como ilustracin observemos que la funcin objetivo de (S2 ) decrece en la
direccin del eje { (vase la figura 6.6). En primer lugar, se comprueba inmediatamente que (> 0) es factible para cualquier   4= Adems, para cualesquiera


>   4> con  A > se tiene f0 0 = 3 ? 3 = f0 0 =

6.1.3.

Un problema de transporte

Se supone que cierto producto homogneo est almacenado en distintas localizaciones, con diferentes cantidades en cada una. Se supone que existen p localizaciones y se designa por l ( 0) la cantidad disponible en cada localizacin
l. Las cantidades de producto deben ser transportadas a diferentes destinos.
Suponemos que existen q destinos y m ( 0) designa la cantidad requerida en
el destino m. Emplearemos la siguiente notacin:
{lm : cantidad que es transportada del origen l al destino m;
flm : coste por cada unidad transportada del origen l al destino m; supondremos
flm  0 para todo l = 1> = = = > p> m = 1> = = = > q=
Por ltimo, se supone que la cantidad total almacenada es mayor o igual a la
Pq
P
cantidad total requerida: p
l=1 l 
m=1 m (de lo contratrio el problema sera

182

Optimizacin matemtica aplicada

no resoluble directamente). El problema del transporte consiste en encontrar las


organizaciones ({lm )m=1>===>q
l=1>===>p , que satisfacen las demandas de cada localizacin, al
tiempo que se minimiza el coste del transporte.
Dada la organizacin ({lm )m=1>===>q
l=1>===>p > el coste que suponen los transportes a
realizar es

flm {lm =

l=1>===>p
m=1>===>q

La satisfaccin de la demanda se traduce en la restriccin

Pp

l=1 {lm

= m

(es decir, la suma de todas las cantidades que llegan al destino m debe ser m ).
Adems, hay que tener en cuenta que cada origen l no puede disponer de ms
cantidad de producto que la que tiene almacenada, lo que se traduce en la
P
restriccin: qm=1 {lm  l (es decir, la suma de todas las cantidades de producto

que salen del origen l no puede superar l ). Finalmente, se tiene en cuenta


tambin la no negatividad de las variables para que el problema tenga sentido.
Por tanto, el problema de minimizacin se puede formular como
(S ) Min

v=d

flm {lm

l=1>===>p
m=1>===>q
q
X

{lm  l > l = 1> = = = > p>

m=1
p
X

{lm = m > m = 1> = = = > q>

l=1

{lm  0> l = 1> = = = > p> m = 1> = = = > q=


Aplicando el teorema 6.2 se puede comprobar que el problema del transporte
siempre es resoluble: las p + q restricciones,
{lm  0> l = 1> = = = > p> m = 1> = = = > q>
garantizan de forma evidente que se cumpla la condicin (iii) del teorema 6.2
(recurdese que los flm son no negativos). Solo falta probar que el conjunto
factible es no vaco. Pero para probar esto basta tomar
l m
=
{
lm := Pp
l=1 l

Captulo 6. Aplicaciones de la Programacin Lineal

183

De este modo,
q
X
m

q
X
m=1
{
lm = l p
 l ;
X
m=1
l
l=1

p
X

p
X
l

{
lm = m l=1
= m =
p
X
l=1
l
l=1

Lo que quiere decir que (


{lm )m=1>===>q
l=1>===>p pertenece al conjunto factible del problema del transporte.

6.2.

Regresin lineal: Modelos MINMAD y MINMAXAD

6.2.1.

Planteamiento del modelo

La finalidad de esta prctica es determinar la ecuacin del plano (de regresin)


\ = 0 + 1 [1 + === + q [q >
que mejor se ajusta (en el sentido que precisamos ms adelante) a la nube de
puntos
{(|m > {1m > {2m > ===> {qm ) > m = 1> ===> n} =
Para ello, consideramos el vector de parmetros  = (0 > 1 > = = = > q ) 5 Rq+1 y
definimos para cada  5 Rq+1 el correspondiente vector de residuos
%() := (%m ())m=1>===>n >
con
%m () := |m  (0 + 1 {1m + = = = + q {qm )> m = 1> ===> n=
A efectos interpretativos, en ocasiones nos referiremos a (|m )m=1>===>n como el
vector de observaciones experimentales de la variable \> variable dependiente en

184

Optimizacin matemtica aplicada

la ecuacin del plano de regresin> y a ({lm )m=1>===>n como el vector de observaciones experimentales de la variable independiente [l > con l = 1> ===> q= De este
modo, para cada m = 1> ===> n> puede interpretarse 0 + 1 {1m + = = = + q {qm como
el valor estimado de \ (el determinado mediante el plano de regresin) a partir
de los valores {1m > = = = > {qm de las variables [1 > ===> [q (vase una ilustracin del
caso q = 1 en la figura 6.7).

Figura 6.7: Recta de regresin | = 0 + 1 {=

Con la notacin anterior, el problema de ajuste del plano a la nube de puntos considerada, en ltima instancia, conduce a determinar los valores de los
escalares 0 > 1 > = = = > q que, en trminos informales, hacen mnimo el vector
de residuos %() (de diferencias entre los valores observados de \ y los estimados por el plano)= Dependiendo de la norma elegida para medir el tamao
del vector de residuos se obtendr un modelo u otro. As, cuando se utiliza la
norma eucldea, el modelo resultante es conocido como modelo de regresin de
mnimos cuadrados, y se plantea como sigue

(S )

P lq k%()k2 =

MRq+1

o equivalentemente (por ser la funcin w 7$

n
P

m=1

!1
2

%m ()2

>

s
w una funcin estrictamente cre-

ciente en R+ )

(Spf )

P lq

n
P

MRq+1 m=1

%m ()2 =

(6.4)

Captulo 6. Aplicaciones de la Programacin Lineal

185

Por razones de antigedad histrica y por las buenas propiedades estadsticas


y computacionales que presenta, el de los mnimos cuadrados es un mtodo
destacado en el estudio de la regresin.
Con la finalidad de dar una interpretacin estadstica a la solucin ptima
del modelo de mnimos cuadrados (6.4), introducimos el siguiente resultado.
Concretamente, se especifican ciertas hiptesis bajo las cuales la solucin ptima
del problema (6.4) proporciona la estimacin de mxima verosimilitud para
los parmetros correspondientes. En lo que sigue Q (> ) denota a la variable
aleatoria normal de media  y desviacin tpica =
Proposicin 6.1 Consideremos los siguientes elementos:
a) Sean {lm 5 R con l = 1> ===> q> m = 1> ===> n y  A 0 conocidos.
b) Para cada m = 1> ===> n> sea \m () la variable aleatoria1
\m ()  Q (0 + 1 {1m + = = = + q {qm > ) >
que depende del parmetro desconocido  = (0 > 1 > = = = > q ) 5 Rq+1 =
c) Supongamos adems que las variables \m () > m = 1> ===> n> son independientes.
d) Consideremos unas realizaciones concretas de las variables \m () > m =
1> ===> n> denotadas por |m > m = 1> ===> n> y sean
%m () := |m  (0 + 1 {1m + = = = + q {qm )> para m = 1> ===> n=
Entonces la solucin ptima del problema de mnimos cuadrados (6.4) proporciona la estimacin de mxima verosimilitud para el parmetro =
Demostracin. Ntese que la verosimilitud de la muestra (|m )m=1>===>n para el
parmetro  5 Rq+1 puede escribirse como
O(|1 > = = = > |n ; ) =

n
Y

I 1 h3
2

m=1
1

(|m 3(0 +1 {1m +===+q {qm ))2


2 2

3
1
I
nh
( 2)

Sn

m=1

(%m ())2
2 2

Ntese 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 desviacin tpica =

186

Optimizacin matemtica aplicada

as, el planteamiento del problema de mxima verosimilitud puede escribirse


como sigue
(Shpy )

Max

MRq+1

1
s
2

h3

Sn

m=1

(%m ())2
2 2

Puesto que las funciones w 7$ dw (con d A 0) y w 7$ hw son estrictamente

crecientes en R> el problema (Shpy ) es equivalente (en el sentido de que tiene


los mismos ptimos locales y globales) a
0
)
(Shpy

Max

MRq+1

n
X
 (%m ())2 >
m=1

que, a su vez, resulta ser equivalente a


(Spf ) Min

n
P

MR m=1

%m ()2 >

con lo que concluye la demostracin.


El objetivo principal de esta aplicacin es proponer dos mtodos alternativos
al de los mnimos cuadrados, que se resuelven con la ayuda de la PL.
1.- El primer mtodo es conocido como modelo MINMAD (Minimize the
Mean of Absolute Desviation): consiste en la resolucin del problema

(S )

P lq

MRq+1

n
P

m=1

|%m ()|

>

o, equivalentemente, el problema,
(S1 )

P lq k%()k1 :=

MRq+1

n
P

m=1

|%m ()| >

(6.5)

es decir, que se ha usado la norma k=k1 para estimar el error.

El siguiente resultado proporciona la contrapartida de la proposicin 6.1

en relacin con el modelo MINMAD. En lo que sigue L (> e) representa a la


distribucin de Laplace de parmetros  5 R (que coincide con su esperanza) y
e A 0> cuya funcin de densidad est dada por
i ({) =

1 3 |{3|
h e > { 5 R=
2e

Captulo 6. Aplicaciones de la Programacin Lineal

187

Proposicin 6.2 Consideremos los siguientes elementos:


a) Sean {lm 5 R con l = 1> ===> q> m = 1> ===> n y e A 0 conocidos.
b) Para cada m = 1> ===> n> sea \m () la variable aleatoria
\m ()  L (0 + 1 {1m + = = = + q {qm > e) >
que depende del parmetro desconocido  = (0 > 1 > = = = > q ) 5 Rq+1 =
c) Supongamos, adems, que las variables \m () > m = 1> ===> n> son independientes.
d) Consideremos una realizacin concreta de la muestra (\m ())m=1>===>n > denotada por (|m )m=1>===>n > y sean
%m () := |m  (0 + 1 {1m + = = = + q {qm )> para m = 1> ===> n=
Entonces la solucin ptima del modelo MINMAD (6.5) proporciona la estimacin de mxima verosimilitud para el parmetro =
Demostracin. Un argumento anlogo al de la proposicin 6.1 conduce al
siguiente planteamiento del problema de estimacin por mxima verosimilitud
n S |% ()|
m
n
1
>
h3 m=1 e
(Shpy ) Max
2e
MRq+1
que resulta ser equivalente al problema (6.5).
Observacin 6.2 El hecho de que la variable \m () siga una distribucin de
Laplace de parmetros 0 + 1 {1m + = = = + q {qm y e> es equivalente a decir que
la variable residual Hm () := \m ()  (0 + 1 {1m + = = = + q {qm ) se distribuye
segn una exponencial doble de parmetro e= Recurdese que la funcin de densidad de una exponencial doble de parmetro e puede escribirse como sigue
i ({) :=

1 3 |{|
h e > { 5 R=
2e

Este detalle se tendr en cuenta en la subseccin 6.2.2, cuando se superpone la


curva de la exponencial doble al histograma de residuos correspondientes.
2.- La segunda alternativa se conoce como modelo MINMAXAD (Minimize
the Maximum of Absolute Desviation): en este modelo se utiliza la norma del
supremo para estimar el error y el problema queda

188

Optimizacin matemtica aplicada

(S2 )

P lq P d{ {|%m ()| > m = 1> = = = > n} =

(6.6)

MRq+1

Estas dos alternativas se pueden transformar en modelos de PL. Procedemos


a explicar las tranformaciones realizadas a cada modelo:
En primer lugar, respecto del modelo MINMAD, veremos que las soluciones
ptimas del problema (6.5), que vena dado por
(S1 )

P lq

n
P

MRq+1 m=1

|%m ()| >

pueden encontrarse fcilmente a travs de las soluciones del nuevo problema de


PL definido por
(S O1 )

P lq

x>yMRn > MRq+1

v=d

n
P

m=1

xm + ym

%m () = xm  ym > m = 1> = = = > n>

(6.7)

xm > ym  0> m = 1> = = = > n=


La siguiente proposicin formaliza la relacin entre las soluciones ptimas
de (S O1 ) y las de (S1 )= Dicha proposicin hace uso frecuente de la siguiente
observacin.
Observacin 6.3 Sea { 5 R, existen dos nicos ,   0 con ,  5 R tales
que { =    y |{| =  + . En efecto, dado { 5 R, los nicos ,  5 R que
verifican las condiciones anteriores son  =

1
2

({ + |{|) y  =

1
2

({  |{|) =

Proposicin 6.3 Se tienen las siguientes condiciones:


(i) Si 
5 Rq+1 es ptimo global de (S1 ), entonces existen x
, y 5 Rn , con x
,
y  0 tales que (
x> y> 
) es ptimo global de (S O1 ).
(ii) Si (
x> y> )
5 Rn Rn Rq+1 es ptimo global de (S O1 ), entonces 
es

ptimo global de (S1 ).

Demostracin. (i) Supongamos que 


es ptimo global de (S1 ). Para cada
m = 1> = = = > n> sean x
m , ym  0 los nicos nmeros no negativos tales que,
) = x
m  ym >
%m (
)| = x
m + ym =
|%m (

Captulo 6. Aplicaciones de la Programacin Lineal

189

Ntese que (
x> y> 
) es factible de (S O1 ). Veamos que, de hecho, (
x> y> 
)
constituye un ptimo global de (S O1 ). Para ello, sea (
x> y> 
) un punto factible
de (S O1 ), esto es,
) = x
m  ym > m = 1> = = = > n y x
m > ym  0> m = 1> = = = > n=
%m (
Queremos probar que
n
X

x
m + ym =

m=1

Pn

m
m=1 x

n
X
m=1

n
X
m=1

+ ym 

|%m (
)| 

n
X
m=1

|
xm  ym | 

Pn

m
m=1 x

+ ym . En efecto:

|%m (
)| =

n
X
m=1

|
xm | + |
ym | =

n
X

x
m + ym =

m=1

es
(ii) Supongamos que (
x> y> 
) es ptimo global de (S O1 ). Veamos que 
Pn
Pn
ptimo global de (S1 ). Queremos probar que m=1 |%m (
)|  m=1 |%m ()|, para

todo  5 Rq+1 .

Sea 
5 Rq+1 arbitrario. Se tiene:
n
X
m=1

|%m (
)| =

n
X
m=1

|
xm  ym | 

n
X

x
m + ym =

(6.8)

m=1

, y 5 Rn tales que %m (
) =
Por otro lado, asociado a 
5 Rq+1 consideramos x
)| = x
m + ym con m = 1> = = = > n. Ntese que (
x> y> 
) es un punto
x
m  ym y |%m (

factible de (S O1 ).
Entonces,
n
X
m=1

|%m (
)| 

n
X

x
m + ym 

m=1

n
X
m=1

x
m + ym =

n
X
m=1

|%m (
)| >

donde la primera desigualdad viene de (6.8) y la segunda se deduce del hecho


x> y> 
) una solucin factible del
de que (
x> y> 
) es solucin ptima de (S O1 ) y (
mismo problema. Queda entonces probada la tesis del apartado (ii).
Por ltimo, en el modelo MINMAXAD, hemos procedido de la siguiente
forma. Partimos del problema (6.6), que recordamos a continuacin
(S2 )

P lq P d{ {|%m ()| > m = 1> = = = > n} =

MRq+1

190

Optimizacin matemtica aplicada


La siguiente proposicin establece que las soluciones ptimas de (S2 ) pueden

obtenerse a partir de las soluciones del siguiente problema, en trminos de las


variables  5 Rq+1 > g 5 R:
(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=


Proposicin 6.4 Se tienen las siguientes condiciones:

(i) Si 
5 Rq+1 es ptimo global de (S2 ), entonces existe g 5 R tal que 
> g

es ptimo global de (S O2 ).

es ptimo
(ii) Si 
> g 5 Rq+1 R es ptimo global de (S O2 ), entonces 

global de (S2 ).

Demostracin. (i) Sea 


5 Rq+1 un ptimo global de (S2 )= Definimos g :=

)| > m = 1> = = = > n} = Obviamente, 


> g es una solucin
de (S O2 )=
max {|%m (
factible

Veamos que 
> g es ptimo global de (S O2 )= Para ello, sea 
> g una solucin
En efecto,
factible de (S O2 ) y veamos que g  g=

)| > m = 1> = = = > n}  max {|%m (


)| > m = 1> = = = > n}  g>
g = max {|%m (
donde la primera desigualdad se tiene por ser 
un ptimo global de (S2 ) y la

segunda se deduce de la factibilidad de 


> g con respecto al problema (S O2 )=

(ii) Sea 
> g un ptimo global de (S O2 ) y consideremos 
5 Rq+1 arbitrario=
Sea

)| > m = 1> = = = > n} =


g := max {|%m (

Entonces, es inmediato que 


> g una solucin factible de (S O2 )> lo que implica
max {|%m (
)| > m = 1> = = = > n} = g  g = max {|%m (
)| > m = 1> = = = > n} >

lo que prueba que 


es ptimo global de (S2 )=

Captulo 6. Aplicaciones de la Programacin Lineal

6.2.2.

191

Resolucin con MATLAB

Seguidamente implementamos las funciones que nos ayudan a resolver los


modelos MINMAD y MINMAXAD para una muestra de n observaciones y q
variables. Se ha aadido un pequeo comentario en cada una de ellas, que aparecer como ayuda simplemente tecleando, en la ventana Frppdqg Z lqgrz, help
seguido del nombre de la funcin. Por ejemplo:
>> help minmad
En la implementacin de estos modelos se ha empleado la notacin:
3

{11
E .
E .
E .
E
[ := E
E {1m
E .
E ..
C
{1n

..
.

{q1
..
.

..
.

{qm
..
.

{qn

4
F
3
F
|1
F
F
E .
F e \ := E ..
F
C
F
F
|n
D

4
F
F=
D

Comenzaremos con la implementacin del modelo MINMAD en MATLAB .


Partimos del problema (6.7) que recordamos a continuacin
(S O1 )

P lq

x>yMRn > MRq+1

v=d

n
P

m=1

xm + ym

%m () = xm  ym > m = 1> = = = > n>


xm > ym  0> m = 1> = = = > n>

donde recordemos, adems, que


%m () := |m  (0 + 1 {1m + = = = + q {qm )> m = 1> = = = > n=
Nuestro objetivo inicial es adaptar el problema (S O1 ) al formato de MATLAB
que tiene la siguiente estructura:
(S ) P lq f0 {
v=d

D{  e>
Dht { = eht>
OE  {  X E>

(6.10)

192

Optimizacin matemtica aplicada

donde { representa la variable de decisin del modelo, f el vector de coeficientes


de la funcin objetivo, D{  e el sistema de desigualdades lineales en formato
matricial, Dht { = eht el sistema de ecuaciones lineales, tambin en fomato
matricial, y finalmente OE  {  X E las acotaciones inferior y superior de la
variable (OE viene del ingls lower bound, y XE de upper bound).
En nuestro caso, consideramos la variable
{ = (x> y> ) 5 Rn Rn Rq+1 ;
as el vector de coeficientes de la funcin objetivo de (S O1 ) coincide con
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
{xm  ym + 0 + 1 {1m + = = = + q {qm = |m > m = 1> ===> n} >
as, la matriz de coeficientes del correspondiente sistema de ecuaciones quedara
Dht =

Ln | Ln | 1n | [

n(2n+q+1)

>

z }| {
donde Ln es la matriz identidad de orden n y 1n = (1> ===> 1)0 = El vector de trminos

independientes est dado por

eht = \>
y los vectores que expresan las cotas son
4
3
0n
F
E
F y X E = (+4) 12n+q+1 =
OE = E
0
n
D
C
(4) 1q+1
Ntese que para indicar que  no est acotada inferiormente, asignamos 4 a
cada una de las coordenadas correspondientes de OE (as (4) 1q+1 representa
q+1
z
}|
{
a (4> ===> 4)0 )= Adems, puesto que ninguna de las variables est acotada

Captulo 6. Aplicaciones de la Programacin Lineal

193

superiormente, cada una de las coordenadas de X E es +4 (lo que se representa


simblicamente por X E = (+4) 12n+q+1 )=
Para crear la nueva funcin minmad se han utilizado las siguientes funciones
predefinidas de MATLAB:
 ones(n,k) crea una matriz de unos con n filas y k columnas.
 eye(k) crea una matriz identidad de oden kk.
 min(x) y max(x) nos devuelve el mmimo y mximo, respectivamente, de
los elementos del vector x. Si fuese una matriz, mostrara el mnimo y el
mximo de cada una de las columnas.
 var(x) nos devuelve la varianza de los elementos del vector x. Si x fuese una
matriz, mostrara la varianza por columnas.
 abs(x) muestra el valor absoluto de x.
 size(X) proporciona el nmero de filas y columnas, en este orden, de X.
La nueva funcin minmad requiere dos argumentos de entrada, que denotaremos por ghs e lqghs, y que contienen los valores observados de la variable
dependiente (\ ) y las independientes ([1 > ==> [q ) del plano de regresin; esto es,
ghs := \ 0 e lqghs := [ 0 >
(se ha optado por introducir los datos por filas para mayor comodidad del
usuario).
A partir de estos datos, la funcin minmad proporciona dos salidas: vro,
que es la solucin ptima del modelo MINMAD, esto es, vro = (0 > 1 > ===> q )0
y h, el vector de residuos para los valores dados de los parmetros.
En ambas funciones se ha aadido la opcin de realizar una estimacin particular de | a partir de unos valores observados de las variables independientes.
La funcin minmad, se presenta a continuacin:
Inicio funcin minmad
%La funcin minmad proporciona una alternativa al mtodo
%de mnimos cuadrados en modelos de regresin lineal. Mien-

194

Optimizacin matemtica aplicada

%tras el mtodo de los mnimos cuadrados minimiza la Norma 2


%del vector de residuos, el minmad minimiza la suma de los
%valores absolutos de los residuos, esto es, de la Norma 1.
%Aqu se resuelve mediante su equivalente, un modelo de PL.
%La sintaxis es [sol,e]=minmad(dep,indep), donde dep es el
%vector (fila) que contiene las observaciones experimentales
%de la variable dependiente del modelo, e indep es la matriz
%que contiene por filas las observaciones experimentales de
%cada una de las variables independientes. Respecto de los
%argumentos de salida, sol es el vector que tiene los valo%res ptimos de los parmetros del modelo y e es el vector
%de residuos correspondiente. Tambin se representa el his%tograma correspondiente a la distribucin de los errores y
%se superpone la grfica de la funcin de densidad (ajustada
%en escala) de la variable aleatoria exponencial doble, con
%el fin de establecer una comparativa a nivel intuitivo,
%entre ambos. Para evitar errores a la hora de introducir
%los datos se aconseja crear un M-file con dep e indep.
function [sol,e]=minmad(dep,indep)
x=indep;
[n,k]=size(x);
y=dep;
%funcin objetivo
c=[ones(2*k,1); zeros(n+1,1)];
x=x;
%restricciones de igualdad
Aeq=[eye(k), -eye(k), ones(k,1),x];
%trminos 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,[]);

Captulo 6. Aplicaciones de la Programacin Lineal


sol=s((2*k+1):(2*k+n+1));
disp(desea realizar alguna estimacin particular de y)
o=input(en caso afirmativo, escriba 1, en otro caso,
pulse otro nmero);
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 estimacin)
o=input(en caso afirmativo, escriba 1, en otro caso,
pulse otro nmero)
end
disp(estos son los parmetros del plano de regresin)
disp(estimados con el mtodo MINMAD)
%grfico 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 funcin minmad

195

196

Optimizacin matemtica aplicada


Ahora implementamos el modelo MINMAXAD en MATLAB de una muestra

de n observaciones y q variables. Partimos del problema (6.9), que recordamos


a continuacin
(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 decisin es { = (> g) 5 Rq+1 R; as el vector de coeficientes de la funcin
objetivo es:

q+1

z }| {
f = (0> ===> 0> 1)0 5 Rq+2 =

La matriz de coeficientes de las desigualdades, D, es:

!
1n | [ | 1n
D=
1n |
[ | 1n

2n (q+2)

El vector de trminos independientes de las desigualdades , e, es:


!

\
e=
=
\
2n 1

La funcin minmaxad es la siguiente:


Inicio funcin minmaxad
%La funcin minmaxad proporciona una alternativa al mtodo
%de mnimos cuadrados en modelos de regresin lineal. Mien%tras el mtodo de los mnimos cuadrados minimiza la Norma 2
%del vector de residuos, el minmaxad minimiza el mximo de
%los valores absolutos de los residuos (Norma supremo).
%Aqu se resuelve mediante su equivalente, un modelo de PL.
%La sintaxis es la siguiente [sol,d]=minmaxad(dep,indep),
%donde dep es el vector (fila) que contiene las observaci%ones de la variable dependiente del modelo, e indep es la
%matriz que contiene por filas las observaciones experimen%tales de cada una de las variables independientes. Respecto

Captulo 6. Aplicaciones de la Programacin Lineal

197

%de los argumentos de salida, sol es el vector que tiene los


%valores ptimos de los parmetros del modelo y d es la nor%ma del vector de residuos correspondiente a dichos parmetros.
%Para evitar errores a la hora de introducir los datos es acon%sejable crear un M-file con dep e indep.

function [sol,d]=minmaxad(dep,indep)
x=indep;
[n,k]=size(x);
y=dep;
%funcin 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)];
%trminos 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 estimacin particular de y)
o=input(en caso afirmativo, escriba 1; en otro caso,
pulse otro nmero)
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 estimacin)
o=input(en caso afirmativo, escriba 1; en otro caso,

198

Optimizacin matemtica aplicada

pulse otro nmero)


end
disp(estos son los parmetros del plano de regresin)
disp(estimados con el mtodo MINMAXAD)
d=s(n+2);
Fin funcin minmaxad

6.2.3.

Ejercicios resueltos

Ejercicio 6.1 La siguiente tabla muestra el tiempo de permanencia en un hospital de 20 enfermos antes de ser dados de alta (T, en das), as como sus
respectivas edades (E) y pesos (P en libras). Se pide:
(a) Ajustar un modelo lineal que explique el tiempo de permanencia en el
hospital en funcin de la edad y el peso del paciente mediante los mtodos
MINMAD y MINMAXAD.
(b) Predecir el tiempo en ser dado de alta de un paciente con (32> 157).

T:

45

40

39

30

35

33

41

10

E:

47

44

39

39

29

48

44

42

28

37

P : 163 171 171 133 167 180 151 169 164 165
T:

E:

39

38

34

36

41

23

38

33

35

27

P : 170 143 142 135 165 160 138 151 145 140
Solucin. Con MINMAD.
El primer paso es identificar la variable dependiente y las independientes.
Aqu claramente la variable dependiente es T y las variables independientes son
E y P. Creamos un M-file que llamaremos ejer1.m, donde se almacenan el
vector dep y al matriz indep (vase la figura 6.8).
Ejecutamos ejer1 desde la ventana Command Window (figura 6.9).
La figura 6.10 muestra la ejecucin de la funcin minmad. Recurdese que
se nos preguntar si deseamos hacer alguna estimacin particular.

Captulo 6. Aplicaciones de la Programacin Lineal

Figura 6.8: Matrices de datos en un M-file.

Figura 6.9: Muestra de la carga del M-file.

199

200

Optimizacin matemtica aplicada

Figura 6.10: Solucin con la funcin minmad.

As pues, el plano de regresin quedara (vase de nuevo la figura 6.10):

T = 75.9851 + 1.2910E + 0.2612P,

y la distribucin de los errores se encuentra en la figura 6.11.


Se estima que un paciente con (32> 157) tardar 6.3358 das en ser dado de
alta.
En este caso el ajuste de los errores a una distribucin exponencial doble
no es lo suficientemente claro (en trminos intuitivos) como para garantizar que
la estimacin sea de mxima verosimilitud (vase la proposicin 6.2).

Captulo 6. Aplicaciones de la Programacin Lineal

201










































Figura 6.11: Distribucin de los errores en la solucin del modelo minmad.

Con el modelo MINMAXAD escribimos:


AA [sol,d]=minmaxad(dep,inde)
Y obtenemos el modelo:
T = 0.5476E.
Posiblemente un paciente con (32> 157) tardar 17.5238 das en ser dado de
alta, es decir, entre 17 y 18 das.
Ejercicio 6.2 En este ejercicio vamos a usar una base de datos externa al MATLAB, la base de datos del SPSS, con el propsito de usar gran cantidad de
variables y de datos2 . Concretamente, emplearemos el fichero Coches.sav y tra2

El programa MATLAB permite insertar datos provenientes de diferentes fuentes. Adems

de las bases de datos del SPSS podran utilizarse otras provenientes de EXCEL (como se

202

Optimizacin matemtica aplicada

bajaremos con las variables consumo (litros cada 100 km), motor (cilindrada
en CC), acel (aceleracin de 0 a 100), cv (potencia en CV), peso (total en
kg) y ao (ao de fabricacin). Se desea conocer la relacin que existe entre el
consumo de los coches de EE.UU. y las variables motor, cv, peso, acel y ao.
Para ello utilizaremos los mtodos MINMAD y MINMAXAD.
Solucin. El primer paso es preparar la base de datos para poder utilizarla en
MATLAB. A continuacin, se explica el modo de proceder para importar una
base de datos del SPSS a MATLAB. Abrimos el SPSS y seleccionamos Abrir un
origen de datos existente$Aceptar. Seleccionamos Coches.sav$Abrir.
Preparamos los datos, esto es, seleccionamos las variables de inters. Podemos
ver una breve descripcin en vista de variables (una de las ventanas del SPSS)
con el fin de decidir qu variable ser la dependiente y cuales las independientes.
A continuacin, eliminamos las que no vayan a ser exportadas. En este ejemplo,
la variable dependiente ser el consumo y las variables independientes sern
motor, cv, peso, acel y ao. La variable origen es categrica, indica el pas de
procedencia de los coches, se han elegido los coches de EE.UU. (codificada con el
nmero 1, como puede apreciarse en la ventana vista de datos). Entonces, Datos
$Seleccionar casos$Si cumple la condicin origen=1$Continuar$Aceptar.
(Vanse las Figuras 6.12 y 6.13).
Ahora habr que eliminar la variable origen y los blancos (en el sentido de
celda vaca). Para eliminar un blanco desde vista de datos nos ponemos sobre
fila y suprimimos, de igual forma se eliminan las variables que no vayan a ser
usadas en el anlisis. Para confirmar que no nos hemos olvidado ninguno, se
puede comprobar mediante Analizar$Frecuencias, aadimos todas las variables
y, en el visor de resultados se muestra si hay algn valor perdido (vase la figura
6.14).
Una vez terminado este proceso guardamos la base de datos en extensin
Excel 2.1(*.xls). Ahora ya estamos en condiciones de trabajar la base de datos
desde MATLAB. Abrimos MATLAB, File$Open, abrimos directamente el documento excel que acabamos de crear. MATLAB nos muestra Import Wizmostrar ms adelante en el prximo captulo, en particuar en la aplicacin de la cartera de
valores).

Captulo 6. Aplicaciones de la Programacin Lineal

Figura 6.12: Seleccin de casos de inters en SPSS.

Figura 6.13: Condicin de seleccin.

203

204

Optimizacin matemtica aplicada

Estadsticos

9iOLGRV
3HUGLGRV

&RQVXPR
ONP



&LOLQGUDGD
HQ&&



$FHOHUDFLyQ
DNPK
3RWHQFLD &9 VHJXQGRV





3HVRWRWDO
NJ



$xRGHO
PRGHOR



Figura 6.14: Nmero de valores perdidos de las variables de la base de datos


Coches.sav.

ard, seleccionamos Create vector from each column using column names, Finish
(vase la figura 6.15). Podemos renombrar la variables directamente pinchando

Figura 6.15: Muestra de variables importadas.

en el Z runvsdfh sobre la variable que deseemos, aqu hemos renombrado ao


por any, ya que en MATLAB no existe la .
Con MINMAD, se ha obtenido el siguiente plano de regresin y la distribucin de los errores (vase la figura 6.16 ) son:
consumo = 21.6682 + 0.0001motor + 0.0180cv + 0.0078peso+
+ 0.1382acel  0.3005any.

Captulo 6. Aplicaciones de la Programacin Lineal

205

En este caso particular, se aprecia intuitivamente que el ajuste a una exponencial doble es aceptable, por lo que la estimacin del modelo MINMAD
posiblemente tenga buenas propiedades estadsticas (proporcione el estimador
de mxima verosimilitud para los parmetros correspondientes).
Con MINMAXAD, se ha obtenido el siguiente plano de regresin:
consumo = 0.0377cv + 0.0078peso.




























Figura 6.16: Distribucin de los errores de los coches.

6.2.4.

Ejercicios propuestos

Ejercicio 6.3 El departamento de planificacin de una cadena de supermercados ha observado que las ventas logradas dependen sobre todo de la antigedad,
del tamao de la poblacin y de la renta disponible per cpita. Se duda acerca
del lugar idneo donde abrir uno nuevo, existiendo tres emplazamientos posibles
A, B y C. En los casos B y C deberan construirse de nueva planta, mientras que

206

Optimizacin matemtica aplicada

en A se comprara un hipermercado que viene operando desde hace 7 aos. Se


poseen datos acerca de 8 hipermercados de la cadena que viene operando en localidades semejantes las variables son P:=poblacin en miles, R:=renta familiar
per cpita en unidades monetarias (u.m.), A:=antigedad (aos) y V:=ventas
(u.m.). Se muestran en la siguiente tabla:
P

98

520

10

4050

125

680

5200

110

650

5250

80

560

12

4080

150

490

4130

134

620

5700

118

580

5220

106

610

4100

Los datos relativos a la poblacin y a la renta en cuestin son:


Localidad

140

517

116

625

135

550

Se pide: ajustar los datos mediante los mtodos MINMAD y MINMAXAD,


utilizando para ello sendos modelos de PL, y predecir donde se abrir el prximo
supermercado.
Solucin. Con MINMAD, se obtiene el plano de regresin:
V = 8137.2 + 45P + 10.3R + 237.7A.
Predicciones de ventas: 5147 u.m. en A (con P=140, R=517, A=7), 3515.5
u.m. en B (con P=116, R=625, A=0) y 3597.7 u.m. en C (con P=135, R=550,
A=0), luego el departamento de planificacin escoger el emplazamiento A ya
que se espera mayor volumen de ventas.
Con MINMAXAD, se obtiene el plano de regresin:

Captulo 6. Aplicaciones de la Programacin Lineal

207

V = 17.1065P + 3.8539R + 86.7405A.


Predicciones de ventas: 4994.6 u.m. en A (con P=140, R=517, A=7), 4393
u.m. en B (con P=116, R=625, A=0) y 4429 u.m. en C (con P=135, R=550,
A=0), luego el departamento de planificacin escoger el emplazamiento A ya
que se espera mayor volumen de ventas.
En ambos mtodos se elije el emplazamiento A.

Ejercicio 6.4 Se pide, a partir de la base de datos empleados.sav del SPPS, y


empleando el modelo MINMAD, la relacin que existe entre la variable salario
actual (salario, medido en dolares) y salario inicial (salini, medido en dolares),
experencia previa en meses (expprev) y meses de contrato (tiempemp), distinguiendo los siguientes casos:
a) En la muestra de hombres.
b) En la muestra de mujeres.
c) En la muestra total sin distinguir por sexo.
Solucin. Usando el mtodo MINMAD se obtiene:
a) Para la muestra de hombres, el plano de regresin:
salario = 8870.6 + 1.9salini  17.8expprev + 154.0tiempemp.
b) Para la muestra de mujeres, el plano de regresin:
salario = 4520 + 1.7salini  18.1expprev + 115.1tiempemp.
c) Sin distinguir por sexos, el plano de regresin:
salario = 10976 + 2salini  15expprev + 166tiempemp.

208

Optimizacin matemtica aplicada

6.3.

Aplicacin al clculo de la eficiencia.

Planteamiento del modelo.


Consideramos el espacio (Rq > ), donde el orden  est definido de la forma:
;{;| ({  | +, {v  |v ;v = 1> ===> q)=
Es sabido que esta relacin 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 aplicacin es construir una medida unidimensional, con
ayuda de la programacin 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 mnimo o un conjunto de mnimos en } 1 > ===> } n en base a


dicho orden. La construccin que aqu se propone es una versin simplificada

del modelo BCC de Banker, Charnes y Cooper, en el que la medida construida


se conoce como eficiencia, que nosotros designaremos por ef().

Figura 6.17: Conjunto de organizaciones a ordenar.

Hay que tener en cuenta que no se busca un orden cualquiera y sin significado (lo que por otra parte sera muy fcil), sino un orden que permita realizar
interpretaciones coherentes del modelo y aplicarlo a situaciones reales. En con

creto sera conveniente que el nuevo orden que establezcamos en } 1 > ===> } n > y

Captulo 6. Aplicaciones de la Programacin Lineal

209

que designaremos con los smbolos -, !, , fuera compatible con el de Rq :


ms precisamente, si } l  } m entonces debera ser } l - } m .
La construccin de la eficiencia, que iniciamos a continuacin, est intuitivamente 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 organizacin (por ejemplo coste, mano de
obra ...) que interesa minimizar. As identificamos } l con la l-sima organizacin
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.

Definicin 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=
Puesto que I es convexo, del apartado (i) se deduce que I contiene a

cualquier combinacin convexa de } 1 > ===> } n , es decir, conv } 1 > ===> } n  I=

La interpretacin de esto es que todas las organizaciones intermedias y

organizaciones peor valoradas que otras ya existentes son posibles en el modelo que planteamos. Por ejemplo, en un mercado de oferta y demanda, esto
supondra la posibilidad de realizar transferencia tecnolgica entre los distintos
factores que forman los planes de produccin de una o varias empresas de un
mismo sector, y la posibilidad de realizar siempre ofertas menos competitivas
por parte de dichas empresas.
La siguiente proposicin presenta una descripcin explcita del conjunto I
y recoge algunas de sus propiedades (vase una ilustracin en la figura 6.18).
Proposicin 6.5 En el modelo propuesto se cumple

(i) I = } 5 Rq | < } 5 conv } 1 > = = = > } n tal que }  }

= conv } 1 > = = = > } n + Rq+ ;


(ii) I  Rq++ ;

210

Optimizacin matemtica aplicada

Figura 6.18: Conjunto de organizaciones 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 )=

Demostracin. (i) Definimos


n
n
o
o
Ib := } 5 Rq | < } 5 conv } 1 > = = = > } n tal que }  } =

(6.11)

Comprobemos que I = Ib.

Veamos que se cumple el contenido Ib  I . Si } 5 Ib entonces existe un

} 5 conv } 1 > = = = > } n tal que }  }, y puesto que conv } 1 > = = = > } n  I , se
tiene que } 5 I= Como }  }, por (ii) de la definicin de I se tiene que } 5 I .
A continuacin, demostramos el contenido I  Ib= Basta probar que Ib es

convexo y que cumple (i) y (ii) de la definicin de I (cambiando I por Ib),


pues en dicho caso, por ser I el menor convexo que cumple (i) y (ii), se tendr
I  Ib. Es inmediato comprobar que Ib cumple (i) y (ii). Por otro lado, dados
}> } 5 Ib y  5 [0> 1]> se tiene:
}  1 } 1 + === + n } n >

}  1 } 1 + === + n } n >
para ciertos 1 > = = = > n > 1 > = = = > n  0> con

Pn

l=1 l

Pn

l=1 l

= 1=

Captulo 6. Aplicaciones de la Programacin Lineal

211

Luego
} + (1  )
}  (1 + (1  )1 )} 1 + === + (n + (1  )n )} n 5
o
n
5 conv } 1 > = = = > } n >
Pn

+ (1  )l ) =  + (1  ) = 1. Por tanto Ib es convexo.


En consecuencia, hemos probado que I = Ib= Finalmente, se comprueba de
forma directa que Ib (definido en (6.11)) puede expresarse como
ya que

l=1 (l

o
n
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

% A 0. Vamos a comprobar que E2 (


} > 2% )  I :

Si tomamos } 5 E2 (
} > 2% ) entonces, para todo v 5 {1> ===> q} se tiene:
%
%
%
}v }v A  +% A 0 =, }v A }v >
}v A  =, }v }v = }v 
}v +
}v }v A  +
}v 
2
2
2
por lo que } 5 I .
Volviendo de nuevo a las propiedades convenientes para nuestro modelo,
el orden construido no debera despreciar a la ligera puntos vlidos para ser
mnimo: por ejemplo, dados los puntos } 1 = (3> 3)0 > } 2 = (1> 2)0 > } 3 = (2> 1)0 ,
no parece conveniente la ordenacin
}2 ! }3 ! }1>
pues el orden usual de Rq (con qA1) no proporciona ningn motivo para considerar } 2 inferior a } 3 . Parece ms razonable la ordenacin
}2  }3 ! }1=
Para formalizar esta idea, introducimos la nocin de punto no dominado.

212

Optimizacin matemtica aplicada

Definicin 6.2 (punto no dominado) Se dir en nuestro modelo que } 5 I


es un punto no dominado si no existe } 5 I que cumpla }  } a la vez que
}v ? }v para algn v 5 {1> = = = > q}.
Formalmente, el prrafo previo a la definicin se traduce en que todo punto
no dominado debera encontrarse en el conjunto de mnimos de la nueva ordenacin, propiedad que verificar el modelo, como muestra la proposicin 6.7
(iii). Otra propiedad deseable sera el recproco de la anterior, a saber, que todo
mnimo de la nueva ordenacin fuera punto no dominado. Pero veremos que el
modelo tiene sus limitaciones y el conjunto de mnimos podr contener puntos
dominados.
El modelo BCC simplificado establece un orden de preferencias midiendo
cuanto se aleja cada alternativa de bd(I ). Pero en lugar de utilizar la distancia
eucldea se usar una distancia radial de la forma que vamos a ver a continuacin.
Proposicin 6.6 Sean

1
} > = = = > } n  Rq++ y I = conv } 1 > = = = > } n + Rq+ =

Para cualquier } 5 I el conjunto

]0q > }] _ bd(I ) := {} | 0 ?   1} _ bd(I )


se reduce a un punto } 6= 0q =
Demostracin. Definimos D := { 5 ]0> 1] | } 5 I }. D contiene al 1 y es aco-

tado inferiormente por definicin, luego sabemos que existe el nfimo, 


e :=inf D>

por el axioma del supremo de R; claramente se cumplir 


e  1 por la definicin

de nfimo. Adems 
e 6= 0> pues de lo contrario podramos encontrar una sucesin

u $ 0> u 5 D> para todo u 5 N. Por tanto, se tendra u } 5 I para todo u>
u } $ 0q y, como por el apartado (iii) de la proposicin 6.5, I es cerrado, se

tendra que 0q 5 I , lo que contradice el apartado (ii) de la proposicin 6.5. Por


tanto, podemos asegurar que 0 ? 
e  1.

Veamos que } := 
e} es el nico elemento de ]0q > }] _ bd(I )= En primer lugar,

comprobaremos que } 5 bd(I ), encontrando dos sucesiones que convergen al


punto }> una contenida en I y la otra en su complementario. La definicin de


e nos permite escribir 
e = limu u > con u 5 D> para todo u, lo que implica
} = 
e} = limu u }=

Captulo 6. Aplicaciones de la Programacin Lineal

213

Puesto que u } 5 I para todo u y I es cerrado, se tiene que 


e} 5 I . Adems,

teniendo en cuenta que 0 ? 


e  1, esto quiere decir que 
e 5 D, es decir,

e =min(D).

Por otro lado, podemos escribir

1
}>
e
} = limu 
u

donde, de nuevo por la definicin de 


e y teniendo en cuenta que 
e A 0> se tiene

0?
e  1u 5
@ D para u suficientemente grande, pongamos para u  u0 ; luego,

1
@ I para u  u0 = As pues, podemos concluir que } 5 bd(I )= Adems,

e u } 5

b} 5 ]0q > }] _ bd(I )


} es el nico punto de ]0q > }] _ bd(I )= En efecto, dado otro 

se tiene que 
b} 5 I> pues I es cerrado y obviamente 
b 5 ]0> 1], y por tanto


b 5 D= As pues, 
b
e. Pero si 
bA
e entonces 
b} A } (recordemos que todas

las componentes de los } son positivas), con } 5 I , y por el apartado (iv) de la

proposicin 6.5 se tiene que 


b} 5 int(I )> lo que contradice la hiptesis inicial
de que 
b} 5 bd(I ) (la frontera, el interior y el exterior de un conjunto forman

una particin del espacio). Para evitar la contradiccin debe ser 


b=
e=

Figura 6.19: Ilustracin de la proposicin 6.5.

La proposicin anterior permite introducir la siguiente definicin.

Definicin 6.3 Dados } 1 > = = = > } n  Rq++ y I = conv } 1 > = = = > } n + Rq+ > para

214

Optimizacin matemtica aplicada

cada } 5 I definimos la eficiencia de }> denotada por ef (}) > como


ef (}) =

k
}k
>
k}k

siendo } 6= 0q el nico elemento de ]0q > }] _ bd(I )=


Obsevemos que por definicin la eficiencia ser un valor comprendido en
el intervalo ]0> 1]. Adems, pueden existir perfectamente varios puntos con la
misma eficiencia.

Utilizando la eficiencia, se define en } 1 > = = = > } n un orden, que designaremos

por - de la siguiente forma:

} l - } m +, ef(} l )  ef(} m )>


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 demostracin de la proposicin 6.6 nos proporciona la
siguiente frmula
k
}k
= inf { 5 ]0> 1] | } 5 I } =
k}k
= min { 5 ]0> 1] | } 5 I } =

ef (}) =

(6.12)

Por tanto, para cada l 5 {1> ===> n} se tiene:


l }l
ef } = l = min  5 ]0> 1] | } l 5 I =
k} k

De hecho, ntese que la condicin  5 ]0> 1] es redundante en el sentido de que

min  5 ]0> 1] | } l 5 I = min  5 R | } l 5 I >

puesto que 1 5  5 R | } l 5 I y, por otro lado, se comprueba fcilmente


que si } l 5 I , entonces  A 0 (recurdese que I  Rq++ )=

En otros trminos, fijado l 5 {1> ===> n}> la eficiencia de } l coincide con el

valor ptimo del siguiente problema de PL:


(Sl ) P lq h
v=d

h} l 5 I=

Captulo 6. Aplicaciones de la Programacin Lineal

215

Teniendo en cuenta que I = conv } 1 > = = = > } n + Rq+ , podemos expresar

el problema de minimizacin anterior como el siguiente problema de variables


1 > ===> n > h :
(Sl ) P lq h
h} l 

v=d

n
P

u=1

n
P

u=1

u } u >

u = 1>

u  0> u = 1> 2> = = = > n=

Clculo de la eficiencia mediante un modelo de PL

Con lo que hemos visto, dada una coleccin de puntos } 1 > = = = > } n  Rq++ >

el clculo de la eficiencia del punto } l , ef } l , se reduce a la resolucin del
siguiente problema de PL, que viene de expresar coordenada a coordenada la
desigualdad vectorial del problema anterior:
(Sl ) P lq h
v=d

h}vl 
n
P

u=1

n
P

u=1

u }vu > v = 1> = = = > q>


(6.13)

u = 1>

u  0> u = 1> 2> = = = > n=


Observemos que por el hecho de haber planteado el modelo desde un princi

pio con el objetivo de establecer un orden total en } 1 > = = = > } n para seleccionar

unos mnimos, y por la forma en que se ha definido el concepto de punto domina-

do, a la hora de aplicar el modelo ser necesario que la valoracin en la situacin


real de las organizaciones decrezca con el aumento de la magnitud de sus componentes. En los ejemplos prcticos se propondrn varios mtodos razonables para
transformar, cuando sea necesario, los datos reales conforme a la apreciacin
anterior.
Finalmente, vamos a probar que la eficiencia cumple aquellas propiedades
deseables, indicadas a lo largo de la construccin del modelo.

Proposicin 6.7 Sean } 1 > = = = > } n  Rq++ , I el conjunto de la Definicin 6.1

y ef() la eficiencia definida en I . Entonces se cumple:

216

Optimizacin matemtica aplicada


(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
recproco no se cumple en general.
Demostracin. (i) Sean l> m 5 {1> = = = > n} tales que } l  } m = Conservando la no-

tacin anterior, sea }l el nico elemento de ]0q > } l [_bd(I )> y definamos anloga

mente }m = Definimos D :=  5 [0> 1] | } m  }l . Ntese que D es cerrado por


ser la antiimagen del cerrado Rq3 := {{ 5 Rq | {v  0> v = 1> ===> q} mediante la
funcin continua j : [0> 1] $ Rq dada por j () = }l  } m =

Adems, es evidente que 1 5 D> pues } m  } l  }l = Por tanto, podemos


afirmar que D es no vaco y compacto, por tratarse de un cerrado contenido en
el compacto [0> 1]. Adems 0 5
@ D por ser }l 5 Rq++ = En consecuencia, podemos
afirmar que existe el valor

:= min  5 [0> 1] | } m  }l A 0=


m = Puesto que }
m  }l 5 I> se tiene que }m 5 I .
Ahora definimos }m := }
1
1
Definimos }m :=
}m = Vamos a comprobar que
=min{  0 | 
}m 
l
ef(} )
ef(} l )
} l } (con lo que de la misma forma que acabamos de ver, tambin se tendr

}m 5 I ). Realizaremos la prueba en dos pasos:


1

1
m =
m 
l = } l > por la definicin de 
y de ef } l =
}

}
}

(a)
ef(} l )
ef(} l )
ef(} l )
(b) Supongamos, con el objetivo de llegar a una contradiccin, que existe 0 ?
1
l )
l )}

?
y ef(}

m=
} m  } l = En dicho caso se tiene ef(}

tal que 
?
ef(} l )
l )

ef(}
} m  ef(} l )} l = }l > lo que constituye una contradiccin con la definicin
Hemos probado que 1 =min{  0 | 
de =
} m  } l }= Pero entonces, como
ef(} l )
1 m
1
} = } m  } l > debe ser
 1 y por tanto


ef(} l )

 ef(} l )=

m , }m = ef(} m )} m y } m 5 Rq , si fuera
Ahora observemos que, como }m = }
++
? ef(} m ) se tendra }m ? }m y por el apartado (iv) de la proposicin 6.5

sera }m 5 int(I )> lo cual es una contradiccin, pues por definicin sabemos

Captulo 6. Aplicaciones de la Programacin Lineal

217

Figura 6.20: La eficiencia preserva el orden parcial de Rq =

 ef(} m )> y teniendo en cuenta que era


que }m 5 bd(I )= Por tanto, debe ser 
 ef(} l )> se tiene ef(} m )  ef(} l )= Esto concluye la demostracin del primer

apartado.
(ii) Si ef(}) = 1 entonces, de acuerdo con nuestra notacin, } = } 5 bd(I )=
Recprocamente, dado } 5 bd(I ) se tiene que } 5]0q > }]_ bd(I ). Esto quiere
decir que } es el nico punto de dicha interseccin y por definicin de eficiencia
se tiene:
ef(}) =

k}k
= 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 ecuacin (6.12), y por otro que } ? }. Esto quiere decir que } es
dominado, lo que contradice la hiptesis inicial. Por tanto, ef(}) = 1.
Para comprobar que el recproco 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.

6.3.1.

Resolucin con MATLAB

En esta aplicacin se ha implementado la funcin en MATLAB que nos ayuda a resolver el modelo de la eficiencia, para una muestra de n observaciones

218

Optimizacin matemtica aplicada

} 1 > = = = > } n en R++ . Concretamente disearemos una funcin en MATLAB que

tenga como entrada la matriz ] = } 1 > = = = > } n > esto es, la matriz que contiene

a los vectores } 1 > = = = > } n por columnas. Como salida proporcionar un vector,
denotado por ef, cuyas coordenadas son las respectivas eficiencias de los } l .
Seguidamente, describimos los pasos dados para la determinacin de ef. El clculo de la coordenada l-sima de ef, esto es, la eficiencia de } l , se hace mediante
la resolucin del problema (6.13) que puede adaptarse al formato del MATLAB
(6.10) que recordamos a continuacin:
(S ) P lq f0 {
v=d

D{  e>
Dht { = eht>
OE  {  X E>

a travs 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 funcin objetivo es:
z n}| { 0
f = 0> ===> 0> 1

=
n+1

La matriz de coeficientes de las desigualdades, D, es:

D = ] | } l q(n+1) =

El vector de trminos independientes de la matriz de desigualdades es e = 0q =


La matriz de coeficientes de las igualdades, Dht, es:
n
z }|
{
Dht = 1> = = = > 1 =
n

El vector de trminos independientes de la matriz de igualdades, eht, es:


eht = (1) =
A continuacin, mostramos la funcin eficiencia.

Captulo 6. Aplicaciones de la Programacin Lineal

219

Inicio funcin eficiencia


%Esta funcin trata de disear una ordenacin entre un serie
%de puntos en R^n, (ntese que (R^n ,?=) no es un orden total)
%a travs de una medida unidimensional llamada eficiencia. La
%coleccin de puntos objeto de nuestro estudio se introduce
%en una matriz Z. As, la sintaxis de la presente funcin es
%[ef]=eficiencia(Z) donde Z es la matriz que contiene por
%colunmas la coleccin de puntos a los que se desea calcular
%la eficiencia. Por su parte ef es el vector cuya i-sima
%coordenada coincide con la eficiencia del i-simo punto.

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 funcin eficiencia

6.3.2.

Ejercicios resueltos

Ejercicio 6.5 Entre todos los huertos solares espaoles se ha seleccionado una
muestra aleatoria de 12 de ellos, y nos disponemos a realizar un estudio de

220

Optimizacin matemtica aplicada

eficiencia, para evaluar de calidad de dichas instalaciones, y establecer una ordenacin entre ellos. Los datos se muestran en la siguiente tabla (han sido consultados en la pgina web www.huertasolares.es, en 2009):

kW

coste

benefi

Lugar

kW

coste

benefi

Lugar

100

796.0

81.049

Badajoz

31.5

233.1

23.661

Toledo

100

748.5

64.907

Alicante

113.4

895.86

91.504

Sevilla

25

188

18.7

Mlaga

100

745.92

84

41.935

3.455

Ciudad Real

95

534.371

63.679

Madrid

7.5

57.675

5.46

Tudela

100

878.85

87.642

Huelva

10

86.2

8.905

Cuenca

50

394.5

29.34

Rioja

Valladolid

En cada uno de los huertos solares se han analizado 3 caractersticas que se


representan por kW (kW/h producidos al da, en horas de sol), coste (coste
inicial de la instalacin en miles de euros) y benefi (es el beneficio en miles
euros al ao).
Solucin.
En primer lugar, para establecer una ordenacin, 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 benefi. Adems, por cuestiones computacionales, multiplicaremos cada uno de estos
inversos por 100 (de este modo, informalmente hablando, los datos de las diferentes columnas presentan magnitudes similares). Ntese que P d{ i ({)
P lq

1000
i ({) .

+,

As, los datos que manejaremos finalmente se presentan en la si-

guiente tabla:

Captulo 6. Aplicaciones de la Programacin Lineal

221

(1/kW) x 1000

coste

(1/benefi) x 1000

Lugar

10

796.0

12.34

Badajoz

10

748.5

15.41

Alicante

40

188

53.48

Mlaga

200

41.935

289.44

Ciudad Real

125

57.675

183.15

Tudela

100

86.2

112.30

Cuenca

31.25

233.1

42.26

Toledo

8.85

895.86

10.93

Sevilla

10

745.92

11.90

Valladolid

10.53

534.371

15.70

Madrid

10

878.85

11.41

Huelva

20

394.5

34.08

La Rioja

Creamos una matriz Z en MATLAB (vase la figura 6.21).

Figura 6.21: Creamos una matriz Z.

222

Optimizacin matemtica aplicada


Introducimos dicha matriz Z como argumento de entrada en la funcin efi-

ciencia (vase la figura 6.22).

Figura 6.22: Uso de la funcin eficiencia.

Finalmente, se obtienen los siguientes resultados (vase de nuevo la figura


6.22):

Captulo 6. Aplicaciones de la Programacin Lineal

223

Lugar

EFICIENCIA

Lugar

EFICIENCIA

Badajoz

0.9696

Toledo

Alicante

0.9653

Sevilla

Mlaga

Valladolid

Ciudad Real

Madrid

Tudela

Huelva

0.9783

Cuenca

La Rioja

Ejercicio 6.6 La figura 6.23 muestra una coleccin de universidades pblicas


espaolas junto con los datos relativos a ciertos indicadores, extraidos del informe La universidad en cifras 2008 , CRUE, dirigido por Juan Hrnandez Armenteros (que puede consultarse en http://www.crue.org/export/ sites/Crue/
Publicaciones/ Documentos/ UEC/UEC_2008.pdf). A partir de estos datos,
correspondientes al curso acadmico 2006/2007, se desea realizar un estudio
comparativo entre dichas universidades basado en el modelo de eficiencia descrito en la presente seccin y en las nuevas variables que se definen en los prrafos
siguientes, las cuales vienen recogidas en la figura 6.24.
A continuacin, describimos brevemente las variables que aparecen en la
figura 6.23:
PDI:= personal docente e investigador.
PAS:= personal de administracin y servicios.
Beneficio:= beneficio anual en millones de euros.
Precre:= precio medio del crdito.
Alumci:= alumnos matriculados en 1.er y 2.r ciclo.
Tituofre:= n.r de titulaciones ofrecidas.
Posgrad:= n.r alumnos posgrado.
Ntilposg:= n.r de titulaciones posgrado ofrecidas.

224

Optimizacin matemtica aplicada

Figura 6.23: Tabla de los datos iniciales del informe La universidad en cifras.

Captulo 6. Aplicaciones de la Programacin Lineal

225

A partir de las variables anteriores, a continuacin definimos unas nuevas,


y trabajaremos bajo el supuesto de que estamos interesados en los valores que
minimizan cada una de estas nuevas variables. De este modo, encontramos una
formulacin adaptada al modelo de eficiencia que se describe en la presente
seccin (vase, en particular, la subseccin 6.3).
Rposgrad:= Ntilposg/Posgrad.
Titaluci:= Tituofre/Alumci.
Alupdi:= Alumci/PDI.
Pdipas:= PDI/PAS.
Benefimin:= 63Beneficio.
Los valores numricos de estas variables se encuentran en la figura 6.24.
Respecto de la ltima variable Benefimin, comentamos que su definicin viene
motivada por un procedimiento empleado en el contexto de la Programacin
Multiobjetivo denominado mtodo de la programacin por metas. En primer
lugar, el mtodo consiste en elegir un valor mayor (mejor) que todos los existentes (valor utpico en el contexto de la programacin por metas), que en este
caso ha sido 63 millones. Posteriormente, se anotan las distancias entre cada
uno de los valores existentes y dicho valor utpico. En este caso, basta restar a
63 cada uno de dichos valores. De este modo, se ha definido una nueva variable,
la cual estamos interesados en minimizar en vez de maximizar3 .

Recordemos que otra forma de conseguir este propsito es lo descrito en el ejercicio anterior,

que consiste en invertir las cantidades originales.

226

Optimizacin matemtica aplicada

Figura 6.24: Tabla del Ejercicio 6.6 con las nuevas variables creadas, sobre las que
haremos el estudio de la eficiencia.

Captulo 6. Aplicaciones de la Programacin Lineal

227

Solucin. Mediante la funcin eficiencia hemos obtenido los siguientes resultados:

Universidad

Eficiencia

Universidad

Eficiencia

U. Almera

0.9946

U. Rovira i Virgili

U. Cdiz

0.9856

U. Alicante

U. Crdoba

0.9910

U. Jaume I de Castelln

0.9980

U. Granada

U. Miguel Hernndez

0.9720

0.8851
1

U Huelva

0.9456

U. Politcnica de Valencia

U. Jan

0.8364

U. Valencia

U. Mlaga
U. Pablo de Olavide

1
0.9608

U. Extremadura

0.9338

U. La Corua

U. Santiago de Compostela

U. Sevilla

U. Oviedo

0.9219

U. Vigo

U. Islas Baleares

0.9473

U. Autnoma Madrid

U. La Laguna

0.9171

U. Carlos III Madrid

0.9391

U. Las Palmas

0.9540

U. Politcnica Madrid

U. Cantabria

0.9427

U. Rey Juan Carlos

0.7728

U. Castilla la Mancha

0.8541

U. Murcia

0.8662

U. Valladolid

0.8879

U. Politcnica Cartagena

0.9974

U. Lleida

0.9849

U. Pblica Navarra

U. Pas Vasco

U. Politcnica Catalua

U. Pompeu Fabra

6.3.3.

Ejercicios

Ejercicio 6.7 Se desea construir una carretera para establecer una comunicacin directa entre dos poblaciones vecinas. El Gobierno de la correspondiente
Comunidad Autnoma ha convocado un concurso pblico de presentacin de
propuestas. Diferentes empresas han presentado sus proyectos, y los datos relativos al Coste final (en millones de euros) y Longitud total (en cientos de
kilmetros) se muestran a continuacin en la siguiente tabla:

228

Optimizacin matemtica aplicada

Empresa

Coste final

Longitud total

A1

A2

0.75

A3

0.5

A4

A5

0.75

A6

A7

0.25

Se desea establecer un orden de preferencia (menor coste y menor longitud


de trazado) entre las diferentes empresas.

Solucin. Realizamos el estudio de la eficiencia y obtenemos:

Empresa

Eficiencia

A1

0.9286

A2

A3

A4

0.5

A5

A6

0.4643

A7

En este caso, cuatro de las siete empresas presentadas tienen eficiencia 1, y


la ordenacin final entre ellas es tarea del decisor correspondiente.

Ejercicio 6.8 Analizar la eficiencia, en un determinado da, de los 20 barcos


pesqueros cuyos datos figuran en la siguiente tabla. Concretamente, los datos
correspondientes a las variables kg y horas que recogen, respectivamente, los
kilos de pesca y las horas empleadas en pesca en ese da considerado.

Captulo 6. Aplicaciones de la Programacin Lineal

229

Barco

kg

horas

Barco

kg

horas

b1

306

b11

399

b2

345

10

b12

321

b3

123

b13

419

b4

245

b14

523

b5

643

b15

603

11

b6

354

b16

123

b7

321

b17

501

10

b8

564

13

b18

576

b9

435

b19

433

b10

490

b20

467

13

Solucin. Con el fin de emplear la funcin de MATLAB eficiencia hemos de


considerar una nueva variable en vez de kg para la cual el orden de preferencia
est dado en el sentido minimizar. A continuacin, se presentan dos modos
distintos de elegir dicha variable.
a) Siguiendo el mismo procedimiento empleado en la definicin de la variable
Benefimin del ejercicio 6.6, hemos definido una nueva variable con la expresin:
8191-kg (en este caso 8191 corresponde a la suma de los 20 datos de la variable
kg). As pues, a partir de la variable 8191-kg y horas se han obtenido los
siguientes resultados:

Barco

Eficiencia

Barco

Eficiencia

Barco

Eficiencia

Barco

Eficiencia

b1

0.9680

b6

0.9736

b11

0.9709

b16

b2

0.9620

b7

0.9620

b12

0.9698

b17

0.9815

b3

0.9400

b8

0.9896

b13

0.9895

b18

b4

0.9691

b9

b14

0.9855

b19

0.9912

b5

b10

0.9896

b15

0.9947

b20

0.9772

b) Un segundo planteamiento consistira en tomar el inverso de kg, como ya


se hizo en el ejercicio 6.5, obtenindose la siguiente tabla:

230

Optimizacin matemtica aplicada

Barco

1/kg

horas

Barco

1/kg

horas

b1

0.00326

b11

0.00250

b2

0.00289

10

b12

0.00311

b3

0.00813

b13

0.00238

b4

0.00408

b14

0.00191

b5

0.00155

b15

0.00165

11

b6

0.00282

b16

0.00813

b7

0.00311

b17

0.00199

10

b8

0.00177

13

b18

0.00173

b9

0.00229

b19

0.0023

b10

0.00204

b20

0.00214

13

A continuacin, se muestran las eficiencias de los diferentes barcos a partir


de las variables 1/kg y horas:

Barco

Eficiencia

Barco

Eficiencia

Barco

Eficiencia

Barco

Eficiencia

b1

0.74695

b6

0.7855

b11

0.79131

b16

b2

0.69799

b7

0.70598

b12

0.74924

b17

0.83661

b3

0.61517

b8

0.87714

b13

0.91526

b18

b4

0.83042

b9

b14

0.8992

b19

0.93176

b5

b10

0.929

b15

0.93779

b20

0.72628

En ambos casos los barcos ms eficientes en ese da en concreto son: b5 , b9 ,


b16 y b18 .

Ejercicio 6.9 Ante una nueva y desconocida afeccin cutnea, un joven investigador en el campo de la dermatologa, experimenta con un total de 350 ratas. El
investigador formula 7 tipos de medicamentos, los cuales curan la afeccin. Como
paso previo a la prueba experimental en humanos el investigador ha dividido las
350 ratas en siete grupos de 50, administrndole 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 centgrados), tiempo

Captulo 6. Aplicaciones de la Programacin Lineal

231

(media del nmero de das que tarda en desaparecer la afeccin) y coste (coste
de produccin de 100 ml del medicamento correspondiente). El investigador desea establecer una ordenacin entre dichos medicamentos.
MEDICAMENTO

coste

tiempo

temperatura

1.13

10

0.500

1.34

14

0.270

1.23

0.310

1.45

11

0.110

1.51

12

0.230

1.54

10

0.010

1.09

0.056

Solucin. Realizamos el estudio de la eficiencia y obtenemos:


MEDICAMENTO

EFICIENCIA

0.9646

0.8134

0.7956

0.7319

Ntese que tres de los medicamentos tienen eficiencia 1, por lo que la ordenacin final entre ellos, de nuevo, es tarea del investigador.

Captulo 7

Aplicaciones de la
Programacin No Lineal
7.1.

Localizacin de una antena WIFI

Ilustracin (vase la subseccin 7.1.1 para la resolucin numrica).


Consideremos una empresa formada por distintos departamentos, alojados en
distintos edificios y distribuidos en un recinto como muestra la figura 7.1.

Figura 7.1: Distribucin de los edificios y localizaciones.

233

234

Optimizacin matemtica aplicada


Se precisa instalar un servicio de conexin a la red inalmbrica, WIFI, para

cada uno de los departamentos, en las localizaciones d1 > = = = > d6 sealadas, y que
toman las siguientes coordenadas (por comodidad se ha colocado el centro de
coordenadas en la esquina inferior izquierda del recinto) en metros:
d1 = (16> 13.5)0 >
d2 = (16> 36.5)0 >
d3 = (44> 26.5)0 >
d4 = (66.5> 44)0 >

(7.1)

d5 = (82> 26)0 >


d6 = (82> 11)0 =
Debido a las caractersticas de la antena WIFI que se va a instalar, se considera que a partir de 40 metros la seal es demasiado dbil para garantizar
una buena conexin. Se desea calcular el mejor lugar del recinto para instalar la
antena, de modo que la calidad de la seal sea lo mejor posible para el conjunto
de localizaciones.
Vamos a plantear el problema en trminos matemticos: puesto que la calidad de la seal decrece con el aumento de la distancia, el objetivo es encontrar
el centro del crculo que hace menor el radio necesario para contener a todas las
localizaciones, es decir, el menor crculo que contiene los puntos d1 > = = = > d6 . El
problema matemtico que describe la situacin planteada es el siguiente:
(S1 )

P lq

({>%)MR2+1

v=d

{  dl  %> l = 1> = = = > 6=

Planteamiento general. Con el objetivo de definir una funcin en MATLAB que no se limite solo a este ejemplo particular, vamos a plantear el modelo
general y estudiar algunas de sus propiedades: dado un conjunto de puntos

A = d1 > d2 > = = = > dn del espacio Rq con la norma eucldea, que por simplicidad

en la notacin representaremos por kk, se desea encontrar la bola de mnimo

radio y centro cualquiera, que contenga a todos los puntos del conjunto A. As
pues, las variables de decisin del modelo son el centro, { 5 Rq > y el radio % A 0

de dicha bola; vase la figura 7.2. Es sabido que este problema tiene solucin
nica cuando se considera la norma eucldea (de hecho, la unicidad se mantiene

Captulo 7. Aplicaciones de la Programacin No Lineal

235

en situaciones de normas ms generales como se prueba en [18]). Este problema


fue planteado originalmente por Sylvester en 1857 (vase [24]) para el caso de 3
puntos en el plano.

Figura 7.2: Mnimo crculo que contiene al conjunto d1 > d2 > = = = > dn  R2 .
El objetivo de esta seccin es el de plantear un problema de programacin
cuadrtica que resuelva el problema actual de determinacin de la mnima bola
que contiene a A= La resolucin de dicho problema cuadrtico se implementar
en MATLAB.

En trminos formales, el problema a resolver es el siguiente


(S1 )

P lq

({>%)MRq+1

v=d

{  dl  %> l = 1> = = = > n=

(7.2)

Puesto que la funcin w 7$ w2 es estrictamente creciente en R+ , por la

proposicin 3.1 (tomando !(w) = w2 y !l (w) = w2 > l = 1> = = = > n), se tiene que el
problema (S1 ) es equivalente a este otro
(S2 )

P lq

({>%)MRq+1

v=d

%2

{  dl 2  %2

l = 1> = = = > n>

(7.3)

%  0=

Como podemos observar, el problema (7.3) no es cuadrtico, pues las restricciones no son lineales; sin embargo, veremos que con un cambio de variable

236

Optimizacin matemtica aplicada

adecuado podemos transformarlo en un problema cuadrtico convexo.


Hagamos antes un breve recordatorio acerca de los cambios de variable independiente y la relacin existente entre las soluciones del problema original y del
transformado. La comprobacin del siguiente resultado es inmediata a partir de
la biyectividad de *.
Proposicin 7.1 Sean I> J  Rq > i : I $ R> * : J $ I

biyectiva y

j := i  *. Sean los problemas


(S ) P lq
v=d

i ({)

(T) P lq

{ 5 I>

v=d

j(})
} 5 J=

{) es ptimo global
Entonces {
es ptimo global de (S ) si, y solo si, } := *31 (
de (T). Adems los valores ptimos de (S ) y (T) coinciden.
Debemos realizar un cambio en el problema (7.3) que transforme las restricciones cuadrticas en lineales. Veamos que un cambio adecuado para esto es el
que proporcionan las ecuaciones
;
? } = {>

=  = 12 %2  k{k2 >

(7.4)

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
%  k{k2  dl / } 0 dl +   dl =
/ {0 dl +
2
2
2

(Recurdese que en esta aplicacin kk representa a la norma eucldea.)

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,
o
n
2

I := ({> %) 5 Rq+1 | {  dl  %2 > l = 1> = = = > n> %  0 >


y sea

2
1
q+1
0 l
l
J := (}> ) 5 R
|  + } d  d > ;l = 1> = = = > n
2

Captulo 7. Aplicaciones de la Programacin No Lineal

237

entonces J 6= > y la funcin que define el cambio (7.4), dada por


#:

es biyectiva.

$

({> %) 
7 $ {> 12 %2  k{k2 >

Demostracin. En primer lugar, el hecho de que # (I )  J es consecuencia


directa de la cadena de equivalencias dada tras la frmula (7.4). En particular,
J 6= > como consecuencia de que I 6= > (dado que todo conjunto finito de puntos

es acotado; formalmente el par (0>max{dl > l = 1> = = = > n}) pertenece a I )=

{k2
Dados ({> %) y (
{> %) de I tales que { = {
y 12 %2  k{k2 = 12 %2  k
se tiene %2 = %2 , por lo que % = % al ser ambos no negativos, lo que prueba la
inyectividad de #.
Veamos que # es sobreyectiva. Dado (}> ) un punto de J se verificar  +
2
} 0 dl  12 dl > ;l = 1> = = = > n> o lo que es lo mismo,
l 2
d  2} 0 dl  2=
(7.5)

2
De la desigualdad anterior se deduce tambin que }  dl  2 + k}k2 , y por

tanto

2 + k}k2  0>
q
lo que permite definir { := } y % := 2 + k}k2 =

Teniendo en cuenta la ecuacin (7.5), para cada l = 1> = = = > n> podemos es-

cribir


{  dl 2 = }  dl 2 = dl 2  2} 0 dl + k}k2  2 + k}k2 = %2 >

de donde se deduce que ({> %) 5 I= Entonces,

q
!!
2

1
1 2
2 + k}k2  k}k2
= }>
#({> %) = {>
%  k{k2
= (}> ) >
2
2
lo que prueba la sobreyectividad de #=
El lema anterior asegura la existencia del cambio inverso * = # 31 de (7.4),
definido en J, dado por las ecuaciones
;
? { = }>
q
= % = 2 + k}k2 =

(7.6)

238

Optimizacin matemtica aplicada

Proposicin 7.2 Manteniendo la notacin de la presente seccin, consideremos el problema de programacin cuadrtica
(S3 )

P lq

2 + k}k2

v=d

 + } 0 dl 

(}>)MRq+1

1
dl 2 > l = 1> = = = > n=
2

es solucin ptima de (S3 )


Se tiene que (S3 ) es resoluble. Adems, si (
} > )
entonces (
{> %) definido por
;
? {
:= }>
q
= % := 2
+ k
} k2 >
es solucin ptima del problema (S2 ), cumplindose adems
y(S1 ) =

p
p
y(S2 ) = y(S3 )=

Demostracin. Veamos que (S3 ) es resoluble. En efecto, (S3 ) es consistente como consecuencia del lema anterior. En virtud del teorema 3.7, basta comprobar
1 2
que (S3 ) es acotado. Si  + } 0 dl  dl > entonces
2
2
2
2 + k}k2  k}k2  2} 0 dl + dl = }  dl  0>

lo que significa que la funcin 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 proposicin 7.1.
Observacin 7.1 Ntese que (S3 ) es un problema cuadrtico convexo (vase
la seccin 3.6), por lo que las condiciones de KKT son necesarias y suficientes
para la optimalidad global (en virtud de la proposicin 3.2), es decir, G = PNNW .

Como consecuencia directa de este hecho se tiene que el centro de la esfera

mnima que contiene a A = d1 > d2 > = = = > dn se encuentra en la envoltura convexa

de A= Formalmente, se tiene que

n
o

5 G , } 5 conv d1 > d2 > = = = > dn =


}> 

Captulo 7. Aplicaciones de la Programacin No Lineal

239

5 G = PNNW > se tiene:


En efecto, si }> 

2
}

=
2

)
lML (}>

En consecuencia } =

d
=
> con l  0> para todo l 5 L }> 
l
1

)
lML (}>

7.1.1.

l l
2 d

5 conv d1 > d2 > = = = > dn > ya que

)
lML (}>

l
2

= 1=

Resolucin con MATLAB

En primer lugar, ntese que (S3 ) puede adaptarse al formato estndar de


(3.5) ; esto es, podemos escribir
(S3 )

P lq

xMRq+1

v=d

1 0
x Tx + g0 x
2
Dx  e>

considerando

T := 2

Lq

0q

00q

3 2
d1
E
1
..
e :=  E
.
C
2
n 2
d

>

g :=

0q
2

>

3 0
d1
E .
.
D :=  E
C .
n 0
d

1n

F
F>
D

F
F > x := (}1 > }2 > = = = > }q > )0 >
D

donde recurdese que 0q es el vector nulo de

(n)

Rq

z }| {
y que 1n := (1> ===> 1)0 =

A continuacin, presentamos la funcin de MATLAB que calcula la mnima


bola mediante la resolucin del problema (S3 ). La notacin empleada ha sido la
siguiente:
MP: matriz que contiene a los puntos dl por columnas.
Q, d: Matriz y vector que definen la funcin 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

Optimizacin matemtica aplicada


r: radio de la bola buscada (valor ptimo de (S1 ) > denotado anteriormente

por %).
Inicio funcin esfmin
%La funcin esfmin proporciona la mnima esfera que contiene
%al conjunto de puntos introducidos por columnas en la matriz
% MP. Como salida se obtiene el centro, x,
%y el radio, r, de la esfera buscada.
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 funcin esfmin
Resolucin del problema de localizacin de la antena WIFI. A continuacin, introducimos los datos recogidos en (7.1) y ejecutamos la funcin
esfmin.

AA MP=[16,16,44,66.5,82,82;13.5,36.5,26.5,44,26,11]
AA [x,r]=esfmin(MP)

Con lo que se obtiene el resultado:


{ = (49> 23.75)> u = 35.3774>
y al ser el radio menor que 40 m quedar garantizada una buena seal en todas
las localizaciones. En la figura 7.3 se muestra grficamente la solucin obtenida.

7.2.

Ubicacin de una antena de telefona mvil

El problema que se aborda en esta seccin constituye una ligera modificacin


del problema tratado en la seccin anterior.

Captulo 7. Aplicaciones de la Programacin No Lineal

241

Figura 7.3: Punto ptimo para la colocacin de la antena WIFI.

Ilustracin. Se desea encontrar la ubicacin ptima de una antena de telefona mvil con el fin de dar cobertura a cinco reas D1 > ===> D5 que, por simplificar, suponemos circulares de 25 km de radio y centradas en los puntos d1 > ===> d5
que se muestran en la siguiente tabla (los datos estn dados en km y se supone
previamente fijado un sistema de coordenadas):
d1

(68> 263)

d2

(251> 340)

d3

(173> 170)

d4

(208> 40)

d5

(312> 190)

En la figura 7.4 se ilustra la situacin actual.


Solucin. El problema a resolver es el siguiente:
(S1 )

P lq

({>%)MR2+1

v=d
que es equivalente a este otro
(S2 )

P lq

({>%)MR2+1

v=d

{  dl + 25  %>
%  25

{  dl  %  25=

242

Optimizacin matemtica aplicada

Figura 7.4: Localizaciones del problema de la antena de telefona.

Como en la aplicacin anterior, en sta kk representa a la norma eucldea de

Rq = Si llamamos  := %25, el problema (S2 ) queda como un problema estndar


de la bola de mnimo radio:
(S3 )

P lq

({>)MR2+1

v=d

{  dl  ;

Y si {
3 es ptimo del problema (S3 ) con valor 3 > entonces el ptimo del problema
3 , pero con valor 3 + 25=
original (S1 ) es tambin {
Utilizando la funcin esfmin realizada previamente, resolvemos el problema
= (204.93> 193.52)>
(S3 ), obteniendo la ubicacin ptima de la antena en el punto {
con valor ptimo  = 153.55. La figura 7.5 ilustra dicha ubicacin ptima.

7.2.1.

Ejercicio propuesto: Instalacin de una plataforma de salvamento martimo

Se desea instalar una plataforma de salvamento martimo para atender posibles emergencias que se produzcan en 5 pequeas islas cuyas posiciones en cierto
sistema de coordenadas son (los datos corresponden a los centros de las islas que,
por simplicidad, se suponen circulares con el mismo radio):

Captulo 7. Aplicaciones de la Programacin No Lineal

243

Figura 7.5: Ubicacin ptima de la antena de telefona.

Isla

Coordenadas (en km)

L1

(36.9, 42.8)

L2

(37.6, 30.5)

L3

(87.8, 33.6)

L4

(76.7, 40.8)

L5

(57.5, 63.7)

Calclese la ubicacin ptima de la plataforma de salvamento.


Solucin. En primer lugar, ntese que el modelo es anlogo al anterior,
de ubicacin de una antena de telefona mvil. Ntese adems, que no es necesario conocer el radio de las islas para determinar la localizacin ptima de la
plataforma. Utilizando la funcin esfmin se obtiene que la ubicacin ptima de
la plataforma en el punto (62.3, 38.2).

7.3.

Ajuste por mnimos cuadrados

7.3.1.

Ajuste a modelos lineales sin restricciones

Recordemos que dada una nube de puntos


{(|m > {1m > {2m > ===> {qm )> m = 1> ===> n}  Rq+1 >

244

Optimizacin matemtica aplicada

el objetivo del modelo de los mnimos cuadrados es determinar la ecuacin del


hiperplano
w = 0 + 1 v1 + 2 v2 + = = = + q vq >
que minimiza la norma eucldea el vector de residuos %() = (%m ())m=1>===>n >
siendo
%m () = |m  (0 + 1 {1m + 2 {2m + = = = + q {qm )> m = 1> = = = > n>
donde  = (0 > 1 > ===> q )0 5 Rq+1 = En otros trminos, se trata de resolver el
problema
P lq k%()k2 >

MRq+1

que resulta ser equivalente al problema


(Spf ) P lq

MRq+1

n
X

(%l ())2 =

l=1

Este planteamiento fue introducido anteriormente en (6.4), en la seccin 6.2.


Si denotamos por \ := (|1 > ===> |n )0 > por [l := ({l1 > = = = > {ln )0 > y por [ :=
(1n |[1 | |[q ) > se tiene que
%() = \  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,
%()0 %() = (\  [)0 (\  [) = 0 [ 0 [  2\ 0 [ + \ 0 \>
que es claramente una funcin cuadrtica en la variable vectorial . Si adoptamos
la notacin T := 2[ 0 [> f := 2[ 0 \> g := \ 0 \ , el problema (Spf ) queda
planteado como sigue:
(Spf )

P lq

MRq+1

i () :=

1 0
0
2  T + f  + g=

(7.7)

Captulo 7. Aplicaciones de la Programacin No Lineal

245

Dado que T = Ki () > para cualquier > es una matriz simtrica y definida
o semidefinida positiva, pues
} 0 T} = 2} 0 [ 0 [} = 2([})0 ([})  0 ;} 5 Rq+1 >
se tiene que i es una funcin cuadrtica convexa.

Proposicin 7.3 Consideremos el problema de mnimos cuadrados (Spf ) introducido en (7.7). Se tiene que (Spf ) es resoluble y el conjunto de sus ptimos
globales est dado por

G =  5 Rq+1 | [ 0 [  [ 0 \ = 0 =
(Si [ 0 [ es inversible, es inmediato que (Spf ) tiene un nico ptimo global y
est dado por 
= ([ 0 [)31 ([ 0 \ )=)
Demostracin. En primer lugar, ntese que, en virtud del Teorema de Frank y
Wolfe (teorema 3.7), (Spf ) es resoluble por tratarse de un problema acotado de
programacin cuadrtica (vase tambin la observacin 3.8). En efecto, (Spf )
es acotado pues

i () =

n
X

%2l ()  0 para todo  5 Rq+1 =

l=1

Adems, 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

Optimizacin matemtica aplicada

7.3.2.

Ajuste a modelos lineales con restricciones: un problema


de reacciones qumicas

Ilustracin (vase la resolucin numrica en la subseccin 7.3.3).


Se han realizado 12 experimentos de obtencin de determinado material a partir
de cuatro compuestos D, E, F y G= En cada uno de los experimentos se han
utilizado diferentes cantidades de los cuatro compuestos y se ha anotado el
calor generado, N> por la reaccin qumica. La siguiente tabla muestra los datos
correspondientes a los 12 experimentos; esto es, las cantidades empleadas de D,
E, F y G (medidas en gramos) y el calor generado N (medido en caloras por
gramo):
N

107.5

13

67

19

102

11.9

72

23

112.4

6.8

33

15

104.2

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

54

94.1

9.9

43

15

42

77.9

25.5

61

73.2

7.8

69.9

11

81.9

9.8

33

63

Se desea ajustar un modelo lineal a estos datos, donde se exprese el calor generado N en funcin de las cantidades de los compuestos D, E, F y G. Esto es,
se desean determinar los parmetros 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 mnimos cuadrados.
Adems, se sabe que los parmetros del modelo verifican las restricciones:
1 + 2 + 3  4

21  2 = 0=

Planteamiento general. Manteniendo la notacin de la subseccin anterior, ahora suponemos adicionalmente que se conocen ciertas condiciones para
los parmetros 0 > 1 > = = = > q , que formalmente se traducen como un conjunto de restricciones lineales. De este modo, planteamos el problema de mnimos

Captulo 7. Aplicaciones de la Programacin No Lineal

247

cuadrados restringidos como sigue:


n
X

(Spfu ) P lq

(%l ())2

l=1

v=d

D   e>

(7.8)

Dht  = eht =
siendo D y Dht matrices de rdenes p (q + 1) y s (q + 1)> respectivamente, y

donde e 5 Rp y eht 5 Rs = Ntese que la funcin objetivo de (Spfu ) es la misma

que la de (Spf ) y como antes se tiene que


i () =

n
X

(%l ())2  0> para todo  5 Rq+1 =

l=1

En particular, se tiene el siguiente resultado.


Proposicin 7.4 Consideremos el problema (Spfu ) introducido en (7.8). Se
tiene que:
(i) (Spfu ) es resoluble si, y solo si, (Spfu ) es consistente.
(ii) El conjunto de ptimos globales de (Spfu ) coincide con el de sus puntos
de KKT, esto es,
G = PNNW =
Demostracin. El apartado (i) es consecuencia directa del teorema de Frank
y Wolfe (teorema 3.7) teniendo en cuenta que la funcin objetivo de (Spfu ) > i>
est acotada inferiormente, como se ha indicado anteriormente.
Por su parte, el apartado (ii) se deduce del hecho de que (Spfu ) es un problema cuadrtico convexo.

7.3.3.

Resolucin con MATLAB

A continuacin, implementamos la funcin minres que resuelve el modelo


de los mnimos cuadrados restingidos, para una muestra de n observaciones y q
variables.
(Spfu ) P lq 0 T + f0  + g
v=d

D   e>
Dht  = eht =

248

Optimizacin matemtica aplicada


donde
T = 2[ 0 [> f = 2[ 0 \ y g = \ 0 \=

Recurdese que
3

1
E .
.
[=E
C .
1

{11
..
.

..
.

{1n

4
3
{q1
|1
F
E .
..
F > \ = E ..
.
D
C
{qn
|n

4
F
F=
D

Inicio funcin minres


%La funcin minres resuelve el problema de los mnimos cuadrados
%restringidos.
%La sintaxis es [sol, e]=minres(dep, indep, A, b, Aeq, beq),
%donde dep es el vector (fila) que contiene las observaciones
%experimentales de la variable dependiente del modelo,
%indep es la matriz que contiene por filas las observaciones
%experimentales de cada una de las variables independientes,
%A es la matriz de coeficientes de las restricciones de
%desigualdad, b es el vector de trminos independientes de las
%desigualdades, Aeq es la matriz de coeficientes de las
%restricciones de igualdad, y beq vector de
%trminos independientes de las igualdades.
%Los argumentos de salida son: sol, que es el vector que tiene
%los valores ptimos de los parmetros del modelo,
%e es el vector de residuos correspondiente.
%Para evitar errores se recomienda introducir los datos en un
%M-file con dep, indep, A, b, Aeq y beq.

function [sol,e]=minres(dep,indep,A,b,Aeq,beq)
x=indep;
[n,k]=size(x);
y=dep;
%funcin cuadrtica
x=x;

Captulo 7. Aplicaciones de la Programacin No Lineal

249

X=[ones(k,1),x]
Q=2*X*X;
%funcin lineal
c=-2*X*y;
[sol]=quadprog(Q,c,A,b,Aeq,beq);
e=y-X*sol;
Fin funcin minres
Resolucin de la ilustracin del problema de reacciones qumicas.
Seguidamente se muestra la ejecucin de la funcin minres con los datos de la
ilustracin presentada al comienzo de la subseccin anterior.

AA K=[107.5, 112.4, 84, 113.8, 94.1, 73.2, 102, 104.2, 110.7,


75.7, 77.9, 81.9];
AA A=[13, 6.8, 2.3, 10.1, 9.9, 7.8, 11.9, 3,23, 2.1, 7, 9.8];
AA B=[67, 33, 59, 31, 43, 69.9, 72,51, 46,45, 25.5, 33];
AA C=[8, 9, 11, 24, 15, 11, 9, 13, 16, 8, 7, 7];
AA D=[19, 15, 27, 25, 42, 7, 23, 46, 22, 54, 61, 63];
AA dep=K;
AA indep=[A;B;C;D];
AA [sol,e]=minres(dep,indep,[0,1,1,1,0],[4],[0,2,-1,0,0],[0])

Recordemos que el argumento de salida sol contiene los valores ptimos


de los parmetros 0 > 1 > ===> 4 > obtenindose la siguiente solucin:
N = 103.8332  0.0891D  0.1782E + 1.1144F  0.3721G=

7.3.4.

Ejercicio propuesto: Un modelo explicativo del precio de


la vivienda

Se desea ajustar un modelo lineal que explique el precio de venta de una


vivienda (precio) en funcin del valor de tasacin del terreno (valterr), el valor de tasacin de las mejoras (valmejor) y el valor de tasacin total (valtot).

250

Optimizacin matemtica aplicada

Formalmente, se desea determinar los parmetros 0 > 1 > ===> 3 que proporcionan
el mejor ajuste del modelo
precio = 0 + 1 valterr + 2 valmejor + 3 valtot
a los datos que se indican a continuacin, mediante el mtodo de mnimos
cuadrados sujeto a la restriccin 3 = 21 =
Emplearemos la base de datos del SPSS contenida en el fichero Ventas de
casas [por barrio].sav. Concretamente, centraremos nuestra atencin en los datos
de los barrios A y B.
Indicacin (vase el ejercicio 6.2 para detalles sobre la creacin de una
base de datos extrados del SPSS). Para comenzar, hemos de crear las dos
bases de datos correspondientes a los barrios A y B; para ello, abrimos el fichero
Ventas de casas [por barrio].sav de la base de datos del SPSS. A travs de
las opciones Analizar$Estadsticos descriptivos$Frecuencias a la variable barrio, vemos que hay 7 barrios designados de la A a la G. Seguidamente mediante Datos$Seleccionar casos, seleccionamos las opciones Eliminar casos no
seleccionados y Si satisface la condicin y pulsamos Si...$ elegimos barrio, barrio=A$Continuar$Aceptar. Ahora de la ventana Vista de variables eliminamos la variable barrio, y guardamos la base de datos con el nombre de barrioA
y el tipo Excel 2.1(*.xls). Repetimos el mismo procedimiento para el barrioB,
de nuevo con la base de datos completa.
Una vez terminado este proceso en el que hemos creado las dos bases de
datos, desde MATLAB abrimos las bases de datos, File$Open, abrimos directamente el documento Excel que acabamos de crear. MATLAB nos muestra
Import Wizard, seleccionamos Create vector from each column using column
names, Finish. Primero trabajamos con una y calculamos su plano de regresin;
una vez hallado, y antes de abrir la otra base de datos eliminamos las variables
de Workspace, mediante Edit$Clear Workspace.
Solucin. Para hallar los parmetros del modelo barrioA tecleamos en MATLAB:
AA dep=precio;
AA indep=[valterr,valmejor,valtot];

Captulo 7. Aplicaciones de la Programacin No Lineal

251

AA [sol,e]=minres(dep,indep,[],[],[0,0,2,-1,0],0)

7.3.5.

Ajuste a modelos no lineales: Un modelo de produccin


basado en la funcin de produccin de Cobb-Douglas

En el proceso de engorde del ganado vacuno en Allueva et l. [1] se consideran


dos fases diferentes: la fase de iniciacin (hasta 300 kg de peso) y la de acabado.
En la fase de iniciacin aparece el siguiente modelo de engorde del ganado en
funcin del tipo de alimentacin empleada
S = 0 P 1 V 2 >

(7.9)

donde S representa la ganancia de peso en kg de un ternero con una racin


de pienso, P y V representan, respectivamente, las cantidades (en kg) de cierta
mezcla de maz en grano con ensilado y de soja, empleada en la racin de pienso.
Por su parte 0 > 1 y 2 son los parmetros del modelo, que han de tomar valores
no negativos. Dicho modelo se ajusta al clsico modelo de produccin de Cobb
y Douglas (analizado por estos autores en la publicacin [6] de 1928).
Nuestro objetivo es determinar los valores ptimos de los parmetros 0 > 1 y
2 en el sentido de que proporcionen el mejor ajuste por mnimos cuadrados del
modelo (7.9) a la siguiente muestra de datos relativos al engorde de 20 terneros:
S :

47

46

48

46.5 48.7 56.8 56.9 49.8 51.6 54.9

P : 100 93 120

90

98

140

150

97

115

130

V:

50

58

65

79

67

80

65

75

S :

47.5 49.8 51.2 49.3 48.9 57.6 51.9 54.5 48.4 50.5

54

34

P:

95

105

110

97

104

145

125

132

92

104

V:

59

64

69

73

56

79

54

68

75

72

Planteamiento general. Consideremos el siguiente modelo no lineal que


expresa a la variable \ como funcin de las variables independientes [1 > ===> [q
y que, adems, depende del parmetro  5 I  Rp >
\ = i ([1 > ===> [q ) >

252

Optimizacin matemtica aplicada

donde i : Rq $ R>  5 I> es una funcin en general no lineal.


Supongamos dada una muestra experimental de tamao n de las variables
involucradas en el modelo, \> [1 > ===> [q :
{(|m > {1m > {2m > ===> {qm )> m = 1> ===> n}  Rq+1 =
El mtodo de ajuste por mnimos cuadrados pretende determinar el valor del
parmetro (vectorial)  que minimiza la norma eucldea del vector de residuos
correspondiente
% () := (|m  i ({1m > {2m > ===> {qm ))m=1>===>n ;
esto es, se trata de resolver el siguiente problema de optimizacin, en la variable
vectorial  5 Rp >
(S ) P lq k%()k2
v=d=

 5 I>

o, equivalentemente, de resolver el problema de mnimos cuadrados no lineal


(Spfqo ) P lq
v=d=

n
P

m=1

(|m  i ({1m > {2m > ===> {qm ))2

(7.10)

 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.
Resolucin con MATLAB. En el ejemplo del problema de engorde del
ganado, la funcin no lineal que describe el modelo es
i (P> V) = 0 P 1 V 2 >
y el problema (Spfqo ) puede escribirse de la forma (se indica el primer y ltimo
sumando de la funcin de mnimos cuadrados)
(Spfqo ) P lq (47  0 1001 502 )2 + ==== + (50.5  0 1041 722 )2
v=d=

0 > 1 > 2  0=

(7.11)

Por motivos didcticos y de generalidad en el planteamiento, hemos optado


por trabajar directamente con el modelo no lineal (7.9); aunque en este caso

Captulo 7. Aplicaciones de la Programacin No Lineal

253

Figura 7.6: Funcin objetivo del problema (7.11).

particular, podramos haber linealizado dicho modelo tomando logaritmos> pues


los valores experimentales de S> P y V son positivos.
A continuacin, introducimos el modelo en MATLAB y lo resolvemos con
ayuda de la funcin fmincon descrita en la seccin 5.2. La figura 7.6 muestra
la edicin de la funcin objetivo del modelo como un M-archivo que hemos
denominado sumcuad (suma de cuadrados).
Una vez creada la funcin objetivo, ejecutamos la funcin fmincon con
la sintaxis que figura a continuacin. Hacemos hincapi en el hecho de que la
eleccin inicial de la semilla la hacemos de forma arbitraria. En este caso se ha
considerado la semilla (1> 1> 1) =
AA [x,f,e,o]=fmincon(sumcuad,[1 1 1],[],[],[],[],[0 0 0],[]);

Se tiene, e =0 (vase de nuevo la seccin 5.2 para detalles). El punto propuesto es x=[2.5606, 0.4625, 0.1917]> con valor del objetivo f=27.3360.
Seguidamente, hemos optado por introducir una nueva semilla, cercana a la
solucin propuesta anteriormente, en vez de aumentar el valor del parmetro
OPTIONS. MaxFunEvals. Ensayaremos con la semilla (2> 0.5> 0.1) = As ejecuta-

254

Optimizacin matemtica aplicada

mos de nuevo la funcin fmincon con la sintaxis:


AA [x,f,e,o]=fmincon(sumcuad,[2 0.5 0.1],[],[],[],[],
[0 0 0],[]);
En este caso obtenemos el mensaje de salida correspondiente a e =5 (recordemos que valores positivos de e=exitflag se correspondan con reglas satisfactorias de parada). Por otro lado, a partir del valor de o.firstorderopt=0.0256,
podemos decir que no se cumplen las condiciones de KKT para la tolerancia empleada de 1036 > aunque s se tiene cierta aproximacin. Formalmente
o.firstorderopt=0.0256 significa que

l ujl ({)
ui ({) +

l=1

 0.0256,

"

|l jl ({)|  0.0256, para todo l>

donde aqu i representa la funcin objetivo del problema y jl la funcin que


determina la l-sima restriccin de desigualdad (jl ({)  0)=
Por otro lado, la solucin propuesta es:
x=[5.1633, 0.3644, 0.1369], con f=0.4642.
Ntese que se ha producido una mejora (disminucin) en el valor de la funcin
objetivo con respecto a la ejecucin anterior de fmincon.
Hemos ensayado con diferentes semillas y no hemos encontrado una mejora
significativa en el valor de la funcin objetivo. Con todo, admitiremos el punto
anterior como solucin aceptable del problema. As pues, aceptamos el siguiente
modelo de engorde del ganado vacuno:
S = 5.1633 P 0.3644 V 0.1369 =

7.4.

Distancia de un punto a un poliedro

7.4.1.

Ilustracin: El problema de la gra

Se quiere transportar una cantidad de materiales pesados de construccin


desde el punto d = (14> 120) al recinto U (vase una ilustracin en la figura 7.7).

Captulo 7. Aplicaciones de la Programacin No Lineal

255

Para ello se va a instalar una gra torre en dicho recinto con la que se elevarn

Figura 7.7: Representacin grfica problema de la gra.

los materiales. Suponemos que el coste de la gra torre depende linealmente de


la longitud del brazo (llamado pluma o flecha) de sta. Formalmente, suponemos
que el coste viene dado por:
coste = g (d> {) + >
siendo { el punto donde se instalar la gra, y siendo  y  dos nmeros positivos.
El objetivo del problema es calcular el punto { donde instalar la gra con el
fin de minimizar el coste. Esto es, el planteamiento ser
(S ) P lq g(d> {) + 
v=d

{ 5 U>

o equivalentemente
(S ) P lq g(d> {)
v=d

{ 5 U=

La resolucin numrica de este problema se encuentra en la subseccin 7.4.3.


Seguidamente, abordamos este problema desde una perspectiva ms general.

256

Optimizacin matemtica aplicada

7.4.2.

Planteamiento general

La ilustracin anterior corresponde a una situacin particular del problema


de hallar la distancia eucldea de un punto d 5 Rq a un poliedro I  Rq . Es
sabido que un poliedro en Rq admite diferentes tipos de representaciones. En
esta aplicacin, por simplicidad, trabajaremos con la representacin de I como
solucin de un sistema de desigualdades lineales; esto es,
I = {{ 5 Rq | D{  e} >
siendo D una matriz de orden pq y e 5 Rp = Se considera entonces el problema
de optimizacin
(S1 ) P lq g(d> {)
v=d

{ 5 I>

donde g(d> {) representa la distancia eucldea entre d y {= En otros trminos, la


finalidad de (S1 ) es determinar la mejor aproximacin (o proyeccin) del punto
d en el poliedro I> que ser representada por SI (d) como se ilustra en la figura
7.8.

Figura 7.8: Proyeccin del punto d sobre el poliedro I .

Puesto que I es un convexo cerrado (ejemplo 1.9), un resultado clsico del


anlisis convexo (que puede consultarse, por ejemplo, en el texto de Rockafellar
[23]) establece la existencia y unicidad de SI (d) cuando se trabaja con la distancia eucldea (en general, con otras distancias no est garantizada la unicidad).

Captulo 7. Aplicaciones de la Programacin No Lineal

257

En otros trminos, el problema (S1 ) es resoluble y tiene un nico ptimo


global. Aunque no es necesario suponer d 5
@ I> obviamente, el caso contrario es
trivial, en el sentido de que si d 5 I> entonces SI (d) = d y el valor ptimo (S1 )
es cero.
Por otro lado, puesto que la funcin w 7$ w2 es estrictamente creciente en

R+ , y teniendo en cuenta que

g(d> {)2 = k{  dk22 = {0 {  2d0 { + d0 d>


el problema (S1 ) es equivalente al problema de programacin cuadrtica:
(S2 ) P lq {0 {  2d0 { + d0 d
v=d

7.4.3.

D{  e=

Resolucin con MATLAB

Seguidamente implementamos una funcin con MATLAB, que llamaremos


dispol, que resuelve el problema (S2 ) anterior. Expresamos dicho problema en
el formato estndar:
(S2 ) P lq
v=d

1 0
2 { T{

+ f0 { + g

D{  e>

(7.12)

considerando
T := 2Lq > f := 2d y g := kdk2 =
(Como en ocasiones anteriores, obviaremos la constante g de la funcin objetivo,
lo que no supone cambio alguno en el conjunto de ptimos del problema.)
Presentamos a continuacin la funcin dispol:
Inicio funcin dispol
%La funcin dispol resuelve el problema que minimiza la dis%tancia de un punto a un poliedro dado a travs del sistema
%de desigualdades lineales A*x?=b. Si el punto pertenece
%al poliedro, aparece un mensaje de aviso.
%La sintaxis es [sol,d]=dispol(punto,A,b), donde
%el primer argumento de entrada representa el punto considerado.
%Respecto a los argumentos de salida, sol es el punto

258

Optimizacin matemtica aplicada

% donde se alcanza la distancia mnima deseada (proyeccin)


% y d el valor de dicha distancia.
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 funcin dispol
A continuacin, retomamos nuestra ilustracin del problema de la gra. Con
el fin de ajustarnos al planteamiento general, en primer lugar, representaremos
el recinto U como solucin de un sistema de desigualdades lineales. Inicialmente,
sabemos que:
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 vrtices consecutivos llegamos a la representacin deseada:

U := { 5 R2 | D{  e =

Captulo 7. Aplicaciones de la Programacin No Lineal


Puede comprobarse que una posible eleccin de D y e es:
3
4
3
3.5
67
7118.2
E
F
E
E 49
E 7705.5
18.5 F
E
F
E
E
F
E
D := E 34
78.5 F | e := E 688.5
E
F
E
E 52 23.5 F
E 3493.5
C
D
C
34.5 16.5
103.5

259

4
F
F
F
F
F=
F
F
D

Utilizando la funcin dispol con la sintaxis indicada anteriormente, se obtiene que el punto ptimo para colocar la gra es:
{
= (51.75> 101.94)=
La figura 7.9 ilustra grficamente la situacin.

Figura 7.9: Solucin del problema de la gra.

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 =

Utilcese la funcin dispol.

260

Optimizacin matemtica aplicada

Solucin. Ejecutamos la funcin dispol con los datos actuales:


AA A=[1,1;1,2;-1,0;0,-1];
AA b=[4,5,0,0];
AA [sol,d]=dispol([3,4],A,b)
Obtenemos la solucin: sol= (1.8, 1.6), con distancia mnima d= 2.6833.
La figura 7.10 ilustra grficamente la situacin.

y
5

a
d(a
,

P)

4
3
2

PP(a)

P
0
0

Figura 7.10: Distancia del punto d al poliedro S=

Ejercicio 7.2 Se desea minimizar las distancias de los puntos dados a cada uno
de los correspondientes poliedros, mediante la funcin 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)>
;
4
A
A
? { 5 R | {1 + {2 + 4{3  4> {1 + 2{4  7>
I2 =
{1 + {2  3{3 + 5{4  11> {1  0> {2  0>
A
A
=
{  4> {  0
3

<
A
A
@
A
A
>

Captulo 7. Aplicaciones de la Programacin No Lineal

261

Solucin. (a) sol= (3.5122> 1.6098> 7); d = 4.4173.


(b) sol= (0> 2.0928> 0.4768> 2.0675); d= 10.1316.

7.5.

Distancia entre dos poliedros

7.5.1.

Ilustracin: Construccin de una zanja para conectar dos


recintos

Una gran empresa localizada en el recinto U esquematizado en la figura 7.11


(las magnitudes vienen dadas en metros), ha decidido ampliar sus dependencias
al recinto V, que acaba de adquirir recientemente. Se quiere comunicar ambos
recintos por cable bajo tierra, para lo cual se realizar una zanja en lnea recta
que una un recinto con otro. Cada posible zanja puede ser representada por un
par ({> |) 5 R2 R2 , donde { 5 U representa el punto de salida e | 5 V el punto

de llegada. Suponiendo que el coste del material (tubos, cables...) y las obras es
proporcional a la longitud de la zanja, calcular el vector ({> |) que minimiza el
coste de las obras.

Figura 7.11: Esquema que muestra la localizacin de los recintos.

262

Optimizacin matemtica aplicada


Vase la subseccin 7.5.3 para la resolucin numrica de este problema. A

continuacin, presentamos un planteamiento general en el que ubicar la ilustracin actual.

7.5.2.

Planteamiento general

La situacin anterior se ajusta al problema de determinar la distancia eucldea entre dos poliedros de I1  Rq y I2  Rq = Como en la seccin anterior, los
poliedros sern representados como conjuntos de soluciones de sistemas lineales.
Concretamente,

I1 = { 5 Rq | D1 {  e1 y I2 = { 5 Rq | D2 {  e2 =

As pues, el planteamiento del problema sera


(S1 ) P lq
v=d

g({> |)
{ 5 I1 >
| 5 I2 >

donde g({> |) representa la distancia eucldea entre { e |=


Atendiendo a la representacin de los poliedros I1 y I2 , teniendo en cuenta
que la funcin w 7$ w2 es estrictamente creciente en R+ , y que
g({> |)2 = {0 {  2{0 | + | 0 |>
el problema (S1 ) es equivalente al siguiente problema de programacin cuadrtica en la variable ({> |) 5 R2q :
(S2 ) P lq {0 {  2{0 | + | 0 |
v=d

D1 {  e1 >

(7.13)

D2 |  e2 =
El siguiente resultado resume las propiedades de (S2 ) =
Proposicin 7.5 Considrese el problema (S2 ) introducido en (7.13). Se tiene
que:
(i) (S2 ) es un problema cuadrtico convexo;
(ii) (S2 ) es resoluble si, y solo si, es consistente.

Captulo 7. Aplicaciones de la Programacin No Lineal

263

Demostracin. (i) Veamos que la funcin objetivo de (S2 ) > que denotaremos
por i> es convexa. Sea
i ({> |) := {0 {  2{0 | + | 0 |> ({> |) 5 R2q =
Se comprueba fcilmente que la matriz hessiana de i en ({> |) 5 R2q est dada
por
Ki ({> |) =

Lq

Lq

Lq

Lq

Veamos que, para cualquier ({> |) 5 R2q > Ki ({> |) es semidefinida positiva: en
1
efecto, para cualquier } = }} 2 5 R2q se tiene que

!
0
0
0
L
L
q
q
}0
} = } 1 } 1  2 } 1 } 2 + } 2 } 2 = g(} 1 > } 2 )2  0=
Lq
Lq
As pues, i es convexa.
(ii) Es consecuencia inmediata del teorema de Frank y Wolfe (teorema 3.7),
teniendo en cuenta que i ({> |) = g({> |)2  0 para todo ({> |) =

7.5.3.

Resolucin con MATLAB

Ntese que el problema (S2 ) introducido en (7.13) se puede ajustar al formato


(S2 ) P lq
v=d

1 0
} T}
2
D}  e>

si consideramos

!

Lq
Lq
{
2q
5 R > T := 2
} :=
>
|
Lq
Lq

!
0pq
D1
e1
D :=
y e :=
>
0sq
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 funcin dis2pols que resuelve el problema de la mnima distancia entre dos poliedros mediante la resolucin del problema (S2 ) =

264

Optimizacin matemtica aplicada


Inicio funcin dis2pols

%La funcin dis2pols resuelve el problema de minimizar la dis%tancia entre dos poliedros F1 y F2.
%La sintaxis es [x1,x2,d]=dis2pols(A1,b1,A2,b2), donde el par
%(A1,b1) define al poliedro F1 formado por los puntos x que
%cumplen A1*x?=b1 y el par (A2,b2) define al poliedro F2 for%mado por los puntos x que cumplen A2*x?=b2.
%En cuanto a las salidas, x1 y x2 son, respectivamente, los pun%tos de los poliedros F1 y F2 que minimizan la distancia en%tre ambos, y d es la distancia mnima.
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 funcin dis2pols
A continuacin, resolvemos el problema de la zanja planteado en la subseccin 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 =

Los coeficientes de los respectivos sistemas se han calculado determinando las


ecuaciones de las rectas que unen a cada par de vrtices consecutivos de U y V=
Consideramos:
3

3
4
E
8
1
F
E 5
E
F
1 F
E
E 2 15 F
F
E
E
F
F
D1 := E 0
F>
1 F > D2 := E
E
E
F
11 F
E 1 1 F
C 4
D
C
D
7
1
11 6
6

11

e1 = (2290> 790> 10> 70> 250)0 y e2 = (1360> 4000> 5280> 2670)0 =

Captulo 7. Aplicaciones de la Programacin No Lineal

265

Figura 7.12: Representacin grfica de la solucin del problema.

Ejecutamos la funcin dis2pols y obtenemos la solucin:


{
= (140.7643> 131.4013) 5 U e | = (200> 240) 5 V>
con distancia g = 87.4716 m; vase una ilustracin en la figura 7.12.

7.5.4.

Ejercicio propuesto: Construccin de un paso elevado

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. Calclese el par ({> |) que define el paso elevado
de menor longitud.
Solucin. Utilizando la funcin dis2pols se obtiene que el par
((212.38> 212.49)> (312.12> 262.36))
define el paso elevado de menor longitud, siendo sta de 111.52 m.

266

Optimizacin matemtica aplicada

Figura 7.13: Representacin de los poliedros que definen las zonas D y E.

7.6.

Problema de la cartera ptima

7.6.1.

Ilustracin: Un problema de inversin en diferentes empresas del IBEX35

Supongamos que un inversor dispone de 20000 euros para comprar acciones


de diferentes compaas que cotizan en Bolsa, en particular en algunas de las
empresas del IBEX35. Por simplicidad se han elegido 10 compaas de diferentes
sectores y {1 > ===> {10 representan las cantidades que el inversor destinar a la
compra de acciones de cada una; estas cantidades sern las variables de decisin
del modelo. El vector que las rene, que denotaremos por { = ({1 > {2 > = = = > {10 ),
constituye la llamada cartera de inversin. Concretamente, {1 > ===> {10 se describen de la siguiente manera:
{1 : cantidad invertida en la compra de acciones del Banco Santander,
{2 : cantidad invertida en la compra de acciones de Enagas,
{3 : cantidad invertida en la compra de acciones de Endesa,
{4 : cantidad invertida en la compra de acciones de Iberia,
{5 : cantidad invertida en la compra de acciones de Inditex,
{6 : cantidad invertida en la compra de acciones de Mapfre,
{7 : cantidad invertida en la compra de acciones de Repsol YPF,
{8 : cantidad invertida en la compra de acciones de Sacyr Valle,

Captulo 7. Aplicaciones de la Programacin No Lineal

267

{9 : cantidad invertida en la compra de acciones de Telecinco,


{10 : cantidad invertida en la compra de acciones de Telefnica.
As pues, las primeras restricciones del modelo son: todas las variables toman
valores no negativos ({1 > {2 > = = = > {10  0) y la suma total {1 + {2 + = = = + {10 ha
de coincidir con 20000 euros.
La verdadera dificultad de esta aplicacin aparece en la seleccin de un objetivo que represente fielmente el deseo del inversor, suponiendo que dicho inversor
centra su inters en obtener el mayor beneficio posible por la compra/venta de
acciones (lo que se llama ganancias del capital). El primer obstculo que encontramos es que dicho beneficio no es determinstico sino aleatorio (por tanto, no
puede preverse con exactitud).
La resolucin numrica de esta ilustracin se encuentra en la subseccin
7.6.3. Seguidamente, centramos nuestra atencin en el planteamiento general de
la situacin.

7.6.2.

Planteamiento general

Denotemos por p A 0 a la cantidad total que se desea invertir y por {l a


la cantidad empleada en la compra de acciones de la l-sima compaa, con
l = 1> 2> ===> q= De este modo { = ({1 > = = = > {q )0 5 Rq+ constituye nuestra cartera
de inversin. Denotaremos por E1 > = = = > Eq a los beneficios por unidad monetaria
invertida en un determinado periodo de tiempo y por E{ el beneficio total de la
cartera en dicho periodo. Se tiene que:
E{ := {1 E1 + = = = + {q Eq =
As pues, un primer planteamiento del modelo es:
(S ) P d{ E{
v=d

{1 + = = = + {q = p>
{1 > = = = > {q  0=

En general, E1 > = = = > Eq son variables aleatorias y, por tanto, E{ es tambin una
variable aleatoria resultante de una combinacin lineal de las anteriores.

268

Optimizacin matemtica aplicada


Con el fin de trabajar con un objetivo determinstico, una tcnica estn-

dar consiste en considerar la esperanza matemtica (en trminos informales el


valor promedio) del beneficio, que denotamos por H(E{ )> lo que desde luego
supone una primera simplificacin de la realidad. Si denotamos por f al vector
(H(E1 )> = = = > H(Eq ))0 5 Rq se tiene que
H(E{ ) =

q
X
{l H(El ) = f0 {=
l=1

Otro aspecto a tener en cuenta es la variablidad que presentan los beneficios


diarios con respecto a sus valores promedio. Es razonable interpretar esta variabilidad en trminos de riesgo, en el sentido de que una alta variabilidad puede
conducir a la situacin particular de tener beneficios sensiblemente inferiores a
los valores esperados. Formalmente, como medida de la variabilidad del beneficio
E{ , (y por tanto medida de riesgo) puede considerarse un nuevo estadstico, la
varianza, que denotamos por Y du(E{ )= Podemos expresar dicha varianza de la
siguiente manera (puede consultarse en los manuales de estadstica)
Y du(E{ ) = {0 T{>
donde T es la llamada matriz de varianzas y covarianzas, la cual, en la posicin
(l> m) con l 6= m> tiene la covarianza de las variables El y Em > y en la posicin

diagonal (l> l), la varianza de El =

Modelo de Markovitz. Con todo, el siguiente modelo, llamado modelo de


Markovitz, formaliza los deseos de maximizar el beneficio esperado y minimizar
el riesgo de la cartera de inversin (vase el texto de Surez [25]):
(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 cuadrtico, el riesgo) con restricciones lineales. Una metodologa tpica de
resolucin de problemas biobjetivo consiste en optimizar uno de los objetivos y
acotar el otro (vanse detalles adicionales en el texto de Novo [17]). Por ejemplo,

Captulo 7. Aplicaciones de la Programacin No Lineal

269

en nuestra ilustracin elegimos como objetivo minimizar el riesgo y aadimos


la condicin de que deseamos un beneficio esperado superior a determinada
cantidad P . De este modo, llegamos al siguiente problema de programacin
cuadrtica, que depende del parmetro P :
(SP ) P lq {0 T{
v= d

f0 {  P>
{1 + = = = + {q = p>

(7.14)

{1 > = = = > {q  0=
Por ltimo, queda pendiente la eleccin del valor P con el que se acota
el beneficio esperado. Con el objetivo de dar una respuesta a esta cuestin,
estudiaremos la resolubilidad del problema (SP ).

Proposicin 7.6 Si llamamos P al mximo valor de P para el cual (SP ) es


consistente, o lo que es es lo mismo, si P es el valor ptimo del problema
(S ) P d{ f0 {
v=d

{1 + = = = + {q = p>
{1 > = = = > {q  0>

entonces P ? +4 y el problema (SP ) es resoluble si, y solo si, P  P .


Demostracin. En primer lugar, P ? +4> de hecho (S ) es resoluble en virtud
del teorema de Weierstrass (vase la subseccin 3.5.1) por tener un conjunto factible no vaco (por ejemplo (p> 0> ===> 0) es un punto factible de (S )) y compacto
(ntese que todo punto factible, {> de (S ) verifica 0  {l  p> l = 1> ===> q)=
Si P  P > entonces (SP ) es obviamente consistente y, de hecho, resoluble
como consecuencia del Teorema de Weierstrass. Ntese que, de hecho el conjunto
factible de (SP ) est contenido en el de (S )=
Por otro lado, dado P A P , el conjunto factible de (SP ) es vaco, como
consecuencia directa de la definicin de P . As, el problema SP no es resoluble,
lo que prueba la implicacin recproca.

270

Optimizacin matemtica aplicada

7.6.3.

Resolucin con MATLAB

En primer lugar, observaremos que, en la prctica, suele ser desconocida


la distribucin de la variable vectorial (E1 > ===> Eq ) y en particular suelen ser
desconocidos tanto el vector f = (H(E1 )> H(E2 )> = = = > H(Eq ))0 como la matriz de
varianzas y covarianzas, T. As pues, nos encontramos ante una nueva dificuldad
en el planteamiento del modelo (7.14) que comienza con la estimacin de f y T
a partir de determinados datos histricos que se recogen en la matriz K> cuyas
columnas denotamos por K1 > K2 > ===> Kq :
K1

K2

k11
..
.

k12
..
.

km1
..
.

km2
..
.

kn1

kn2

Kq

k1q
..
.

kmq
..
.

knq

Concretamente, klm representa el precio medio de la accin de la m-sima


compaa en el periodo l= A partir de aqu calculamos una matriz de rentabilidades (beneficios) por unidad monetaria invertida en acciones de la m-sima
compaa en el periodo l, G = (glm )l=2>===>n;
glm :=

klm  k(l31)m
>
k(l31)m

m=1>===>q >

definida como sigue

para todo l = 2> ===> n; m = 1> ===> q=

Finalmente, empleamos esta matriz G para realizar nuestras estimaciones. As


pues, estimamos H(E1 )> H(E2 )> = = = > H(Eq ) por las medias aritmticas de los
datos contenidos en las columnas de G; esto es, consideramos:

b
fm =

n
X
glm
l=2

> 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

tbuv =

n
X
(glu  b
fu )(glv  b
fv )
l=2

>

u> v = 1> = = = > q=

Captulo 7. Aplicaciones de la Programacin No Lineal

271

En consecuencia, el problema que realmente resolveremos est dado por


b
(SbP ) P lq {0 T{
v= d

b
f0 {  P>

(7.15)

{1 + = = = + {q = p>
{1 > = = = > {q  0=

Finalmente, elegimos una serie de valores para el parmetro P= En nuestro caso, hemos seleccionado un determinado nmero de puntos, P1 > ===> Pqs >
equiespaciados en el intervalo
Int: = [max {0> y(Smin )} > y(Smax )] >
donde y(Smin ) y y(Smax ) representan los valores ptimos de los problemas de
optimizacin lineal (Smin ) y (Smax ) siguientes:

(Smin ) P lq b
f0 {
v=d

{1 + = = = + {q = p>

{1 > = = = > {q  0>

(Smax ) P d{ b
f0 {
v=d

{1 + = = = + {q = p>
{1 > = = = > {q  0=

Seguidamente presentamos la implementacin con MATLAB de la resolucin


del modelo (SbP ) descrito en (7.15) para los valores P1 > ===> Pqs del parmetro

P indicados en el prrafo anterior. Los problemas (Smin ) y (Smax ) se resuelven


con ayuda de la funcin linprog y cada uno de los problemas (SbPm ) con ayuda
de quadprog.

Ntese que en la sintaxis de MATLAB se ha omitido el smbolo b en los


b
elementos b
f y T=
Inicio funcin cartera

%Esta funcin resuleve el modelo de la cartera de optimizacin


%(modelo de Markovitz).
%La sintaxis es la siguiente [x,b,r,Q,c,Int]=cartera(H,m,np).
%Los parmetros de entrada son: H matriz de datos histricos
%(por columnas); m es la cantidad a invertir;
%np es el nmero de puntos o carteras que queremos observar.
%Los parmetros de salida son: x es la cartera ptima; b es

272

Optimizacin matemtica aplicada

%el beneficio esperado para dicha cartera; r es el riesgo de la


%misma; Q es la matriz de estimaciones de las varianzas-covarianzas
%de las rentabilidades; c es el vector de beneficios esperados
%e Int es el intervalo de beneficios esperados.
function [x,b,r,Q,c,Int]=cartera(H,m,np)
[k,n]=size(H);
%matriz de diferencias
D=(H(2:k,:)-H(1:k-1,:))./H(1:k-1,:);
%beneficios medios estimados
c=mean(D);
%matriz de varianzas-covarianzas
Q=cov(D);
%acotamos el beneficio medio esperado
[aux,cmax1]=linprog(-c,[],[],ones(1,n),m,zeros(1,n),[]);
cmax=-cmax1;
if cmax?0 then
disp(No hay beneficio esperado positivo);
disp(para ninguna cartera!!!);
return
end
[aux,cmin]=linprog(c,[],[],ones(1,n),m,zeros(1,n),[]);
cmin=max(0,cmin);
Int=[cmin,cmax];
%calculo de cada uno de los puntos equiespaciados Mj
%para su posterior resolucin
Mj=cmin+(cmax-cmin)/(np-1)*[0:1:np-1];
x=[];r=[];
for i=1:np
[x1,r1]=quadprog(2*Q,[],-c,-Mj(i),ones(1,n),m,zeros(1,n),[]);
%riesgo
r=[r;r1];
%cartera
x=[x;x1];

Captulo 7. Aplicaciones de la Programacin No Lineal

273

end
%beneficio
b=(c*x);
%grfico con np puntos
plot(b,r,r.-,LineWidth,1,MarkerSize,5)
xlabel(Beneficio esperado);ylabel(Riesgo);
title(Beneficio esperado vs Riesgo)
Fin funcin cartera
Resolucin de la ilustracin del problema de inversin en diferentes
empresas del IBEX 35. Para ello, obtenemos los datos referentes a cada una
de las empresas de la pgina www.bolsamadrid.es (vase la figura 7.14).

Figura 7.14: Pgina web de la bolsa de Madrid.

Seguidamente, de nuestras variables seleccionamos la informacin histrica


en el rango que nos interesa. En nuestro caso, hemos considerado datos del
02/01/09 al 16/04/09. En la pgina web se nos da la opcin de mostrar dichos

274

Optimizacin matemtica aplicada

datos histricos en pantalla en formato html o guardar esta informacin como


un fichero .dat; seleccionamos esta ltima (vase la figura 7.15).

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 (vase
el apndice A, para una descripcin 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 accin de la empresa
m en el instante (da) l, donde se ha asignado l = 1 al da 02@01@09 e l = 73 al
da 16@04@09=
Ahora, desde MATLAB abrimos la base de datos creada File$Open, abrimos 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 histricos de las
variables de inters que denotamos por sant (Banco Santander), enag (Ena-

Captulo 7. Aplicaciones de la Programacin No Lineal

275

gas), ende (Endesa), ibe (Iberia), indi (Inditex), mapf (Mapfre), rep (Repsol), sacy (Sacyr Valle), t5 (Telecinco) y telf (Telefnica), e introducimos los
parmetros de entrada en la funcin cartera. Recordemos que p = 20000 (cantidad total a invertir) y hemos elegido qs =10 (esto es, asignaremos 10 valores
del parmetro P que figura en el problema (7.15)).
As pues, ejecutamos la funcin 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 operacin, en pantalla se nos muestra el intervalo, Int= [0> 53.7] >
en el que se tomarn los 10 valores del parmetro P de los beneficios esperados
b de varianzas-covarianzas se encuentra en la figura
equiespaciados. La matriz T

7.16 y el vector b
f de beneficios unitarios esperados en la figura 7.17.

b del problema de la cartera (7.15).


Figura 7.16: Matriz T

276

Optimizacin matemtica aplicada

Figura 7.17: Vector b


f del problema de la cartera (7.15).

A continuacin, se muestra una tabla con los resultados obtenidos de esta


operacin, es decir, las 10 carteras ptimas que hemos pedido junto con beneficio
y el riesgo asociado a cada una.
Cartera ptima (en euros)

Beneficio esperado

Riesgo

(en euros)

(en euros2 )

(0,0,0,0,5048.75,0,0,2665.29,0,12285.96)

112546.64

(0,0,0,0,5338.90,0,0,4303.93,0,10357.17)

5.96

130701.47

(0,0,0,0,5629.04,0,0,5942.58,0,8428.38)

11.93

153281.15

(0,0,0,0,5919.19,0,0,7581.23,0,6499.38)

17.90

180285.65

(0,0,0,0,6209.33,0,0,9219.87,0,4570.8)

23.87

211714.98

(0,0,0,0,6499.47,0,0,10858.52,0,2642.01)

29.84

247569.14

(0,0,0,0,6789.62,0,0,12497.17,0,713.22)

35.80

287848.14

Captulo 7. Aplicaciones de la Programacin No Lineal


Cartera ptima (en euros)

277

Beneficio esperado

Riesgo

(en euros)

(en euros2 )

(0,0,0,0,524.34,0,0,14755.66,0,0)

41.77

333931.15

(0,0,0,0,2622.17,0,0,17377.83,0,0)

47.74

390909.04

0,0,0,0,0,0,0,20000,0,0)

53.71

459256.59

Puesto que el problema planteado no tiene solucin nica, en ltima instancia, quien ha de elegir una cartera de inversin es el propio inversor. Nuestra
labor, entonces, ha consistido precisamente en proporcionar el listado mencionado de 10 soluciones razonables (ptimas en algn sentido) y explicar con claridad
la diferencia que hay entre ellas. Como cabe esperar, a medida que mejora un
objetivo (a medida que aumenta el beneficio), empeora el otro (aumenta tambin
el riesgo), lo que puede apreciarse en la figura 7.18.

Figura 7.18: Grfico del beneficio frente al riesgo del ejercicio de la cartera.

278

Optimizacin matemtica aplicada

7.7.

Dos modelos sencillos de diseo industrial

7.7.1.

Diseo de un contenedor para transportar arena

El coste de transportar arena de un lugar a otro en un contenedor de dimensiones {> |> } es de 200 euros por cada viaje completo. Suponemos que el precio
del contenedor depende del material empleado en su elaboracin atendiendo a
las siguientes observaciones: suponemos que el precio del material de las paredes
superior e inferior (ambas de dimensiones {|) y de los laterales del contenedor
(ambos de dimensiones | }) son el triple y el doble, respectivamente, de las

paredes anterior y posterior (de dimensiones { }). El precio por m2 de estas

ltimas paredes asciende a 300 euros.

Se desea determinar las dimensiones ptimas del contenedor en el sentido de


minimizar el coste que supone el transporte de 50 m3 de arena, sabiendo que
por cuestiones operativas el volumen del contenedor ha de estar entre 2.5 m3 y
5 m3 > y todas las dimensiones ({> |> }) han de ser mayores o iguales que 0.5 m=
Ntese que el coste total es la suma del coste del contenedor, FF y del coste
del total de portes necesarios, FS . El coste del contenedor asciende a:
FF = 300(2{}) + 600(2|}) + 900(2{|) = 600({} + 2|} + 3{|)>
y el de los portes (aproximamos el nmero entero de portes por
FS = 200

50
{|} ):

50
=
{|}

Como restricciones, el enunciado establece que:


2.5  {|}  5> {  0.5> |  0.5> }  0.5=
As pues, el problema de optimizacin que hemos de resolver es el siguiente:
(S ) P lq 600({} + 2|} + 3{|) +
v=d

2.5  {|}  5>

10000
{|}

(7.16)

{> |> }  0.5=


Resolucin con MATLAB. Las figuras 7.19 y 7.20 muestran las definiciones de la funcin objetivo y de las restricciones no lineales del problema (7.16)

Captulo 7. Aplicaciones de la Programacin No Lineal

279

Figura 7.19: Funcin objetivo del problema (7.16).

Figura 7.20: Restricciones no lineales del problema (7.16).

en los correspondientes M-archivos denominados conten y restvol, respectivamente.


Seguidamente, ejecutamos la funcin fmincon (vase la seccin 5.2) empleando diferentes semillas:
Con la semilla [1 2 2]:

AA [x,f,e,o]=fmincon(conten,[1 2 2],[],[],[],[],
[0.5 0.5 0.5],[],restvol)
En este caso se obtiene
x=[1.4938
e=4,

0.7469

2.2407], f = 1.0025e+004,

o.firstorderopt: 7.2059e-005.

280

Optimizacin matemtica aplicada


Con la semilla [2 1 2]:

AA [x,f,e,o]=fmincon(conten,[2 1 2],[],[],[],[],[0.5 0.5 0.5],


[],restvol)
Se obtiene:
x=[1.4938 0.7469
e=5,

2.2407], f = 1.0025e+004,

o.firstorderopt:1.1307e-005.

Con la semilla [1 1.5 2]:

AA [x,f,e,o]=fmincon(conten,[1 1.5 2],[],[],[],[],[0.5 0.5


0.5],[],restvol)
Se obtiene:
x=[1.4938
e=5,

0.7469

2.2407], f = 1.0025e+004,

o.firstorderopt: 7.8234e-005

En todos los casos se obtiene el mismo punto x, con el mismo valor de


la funcin objetivo. Adems, e (=exitflag) toma valores positivos, lo que se
corresponde con la presencia de reglas de parada satisfactorias. En todos los
casos o.firstorderopt toma valores del orden de 1035 > lo que significa que se
producen buenas aproximaciones de las condiciones de KKT. Por ejemplo, en el
ltimo caso, o.firstorderopt: 7.8234e-005 significa que:

l ujl ({)  7.8234 1035 ,


ui ({) +

l=1

"

|l jl ({)|  7.8234 1035 , para todo l>

donde aqu i representa la funcin objetivo del problema y jl la funcin que


determina la l-sima restriccin de desigualdad (jl ({)  0)=

Captulo 7. Aplicaciones de la Programacin No Lineal

281

Una cuestin de anlisis de sensibilidad del modelo. Cmo repercutira en el coste mnimo de transporte la relajacin de las restricciones acerca
del volumen del contenedor? Esto es, qu ocurrira si se permitiera un ligero
aumento del miembro derecho de {|}  5 y una ligera disminucin del miembro
derecho de {|}  2.5=
Para responder a esta cuestin, observamos los valores correspondientes de
los multiplicadores de KKT, que se encuentran en el quinto de los argumentos
de salida. As pues, hemos de ejecutar fmincon con la siguiente sintaxis (de
nuevo, vase la seccin 5.2 para detalles).

AA [x,f,e,o,l]=fmincon(conten,[1 1.5 2],[],[],[],[],[0.5 0.5


0.5],[],restvol)
Como salida obtenemos:
l =
lower: [3x1 double]
upper: [3x1 double]
eqlin: [0x1 double]
eqnonlin: [0x1 double]
ineqlin: [0x1 double]
ineqnonlin: [2x1 double]
Seguidamente escribimos:
AA l.ineqnonlin
Y obtenemos:
ans=
0
6.6391
Atendiendo a la posicin en la que hemos introducidos las restricciones (vase
la figura 7.20), el multiplicador de KKT asociado a la restriccin {|}  5 es

282

Optimizacin matemtica aplicada

nulo, por lo que un ligero aumento del miembro derecho, no provocara cambio
en el valor ptimo (coste) del problema; por su parte, el multiplicador asociado
a {|}  2.5 es 6.6391 por lo que, en trminos informales, si relajamos
ligeramente esta restriccin quedando {|}  2.5  % para % suficientemente
pequeo, el objetivo mejorara (disminuira) en 6.6391%=

7.7.2.

Construccin de una tubera

Se desea construir una tubera para la canalizacin del cableado de determinado recinto. La tubera se construir uniendo tubos cilndricos (vase la figura
7.21), todos del mismo tamao. Se desea fabricar los tubos de manera que tengan el menor peso posible, sabiendo que el peso de un cm3 de tubo es de 0.45
gramos. En cuanto al tamao del tubo, existen algunas restricciones: la longitud,
o> ha de estar comprendida entre 10 m y 30 m> y el grosor del tubo (u2  u1 ) ha
de estar comprendido entre 0.5 cm y 1.5 cm. Adems, el dimetro exterior debe
estar entre 5 cm y 17 cm y el volumen interior del tubo no debe ser inferior a
0.022 m3 =

l
r
r

Figura 7.21: Ilustracin de la forma de un tubo.

Con todo, el planteamiento del problema sera


(S ) P lq
v=d

0.45o u22  u12

1000  o  3000>
0.5  u2  u1  1.5>
5  2u2  17>
ou12  22000>
u1 > u2 > o  0=

(7.17)

Captulo 7. Aplicaciones de la Programacin No Lineal

283

Figura 7.22: Restriccin no lineal del problema 7.17.

Figura 7.23: Resolucin del problema 7.17.

Resolucin con MATLAB. Se trata de un problema de PNL con restricciones, una de ellas no lineal que se define en el fichero volint.m (vase la
figura 7.22). La funcin objetivo, las restricciones lineales y las cotas (donde se
han evitado redundancias; por ejemplo, se ha introducido la cota o  1000 y
no o  0 que sera redundante) se han introducido directamente en la ventana
de comandos de MATLAB como se muestra en la figura 7.23. La asignacin de
variables es
x(1): = u1 > x(2): = u2 > x(3): = o=
Se ha tomado como semilla el punto [1,1,1]=
Como salidas obtenemos:
x=[2.6 3.1 1000], f=4094.5, e=1,0.firstorderopt: 9.7126e-011.
Aceptamos x como solucin (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

Optimizacin matemtica aplicada

aproximadamente las condiciones de KKT. Formalmente, si denotramos por i


a la funcin objetivo y por jl ({)  0 a la l-sima restricciones, l = 1> ===> p> se
tiene que

l ujl ({)
ui ({) +

l=1

"

 9.7126 10311 >

|l jl ({)|  9.7126 10311 , para todo l=

El peso del tubo sera f=4094.5 gramos.


Una cuestin de anlisis de sensibilidad: Cmo repercutira en el peso
ptimo el hecho de relajar ligeramente la restriccin acerca del volumen interior?
Para responder a esta cuestin, observamos el multiplicador de KKT asociado a dicha restriccin; esto es,
l.ineqnonlin=0.0850,
lo que podemos interpretar en trminos informales de la siguiente forma: si
cambiamos el miembro derecho de la restriccin ou12  22000 por 22000  %
cm3 > para % suficientemente pequeo, el peso ptimo mejorara (disminuira) en
0.0850% gramos.

7.8.

Un problema de engorde del ganado vacuno

Los modelos que presentamos en esta seccin han sido extrados del trabajo
de Allueva et l. [1] (vanse tambin las referencias que se dan dentro del trabajo). Como se adelant en la subseccin 7.3.5, el proceso de engorde del ganado
vacuno se divide en dos fases: fase de iniciacin (hasta los 300 kg) y fase de
acabado. El objetivo de esta aplicacin es el de minimizar el coste del engorde
de un ternero en cada una de las fases mencionadas, suponiendo que ste depende del pienso empleado en su alimentacin y del coste diario correspondiente
al mantenimiento del animal. Concretamente, en los modelos se consideran tres
variables:
P : cantidad (en kg) de una mezcla de maz en grano con ensilado empleada
en una racin de pienso.
V : cantidad (en kg) de soja empleada en la racin de pienso.

Captulo 7. Aplicaciones de la Programacin No Lineal

285

G : nmero de das necesarios para alcanzar el nivel mnimo de peso exigido.


Seguidamente, presentamos el modelo de optimizacin que se considera en
la fase de iniciacin (puede consultarse el mismo trabajo [1, pg. 125] para la
descripcin del modelo de la fase de acabado).
Fase de iniciacin. En esta fase, los costes de un kg de la mezcla de maz
y de soja empleada en la racin de pienso tienen un coste de 16.15 y 34.67
unidades monetarias (u.m.), respectivamente. Por su parte, el coste de mantenimiento diario del animal es de 94.86 u.m. Adems, se desea que la ganancia de
peso del ternero sea de al menos 55.74 kg. Dicha ganancia se modeliza segn la
siguiente funcin de produccin de Cobb-Douglas (vase de nuevo la subseccin
7.3.5 para detalles relacionados):
(P> V) 7$ 5.3572P 0.36315 V 0.12994 =
Por otro lado, una componente importante de la racin de pienso es cantidad de
protena aportada. El porcentaje de protena de la mezcla de maz en la fase de
iniciacin es del 8.43 % y el porcentaje de protena de la soja es de 51.5 %. Con
todo, en la fase de iniciacin se exige que el contenido de protena de la racin
de pienso sea de al menos 26.73 kg.
Finalmente, el nmero de das que deben transcurrir (G) ha de ser, al
menos, el necesario para que se alcance un cierto incremento de peso diario
que viene determinado por la funcin de ganancia de peso. Concretamente,
en esta fase, este comentario se formaliza a travs de la restriccin 1024G 
5.3572
0.36315 V 0.12994 =
1.69 P

El enunciado descrito en los prrafos anteriores se corresponde con el siguiente modelo de optimizacin ([1, pg. 125]):
(S ) P lq 16.15P + 34.67V + 94.86G
v=d

5.3572P 0.36315 V 0.12994  55.74>


0.843P + 0.515V  26.73>
5.3572
0.36315 V 0.12994
1.69 P

(7.18)

 1.024G>

P> V> G  0=
Resolucin con MATLAB (vase la seccin 5.2 para detalles). La figura 7.24 muestra la definicin de las restricciones no lineales en un M-archivo

286

Optimizacin matemtica aplicada

Figura 7.24: Restricciones no lineales del problema 7.18.

Figura 7.25: Sintaxis de la resolucin del problema 7.18.

(engorde.m) y, a continuacin, en la figura 7.25 se encuentra el resto de la


sintaxis empleada en la resolucin del problema 7.18. La asignacin de variables
es x(1):=P> x(2)=V y x(3)=G.
De entre las salidas que produce MATLAB destacamos las siguientes:
x=[185.3622 30.8956 32.2092],
esto es, P = 185.3622 kg> V = 30.8956 kg y G = 32.2092 das.
El valor de la funcin objetivo es:
f=7.1201e+003>
esto es, el coste asciende a 7120.1 unidades monetarias.
Adems,
e (=exitflag)=1,

Captulo 7. Aplicaciones de la Programacin No Lineal

287

lo que indica que se cumplen aproximadamente las condiciones de KKT. De


hecho, puesto que:
o.firstorderopt: 5.0558e-007,
se tiene que:


uj
({)
ui
({)
+

l
l

l=1

"

 5.0558 1037 >

|l jl ({)|  5.0558 1037 , para todo l>

donde i representa la funcin objetivo y {jl ({)  0> l = 1> ===> p} el sistema de
restricciones del problema (7.18).

Una cuestin de anlisis de sensibilidad. Cmo repercute en el coste


una ligera relajacin de la restriccin relativa al engorde mnimo exigido, esto
es, de la restriccin 5.3572P 0.36315 V 0.12994  55.74?
Atendiendo al valor del correspondiente multiplicador de KKT:
l.ineqnonlin=202.7053,
si se admitiera un engorde mnimo de 55.74  %> para % A 0 suficientemente
pequeo, el coste disminuira en 202.7053% unidades monetarias.

Apndice A

Creacin de una base de datos


con Excel
Este apndice recoge algunos detalles sobre la creacin de la base de datos
empleada en la resolucin del problema de la cartera ptima que se encuentra
en la subseccin 7.6.3. Una forma de proceder es la siguiente: desde Excel vamos
a Datos$desde texto, y abrimos uno de los ficheros que hemos guardado como
.dat (por ejemplo, SAN088635), seleccionamos importar.
Aparece, entonces, el asistente para importar texto. Realizamos tres pasos:
Paso 1. Seleccionamos las opciones Delimitados, Comenzar a importar en la
fila 4 y Origen del archivo Windows (ANSI), siguiente.

289

290

Optimizacin matemtica aplicada

Paso 2. Seleccionamos Tabulacin y Punto y coma, y pulsamos siguiente.

Apndice A. Creacin de una base de datos con Excel

291

Paso 3. Seleccionamos de Formato de los datos en columnas General, finalizar.

Y nos aparece en pantalla la siguiente ventana, le damos a aceptar.

292

Optimizacin matemtica aplicada


Obtenemos el siguiente resultado de esta operacin.

La ltima columna es la de inters, procedemos de igual forma en todas las


variables, por comodidad las pondremos cada una en una hoja del libro de Excel.
Seguidamente, abrimos un libro nuevo, aadimos en orden alfabtico la ltima
columna de cada variable, que es la correspondiente a los valores medios (pues
en esta ilustracin hemos trabajado con los valores medios diarios de las acciones
de las diferentes compaas). De este modo llegamos a la siguiente ventana:

Apndice A. Creacin de una base de datos con Excel

293

Por ltimo, guardamos la base de datos; es importante que este libro contenga solo la hoja de la base de datos, para evitar problemas de lectura (a la
hora de importar) desde el MATLAB.

Bibliografa
[1] Allueva, A., Snchez, M., Prez, A., La programacin geomtrica en la
economa de las producciones ganaderas, Trabajos de Investigacin Operativa, vol. 6, n.o 1, pp.117-130, 1991.
[2] Barbolla, R., Cerd, E., Sanz, P., Optimizacin matemtica: teora, ejemplos y contraejemplos, Espasa-Calpe, Madrid, 1991.
[3] Barbolla, R., Cerd, E., Sanz, P., Optimizacin: cuestiones, ejercicios y
aplicaciones a la economa, Pearson Educacin, Madrid, 2000.
[4] Bazaraa, M.S., Sherali, H.D., Shetty, C.M., Nonlinear Programming: Theory and Algorithms, John Wiley & Sons, NY, 1993.
[5] Bertsekas, D.P., Nonlinear programming, Belmont, Mass. Athena Scientific,
1995.
[6] Cobb, C.W., Douglas, P.H., A Theory of Production, American Economic
Review 18 (supplement): 139-165, 1928.
[7] Daz, A., Novo, V., Pern, J., Optimizacin. Casos Prcticos, Universidad
Nacional de Educacin a Distancia, Madrid, 2000.
[8] Farkas, GY., Theorie der einfachen Ungleichungen, J. Reine Angew. Math.,
124, pp.1-27, 1901.
[9] Fletcher, R., Practical Methods of Optimization, John Wiley & Sons, New
York, 1987 / 2nd. Edition.
[10] Frank, M., Wolfe, P., An algorithm for quadratic programming, Naval Research Logistics Quaterly, vol. 3, pp. 95-110, 1956.
[11] Goberna, M.A., Lpez, M.A., Linear Semi-Infinite Optimization, John Wiley and Sons, Chichester (UK), 1998.
[12] Goberna, M.A., Jornet, V., Puente, R., Optimizacin Lineal. Teora, mtodos y modelos. McGraw-Hill / Interamericama de Espaa, Madrid, 2004.
295

296

Optimizacin matemtica aplicada

[13] Hillier, F., Lieberman, G., Introduction to Operations Research, McgrawHill, 2005.
[14] Kelley, J.L., General Topology, D. van Norstrand Company Ind., New York,
1955.
[15] Kuhn, H. W., Tucker, A. W., Nonlinear programming, Proc. 2nd Berkeley
Symposium on Mathematical Statistics and Probability, J. Neyman (Ed.),
University of California Press, Berkeley, Calif., 1951.
[16] Luenberger, D.G., Linear and nonlinear programming, Mass. AddisonWesley, 1984.
[17] Novo, V., Teora de la optimizacin, UNED, Madrid, 1999.
[18] Pelegrn, B., Cnovas, L., An improvement and an extension of the Elziga
& Hearns algorithm to the 1-center problem in Uq with o2e -norms, Top,
vol. 4, n.o 2, pp. 269-284, 1996.
[19] Perez, C., MATLAB y sus Aplicaciones en las Ciencias y la Ingeniera,
Prentice Hall, 2002.
[20] Peterson, D. W., A review of constraint qualifications in finite-dimensional
spaces, SIAM Review, vol. 15 n.o 3, 1973.
[21] Prawda, J., Mtodos y modelos de Investigacin de Operaciones (vol. I),
Limusa, Mxico, 1989.
[22] Prkopa A., On the development of optimization theory, American Mathematical Monthly, 87, pp.527-542, 1980.
[23] Rockafellar, R.T., Convex Analysis, Princeton University Press, NJ, 1970.
[24] Sylvester, J.J., A question in the geometry of situation, Quart. J. Pure
Appl. Math., 1, p. 79, 1857.
[25] Surez, A.S., Decisiones ptimas de Inversin y Financiacin en la Empresa, Madrid: Ediciones pirmide, 1998.
[26] Taha, H. A., Investigacin de Operaciones, Alfaomega, Mxico, 1991 (2.d
ed.).
[27] Venkataraman, P., Applied optimization with MATLAB programming,
John Wiley & Sons, 2009.
[28] Winston, W.L., Investigacin de Operaciones: Aplicaciones y Algoritmos,
Mxico: Thompson, 2005 (4.d ed.).

Smbolos y abreviaturas
E : bola unidad abierta para la norma kk
bd([) : frontera del conjunto [

f : vector de coeficientes de la funcin objetivo del problema (S ) de PL


fo([) : clausura (o adherencia) del conjunto [
conv([) : envoltura convexa del conjunto B 6= [  Rn

CQ: (del ingls, constraint qualification) cualificacin de restricciones


g : distancia en Rn , n 5 N
I : conjunto factible
G : conjunto de ptimos globales
ui ({) : gradiente de i en {

Ki ({) : matriz hessiana de i en {


inf [ : nfimo del conjunto [  R (inf B := +4)
int([) : interior del conjunto [
L : conjunto de ptimos locales

LCQ: (del ingls, linear constraint qualification) cualificacin de restricciones


de linealidad
LICQ: (del ingls, linear independence constraint qualification) cualificacin
de restricciones de independencia lineal
N : conjunto de puntos donde no se cumple LCQ, ni LICQ, ni SCQ
N : conjunto de los nmeros naturales {1,2,...}
kk : norma arbitraria en Rn > n 5 N

kks : s-norma en Rn > n 5 N, s 5 [1> +4] (s = +4 norma de Chebyshev)

PC, PL, PNL : programacin cuadrtica, programacin lineal, programacin

no lineal
297

298

Optimizacin matemtica aplicada


PNNW : conjunto de puntos de Karush-Kuhn-Tucker
R (= ]4> +4[) : conjunto de los nmeros reales

SCQ : (del ingls, Slater constraint qualification) cualficacin de restricciones


de Slater
sup [ : supremo del conjunto [  R (sup B := 4)
y : valor ptimo
Z : conjunto de los nmeros enteros

ndice alfabtico
abierto, 17

funcin cncava, 32

acotado, 18

funcin convexa, 27
funcin objetivo , 7

bola, 17

gradiente, 19

cerrado, 17

hiperplano, 24

clausura, 18
combinacin convexa, 26

imagen, 36

compacto, 18

interior, 18

condiciones de complementariedad,
61

matriz hessiana, 19

condiciones de KKT, 8, 61

multiplicadores de KKT, 69

condiciones de Lagrange, 57

norma, 15

conjunto convexo, 23
conjunto de ndices activos, 61

optimizacin, 8

conjunto de nivel, 31

optimizacin no lineal, 8

conjunto factible, 7, 58

ptimojlobal,36,88

cualificacin de restricciones (CQ),

ptimooofal, 36,88

8, 64
poliedro, 26
distancia, 16

problema acotado, 36, 59


problema consistente, 59

entorno, 17

problema de PNL con restricciones,

envoltura convexa, 26

58

espacio vectorial, 15

problema de PNL sin restricciones,


35

forma cuadrtica, 21
frontera, 18

problema lineal, 173

funcin afn, 30

problema resoluble, 36, 59


299

300
problemas equivalentes, 37, 60
programacin, 8
programacin convexa, 80
programacin cuadrtica, 83
programacin lineal, 7
programacin matemtica, 7
programacin no lineal, 7
punto crtico, 41
punto de KKT, 61
punto de Slater, 65
regresin lineal, 183
restricciones, 7
restricciones dbilmente activas, 70
restricciones fuertemente activas, 70
semiespacio abierto, 24
semiespacio cerrado, 24
supremo, 300
valor ptimo, 36, 58
variables de decisin, 7

Optimizacin matemtica aplicada

También podría gustarte