Está en la página 1de 131

UNIVERSIDAD NACIONAL EXPERIMENTAL POLITECNICA

ANTONIO JOSE DE SUCRE


VICERRECTORADO BARQUISIMETO

DIRECCION DE INVESTIGACION Y POSTGRADO


MAESTRIA EN INGENIERIA INDUSTRIAL
METODOS DE OPTIMIZACION

Prof. Vctor Bernal P.

Contenido

Captulo 1.

Introduccin

1.

La Investigacin de Operaciones: El concepto

2.

La Investigacin de Operaciones: El desarrollo

3.

Clasificacin de los problemas de Investigacin Operativa

3.1.

Clasificacin segn el objetivo del problema

3.2.

Clasificacin segn la certidumbre de los datos

4.

Metodologa de la Investigacin Operativa

10

Paso 1. Definicin del problema

11

Paso 2. Modelado matemtico

11

Paso 3. Resolucin del modelo

12

Paso 4. Presentacin/Implementacin de los resultados

13

Captulo 2.
1.

La programacin lineal

15

Formulacin de problemas

15

1.1.

El problema del transporte

16

1.2.

Ejemplo: El problema del transporte

17

1.3.

El problema del transporte: La solucin computacional

19

1.4.

El problema de la dieta

19

1.5.

Ejemplo: El problema de la dieta

20

1.6.

El problema de la dieta: La solucin computacional

21

1.6.1.

El paquete LPSOLVE

21

1.6.2.

El paquete LINGO

22

1.7.

El problema de la planificacin de la produccin

23

1.8.

Ejemplo: El problema de la planificacin de la produccin

24

1.9.

Planificacin de la produccin: La solucin computacional

25

El paquete MAPLE

26

1.10.

26

El problema de flujo en una red


3

1.11.

Ejemplo: El problema de flujo en redes

27

1.12.

El problema de la cartera de valores

32

1.13.

Ejemplo del problema de la cartera

33

1.14.

El problema de las ocho damas

34

2.

Formulacin matemtica del problema

37

2.1.

La forma general del problema

38

2.2.

La forma estndar del problema

38

2.3.

Transformacin en la forma estndar

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

Descripcin del mtodo

51

2.1.

Los pasos del mtodo Simplex

53

2.2.

Ejemplo

54

2.3.

El significado de zk ck

55

2.4.

La forma matricial del mtodo Simplex

56

2.5.

La tabla del simplex

56

3.

El problema dual

57

3.1.

Origen del problema dual

57

3.2.

La definicin del problema dual

59

3.3.

Obtencin del dual en la forma estndar

60

3.4.

Construccin del problema dual

60

3.5.

Ejemplo de conversin al dual

61

3.6.

Ejemplo de interpretacin del problema dual

61

3.7.

El dual y el programa LINGO

63

4.

Anlisis de sensibilidad

64

4.1.

Cambios en los costos de las variables bsicas

64

4.2.

Cambios en los costos de las variables no bsicas

65

4.3.

Cambios en los trminos independientes

66

5.

El mtodo SIMPLEX REVISADO

67

5.1.

Actualizacin de la fila de la funcin objetivo

67

5.2.

Determinacin de la variable que sale de la base

67

5.3.

Actualizacin de la base

67

5.4.

Eficiencia en el almacenamiento

68

Prof. Victor Bernal

OPTIMIZACION

Pg. 4 de 131

6.

Ejercicios

Captulo 4.
1.

68

Aplicaciones: Programacin lineal

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.

Solucin del problema de transporte

75

1.4.1.

La solucin inicial

75

1.4.2.

Mtodo de la Esquina Noroeste

77

1.4.3.

Mtodo de Vogel.

78

1.4.4.

El mtodo de costo mnimo.

79

1.5.

El Mtodo Simplex del Problema de Transporte

79

1.6.

Otras aplicaciones del modelo de transporte

80

2.

El problema de asignacin

81

2.1.

El algoritmo hngaro

81

2.2.

Casos especiales del modelo de asignacin

82

2.2.1.

Oferta y demanda desiguales.

82

2.2.2.

Problemas de maximizacin.

82

2.2.3.
2.3.

Problemas con asignacin inaceptable.


Ejercicios

Captulo 5.

82
82

La programacin no lineal

85

1.

Formulacin de problemas

85

2.

Condiciones de Karush, Kuhn y Tucker

89

2.1.

Casos Especiales

91

2.2.

Ejemplo

91

2.3.

Ejemplo

93

3.

Interpretacin econmica de los multiplicadores

96

3.1.

Ejemplo

97

3.2.

Ejemplo

98

Ejercicios

99

4.

Captulo 6.
1.

Aplicaciones: Programacin no lineal

Programacin cuadrtica

105
105

1.1.

Planteamiento del problema

105

1.2.

Ejemplo de funcin objetivo

106

1.3.

Las condiciones de optimalidad

106

1.4.

Las condiciones de KarushKuhnTucker

107

Prof. Victor Bernal

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.

El lenguaje de modelado: LINGO

111

2.

La formulacin del modelo en LINGO

115

3.

Formulacin en conjuntos y formulacin escalar

119

4.

Importacin y exportacin de datos con la hoja de clculo

120

5.

Importacin y exportacin desde bases de datos en LINGO

122

6.

Clculos adicionales en modelos LINGO

124

7.

El modelo bsico de Markowitz

125

8.

Frontera eficiente de un portafolio

127

Prof. Victor Bernal

OPTIMIZACION

Pg. 6 de 131

Captulo

Introduccin
1.

La Investigacin de Operaciones: El concepto

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

A menudo la Investigacin Operativa es denominada Ciencia de la Administracin. Esta ciencia,


tal como la conocemos hoy, se desarroll a partir de los grandes xitos obtenidos mediante su
aplicacin a la resolucin de problemas de organizacin militar en la Segunda Guerra Mundial. Por ello recibi el nombre de Investigacin Operativa (Operations Research). Cuando estas
tcnicas fueron introducindose en el mundo de los negocios como ayuda a la toma de decisiones, se acu el trmino Ciencia de la Administracin o Ciencias de la Gestin (Management
Science). En la actualidad hay muy poca distincin entre ambos trminos, y ambos se usan
indistintamente en la literatura.
2.

La Investigacin de Operaciones: El desarrollo

Una de las reas ms importantes y activas de la Investigacin Operativa es la Programacin


Lineal. Los problemas de Programacin Lineal se basan en la optimizacin de una funcin lineal, la funcin objetivo, sujeta a una serie de restricciones lineales de igualdad o desigualdad
de las variables. El reconocimiento de la importancia de este tipo de problema coincidi con el
desarrollo de un mtodo eficiente, el Mtodo Smplex (George Dantzing, 1941) y un medio, el
computador, para aplicarlo.
Una buena parte de los fundamentos de la Programacin Lineal se descubri en un perodo muy
corto de tiempo de intensa labor de investigacin y desarrollo, entre los aos 1947 y 1949. En
la actualidad, el Algoritmo Smplex es una herramienta estndar que ha ahorrado enormes cantidades de dinero a la mayora de las empresas o compaas en los pases industrializados, y su
uso en otros sectores de la sociedad avanza rpidamente. Se han escrito docenas de libros sobre
Programacin Lineal y publicado centenares de artculos describiendo aplicaciones importantes. Recientemente, el Algoritmo Smplex ha sido elegido como uno de los diez algoritmos de
mayor influencia en el desarrollo y la prctica de la ciencia y la ingeniera en el siglo XX (Nash,
2002).
En los ltimos aos, la Programacin Lineal ha vuelto a ser un foco de atencin mayoritaria y un
rea de investigacin muy activa. La causa de este auge ha sido el desarrollo de dos algoritmos
que difieren radicalmente del Mtodo Smplex: el primero es el Mtodo del Elipsoide, desarrollado independientemente por Shor (1970) y Yudin y Nemiroviskii (1976) para Programacin
Convexa No Diferenciable, aunque fue Kachian quien demostr en 1979 que dicho mtodo puede resolver problemas de Programacin Lineal rpidamente, en un sentido terico, y el segundo
es el Algoritmo de Punto Interior Proyectivo de Karmarkar (1984) que constituye una potente
y prometedora herramienta para resolver problemas grandes, pues es un algoritmo de tiempo
polinomial, a diferencia del Smplex, que es un algoritmo de tiempo exponencial.
3.

Clasificacin de los problemas de Investigacin Operativa

Los problemas de IO se pueden clasificar de dos modos diferentes:


Atendiendo al objetivo del problema.
Prof. Victor Bernal

OPTIMIZACION

Pg. 8 de 131

Por el grado de certidumbre de los datos.


3.1.

Clasificacin segn el objetivo del problema. De acuerdo a este criterio, los proble-

mas de IO se clasifican en:


Modelos de optimizacin, cuyo objetivo es maximizar cierta cantidad (beneficio, eficiencia) o minimizar cierta medida (coste, tiempo), quizs teniendo en cuenta una serie de
limitaciones o requisitos que restringen la decisin (disponibilidad de capital, personal,
material, requisitos para cumplir fechas lmite, etc.).
Ejemplos clebres de modelos de optimizacin son:
- Problemas de secuenciacin, que se ocupan de colocar objetos en cierto orden. Por
ejemplo, supongamos que tenemos N trabajos que deben ser procesados en el mismo orden en M mquinas distintas en las que requieren tiempos de procesamiento
diferentes. De qu forma se deben ordenar los trabajos para que el tiempo total de
procesamiento de stos en cada una de las mquinas sea mnimo?
- Problemas de localizacin, que consisten en realizar una asignacin de recursos a actividades de manera que se optimice cierta medida de efectividad. Por ejemplo, si la
medida de efectividad viene dada por una funcin lineal con varias variables que debe
cumplir un conjunto de restricciones definidas por funciones lineales de dichas variables, el problema es de Programacin Lineal. Si hay que asignar unvocamente objetos a
tareas para optimizar alguna medida como puede ser un tiempo o un costo, el problema es de Asignacin. Si tenemos que distribuir objetos desde ciertos orgenes a varios
destinos de forma que cierta funcin lineal alcance su valor ptimo, estamos ante un
problema de Transporte o Transbordo.
Problemas de rutas, que tratan de encontrar la ruta ptima desde un origen a un destino
cuando existen varias alternativas posibles. El ejemplo ms caracterstico es el clsico
Problema del Viajante de Comercio. Un viajante de comercio tiene que visitar N ciudades
una y slo una vez antes de volver a su origen. En qu orden debe visitarlas para
minimizar la distancia total recorrida?. Este problema de formulacin tan sencilla es,
en muchos casos, muy difcil de resolver.
3.2.

Clasificacin segn la certidumbre de los datos.


Problemas de bsqueda, que difieren de los otros tipos de problemas que hemos discutido en que hay que buscar cierta informacin que es necesaria para tomar una decisin.
Algunos ejemplos son: buscar barcos enemigos en el ocano, realizar auditoras en empresas en busca de trampas o errores, realizar exploraciones de la tierra para encontrar
recursos naturales como petrleo, cobre, etc. En cada caso el objetivo es minimizar tanto los costos asociados con la recoleccin y anlisis de datos para reducir los errores
de decisin como los propios costos de decisin. La Teora de la Decisin Estadstica
proporciona una base para resolver muchos problemas de bsqueda.

Prof. Victor Bernal

OPTIMIZACION

Pg. 9 de 131

Modelos de prediccin, cuyo objetivo es describir o predecir sucesos (nivel de ventas,


fechas de terminacin de proyectos, nmero de clientes, etc.) dadas ciertas condiciones.
Ejemplos de estos modelos son:
Problemas de reemplazamiento, que se ocupan de decidir el tiempo adecuado para reemplazar los equipos que fallan o se deterioran. Uno de los problemas que se ajusta a este planteamiento nos es muy conocido: Cundo debemos cambiar un vehculo?. Como
cada uno tiene su propia medida de efectividad, no hay una respuesta nica an suponiendo que los vehculos tuvieran exactamente el mismo rendimiento. Otros problemas
bastante cotidianos que encajan en este marco son el problema de reemplazamiento
de maquinaria industrial, de computadores en centros de clculo, establecimiento de
garantas, etc.
Problemas de inventario, que consisten en determinar la cantidad ideal de productos
que se deben tener disponibles en una tienda o almacn. Si un cliente quiere comprar
una cierta cantidad de productos pero no estn disponibles, esto supondra una venta
perdida. Por otro lado, si hay un exceso de productos, el costo de almacenamiento
puede ser demasiado grande. El objetivo de este problema es encontrar un punto de
equilibrio.
Problemas de colas, que son desgraciadamente muy cotidianos. Esperamos en colas para abordar un autobs, para efectuar un depsito bancario, etc. Cualquier problema en
el que haya que esperar para obtener un servicio es un problema de colas. Estos problemas vienen definidos por la distribucin de los tiempos entre dos llegadas consecutivas
al sistema, la distribucin de los tiempos de servicio de cada uno de los dependientes,
el nmero de servidores presentes en el sistema, la disciplina de la cola y el tamao de
la sala de espera. El objetivo del problema es encontrar una forma de mejorar el rendimiento global del sistema, que se mide normalmente atendiendo al tamao de la cola,
o bien al tiempo que transcurre desde que un cliente llega al sistema hasta que lo abandona (tiempo de respuesta). En la gran variedad existente de libros de Teora de Colas
se proponen soluciones para muchos modelos de este tipo, pero los problemas reales
son tan complejos y sus componentes estn tan interconectadas que la simulacin es
un aspecto vital en este rea.
Problemas de competencia, que surgen cuando dos o ms objetos compiten por un
recurso. Muchas veces un problema de competencia consiste en una lucha para obtener
un contrato para prestar cierto servicio o conseguir un privilegio. Resolver un problema
de este tipo conlleva un proceso subyacente de Toma de Decisiones.
4.

