Académique Documents
Professionnel Documents
Culture Documents
Contenido
Captulo 1.
Introduccin
1.
2.
3.
3.1.
3.2.
4.
10
11
11
12
13
Captulo 2.
1.
La programacin lineal
15
Formulacin de problemas
15
1.1.
16
1.2.
17
1.3.
19
1.4.
El problema de la dieta
19
1.5.
20
1.6.
21
1.6.1.
El paquete LPSOLVE
21
1.6.2.
El paquete LINGO
22
1.7.
23
1.8.
24
1.9.
25
El paquete MAPLE
26
1.10.
26
1.11.
27
1.12.
32
1.13.
33
1.14.
34
2.
37
2.1.
38
2.2.
38
2.3.
39
2.4.
Ejemplos de conversin
39
2.5.
Soluciones bsicas
40
3.
Ejercicios
Captulo 3.
1.
1.1.
2.
41
El mtodo SIMPLEX
47
Introduccin
47
Ejemplo ilustrativo
49
51
2.1.
53
2.2.
Ejemplo
54
2.3.
El significado de zk ck
55
2.4.
56
2.5.
56
3.
El problema dual
57
3.1.
57
3.2.
59
3.3.
60
3.4.
60
3.5.
61
3.6.
61
3.7.
63
4.
Anlisis de sensibilidad
64
4.1.
64
4.2.
65
4.3.
66
5.
67
5.1.
67
5.2.
67
5.3.
Actualizacin de la base
67
5.4.
Eficiencia en el almacenamiento
68
OPTIMIZACION
Pg. 4 de 131
6.
Ejercicios
Captulo 4.
1.
68
71
El problema de transporte
71
1.1.
Ejemplo de Formulacin
72
1.2.
Formulacin General
73
1.3.
El problema no balanceado
74
1.4.
75
1.4.1.
La solucin inicial
75
1.4.2.
77
1.4.3.
Mtodo de Vogel.
78
1.4.4.
79
1.5.
79
1.6.
80
2.
El problema de asignacin
81
2.1.
El algoritmo hngaro
81
2.2.
82
2.2.1.
82
2.2.2.
Problemas de maximizacin.
82
2.2.3.
2.3.
Captulo 5.
82
82
La programacin no lineal
85
1.
Formulacin de problemas
85
2.
89
2.1.
Casos Especiales
91
2.2.
Ejemplo
91
2.3.
Ejemplo
93
3.
96
3.1.
Ejemplo
97
3.2.
Ejemplo
98
Ejercicios
99
4.
Captulo 6.
1.
Programacin cuadrtica
105
105
1.1.
105
1.2.
106
1.3.
106
1.4.
107
OPTIMIZACION
Pg. 5 de 131
1.5.
La solucin ptima
108
1.6.
Ejemplo
108
Ejercicios
109
2.
Captulo A.
El programa LINGO
111
1.
111
2.
115
3.
119
4.
120
5.
122
6.
124
7.
125
8.
127
OPTIMIZACION
Pg. 6 de 131
Captulo
Introduccin
1.
Existen varias definiciones diferentes de lo que es la Investigacin Operativa (IO). Por ejemplo:
Un mtodo cientfico para dotar a los departamentos ejecutivos de una base cuantitativa
para las decisiones que tengan que ver con las operaciones bajo su control (Methods of
Operations Research, McCord y Kimball, 1951 (2007)).
El uso de la lgica y de la matemtica de forma que no interfieran con el sentido comn (Operations research for immediate application: a quick & dirty manual, Woolsey
y Swanson, 1980).
La ciencia que estudia el modelado de sistemas probabilsticos y determinsticos que
se originan en la vida real desde un punto de vista de toma de decisiones ptimas
(Introduction To Operations Research, Hillier and Lieberman, 1990).
El estudio de cmo formular modelos matemticos para problemas complejos de administracin e ingeniera y cmo analizarlos para tener una visin de las posibles soluciones (Optimization in Operations Research, Rardin, 1998).
Quizs la definicin de intencionalidad ms general pero a la vez ms completa en cuanto a lo
descriptiva es la que aparece en el texto Applied Management Science: Modeling, Spreadsheet
Analysis, and Communication for Decision Making (Lawrence y Pasternack, 1998 (2002)):
Un enfoque cientfico para la toma de decisiones ejecutivas, que consiste en:
1. El arte de modelar situaciones complejas.
2. La ciencia de desarrollar tcnicas de solucin para resolver dichos modelos y
3. La capacidad de comunicar efectivamente los resultados.
A la que tal vez slo le faltara incluir el objetivo general de la IO: Estudiar la asignacin ptima
de recursos escasos a determinada actividad.
7
OPTIMIZACION
Pg. 8 de 131
Clasificacin segn el objetivo del problema. De acuerdo a este criterio, los proble-
OPTIMIZACION
Pg. 9 de 131
OPTIMIZACION
Pg. 10 de 131
Paso 1. Definicin del problema. Quizs la parte ms importante de todo el proceso sea
la definicin del problema. Una respuesta incorrecta a una pregunta correcta no suele tener
consecuencias fatales, ya que se pueden hacer revisiones y explorar otras alternativas: sin embargo, la respuesta correcta a una pregunta incorrecta puede ser desastrosa. Es importante que
el problema est claramente definido antes de invertir una gran cantidad de trabajo y energa
en resolverlo. A la hora de definir el problema, el analista debe enfrentarse a uno o ms de los
factores siguientes: datos incompletos, inconsistentes o difusos; diferencias de opinin; presupuestos o tiempos limitados; cuestiones polticas; el decisor no tiene una idea firme de qu
quiere realmente. Para tratar con estos problemas, un buen plan de trabajo es el siguiente:
1. Observar. El analista debe realizar un esfuerzo para contemplar el problema desde
diferentes puntos de vista, de modo que termine entendiendo el problema tan bien o
mejor que las personas directamente implicadas.
2. Ser consciente de las realidades polticas. Casi siempre hay conflictos entre los jefes
y los trabajadores, o entre varios jefes. Para el analista, esto significa que a menudo
recibir informacin distorsionada o incompleta de cada grupo.
3. Decidir qu se quiere realmente. El analista debe estar seguro de que la compaa tiene
claros sus objetivos antes de desarrollar y resolver un modelo.
4. Identificar las restricciones. Es importante saber qu tipo de limitaciones pueden afectar
la decisin final, para posteriormente incluirlas en el modelo.
5. Buscar informacin de modo continuo. A lo largo de todo el proceso, el analista no
debera perder el contacto con el decisor. Esto permite que ambos modifiquen de forma
continua sus observaciones iniciales y estn al da del desarrollo del proceso.
Paso 2. Modelado matemtico. El modelado matemtico es un procedimiento que reconoce y verbaliza un problema para posteriormente cuantificarlo transformando las expresiones
verbales en expresiones matemticas. El modelado matemtico es un arte, que mejora con la
prctica. El proceso del modelado matemtico consta de los siguientes cuatro pasos:
Prof. Victor Bernal
OPTIMIZACION
Pg. 11 de 131
OPTIMIZACION
Pg. 12 de 131
OPTIMIZACION
Pg. 13 de 131
OPTIMIZACION
Pg. 14 de 131
Captulo
La programacin lineal
Los problemas de programacin lineal forman parte de la llamada programacin matemtica
que trata problemas particulares a los que la ingeniera se enfrenta con relativa frecuencia.
Actualmente es posible resolver la mayora de ellos usando muchas de las herramientas disponibles, procedimientos o paquetes de software. De hecho, estos problemas se estudian en
detalle en los estudios de pregrado y postgrado. Sin embargo, se debe estar preparado para
resolver otros problemas muy frecuentes como:
1. Problemas de programacin lineal con muchas variables y/o restricciones.
2. Problemas de programacin no lineal.
3. Tcnicas de descomposicin para problemas a resolver con herramientas de programacin matemtica
4. Reglas para transformar otros problemas en problemas de programacin matemtica
En estas notas se exponen algunos mtodos que permiten resolver una amplia coleccin de
problemas prcticos interesantes.
El objetivo de estas notas no es el de tratar los mtodos estndar de anlisis, que estn ya
cubiertos en muchos otros libros. Al contrario, se trata de mostrar al lector la potencia de estos
mtodos para resolver problemas prcticos luego de introducir los principales conceptos y
herramientas. Son pocos los requisitos para el lector, un conocimiento previo de lgebra lineal,
clculo elemental y una cierta familiaridad con matrices son muy convenientes.
1.
Formulacin de problemas
OPTIMIZACION
Pg. 16 de 131
Esto implica que la direccin de envo del producto est prefijada desde los distintos
orgenes hasta los destinos. No obstante, otras hiptesis podrn tenerse en cuenta. Por
ejemplo, podra no limitarse el signo de las variables xij si no se quiere predeterminar
cules son los puntos de partida y llegada.
3. Restricciones. Las restricciones de este problema son:
n
X
xij = ui ; i = 1, . . . , m,
m
X
xij = vj ; j = 1, . . . , n
i=1
j=1
El primer conjunto de condiciones indica que la cantidad del producto que parte del
origen i debe coincidir con la suma de las cantidades que parten de ese origen hasta
los distintos destinos j = 1, . . . , n. El segundo conjunto de condiciones asegura que el
total recibido en el destino j debe corresponder a la suma de todas las cantidades que
llegan a ese destino y parten de los distintos orgenes i = 1, . . . , m.
4. Objetivo que debe optimizarse. En el problema del transporte normalmente interesa
minimizar los costos de envo (suma de los costos de envo por unidad de producto
multiplicado por las cantidades enviadas); es decir, se debe minimizar
z=
m X
n
X
cij xij
i=1 j=1
Una vez que se han identificado estos cuatro elementos, se est preparado para resolver
el problema.
1.2.
u1 = 2, u2 = 3, u3 = 4; v1 = 5, v2 = 2, v3 = 2
Prof. Victor Bernal
OPTIMIZACION
Pg. 17 de 131
u2
u1
u3
x21
x11
x31
x23
x13
x22
x12
x33
x32
v1
v3
v2
0
Cx =
1 1 0 0 0 0 0
0 0 1 1 1 0 0
0 0 0 0 0 1 1
0 0 1 0 0 1 0
1 0 0 1 0 0 1
0 1 0 0 1 0 0
x11
x12
0
2
x13
3
x21
1
4
x22 =
0
5
x23
0
x31 2
1
2
x32
x33
xij 0; i, j = 1, 2, 3
Las tres primeras ecuaciones establecen la conservacin del producto en los tres orgenes y
las tres ltimas igualdades, la conservacin del producto en los tres destinos. Si se concretan
valores particulares
1 2 3
c=
2 1 2
3 2 1
OPTIMIZACION
Pg. 18 de 131
1.3.
14
x11
x12
x13
x21
x22
x23
x31
x32
x33
Es decir, el costo mnimo para cumplir los requisitos es 14. Es necesario anotar que este problema tiene otras soluciones con el mismo costo que no son advertidas al usuario.
1.4.
des de distintos nutrientes que deben ingerirse para asegurar ciertas condiciones de nutricin
Prof. Victor Bernal
OPTIMIZACION
Pg. 19 de 131
y minimizar el costo de compra de los nutrientes. De modo ms preciso, suponga que se conocen los contenidos nutritivos de ciertos alimentos, sus precios y la cantidad mnima diaria de
nutrientes aconsejada.
El problema consiste en determinar la cantidad de cada alimento que debe comprarse de suerte que se satisfagan los mnimos aconsejados y se alcance un precio total mnimo. Los cuatro
elementos que intervienen en el problema de la dieta son:
1. Datos:
m: el nmero de nutrientes.
n: el nmero de alimentos.
aij : la cantidad del nutriente i en una unidad del alimento j.
bi : la cantidad mnima del nutriente i aconsejada.
cj : el precio de una unidad del alimento j.
2. Variables. Las variables relevantes en este problema son:
xj : la cantidad del alimento j que debe adquirirse.
3. Restricciones. Como la cantidad total de un nutriente dado i es la suma de las cantidades
de los nutrientes en todos los alimentos y las cantidades de alimentos deben ser no
negativas, se deben cumplir las siguientes restricciones:
n
X
aij xj bi ; i = 1, . . . , m
j=1
xj 0; j = 1, . . . , n
4. Funcin a minimizar. En el problema de la dieta se est interesado en minimizar el
precio de la dieta:
z=
n
X
cj xj
j=1
1.5.
los mnimos aconsejados para los nutrientes digeribles (DN), protenas digeribles (DP), calcio
(Ca), y fsforo (Ph) dados en la siguiente tabla:
Nutriente
Cantidad requerida
Maz A
Avena
Maz B
Salvado
Linaza
DN
74.2
78.6
70.1
80.1
67.2
77.0
DP
14.7
6.50
9.40
8.80
13.7
30.4
Ca
0.14
0.02
0.09
0.03
0.14
0.41
Ph
0.55
0.27
0.34
0.30
1.29
0.86
OPTIMIZACION
Pg. 20 de 131
78.6
6.50
0.02
0.27
x1
77.0
74.2
x2
30.4
14.7
x
3
0.41 0.14
x4
0.86
0.55
x5
con x1 , x2 , x3 , x4 , x5 0
Suponga que los precios unitarios de los alimentos son:
c1 = 1, c2 = 0.5, c3 = 2, c4 = 1.2, c5 = 3.
De este modo, se tiene el problema siguiente; minimizar
z = x1 + 0.5x2 + 2x3 + 1.2x4 + 3x5
sujeto a las restricciones antes enunciadas.
Usando alguno de los paquetes existentes para resolver dicho problema, como por ejemplo
LPSOLVE, se llega a la solucin con un costo mnimo de z = 0.793, en el punto (0, 1.530, 0, 0.023, 0).
Esto significa que slo deben comprarse avena y salvado.
1.6.
1.6.1.
6.50 x1 + 9.40 x2
0.02 x1 + 0.09 x2
0.27 x1 + 0.34 x2
OPTIMIZACION
Pg. 21 de 131
1.6.2.
Variable
Resultado
0.792769148366363
x1
x2
1.53026245313337
x3
x4
0.0230316014997323
x5
;%
0.7927691
Variable
Value
Reduced Cost
X1
0.000000
0.6335565
X2
1.530262
0.000000
X3
0.000000
1.542769
X4
X5
Row
0.000000
Slack or Surplus
0.000000
1.525094
Dual Price
0.7927691
-1.000000
34.61912
0.000000
0.000000
4
5
0.2303160E-01
0.9480450E-03
0.000000
OPTIMIZACION
-0.3173540E-01
0.000000
-0.5931976%
Pg. 22 de 131
La interpretacin de los valores identificados como Reduced Cost, Slack or Surplus y Dual
Price se dar posteriormente.
1.7.
cuya demanda vara en el tiempo, de acuerdo con el grfico que se muestra a continuacin. El
productor debe siempre atender la demanda mensual.
600
b
b
500
b
b
b
Demanda
400
300
b
b
200
b
b
b
100
0
0
6
7
Tiempo
10
11
12
OPTIMIZACION
Pg. 23 de 131
Z=
n
X
(at dt bt xt ct st )
t=1
n
X
ct st
t=1
1.8.
OPTIMIZACION
Pg. 24 de 131
Tiempo
Demanda
1 0
0
0
1 1 0
0
Cx =
0
1 1 0
0
0
1 1
1 0 0
0 1 0
0 0 1
0 0 0
s1
s
2
0 s3
0
3
0
s
4
0 x1 6
1
1
x2
x3
x4
st , xt 0; t = 1, 2, 3, 4
donde el 0 en la matriz de la derecha procede de restar la demanda para t = 1 del almacenamiento inicial. Si se maximiza el beneficio despus de descontar los costos debidos a las
variaciones en la produccin y los inventarios y se toma at = 3, bt = 1, ct = 1, nuestro problema de optimizacin se traduce en maximizar
Z = 36 x1 x2 x3 x4 s1 s2 s3 s4
sujeto a las restricciones ya enunciadas. Mediante LPSOLVE puede resolverse este problema y
obtener el valor mximo Z = 26 para x = (s1 , s2 , s3 , s4 , x1 , x2 , x3 , x4 ) = (0, 0, 0, 0, 0, 3, 6, 1) la
solucin implica que no hay almacenamiento.
La formulacin en LPSOLVE es tan sencilla como,
/* Funcion objetivo */
min: -36 + x1 + x2 + x3 + x4 + s1 + s2 + s3 + s4 ;
/* Restricciones */
x1 - s1
= 0 ;
s1 - s2 + x2 = 3 ;
s2 - s3 + x3 = 6 ;
s3 - s4 + x4 = 1 ;
1.9.
OPTIMIZACION
Pg. 25 de 131
En esta ventana se introducen los datos y al oprimir el botn Resolver el resultado es:
[26., [s1 = 0., x1 = 4.44089209850062616 1016 , x3 = 6., x4 = 1., s4 = 0., s3 = 0., s2 = 0., x2 = 3.00000000000000044]]
El problema de flujo en una red. Considrese una red de transporte (un sistema
OPTIMIZACION
Pg. 26 de 131
consume el producto que est fluyendo por la red. Si se define xij como el flujo que va desde
el nodo i al nodo j (positivo en la direccin i j, y negativo en la direccin contraria). Los
cuatro elementos presentes en los problemas de flujo son,
1. Datos.
G: el grafo G = (N , A) que describe la red de transporte, donde N es el conjunto de
nudos, y A es el conjunto de conexiones, dichas conexiones pueden ser, o no, de una
nica direccin.
n: el nmero de nodos en la red
fi : el flujo entrante (positivo) o saliente (negativo) en el nodo i
mij : la capacidad mxima de flujo en la conexin entre el nodo i y el j
cij : el costo de enviar una unidad del bien del nodo i al nodo j.
2. Variables. Las variables de decisin en este problema son:
xij : el flujo que va desde el nodo i al nodo j.
3. Restricciones. Imponiendo la condicin de conservacin del flujo en todos los nodos, y
las restricciones sobre la capacidad de las lneas o conexiones, se obtienen las siguientes
restricciones. Las referidas a la conservacin del flujo son
X
(xij xji ) = fi ; i = 1, . . . , n
j
Pn
i=1 fi
del siguiente diagrama, donde las flechas indican los valores positivos de las variables del flujo.
Prof. Victor Bernal
OPTIMIZACION
Pg. 27 de 131
x12
1
1
1
0
0
f1
x13
1 0
f2
0
1
0
x14 =
0 1 0
0
1
f
x24 3
0
0 1 1 1
f4
x34
f2
2
x12
x24
f1
x14
1
x13
f4
x34
3
f3
OPTIMIZACION
Pg. 28 de 131
/* Funcion objetivo */
min: x12+x13+x14+x24+x34;
/* Restricciones */
x12+x13+x14=7;
x24-x12=-4;
x34-x13=-1;
-x14-x24-x34=-2;
/* Capacidades de los arcos */
x12<=4;
x13<=4;
x14<=4;
x23<=4;
x34<=4;
La solucin obtenida es,
Optimal solution
Column name
7 after
Value
5 iter.
Slack
Min
Max
-------------------------------------------------------------------------x12
-1e+030
1e+030
x13
-1e+030
1e+030
x14
-1e+030
1e+030
x24
-2
x34
-1
x23
-1e+030
1e+030
OPTIMIZACION
Pg. 29 de 131
!FINAL DE PARAMETROS ;
!FUNCION OBJETIVO ;
MIN=@SUM(ARCO:COSTO*FLUJO);
!RESTRICCIONES ;
@FOR(ARCO(I,J):FLUJO(I,J)<CAP(I,J));
@FOR(NODOS(I):@SUM(ARCO(I,J):FLUJO(I,J))-@SUM(ARCO(J,I):FLUJO(J,I))=NETO(I));
!VALORES DE LOS PARAMETROS ;
DATA:
COSTO=1,1,1,1,1;
NETO=7,-4,-1,-2;
CAP=4,4,4,4,4;
ENDDATA
END
Un problema ms complejo que el anterior est contenido en la grfica siguiente,
12
3,0,6
,8
1,
6
10
10
0,
6,
,6
8,0,6
4,0
7,3,8
5,1
,
,8
5,0
,8
2,2
,9
7,2
3,0
3,
0,
6
14
5,1,7
7
1,
5,
3,
2,
7
5,2,8
,6
,8
6,
8
3,0,6
4,1
4,0
4,0
8
2,
5,1,5
4,
10
,12
4,0,6
5
3,0,8
7
Los valores en color verde indican flujos entrantes y los marcados en rojo indican flujos salientes, se puede comprobar directamente que el problema esta balanceado ya que las suma de
flujos entrantes es igual a la suma de flujos salientes. A cada conexin, en la direccin correspondiente, se asignan los tres valores, en ese orden, de costo, flujo mnimo y capacidad.
El programa LINGO no requiere escribir explcitamente todas las restricciones y se puede utilizar una escritura similar a la algebraica, en este caso,
Prof. Victor Bernal
OPTIMIZACION
Pg. 30 de 131
388.0000
FLUJO( 1, 2)
7.000000
0.000000
FLUJO( 1, 4)
3.000000
0.000000
OPTIMIZACION
Pg. 31 de 131
1.12.
FLUJO( 2, 1)
2.000000
0.000000
FLUJO( 2, 3)
1.000000
0.000000
FLUJO( 2, 4)
1.000000
0.000000
FLUJO( 2, 7)
0.000000
6.000000
FLUJO( 3, 2)
5.000000
0.000000
FLUJO( 3, 5)
1.000000
0.000000
FLUJO( 3, 6)
3.000000
0.000000
FLUJO( 4, 1)
0.000000
6.000000
FLUJO( 4, 3)
6.000000
0.000000
FLUJO( 4, 5)
12.00000
0.000000
FLUJO( 5, 9)
6.000000
0.000000
FLUJO( 6, 3)
3.000000
0.000000
FLUJO( 6, 7)
0.000000
11.00000
FLUJO( 6, 8)
7.000000
0.000000
FLUJO( 6, 9)
4.000000
0.000000
FLUJO( 7, 2)
2.000000
0.000000
FLUJO( 7, 3)
1.000000
0.000000
FLUJO( 7, 6)
6.000000
0.000000
FLUJO( 7, 8)
5.000000
0.000000
FLUJO( 8, 7)
2.000000
0.000000
FLUJO( 9, 3)
1.000000
0.000000
FLUJO( 9, 5)
0.000000
10.00000
OPTIMIZACION
Pg. 32 de 131
r : porcentaje mnimo r del valor actual de toda la cartera que no debe superarse en
el ajuste.
s: porcentaje mnimo del valor total actual que no debe superarse por el valor futuro
total de la cartera, para hacer frente a la inflacin.
2. Variables xi : el cambio en el nmero de participaciones del valor burstil i.
3. Restricciones. Aunque no se ha indicado en el enunciado del problema, deben asegurarse ciertas condiciones que debe satisfacer una cartera bien equilibrada, como las
restricciones que siguen a continuacin.
El nmero de participaciones debe ser no negativo:
xi bi .
La cartera debe evitar depender en exceso de un valor cualquiera; esta condicin
puede establecerse exigiendo que el capital asociado a todo valor concreto, despus del
ajuste, represente al menos una cierta fraccin r del capital total actual de la cartera.
Esto es:
X
r vi (bi + xi ) vj (bj + xj ); para todo j
i
vi xi = 0
Para hacer frente a la inflacin, el capital total en el futuro debe ser al menos un cierto
porcentaje s mayor que el capital invertido actualmente:
X
X
wi (bi + xi ) (1 + s) vi bi
i
OPTIMIZACION
Pg. 33 de 131
anteriores se escriben
xA 75
xB 100
xC 35
0.25[20(75 + xA ) + 20(100 + xB ) + 100(35 + xC )] 20(75 + xA )
0.25[20(75 + xA ) + 20(100 + xB ) + 100(35 + xC )] 20(100 + xB )
0.25[20(75 + xA ) + 20(100 + xB ) + 100(35 + xC )] 100(35 + xC )
20xA + 20xB + 100xC = 0
18(75 + xA ) + 23(100 + xB ) + 102(35 + xC ) 1.03(7000)
Simplificando al efectuar las operaciones indicadas, las restricciones anteriores se transforman
en
xA 75
xB 100
xC 35
15xA 5xB 25xC 250
5xA + 15xB 25xC 250
5xA 5xB + 75xC 1750
20xA + 20xB + 100xC = 0
18xA + 23xB + 102xC 10
La funcin objetivo es entonces,
z = 0(20 + xA ) + 3(20 + xB ) + 5(100 + xC ) = 560 + 3xB + 5xC
La solucin que se obtiene utilizando cualquier software es Z = 697.5 dlares y xA = 12.5,
xB = 75, xC = 17.5.
1.14.
El problema de las ocho damas. Se conoce como problema de las ocho damas al
problema de colocar ocho damas en un tablero de ajedrez 8 8, de tal manera que ninguna
de ellas sea capaz de interceptar a otra, siguiendo las reglas normales del movimiento de las
piezas del ajedrez. El color de las damas es irrelevante y todas las piezas se consideran enemigos mutuos. La solucin requiere que no haya ms de una dama en la misma fila, columna o
diagonal. De la solucin que se obtiene se puede generalizar a un tablero n n con n damas.
Los elementos involucrados en el planteamiento se pueden referir a un sistema de coordenadas
sobre el tablero en el que el par (i, j) identifica a la posicin (i, j) de acuerdo con el sistema,
Prof. Victor Bernal
OPTIMIZACION
Pg. 34 de 131
0Z0Z0Z0Z
Z0Z0Z0Z0
6
0Z0Z0Z0Z
5
Z0Z0Z0Z0
4
0Z0Z0Z0Z
3
Z0Z0Z0Z0
2
0Z0Z0Z0Z
1
Z0Z0Z0Z0
8
7
1 i, j n
hn:h+in,h+jn
1 i, j n
hn:h+in,h<j
La solucin computacional se puede obtener mediante el sistema AMPL (A Mathematical programming Language). Los archivos de texto ochodamas.mod y ochodamas.run se procesan
mediante este sistema. Los resultados y la forma de los archivos se da a continuacin.
# ochodamas.mod
# Problema de las ocho damas.
#
param n >= 0, default 8;
#
# El tablero se considera 8x8
set N := 1..n;
Prof. Victor Bernal
OPTIMIZACION
Pg. 35 de 131
OPTIMIZACION
Pg. 36 de 131
De acuerdo con este resultado, una solucin para la posicin de las 8 damas en el tablero es,
QZ0Z0Z0Z
Z0Z0L0Z0
6
0Z0Z0Z0L
5
Z0Z0ZQZ0
4
0ZQZ0Z0Z
3
Z0Z0Z0L0
2
0L0Z0Z0Z
1
Z0ZQZ0Z0
8
7
2.
OPTIMIZACION
Pg. 37 de 131
2.1.
Definicin 1 (Forma general del problema). La forma general del problema de programacin lineal consiste en optimizar (maximizar o minimizar) la funcin,
z = f (x) =
n
X
cj xj
j=1
aij xj = bi , i = 1, . . . , p 1
j=1
n
X
aij xj bi , i = p, . . . , q 1
j=1
n
X
aij xj bi , i = q, . . . , m
j=1
OPTIMIZACION
Pg. 38 de 131
Definicin 4 (Forma estndar del problema). La forma estndar del problema de programacin lineal consiste en minimizar la funcin,
z = f (x) = c t x
sujeto a las restricciones
Ax = b
x0
donde c t x indica el producto escalar de los vectores c t y x, Ax es el producto de la matriz A y
el vector x y la desigualdad x 0 indica que todas las componentes de las soluciones factibles
deben ser nonegativas. De la formulacin tambin se puede decir que es posible transformar el
problema de tal manera que se tenga b 0.
2.3.
OPTIMIZACION
Pg. 39 de 131
tndar matricial donde se supondr, sin prdida de generalidad, que el rango de la matriz A de
dimensin m n es m (recurdese que m n), y que el sistema lineal Ax = b tiene solucin.
En cualquier otro caso, el problema lineal es equivalente a otro con menos restricciones, o no
tiene solucin factible, respectivamente.
Definicin 5 (Matriz bsica). Una submatriz no singular B de dimensin m m de A se
denomina matriz bsica o base. B tambin se denomina matriz bsica factible si y solo si B 1 b
0.
Cada matriz bsica tiene un vector asociado que se denomina solucin bsica. El procedimiento
para calcular esta solucin es el siguiente. Sea x B el vector de las variables asociadas a las
columnas de A necesarias para construir B. Las variables x B se denominan variables bsicas y
el resto se denominan variables no bsicas. Asignando el valor cero a las variables no bsicas
xB
(B N) = b, Bx B = b, x B = B 1 b
0
Prof. Victor Bernal
OPTIMIZACION
Pg. 40 de 131
a B. Si B es una matriz bsica factible, su solucin bsica se dice que es factible. El nmero de
soluciones bsicas factibles de un problema de programacin lineal acotado con un nmero
finito de restricciones es siempre finito, y cada una se corresponde con un punto extremo de la
regin de factibilidad. En concreto, el teorema siguiente establece la relacin entre soluciones
bsicas factibles (SBFs) y puntos extremos.
Teorema 1 (Caracterizacin de puntos extremos). Sea S = {x : Ax = b, x 0}, donde A
es una matrix m n de rango m, y b es un vector de dimensin m. Un punto x es punto extremo
de S si y slo si A puede descomponerse en (B, N) tal que
xB
B 1 b
x= =
xN
0
donde B es una matriz de dimensin m m invertible que satisface B 1 b 0.
Una demostracin de este teorema puede encontrarse en el texto de Bazaraa. El siguiente teorema muestra por qu las soluciones bsicas factibles son importantes.
Teorema 2 (Propiedad fundamental de la programacin lineal). Si un problema de programacin lineal tiene una solucin ptima, es adems una solucin bsica factible.
3.
Ejercicios
1. Pedro Prez fabrica cable elctrico de alta calidad usando dos tipos de aleaciones metlicas, A y B. La aleacin A contiene un 80 % de cobre y un 20 % de aluminio, mientras que
la B incluye un 68 % de cobre y un 32 % de aluminio. La aleacin A tiene un precio de 80
euros por tonelada, y la B, 60 euros por tonelada. Cules son las cantidades que Pedro
Prez debe usar de cada aleacin para producir una tonelada de cable que contenga a
lo mas un 25 % de aluminio y cuyo costo de produccin sea el menor posible?
2. Tres empleados deben realizar seis tareas distintas. El empleado i puede hacer aij
partes de la tarea j en una hora y se le paga cij por hora. El nmero total de horas de
trabajo para el empleado i es b1i y el nmero de partes que requiere la tarea j es b2j .
Se desea determinar el plan de trabajo que da lugar a un costo mnimo
C=
3 X
6
X
cij xij
i=1 j=1
OPTIMIZACION
Pg. 41 de 131
un tipo y 1000 de otro tipo. Por otro lado cuenta con 800 horas de mano de obra.
Las predicciones de venta as como los pedidos atrasados exigen la fabricacin de al
menos 40 mesas, 130 sillas, 30 pupitres y como mximo 10 bibliotecas. Cada mesa,
silla, pupitre y biblioteca necesita 5, 1, 9, y 12 tableros, respectivamente, del primer
tipo de panel y 2, 3, 4, y 1 tableros del segundo. Una mesa requiere 3 horas de trabajo;
una silla, 2; un pupitre, 5; y una biblioteca 10. La compaa obtiene un beneficio de 12
dlares en cada mesa, 5 dlares en cada silla, 15 dlares en un pupitre, y 10 dlares en
una biblioteca. Plantear el modelo de programacin lineal para maximizar los beneficios
totales. Modificar el problema si ahora deben fabricarse cuatro sillas por cada mesa.
4. Una empresa que produce un cierto producto P consta de dos plantas. Cada planta
produce 90 toneladas de P al mes, y el producto se distribuye en tres mercados distintos.
La tabla muestra los precios unitarios del envo de una tonelada de P desde cada planta a
cada mercado. La empresa desea enviar el mismo nmero de toneladas a cada mercado
y minimizar el costo total. Formular el problema como uno de programacin lineal.
Plantas
Mercado1
Mercado2
Mercado3
Planta1
Planta2
5. Un productor de electricidad tiene que planificar la produccin en cada hora para maximizar los beneficios vendiendo la energa en un horizonte temporal que abarca un
nmero de horas dado. El productor no genera energa antes de dicho periodo. Los
precios de la energa en cada hora pueden predecirse con garantas y se consideran
conocidos. La energa mnima que el productor puede generar en cada hora es cero
y el mximo es una cantidad fija. La diferencia de produccin en horas consecutivas
no puede exceder un determinado lmite. El costo de generacin de energa es lineal.
Formular este problema como uno de programacin lineal.
6. Suponga que hay m refineras y que la refinera i tiene capacidad para proporcionar
ai litros de gasolina. Hay n ciudades que requieren de tal combustible y la demanda
en la ciudad j es de bj litros. Si fij la fraccin de litro de combustible que se dedica
al transporte cuando 1 litro de gasolina va desde la refinera i a la ciudad j en un
transporte. Encontrar una forma factible de despachar el combustible de tal forma que
la cantidad consumida por los transportes sea la menor posible.
7. Dos pozos petroleros, A y B, producen, cada uno, 10000 barriles diarios que se quieren
vender en su totalidad. Dos compaas, C y D ofrecen comprar, de acuerdo con la tabla
siguiente:
Prof. Victor Bernal
OPTIMIZACION
Pg. 42 de 131
Oferente
Pozo
Mximo deseado
10000
$ 0.10
10000
$ 0.09
10000
$ 0.20
10000
$ 0.15
El bono es una cantidad que la compaa accede a pagar sobre el precio base mnimo
anunciado, por barril. Las regulaciones gubernamentales prohben vender ms de 15000
barriles diarios de estos dos pozos a un slo comprador. Se requiere determinar la
cantidad de crudo que se debe vender a cada una de las compaas C y D de cada uno
de los pozos, A y B de tal manera que la cantidad obtenida por los bonos sea mxima
sujeto a las restricciones dadas. Formular este problema como uno de programacin
lineal.
8. Se desea obtener la mezcla de petrleo a partir de crudos de distinta procedencia, cada
uno de los cuales tienen distintas caractersticas. En la tabla adjunta se detallan los
distintos crudos - cuatro en total - y sus caractersticas ms importantes: el tanto por
ciento de azufre, la densidad y el precio por Tm. medido en dlares.
Origen
% Azufre
Densidad
Precio($)
Kuwait
0.45
0.91
806
Arabia
0.40
0.95
714
Noruega
0.38
0.89
898
Venezuela
0.41
0.92
783
OPTIMIZACION
Pg. 43 de 131
Vitaminas
Alimentos
A B C D
1 0
10
2 1
14
1 2
12
1 0
18
1 2
20
0 2
16
Planta 1
4000
5130
6500
8000
75
Planta 2
3520
4600
6900
7900
125
Planta 3
9900
6820
3880
6800
100
Demanda
80
65
70
85
300
11. La compaa Petrovensa procesa petrleo para producir combustible para aviones y
aceite residual. Cuesta 40 u.m. (unidades monetarias) comprar 1000 barriles de petrleo, que luego de destilados producen 500 barriles de combustible para aviones y 500
barriles de aceite. Lo que se obtiene de la destilacin puede ser vendido directamente
o ser procesado nuevamente con un fraccionador cataltico. Si se vende sin el segundo
proceso, el combustible para aviones se vende a 60 u.m. por 1000 barriles y el aceite se
vende a 40 u.m. por 1000 barriles. Lleva una hora procesar 1000 barriles de combustible
para aviones en el fraccionador cataltico, y esos 1000 barriles se venden a 130 u.m. El
mismo proceso demora 45 minutos para 1000 barriles de aceite, y esos 1000 barriles
Prof. Victor Bernal
OPTIMIZACION
Pg. 44 de 131
se venden a 90 u.m. Cada da, se pueden comprar a lo sumo 20000 barriles de petrleo,
y se tienen disponibles ocho horas del fraccionador cataltico. Formular el problema de
programacin lineal que maximice los beneficios de Petrovensa.
12. Un pas est atravesando una aguda crisis econmica a raz del enorme incremento de la
deuda externa. Uno de los efectos ms visibles de la crisis es el carcter especulativo que
est adquiriendo el mercado de capitales; la influencia de diversos agentes: gobierno,
Fondo Monetario Internacional, Banca Nacional y Banca Extranjera, etc; hace que los
indicadores econmicos (inflacin, devaluacin, entre otros) experimenten constantes
modificaciones haciendo muy poco fiables las previsiones a mediano y a largo plazo.
En este contexto, los inversionistas se inclinan por una poltica de inversin a corto y
muy corto plazo como mecanismo de defensa ante la inestabilidad del mercado.
Uno de estos inversionistas est estudiando como invertir 100000000 de unidades
monetarias, producto de una herencia; un asesor financiero le proporciona el siguiente
cuadro en el que se recogen las posibles inversiones, su rendimiento y plazo, as como
dos ndices de calidad de la inversin, uno proporcionado por un organismo estatal y el
otro proveniente de una fuente extranjera. Para la obtencin de estos ndices de calidad
se tienen en cuenta conceptos tales como liquidez y riesgo, de difcil cuantificacin; el
ndice estatal recorre una escala de la A a la Z, siendo A la mejor calidad, mientras que
el ndice extranjero califica a las inversiones en una escala de 0 a 100, siendo 100 la
mejor calidad.
INDICE DE CALIDAD
Organismo estatal
Inversin
Tipo
Fuente extranjera
Das
Neto
95
10
3.16
Bonos estatales
85
15
3.99
92
21
6.30
90
21
5.94
Pagars estatales
97
30
6.38
Moneda extranjera
93
1.75
El inversionista pretende elegir su cartera de modo que alcance los mximos beneficios.
No obstante, el asesor financiero le aconseja que diversifique su inversin de acuerdo
con los siguientes criterios:
a) La cantidad colocada en inversiones estatales no debe ser superior al 70 % del total
invertido.
b) La cantidad invertida en bonos debe ser superior a lo invertido en deuda pblica.
c) La razn entre las inversiones en efectos de titularidad pblica (inversiones 2, 3,4
y 5) y las inversiones en efectos de titularidad privada (inversiones 1 y 6) deben ser
a lo sumo de tres a uno.
Prof. Victor Bernal
OPTIMIZACION
Pg. 45 de 131
Mano de obra
Tractor
Otros costos
Valor de la cosecha
(hora)
(hora)
Maz
10
20
3500 U.M.
3000000 U.M.
Caa de azcar
25
25
4000 U.M .
3800000 U.M.
Ajonjol
30
15
10000 U.M.
4100000 U.M.
(has)
OPTIMIZACION
Pg. 46 de 131
Captulo
El mtodo SIMPLEX
1.
Introduccin
En la poca del desarrollo del ahora llamado Mtodo Simplex la palabra Programa era, en ese
momento, un trmino militar que no se refera a las instrucciones que utiliza una computadora
para resolver problemas, las que eran llamadas cdigos, sino ms bien a los planes o programas
propuestos para la formacin, el suministro de logstica, o el despliegue de unidades de combate. El nombre Programacin lineal se origina como una abreviacin de Programacin en una
estructura lineal, fue propuesto por Tjalling C. Kooopmans en 1951 para describir el modelo
de Dantzig.
El mtodo Simplex fue diseado por G. B. Dantzig a mediados de 1947 para resolver problemas
de programacin lineal. El ttulo de la breve charla en la que Dantzig anunci pblicamente
su descubrimiento del mtodo simplex fue Mathematical Techniques of Program Planning. La
presentacin tuvo lugar en una sesin de la reunin anual conjunta de la American Statistical
Association (ASA) y el Institute of Mathematical Statistics (IMS) el 29 de diciembre de 1947. Sin
embargo, no hay evidencia de que la charla de Dantzig atrajera algn inters. El mtodo aparece
nuevamente en una sesin (presidida por von Neumann) en la reunin nacional conjunta de la
IMS y la Econometric Society el 9 de septiembre de 1948. La charla de Dantzig fue entonces
titulada Programming in a Linear Structure (Programando en una estructura lineal).
En aquellos das, segn Dantzig, no haba funcin objetivo. Al carecer de la potencia de los
computadores electrnicos, los planificadores no tenan forma de poner en prctica este concepto. De hecho, entre las contribuciones de Dantzig a la programacin lineal figuran la sustitucin de una funcin objetivo explcita por un conjunto de reglas ad hoc, junto con el reconocimiento de que las relaciones prcticas de planificacin podran formularse como un sistema
de desigualdades lineales y la invencin del mtodo simplex.
47
A finales de 1947 se utiliz para resolver el problema de la dieta, formulado por George J.
Stigler en 1945, con 9 restricciones de igualdad y 77 variables no negativas. Utilizando calculadoras manuales se necesitaron 120 dashombre para resolverlo. La primera implementacin
computacional del Mtodo Simplex se produce en 1952 para un problema de 71 variables y
48 ecuaciones en el computador SEAC (Standards Eastern Automatic Computer) del entonces
National Bureau of Standards. Su resolucin tard 18 horas. De 1954 a 1955 se mejoraron los
algoritmos y se implementaron en un IBM 701, el primer equipo cientfico real de IBM. Esta
aplicacin poda manejar problemas con 101 restricciones, y fue utilizado en grandes clculos en un modelo elaborado por el economista Alan Manne. Esta parece haber sido la primera
aplicacin real del algoritmo simplex.
A la implementacin en el 701 sigui, en 1955-56, otra para el IBM 704. Este cdigo era capaz
de manejar problemas de hasta 255 restricciones, incluyendo restricciones explcitas para las
cotas superiores, lleg a ser conocido como RSLP1, y parece haber sido el primer cdigo que
se distribuy para un gran nmero de usuarios. Ms tarde se mejor para manejar 512 restricciones, y lo comercializ la compaa CEIR Inc., alrededor de 1958 a 1959, bajo el nombre de
SCROL. La programacin lineal llega entonces a su mayora de edad y se comienza a utilizar de
forma significativa, especialmente en la industria petrolera.
Hoy en da los modernos computadores resuelven en segundos problemas de 5000 restricciones y 10000 variables. Aunque a la solucin de los problemas de programacin lineal han sido
agregados otros mtodos, el Simplex sigue siendo el mtodo de eleccin en la mayora de ocasiones.
Para muchos problemas de programacin lineal, el mtodo simplex sigue siendo el mejor. Sin
embargo, se han introducido mejoras diversas, como el mtodo simplex revisado, el dual, o los
mtodos primaldual. Este ltimo trabaja simultneamente con el primal y el dual. Esto puede
presentar ventajas pues se puede explotar la bien conocida relacin entre las formulaciones
primal y dual de un determinado problema. Para la mayora de los casos el primal es el mtodo
preferido; aunque, en algunos casos especiales, otros mtodos pueden dar mejores resultados.
El mtodo del punto interior (MPI) fue introducido en 1984 por Narendra Karmarkar y es una
alternativa al mtodo simplex (MS).
El mtodo primaldual ha sido superado por el mtodo predictorcorrector, que es a su vez
una versin modificada del primaldual original de Mehrotra. Este mtodo requiere normalmente menos iteraciones y es el mtodo de punto interior preferido en muchas ocasiones. Al
contrario del MS, que tiene complejidad computacional exponencial, el MPI tiene complejidad
polinmica. En consecuencia, para problemas grandes (ms de 2000 restricciones y variables)
los mtodos del punto interior superan al MS. No obstante, el MS encuentra una solucin en un
nmero finito de pasos, mientras que el MPI no siempre lo consigue, pues converge asintticamente a la solucin ptima.
La base del mtodo Simplex es la ya enunciada propiedad fundamental de la programacin
Prof. Victor Bernal
OPTIMIZACION
Pg. 48 de 131
lineal, tomando una primera solucin bsica factible y mejorndola hasta obtener el ptimo o
demostrar la inexistencia del valor ptimo. Las soluciones bsicas factibles tambin se llaman
puntos extremos del espacio de solucin de las restricciones. La clave del mtodo Simplex es
el reconocimiento de la optimalidad de un punto extremo tomando en cuenta slo condiciones
locales sin tener que enumerar, en forma global, todos los puntos extremos o soluciones bsicas factibles.
1.1.
OPTIMIZACION
Pg. 49 de 131
sujeto a
x1 = 6 + x3 x4
x2 = 4 3x3 + x9
x5 = 3 x9
x6 = 1 2x3 + x4
x7 = 2 + 2x4 + x9
x8 = 5 + x3 x4 + x9
x1 , x2 , . . . , x9 0
(x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 ) = (6, 4, 0, 0, 3, 1, 2, 5, 0)
puesto que,
1. Los coeficientes no negativos en la funcin z a minimizar garantizan que no se puede
alcanzar ningn valor por debajo de -7, al ser x9 , x3 y x4 no negativas. Este mnimo se
obtiene para x9 = x3 = x4 = 0.
2. Los valores de las variables bsicas, que pueden calcularse usando las restricciones y
sustituyendo x9 = x3 = x4 = 0, son no negativos; as, tambin satisfacen la condicin
de no negatividad. Notemos que esto sucede porque los trminos independientes en
las restricciones son no negativos.
En consecuencia, si se tiene una funcin que debe minimizarse con todos sus coeficientes no
negativos, entonces, el valor mnimo se consigue cuando todas las variables que intervienen
toman el valor cero. Esta solucin es factible nicamente si los trminos independientes que
aparecen en las restricciones son no negativos.
El mtodo simplex empieza con una funcin a minimizar y un conjunto de restricciones que
normalmente no verifican estas condiciones. En la etapa reguladora se transforma el conjunto
de restricciones en otro con trminos independientes no negativos, y en la conocida como de
iteraciones estndar se persigue conseguir coeficientes no negativos en la funcin transformada que debe optimizarse, mientras que al mismo tiempo se busca conservar los trminos
independientes no negativos. Si esto es posible, se obtiene la solucin ptima. Si no, el problema
es no acotado o no factible.
Prof. Victor Bernal
OPTIMIZACION
Pg. 50 de 131
2.
mn z = cx
sujeto a: Ax = b
x0
donde A
es una matriz mn de rango m. Supongamos que se tiene una solucin bsica factible
B1 b
cuyo valor objetivo z0 est dado por
z0 = c
B1 b
0
= (c B , c N )
B1 b
0
= c B B1 b
x B = B1 b B1 Nx N
X
= B1 b
B1 aj x j
jR
=b
(y j )x j
jR
donde R es el conjunto de ndices de las variables nobsicas. Combinando las dos ecuaciones
anteriores se obtiene,
z = cx
= cB xB + cN xN
X
X
= c B B1 b
B1 aj x j +
cj xj
jR
= z0
jR
(zj cj )xj
jR
OPTIMIZACION
Pg. 51 de 131
mn z = z0
(zj cj )xj
jR
sujeto a:
(y j )x j + x B = b
jR
xj 0, j R
Sin perder generalidad se puede suponer que en la ecuacin inmediatamente anterior, ninguna
de las filas tiene todos los elementos 0 en las columnas de las variables nobsicas, de no ser as
la variable bsica en esa fila sera conocida y la fila se eliminara del problema. De esta manera
se puede escribir el problema en trminos de las variables nobsicas como,
X
mn z = z0
(zj cj )xj
jR
sujeto a:
(y j )x j b
jR
xj 0, j R
Los valores (cj zj ) se llaman costos reducidos ya que son los coeficientes de las variables no
bsicas en el espacio reducido a p = n m dimensiones. La representacin anterior, donde la
funcin objetivo z y las variables bsicas se han escrito en trminos de las variables nobsicas
se llama forma cannica. La ltima representacin del problema demuestra que si (zj cj ) 0
para cada ndice j R, entonces la solucin bsica factible x B es ptima.
Supongamos entonces que el problema de programacin lineal ha sido planteado en su forma
es ptima. De
cannica. Si (zj cj ) 0 para todo j R, entonces xj = 0, j R y x B = b
otra forma, manteniendo p 1 variables nobsicas fijas como 0, el mtodo simplex considera
incrementar la variable restante, digamos xk . Naturalmente, se desea que zk ck sea positivo
y tal vez el ms positivo de los zj cj , j R. Si se hace xj = 0 para j R {k}, se obtiene,
z = z0 (zk ck )xk
y
b1
y1k
x b y
B2 2 2k
. . .
. . .
. . .
xk
xBr br yr k
.. .. ..
. . .
xBm
ymk
bm
Prof. Victor Bernal
xB1
OPTIMIZACION
Pg. 52 de 131
Si yik 0, entonces xBi crece a medida que xk decrece y de esta manera xBi sigue siendo no
negativa. Si yik > 0, entonces xBi decrece a medida que xk crece. Para que xk sea no negativa,
xk crece hasta que una variable bsica xBr sea cero. Examinando la formulacin del problema
se observa que la primera variable bsica en llegar a cero corresponde al mnimo de bi /yik para
yik positivo. Ms precisamente, xk se puede incrementar hasta
(
)
bi
br
xk =
= mn
: yik > 0
yr k
1im yik
Si br > 0, se obtiene xk = br /yr k > 0. por otra parte, como (zk ck ) > 0 se debe cumplir que
z < z0 y el valor de la funcin objetivo decrece. Cuando xk crece desde el nivel 0 hasta br /yr k
se obtiene una nueva solucin bsica factible. Al hacer la sustitucin xk = br /yr k se obtiene,
yik
xBi = bi
br , i = 1, . . . , m
yr k
br
xk =
yr k
xj = 0, en otro caso.
De la ecuacin anterior se deduce que xBr = 0 por tanto a lo ms m variables son positivas.
Las columnas correspondientes de A son aB1 , aB2 , . . . , aBr 1 , ak , aBr +1 , . . . , aBm , estas columnas
son linealmente independientes por lo que la solucin obtenida es una solucin bsica factible.
La descripcin algebraica de este proceso se puede definir como una iteracin, es decir, el
proceso de transformar una base en otra adyacente, consiste en aumentar el valor de una
variable no bsica xk asociada con un zk ck positivo y ajustando las otras variables bsicas,
en el proceso la variable bsica xBr se hace cero y pasa a ser una variable no bsica. Como
existe un nmero finito de soluciones bsicas factibles, el procedimiento debe terminar en un
nmero finito de pasos.
2.1.
OPTIMIZACION
Pg. 53 de 131
2.2.
1 2 1 0
A = [a1 , a2 , a3 , a3 ] =
0 1 0 1
Consideremos la solucin bsica factible correspondiente a B = [a1 , a2 ]. En otras palabras,
x1 , x2 son las variables bsicas y x3 , x4 son variables no bsicas. Los clculos relativos a la
representacin necesaria para decidir el cambio de variable bsica son:
B1
1
1 2
1 2
,
=
=
0 1
0 1
c B B1
1 2
= (1, 1)
= (1, 1)
0 1
Por lo tanto,
1
2
1
1
=
y 3 = B1 a3 =
0 1
0
0
1 2
0
2
=
y 4 = B1 a4 =
0 1
1
1
1
2
4
2
=
= B1 b =
b
0 1
1
1
igualmente,
4
z0 = c B B1 b = (1, 1) = 3
1
1
z3 c3 = c B B1 a3 c3 = (1, 1) 0 = 1
0
0
z4 c4 = c B B1 a4 c4 = (1, 1) 0 = 1
1
Prof. Victor Bernal
OPTIMIZACION
Pg. 54 de 131
m
X
cBi yik
i=1
y cBi es el costo de la isima variable bsica. Notemos que si xk aumenta de valor y las otras
variables no bsicas siguen siendo cero, entonces las variables bsicas xB1 , xB2 , . . . , xBm deben
modificarse de acuerdo con las restricciones, en otras palabras, si xk se incrementa en una
unidad, entonces xB1 , xB2 , . . . , xBm decrecen en y1k , y2k , . . . , ymk unidades, respectivamente (si
yik < 0 entonces xBi aumenta). El ahorro (un ahorro negativo significa ms costo) que resulta
de la modificacin de las variables bsicas, como resultado de incrementar a xk en una unidad
Pm
es i=1 cBi yik . Sin embargo, el costo de incrementar a xk en una unidad es ck . Por consiguiente
zk ck es el ahorro menos el costo de incrementar a xk en una unidad. Naturalmente, si zk ck
es positivo, es ventajoso incrementar a xk . Por cada unidad de xk el costo se reduce en una
cantidad zk ck , por este motivo es ventajoso incrementar xk en la mayor cantidad posible.
Por otra parte, si zk ck < 0, entonces al incrementar xk el ahorro neto va a ser negativo lo que
repercute en un mayor costo, es decir, no conviene incrementar a xk . Finalmente, si zk ck = 0,
el incremento de xk lleva a una solucin diferente con el mismo costo, as, incrementar xk o
dejarla como 0 no cambia el costo.
Supongamos ahora que xk es una variable bsica, digamos la t, esto es, xk = xBt , c k = cBt
Prof. Victor Bernal
OPTIMIZACION
Pg. 55 de 131
1. Etapa de iniciacin.
Seleccionar una solucin bsica factible inicial B (existen varias alternativas).
2. Etapa iterativa.
Se toma
P1. Resolver el sistema Bx B = b, cuya nica solucin es x B = B1 b = b.
x
N = 0 y z = c B x B .
x B = b,
P2. Se resuelve el sistema wB = c B , cuya nica solucin es w = c B B1 . El vector w
se denomina vector de multiplicadores del simplex porque sus componentes son
los multiplicadores de las filas de A que son agregadas a la funcin objetivo para
escribirlo en la forma cannica. Se calcula zj cj = waj cj para todas las variables
no bsicas. Se encuentra entonces,
zk ck = m
ax zj cj
jR
OPTIMIZACION
Pg. 56 de 131
y consideremos una solucin factible bsica x = (x B , x N ). Recordemos que x B = B1 b. Teniendo en cuenta que x N = 0, observemos que el valor de la funcin objetivo en x es
z = c T x = c TB x B = c TB B1 b.
La tabla del simplex asociada a la solucin es la siguiente:
c1 . . . cn
x1 . . . xn
cB
xB
Y = B1 A
z = c TB Y
w =cz
x B = B1 b
c TB B1 b
Hay que aclarar que el x B que aparece a la izquierda, as como los x1 , . . . , xn , representan los
nombres de las variables, mientras que el x B que aparece a la derecha representa los valores
de las variables bsicas. Tambin conviene observar que para calcular cada componente wi del
vector w la expresin explcita es
wi = ci c B B1 A.
3.
El problema dual
Esta seccin trata la dualidad en programacin lineal, su concepto y significado. Tras formular
el problema dual de un problema de programacin lineal, se establece la relacin matemtica
entre ambos. Se emplean diversos ejemplos para ilustrar el importante concepto de la dualidad.
Dado un problema de programacin lineal, denominado problema primal, existe otro problema de programacin lineal, denominado problema dual, muy relacionado con l. Se dice que
ambos problemas son mutuamente duales. Bajo ciertas hiptesis, los problemas primal y dual
dan lugar al mismo valor ptimo de la funcin objetivo, y por tanto se puede resolver indirectamente el problema primal resolviendo el problema dual. Esto puede suponer una ventaja
computacional relevante.
3.1.
am1 x1 + + amn xn bm
x1 , x2 , . . . , xn 0,
usualmente es la formulacin de condiciones econmicas cuya interpretacin puede ser,
Prof. Victor Bernal
OPTIMIZACION
Pg. 57 de 131
n actividades, m recursos.
cj la utilidad, por unidad, de la actividad j.
bi es la disponibilidad mxima del recurso i.
aij es el consumo del recurso i por unidad de actividad j.
Existe entonces un problema asociado, con variables de decisin y1 , . . . , ym , una por cada restriccin del problema antes mencionado, cuya formulacin es,
mn b1 y1 + + bm ym
sujeto a las restricciones,
a11 y1 + + a1m ym c1
an1 y1 + + anm ym cn
y1 , y2 , . . . , ym 0
Uno de los resultados mas importantes en la programacin lineal es el siguiente: si (x1 , . . . , xn )
es solucin ptima para el problema original y (y1 , . . . , ym ) es una solucin ptima para el
problema dual, entonces,
c1 x1 + c2 x2 + + cn xn = b1 y1 + + bm ym
El lado izquierdo de la igualdad es la mxima ganancia, y el lado derecho se puede interpretar
como,
X
OPTIMIZACION
Pg. 58 de 131
por lo que debe incrementarse la actividad j lo que coincide con una de las reglas del mtodo
simplex al escoger la variable que entra a formar parte de las bsicas.
3.2.
su problema dual es
m
a x z = bT y
sujeto a: AT y c
y0
donde y = (y1 , . . . , ym )T son las variables duales. Se denomina al primer problema primal, y
al segundo, su dual. Observemos que los mismos elementos, la matriz A, y los vectores b y c,
configuran ambos problemas. El problema primal no se ha escrito en forma estndar, sino en
una forma que nos permite apreciar la simetra entre ambos problemas, y mostrar as que el
dual del dual es el primal.
Para comprobar lo anterior, se escribe el problema dual anterior como un problema de minimizacin con restricciones de la forma,
mn z = bT y
sujeto a: AT y c
y0
Entonces, su dual es,
m
ax z = c T x
sujeto a: Ax b
x0
que es equivalente al problema primal original.
Como puede observarse, cada restriccin del problema primal tiene asociada una variable del
problema dual; los coeficientes de la funcin objetivo del problema primal son los trminos
independientes de las restricciones del problema dual y viceversa; y la matriz de restricciones
del problema dual es la traspuesta de la matriz de restricciones del problema primal. Adems,
el problema primal es de minimizacin y el dual de maximizacin.
Prof. Victor Bernal
OPTIMIZACION
Pg. 59 de 131
3.3.
dual a partir del problema primal en forma estndar. Para hacer esto basta con aplicar las
relaciones primal-dual ya enunciadas. Consideremos el problema
mn z = c T x
sujeto a: Ax = b
x0
La igualdad Ax = b puede reemplazarse por las desigualdades Ax b y Ax b Entonces,
puede escribirse el problema como,
mn z = c T x
A
b
x
sujeto a:
A
b
x0
El dual de este problema es,
m
ax z = bT y (1) bT y (2) = bT y
(1)
y
sujeto a: (AT AT ) (2) = AT y c
y
y = y (1) y (2) no restringida en signo
Esta es la forma del problema dual cuando el problema primal se expresa en forma estndar.
3.4.
tiene asociado un problema dual que puede formularse segn las reglas siguientes:
Regla 1. Una restriccin de igualdad en el primal (dual) hace que la correspondiente variable
dual (primal) no est restringida en signo.
Regla 2. Una restriccin de desigualdad () en el primal (dual) da lugar a una variable dual
(primal) no negativa.
Regla 3. Una restriccin de desigualdad () en el primal (dual) da lugar a una variable dual
(primal) no positiva.
Regla 4. Una variable no negativa primal (dual) da lugar a una restriccin de desigualdad ()
en el problema dual (primal).
Regla 5. Una variable primal (dual) no positiva da lugar a una restriccin de desigualdad ()
en el problema dual (primal).
Regla 6. Una variable no restringida en signo del problema primal (dual) da lugar a una restriccin de igualdad en el dual (primal).
Prof. Victor Bernal
OPTIMIZACION
Pg. 60 de 131
3.5.
es
m
ax z = 3y1 + 2y2
sujeto a: 2y1 + y2 = 1
y1 = 1
y2 1
y1 0
La aplicacin de las reglas se hizo de la siguiente manera,
Regla 1. Puesto que la segunda restriccin del problema primal es de igualdad, la segunda
variable dual y2 no est restringida en signo.
Regla 2. Puesto que la primera restriccin del problema primal es de desigualdad , la primera
variable dual y1 es no negativa.
Regla 3. Puesto que la tercera variable primal x3 est restringida en signo, la tercera restriccin
dual es de desigualdad .
Regla 4. Puesto que las variables primales primera y segunda x1 y x2 no estn restringidas en
signo, las restricciones duales primera y segunda son de igualdad.
3.6.
tipos de mesas de madera. Cada mesa del tipo 1 necesita 4 horas de mecanizado primario (preparacin de piezas) y 4 horas de mecanizado secundario (ensamblado y barnizado). Anlogamente, cada mesa del tipo 2 necesita 3 horas de mecanizado primario y 7 horas de mecanizado
secundario.
Datos para el problema del carpintero
Tipo de mesa
Horas mquina
Tipo 1
Tipo 2
disponibles
Mecanizado primario
40
Mecanizado secundario
56
70
90
Beneficio ($)
OPTIMIZACION
Pg. 61 de 131
objeto de este problema es determinar el nmero de mesas de cada tipo que han de producirse
diariamente para maximizar el beneficio obtenido. Este problema puede formularse como un
problema de programacin lineal as,
m
ax z = 70x1 + 90x2
sujeto a: 4x1 + 3x2 40
4x1 + 7x2 56
x1 , x2 0
donde x1 y x2 son las cantidades diarias de mesas a fabricar de los tipos 1 y 2 respectivamente.
La solucin ptima de este problema establece que han de producirse diariamente 7 y 4 sillas
de los tipos 1 y 2 respectivamente, lo que da lugar a un beneficio de 850 dlares. Este resultado
indica que ambos recursos de mecanizado (primario y secundario) estn plenamente utilizados
porque las restricciones relacionadas con ellos estn ambas activas. Por otra parte, consideremos que quiere aumentarse el beneficio diario. Para ello es necesario aumentar la capacidad
productiva. Supongamos que la capacidad de mecanizado secundario puede aumentarse, cada
da, de 56 a 72 horas de mquina. Cmo afecta esta ampliacin de capacidad a los beneficios
diarios? La solucin puede obtenerse resolviendo el siguiente problema,
m
ax z = 70x1 + 90x2
sujeto a: 4x1 + 3x2 40
4x1 + 7x2 72
x1 , x2 0
En este caso la solucin ptima es x1 = 4 y x2 = 8 con un beneficio mximo diario de 1000
dlares. Esta solucin indica que el beneficio diario crece en 150 dlares y la capacidad de
mecanizado secundario crece en 72 56 = 16 horas mquina. El cociente (1000 850)/16 =
150/16 = 75/8 dlares, al que la funcin objetivo crece al crecer la capacidad de mecanizado
secundario 1 hora, se denomina sensibilidad o precio sombra (tambin precio dual) de la capacidad de mecanizado secundario. En general el precio sombra de una restriccin proporciona
el cambio en el valor de la funcin objetivo como resultado de un cambio unitario en el trmino
independiente de la restriccin, suponiendo que el resto de parmetros del problema permanecen inalterados. En muchos problemas de programacin lineal los precios sombra son tan
importantes como la solucin del problema, ya que proporcionan informacin sobre el efecto
en la funcin objetivo de cambios en los recursos disponibles. Los precios sombra pueden obtenerse resolviendo el problema dual. El problema dual del problema del carpintero se formula
Prof. Victor Bernal
OPTIMIZACION
Pg. 62 de 131
como,
mn z = 40y1 + 56y2
sujeto a: 4y1 + 4y2 70
3y1 + 7y2 90
y1 , y2 0
La solucin ptima de este problema es y1 = 65/8 8.125, y2 = 75/8 9.375, y el valor
ptimo de la funcin objetivo es 850. Observemos que y1 y y2 son los precios sombra de las
capacidades de mecanizado primario y secundario, respectivamente, y que los valores ptimos
de las funciones objetivo, primal y dual, coinciden.
El problema dual puede interpretarse de la siguiente manera. Consideremos que el objetivo
es vender tiempo de mecanizado primario y secundario y supongamos que de esta forma se
obtienen al menos el mismo nivel de beneficios que haciendo mesas. En esta situacin vender
tiempo de mecanizado y hacer mesas han de ser actividades igualmente lucrativas. Las variables y1 y y2 variables representan los precios de venta de una hora de mecanizados primario
y secundario respectivamente. Para preservar la competitividad del negocio, el beneficio diario ha de minimizarse, esto es minimizar la funcin 40y1 + 56y2 , donde 40 y 56 representan
respectivamente la disponibilidad diaria en horas de mecanizado primario y secundario respectivamente.
Las restricciones del dual establecen que el costo de las horas de mecanizado primario y secundario para producir una mesa de cada tipo no debe superar el beneficio que se obtiene por
venta de la misma y que los precios son cantidades no negativas.
3.7.
puede generar de manera automtica el dual, seleccionando en el menu LINGO la opcin Generate y la subopcin Dual model. Para comprobar las propiedades de dualidad se puede abrir
un nuevo archivo LINGO y copiar el dual generado anteriormente para resolverlo y verificar los
resultados del problema original o primal.
OPTIMIZACION
Pg. 63 de 131
4.
Anlisis de sensibilidad
Una vez que se encuentra la solucin ptima de un problema de programacin lineal es, en
muchas ocasiones, de utilidad, analizar los cambios que eventualmente se producen en la solucin si algunos de los coeficientes adquieren diferentes valores, bien sea en la funcin objetivo
o en las restricciones. Igualmente, si es necesario incluir una o mas variables adicionales no
contempladas en la formulacin inicial.
Es muy frecuente que se tenga algn grado de incertidumbre sobre uno o ms de los valores
utilizados en la formulacin. En ese caso es muy importante conocer cules son los efectos de
los cambios en la solucin ptima, as como identificar si hay valores que produzcan efectos
notables en tal solucin. El mtodo simplex de programacin lineal ofrece una amplia capacidad
para resolver estas dificultades. A tal efecto, vamos a mostrar cmo influyen los cambios de
datos en la tabla ptima. Por otra parte, damos dos ejemplos de cmo interpretar la informacin
obtenida del software adecuado.
Supongamos que se ha llegado a la tabla ptima. En dicha tabla todos los valores en la fila
de costos reducidos son no negativos, la columna de trminos independientes tiene tambin
todos los valores no negativos y las columnas de la matriz identidad de orden igual al nmero
de restricciones. Se requiere entonces determinar el efecto de un cambio en los datos y la
manera como ese cambio afecta tabla final.
4.1.
Cambios en los costos de las variables bsicas. El primer tipo de cambio que se va
s1
s2
10
-1
-1
OPTIMIZACION
Pg. 64 de 131
s1
s2
10
-1
-1
Esta tabla no es ptima por los valores en la columna de x, sin embargo, si se suma la ltima
fila multiplicada por a la primera fila se llega a la tabla:
z
s1
s2
1+
10 + 2
-1
-1
Esta nueva tabla conserva las variables bsicas y los mismos valores de las variables, excepto,
claro est, la variable z. La solucin es ptima cuando los coeficientes de los costos son no
negativos, es decir,
10
1+0
cuya solucin es 1 1. Para todo valor de en este rango las variables bsicas y sus
valores dan una solucin ptima. El cambio en la funcin objetivo cambia a 10 + 2.
4.2.
s1
s2
1.5
10
-1
-1
si, por ejemplo, el costo de w cambia de 2.5 a 2.5 + en el problema original, efectuando los
clculos como en el caso de una variable bsica la tabla que se obtiene es,
Prof. Victor Bernal
OPTIMIZACION
Pg. 65 de 131
s1
s2
1.5
10
-1
-1
si es una tabla ptima, cuyas variables bsicas son x, y, se debe cumplir 1.5 0, es decir,
1.5, por lo tanto, mientras el costo de w no sea superior a 2.5 + 1.5 = 4, la solucin original
x = 2, y = 2 sigue siendo ptima.
Si se cambian coeficientes en la funcin objetivo hay que observar los efectos en la fila de
costos reducidos, generalmente se multiplica una fila por una constante y se suma a la de
costos reducidos para conservar las variables bsicas.
4.3.
Cambios en los trminos independientes. Para ilustrar estos cambios se utiliza, ini-
cialmente, un problema de maximizacin donde todas las restricciones don del tipo . Los
otros casos se manejan de manera similar. Por ejemplo, el problema
m
ax z = 4x + 5y
sujeto a:
2x + 3y 12
x+y 5
x, y 0
tiene como tabla ptima, agregando las variables de holgura s1 y s2 , es
z x
s1
s2
22
-2
-1
OPTIMIZACION
Pg. 66 de 131
z x
s1
s2
22 +
-2
2+
-1
esta tabla es ptima siempre y cuando todos los trminos independientes son no negativos, es
decir, la base no cambia cuando 2 3, si los valores de estn dentro de este rango el
valor ptimo es z = 22 + .
5.
forma cannica, los coeficientes de la funcin objetivo de las variables bsicas deben ser cero.
Como esto ya est establecido, no hay motivo para realizar los clculos que lo comprueban. El
mtodo simplex revisado calcula slo los coeficientes de las variables no bsicas ya que los que
necesita para decidir la variable que entra en la base.
5.2.
encuentra por la regla de la razn mnima por la se calculan los cocientes entre los trminos
independientes y los correspondientes coeficientes en la columna pivote (la columna de la variable que entra en la base). Esto significa que, de hecho, no es necesario conocer los coeficientes
en las otras columnas. Por lo tanto, el simplex revisado slo calcula los coeficientes de la columna de la variable que entra en la base. Ms an, el simplex revisado no hace los clculos si los
coeficientes de la columna son todos negativos pues ello indica que la funcin objetivo no es
acotada. As, el simplex revisado calcula el trmino independiente slo para aquellas columnas
en las que el coeficiente de la columna pivote sea positivo.
5.3.
Actualizacin de la base. Los hechos esenciales que afectan la solucin estn con-
OPTIMIZACION
Pg. 67 de 131
5.4.
6.
Ejercicios
x1
x2
x3
x4
x5
x6
1 x1
2 x3
1 x4
-2
1 135
-11
-4
OPTIMIZACION
Pg. 68 de 131
g) Al hacer bsica la variable x, sta deja de ser nula y pasa a ser positiva. Las dems
variables no bsicas siguen valiendo 0, pero las variables bsicas varan. Cules
aumentan y cules disminuyen?
h) De las variables bsicas que disminuyen cuando x aumenta, cul llega antes a 0?
i) Calcular la siguiente iteracin. Verificar las tres condiciones que debe satisfacer y
determinar si se trata de la tabla ptima.
j) Suponga ahora que el objetivo es minimizar. Responder las preguntas e), f ), g), h).
Determinar qu variable debe entrar en la base y cul debe salir.
2. Considere la siguiente etapa del simplex para un problema de maximizar:
1
x1
x2
x3
x4
x5
x6
1 x1
-1
-2
2 x3
-1
1 x4
-2
-5
a) Responder en este caso a las preguntas a), b), c), d), e), f ), g) del problema anterior.
b) Llamemos de nuevo x a la variable que entra en la base. A medida que x aumenta, hay alguna variable bsica que disminuya y termine por hacerse 0? Cmo se
interpreta esto?
c) Suponga ahora que el problema es de minimizar. Qu efecto tiene sobre la funcin objetivo introducir en la base cada una de las variables no bsicas? Cmo se
interpreta esto?
OPTIMIZACION
Pg. 69 de 131
Captulo
El problema de transporte
Dentro de los problemas de Programacin Lineal existen dos que por su especial estructura
permiten el desarrollo y aplicacin de algoritmos especiales: el problema del transporte y el
problema de asignacin. En el problema del transporte, el objetivo es llevar ciertas cantidades
de productos desde varios orgenes a diferentes destinos, de forma que alguna medida de la
efectividad de la operacin sea ptima.
Se puede decir que el origen del problema se remonta al trabajo del frances Gaspard Monge
quien public el artculo Sur la thorie des dblais et des remblais (Mm. de lacad. de Paris,
1781) (Sobre la teora de los cortes y rellenos) donde se plantea el problema del transporte de
tierra o escombros a excavaciones o rellenos. En 1941, F. L. Hitchcock formul el problema en la
forma que lo conocemos hoy en la publicacin The distribution of a product from several sources to numerous localities, (Journal of Mathematics and Physics, 20, 1941) (La distribucin de un
producto desde varias fuentes a numerosas localidades). Asimismo, T. C. Koopmans public
en 1947 el artculo Optimum utilization of the transportation system, (The Econometric Society
Meeting. Washington, D.C., 1947) (Utilizacin ptima del sistema de transporte) que tambin
contribuy significativamente al planteamiento original del problema y G. B. Dantzing desarroll en 1951 el Mtodo Smplex para el Problema del Transporte en su publicacin Application of
the simplex method to a transportation problem, (Proceedings Conference on Linear Programming, Chicago, Illinois, 1949), (Aplicacin del mtodo simplex a un problema de transporte).
El problema de asignacin es a su vez un caso especial del problema del transporte en el que
se deben asignar ciertos objetos a ciertas tareas de forma unvoca. La estructura particular del
problema hace que las soluciones sean degeneradas y permiti a los matemticos hngaros
Knig y Egervry demostrar un teorema esencial para el desarrollo del mtodo hngaro, que
se fundamenta en la idea de que se puede sumar o restar una constante de cualquier fila o
columna sin cambiar el conjunto de soluciones ptimas. Reconociendo y basado en las ideas
71
Hacia
Desde
Ciudad 1
Ciudad 2
Ciudad 3
Ciudad 4
Oferta(Millones kwhr)
Planta 1
10
35
Planta 2
12
13
50
Planta 3
14
16
40
Demanda(Millones kwhr)
45
20
30
30
El problema tiene dos tipos de restricciones. En primer lugar, la energa total suministrada por
cada planta no puede exceder su capacidad. En este caso se habla de restricciones de oferta o
suministro. Como existen tres puntos de oferta o suministro, existen tres restricciones:
x11 + x12 + x13 + x14 35 (Restriccin de oferta de la Planta 1)
x21 + x22 + x23 + x24 50 (Restriccin de oferta de la Planta 2)
x31 + x32 + x33 + x34 40 (Restriccin de oferta de la Planta 3)
Prof. Victor Bernal
OPTIMIZACION
Pg. 72 de 131
En segundo lugar, se deben plantear las restricciones que permitan asegurar que se satisfaga la
demanda en las cuatro ciudades. As, las restricciones de demanda para cada punto de demanda
quedan:
x11 + x21 + x31 45 (Restriccin de demanda de la Ciudad 1)
x12 + x22 + x32 20 (Restriccin de demanda de la Ciudad 2)
x13 + x23 + x33 30 (Restriccin de demanda de la Ciudad 3)
x14 + x24 + x34 30 (Restriccin de demanda de la Ciudad 4)
1.2.
informacin:
1. Un conjunto de m puntos de oferta. Cada punto de oferta i tiene asociado una oferta
si .
2. Un conjunto de n puntos de demanda. Cada punto de demanda j tiene asociada una
demanda dj .
3. Cada unidad enviada desde un punto de oferta i a un punto de demanda j tiene un
costo unitario de transporte cij
Si definimos: xij = nmero de unidades enviadas desde el punto de oferta i al punto de demanda
j la formulacin general del problema de transporte queda:
m X
n
X
mn
cij xij
i=1 j=1
sujeto a
n
X
xij = si
(i = 1, . . . , m)
(Restricciones de oferta)
xij = di
(j = 1, . . . , n)
(Restricciones de demanda)
j=1
m
X
i=1
xij 0
(i = 1, . . . , m; j = 1, . . . , n) (Restricciones de signo)
Si se satisface:
m
X
si =
i=1
n
X
di
j=1
se dice que el problema est balanceado. En el caso del ejemplo anterior, se verifica que las
sumas de ofertas y demandas son iguales a 125. En el caso de un problema de transporte
balanceado todas las restricciones estarn al lmite, por lo tanto la formulacin queda:
mn
m X
n
X
cij xij
i=1 j=1
sujeto a
Prof. Victor Bernal
OPTIMIZACION
Pg. 73 de 131
n
X
xij = si
(i = 1, . . . , m)
(Restricciones de oferta)
xij = di
(j = 1, . . . , n)
(Restricciones de demanda)
j=1
m
X
i=1
xij 0
1.3.
(i = 1, . . . , m; j = 1, . . . , n) (Restricciones de signo)
c12
c1n
s1
c21
c22
c2n
s2
..
.
..
.
..
.
cn1
cn2
cnn
sn
Demanda d1
d2
dn
OPTIMIZACION
Pg. 74 de 131
Ciudad 1
Planta 1
Ciudad 2
8
Ciudad 3
6
10
Planta 2
10
9
35
10
5
8
45
50
10
10
Demanda
Oferta
25
45
Planta 3
Ciudad 4
9
30
20
30
40
30
En este caso se puede verificar que el problema est balanceado comprobando que la suma de
la ltima columna y la suma de la ltima fila son iguales.
1.4.
1.4.1.
OPTIMIZACION
Pg. 75 de 131
En forma matricial, las restricciones del problema de transporte balanceado anterior puede ser
escrito de la siguiente forma:
1 1 0 0
0 0 1 1
0 0 1 0
1 0 0 1
0 1 0 0 1
x11
4
x12
x13
= 3
x21
x 2
22
4
x23
11
0 0 0 1 1 1
x12
5
1 0 0 1 0 0 x
3
13
0 1 0 0 1 0 x21 2
0 0 1 0 0 1
4
x22
x23
Como el sistema anterior tiene 4 restricciones y 6 variables posee infinitas soluciones, sin embargo, siempre tendr como solucin al menos 4 variables no nulas. Para obtener una solucin
bsica factible en forma simple introduciremos el concepto de .
Definicin 6. Un orden secuencial de al menos cuatro celdas distintas se denomina loop o ciclo
si:
1. Dos celdas consecutivas estn en la misma columna o en la misma fila.
2. No tiene tres celdas consecutivas en una misma columna o en una misma fila.
3. La ltima celda de la secuencia tiene una fila o columna comn con la primera celda de
la secuencia.
La propiedad principal que se utiliza para obtener la solucin inicial est dada por el siguiente
teorema cuya demostracin puede consultarse en la bibliografa recomendada.
Teorema 3. En un problema de transporte balanceado con m puntos de oferta y n puntos de
demanda, las celdas correspondientes a un conjunto de m + n 1 variables no contienen un loop
si y slo si las n + m 1 variables constituyen una solucin inicial.
El teorema anterior se desprende del hecho de que en un conjunto de m + n 1 celdas no contienen un loop si y slo si las m + n 1 columnas correspondientes a las celdas son linealmente
independientes.
Los mtodos ms empleados para obtener soluciones iniciales son:
1. El mtodo de la Esquina Noroeste.
2. El mtodo de Vogel.
Prof. Victor Bernal
OPTIMIZACION
Pg. 76 de 131
tambin considerado por ser el menos probable para dar una buena solucin inicial de bajo
costo porque ignora la magnitud relativa de los costos cij . Antes de describir el procedimiento,
es necesario recordar que el nmero de variables bsicas en cualquier solucin bsica de un
problema de transporte es una menos de la que se espera. Normalmente, en los problemas de
programacin lineal, se tiene una variable bsica para cada restriccin. En los problemas de
transporte con m recursos y n destinos el nmero de restricciones funcionales es m + n. Sin
embargo, el nmero de variables bsicas es m + n 1.
Para encontrar una solucin inicial se comienza por la esquina superior izquierda (noroeste)
del tableau de transporte intentando asignar la mxima cantidad posible a x11 . Evidentemente,
el valor mximo de x11 debe ser el menor entre s1 y d1 . Si x11 = s1 , se puede descartar la
primera fila pues ya no podr asignarse ms desde el primer punto de oferta, se avanza a
la siguiente fila. Al mismo tiempo, se debe cambiar d1 por d1 s1 , de forma de indicar la
cantidad de demanda no satisfecha en el primer punto de demanda. En caso que x11 = d1 ,
se debe descartar la primera columna y cambiar s1 por s1 d1 , avanzando una columna. Si
x11 = d1 = s1 , se debe avanzar en una columna o en una fila (pero no en ambas). Se asigna un
cero en la direccin escogida y se descarta la otra alternativa. El mtodo contina aplicando
el mismo criterio desde la esquina noroeste del tableau restante. Una vez que estn asignadas
toda demanda y oferta disponible, se terminan las asignaciones y est completa la asignacin
inicial.
Apliquemos el mtodo al siguiente tableau (no se incorporan los costos pues el mtodo no los
emplea):
5
1
3
2 4 2 1
Comenzamos asignando la mxima cantidad posible por fila o por columna en la esquina noroeste. En este caso, controla la primera columna, luego:
2
3
1
3
0 4 2 1
A continuacin, avanzamos una columna y en esta celda controla la fila, por lo tanto queda:
Prof. Victor Bernal
OPTIMIZACION
Pg. 77 de 131
0
1
3
1 2 1
En este caso, la esquina ms noroeste disponible es la celda 2-2. Aqu, la demanda y la oferta se
igualan. Arbitrariamente se escoge la celda inferior de la misma columna para asignar un cero:
2
0
3
0 2 1
Luego, la celda ms noroeste disponible es la 3-3. En esta celda, controla la demanda de 2 sobre
la oferta de 3, luego:
2
0
2
0 1
Mtodo de Vogel. Este mtodo es heurstico y suele producir una mejor solucin
inicial que los mtodos anteriores. De hecho, suele producir una solucin inicial ptima, o
prxima al nivel ptimo.
El mtodo comienza calculando por cada columna y por cada fila el castigo o penalizacin.
El castigo se calcula como la diferencia entre los dos costos menores en la columna o en la
fila segn corresponda. A continuacin, se determina la fila o columna con un mayor valor
de castigo. Luego, se selecciona como variable bsica la celda con menor costo de la fila o
columna, segn corresponda, y se le asigna la mxima cantidad posible. Una vez realizada la
asignacin, se descarta la fila o columna cuya oferta o demanda haya sido completa. Se recalcula
la demanda u oferta disponible en la fila o columna. La primera asignacin se ha completado.
Prof. Victor Bernal
OPTIMIZACION
Pg. 78 de 131
Se vuelven a calcular los castigos por fila y por columna y se repite el procedimiento descrito
hasta completar las asignaciones posibles en el tableau.
La ventaja del mtodo de Vogel por sobre el de la Esquina Noroeste es que va adelante algunas
iteraciones y por lo tanto se obtiene una mejor solucin inicial, eventualmente la solucin
ptima. La desventaja del mtodo de Vogel radica en que sin duda es ms complejo que el de
la esquina noroeste, por lo tanto es ms difcil de implementar y ms proclive a errores en la
aplicacin.
1.4.4.
sos para aplicar el mtodo Simplex para el problema de Transporte. La deduccin y justificacin
detallada de cada uno de los pasos se puede encontrar en los textos de la bibliografa de la asignatura.
Paso 1 Si el problema no est balanceado, balancearlo. Construir el tableau de transporte.
Paso 2 Encontrar una solucin inicial factible por el mtodo de la Esquina Noroeste o el de
Vogel. Verificar las m + n 1 asignaciones y completarlas si es necesario.
Paso 3 Plantear y resolver el sistema que se obtiene a travs de:
a) Definir para cada fila del tableau la variable ui con i = 1 . . . m.
b) Definir para cada columna del tableau la variable vj con j = 1 . . . n.
c) Plantear para cada casilla asignada la ecuacin ui + vj = cij . Donde cij es el costo
unitario asociado a la casilla i j.
d) Asignar un valor arbitrario a una de las variables, por ejemplo u1 = 0.
Paso 4 Calcular en todas las casillas no asignadas (no bsicas) eij = cij ui vj . Si todos los
eij 0 se ha encontrado el ptimo. Si existe algn eij < 0, incorporar la variable con
menor eij siempre y cuando pueda formar un loop, en dicho caso, asignar el mayor
valor posible de modo de mantener las variables bsicas mayores o iguales a cero.
Paso 5 Si la solucin no es la ptima, emplear la solucin del paso anterior para volver a plantear y resolver el sistema (Paso 3). Seguir al Paso 4.
La variable eij representa el aporte neto unitario de la incorporacin de la variable ij a la base.
Por lo tanto, si el problema es de maximizacin, la solucin ser ptima si todos los eij < 0.
Prof. Victor Bernal
OPTIMIZACION
Pg. 79 de 131
En caso contrario, se ingresa a la base la variable con mayor eij que pueda formar un loop. En
el caso de que al emplear uno de los mtodos para obtener una solucin inicial falten dos o
ms asignaciones para completar las m + n 1 asignaciones requeridas, los ceros deben ser
ubicados de tal forma que sea suficiente dar slo un valor arbitrario a las variables del sistema
asociado a la asignacin para poder resolverlo completamente.
1.6.
lineal poseen una estructura similar a la del modelo de transporte, esta caracterstica facilita
su solucin pues el mtodo simplex del modelo de transporte produce resultados de una ms
sencilla.
Ejemplo: La compaa ACME ha suscrito un contrato para fabricar tres artefactos durante cada
una de las siguientes tres semanas, aun cuando es posible que necesite trabajar tiempo extra.
Los datos necesarios en cuanto a la produccin viene en la siguiente tabla:
Semana
6000
10000
8000
El costo de produccin por unidad, en tiempo extra, es de $2000 ms que en tiempo regular.
El costo de almacenamiento es $1000 por unidad por cada semana de almacenamiento. Existe
un inventario previo de 2 unidades pero no se desea tener inventarios al finalizar la tercera
semana.
La gerencia desea conocer el nmero de unidades que se deben producir, semanalmente, para
maximizar la utilidad.
El problema, aunque no es directamente de transporte, se puede formular como uno de transporte y utilizar el mtodo simplex del transporte para encontrar la solucin. A tal efecto, cada
semana se considera como un sitio de destino y se agrega un sitio virtual a donde se enva el
eventual exceso de produccin. Los orgenes se pueden asimilar con el inventario previo y las
diferentes producciones de las tres semanas, distinguiendo tiempo regular y tiempo extra. La
tabla del problema como modelo de transporte es,
Semana1
Semana2
Semana3
Virtual
si
Inv. inicial
1000
2000
3000
S1 regular
6000
7000
8000
S1 extra
8000
9000
10000
S2 regular
10000
11000
12000
S2 extra
12000
13000
14000
8000
9000
10000
10000
11000
12000
S3 regular
S3 extra
dj
Prof. Victor Bernal
OPTIMIZACION
Pg. 80 de 131
2.
El problema de asignacin
Los problemas de asignacin presentan una estructura similar a los de transporte, pero con dos
diferencias: asocian igual nmero de orgenes con igual nmero de demandas y las ofertas en
cada origen es de valor uno, como lo es la demanda en cada destino. El problema de asignacin
debe su nombre a la aplicacin particular de asignar hombres a trabajos ( o trabajos a mquinas),
con la condicin de que cada hombre puede ser asignado a un trabajo y que cada trabajo tendr
asignada una persona. La condicin necesaria y suficiente para que este tipo de problemas tenga
solucin, es que se encuentre balanceado, es decir, que los recursos totales sean iguales a las
demandas totales. El modelo de asignacin tiene sus principales aplicaciones en: Trabajadores,
Oficinas al personal, Vehculos a rutas, Mquinas, Vendedores a regiones, productos a fabricar,
etc.
2.1.
es el llamado mtodo o algoritmo Hngaro. El Algoritmo Hngaro sirve para reemplazar los
mtodos tradicionales de la Programacin Binaria, que implican muchos clculos, aprovechando la forma especial que tienen los problemas de Asignacin. La primera versin conocida del
mtodo Hngaro fue publicada por Harold Kuhn en 1955. Este fue revisado por James Munkres en 1957, y ha sido conocido desde entonces como el algoritmo Hngaro, el algoritmo de
asignacin de Munkres, o el algoritmo de Kuhn-Munkres. El algoritmo desarrollado por Kuhn
est basado fundamentalmente en los primeros trabajos de otros dos matemticos Hngaros:
Dnes Knig y Jeno Egervry.
El algoritmo construye una solucin del problema primal partiendo de una solucin no factible
(que corresponde a una solucin factible del dual) hacindola poco a poco ms factible.
Paso 1. Dada una matriz de costos de un problema de asignacin balanceado, restar en cada
columna y en cada fila el nmero ms pequeo de esa columna o fila, del resto de los
con la que se pasa a la
elementos de esa columna o fila. Se obtiene as una matriz C
etapa siguiente.
seleccionar un cero en cada fila y columna. Eliminar
Paso 2. En la nueva matriz de costos, C,
durante el proceso de seleccin la columna y la fila a la que pertenece el cero seleccionado. Si al finalizar este paso se ha hecho una asignacin completa de ceros, es decir,
cada origen tiene asignado un slo destino y cada destino un origen, se ha encontrado
la asignacin ptima. En caso contrario continuar en el Paso 3.
Paso 3. Este paso contiene seis secciones que son:
a) Marcar cada fila que no contiene un cero asignado.
Prof. Victor Bernal
OPTIMIZACION
Pg. 81 de 131
b) Marque cada columna que contiene un cero (no necesariamente asignado) en la fila
marcada en el paso 3a).
c) Marcar cada fila que contiene un cero asignado en la columna marcada en el paso
3b).
d) Repetir los pasos 3b) y 3c) hasta que no se puedan marcar ms columnas o filas.
e) Tachar las filas no marcadas y las columnas marcadas.
f ) Seleccionar el nmero ms pequeo de los elementos no cubiertos por una tachadura horizontal o vertical. Restar ese elemento del resto de los no tachados y sumar
ese elemento a los tachados en cruz, es decir, por una tachadura horizontal y vertical. Los elementos cruzados por una sola tachadura no cambian.
Paso 4. Regresar al Paso 2.
2.2.
2.2.1.
asigna una actividad ficticia con un costo de cero para mantener la condicin del mtodo que
deben ser iguales el nmero de ofertas y demandas
2.2.2.
asignacin es una utilidad en vez de un costo. se considera la matriz de utilidades del problema
como la caracterstica nueva la cual consiste en que el nmero que aparece en cada celda
representa un beneficio en lugar de un costo.
2.2.3.
ma de asignacin y que se sabe que ciertas asignaciones son inaceptables. Para alcanzar esta
meta, simplemente se asigna un costo arbitrariamente grande representado mediante la letra
M . M es un nmero tan grande que si se le resta un nmero finito cualquiera, queda todava
un valor mayor que los dems.
2.3.
Ejercicios.
1. La empresa Milky comercializa leche en polvo. Milky posee tres depsitos desde donde
enva su producto a tres puntos de venta. La demanda de leche en polvo es 100 kg. en
el punto de venta A, 250 kg. en el punto de venta B y 150 Kg. en el punto de venta C. El
inventario en el centro de almacenaje 1 es 50 Kg., en el 2 es de 275 Kg y en el 3 es de
175 Kg. El costo de transporte por Kg. de producto entre los depsitos y los puntos de
venta se detalla en la siguiente tabla:
Punto de Venta
Depsito A
10
11
OPTIMIZACION
Pg. 82 de 131
Cunto debe enviar la empresa de cada depsito a cada punto de venta para minimizar
el costo? Formular y resolver el problema de transporte.
2. Una empresa de publicidad tiene que decidir que cliente asignar a cada uno de sus
ejecutivos de cuenta (cada ejecutivo no puede trabajar con ms de un cliente). El monto
estimado en miles de dlares que costara a la empresa tener a los ejecutivos de cuenta
trabajando con cada cliente est detallado en la siguiente tabla:
Clientes
Ejecutivos
Abott
15 19 20 18
Barry
14 15 17 14
Collins
11 15 15 14
Don
21 24 26 24
(Unidades)
(Unidades)
Valencia
200
Caracas
300
Cuman
200
San Cristbal
150
San Felipe
300
Los Teques
250
Valencia
Cuman
San Felipe
Caracas
San Cristbal
Los Teques
DE
OPTIMIZACION
Pg. 83 de 131
Tipo de abono
Zona
OFERTA
TIPO I
TIPO II
TIPO III
Capacidad (Ton)
Acarigua
25
Pritu
40
Turn
30
30
30
35
DEMANDA (Ton)
63
61
59
59
57
58
56
73
62
62
59
55
57
65
73
63
65
56
93
100
97
99
87
44
77
85
83
83
74
44
44
44
44
44
44
44
10
12
13
11
10
16
12
32
40
31
30
42
35
36
49
17
14
19
15
10
16
19
12
10
10
11
10
12
10
55
62
61
70
62
63
65
59
OPTIMIZACION
Pg. 84 de 131
Captulo
La programacin no lineal
Aunque los problemas de programacin lineal son muy comunes y cubren un amplio rango de
aplicaciones, en la prctica se tienen que enfrentar, con cierta frecuencia, otro tipo de problemas
que no son lineales. Cuando el conjunto de restricciones, la funcin objetivo, o ambos, son no
lineales, se dice que se trata de un problema de programacin no lineal (PPNL). En este captulo
se presentan algunos problemas de programacin no lineal. En algunos casos, coinciden con
los que se han descrito en captulos anteriores, pero bajo hiptesis distintas.
1.
Formulacin de problemas
sujeta a
h(x) = 0
g(x) 0
donde x = (x1 , . . . , xn )t es el vector de las variables de decisin, f : Rn R es la funcin objetivo, y g : Rn Rm y h : Rn Rp , donde g(x) = (g1 (x), . . . , gm (x))t y h(x) =
(h1 (x), . . . , hp (x))t , son las restricciones de desigualdad y de igualdad, respectivamente.
El anlisis elemental ensea que, en general, el mnimo valor de una funcin de una variable
se alcanza en el conjunto de puntos en los que la tangente es horizontal. Sin embargo, si se
considera la funcin
f (x) = (x + 2)2/3 (x 2)2/3
cuya grfica es
2
-4
-2
-1
-2
se encuentra que no tiene puntos donde la derivada es cero. Por otra parte, los lmites infinitos
son
lm f (x) = lm f (x) = 0
x+
adems, la derivada es
2
f (x) =
3
0
2x
(x 2)2
2/3 +
x+2
(x + 2)2
2/3
por lo tanto, como f (x) adquiere valores negativos, debe tener un mnimo y un mximo en algn
valor finito, estudiando ms a fondo la funcin se encuentra que su mnimo se da en x = 2
aunque all la derivada no existe. Lo anterior nos muestra que el problema de minimizacin
necesita mtodos especiales cuando la funcin no es diferenciable.
Sin embargo, la diferenciabilidad no garantiza un solucin inmediata. En efecto, si se considera
la funcin
f (x) =
Prof. Victor Bernal
1 2
x + 10(sen x x cos x)
10
OPTIMIZACION
Pg. 86 de 131
cuya grfica es
200
100
-30
-20
10
-10
20
30
-100
-200
-300
con tangente horizontal (puntos en los que f 0 (x) = 0). Estos puntos reciben el nombre de
puntos estacionarios y todos ellos, salvo uno, son ptimos locales. Puesto que si se restringe
la atencin a un pequeo entorno de ellos, se convierten en mximos o mnimos locales. La
ecuacin f 0 (x) = 0 no puede ser resuelta en forma cerrada, por lo que se deben utilizar mtodos numricos. La existencia de un conjunto infinito de puntos candidatos y la ausencia de
un mtodo para generarlos explcitamente, conducen a la imposibilidad de conocer, con total
certidumbre, si un determinado candidato es el ptimo global.
Los problemas prcticos de programacin no lineal involucran funciones tales que sus mnimos
locales sean tambin globales. En la figura se da una funcin que no cumple esta condicin.
f (x)
x
x1
x2
Hay puntos en el intervalo [x1 , x2 ] que estn por encima del segmento que une los mnimos.
La convexidad es aqu suficiente para evitar este comportamiento. Para ser convexa se exige
que la grfica est por debajo de la recta que une los extremos.
Un problema de programacin no lineal puede no tener solucin debido a:
1. La funcin no es acotada en S. Por ejemplo, f (x) = x, donde x R decrece sin lmite
hasta cuando x tiende a . En este caso se escribe nf f (x) = .
xS
OPTIMIZACION
Pg. 87 de 131
sujeta a x S;
x+
xS
entonces el problema
Minimizar z = f (x),
sujeta a x S;
OPTIMIZACION
Pg. 88 de 131
f (x)
x
a
x1
x2
Region de factibilidad
Definicin 10 (Diferenciabilidad continua). Una funcin f se dice continuamente dife si todas las derivadas parciales son continuas en x
. En este caso, tambin es
renciable en x
diferenciable.
En lo que sigue se considera el siguiente PPNL:
Minimizar z = f (x)
sujeta a
h(x) = 0
g(x) 0
donde f : Rn R, g : Rn Rm , h : Rn Rp con g(x) = (g1 (x), . . . , gm (x))t y h(x) =
(h1 (x), . . . , hp (x))t son funciones continuamente diferenciables en la regin factible S = {x : f (x) =
0; g(x) 0}.
2.
OPTIMIZACION
Pg. 89 de 131
= a. Esto se debe a las resproblemas con restricciones, tal como ilustra la figura en el punto x
tricciones del problema. Las condiciones de Karush-Kuhn-Tucker generalizan las condiciones
necesarias de optimalidad para los problemas con restricciones.
f (x)
f (b) = 0
f (c) = 0
x
a
f (
x) +
p
X
k=1
k hk (
x) +
m
X
j gj (
x) = 0
j=1
gj (
x ) 0, j = 1, . . . , m
hk (
x ) = 0, k = 1, . . . , p
j gj (
x ) = 0, j = 1, . . . , m
j 0, j = 1, . . . , m
Los vectores y son los multiplicadores de Kuhn- Tucker. La condicin j gj (
x ) = 0 es la
condicin de holgura complementaria. La condicin j 0 se llama condicin dual de factibilidad y requiere la no-negatividad de los multiplicadores de las restricciones de desigualdad.
Las condiciones gj (
x ) 0 y hk (
x ) = 0 se llaman condiciones primales de factibilidad.
Con el Lagrangiano L(x, , ) = f (x) + t h(x) + y g(x) las condiciones KKT se escriben como
x L(x, , ) = 0
L(x, , ) = 0
L(x, , ) 0
t L(x, , ) = 0
0
Prof. Victor Bernal
OPTIMIZACION
Pg. 90 de 131
2.1.
p
X
l hk (
x) = 0
k=1
hk (
x ) = 0, k = 1, . . . , p
3. Problemas con restricciones de desigualdad solamente. Las condiciones de KKT resultan
f (
x) +
m
X
j gj (
x) = 0
j=1
gj (
x ) 0, j = 1, . . . , m
j gj (
x ) = 0, j = 1, . . . , m
j 0, j = 1, . . . , m
2.2.
sujeta a
x12 + x2 = 0
x12 + x22 4 0
x1 0
x2 0
Sean y 1 , 2 , 3 los multiplicadores asociados a la igualdad y las desigualdades, respectivamente. Las condiciones de KKT resultan:
1. La condicin de estacionariedad del Lagrangiano es
0
2x1
0
1
2x1
1
=
+ 1
+ 2 + 3 +
0
1
2x2
0
1
1
Prof. Victor Bernal
OPTIMIZACION
Pg. 91 de 131
, ), donde
La nica condicin,
a
partir
de
las
condiciones
primales
de
factibilidad,
son
x
=
(
1 + 17
=
y, de la estacionariedad, resulta
2
p
p
1 + 2 1 2 = 0
1 + 21 + = 0
Prof. Victor Bernal
OPTIMIZACION
Pg. 92 de 131
cuya solucin es
2
>0
1 =
2(1 + 2)
1
2
= +
2 2(1 + 2 )
que es un punto KKT.
Caso 4: El ltimo caso es 1 = 2 = 3 = 0. De la estacionariedad, resulta el sistema de
ecuaciones
1 2x1 = 0
1+=0
y se obtiene la solucin = 1 y x1 = 1/2. De las condiciones primales de factibilidad se
obtiene x2 = x12 = 1/4 y puesto que se trata de un punto factible, es tambin un punto KKT.
Seguidamente se justifica por qu las condiciones de KKT son necesarias para la mayora de
los PPNL. Para ello es necesaria la siguiente definicin.
Rn y j {1, . . . , m}. La restriccin de desigualDefinicin 12 (Restriccin activa). Sea x
si gj (
dad gj (x) 0 se dice que es una restriccin activa en el punto x
x ) = 0, por el contrario,
se dice inactiva si gj (
x ) < 0. El conjunto de los ndices de las restricciones activas de denota por
I(
x ), es decir,
I(
x ) = {j : gj (
x ) = 0}.
La razn para distinguir entre restricciones activas e inactivas es que una restriccin inactiva
en un punto permite encontrar un entorno de ese punto en el que permanece inactiva, mientras
que para una restriccin activa esto no podra ser, de hecho, no es cierto. La consecuencia se
expresa en el siguiente lema.
Lema 1. Las condiciones de KKT son necesarias para un ptimo local de la mayora de PPNL.
2.3.
OPTIMIZACION
Pg. 93 de 131
Ambos existen, puesto que el conjunto factible es cerrado y acotado, y la funcin es continua.
Las condiciones de KKT son:
3x12 + + 2x1 = 0
3x22 + + 2x2 = 0
3x32 + + 2x3 = 0
x12 + x22 + x32 4 = 0
(x1 + x2 + x3 1) = 0
x1 + x2 + x3 1,
3x12 + 2x1 = 0
3x22 + 2x2 = 0
3x32 + 2x3 = 0
x12 + x22 + x32 4 = 0
x1 + x2 + x3 1,
(2/ 3, 2/ 3, 2/ 3).
Prof. Victor Bernal
OPTIMIZACION
Pg. 94 de 131
En principio todos los puntos pueden conducir a mximos o mnimos, pues es nulo.
Caso 2: 0. En este caso el sistema es:
3x12 + + 2x1 = 0
3x22 + + 2x2 = 0
3x32 + + 2x3 = 0
x12 + x22 + x32 4 = 0
x1 + x2 + x3 = 1.
Las soluciones con > 0 seran candidatas al mnimo y las que verifican < 0 lo seran al
mximo. Las tres primeras ecuaciones expresan que los vectores (3x12 , 3x22 , 3x32 ), (1, 1, 1) y
(2x1 , 2x2 , 2x3 ) son linealmente dependientes, por lo que el determinante asociado debe anularse. Este determinante es un Vandermondiano, cuyo valor, salvo el signo, es (x1 x2 )(x1
x3 )(x2 x3 ). Por tanto, eliminando los multiplicadores de esta forma se resuelve el sistema
equivalente
(x1 x2 )(x1 x3 )(x2 x3 ) = 0
x12 + x22 + x32 4 = 0
x1 + x2 + x3 = 1.
De nuevo, por la simetra, es suficiente considerar el caso particular x1 = x2 . Sustituyendo esta
condicin en las otras dos ecuaciones se llega a
x3 + 2x1 = 1
2x12 + (1 2x1 )2 = 4.
Por lo que se obtienen las dos soluciones
1
(2 + 22, 2 + 22, 2 2 22)
6
y
1
(2 22, 2 22, 2 + 2 22)
6
Por otra parte, si se aaden las primeras tres ecuaciones y se consideran las restricciones, se
llega a
12 + 3 + 2 = 0,
que da la relacin entre los dos multiplicadores. Resolviendo en y llevando el resultado a la
primera ecuacin se obtiene
3x12 + x1 (12 + 3) = 0
y por ello
=
Prof. Victor Bernal
3x1 (4 x1 )
1 3x1
OPTIMIZACION
Pg. 95 de 131
Usando el valor obtenido (x1 = (2 22)/6), es fcil comprobar que en ambos casos < 0 por
lo que estos dos puntos para el Caso 2 son candidatos al mximo.
Una vez identificados los candidatos al mximo y mnimo, basta calcular los valores de la
funcin objetivo para cada uno de ellos y decidir los valores extremos.
En este ejemplo, el mnimo se alcanza en (2, 0, 0), (0, 2, 0) y (0, 0, 2) y su valores 8, y el
68 + 11 22
.
mximo se alcanza en (1/6)(2 22, 2 22, 2 + 2 22), con un valor de
18
3.
Si se considera un problema de programacin no lineal acotado y se observa una de sus res b, o g(x)
b o g(x)
= b. Si se modifica el trmino
tricciones, esta sera de la forma g(x)
independiente b se tiene un nuevo problema con una nueva solucin ptima. Si f (b) es el valor ptimo de la funcin objetivo del problema para cada valor de b, el multiplicador de Kuhn y
Tucker asociado a la restriccin resulta ser la derivada de esta funcin, tal como lo establece
el siguiente teorema.
Teorema 5. Si un problema de programacin no lineal es acotado y definido por funciones de
Entonces, el multiplicador i
clase C 1 y un ptimo local x . con vector de multiplicadores .
bi (o con , o con =) es la derivada de la funcin valor
asociado a una restriccin gi (x)
ptimo respecto al trmino independiente bi :
f (b)
i =
bi b
Por lo tanto, representa el incremento que experimenta el valor ptimo de funcin objetivo por
cada unidad que incrementamos el trmino independiente bi .
Por consiguiente, si un trmino independiente b correspondiente a una restriccin de multiplicador experimenta un incremento b, el valor ptimo de la funcin objetivo del nuevo
problema con b incrementado experimentar un incremento aproximadamente igual a
f b.
Esta aproximacin slo sera aceptable para incrementos marginales de b, esto es, incrementos
pequeos en comparacin con el valor de b.
Ntese que si la restriccin no est saturada en el ptimo x entonces la condicin de holgura
complementaria asociada a la restriccin implica que i = 0 y, en efecto, esto significa que una
pequea modificacin en bi no altera el valor ptimo, ya que dicho valor ptimo se seguir
alcanzando en el mismo punto x .
Por otra parte, puede suceder (aunque no es frecuente) que i = 0 aunque la restriccin est
saturada, y entonces no hay informacin sobre el comportamiento del valor ptimo al variar
bi . En resumen, para interpretar un multiplicador nulo se ha de tener en cuenta lo siguiente:
Si un multiplicador de Kuhn y Tucker es nulo hemos de distinguir dos casos: Si la restriccin no
Prof. Victor Bernal
OPTIMIZACION
Pg. 96 de 131
est saturada se interpreta como que una variacin del coeficiente de la restriccin no afecta a
la solucin ptima, mientras que si la restriccin est saturada no proporciona ninguna informacin.
3.1.
Ejemplo. La funcin de costos de una empresa viene dada por C(x, y) = x 2 +y 2 +2x+
4y + 10, donde x, y son las cantidades, respectivas, producidas de dos artculos. Determinar
el costo mnimo necesario para producir un total de 21 unidades de producto. Qu sucedera
si la empresa decidiera incrementar su produccin en dos unidades?
Solucin: El problema es minimizar el costo sujeto a la restriccin x + y = 21, es decir,
Minimizar z = x 2 + y 2 + 2x + 4y + 10
sujeto a
x + y = 21
Para resolverlo se comprueba la posibilidad de aplicar las condiciones necesarias de optimalidad:
1. Tanto la funcin objetivo como la restriccin son de clase C 2 porque son polinomios.
2. Como clasificacin de restricciones se cumple que la restriccin es lineal.
Por consiguiente, si existe mnimo, ha de ser un punto que cumpla las condiciones necesarias.
Para escribirlas se evala la funcin Lagrangiana:
L(x, y, ) = x 2 + y 2 + 2x + 4y + 10 + (21 x y).
Las condiciones necesarias son:
x + y = 21,
L
= 2x + 2 = 0,
x
L
= 2y + 4 = 0.
y
2 0
,
HC(x, y) =
0 2
que es definida positiva, luego C es convexa. Concluimos que el punto (11, 10) es un mnimo
global estricto. Por lo tanto el costo mnimo es C(11, 10) = 293.
Prof. Victor Bernal
OPTIMIZACION
Pg. 97 de 131
Funcin de beneficios
sujeto a
x + y + z 500
Produccin total
2x + 6y + z 1500
x + 2y 100
Costo de la produccin
Cantidad empleada de un insumo I
x, y, z 0
La solucin ptima es (x, y, z) = (100, 0, 1.300) con multiplicadores (1 , 2 , 3 ) = (0, 2, 3),
(1 , 2 , 3 ) = (0, 14, 0) (los ltimos son los de las restricciones de signo). Interpretar estos
multiplicadores.
Solucin: El multiplicador 1 es nulo porque la restriccin no est saturada (la produccin
ptima es de 1400 > 500 unidades). Indica que aunque se exija producir ms de 500 unidades
en total ello no afectar a la solucin ptima. Por cada unidad adicional en que la empresa
pudiera incrementar su presupuesto sus beneficios aumentarn en 2 unidades monetarias. Por
cada unidad adicional que la empresa pudiera emplear del insumo I, sus beneficios aumentarn
en 3 unidades monetarias.
Los multiplicadores 1 y 3 son nulos porque las restricciones x 0 y z 0 no estn saturadas
en la solucin ptima. Esto indica que si se cambiaran por x 1 o z 1 la solucin seguir
siendo la misma. Por cada unidad que la empresa fabricara del segundo artculo, sus beneficios
Prof. Victor Bernal
OPTIMIZACION
Pg. 98 de 131
Ejercicios
1. Resolver:
a) Min. x 2 + xy + y 2 6x + 2
b) Max. x 2 + xy + y 2 + x + 5y
d) Max. 4x 6y x 2 2y 2
d) Opt. x 2 + xy + yz y 2 z2
s.a. 3x + y = 6
b) Opt.
x2
+ y2
+ z2
s.a. x + z = 2
+ t2
x+y =4
s.a. x + y + z + t = 1
c) Opt.
x2
+ y2
+ z2
e) Opt. 4x y
s.a. y = x 2
2x 2y
s.a. x + y 2z = 0
y x =0
4. Resolver
Max. xy
s.a. x 2 + y 2 = 8.
5. Considerar el problema:
Min x + 4y
s.a. xy = 1
x, y 0.
a) Comprobar grficamente que existe mnimo global, y que dicho mnimo es un mnimo local del problema que resulta de eliminar las condiciones de no negatividad.
b) Calcular dicho ptimo analticamente.
6. Resolver
Max. x + y + z
s.a. x 2 + y 2 + z2 = 1.
Prof. Victor Bernal
OPTIMIZACION
Pg. 99 de 131
OPTIMIZACION
c) Max. x + y
s.a. x 2 + y 2 1
d) Min. x + y
s.a. x 2 + y 2 1
OPTIMIZACION
e) Min. x
g) Max. x 2 + y 2
s.a. x + y 0
s.a. xy 25
y 1
x, y 0
f ) Max. x
s.a. x 2 + y 2 1
x, y 0
OPTIMIZACION
OPTIMIZACION
Captulo
Programacin cuadrtica
Un problema con restricciones de tipo lineal y funcin objetivo de tipo cuadrtico se llama
de programacin cuadrtica. A causa de la gran variedad de aplicaciones, la programacin
cuadrtica es generalmente considerada como una disciplina aparte de la programacin no
lineal. A continuacin se expone la forma de convertir el problema de programacin cuadrtica
de tal manera que se pueda resolver mediante una sencilla modificacin del mtodo simplex.
Esta forma de solucin se puede deducir a partir de las condiciones de KarushKuhnTucker.
1.1.
1 t
x Qx
2
Sujeto a Ax b, x 0
Min. f (x) = c t x +
donde
c1
c
2
c=
.. ,
.
cn
q11
q12
...
q
21
Q=
..
.
qn1
q22
..
.
...
..
.
105
qn2
q1n
q2n
..
.
. . . qnn
donde c t es un vector fila ndimensional que describe los coeficientes de los trminos lineales
en la funcin objetivo y Q es una matriz que siempre se puede arreglar para que sea simtrica,
llamada matriz Hessiana, de dimensin n n dada por los coeficientes de la parte cuadrtica.
La simetra se puede asumir puesto que
1
x Qx = (x Qx) = x Q x = (x t Qx + x t Qt x) = x t
2
t
Q + Qt
2
!
,
por lo tanto se puede reemplazar Q por la matriz simtrica (Q + Qt )/2. Los trminos constantes se pueden eliminar del modelo pues no afectan la solucin. Como en la programacin
lineal, el vector columna x, ndimensional contiene las variables de decisin y las restricciones
estn definidas por la matriz A de dimensin m n y por el vector columna b que agrupa los
trminos independientes. Se supone que existe al menos una solucin factible y que la regin
definida por las restricciones es acotada.
Cuando la funcin objetivo f (x) es estrictamente convexa en toda la regin de factibilidad el
problema tiene un nico mnimo local que tambin es mnimo global. Se garantiza la convexidad estricta si la matriz Q es positiva definida (el factor 1/2 se incluye en el trmino cuadrtico
para simplificar la expresiones de la primera y segunda derivadas de f ).
1.2.
f (x1 , x2 , x3 ) =
5 2
5
x1 2x1 x2 x1 x3 + 2x22 + 3x2 x3 + x32 + 2x1 35x2 47x3 + 5
2
2
entonces
Q=
2
1
1.3.
2 1
4
3
gramacin cuadrtica es determinar las condiciones de KKT en el contexto especfico del problema, el Lagrangiano es,
L(x, , ) =
1 t
x Qx + c t x + t (Ax b) t x
2
x 0
t x = 0
OPTIMIZACION
Ax b
(factibilidad primal)
0 ,
0 c + Qx + At
(factibilidad dual)
0 = x t (c + Qx + At )
0 = t (Ax b),
(holgura complementaria)
Los siguientes teoremas resumen las condiciones de optimalidad, de acuerdo con la definicin
de las condiciones de KKT.
es una solucin factible del proTeorema 6 (Condiciones necesarias de optimalidad). Si x
, de m componentes, tal que
blema de programacin cuadrtica, entonces existe un vector fila
) es un par KKT.
(
x,
Si ahora se considera el caso convexo, como la regin de factibilidad es un conjunto convexo,
entonces, f es convexa si, y slo si, 2 f (x) = Q es semidefinida positiva (suponiendo que
Q es simtrica). Los resultados con las condiciones de KKT para el caso convexo originan el
siguiente teorema.
Teorema 7 (Condiciones necesarias y suficientes de optimalidad). Si Q es simtrica y
es solucin del problema de programacin cuadrtica si, y
semidefinida positiva, entonces x
, de m componentes, tal que (
) es un par KKT.
slo si, existe un vector fila
x,
1.4.
KKT se introducen las correspondientes variables de holgura en las desigualdades para obtener
las ecuaciones
c + Qx + At y = 0, Ax b + v = 0
Prof. Victor Bernal
OPTIMIZACION
Ahora se pueden escribir las condiciones KKT con los trminos constantes en el lado derecho,
Qx + At y =c
Ax + v =b
x 0, 0,
y 0, v 0
y t x = 0, v = 0
Las dos primeras expresiones son desigualdades lineales, la tercera restringe las variables a ser
no negativas y la cuarta es la condicin de holgura complementaria.
1.5.
La solucin ptima. La solucin ptima se puede obtener utilizando una versin mo-
dificada del mtodo simplex. Las condiciones de holgura complementaria se toman en forma
implcita con una regla de restriccin para entrar en la base. El procedimiento para convertir
las condiciones en uno de programacin lineal es
1. Se toman como constantes estructurales las definidas por las dos primeras igualdades.
2. Si alguno de los valores del lado derecho es negativo, se multiplica en ambos lados por
-1.
3. Se agrega una variable artificial a cada una de las ecuaciones.
4. Se escribe el problema como uno de programacin lineal
La funcin objetivo, de la que se debe obtener el mnimo, es la suma de las variables artificiales
pero con la restriccin adicional definida por la holgura complementaria que debe satisfacerse
en cada iteracin. Si la suma es cero, la solucin debe satisfacer las condiciones KKT.
Para que se cumpla la holgura complementaria se tiene que modificar la regla de seleccin de
la variable que entra de acuerdo con las siguientes condiciones,
xj y yj son complementarias para j = 1, . . . , n
i y vi son complementarias para i = 1, . . . , m
La variable que entra es aquella cuyo costo reducido sea ms negativo dado que su variable
complementaria no est en la base o deja la base en la misma iteracin. Cuando el algoritmo
termina, el vector x define la solucin ptima y el vector define las variables ptimas duales.
1.6.
x1 + x2 5
Sujeto a
x1 3
x1 , x 2 0
Solucin: Los datos y la definicin de las variables se pueden escribir como se indica en seguida.
La matriz Q es positiva definida por lo que las condiciones KKT son necesarias y suficientes
Prof. Victor Bernal
OPTIMIZACION
5
1
1
2
0
8
, b =
, A =
ct = , Q =
3
1 0
0 8
16
+1
8x2
x1
+2
y1
+1
=
y2
+x2
= 16
+v1
x1
+v2
Para crear el programa lineal apropiado, se agregan variables artificiales a cada restriccin y se
minimiza la suma
Min. a1 + a2 + a3 + a4
sujeto a
2x1
+1
8x2
x1
+2
y1
+1
+a1
y2
+x2
+a2
+v1
x1
= 16
+a3
+v2
+a4
Var. bsicas
Solucin
32
x2
a2
(a1 , x2 , a3 , a4 )
(8, 2, 3, 3)
14
x1
a3
(a1 , x2 , x1 , a4 )
(2, 2, 3, 0)
a4
(a1 , x2 , x1 , 1 )
(2, 2, 3, 0)
a1
(2 , x2 , x1 , 1 )
(2, 2, 3, 0)
2.
Ejercicios
Resolver los siguientes problemas utilizando el mtodo simplex modificado y comparar con la
solucin obtenida por los programas Solver de Excel y LINGO. Si el problema es de dos variables
verifique grficamente la solucin.
2
1. mn f (x,y) = x 2 + 2y
x+y 1
Sujeto a
x, y 0
OPTIMIZACION
2. mn f (x,y) = 2x 2 + y 2
2xy 5x 2y
3x + 2y 20
Sujeto a 5x 3y = 4
x, y 0
2
3. mn f (x,y) = x 2 + 2y
24x 20y
x + 2y 0
x + 2y 9
Sujeto a
x+y 8
x+y 0
y2
x2
+ 3y xy +
4. mn f (x, y) = x +
2
2
x + 4y 7
Sujeto a
3x + 2y 8
x, y 0
5. mn f (x,y, z) = x + x 2 +2xy + 3y 2 + 2z + 2yz + z2
x y + 2z 1
5y + 4z 2
Sujeto a
3x 2y 1
x, y, z 0
6. mn f = x12 + 2x22 + 3x1 + 4x3 + 5x4
x1 + 2x2 + 3x3 = 4
Sujeto a
x1 + 2x2 + 3x4 = 4
xi 0, i = 1, . . . , 4
7. mn f (x,y) = 2x 2 + y 2 20x 10y
8 x + 3y
Sujeto a
12 = x + y
x, y no restringidas en signo.
2
8. mn f = 6x
9x2 18x1 + 9x22
1 x2 + 2x1 +
x1 + 2x2 = 15
Sujeto a
xi 0, i = 1, 2
x2
9. mn f = 2x1 + 1 6x2 x1 x2 + x22
2
3x1 + x2 25
Sujeto a
x1 + 2x2 10
xi 0, i = 1, 2
2
2
10. mn f = 6x
1 x2 + 2x1 +9x2 18x1 + 9x2
x1 + 2x2 15
Sujeto a
x1 , x2 0
OPTIMIZACION
Apendice
El programa LINGO
1.
LINGO, cuyo nombre es una abreviatura del ingles, LINear Generalize Optimizer, es un lenguaje de modelado matemtico diseado especialmente para formular y resolver una amplia
variedad de problemas de optimizacin que incluye problemas de programacin lineal, programacin entera y de programacin no lineal. Uno de los rasgos ms poderosos de LINGO es
que su aplicacin en el lenguaje de modelo matemtico permite formular un problema de una
manera muy similar a la notacin matemtica normal, as como expresar una serie completa
de restricciones en una declaracin compacta. Esto lleva a modelos que son mucho ms fciles
de modificar y mantener. Como ejemplo, consideremos el siguiente problema de programacin
111
lineal.
m
ax
Z = 20x + 31y,
Sujeto a:
2x + 5y 16
4x 3y = 6
x 0, y 0
La captura de pantalla muestra la formulacin y solucin de este problema con LINGO.
La primera lnea de esta formulacin es slo un comentario que describe el modelo. Los comentarios o documentacin del problema comienzan con un signo de exclamacin (!) y finalizan
con punto y coma (;). Este es un requisito para todos los comentarios en una formulacin LINGO. La segunda lnea muestra la funcin objetivo, sin incluir la variable Z e indica que se quiere
maximizar (m
ax). Cada multiplicacin debe ser indicada por un asterisco (*). La funcin objetivo finaliza con un punto y coma, al igual que cada una de las restricciones funcionales en las
siguientes dos lneas. Las restricciones de no negatividad no se muestran en esta formulacin
debido a que estas restricciones se asumen automticamente por LINGO. Si alguna variable x
no est restringida es necesario aadir @FREE(x) al final de la formulacin.
Las variables pueden ser escritas bien sea en minsculas o maysculas, porque LINGO no distingue entre maysculas y minsculas. Por ejemplo, una variable X1 se puede escribir ya sea x1
o X1. Del mismo modo, las palabras pueden ser minsculas o maysculas (o una combinacin),
para mayor claridad se recomienda utilizar slo maysculas para todas las palabras reservadas
que tienen un significado predefinido en LINGO.
Observese ahora la barra de men en la parte superior de la ventana de LINGO en la captura de
Prof. Victor Bernal
OPTIMIZACION
pantalla. El men File y el men Edit se comportan del modo usual en Windows. Para resolver un
modelo, una vez que se ha formulado, se hace clic en el icono rojo
Antes de tratar de resolver el modelo, LINGO comprobar primero si el modelo tiene errores
de sintaxis y , de ser as, indicar donde se encuentran. Suponiendo que no hay este tipo de
errores, un solucionador comenzar resolver el problema, durante el cual aparecer una ventana del estado de la solucin en la pantalla. Cuando termine el programa de solucin, aparecer
en la pantalla una ventana con el informe de la solucin (Solution Report). La apariencia del
informe de solucin se puede modificar haciendo clic en LINGO/ Options.../ Interface/ Output
Level:/ Terse / Verbose. tal como se aprecia en la figura siguiente:
La mitad inferior de la figura muestra el informe de una solucin para el ejemplo. La columna
de valores (Value) muestra los valores ptimos de las variables de decisin. La primera entrada
de la columna de holguras (Slack or Surplus) muestra el valor de la funcin objetivo. Las dos
entradas siguientes indican la diferencia entre los dos trminos de las respectivas restricciones.
Las columnas del costo reducido (Reduced Cost) y del precio dual (Dual Price) ofrecen parte
de la informacin del anlisis de sensibilidad para el problema.
Para generar un informe, con mayor o menor detalle, del anlisis de sensibilidad se elige la
opcin en Range del men LINGO.
Ejemplo. Consideremos un problema de produccin en el que se debe fabricar una serie de
cuatro productos durante la prxima semana.
Para cada producto, cada unidad producida requiere una cantidad conocida de tiempo de produccin en cada una de tres mquinas. Cada mquina tiene un cierto nmero de horas de
produccin disponible por semana. Cada producto proporciona un beneficio, conocido, por
unidad fabricada.
Prof. Victor Bernal
OPTIMIZACION
La hoja de clculo que resume el problema muestra tres tipos de datos: datos relacionados con
las mquinas, datos relacionados con el producto, y los datos relativos a las combinaciones de
cada mquina y cada producto.
El objetivo es determinar cuantas unidades se deben fabricar de cada producto de manera que
se maximice el beneficio total, sin superar la capacidad de operacin de cada mquina.
En su forma algebraica, la estructura del modelo de programacin lineal para este problema
lleva a elegir los niveles de produccin, no negativos, (nmero de unidades por producir durante
la prxima semana) para los cuatro productos con el fin de maximizar el beneficio econmico
del fabricante. La formulacin matemtica es:
m
ax
4
X
cj xj
j=1
Sujeto a:
4
X
aij xi bi ,
i = 1, 2, 3.
j=1
En donde,
xj = Nivel de produccin del producto Pj,
cj = Beneficio unitario del producto Pj,
aij = Tiempo de produccin en la mquina i por unidad de producto Pj,
bi = Tiempo de produccin disponible por semana en la mquina i.
Este modelo es lo suficientemente pequeo, con slo 4 variables de decisin y 3 restricciones,
que podra ser escrito por completo, trmino a trmino, pero sera tedioso. No obstante, puede
Prof. Victor Bernal
OPTIMIZACION
suceder que en alguna aplicacin similar se originen cientos de variables de decisin y restricciones, as que escribir una versin trmino a trmino de este modelo cada semana no sera
prctico. LINGO proporciona una formulacin mucho ms eficiente y compacta, similar a la
anterior expresin matemtica del modelo, como veremos a continuacin.
2.
Este modelo tiene una naturaleza repetitiva ya que todas las variables de decisin son del mismo
tipo y todas las restricciones son semejantes. LINGO utiliza conjuntos (SETS) para describir este
carcter repetitivo. Los conjuntos de inters en este caso son
1. El conjunto de mquinas: dobladora, cortadora, soldadora.
2. El conjunto de productos: P1, P2, P3, P4.
Los atributos de inters para los miembros de estos grupos son:
1. Atributo para cada mquina: Nmero de horas de tiempo de produccin disponible por
semana.
2. Atributos para cada producto: Beneficio por unidad producida, nmero de unidades
producidas por semana.
En este caso, los dos primeros tipos de atributos son los datos de entrada, o parmetros del
modelo, mientras que el ltimo tipo (nmero de unidades producidas por semana de los respectivos productos) define las variables de decisin para el modelo. En el ejemplo, se describen
en LINGO estos atributos de la siguiente manera:
Maquina: HorasDispProd.
Producto: Benef, Produc.
Otro tipo de informacin es el nmero de horas de produccin que cada unidad de cada producto, debe usar en cada una de las mquinas. Este nmero puede ser visto como un atributo
para los elementos del conjunto de todas las combinaciones productomquina. Debido a que
este conjunto se obtiene a partir de los dos conjuntos simples se conoce como un conjunto derivado. Vamos a abreviar, en LINGO, el atributo para los miembros de este grupo de la siguiente
manera:
MaPr( Maquina, Producto): HorasUsadProd.
Una formulacin de LINGO tiene generalmente tres secciones.
1. Una seccin establece que especifica los conjuntos y sus atributos. Se puede pensar en
ella como la descripcin de la estructura de los datos.
2. Una seccin de datos que, o bien proporciona los datos para ser utilizados o indica
dnde se va a obtener.
3. Una seccin que proporciona el modelo matemtico en s.
Prof. Victor Bernal
OPTIMIZACION
Comenzamos mostrando las dos primeras secciones para el ejemplo a continuacin y luego se
agregar el modelo matemtico, en esta oportunidad, de maximizacin.
! Ejemplo de mezcla de productos;
! La seccin SETS no dice nada sobre el numero o nombres de las
maquinas o productos. La informacin proviene de los datos;
SETS:
! Conjuntos bsicos;
Maquina: HorasDispProd;
Producto: Benef, Produc;
! Conjunto derivado;
MaPr( Maquina, Producto): HorasUsadProd;
ENDSETS
DATA:
! Nombres de las maquinas y horas disponibles;
Maquina, HorasDispProd =
Dobladora
28
Cortadora
34
Soldadora 21;
! Nombres de los productos y beneficios;
Producto, Benef =
P1 26
P2 35
P3 25
P4 37;
! Horas gastadas por producto;
HorasUsadProd = 1.7 2.1 1.4 2.4
1.1 2.5 1.7 2.6
! Dobladora;
! Cortadora;
OPTIMIZACION
suma la expresin que sigue a los dos puntos (:), la ganancia por unidad de producto multiplicada por el nmero de productos, en todos los elementos del conjunto que precede a los
dos puntos (:). En particular, ya que este conjunto es el conjunto de productos Producto(j),
j = 1,2,3,4, la suma es sobre el ndice j. Esta funcin particular, @SUM, expresa la funcin
objetivo,
4
X
c j xj
j=1
aij xj bi .
j=1
Por lo tanto, al aadir la tercera seccin de la formulacin LINGO (el modelo matemtico), se
obtiene la formulacin completa que se muestra a continuacin:
! Ejemplo de mezcla de productos;
! La seccin SETS no dice nada sobre el numero o nombres de las
maquinas o productos. La informacin proviene de los datos;
SETS:
! Conjuntos bsicos;
Maquina: HorasDispProd;
Producto: Benef, Produc;
! Conjunto derivado;
MaPr( Maquina, Producto): HorasUsadProd;
ENDSETS
DATA:
! Nombres de las maquinas y horas disponibles;
Prof. Victor Bernal
OPTIMIZACION
Maquina, HorasDispProd =
Dobladora
28
Cortadora
34
Soldadora
21;
! Dobladora;
! Cortadora;
475.0000
Infeasibilities:
0.000000
0.05
Model Class:
LP
PRODUC( P1)
0.000000
3.577922
PRODUC( P2)
10.00000
0.000000
PRODUC( P3)
5.000000
0.000000
PRODUC( P4)
0.000000
1.441558
OPTIMIZACION
Row
Slack or Surplus
Dual Price
475.0000
1.000000
0.000000
15.25974
0.5000000
0.000000
0.000000
2.272727
Por lo tanto, se fabrican 10 unidades de producto P2 y 5 unidades del producto P3, la fila 1 da
el beneficio total resultante de 475. Esta solucin utiliza exactamente la capacidad disponible
de la primera y tercer mquinas (las filas 2 y 4 dan una holgura de 0) y deja la segunda mquina
con 0,5 horas sin trabajo. La seccin Row de este informe es un poco ambigua, es necesario
recordar que la lnea 1 en el modelo se refiere a la funcin objetivo y las filas subsiguientes son
las restricciones en la capacidad de la mquina. Esta asociacin se aclara en el informe al dar
nombres a cada restriccin en el modelo. Esto se hace encerrando el nombre en [], colocado al
frente de la restriccin. Se introduce el siguiente fragmento modificado del modelo.
[Beneficio] MAX = @SUM( Producto(i): Benef(i)*Produc(i));
@FOR( Maquina(i):
! Horas gastadas <= Horas disponibles;
[Capacidad] @SUM( Producto(j): HorasUsadProd(i,j)*Produc(j))<= HorasDispProd(i); );
El informe de solucin (Solution Report) contiene ahora los nombres de las filas.
Row
Slack or Surplus
Dual Price
BENEFICIO
475.0000
1.000000
CAPACIDAD( DOBLADORA)
0.000000
15.25974
CAPACIDAD( CORTADORA)
0.5000000
0.000000
CAPACIDAD( SOLDADORA)
0.000000
2.272727
Una caracterstica importante de un modelo LINGO como ste es que es completamente proporcional en los productos y las mquinas. En otras palabras, si se quiere resolver otra versin de
este problema de fabricacin de productos con un nmero diferente de mquinas y productos
basta introducir los nuevos datos en la seccin de datos. No se require cambiar la seccin SETS
o cualquiera de las restricciones. Tiene como ventaja que esta conversin puede ser hecha por
personas sin ninguna comprensin de las ecuaciones del modelo.
3.
OPTIMIZACION
4.
OPTIMIZACION
La funcin @OLE( ) acta como una lnea conductora. Permite el flujo de datos desde la hoja de
clculo hacia LINGO y de vuelta a la hoja de clculo. Los llamados enlaces e inmersin de objetos
(OLE) es una caracterstica del sistema operativo Windows. LINGO aprovecha esta caracterstica
para establecer un vnculo entre el modelo LINGO y una hoja de clculo. Los tres primeros
usos de @OLE( ) en el ejemplo ilustran que esta funcin se puede utilizar a la derecha de una
instruccin de asignacin para recuperar datos de una hoja de clculo. El ltimo uso ilustra
que esta funcin puede ir en el lado izquierdo de una instruccin de asignacin para llevar
resultados de la solucin a su lugar en la hoja de clculo.
Como se observa en la figura la solucin ptima se ha colocado de nuevo en la hoja de clculo
en las clulas D6:G6. Un paso sencillo, pero oculto, que debe hacerse previamente en la hoja
de clculo es definir nombres de rango para los distintos grupos de celdas que contienen los
datos. Los nombres de rango se puede definir en Excel utilizando el botn derecho del ratn y
el men Definir nombre.... Por ejemplo, al conjunto de celdas A8:A10 se le dio como nombre
de rango Maquina. Del mismo modo, al conjunto de celdas D4:G4 se le dio como nombre de
rango Producto.
El ejemplo anterior se supone que la hoja de clculo apropiada se ha abierto en Excel y que esta
es la nica hoja de clculo abierta. Para asegurarse de que la hoja de clculo correcto se hace
referencia, o si desea recuperar datos de varias hojas de clculo, entonces se escribe la ruta del
archivo en el argumento de @OLE( ) argumento. Por ejemplo, para asegurarse de que los datos
HorasUsadProd son recuperados desde el archivo C:\InvDeOp\ejemplo1.xlsx se utiliza, en la
seccin DATA la instruccin:
HorasUsadProd = @OLE(C:\InvDeOp\ejemplo1.xlsx);
Prof. Victor Bernal
OPTIMIZACION
La conexin entre LINGO y la hoja de clculo puede fortalecerse aun mas, de modo que el
modelo de LINGO se almacene en una pestaa de la hoja de clculo. En ese caso, el usuario
puede elaborar el modelo para que resida completamente en una sola hoja de clculo. Esto
permite combinar las mejores caractersticas de la hoja de clculo y el lenguaje de modelado.
5.
Un depsito comn para los datos de una gran empresa se encuentra en una base de datos.
De una manera similar a @OLE( ), LINGO tiene una funcin de conexin, @ODBC( ), para la
transferencia de datos desde y hacia un bases de datos. Esta funcin se basa en el estndar
Open Database Connectivity (ODBC) para la comunicacin con bases de datos SQL (Structured
Query Language). Las bases de datos ms populares, tales como Oracle, Paradox, DB/2, MS
Access y SQL Server, son compatibles con la convencin ODBC. Para ilustrar la conexin ODBC
en nuestro pequeo ejemplo de mezcla de productos, supongamos que todos los datos que
describen el problema se almacenan en una base de datos llamada Acces1. La modificacin
requerida en el modelo LINGO es casi trivial. Slo se necesita cambiar la seccin de datos, como
lo ilustra el siguiente fragmento de la formulacin del modelo LINGO.
DATA:
! Nombres de las maquinas y horas disponibles;
Maquina, HorasDispProd = @ODBC() ;
! Nombres de los productos y beneficios;
Producto, Benef = @ODBC();
! Horas gastadas por producto;
HorasUsadProd = @ODBC();
! Enviar la solucin a Acces1;
@ODBC() = Produc;
ENDDATA
De manera similar al modelo basado en hoja de clculo, el tamao del modelo en trminos del
nmero de variables y restricciones se determina completamente por el contenido de la base de
datos. El modelo de LINGO se ajusta automticamente a lo que se encuentra en la base de datos.
La base de datos considerada anteriormente contiene tres tablas relacionadas. Los nombres de
las tablas deben coincidir con los del modelo de LINGO, a saber, Mquina, para guardar los datos
relacionados con la mquina, Producto, para almacenar los datos relacionados con el producto,
y MaPr para contener los datos relativos a las combinaciones de mquinas y productos. La
captura de pantalla muestra la apariencia inicial de las tablas.
Prof. Victor Bernal
OPTIMIZACION
Aunque el sistema operativo Windows puede ser de 64 o de 32 bits, las versiones de MS Access
y LINGO tienen que ser, ambas, de 32 o 64 bits, si no coinciden se produce un mensaje de error
que alerta sobre la falta de compatibilidad entre los dos programas. Por otra parte, antes de
ejecutar LINGO debe crearse un enlace entre LINGO y la base de datos, el nombre del enlace
debe coincidir con el enunciado luego de TITLE, en el archivo LINGO. En el ejemplo, el archivo
LINGO comienza ahora como,
MODEL:
! Ejemplo de mezcla de productos;
! La seccin SETS no dice nada sobre el numero o nombres de las
maquinas o productos. La informacin proviene de los datos;
TITLE EJEMPLOUNO;
El enlace se construye con la secuencia Panel de Control/Herramientas administrativas/Origenes
de datos ODBC, el resultado final debe ser similar al que se muestra,
OPTIMIZACION
Tenga en cuenta que la columna Produc tiene inicialmente ceros en la tabla Producto. Una vez
que se resuelve el modelo, los valores de Produc se insertan en la base de datos en la tabla
Producto, tal como se ve en la nueva captura de pantalla.
Un inconveniente que puede surgir en el uso de @ODBC() con Windows es que el usuario puede
necesitar registrar la base de datos con el administrador de Windows ODBC. La manera de
hacerlo depende de la versin de Windows. Es necesario consultar la documentacin de Windows
para saber cmo hacerlo. En caso de duda hay que comunicarse con el administrador o con un
experto en bases de datos.
6.
Los ejemplos anteriores ilustran slo cmo formular un nico modelo LINGO para resolver y
presentar un informe de la solucin estndar. En la prctica, es posible que deseen algunas
opciones adicionales como:
1. Realizar un tratamiento previo de los datos para incluirlos en el modelo.
2. Realizar un procesamiento posterior de la solucin para producir un informe a la medida.
3. Resolver varios modelos de forma automtica como parte de algn estudio exhaustivo.
LINGO tiene una capacidad de programacin que permiten satisfacer cada una de las anteriores
opciones. Se describen ahora dos tipos de secciones adicionales, CALC y SUBMODEL que LINGO
utiliza en dichas opciones.
CALC:
! Instrucciones ejecutables que pueden incluir
@SOLVE( ) de algn submodelo;
Prof. Victor Bernal
OPTIMIZACION
ENDCALC
SUBMODEL Nombre:
! Restricciones de un modelo especfico;
ENDSUBMODEL
Las declaraciones en una seccin CALC se tratan como instrucciones ejecutables en lugar de
restricciones. Por ejemplo, la declaracin:
x = x + 1;
es perfectamente vlida en una seccin CALC. Esto significa que el valor de x debe ser aumentado por 1. Si la misma declaracin aparece como parte de un modelo, sera interpretada como
una restriccin y el modelo sera declarado no vlido. Tambin se pueden utilizar varias instrucciones de entrada y salida en las declaraciones en una seccin CALC.
El uso de una seccin SUBMODEL permite hacer referencia a ese modelo en particular (sub) en
una seccin CALC. Por lo tanto, en una seccin CALC es posible resolver un submodelo especfico
varias veces con diferentes datos, o resolver varios submodelos diferentes, tal vez utilizando
los resultados de un submodelo como datos de entrada en otro submodelo.
Las capacidades de programacin de LINGO se ilustran con los siguientes ejemplos relativos al
modelo de Markowitz para la optimizacin de portafolios.
7.
OPTIMIZACION
SETS:
ACCIONES: RET_PROM, PROPORCION;
DIAS;
SXD( DIAS, ACCIONES): RETORNO;
SXS( ACCIONES, ACCIONES): COVR, CORR;
ENDSETS
DATA:
DIAS = 1..12;
TARGET = .15;
ACCIONES = ATT
RETORNO = 0.300
GMC
USX;
0.225
0.149
0.103
0.290
0.260
0.216
0.216
0.419
0.144
0.169
0.056
0.107 -0.035
0.038
0.321
0.133
0.089
0.305
0.732
0.090
0.195
0.021
0.083
0.390
0.131
0.035 -0.072
0.006
0.176
0.908;
0.715
ENDDATA
CALC:
! Retorno anual promedio para cada accin;
@FOR( ACCIONES( S):
RET_PROM( S) =
( @SUM( SXD( D, S): RETORNO( D, S)) /
@SIZE( DIAS))
);
! Matriz de covarianza;
@FOR( SXS( S1, S2):
COVR( S1, S2) =
@SUM( DIAS( D):( RETORNO( D, S1) - RET_PROM( S1)) *
( RETORNO( D, S2) - RET_PROM( S2))) / @SIZE( DIAS)
);
! No se requiere, pero se calcula la matriz de correlacin ;
@FOR( SXS( S1, S2):
Prof. Victor Bernal
OPTIMIZACION
8.
Se llama frontera eficiente a la combinacin de activos que, para un nivel dado de rentabilidad,
proporcionan el mnimo riesgo o, alternativamente, para un nivel dado de riesgo, proporcionan
Prof. Victor Bernal
OPTIMIZACION
la mxima rentabilidad. Se conoce tambin como punto de mnima varianza (MVP) aquel que,
entre todos los elementos de la frontera eficiente, proporciona el mnimo riesgo.
Se quiere calcular una curva de compensacin o frontera eficiente de riesgo vs. rendimiento
esperado de una cartera financiera. Se debe tener en cuenta que la seccin CALC,
1. Efecta un tratamiento previo de los datos de entrada para convertir desviaciones estndar mensuales de desviaciones estndar anuales.
2. Hace un procesamiento posterior de los datos de la solucin y usa la instruccin @WRITE
para generar un informe de solucin a la medida.
3. Utiliza la instruccin @SOLVE para resolver repetidamente el submodelo cartera.
A continuacin el programa LINGO,
MODEL:
! Clculo de una frontera eficiente para un modelo de cartera en LINGO;
!
SETS:
! Cada activo tiene un retorno esperado/ao ERET, una desviacin estndar
en el rendimiento/mes DVSM, debe calcularse una desviacin/ao DVSA
y un monto X por invertir;
ACTIVO: ERET, DVSM, DVSA, X;
! Cada par de los activos tiene una correlacin.
Slo se almacena la matriz triangular inferior ;
TMAT( ACTIVO, ACTIVO) | &1 #GE# &2: CORR;
ENDSETS
DATA:
! Capital inicial;
CAPITAL = 1;
! Inversiones en los fondos disponibles;
ACTIVO = CD___ VG040 VG102 VG058 VG079 VG072 VG533;
! Retorno futuro estimado, por ao;
ERET = .04 .06 .06 .05 .065 .07 .08 ;
! Desviacin est. mensual del retorno de cada ACTIVO,
calculada de los datos mensuales recientes;
STDM= 0 .02341 .02630 .01067 .02916 .03615 .05002;
! Matriz de correlacin calculada de los datos mensuales recientes;
CORR =
!CD___; 1
!VG040; 0 1
!VG102; 0 .98209 1
Prof. Victor Bernal
OPTIMIZACION
OPTIMIZACION
Retorno Riesgo
@NEWLINE(1));
@WRITE(
Deseado 1-Ao );
,ACTIVO(i)););
@WRITE( @NEWLINE(1));
N1 = NPUNTOS-1;
K = 0;
! Considerar todos los retornos deseados;
@WHILE( K #LT# NPUNTOS:
TARGET = RET_MAX*(K/N1) + RET_MIN*((N1-K)/N1);
! Resolver el modelo para este retorno deseado;
@SOLVE( HARRY);
! Imprimir otra linea en el reporte;
@WRITE(
);));
@FOR( ACTIVO(I):
@WRITE( @FORMAT( ERET(i), #7.4f)););
@WRITE( @NEWLINE(1));
@WRITE(
@FOR( ACTIVO(I):
@WRITE( @FORMAT( DVSA(i), #7.4f)););
Prof. Victor Bernal
OPTIMIZACION
ENDCALC
END
Al ejecutar este programa en LINGO, debe dar un resultado como el de la grfica, si no es as,
es probable que haya que ajustar ligeramente el formato de salida.
OPTIMIZACION