Metodologa de la Investigacin Operativa

En su forma ms simple, la Investigacin Operativa puede considerarse como un procedimiento


que consta de cuatro pasos o etapas:
Prof. Victor Bernal

OPTIMIZACION

Pg. 10 de 131

Paso 1 Definicin del problema.


Paso 2 Modelado matemtico.
Paso 3 Solucin del modelo.
Paso 4 Presentacin/Implementacin resultados.
Los proyectos raramente se ajustan totalmente a esta esquema en secuencia, sino que normalmente los modelos han de ser revisados, las soluciones han de ser modificadas o los informes
han de ser reescritos a medida que se modifican y ajustan el conjunto inicial de datos e hiptesis. Por tanto, algunas partes del proceso deben repetirse hasta que se encuentra una solucin
adecuada.

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

1. Identificar las variables de decisin. Un paso crucial en la construccin de un modelo


matemtico es determinar aquellos factores sobre los que el decisor tiene control, que
normalmente se llaman variables de decisin del problema. Hay que distinguir entre lo
que est a nuestro alcance cambiar (por ejemplo, la cantidad de artculos a producir de
cada producto o el material a utilizar) de aquello que no podemos modificar (como el
nmero de horas de trabajo disponibles o fechas lmite a cumplir), que normalmente
denominaremos parmetros. Segn el tipo de problema, lo que a veces es una variable
de decisin en otros casos puede ser un parmetro o viceversa. En muchos casos, definir
las variables de decisin es la etapa ms difcil, pues una vez que estn bien definidas,
el resto del proceso fluye de modo natural. Sin embargo, una definicin incorrecta de
las variables de decisin bloquea totalmente el resto del problema. Para identificar las
variables de decisin, puede ser til hacerse las siguientes preguntas: qu es lo que
hay que decidir? o sobre qu elementos tenemos control? o cul sera una respuesta
vlida para este caso?.
2. Identificar la funcin objetivo. El objetivo de la mayora de los estudios de IO, y el de
todos los modelos de optimizacin, es encontrar el modo de optimizar alguna medida
respetando las restricciones existentes. Aunque una compaa quizs est satisfecha
con una mejora sustancial de la situacin actual, normalmente el objetivo es buscar el
valor ptimo para cierta funcin. A la hora de encontrar la funcin objetivo, la pregunta
que podemos hacernos es qu es lo que queremos conseguir? o Si yo fuera el jefe de
esta empresa, qu me interesara ms?.
3. Identificar las restricciones. En la bsqueda de la solucin ptima, normalmente existen ciertas restricciones (limitaciones, requisitos) que limitan nuestra decisin. Ejemplos de restricciones frecuentes son: los recursos disponibles (trabajadores, mquinas,
material, etc.) son limitados; fechas lmite impuestas por los contratos; restricciones
impuestas por la naturaleza del problema (por ejemplo: el flujo de entrada a un nodo
debe ser igual al flujo de salida)
4. Traducir todos los elementos bsicos a un modelo matemtico. Una vez identificados
los elementos bsicos hay que expresarlos matemticamente. Dependiendo de la naturaleza de las funciones matemticas, el modelo ser de un tipo u otro; por ejemplo, si
todas ellas son lineales, el problema ser de Programacin Lineal; si existe ms de una
funcin objetivo, ser de programacin multicriterio, etc.
Paso 3. Resolucin del modelo. Aceptado ya el modelo matemtico que mejor describe
la situacin en estudio, se aplican los algoritmos y mtodos matemticos diseados para su
resolucin. Las etapas en la resolucin del modelo son:
1. Elegir la tcnica de resolucin adecuada. Afortunadamente, muchos de los modelos de
IO pueden resolverse utilizando tcnicas eficientes ya existentes, que proporcionan una
Prof. Victor Bernal

OPTIMIZACION

Pg. 12 de 131

solucin ptima para el modelo. En otros casos, el problema es demasiado complejo o


el algoritmo de resolucin tiene una complejidad computacional inaceptable y hay que
recurrir a mtodos heursticos de resolucin.
2. Generar las soluciones del modelo. Una vez elegida la tcnica de resolucin, el siguiente
paso es resolver el problema. Como normalmente la mayora de los modelos conllevan
la manipulacin de una gran cantidad de datos, los problemas deben ser resueltos con
ayuda del computador, utilizando alguno de los muchos programas de IO que existen o incluso hojas de clculo (las versiones actuales de la mayora de ellas incluyen
operadores que realizan anlisis de optimizacin).
3. Comprobar/validar los resultados. Dado que los modelos matemticos no son ms que
simplificaciones de la realidad, las soluciones ptimas generadas para un modelo pueden no ser ptimas para el problema de la vida real. En el peor de los casos, puede
que ni siquiera sean factibles. De este modo, comprobar la validez de dichas soluciones
constituye un paso crucial, igual que comprobar que efectivamente proporcionan un
mejor rendimiento que el plan de trabajo que actualmente sigue la empresa.
4. Si los resultados son inaceptables, revisar el modelo matemtico. Como ningn modelo es totalmente exacto ni ninguna tcnica de validacin est exenta de errores, si los
resultados de la validacin son inaceptables puede ser necesario revisar el modelo. Las
hiptesis deben ser estudiadas, la exactitud de los datos comprobada, las aproximaciones relajadas o endurecidas, las restricciones revisadas.
5. Realizar anlisis de sensibilidad. Normalmente, la solucin que nos proporciona el
computador es una respuesta para el modelo. Pero el decisor suele querer no una solucin, sino varias soluciones entre las que elegir. El analista debe estar preparado para
estudiar los cambios posibles y su alcance. Para ello resulta muy til realizar el llamado anlisis de sensibilidad, que estudia los cambios que puede sufrir la solucin si se
alteran los parmetros del modelo, o bien en qu rango de variacin de los parmetros
la solucin sigue siendo vlida.

Paso 4. Presentacin/Implementacin de los resultados. ste es el paso final dentro del


proceso. Consta de slo dos pasos:
1. Preparar informes y/o presentaciones. La comunicacin efectiva de los resultados de
un estudio es esencial para el xito del mismo. La utilidad del anlisis ser nula si las
personas que toman las decisiones no aprecian totalmente su valor. Los decisores deben
comprender completamente el enfoque del analista, las hiptesis y simplificaciones que
se han hecho, y la lgica subyacente en la recomendacin. Las presentaciones orales
(utilizando transparencias, videos o software especializado) y los informes son formas
tradicionales para la comunicacin.
Prof. Victor Bernal

OPTIMIZACION

Pg. 13 de 131

2. Vigilar el proceso de implementacin. Una vez que se ha emitido el informe o se ha


hecho la presentacin, debe implantarse la solucin propuesta, que a veces puede suponer cambios que sean inconsistentes y encuentren resistencia en los miembros de la
empresa. El apoyo del analista puede resultar crtico. Una vez implementada la solucin, debe ser supervisada de forma continua. Dada la naturaleza dinmica y cambiante
de la mayora de las empresas, es casi inevitable que haya que realizar cambios en el
modelo. El analista debe estar preparado para saber cundo ha llegado el momento de
cambiar y para realizar dichos cambios.

Prof. Victor Bernal

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

La programacin matemtica es una potente tcnica de modelado usada en el proceso de toma


de decisiones. Cuando se trata de resolver un problema de este tipo, la primera etapa consiste
en identificar las posibles decisiones que pueden tomarse; esto lleva a identificar las variables
del problema concreto. Normalmente, las variables son de carcter cuantitativo y se buscan los
valores que optimizan el objetivo.
15

La segunda etapa supone determinar qu decisiones resultan admisibles; esto conduce a un


conjunto de restricciones que se determinan teniendo presente la naturaleza del problema en
cuestin. En la tercera etapa, se calcula el costo/beneficio asociado a cada decisin admisible;
esto supone determinar una funcin objetivo que asigna, a cada conjunto posible de valores
para las variables que determinan una decisin, un valor de costo/beneficio. El conjunto de todos estos elementos define el problema de optimizacin. La programacin lineal (PL), que trata
exclusivamente con funciones objetivos y restricciones lineales, es una parte de la programacin matemtica, y una de las reas ms importantes de la matemtica aplicada. Se utiliza en
campos como la ingeniera, la economa, la gestin, y muchas otras reas de la ciencia, la tcnica
y la industria. En este captulo se introduce la programacin lineal por medio de varios ejemplos seleccionados. Para empezar nuestra exposicin se hace notar que cualquier problema de
programacin lineal requiere identificar cuatro componentes bsicos:
1. El conjunto de datos.
2. El conjunto de variables involucradas en el problema, junto con sus dominios respectivos de definicin.
3. El conjunto de restricciones lineales del problema que definen el conjunto de soluciones
admisibles.
4. La funcin lineal que debe ser optimizada (minimizada o maximizada).
En las secciones que siguen se da una lista de ejemplos, prestando especial atencin en cada
caso a estos cuatro elementos.
1.1.

El problema del transporte. Un cierto producto debe enviarse en determinadas can-

tidades u1 , . . . , um , desde cada uno de m orgenes, y recibirse en cantidades v1 , . . . , vn , en cada


uno de n destinos.
El problema consiste en determinar las cantidades xij , que deben enviarse desde el origen i
al destino j, para conseguir minimizar el costo del envo. Los cuatro elementos principales de
este problema son:
1. Datos:
m: el nmero de orgenes
n: el nmero de destinos
ui : la cantidad que debe enviarse desde el origen i
vj : la cantidad que debe ser recibida en el destino j
cij : el costo de envo de una unidad de producto desde el origen i al destino j
2. Variables
xij : la cantidad que se enva desde el origen i al destino j.
Se supone que las variables deben ser no negativas:
xij 0; i = 1, . . . , m; j = 1, . . . , n
Prof. Victor Bernal

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.

Ejemplo: El problema del transporte. Considrese el problema del transporte del

diagrama, con m = 3 orgenes y n = 3 destinos, y

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

En este caso, el sistema es

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

para los costos de envo, el problema consiste en minimizar


z = x11 + 2x12 + 3x13 + 2x21 + x22 + 2x23 + 3x31 + 2x32 + x33 .
Prof. Victor Bernal

OPTIMIZACION

Pg. 18 de 131

1.3.

El problema del transporte: La solucin computacional. Actualmente existe una gran

cantidad de recursos computacionales para la solucin de problemas de programacin lineal,


uno de ellos se denomina LPSOLVE hecho bajo la filosofa del software libre y utiliza el mtodo
simplex revisado.
El programa se obtiene a traves de internet en la pgina http://sourceforge.net/projects/
lpsolve/, por otra parte, detalles ms especficos sobre el uso del programa se encuentran en
la pgina http://lpsolve.sourceforge.net/5.5/.
Utilizando el paquete LPSOLVE se puede plantear el problema elaborando un archivo de texto
con la funcin objetivo y las restricciones tal como,
/* Problema de transporte */
/* Funcin objetivo */
min: x11 + 2 x12 + 3 x13 + 2 x21 + x22 + 2 x23 + 3 x31 + 2 x32 + x33 ;
/* Restricciones */
/* Restricciones por los orgenes */
x11 + x12 + x13 = 2;
x21 + x22 + x23 = 3;
x31 + x32 + x33 = 4;
/* Restricciones por los destinos */
x11 + x21 + x31 = 5;
x12 + x22 + x32 = 2;
x13 + x23 + x33 = 2;
El programa produce el siguiente resultado:
Variables Resultado
z

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.

El problema de la dieta. El problema de la dieta consiste en determinar las cantida-

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

donde cj es el precio unitario del alimento j.

1.5.

Ejemplo: El problema de la dieta. Considrese un caso con cuatro nutrientes y con

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

Prof. Victor Bernal

OPTIMIZACION

Pg. 20 de 131

Las restricciones entonces se convierten en

78.6

6.50

0.02

0.27

70.1 80.1 67.2


9.40 8.80 13.7
0.09 0.03 0.14
0.34 0.30 1.29


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.

El problema de la dieta: La solucin computacional.


El paquete LPSOLVE. El planteamiento para LPSOLVE se escribe como sigue (lo en-

cerrado entre /* ... */ son comentarios del usuario):


/* El problema de la dieta*/
/* Funcin objetivo */
min: x1 + 0.5 x2 + 2 x3 + 1.2 x4 + 3 x5;
/* Restricciones */
78.6 x1 + 70.1 x2

+ 80.1 x3 + 67.2 x4 + 77.0 x5 >= 74.2

6.50 x1 + 9.40 x2

+ 8.80 x3 + 13.7 x4 + 30.4 x5 >= 14.7

0.02 x1 + 0.09 x2

+ 0.03 x3 + 0.14 x4 + 0.41 x5 >= 0.14

0.27 x1 + 0.34 x2

+ 0.30 x3 + 1.29 x4 + 0.86 x5 >= 0.55

El resultado ofrecido por LPSOLVE se resume en la siguiente tabla:


Prof. Victor Bernal

OPTIMIZACION

Pg. 21 de 131

1.6.2.

Variable

Resultado

0.792769148366363

x1

x2

1.53026245313337

x3

x4

0.0230316014997323

x5

El paquete LINGO. El paquete LINGO (ver Apndice A) est alojado en la pgina

http://www.lindo.com/ en la que se puede obtener una versin de prueba para distintos


sistemas operativos. Una vez instalado, para la formulacin del problema el sistema LINGO
requiere especificar todas las operaciones aritmticas, el modelo es entonces,
min = x1 + 0.5 *x2 + 2 *x3 + 1.2 *x4 + 3 *x5;
78.6 *x1 + 70.1 *x2

+ 80.1 *x3 + 67.2 *x4 + 77.0 *x5 >= 74.2

6.50 *x1 + 9.40 *x2

+ 8.80 *x3 + 13.7 *x4 + 30.4 *x5 >= 14.7

0.02 *x1 + 0.09 *x2

+ 0.03 *x3 + 0.14 *x4 + 0.41 *x5 >= 0.14

0.27 *x1 + 0.34 *x2

+ 0.30 *x3 + 1.29 *x4 + 0.86 *x5 >= 0.55

;%

La respuesta obtenida es:


Global optimal solution found.
Objective value:

0.7927691

Total solver iterations:

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

Prof. Victor Bernal

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.

El problema de la planificacin de la produccin. Un productor fabrica una pieza,

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

En general, cualquier problema de planificacin admitir diversas posibilidades que aseguren


que la demanda es convenientemente atendida. Existen dos posibilidades:
1. Produccin variable. El fabricante puede producir cada mes el nmero exacto de unidades que le solicitan. Sin embargo, como una produccin que vara es costosa de mantener, por los costos de horarios ms largos en los meses de produccin alta y los costos
asociados al paro del personal y la maquinaria en los meses de produccin baja; este
tipo de produccin no es eficiente.
2. Produccin constante. El fabricante que debe atender una demanda que cambia con
el tiempo puede producir por encima de dicho nivel en periodos de baja demanda y
almacenar la sobreproduccin para los periodos de demanda mayor. As, la produccin
puede mantenerse constante, compensando la demanda alta con la sobreproduccin
de periodos pasados. Sin embargo, debido a los costos de almacenamiento, tal opcin
puede no ser deseable si requiere costos altos de almacenamiento durante varios meses.
Los problemas de esta naturaleza ilustran las dificultades que surgen cuando se presentan
objetivos opuestos en un sistema dado. Nuestra meta es llevar a cabo una planificacin de la
produccin que maximice los beneficios despus de considerar los costos de las variaciones
Prof. Victor Bernal

OPTIMIZACION

Pg. 23 de 131

en la produccin y el almacenamiento. Los cuatro elementos principales que intervienen en el


problema de la planificacin de la produccin son:
1. Datos.
n: el nmero de meses a considerar
s0 : la cantidad almacenada disponible al principio del periodo considerado
dt : el nmero de unidades (demanda) que se solicita en el mes t
smax : la capacidad mxima de almacenamiento
at : el precio de venta en el mes t
bt : el costo de produccin en el mes t
ct : el costo de almacenamiento en el mes t
2. Variables:
xt : el nmero de unidades producidas en el mes t
st : el nmero de unidades almacenadas en el mes t
3. Restricciones. Como la demanda dt en el mes t debe coincidir con el cambio en el almacenamiento, st1 st , ms la produccin xt en el mes t; la capacidad de almacenamiento
no puede excederse; y la demanda dt , almacenamiento st , y produccin xt deben ser
no negativas; se tienen las siguientes restricciones:
st1 + xt dt = st ; t = 1, 2, . . . , n
st smax ; t = 1, 2, . . . , n
st , xt 0
4. Funcin a optimizar. Una posibilidad en el problema de la planificacin de la produccin
consiste en maximizar el ingreso despus de descontar los costos de la variacin de la
produccin y los inventarios; esto es, maximizar el beneficio

Z=

n
X

(at dt bt xt ct st )

t=1

Si el periodo es corto, at , bt , y ct pueden considerarse constantes, esto es, at = a,


bt = b y ct = c. Otra posibilidad consiste en minimizar los costos de almacenamiento:
Z=

n
X

ct st

t=1

1.8.

Ejemplo: El problema de la planificacin de la produccin. En este ejemplo se ilustra

el problema de la planificacin de la produccin sin lmite en la capacidad de almacenamiento.


Considrese la funcin de demanda en la tabla
Prof. Victor Bernal

OPTIMIZACION

Pg. 24 de 131

Tiempo

Demanda

y suponga que la cantidad almacenada inicialmente es s0 = 2. Entonces, el sistema se plantea


como

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.

Planificacin de la produccin: La solucin computacional.

Prof. Victor Bernal

OPTIMIZACION

Pg. 25 de 131

El paquete MAPLE. Si se escribe el problema general de programacin lineal en trminos de


matrices, se hace mediante el sistema,
mn f (x) sujeto a Ax b, x 0
En el programa MAPLE la forma ms sencilla de plantear el problema utiliza el paquete interno
Optimization. En el caso de la planificacin de la produccin la solucin obtenida se presenta
como:
[>with(Optimization);
[ImportMPS, Interactive, LPSolve, LSSolve,Maximize, Minimize, NLPSolve,QPSolve]
[> Interactive();

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

Luego de la instruccin Interactive(); se debe enunciar el problema en la ventana que abre


el programa, all se introducen los datos y luego de este procedimiento se pide la solucin del
problema. Obsrvese que x1 0 y x2 3, lo que en la prctica nos conduce a la respuesta ya
enunciada (s1 , s2 , s3 , s4 , x1 , x2 , x3 , x4 ) = (0, 0, 0, 0, 0, 3, 6, 1).
1.10.

El problema de flujo en una red. Considrese una red de transporte (un sistema

de tuberas, ferrocarriles, autopistas, comunicaciones, etc.) a travs de la que desea enviarse


un producto homogneo (combustibles, paquetes, mensajes, etc.) desde ciertos puntos de la
red, llamados nodos fuente, hasta otros nudos de destino, llamados sumideros. Adems de
estas dos clases de nodos, la red puede contener nodos intermedios, donde no se genera ni se
Prof. Victor Bernal

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

y las relacionadas con la capacidad de las lneas o conexiones son


0 xij mij , i < j
donde i < j evita la posible duplicacin de restricciones y los valores lij no son necesariamente positivos.
4. Funcin a minimizar. El precio total es
X
Z=
cij xij
i,j

La condicin para que el problema tenga solucin es

Pn

i=1 fi

= 0, en este caso el pro-

blema se dice balanceado.


Los problemas de flujo en redes son abundantes en ingeniera. De hecho, los sistemas de abastecimiento de agua, los sistemas de redes de comunicacin, y otros, conducen a este tipo de
problemas. Adems de encontrar las soluciones de los problemas de optimizacin, se puede estar interesado en analizar el conjunto de soluciones, y en cmo cambia dicho conjunto
cuando fallan algunos elementos en el sistema. El ejemplo siguiente se centra en una de tales
situaciones.
1.11.

Ejemplo: El problema de flujo en redes. Considrese el problema de flujo en la red

del siguiente diagrama, donde las flechas indican los valores positivos de las variables del flujo.
Prof. Victor Bernal

OPTIMIZACION

Pg. 27 de 131

Las ecuaciones para este ejemplo son,

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

xij mij ; i < j


xij 0; i < j
donde se supone que mij = 4, i < j, y (f1 , f2 , f3 , f4 ) = (7, 4, 1, 2).

f2
2
x12

x24

f1

x14

1
x13

f4

x34
3
f3

Supngase adems que cij = 1; para todo i, j. El problema de optimizacin es minimizar


Z = x12 + x13 + x14 + x24 + x34
sujeto a las restricciones ya enunciadas:
x12 + x13 + x14 =f1 = +7
x12 + x24 =f2 = 4
x13 + x34 =f3 = 1
x14 x24 x34 =f4 = 2
0 xij 4; i < j

La formulacin del problema mediante LPSOLVE es


Prof. Victor Bernal

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

Utilizando el programa LINGO se puede simplificar la formulacin pues permite abreviar la


transcripcin de la informacin necesaria, tal como se muestra ahora,
! COMIENZO DEL MODELO
FORMULACION DEL PROBLEMA ;
MODEL:
! PARAMETROS INICIALES ;
SETS:
!NODOS;
NODOS/1..4/:NETO;
!CONEXIONES ;
ARCO(NODOS,NODOS)/1,2 1,3 1,4 2,4 3,4 /
:CAP,FLUJO,COSTO;
ENDSETS
Prof. Victor Bernal

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

!MODELO DE RED CON FLUJO MINIMO EN LOS ARCOS;


MODEL:
!PARAMETROS DEL PROBLEMA;
SETS:
!CONJUNTO DE NODOS ;
NODOS/1..9/:NETO;

!CONJUNTO DE ARCOS O CONEXIONES Y VALORES ASOCIADOS: COSTO, FLUJO MINIMO, CAPACIDAD Y FL


ARCOS(NODOS,NODOS)/1,2 1,4 2,1 2,3 2,4 2,7 3,2 3,5 3,6 4,1 4,3 4,5 5,9 6,3 6,7 6,8 6,9
:COSTO, MIN, CAP,FLUJO;
ENDSETS
!FUNCION OBJETIVO ;
MIN=@SUM(ARCOS:COSTO*FLUJO);
!RESTRICCIONES POR CAPACIDAD ;
@FOR(ARCOS(I,J):FLUJO(I,J)<CAP(I,J));
!RESTRICCIONES POR FLUJO MINIMO ;
@FOR(ARCOS(I,J):FLUJO(I,J)>MIN(I,J));
!RESTRICCIONES POR BALANCE DE FLUJO ;
@FOR(NODOS(I):@SUM(ARCOS(I,J):FLUJO(I,J))-@SUM(ARCOS(J,I):FLUJO(J,I))=NETO(I));
!VALORES DE LOS PARAMETROS;
DATA:
COSTO=6,3,5,4,5,3,4,3,8,3,7,5,4,7,4,6,2,3,4,4,5,5,5,3;
NETO=8,-10,-3,14,-7,5,12,-10,-9;
MIN=1,2,2,1,1,0,0,0,0,0,2,0,0,3,0,0,2,0,1,0,1,2,1,0;
CAP=7,7,8,8,7,6,8,8,6,6,9,12,6,8,6,10,8,6,6,6,5,8,7,8;
ENDDATA
END
Al ejecutar el programa, se obtiene la solucin, un valor mnimo 388 y valores del los flujos
que se dan enseguida,
Global optimal solution found.
Objective value:

Prof. Victor Bernal

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

El problema de la cartera de valores. Un inversionista es propietario de partici-

paciones de varios valores. Ms concretamente, es dueo de bi participaciones de los valores


burstiles Ai , i = 1, 2, ..., m. Los precios actuales de estos valores son vi . Considrese que se
pueden predecir los dividendos que se pagarn al final del ao que comienza y los precios
finales de los diferentes valores burstiles, esto es, Ai pagar di y tendr un nuevo precio wi .
Nuestro objetivo es ajustar nuestra cartera, es decir, el nmero de participaciones en cada valor,
de modo que se maximicen los dividendos. Las variables son xi , el cambio, positivo o negativo,
en el nmero de participaciones que ya se tienen.
Como en un principio se tenan bi participaciones del valor burstil i, despus del ajuste se
tendran bi + xi . Los elementos principales del problema de la cartera son:
1. Datos m: el nmero de valores burstiles.
bi : el nmero actual de participaciones del valor burstil i.
vi : el precio actual del valor i por participacin.
di : el dividendo que se pagar al final del ao en el valor burstil i.
wi : el nuevo precio del valor burstil i.
Prof. Victor Bernal

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

El capital total de la cartera no debe cambiar en el ajuste pues se supone que no se


invierte dinero adicional:
X

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

4. Funcin objetivo. Nuestro objetivo es maximizar los dividendos:


X
Z=
di (bi + xi )
i

Nuestra tarea se concreta en determinar el valor mximo de los dividendos sujeto a


todas las restricciones anteriores.
1.13.

Ejemplo del problema de la cartera. Estdiese el caso particular en que se tienen

participaciones de tres valores burstiles, 75 de A, 100 de B, y 35 de C, con precios 20, 20 y 100


dlares, respectivamente. Adems se dispone de la siguiente informacin: A no pagar dividendos y alcanzar una nueva cotizacin de 18 dlares, B pagar 3 dlares por participacin y la
nueva cotizacin ser 23 dlares, y C pagar 5 dlares por participacin con una nueva cotizacin de 102 dlares. Si se toman los porcentajes r como 0.25 y s, 0.03, todas las restricciones
Prof. Victor Bernal

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

La formulacin del problema comprende,


1. Datos. n el nmero de celdas en cada fila columna del tablero.
2. Variables. Definimos xij = 1 si hay una dama en (i, j), xij = 0, en caso contrario.
P
3. Funcin objetivo. 1i,jn xij .
4. Restricciones.
a) A lo ms una dama por fila. Para i = 1, . . . , n,
X
xij 1.
1jn

b) A lo ms una dama por columna. Para j = 1, . . . , n,


X
xij 1.
1in

c) A lo ms una dama por cada diagonal en la direccin %.


X
X
x(ih)(jh) +
x(i+h)(j+h) 1;
hn:h<i,h<j

1 i, j n

hn:h+in,h+jn

d) A lo ms una dama por cada diagonal en la direccin &.


X
X
x(ih)(j+h) +
x(i+h)(jh) 1;
hn:h<i,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

# Los valores deben ser 0 o 1.


var x{N,N} binary;
# Funcion objetivo
maximize damas : sum{i in N, j in N} x[i,j];
# Restriccciones
subject to filas {i in N} : sum{j in N} x[i,j] <= 1;
subject to cols {j in N} : sum{i in N} x[i,j] <= 1;
# Diagonales NO
subject to diagNO {i in N, j in N} :
sum{h in N : h < i and h < j} x[i-h,j-h] +
sum{h in N : h+i<=n and h+j<=n} x[i+h,j+h] <= 1;
# Diagonales SO
subject to diagSO {i in N, j in N} :
sum{h in N : h < i and h+j<=n} x[i-h,j+h] +
sum{h in N : h+i<=n and h < j} x[i+h,j-h] <= 1;
#
# Imprimir los resultados
#
display damas;
# Los resultados se trasladan al tablero 8x8
display x;

Prof. Victor Bernal

OPTIMIZACION

Pg. 36 de 131

Utilizando el programa AMPLWin se elige el modelo ochodamas.mod y se resuelve, el resultado


luce como,

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.

Formulacin matemtica del problema

El objeto de la programacin lineal es optimizar (minimizar o maximizar) una funcin lineal de


n variables sujeto a restricciones lineales de igualdad o desigualdad. Ms formalmente, se dice
que un problema de programacin lineal consiste en encontrar el ptimo (mximo o mnimo)
de una funcin lineal en un conjunto que puede expresarse como la interseccin de un nmero
finito de hiperplanos y semiespacios en Rn .
Prof. Victor Bernal

OPTIMIZACION

Pg. 37 de 131

2.1.

La forma general del problema.

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

sujeto a las restricciones


n
X

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

donde p, q, m son enteros positivos tales que 1 p q m.


Como casos especiales, el problema puede tener exclusivamente restricciones de igualdad, de
desigualdad de un tipo, de desigualdad del otro tipo, desigualdades de ambos tipos, igualdades
y desigualdades, etc. Salvo que se indique lo contrario, en estas notas se consideran problemas
de minimizacin.
Definicin 2 (Solucin factible). Un vector x = (x1 , x2 , . . . , xn ) que satisface las restricciones
del problema se llama solucin factible. El conjunto de todas las soluciones factibles se llama
regin de factibilidad.
que sea un solucin factible, tal que f (x) f (x),

Definicin 3 (Solucin ptima). Un vector x


para toda solucin factible x se denomina solucin ptima del problema.
El objetivo de los problemas de optimizacin es encontrar un ptimo global. Sin embargo, las
condiciones de optimalidad slo garantizan, en general, ptimos locales, si estos existen. Sin
embargo, los problemas lineales tienen propiedades que garantizan el ptimo global.
2.2.

La forma estndar del problema. Dado que un problema de programacin lineal

puede plantearse de diversas formas, para unificar su anlisis, es conveniente transformarlo


en lo que normalmente se llama forma estndar. Algunas veces, esta transformacin debe
realizarse antes de resolver el problema y determinar el ptimo. Para escribir un problema en
forma estndar son necesarios los tres elementos siguientes:
1. Un vector c Rn .
2. Un vector no negativo b Rm .
3. Una matriz m n, A.
Prof. Victor Bernal

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.

Transformacin en la forma estndar. Cualquier problema de programacin lineal

puede expresarse siempre en forma estndar mediante los siguientes pasos:


1. Las variables no restringidas en signo se pueden expresar como diferencias de variables
que s estn restringidas en signo, es decir variables no negativas. Si algunas (o todas)
de las variables no estn restringidas en signo, estas se pueden expresar mediante sus
partes positiva y negativa. Las partes positiva y negativa de la variable xi , se definen
como xi+ = m
ax{0, xi } y xi = m
ax{0, xi }, respectivamente. Se puede comprobar
xi = xi+ xi , |x| = xi+ + xi y que ambas xi+ y xi son no negativas. Si el nmero de
variables no restringidas en signo es r , el empleo de la regla anterior supone la necesidad de utilizar r variables adicionales. Este mtodo produce inestabilidad numrica
en la solucin y en la prctica se reemplaza por una mejor alternativa.
2. Las restricciones de desigualdad pueden convertirse en restricciones equivalentes de
igualdad introduciendo nuevas variables que se denominan variables de holgura:
Si ai1 x1 + ai2 x2 + + ain xn bi entonces, existe una variable xn+1 0 tal que
ai1 x1 + ai2 x2 + + ain xn + xn+1 = bi
Si ai1 x1 + ai2 x2 + + ain xn bi entonces, existe una variable xn+1 0 tal que
ai1 x1 + ai2 x2 + + ain xn xn+1 = bi
3. Un problema de maximizacin es equivalente a uno de minimizacin con slo cambiar
el signo de la funcin objetivo. En particular, maximizar zmax = c t x es equivalente a
minimizar zmn = c t x si ambos problemas cumplen las mismas restricciones. Ambos
problemas alcanzan el ptimo en los mismos puntos, pero zmax = zmn .
4. Una restriccin con trmino independiente b no positivo puede reemplazarse por otra
equivalente cuyo trmino independiente es no negativo.
2.4.

Ejemplos de conversin. La forma estndar del problema de programacin lineal:


m
ax z = 2x1 3x2 + 5x3

Prof. Victor Bernal

OPTIMIZACION

Pg. 39 de 131

Sujeto a las restricciones,


x1 + x2 2
3x1 + x2 x3 3
x1 , x2 0
es,
mn z = 2x1 + 3x2 5(x6 x7 )
Sujeto a las restricciones,
x1 + x2 + x4 = 2
3x1 + x2 (x6 x7 ) x5 = 3
x1 , x2 , x4 , x5 , x6 , x7 0
Ejercicio: Encontrar la forma estndar del problema de programacin lineal:
m
ax z = 3x1 x3
Sujeto a las restricciones
x1 + x2 + x3 = 1
x1 x2 x3 1
x1 + x3 1
x1 0
2.5.

Soluciones bsicas. Considrese un problema de programacin lineal en forma es-

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

donde N es tal que A = (B

N). Por tanto B 1 b nos permite obtener la solucin bsica asociada

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

donde xij representa el nmero de horas empleadas en la tarea j por el empleado i.


Plantear este problema como uno de programacin lineal.
3. Una compaa de fabricacin de muebles necesita determinar cuntas mesas, sillas,
pupitres y bibliotecas debe hacer para optimizar el uso de sus recursos. Estos productos
utilizan dos tipos diferentes de paneles, y la compaa dispone de 1500 tableros de
Prof. Victor Bernal

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

Bono por barril

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

Se exige a la mezcla que tenga unas caractersticas concretas, que se traducen en un


porcentaje del 0.40 % de contenido de azufre y una densidad igual a 0.91. Se desea que
el precio de la mezcla sea mnimo.
9. En un centro de nutricin se desea obtener la dieta de coste mnimo con unos determinados requisitos vitamnicos para un grupo de nios que van a asistir a campamentos
de verano. El especialista estima que la dieta debe contener entre 26 y 32 unidades de
vitamina A, al menos 25 unidades de vitamina B y 30 de C, y a lo sumo 14 de vitamina
D. La tabla nos da el nmero de unidades de las distintas vitaminas por unidad de alimento consumido para seis alimentos elegidos, denominados 1, 2, 3, 4, 5 y 6, as como
su costo por unidad.
Prof. Victor Bernal

OPTIMIZACION

Pg. 43 de 131

Vitaminas
Alimentos

Costo por unidad

A B C D

1 0

10

2 1

14

1 2

12

1 0

18

1 2

20

0 2

16

Se desea construir un modelo de programacin lineal para conocer la cantidad de cada


alimento que se debe preparar de manera que satisfaga los requisitos propuestos con
costo mnimo.
10. La cervecera El Oso produce una marca de cerveza en tres plantas, en tres ciudades
diferentes. De estas tres plantas, se enva la cerveza en camiones a cuatro centros de
distribucin; los administradores han comenzado a realizar un estudio para determinar
si es posible reducir los costos de transporte. Los gerentes de produccin de las tres
plantas han estimado la produccin mensual esperada para sus respectivas plantas.
Se fabricar, en total, en las tres plantas una cantidad suficiente para cargar 300
camiones. El gerente general de la cervecera ha asignado la produccin total a los
respectivos centros examinando datos de meses anteriores. En la tabla se presenta la
informacin de produccin y demanda junto con los costos de transporte para cada
combinacin de oferta y demanda. Cuntas camiones de cerveza deben enviarse de
cada planta a cada centro de distribucin para minimizar los costos de transporte?
CENTROS DE DISTRIBUCION
ORIGEN

1 (U.M.) 2 (U.M.) 3 (U.M.) 4 (U.M.) Produccin (Oferta)

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

Bonos empresa privada

95

10

3.16

Bonos estatales

85

15

3.99

Deuda pblica nacional

92

21

6.30

Deuda pblica regional

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

d) No se debe colocar ms de un 60 % en inversiones catalogadas por el organismo


estatal con un ndice inferior o igual a B.
e) La calidad media de la inversin segn la fuente extranjera debe ser como mnimo
92.
f ) Debido a las disposiciones legales, la cantidad mxima que puede invertirse en pagars estatales es de 4000000 unidades monetarias.
g) La duracin media de la inversin debe estar comprendida entre 14 y 21 das.
Plantear el anterior problema como un modelo de programacin lineal.
13. Un hacendado dispone de los siguientes recursos para emplearlos en la prxima cosecha: 70000000 unidades monetarias de capital disponible, 1000 horas tractor y 50 hectreas de tierra cultivable. Estas tierras son propias para sembrar maz, caa de azcar
y ajonjol; se supone que tiene a su disposicin hombres suficientes y con disponibilidad de tiempo y sus costos de produccin son los siguientes: tractor e implementos
5000 unidades monetarias la hora, mano de obra 4000 unidades monetarias la hora,
cada hectrea no sembrada 4500 unidades monetarias. Adems se supondr un costo
como penalizacin, de una unidad monetaria por cada unidad monetaria no invertida.
Los siguientes datos son por hectrea:
Cosecha

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)

(has): hectrea sembrada.


Plantear el anterior problema como un modelo de programacin lineal.

Prof. Victor Bernal

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.

Ejemplo ilustrativo. Consideremos el siguiente problema en forma estndar.


mn z = 11 + x2 + 6x3 + 2x4 x9
sujeto a:
x1 x3 + x4 = 6
x2 + 3x3 x9 = 4
x5 + x9 = 3
2x3 x4 + x6 = 1
2x4 + x7 x9 = 2
x3 + x4 + x8 x9 = 5
x1 , x2 , . . . , x9 0

Como hay 6 restricciones de igualdad, se pueden despejar 6 variables, por ejemplo, x1 , x2 , x5 , x6 , x7 ,


y x8 , como funcin del resto de variables:
x1 = 6 + x3 x4
x2 = 4 3x3 + x9
x5 = 3 x9
x6 = 1 2x3 + x4
x7 = 2 + 2x4 + x9
x8 = 5 + x3 x4 + x9
Esto supone dividir el conjunto de variables {x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 } en dos, {x1 , x2 , x5 , x6 , x7 , x8 }
y {x3 , x4 , x9 }, que se conocen como variables bsicas y no bsicas, respectivamente.
A continuacin, se sustituyen las variables bsicas en la funcin objetivo, en funcin de las
variables no bsicas, para obtener
z = 7 + x9 + 3x3 + 2x4 .
De este modo, el problema inicial es equivalente a uno en el que se minimiza
z = 7 + x9 + 3x3 + 2x4 .
Prof. Victor Bernal

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

La solucin de este problema es z = 7 y se alcanza en el punto

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

Descripcin del mtodo

Consideremos entonces el problema de programacin lineal:

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

Si se denotan por xB y x N los conjuntos de variables bsicas y no-bsicas, respectivamente, la


factibilidad se da si x B 0, x N 0 y b = Ax = Bx B + Nx N . Multiplicando esta ecuacin por
B1 y reordenando los trminos se obtiene,

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

Prof. Victor Bernal

OPTIMIZACION

Pg. 51 de 131

donde zj = c B B1 aj para cada variable nobsica.


Utilizando las anteriores transformaciones, el problema de programacin lineal puede escribirse como,
X

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.

Los pasos del mtodo Simplex. El MS opera en dos etapas:

1. Una etapa de iniciacin en la que


a) El conjunto inicial de restricciones de igualdad se transforma en otro equivalente
del mismo tipo (restricciones de igualdad), asociado a una solucin bsica.
b) Los valores de las variables bsicas se transforman en valores no negativos (se obtiene as una solucin bsica factible). Este proceso se llama fase de regulacin.
2. Una etapa iterativa estndar, en la que los coeficientes de la funcin objetivo se transforman en valores no negativos y el valor del costo se mejora progresivamente hasta
que se obtiene la solucin ptima, no se detecta ninguna solucin factible, o aparecen soluciones no acotadas. En este proceso iterativo, se calculan distintas soluciones
bsicas factibles. Para este fin se usa la operacin elemental de pivoteo.
Prof. Victor Bernal

OPTIMIZACION

Pg. 53 de 131

2.2.

Ejemplo. Consideremos el problema de programacin lineal


mn z = x1 + x2
sujeto a: x1 + 2x2 4
x2 1
x1 , x2 0

Se introducen las variables de holgura x3 y x4 para escribir el problema en la forma estndar.


Esto lleva a la matriz A de restricciones,

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

Por lo tanto, la representacin del problema es


mn z = 3 x3 + x4
sujeto a: x3 2x4 + x1 = 2
x4 + x2 = 1
x1 , x2 , x3 , x4 0
Como (z3 c3 ) > 0 entonces la funcin objetivo mejora incrementando a x3 . La solucin
modificada est dada por,
x B = B1 b B1 a3 x3

x
2
1
1 = x3
x2
1
0
El valor mximo de x3 es 2 (si x3 se hace mayor que 2 entonces x1 se hace negativa). De esta
forma, la nueva variable bsica es
(x1 , x2 , x3 , x4 ) = (0, 1, 2, 0)
Por lo tanto, la variable x3 entra en la base y la variable x1 la abandona. El valor de la funcin
objetivo es 1, que es un mejor valor que el previo de 3. La diferencia es precisamente (z3
c3 )x3 = 2. El procedimiento se repite hasta que se den las condiciones de optimalidad.
2.3.

(zk ck )xk , donde


El significado de zk ck . Recordemos que z = c b b
zk = c B B1 ak = c B y k =

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

y ak = aBt . Recordemos que zk = c B B1 ak = c B B1 aBt . Pero B1 aBt es un vector de ceros,


excepto 1 en la posicin t. Por lo tanto, zk = cBt y por consiguiente zk ck = cBt cBt = 0.
2.4.

La forma matricial del mtodo Simplex.

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

donde R es el conjunto de ndices asociados con las variable no bsicas. Si zk ck


0, entonces la solucin bsica factible en ese momento es ptima. De otra manera
se ejecuta el prximo paso (P3) con xk como la variable que entra a la base.
P3. Resolver el sistema By k = ak , cuya nica solucin es y k = B1 ak . Si y k 0, entonces la conclusin es que la solucin ptima no est acotada, es decir, la variable
que entra se puede incrementar sin lmite y la funcin objetivo disminuir de valor
indefinidamente. De no ocurrir la anterior situacin se procede con el prximo paso
(P4).
P4. Supongamos que xk entra en la base. El ndice r de la variable que entra se determina por la llamada prueba de la razn mnima,
(
)
i
r
b
b
= mn
: yik > 0
yr k
1im yik
Se actualiza la base B donde ak reemplaza a aBr , se actualiza el conjunto de ndices
R y se vuelve al primer paso (P1).
2.5.

La tabla del simplex. Consideremos un problema lineal en forma estndar


mn c T x
sujeto a: Ax = b
x0

Prof. Victor Bernal

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.

Origen del problema dual. Si se considera el problema de programacin lineal,


m
ax c1 x1 + c2 x2 + + cn xn

sujeto a las restricciones,


a11 x1 + + a1n xn b1

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

Disponibilidad de i Beneficio unitario de i

Es por esto que el valor de yi se denomina precio dual del recurso i.


Si la solucin no es ptima, se debe cumplir
c1 x1 + c2 x2 + + cn xn < b1 y1 + + bm ym
El lado izquierdo de la desigualdad es una ganancia menor que la ptima, el lado derecho es,
X
Valor del recurso i
i

Si la solucin no es ptima significa no se han utilizado al mximo todos los recursos.


Si x1 , . . . , xn es factible (no necesariamente ptima) para el problema original, y y1 , . . . , ym es
el conjunto de valores duales correspondientes, entonces se sabe que:
Coeficiente de xj = (a1j y1 + + amj yj ) cj
Como cj es una medida del beneficio unitario de la actividad j entonces a1j y1 + + amj yj
es el costo implcito, unitario, de la actividad j. Igualmente, yi es el costo implcito, unitario,
del recurso i en una unidad de la actividad j.
Si el coeficiente de xj , o costo reducido, es estrictamente negativo entonces beneficio >costo,
Prof. Victor Bernal

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.

La definicin del problema dual. Dado el problema de programacin lineal


mn z = c T x
sujeto a: Ax b
x0

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.

Obtencin del dual en la forma estndar. A continuacin, se obtiene el problema

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.

Construccin del problema dual. Un problema de programacin lineal de la forma

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.

Ejemplo de conversin al dual. El dual del problema de programacin lineal


mn z = x1 + x2 x3
sujeto a: 2x1 + x2 3
x1 x3 = 2
x3 0

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.

Ejemplo de interpretacin del problema dual. Un carpintero modesto fabrica dos

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

La disponibilidad diaria de mecanizados primario y secundario es de 40 y 56 horas-mquina,


respectivamente. La venta de una mesa del tipo 1 reporta un beneficio de 70 dlares, mientras
que la venta de una mesa del tipo 2 de 90 dlares. Estos datos se resumen en la tabla anterior. El
Prof. Victor Bernal

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.

El dual y el programa LINGO. Al plantear un problema con el programa LINGO, se

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.

Prof. Victor Bernal

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

a considerar es un cambio en un costo del problema original. Se tienen entonces la tabla


original y la tabla ptima, como la fila de costos nunca interviene para sumarse o restarse, en
la tabla ptima debe aparecer con la variacin . Por ejemplo, en el problema
m
ax z = 3x + 2y
sujeto a:
x+y 4
2x + y 6
x, y 0
La tabla ptima (con s1 y s2 las variables de holgura) en la forma standard es:
z

s1

s2

10

-1

-1

Si el costo asociado con la variable x cambia de 3 a 3 + , la misma serie de pivotes lleva a la


siguiente tabla:
Prof. Victor Bernal

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.

Cambios en los costos de las variables no bsicas. Se estudia ahora el efecto de

cambios en los costos de las variables no bsicas. En el problema,


m
ax z = 3x + 2y + 2.5w
sujeto a:
x + y + 2w 4
2x + y + 2w 6
x, y, w 0
La tabla ptima es entonces,
z

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

si en el primer recurso limitado la restriccin cambia de 12 a 11 equivale a que la variable de


holgura ahora toma el valor 1, si se escribe el sistema asociado a la tabla ptima,
z + s1 + 2s2 = 22
y + s1 2s2 = 2
x s1 + 3s2 = 3
si se toma s1 = 1 y s2 = 0, la nueva solucin es z = 21, x = 4, y = 1, ya que las variables son
no negativas la solucin es ptima. En general, si se cambia la restriccin de 12 a 12 + los
cambios en la tabla queda,
Prof. Victor Bernal

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.

El mtodo SIMPLEX REVISADO

Es el algoritmo utilizado en la mayora de los programas comerciales basados en el mtodo


simplex. Es el mismo mtodo simplex ya conocido, excepto por algunas diferencias que lo
hacen ms eficiente al llevarlo al computador. Las principales diferencias se resumen en los
siguientes aspectos.
5.1.

Actualizacin de la fila de la funcin objetivo. Cuando el problema se lleva a la

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.

Determinacin de la variable que sale de la base. La variable que deja la base se

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-

tenidos en la matriz B1 denominada inversa de la base. La matriz de la base se construye


incluyendo aquellas columnas de la matriz original que corresponden al conjunto de variables
bsicas. Esta es una matriz cuadrada. Si se quieren calcular los valores de las variables bsicas
se debera encontrar la inversa como parte del proceso. Por lo tanto, la inversa de la base es
parte implcita de cualquier solucin. Ya que es muy difcil calcular la inversa de cada base en
cada paso iterativo, el mtodo simplex nos proporciona una forma de actualizar la base, paso
a paso. El mtodo simplex revisado utiliza el llamado mtodo LU de factorizacin de matrices
para actualizar la representacin de la inversa de la base en cada iteracin.
Prof. Victor Bernal

OPTIMIZACION

Pg. 67 de 131

5.4.

Eficiencia en el almacenamiento. Finalmente, el mtodo simplex revisado utiliza m-

todos de almacenamiento muy eficientes, basados en el tratamiento de las matrices esparcidas


(sparse matrix). Una matriz esparcida es aquella que contiene una alto porcentaje de ceros. En
la prctica, usualmente el 90 % de los coeficientes de la matriz original es cero, esto se debe
a que cada restriccin slo tiene que ver con unas pocas del total de variables presentes en
el problema y cada variable afecta slo una pequea cantidad de restricciones o la funcin
objetivo. En lugar de almacenar una voluminosa matriz con casi todos ceros, las tcnicas de
las matrices esparcidas almacenan slo las direcciones de la fila y columna, junto con el valor
no nulo all presente. Por ejemplo, si una matriz tiene el valor 75.4 en la fila 98 y la columna
506, la representacin puede ser (98,506,75.4). Otras representaciones ms eficientes se han
desarrollado en algunos programas de computacin. Como slo se almacenan los elementos
diferentes de cero los esquemas de matrices esparcidas son muy eficientes en la utilizacin del
espacio disponible en el computador.
Con excepcin de estas diferencias, el mtodo simplex revisado es bsicamente el mismo mtodo simplex ya explicado. Sin embargo, estas diferencias pueden ser muy importantes en la
prctica. Por ejemplo, si se conocen la tcnica de matrices esparcidas utilizada para almacenar las matrices es posible estimar los requerimientos de memoria para cualquier problema
particular, de manera que se sabr si ste puede ser resuelto en el computador que se tiene
disponible.

6.

Ejercicios

1. Considere la siguiente etapa del simplex para un problema de maximizar:


1

x1

x2

x3

x4

x5

x6

1 x1

2 x3

1 x4

-2

1 135

-11

-4

a) Cules son las variables bsicas?


b) Cul es la solucin correspondiente a esta tabla?
c) Cunto vale la funcin objetivo?
d) Qu tres cosas podemos verificar para detectar posibles errores de clculo?
e) Qu efecto tiene sobre la funcin objetivo introducir en la base cada una de las
variables no bsicas?
f ) Llamemos x a la variable no bsica que ha de entrar en la base. Cul es?
Prof. Victor Bernal

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?

Prof. Victor Bernal

OPTIMIZACION

Pg. 69 de 131

Captulo

Aplicaciones: Programacin lineal


1.

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

Tabla de costos de envo


de Knig y Egervry, H. W.Kuhn ide en 1955 el llamado Mtodo Hngaro, tal como el mismo
lo reconoce en su artculo The Hungarian Method for the assignment problem, (Naval Research
Logistic Quarterly, 2, 1955), (El mtodo hngaro para el problema de asignacin).
1.1.

Ejemplo de Formulacin. A modo de ejemplo, construyamos el modelo de progra-

macin lineal para el siguiente problema:


Una empresa del sector elctrico dispone de tres plantas generadoras para satisfacer la demanda de energa en cuatro ciudades. Las plantas 1, 2 y 3 pueden satisfacer 35, 50 y 40 millones
de [kwhr] respectivamente. El valor mximo de consumo ocurre a las 2 p.m y es de 45, 20, 30
y 30 millones de [kwhr] en las ciudades 1, 2, 3 y 4 respectivamente. El costo de enviar 1 [kwhr]
depende de la distancia que deba recorrer la energa. La siguiente tabla muestra los costos de
envo unitario desde cada planta a cada ciudad.
La solucin al problema puede obtenerse mediante la construccin de un modelo de programacin lineal que seale cmo minimizar los costos de satisfacer la demanda mxima en todas
las ciudades.
Las variables de decisin necesarias para representar las opciones que puede tomar la empresa corresponden a la cantidad de energa que se debe enviar desde cada planta a cada
ciudad, xij = nmero de millones de [kwhr] producidos en la planta i enviadas a ciudad j
(i = 1, 2, 3; j = 1, 2, 3, 4) En trminos de stas variables, el costo total de entregar energa a
todas las ciudades es:
8x11 + 6x12 + 10x13 + 9x14

(Costo de enviar energa desde la Planta 1)

+9x21 + 12x22 + 13x23 + 7x24

(Costo de enviar energa desde la Planta 2)

+14x31 + 9x32 + 16x33 + 5x34

(Costo de enviar energa desde la Planta 3)

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.

Formulacin General. Un problema de transporte queda definido por la siguiente

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)

El problema no balanceado. Si la oferta total supera a la demanda total, se puede

balancear el problema de transporte incorporando un punto de demanda artificial, o ficticio,


que tenga como demanda el excedente de oferta del problema. Como las asignaciones al punto
artificial no son reales, se le asigna un costo unitario de cero. En general, el costo unitario no
necesariamente debe ser igual a cero, basta con que tenga igual valor a todos los puntos de
oferta disponibles de forma de no generar preferencias. Por simplicidad, se prefiere emplear
cero.
As como un problema de transporte puede no estar balanceado cuando la demanda es inferior
a la oferta, tambin es posible que la demanda supere a la oferta. En este caso, se recurre a un
punto de oferta artificial con valor de oferta equivalente a la diferencia entre oferta y demanda,
de modo de balancear el problema. En la mayora de las situaciones, el hecho de no satisfacer
totalmente la demanda puede significar algn tipo de costo. Por lo tanto, en stos casos el costo
unitario de las casillas ficticias suele no ser cero y puede variar de un punto de demanda a otro.
Una forma ms prctica de representar un problema de transporte es mediante un tableau de
transporte. Una celda de la fila i y la columna j representa la variable xij . Se suele incorporar
en la esquina superior derecha de cada celda, el costo unitario cij de la combinacin i j. En
general, el tableau queda:
Oferta
c11

c12

c1n
s1

c21

c22

c2n
s2

..
.

..
.

..
.

cn1

cn2

cnn
sn

Demanda d1

d2

dn

Construyendo el tableau para el ejemplo anterior (caso balanceado), introduciendo la solucin


ptima, se tiene:
Prof. Victor Bernal

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.

Solucin del problema de transporte.


La solucin inicial. Consideremos un problema de transporte balanceado con m

puntos de oferta y n puntos de demanda. De acuerdo con la formulacin vista anteriormente,


el problema tendr m + n restricciones de igualdad. Antes de describir algunos mtodos para
encontrar una solucin inicial, es importante observar que si un conjunto de valores para las
variables xij satisface todas las restricciones salvo una, automticamente satisface la otra restriccin. Si vemos el ejemplo anterior, se sabe que los valores de las variables satisfacen todas
las restricciones, salvo la primera restriccin de oferta. Por lo tanto, los valores de las xij satisfacen d1 + d2 + d3 + d4 = 125 millones de [kwhr] y proveen s2 + s3 = 125 s1 = 90 millones de
[kwhr] de las plantas 2 y 3. Por lo tanto, la planta 1 debe proveer 125 (125 s1 ) = 35 millones
de [kwhr], luego los valores de xij tambin satisfacen la primera restriccin de oferta.
En lo sucesivo, para resolver el problema de transporte, consideraremos que se satisfacen
m + n 1 restricciones, omitiendo alguna. En forma arbitraria, omitiremos la primera restriccin de oferta. Evidentemente, cualquier coleccin de m + n 1 variables no necesariamente
es una solucin factible para el problema. Consideremos el siguiente problema de transporte
(omitiendo los costos unitarios):
4
5
3 2 4
Prof. Victor Bernal

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

Eliminando la primera restriccin de oferta el sistema se reduce a:

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

3. El mtodo del Costo Mnimo.


1.4.2.

Mtodo de la Esquina Noroeste. Este mtodo es considerado como el ms fcil. Es

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

Finalmente, se completa el tableau haciendo la ltima asignacin factible:


2

En el tableau final se puede verificar las m + n 1 asignaciones. Adems se observa que la


secuencia de celdas no conforman ningn loop, por lo tanto, de acuerdo al teorema corresponde
a una asignacin inicial factible.
1.4.3.

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.

El mtodo de costo mnimo. Este es un procedimiento que se utiliza tomando como

base las rutas que tengan el menor costo: El procedimiento es el siguiente:


Asignar el valor ms grande posible a la variable con menor costo unitario de toda la tabla. (Los
empates se rompen arbitrariamente). Tachar la fila o columna satisfecha. (Como en el mtodo
de la esquina noroeste, si una columna y una fila se satisfacen de manera simultnea, slo una
puede tacharse). Despus de ajustar la oferta y la demanda de todos los renglones y columnas
no tachados, repetir el proceso asignando el valor ms grande posible a la variable con el costo
unitario no tachado ms pequeo.
El procedimiento est completo cuando queda exactamente una fila o una columna sin tachar.
1.5.

El Mtodo Simplex del Problema de Transporte. A continuacin se exponen los pa-

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.

Otras aplicaciones del modelo de transporte. Algunos problemas de programacin

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

Max. Prod. regular

Max. Prod. extra

Costo/unidad regular ($)

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

La solucin ptima es producir cuatro unidades en el perodo 1, tres en el perodo 3 y almacenar


3 del perodo 1 al perodo 2.

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.

El algoritmo hngaro. La forma especial de algoritmo para el problema de asignacin

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.

Casos especiales del modelo de asignacin.

2.2.1.

Oferta y demanda desiguales. Cuando la oferta y la demanda son desiguales, se

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.

Problemas de maximizacin. Si en un problema de asignacin la respuesta a cada

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.

Problemas con asignacin inaceptable. Suponga que se est resolviendo un proble-

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

Prof. Victor Bernal

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

Cual es el esquema de asignacin que minimiza el costo de la empresa?


3. La administracin de la Fbrica Nacional de Cereales ha decidido la expansin de su
capacidad de produccin tanto de su factora central, como de sus otras fbricas.A
continuacin, se presentan los requerimientos y capacidades de las ciudades y de las
factoras:
Nuevos Requerimientos

Nueva Capacidad en las fbricas

(Unidades)

(Unidades)

Valencia

200

Caracas

300

Cuman

200

San Cristbal

150

San Felipe

300

Los Teques

250

Los costos entre las factoras y los centros de distribucin son:


A

Valencia

Cuman

San Felipe

Caracas

San Cristbal

Los Teques

DE

Plantear y resolver el anterior problema como un modelo de transporte.


4. La Compaa Agroinsumos ofrece tres clases de abono para los cultivos que se presentan en la zona cerealera (Acarigua, Pritu, Turn). Determine el mejor modelo de
transporte a partir de la informacin dada en la siguiente tabla:
Prof. Victor Bernal

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)

5. En el siguiente problema de asignacin, encontrar la asignacin ptima:


A

6. Conseguir la afijacin ptima en el problema de asignacin:


1

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

7. Encontrar la asignacin ptima en el problema siguiente:

Prof. Victor Bernal

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

El problema ms general de programacin no lineal (PPNL), puede plantearse como:


Minimizar z = f (x1 , . . . , xn )
sujeta a
h1 (x1 , . . . , xn ) = 0
..
.
hp (x1 , . . . , xn ) = 0
g1 (x1 , . . . , xn ) 0
..
.
gm (x1 , . . . , xn ) 0
En forma compacta el modelo anterior puede escribirse:
Minimizar z = f (x)
85

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

tiene como derivada


x
5
Esto muestra que f (x) es diferenciable en todo R, pero tiene un conjunto infinito de puntos
f 0 (x) = 10x sen(x) +

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

Prof. Victor Bernal

OPTIMIZACION

Pg. 87 de 131

2. La funcin es acotada en S pero no se alcanza la cota inferior: nf f (x) en S. Por ejemplo,


xS

la funcin f (x) = ex est acotada en S = R y la cota inferior es 0 pero es inalcanzable


por f (x).
Las siguientes propiedades, cuya demostracin se puede encontrar en cualquier texto de Investigacin de Operaciones dan las condiciones requeridas para garantizar la existencia de un
valor ptimo.
Teorema 4 (Existencia de soluciones ptimas). Sea S un conjunto cerrado, acotado y no
vaco de Rn y f : S R una funcin continua. El problema
Minimizar z = f (x),

sujeta a x S;

admite al menos una solucin ptima.


Una consecuencia inmediata es el siguiente corolario.
Corolario 1 (Existencia de soluciones ptimas). Sea S un conjunto cerrado y no vaco
(posiblemente no acotado) de Rn y f : S R una funcin continua. Si
lm f (x) = +

x+

xS

entonces el problema
Minimizar z = f (x),

sujeta a x S;

admite al menos una solucin ptima.


Estos resultados pueden hacerse ms explcitos cuando la funcin f (x) es convexa.
Las siguientes definiciones precisan los conceptos de mnimo global y mnimo local.
Definicin 7 (Mnimo global). Una funcin f (x) tiene un mnimo global (mnimo global estricto) en el punto x , de S, sii f (x ) f (x) (f (x) < f (x)) para todo x en S.
Definicin 8 (Mnimo local). Una funcin f (x) tiene un mnimo local (mnimo local estricto)
, de S, sii existe un nmero positivo tal que f (
en el punto x
x ) f (x) (respectivamente,
f (
x ) < f (x)) para todo x en S tal que 0 < k
x xk < .
De ello se concluye que un mnimo global es tambin un mnimo local.
En una dimensin es fcil ilustrar los conceptos anteriores. En la figura, S es el segmento
[a, b]. S = {a, x1 , x2 } es el conjunto de los mnimos locales, y S = {a, x2 } es el conjunto de
Prof. Victor Bernal

OPTIMIZACION

Pg. 88 de 131

los mnimos globales.


Funci
on objetivo

f (x)

x
a

x1
x2
Region de factibilidad

Definicin 9 (Diferenciabilidad). Se dice que f : Rn R es diferenciable en x si existen las


f
derivadas parciales
, i = 1, . . . , n y
xi
f (y) f (x) f (x)t (y x)
=0
yx
ky xk

t
f (x)
f (x)
,...,
es el gradiente de f en x.
donde f (x) =
x1
xn
lm

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.

Condiciones de Karush, Kuhn y Tucker

Las condiciones de Karush, Kuhn and Tucker constituyen el resultado ms importante de la


programacin no lineal. Deben ser satisfechas por cualquier ptimo restringido, sea local o global, y para cualquier funcin objetivo, ya sea lineal o no lineal. Adems, los criterios de parada
de los mtodos iterativos se basan en estas condiciones. Mientras que en los problemas diferenciables sin restricciones el gradiente se anula en los mnimos locales, esto no ocurre para
Prof. Victor Bernal

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

Optimo f (a) < 0

x
a

La siguiente definicin establece la forma de las condiciones de Karush-Kuhn-Tucker.


Definicin 11 (Condiciones Karush-Kuhn-Tucker). El vector x Rn satisface las condiciones de Karush- Kuhn-Tucker para el PPNL si existe un par de vectores Rm y Rp tales
que

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.

Casos Especiales. Si falta una restriccin en un PPNL, el multiplicador asociado a la

restriccin ausente se anula y la restriccin se elimina de la formulacin de las condiciones de


KKT. En estos casos resulta:
1. Problemas sin restricciones. En este caso slo se tiene la condicin:
f (
x) = 0
2. Problemas con restricciones de igualdad solamente. Las condiciones de KKT son una
extensin del principio clsico del mtodo de los multiplicadores de Lagrange. Este
mtodo surge con problemas que slo tienen restricciones de igualdad, resultando:
f (
x) +

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.

Ejemplo. El siguiente es un ejemplo de aplicacin de la teora antes expuesta.


Minimizar z = x1 + x2

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

2. Las condiciones primales de factibilidad:


x12 + x22 4 0
x1 0
x2 0
x12 + x2 = 0
3. Las condiciones de holgura complementaria son:
1 (x12 + x22 4) = 0
2 (x1 ) = 0
3 (x2 ) = 0
4. Las condiciones duales de factibilidad son:
1 , 2 , 3 0
La solucin se obtiene como sigue:
Caso 1: 2 0. Si 2 0 entonces x1 = 0 y por lo tanto, de la estacionariedad,
1 2 = 0
1 + 2x2 1 3 + = 0.
Puesto que 2 = 1 y no se cumple la condicin de no negatividad, entonces los puntos KKT
deben satisfacer 2 = 0.
Caso 2: 3 0 y 2 = 0. Si 3 0 entonces x2 = 0 y de la relacin x12 + x2 = 0 se obtiene
x1 = 0 y se deducira 1 = 0, por lo que todo punto KKT debe satisfacer 3 = 0.
Caso 3: 1 0 y 2 = 3 = 0. Si 1 0 entonces resulta x12 + x22 4 = 0 y con la condicin de
factibilidad, resulta el sistema de ecuaciones
x12 + x22 4 = 0
x12 + x2 = 0

, ), 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.

Ejemplo. Para aclarar la necesidad de las condiciones de KKT en un problema de

optimizacin se expone el siguiente ejemplo.


Maximizar y minimizar x = x13 + x23 + x33
sujetos a
x12 + x22 + x32 4 = 0
x1 + x2 + x3 1
Prof. Victor Bernal

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,

con y los multiplicadores de la desigualdad e igualdad, respectivamente ( 0 si mnimo,


y 0 si mximo).
Caso 1: = 0. El sistema se simplifica a

3x12 + 2x1 = 0
3x22 + 2x2 = 0
3x32 + 2x3 = 0
x12 + x22 + x32 4 = 0
x1 + x2 + x3 1,

Por simetra respecto a permutaciones basta considerar:


Caso 1.a: x1 = x2 = x3 = 0. Imposible por la restriccin

x12 + x22 + x32 4 = 0

Caso 1.b: x1 = x2 = 0, x3 0. Las dos restricciones y sus permutaciones conducen a las


soluciones (0, 0, 2), (0, 2, 0) y (2, 0, 0).
Caso 1.c: x1 = 0, x2 , x3 0. Las ecuaciones en implican x2 = x3 y sus restricciones conducen

a la solucin (0, 2, 2) y sus permutaciones ( 2, 0, 2), ( 2, 2, 0).


Caso 1.d: x1 , x2 , x3 0. Las ecuaciones en conducen a x1 = x2 = x3 , y las restricciones, al
nico candidato

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

Interpretacin econmica de los multiplicadores

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

Igualando en las dos ltimas ecuaciones obtenemos y = x 1. Sustituyendo en la primera


queda 2x = 22, luego x = 11, y = 10 y = 24.
As pues, si hay solucin ptima, sta ha de ser el punto crtico (x, y) = (11, 10) con multiplicador = 24. Para determinar si este punto es realmente una solucin ptima se verifica si la
funcin objetivo es convexa. El mtodo es aplicable porque la restriccin es lineal. La matriz
hessiana de la funcin objetivo es

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

En principio, si la produccin sube a 23 unidades, para saber el costo se resuelve el nuevo


problema
Minimizar z = x 2 + y 2 + 2x + 4y + 10
sujeto a
x + y = 23
Al resolver este problema se comprueba que el nuevo costo es de 343, con lo que el incremento
de costo que ocasiona aumentar la produccin en 2 unidades resulta ser de 343 - 293= 50.
Sin embargo, si nos basta una respuesta aproximada, no es necesario repetir todos los clculos.
El multiplicador = 24 informa de que el incremento de costo ocasionado por un incremento
de la produccin b = 2 sera, aproximadamente,
C b = 24 2 = 48
El error que cometemos con esta aproximacin es de 2 sobre un total de 50, por lo que es una
aproximacin admisible.
3.2.

Ejemplo. Una empresa fabrica tres artculos en cantidades x, y, z y trata de maximi-

zar sus beneficios de acuerdo con el problema siguiente:


Maximizar z = 7x + 4y + 2z

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

disminuirn en 14 unidades monetarias.


Nota: Las interpretaciones siguientes son incorrectas:
1. 1 = 0 significa que por cada unidad que la empresa aumente su produccin total el
beneficio no se ver alterado.
2. 1 = 0 significa que un aumento en la produccin del primer artculo no afectar los
beneficios.
4.

Ejercicios

1. Resolver:
a) Min. x 2 + xy + y 2 6x + 2

c) Max. 3x 2 +5y 2 +5z2 +2yz+6zx2xy

b) Max. x 2 + xy + y 2 + x + 5y

d) Max. 4x 6y x 2 2y 2

2. Sabiendo que la funcin f (x, y) = x 4 + y 4 4xy + 3 tiene mnimo global, calcularlo


y determinar si es estricto o no estricto. Tiene mximo global?
3. Encontrar los extremos globales de los problemas siguientes:
a) Opt. 3x 2 + xy + 4y 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

7. Calcular la funcin valor ptimo f (b) para el problema


Min. x 2 + y 2 + z2
s.a. x + y + z = b.
Calcular el multiplicador de Lagrange y comprobar que coincide con la derivada de
f .
8. Un inversor plantea invertir cantidades x, y en dos activos financieros. Los intereses
esperados vienen dados por la funcin I(x, y) = 0.12x + 0.08y. El riesgo r de la inversin viene dado por la relacin 100r = 0.25x 2 + 0.05y 2 + 0.1xy. Si el inversor quiere
asumir un nivel de riesgo r = 13.6, calcular la inversin que maximiza los intereses esperados. Determinar dichos intereses y estudiar cmo les afecta un pequeo aumento
del nivel de riesgo admitido por el inversor. (Nota: El conjunto de oportunidades es una
elipse.)
9. La funcin de utilidad de un consumidor es
U (x, y) = 2x 3 9x 2 6y + 40
donde x, y son las cantidades adquiridas de dos bienes A y B. El precio unitario de A
es de $2M, el de B de $1M y el consumidor dispone de un presupuesto de $6M.
a) Calcular la utilidad mxima que puede obtener el consumidor si gasta todo su presupuesto.
b) Estudia qu aumento de utilidad puede conseguirse con un aumento de una unidad
de presupuesto.
c) Que ocurrira si el consumidor decidiera comprar una unidad del segundo bien?
10. Una empresa exporta cantidades x, y (en miles de toneladas) de su producto a dos
pases. Su funcin de beneficios es
B(x, y) = x 2 + 4xy 2y 2 + 10.
La legislacin del pas impone a la empresa una cuota de exportacin de 10.5 miles de
toneladas.
a) Calcular la cantidad que conviene exportar a cada pas de modo que la cantidad
total exportada sea la que marca la cuota.
b) Razonar el efecto que tendra sobre la empresa que la cuota pasara a ser de 10 miles
de toneladas.
c) Calcular el beneficio de la empresa que consigue exportando la misma cantidad a
ambos pases.
d) Calcular las cantidades a exportar si desaparece la cuota de exportacin.
e) Razonar si a la empresa le conviene la existencia de la cuota.
11. La funcin de produccin de una empresa es
P (x, y) = x 2 + 2y 2 + 10xy
Prof. Victor Bernal

OPTIMIZACION

Pg. 100 de 131

donde x, y son las cantidades empleadas de dos factores de produccin. El precio


unitario de los factores es de $1M y $2M respectivamente, y la empresa dispone de un
presupuesto de $70M que debe gastar en su totalidad.
a) Calcular la produccin mxima que puede conseguir la empresa y las cantidades
requeridas de los factores de produccin.
b) Estudiar la conveniencia de aumentar el presupuesto disponible.
12. Una empresa produce tres productos en cantidades x, y, z. La funcin de costo es
C(x, y, z) = x 2 + 2x + y 2 + 2z + 100.
A su vez, vende los productos en dos mercados con la siguiente estructura de demanda
2x + 8y + 6z = 204
2x + 4y + 2z = 92
donde los trminos independientes representan la demanda de cada mercado.
a) Calcular la produccin que minimiza los costos.
b) Calcular el costo ptimo.
c) Razonar si a la empresa le interesa un aumento en la demanda de los mercados. En
cul preferentemente?
13. La utilidad que obtiene un individuo a lo largo de su vida depende del consumo en su
etapa activa c1 y del consumo en su etapa pasiva c2 . La funcin de utilidad es
U (c1 , c2 ) = (c1 c2 )1/2 .
y la restriccin presupuestaria indica que el consumo en el periodo pasivo es igual al
ahorro en el periodo activo ms sus intereses:
c2 = (R c1 )(1 + i),
donde R es la renta del consumidor.
a) Determinar el consumo en el periodo activo y pasivo que maximizan la utilidad de
un consumidor con una renta R = 1000 y un inters i = 0.1.
b) Razonar si un individuo con una renta ligeramente superior obtendra o no mayor
utilidad.
c) Repetir el problema si i = 0.05 y comparar la estrategia consumoahorro respecto
a la obtenida en el caso precedente.
14. Resolver los problemas siguientes:
a) Max. x 2 y 2
s.a. x + y 1
b) Min. x 2 + y 2
s.a. x + y 1
Prof. Victor Bernal

c) Max. x + y
s.a. x 2 + y 2 1
d) Min. x + y
s.a. x 2 + y 2 1
OPTIMIZACION

Pg. 101 de 131

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

15. Considerar el problema


Max. y
s.a. x 2 + y 2 6
x2 y 0
x, y 0
a) Resolverlo grficamente.
b) Comprobar que el ptimo cumple las condiciones de Kuhn y Tucker.
16. Considerar el problema Max. 6x + 3y x 2 + 4xy 4y 2
s.a. x + y 3
4x + y 9
x, y 0
Sabiendo que (2, 1) es su nico punto de Kuhn y Tucker, demostrar que es el nico
mximo global.
17. Dado el problema
Min. 2x + y
s.a. xy 4
x y 2
y 0,
a) Comprobar grficamente que (0.2, 0) es un ptimo global del problema.
b) Razonar que es un punto de Kuhn y Tucker (sin comprobar explcitamente que
cumple las condiciones).
c) Comprobar explcitamente que cumple las condiciones de Kuhn y Tucker.
18. Considera el problema Max. (x 2)2 + (y 2)2
s.a. x y 8
x + y 4
x, y 0
a) Escribir las condiciones de Kuhn y Tucker.
b) Comprobar si los puntos (2, 0.6) y (8, 0) verifican dichas condiciones.
c) A partir de los resultados del apartado anterior, qu se puede decir sobre su optimalidad?
Prof. Victor Bernal

OPTIMIZACION

Pg. 102 de 131

19. Dado el problema


Max. 4x 2 2xy y 2
s.a. x 2 + y 2 4
x+y 1
a) Comprobar si los puntos (0, 1), (1, 0) y (2, 2) cumplen las condiciones de Kuhn y
Tucker.
b) Son ptimos del problema?
20. Considerar el problema
Max. x 2 + y 2
s.a. x + y 1
xy 0
x0
a) Comprobar que el punto (0, 0) cumple las condiciones de Kuhn y Tucker.
b) Se pueden aplicar las condiciones de suficiencia para concluir que es un mximo
global?
c) Es un mximo global?

Prof. Victor Bernal

OPTIMIZACION

Pg. 103 de 131

Captulo

Aplicaciones: Programacin no lineal


1.

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.

Planteamiento del problema. La forma ms general del problema de programacin

cuadrtica es, Una funcin cuadrtica en un nmero finito de variables (x1 , x2 , . . . , xn )t es


cualquier funcin de la forma
n n
1 X X
qkj xk xj .
f (x) = +
cj xj +
2 k=1 j=1
j=1
n
X

En forma matricial se simplifica como


1 t
x Qx
2
Con esta notacin, la forma ms general del problema de programacin cuadrtica es,
f (x) = c t x +

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.

Ejemplo de funcin objetivo. Si, por ejemplo, la funcin objetivo es

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

c t = (2, 35, 47)

Las condiciones de optimalidad. El primer paso en la solucin del problema de pro-

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

De esta manera las condiciones de KKT son,


1. Estacionariedad del Lagrangiano.
x L(x, , ) = Qx + c + At = 0
2. Condiciones primales de factibilidad.
Ax b,

x 0

3. Condiciones de holgura complementaria.


t (Ax b) = 0,
Prof. Victor Bernal

t x = 0

OPTIMIZACION

Pg. 106 de 131

4. Condiciones duales de factibilidad.


0,

La variable se puede eliminar de estas condiciones haciendo uso de la estacionariedad del


Lagrangiano despejando
= Qx + c + At .
Las condiciones resultantes se denominan condiciones de KKT para el problema de programacin cuadrtica.
Definicin 13 (Condiciones de KarushKuhnTucker). Un par (x, ) Rn Rn se llama par
de KarushKuhnTucker para el problema de programacin cuadrtica si, y slo si, se cumplen
las siguientes condiciones:
0 x,

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.

Las condiciones de KarushKuhnTucker. Para un mejor manejo de las condiciones

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

Pg. 107 de 131

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.

Ejemplo. Resolver el siguiente problema.


mn f = 8x1 16x2 + x12 + 4x22

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

Pg. 108 de 131

para ser un ptimo global.

5
1
1
2
0
8
, b =
, A =
ct = , Q =
3
1 0
0 8
16

x = (x1 , x2 ), y = (y1 , y2 ), = (1 , 2 ), v = (v1 , v2 )


Las restricciones lineales toman la forma,
2x1

+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

Todas las variables no negativas y se cumple la condicin de holgura complementaria.


La aplicacin del simplex modificado a este ejemplo, produce la siguiente secuencia de iteraciones,
Iteracin

Var. bsicas

Solucin

Objetivo Entra Sale

(a1 , a2 , a3 , a4 ) (8, 16, 5, 3)

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

Prof. Victor Bernal

OPTIMIZACION

Pg. 109 de 131

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

Prof. Victor Bernal

OPTIMIZACION

Pg. 110 de 131


Apendice

El programa LINGO

Universidad Nacional Experimental Politcnica


Antonio Jos de Sucre
Vicerectorado Barquisimeto.
Direccin de Investigacin y Postgrado

El programa LINGO. Mtodos de Optimizacin (II-51053).


Prof: Victor Bernal

1.

El lenguaje de modelado: LINGO

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

Pg. 112 de 131

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

con la figura de la diana.

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

Pg. 113 de 131

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

Pg. 114 de 131

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.

La formulacin del modelo en LINGO

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

Pg. 115 de 131

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;

1.6 1.3 1.6 0.8; ! Soldadora;


ENDDATA

Antes de presentar el modelo matemtico necesitamos introducir dos importantes funciones


de ciclo que permiten aplicar una operacin a todos los miembros de un conjunto mediante el
uso de una sola instruccin. Una de ellos es la funcin @SUM, que calcula la suma de una expresin sobre todos los elementos de un conjunto. La forma general de @SUM es @SUM(conjunto:
expresin). Para cada elemento del conjunto se calcula la expresin y luego se suman todos
los resultados. Por ejemplo,
@SUM( Producto(j): HorasUsadProd(i,j)*Produc(j))<= HorasDispProd(i); );
Prof. Victor Bernal

OPTIMIZACION

Pg. 116 de 131

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

que ya fue descrita en el modelo.


La segunda funcin importante de ciclo es @FOR. Esta funcin se utiliza para generar restricciones sobre los elementos de un conjunto. La forma general es @FOR(conjunto: restricciones).
Por ejemplo,
@FOR( Maquina(i):
@SUM( Producto(j): HorasUsadProd(i,j)*Produc(j))<= HorasDispProd(i); );
genera la restriccin despus de los dos puntos, para cada elemento del conjunto que precede
a los dos puntos. (El smbolo menor o igual a, , no figura en ningn teclado corriente, por lo
que LINGO trata los smbolos del teclado estndar <= como equivalentes a .) Este conjunto
es el de mquinas Maquina(i), i = 1,2,3, por lo que esta funcin recorre el ndice i. Para
cada i, la restriccin despus de los dos puntos se expres anteriormente de manera algebraica
como,
4
X

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

Pg. 117 de 131

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;

1.6 1.3 1.6 0.8; ! Soldadora;


ENDDATA
! Maximizar el beneficio;
MAX = @SUM( Producto(i): Benef(i)*Produc(i));
! Para cada maquina i;
@FOR( Maquina(i):
! Horas gastadas <= Horas disponibles;
@SUM( Producto(j): HorasUsadProd(i,j)*Produc(j))<= HorasDispProd(i); );

El modelo se resuelve pulsando el botn

en la barra de comandos LINGO. Al pulsar el botn

en la barra de comandos genera un informe que se ve, en parte, de la siguiente manera.


Global optimal solution found.
Objective value:

475.0000

Infeasibilities:

0.000000

Total solver iterations:

Elapsed runtime seconds:

0.05

Model Class:

Prof. Victor Bernal

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

Pg. 118 de 131

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.

Formulacin en conjuntos y formulacin escalar

La anterior formulacin es llamada formulacin basada en conjuntos. Para los modelos ms


sencillos puede bastar la llamada formulacin escalar que no incluye las definiciones SETS. De
hecho para este modelo slo es necesario seleccionar la secuencia LINGO | Generate | Display
model, para generar en la pantalla el modelo escalar equivalente.
MODEL:
Prof. Victor Bernal

OPTIMIZACION

Pg. 119 de 131

[BENEFICIO] MAX= 26 * PRODUC_P1 + 35 * PRODUC_P2 + 25 * PRODUC_P3 + 37 * PRODUC_P4;


[CAPACIDAD_DOBLADORA] 1.7 * PRODUC_P1 + 2.1 * PRODUC_P2 + 1.4 * PRODUC_P3 + 2.4 *
PRODUC_P4 <= 28;
[CAPACIDAD_CORTADORA] 1.1 * PRODUC_P1 + 2.5 * PRODUC_P2 + 1.7 * PRODUC_P3 + 2.6 *
PRODUC_P4 <= 34;
[CAPACIDAD_SOLDADORA] 1.6 * PRODUC_P1 + 1.3 * PRODUC_P2 + 1.6 * PRODUC_P3 + 0.8 *
PRODUC_P4 <= 21;
END
Esta formulacin el problema puede ser introducida directamente en el programa como un
texto corriente.

4.

Importacin y exportacin de datos con la hoja de clculo

El ejemplo anterior, basado en conjuntos, es completamente autnomos en el sentido de que


todos los datos se incorporaron directamente en la formulacin LINGO. En algunas otras aplicaciones, una gran cantidad de datos se almacena en alguna fuente y debe ser llevado al modelo
desde esa fuente. Un lugar muy utilizado para el almacenamiento de datos es la hoja de clculo.
LINGO tiene una simple funcin, @OLE(), para recuperar y colocar datos desde y en hojas de
clculo.
Para ilustrar, supongamos que los datos del problema de mezcla de productos se introdujeron
originalmente en una hoja de clculo, como se muestra en la figura. Por el momento, slo estamos interesados en las celdas en las columnas AB y DG. Los datos de estas celdas describen
completamente este pequeo ejemplo de mezcla de productos. Para evitar escribir de nuevo
estos datos en el modelo LINGO la nica parte del modelo LINGO que hay que cambiar es la
seccin de datos (DATA), como se muestra a continuacin.
DATA:
! Nombres de las maquinas y horas disponibles;
Maquina, HorasDispProd = @OLE( ) ;
! Nombres de los productos y beneficios;
Producto, Benef = @OLE( );
! Horas gastadas por producto;
HorasUsadProd = @OLE( );
! Enviar la solucin a Excel;
@OLE( ) = Produc;
ENDDATA

Prof. Victor Bernal

OPTIMIZACION

Pg. 120 de 131

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

Pg. 121 de 131

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.

Importacin y exportacin desde bases de datos en LINGO

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

Pg. 122 de 131

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,

Prof. Victor Bernal

OPTIMIZACION

Pg. 123 de 131

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.

Clculos adicionales en modelos LINGO

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

Pg. 124 de 131

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.

El modelo bsico de Markowitz

En el campo de la teora de seleccin de carteras, ocupa un lugar destacado Harry Markowitz,


que en 1952 public en la revista Journal of Finance un artculo basado en su tesis doctoral y
titulado Portfolio Selection. En dicho artculo planteaba un modelo de conducta racional del decisor para la seleccin de carteras de ttulos-valores con liquidez inmediata2. Posteriormente,
en 1959, public su libro Portfolio Selection, Efficient Diversification of Investments, en el que
expone y desarrolla con mayor detalle su teora. Desde su aparicin, el modelo de Markowitz
ha conseguido un gran xito a nivel terico, dando lugar a mltiples desarrollos y derivaciones, e incluso sentando las bases de diversas teoras de equilibrio en el mercado de activos
financieros. Sin embargo, su utilizacin en la prctica entre gestores de carteras y analistas de
inversiones no ha sido tan extensa como podra deducirse de su xito terico. En este modelo,
tomamos las declaraciones anuales de tres acciones y en una seccin CALC se obtienen los siguientes tres tipos de informacin: el retorno promedio, la matriz de covarianza y la matriz de
correlacin. Esta informacin se utiliza a continuacin, en un modelo de Markowitz estndar,
para determinar una cartera ptima que cumple un nivel deseado de rendimiento mientras se
minimiza el riesgo global.
MODEL:
Prof. Victor Bernal

OPTIMIZACION

Pg. 125 de 131

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.046 -0.272 -0.078


-0.071

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

Pg. 126 de 131

CORR( S1, S2) = COVR( S1, S2) /


( COVR( S1, S1) * COVR( S2, S2)).5;
);
ENDCALC
! Minimizar el riesgo del portafolio
(es decir, su varianza);
[R_OBJ] MIN = @SUM( SXS( S1, S2):
PROPORCION( S1) * PROPORCION( S2) * COVR( S1, S2));
! Debe invertirse todo el capital;
[R_DISPONIBLE] @SUM( ACCIONES: PROPORCION) = 1;
! Debe excederse el retorno deseado;
[R_TARGET] @SUM( ACCIONES: RET_PROM * PROPORCION) >= TARGET;
END
La ejecucin del programa anterior en LINGO lleva a un resultado como el que se indica en la
grfica. Los valores de las proporciones muestra los porcentajes de cada una de las acciones
en el portafolio que da el retorno deseado con un mnimo riesgo. El siguiente ejemplo es una
extensin del modelo bsico de Markowitz.

8.

Frontera eficiente de un portafolio

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

Pg. 127 de 131

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

Modelo genrico de cartera de Markowitz 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

Pg. 128 de 131

!VG058; 0 -.24279 -.31701 1


!VG079; 0 .75201 .76143 -.34311 1
!VG072; 0 .49386 .49534 -.24055 .68488 1
!VG533; 0 .77011 .76554 -.18415 .84397 .69629 1;
! Nmero de retornos diferentes por evaluar;
NPUNTOS = 12;
ENDDATA
!--------------------------------------------------------------;
SUBMODEL HARRY:
! Modelo estndar de portafolio de Markowitz;
! Minimizar la varianza del retorno anual del portafolio;
[OBJ] MIN = RIESGO;
RIESGO = (@SUM( ACTIVO( I): DVSA( I)*DVSA(I) * X( I)2) +
2 * @SUM( TMAT( I, J) | I #NE# J:
X( I) * X( J)* CORR( I, J) *( DVSA( I) * DVSA( J)))).5 ;
! Restriccion del presupuesto;
[PRESPTO] @SUM( ACTIVO(i): X(i)) = CAPITAL;
! Retorno deseado;
[RETORNO] @SUM( ACTIVO(i): ERET(i) * X(i)) >= TARGET * CAPITAL;
ENDSUBMODEL
CALC:
! Procesamiento previo de los datos;
@FOR( ACTIVO(I):
! Calcular la desv. st. anual de datos mensuales;
DVSA(I) = DVSM(I)*(12.5););
! Calcular retornos mximo y mnimo de cada inversion;
RET_MIN = @MIN( ACTIVO(I): ERET(I));
RET_MAX = @MAX( ACTIVO(I): ERET(I));
! Imprimir encabezado de riesgo vs. retorno;
@WRITE(@NEWLINE(1), Clculo de la frontera eficiente del portafolio.
,@NEWLINE(1));
@WRITE( Posibles inversiones: ,@NEWLINE(1),
CD___= Tasa libre de riesgo, ,@NEWLINE(1) ,
VG040= Indice burstil SP500, ,@NEWLINE(1) ,
VG058= Exentos de impuestos a largo plazo, ,@NEWLINE(1),
VG072= Indice burstil del Pacfico,,@NEWLINE(1),
VG079= Indice burstil Europeo, ,@NEWLINE(1),
VG102= Valorizacin del capital, ,@NEWLINE(1),
Prof. Victor Bernal

OPTIMIZACION

Pg. 129 de 131

VG533= Mercados emergentes. ,@NEWLINE(2) );


@WRITE(

Retorno Riesgo

Composicin del portafolio,

@NEWLINE(1));
@WRITE(

Deseado 1-Ao );

! Ocultar todo, excepto errores;


! El parmetro TERSEO regula la cantidad de informacin
que proporciona LINGO en pantalla;
@SET("TERSEO", 2);
! Imprimir los activos en una fila;
@FOR( ACTIVO(I):
@WRITE(

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

,@FORMAT( TARGET, #6.3f), );

@WRITE( @FORMAT( RIESGO, #7.4f), );


@FOR( ACTIVO(I):
! Si X es casi cero, imprimir espacios en lugar de 0.0000;
@IFC( X(i) #GT# .00001:
@WRITE( @FORMAT( X(i), #7.4f));
@ELSE
@WRITE(

);));

@WRITE( @NEWLINE(1));K = K + 1;);


! Final del ciclo While;
@WRITE(@NEWLINE(1), Datos utilizados: ,@NEWLINE(1));
@WRITE(

Retorno anual esperado:);

@FOR( ACTIVO(I):
@WRITE( @FORMAT( ERET(i), #7.4f)););
@WRITE( @NEWLINE(1));
@WRITE(

Desv. st. del retorno/ao:);

@FOR( ACTIVO(I):
@WRITE( @FORMAT( DVSA(i), #7.4f)););
Prof. Victor Bernal

OPTIMIZACION

Pg. 130 de 131

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.

Prof. Victor Bernal

OPTIMIZACION

Pg. 131 de 131