Вы находитесь на странице: 1из 183

Alberto Aguilera 23 E 28015 Madrid Tel: 34 91 542 2800 Fax: 34 91 541 1132 www.doi.icai.upco.

es















MODELOS MATEMTICOS
DE
OPTIMIZACIN



lvaro Ballo
Pedro Linares
Andrs Ramos
Pedro Snchez
ngel Sarabia
Begoa Vitoriano











Septiembre 2003

19/01/04 i
NDICE

I.1. OPTIMIZACIN...........................................................................................3
I.1.1. Investigacin operativa y optimizacin ......................................... 3
I.1.2. Referencias ............................................................................... 9
I.2. MODELOS DE OPTIMIZACIN..................................................................... 11
I.2.1. Modelo y modelado .................................................................. 11
I.2.2. Etapas en el desarrollo de un modelo.......................................... 12
I.2.3. Referencias ............................................................................. 15
I.3. FORMULACIN DE PROBLEMAS DE OPTIMIZACIN..................................... 17
I.3.1. Modelos caractersticos de programacin lineal ........................... 17
I.3.2. Modelos caractersticos de programacin entera.......................... 22
I.3.3. Modelado de restricciones con variables binarias ......................... 29
I.3.3.1. Modelado de algunas restricciones especiales .................................................................. 29
I.3.3.2. Modelado de implicaciones lgicas .................................................................................. 31
I.3.3.3. Modelado de proposiciones condicionales y/o compuestas .............................................. 37
I.3.3.4. Modelado de productos con variables binarias................................................................ 42
I.3.4. Modelos caractersticos de programacin no lineal....................... 42
I.3.5. Referencias ............................................................................. 45
I.3.6. Biblioteca de problemas ............................................................ 45
I.3.7. Resultados de la biblioteca de problemas ..................................... 54
I.4. CODIFICACIN DE PROBLEMAS DE OPTIMIZACIN ..................................... 65
I.4.1. Lenguajes de modelado
(OAE)
....................................................... 65
I.4.1.1. Lenguajes de modelado................................................................................................... 65
I.4.1.2. Lenguajes algebraicos de modelado................................................................................. 67
I.4.1.3. Referencias...................................................................................................................... 69
I.4.2. Modelado en GAMS
(OAE)
........................................................... 70
I.4.2.1. Ejemplo de transporte .................................................................................................... 70
I.4.2.2. Ejemplo de planificacin de la produccin...................................................................... 73
I.4.2.3. Ejemplo de secuenciacin de rdenes de trabajo............................................................. 74
I.4.2.4. Ejemplo del viajante de comercio ................................................................................... 75
I.4.2.5. Ejemplo de asignacin de grupos trmicos...................................................................... 77
I.4.2.6. Ejemplo de flujo de cargas ptimo.................................................................................. 79
I.4.3. Elementos de estilo de programacin
(DOCT)
................................... 85
I.4.3.1. Generales ........................................................................................................................ 85
I.4.3.2. Especficos de GAMS...................................................................................................... 94
I.4.3.3. Referencias.....................................................................................................................100
I.5. OPTIMIZACIN LINEAL ........................................................................... 103
I.5.1. Introduccin ..........................................................................103
I.5.2. Solucin grfica......................................................................104
I.5.3. Geometra de la programacin lineal.........................................105
I.5.4. Mtodo simplex.......................................................................107
I.5.4.1. Problema de maximizacin............................................................................................118
I.5.4.2. Mltiples ptimos ..........................................................................................................118

ii 19/01/04
I.5.4.3. Convergencia del algoritmo........................................................................................... 118
I.5.4.4. Variables acotadas superiormente................................................................................. 119
I.5.4.5. Forma tabular............................................................................................................... 119
I.5.4.6. Solucin bsica factible inicial....................................................................................... 122
I.5.4.7. Mtodo simplex revisado
(DOCT)
............................................................................................ 127
I.5.4.8. Forma producto de la inversa
(DOCT)
.................................................................................... 128
I.5.4.9. Factorizacin de la matriz base
(DOCT)
.................................................................................. 131
I.5.4.10. Estrategias de clculo de costes reducidos
(DOCT)
................................................................ 133
I.5.5. Dualidad ............................................................................... 133
I.5.6. Anlisis de sensibilidad ........................................................... 145
I.5.6.1. Cambios en cotas de restricciones ................................................................................. 147
I.5.6.2. Cambio en un coeficiente de una variable no bsica ..................................................... 149
I.5.6.3. Introduccin de una nueva variable .............................................................................. 149
I.5.6.4. Cambio en un coeficiente de una variable bsica .......................................................... 150
I.5.6.5. Introduccin de nueva restriccin ................................................................................. 150
I.5.7. Mtodo simplex dual ............................................................... 150
I.5.8. Programacin lineal paramtrica ............................................. 154
I.5.8.1. Cambios simultneos en coeficientes de la funcin objetivo.......................................... 154
I.5.8.2. Cambios simultneos en cotas de las restricciones ........................................................ 155
I.5.9. Mtodo de punto interior primal-dual
(DOCT)
................................ 155
I.5.10. Referencias .......................................................................... 161
I.5.11. Biblioteca de problemas ......................................................... 162
I.5.12. Resultados de la biblioteca de problemas .................................. 174
I OPTIMIZACIN
19/01/04 3
I.1. Optimizacin
I.1.1. Investigacin operativa y optimizacin
In the last decade, new advances in algorithms have been as important as
the impressive advances in computer technology George L. Nemhauser
(1994).

The technology improvements in algorithms, modeling languages, software,
and hardware have made the methodology accessible, easy to use, and fast.
So the Age of Optimization has arrived George L. Nemhauser (1994).

Definir el trmino investigacin operativa no es una tarea fcil ya que su
evolucin permanente hace que sea difcil dar con precisin una definicin. La
investigacin operativa se puede definir como la aplicacin de mtodos
cientficos en la mejora de la efectividad en las operaciones, decisiones y gestin,
ver [Robinson, 1999]. Otra definicin ms extensa es la siguiente: la
investigacin operativa es la aplicacin, por grupos interdisciplinarios, del
mtodo cientfico a los problemas complejos producidos en la direccin y gestin
de grandes sistemas de hombres, mquinas, etc. La principal caracterstica
consiste en construir un modelo cientfico del sistema del cual se pueden
predecir y comparar los resultados de diversas estrategias, decisiones,
incorporando medidas del azar y del riesgo. El objetivo es ayudar a los
responsables a determinar su poltica y actuaciones en forma cientfica.
Los profesionales de la investigacin operativa colaboran con los decisores en
el diseo y mejora de las operaciones y decisiones, resuelven problemas y ayudan
en las funciones de gestin, planificacin o prediccin, aportan conocimiento y
ayuda en la toma de decisiones. Aplican las tcnicas cientficas ms adecuadas
seleccionadas de la matemtica, ingeniera o cualquier ciencia social o de
administracin de empresas. Su trabajo normalmente consiste en recoger y
analizar datos, desarrollar y probar modelos matemticos, proponer soluciones o
recomendaciones, interpretar la informacin y, en definitiva, ayudar a implantar
acciones de mejora. Como resultado desarrollan e implantan aplicaciones
informticas, sistemas, servicios tcnicos o productos.
La investigacin operativa tiene sus orgenes en la Segunda Guerra Mundial,
debido a la necesidad urgente de asignacin de recursos escasos en las
operaciones militares, en problemas tcticos y estratgicos. Estas mismas
tcnicas se han extendido con posterioridad a las empresas.
I.1 OPTIMIZACIN
4 19/01/04
Disciplinas tpicas de la investigacin operativa son la optimizacin con sus
mltiples sabores (lineal, no lineal, entera, estocstica, multiobjetivo), teora de
la decisin y de juegos, teora de colas y simulacin, teora de grafos o flujos de
redes. Otras disciplinas como algoritmos metaheursticos y lgica borrosa, redes
neuronales artificiales, reconocimiento de patrones y otras tcnicas de
inteligencia artificial, aunque conceptualmente se encuadran dentro de la
investigacin operativa, habitualmente se estudian dentro de otras disciplinas
ligadas a la ingeniera informtica como la inteligencia artificial. Los contenidos
de algunas de estas ltimas disciplinas tambin estn muy ligados a la
estadstica.
La optimizacin es una parte relevante dentro de la investigacin operativa.
Tuvo un progreso algortmico inicial muy rpido. Muchas tcnicas
programacin lineal (linear programming) LP, programacin dinmica (dynamic
programming) DP son anteriores a 1960. Por ejemplo, el mtodo Simplex
1
de
programacin lineal debido a Dantzig
2
es de 1947, el principio de optimalidad de
Bellman base de la programacin dinmica se formul en 1957. En la ltima
dcada se han producido avances significativos generados por el desarrollo en
1984 por parte de Karmarkar de un mtodo de punto interior para
programacin lineal. Por ejemplo, en una nota tcnica de ILOG se presenta que
desde su optimizador CPLEX 3.0 en 1994 a CPLEX 7.0 en 2000 la reduccin de
tiempo de resolucin ha sido de 28 veces en el mtodo simplex dual para un
problema lineal concreto. Para otro caso se observa una mejora global, de
software y algortmica, de 10000 veces entre la versin de CPLEX 1.0 de 1988 y
la 7.0 del 2000. Como referencia, se estima que la mejora en el rendimiento del
hardware ha sido del mismo orden de magnitud. Si tomamos conjuntamente
ambas mejoras hoy se pueden resolver problemas en segundos que habran
tardado aos en ser resueltos hace una docena de aos. Estos avances han sido
tan importantes como los realizados en el campo de la informtica, segn la
opinin de George L. Nemhauser uno de los expertos actuales en programacin
entera, y se han producido acompasadamente con ellos. Hoy es posible resolver
un problema LP de 200000 ecuaciones con 200000 variables y 1000000 de
elementos no nulos en la matriz de restricciones en un PC con suficiente
memoria principal. Aproximadamente, para un problema LP se puede decir que
se requiere 1 MB de memoria principal por cada 1000 ecuaciones.

1
En castellano la traduccin de esta palabra es smplice pero no es habitual su uso para
denominar este mtodo de optimizacin lineal.
2
En http://www.e-optimization.com/directory/trailblazers/dantzig/ se puede encontrar un
resumen de sus logros as como una entrevista sobre diversos temas, incluyendo imgenes en
vdeo.
I OPTIMIZACIN
19/01/04 5
El estilo de este documento es eminentemente aplicado, prctico, ingenieril, a
caballo entre una visin matemtica de los problemas y de los algoritmos y la
visin econmica o de gestin empresarial de algunas de sus aplicaciones. Este
documento trata de explicar suficientemente los fundamentos matemticos como
para permitir desarrollar aplicaciones de optimizacin de manera rigurosa y
precisa. Al mismo tiempo, se presentan algunas aplicaciones a problemas
concretos de ingeniera.
Al final del captulo se citan algunos libros generales o de referencia de
investigacin operativa que pueden servir de consulta o como texto para un
nivel de pregrado y postgrado. Luego, en cada captulo se indican adems
referencias especficas de los diferentes temas. Dentro de los libros generales,
[Hillier y Lieberman, 2002] es un libro clsico de investigacin operativa muy
ampliamente utilizado que compendia numerosos temas y tiene una orientacin
ingenieril. [Taha, 1998] presenta los temas con una orientacin ms matemtica
mientras que [Winston, 1994] los presenta con una perspectiva ms de
administracin de empresas. [Sarabia, 1996] da una base terica suficiente para
poder resolver una coleccin de problemas relacionados con el temario de
investigacin operativa.
Entre las revistas principales que tratan sobre optimizacin se pueden
incluir: Interfaces, Operations Research, Management Science, European
Journal of Operational Research, Mathematics of Operations Research, OR/MS
Today, Mathematical Programming, INFORMS Journal on Computing, Journal
of the Operational Research Society, Omega, Journal of Optimization Theory
and Applications, Transportation Science, Transportation Research. Existe una
enciclopedia de investigacin operativa que puede servir como consulta inicial y
referencia de un tema especfico, ver [Gass, 2001]. Adems se puede encontrar
informacin sobre los temas de investigacin operativa en las direcciones de la
Sociedad Espaola de Estadstica e Investigacin Operativa (SEIO) www.seio.es,
de la Association of European Operational Research Societies (EURO)
http://www.euro-online.org/, de la International Federation of Operational
Research Societies (IFORS) www.ifors.org y del Institute for Operations
Research and the Management Sciences (INFORMS) www.informs.org.
La optimizacin consiste en la seleccin de una alternativa mejor, en algn
sentido, que las dems alternativas posibles. Es un concepto inherente a toda la
investigacin operativa. Sin embargo, determinadas tcnicas propias de la
investigacin operativa se recogen bajo el nombre de optimizacin o
programacin matemtica.
Los problemas de optimizacin se componen generalmente de estos tres
ingredientes:

I.1 OPTIMIZACIN
6 19/01/04
funcin objetivo
Es la medida cuantitativa del funcionamiento del sistema que se desea
optimizar (maximizar o minimizar). Como ejemplo de funciones objetivo se
pueden mencionar: la minimizacin de los costes variables de operacin de
un sistema elctrico, la maximizacin de los beneficios netos de venta de
ciertos productos, la minimizacin del cuadrado de las desviaciones con
respecto a unos valores observados, la minimizacin del material utilizado en
la fabricacin de un producto, etc.

variables
Representan las decisiones que se pueden tomar para afectar el valor de la
funcin objetivo. Desde un punto de vista funcional se pueden clasificar en
variables independientes o principales o de control y variables dependientes o
auxiliares o de estado, aunque matemticamente todas son iguales. En el
caso de un sistema elctrico sern los valores de produccin de los grupos de
generacin o los flujos por las lneas. En el caso de la venta, la cantidad de
cada producto fabricado y vendido. En el caso de la fabricacin de un
producto, sus dimensiones fsicas.

restricciones
Representan el conjunto de relaciones (expresadas mediante ecuaciones e
inecuaciones) que ciertas variables estn obligadas a satisfacer. Por ejemplo,
las potencias mxima y mnima de operacin de un grupo de generacin, la
capacidad de produccin de la fbrica para los diferentes productos, las
dimensiones del material bruto del producto, etc.

Resolver un problema de optimizacin consiste en encontrar el valor que
deben tomar las variables para hacer ptima la funcin objetivo satisfaciendo el
conjunto de restricciones.
Los mtodos de optimizacin los podemos clasificar en: mtodos clsicos (que
son los algoritmos que habitualmente se explican en los libros de optimizacin)
y mtodos metaheursticos (que aparecieron ligados a lo que se denomin
inteligencia artificial e imitan fenmenos sencillos observados en la naturaleza).
Dentro de los primeros se encuentra la optimizacin lineal, lineal entera mixta,
no lineal, estocstica, dinmica, etc. que se explican en el documento. En el
segundo grupo se incluyen los algoritmos evolutivos (genticos entre otros), el
mtodo del recocido simulado (simulated annealing), las bsquedas heursticas
(mtodo tab, bsqueda aleatoria, avariciosa, etc.) o los sistemas multiagente.
De forma muy general y aproximada se puede decir que los mtodos clsicos
buscan y garantizan un ptimo local mientras que los mtodos metaheursticos
I OPTIMIZACIN
19/01/04 7
tienen mecanismos especficos para alcanzar un ptimo global aunque no
garantizan su alcance.
En la siguiente tabla se muestran las expresiones matemticas generales de
algunos tipos de problemas de optimizacin dentro de los mtodos clsicos. Los
problemas se distinguen por el carcter de las funciones que intervienen (lineales
o no lineales) y de las variables (reales/continuas o enteras/discretas).

Programacin lineal
(linear programming)
LP

min
0
, , ,
T
x
n n m n m
c x
Ax b
x
x c A b



Programacin lineal entera mixta
(mixed integer programming)
MIP
min
, 0
, , ,
, ,
T T
x
n l n l
m n m l m
c x d y
Ax By b
x y
x y c d
A B b

+
+ =






Programacin cuadrtica
(quadratic programming)
QP
1
min
2
0
, ,
,
T T
x
n n m n
n n m
c x x Qx
Ax b
x
x c A
Q b

+
=






Programacin no lineal
(non linear programming)
NLP
min ( )
( ) 0
( ) 0
:
, :
x
n
n m
f x
g x
h x
l x u
f
g h
=





Existen decisiones que no pueden ser representadas de forma adecuada
mediante variables continuas. Por ejemplo, las decisiones de inversin son
variables discretas (por ejemplo, planificacin de la expansin de la generacin o
de la red, adquisicin de equipos singulares, contratacin de personas) o binarias
(como localizacin de plantas o almacenes). Los problemas lineales con variables
enteras se pueden clasificar en: programacin entera pura PIP (pure integer
I.1 OPTIMIZACIN
8 19/01/04
programming) si todas las variables son enteras, programacin entera binaria
BIP (binary integer programming) si todas son binarias o programacin lineal
entera mixta MIP (mixed integer programming) si algunas son enteras o
binarias y el resto continuas.
Un caso particular, pero muy frecuente, de variables enteras son las variables
binarias (0/1), ya que permiten modelar condiciones de asignacin o condiciones
lgicas. Por otra parte, toda variable entera x se puede expresar como suma de
variables binarias
i
y , donde
0
2
N
i
i
i
x y
=
=

siendo u una cota superior de x ,


0 x u , y estando u comprendida en el intervalo
1
2 2
N N
u
+
.
Existen algunos tipos de problemas de optimizacin que alteran ligeramente
este esquema:

sistemas de ecuaciones lineales no lineales
No existe una funcin objetivo como tal. nicamente interesa encontrar una
solucin factible a un problema con un conjunto de restricciones.

optimizacin sin restricciones
Se trata de encontrar el conjunto de valores de las variables que determinan
el mnimo/mximo de una funcin. Algunas de las tcnicas que se vern en
programacin no lineal son para optimizacin sin restricciones.

optimizacin multiobjetivo
Existe ms de una funcin objetivo. El problema que se plantea es cmo
tratar varias funciones objetivo a la vez, teniendo en cuenta que el ptimo
para un objetivo no lo es para otro, son objetivos en conflicto entre s. sta
se enmarca dentro de lo que se conoce de forma ms general como decisin
multicriterio (multicriteria decision making MCDM).

La formulacin matemtica de algunos problemas de optimizacin especiales
por no incluir alguno de los componentes se presenta en la siguiente tabla.

Problema mixto complementario
(mixed complementarity problem)
MCP
( ) 0
:
n
n n
xF x
x
F
=



Optimizacin no lineal sin restricciones
min ( )
:
x
n
f x
f

Ajuste no lineal mnimo cuadrtico
I OPTIMIZACIN
19/01/04 9
Programacin multiobjetivo
(multiobjective programming)
1
min( ( ), ..., ( ))
0
, , ,
( ) :
k
x
n n m n m
n
i
f x f x
Ax b
x
x c A b
f x





I.1.2. Referencias
Gass, S.L. and Harris, C.M. (eds.) (2001) Encyclopedia of Operations Research
and Management Science. Centennial Edition. Kluwer Academic Publishers.
Hillier, F.S., Lieberman, G.J. (2002) Investigacin de Operaciones. 7 edicin.
McGraw Hill.
Robinson R. (1999) Welcome to OR Territory OR/MS Today pp. 40-43
August.
Sarabia, A. (1996) La Investigacin Operativa. UPCO.
Taha, H.A. (1998) Investigacin de operaciones. Una introduccin. Prentice
Hall.
Winston, W.L. (1994) Investigacin de Operaciones. Aplicaciones y Algoritmos.
Grupo Editorial Iberoamericana.
I OPTIMIZACIN
19/01/04 11
I.2. Modelos de optimizacin
I.2.1. Modelo y modelado
Modelo. Esquema terico, generalmente en forma matemtica, de un sistema
o de una realidad compleja (por ejemplo, la evolucin econmica de un pas),
que se elabora para facilitar su comprensin y el estudio de su
comportamiento. DICCIONARIO DE LA LENGUA ESPAOLA. REAL
ACADEMIA ESPAOLA.

Un modelo es una representacin matemtica simplificada de una realidad
compleja. Modelar es la accin de construir un modelo, de encorsetar la
realidad. Implica la relacin entre dos figuras (no necesariamente encarnadas
por personas nicas sino por equipos): el modelador (encargado de la
especificacin y desarrollo del modelo) y el experto sobre la realidad (conocedor
del problema real). La mayora de las veces, el desarrollo de un modelo puede
involucrar a un equipo multidisciplinar compuesto por matemticos,
estadsticos, ingenieros, economistas, psiclogos, etc. que aportan diferentes
perspectivas y conocimiento en la representacin de la realidad. Un modelo debe
equilibrar la necesidad de contemplar todos los detalles con la factibilidad de
encontrar tcnicas de solucin adecuadas.
Un modelo es, en definitiva, una herramienta de ayuda a la toma de
decisiones. Por esta razn, sus resultados deben ser inteligibles y tiles. Modelar
se puede entender simultneamente como ciencia y como arte. Es una ciencia
pues se basa en un conjunto de procesos estructurados: anlisis y deteccin de
las relaciones entre los datos, establecimiento de suposiciones y aproximaciones
en la representacin de los problemas, desarrollo o uso de algoritmos especficos
de solucin. Es un arte porque materializa una visin o interpretacin de la
realidad no siempre de manera unvoca. Cada persona imprime su estilo en el
modelo mismo y en la especificacin, en el desarrollo y en la documentacin.
Caractersticas tales como elegancia o simplicidad pueden atribuirse a un
modelo. El desarrollo de un modelo es una creacin hecha con ayuda de ciencias
bsicas o herramientas de apoyo.
Entre los beneficios explcitos o implcitos, tanto para el modelador como
para el experto, derivados del proceso de modelado adems del modelo en s
mismo, se pueden mencionar:

Ayuda a establecer un dilogo con intercambio de informacin entre el
modelador y el experto
I.2 MODELOS DE OPTIMIZACIN
12 19/01/04
Organiza los datos, la informacin disponible sobre el sistema
Organiza, estructura y mejora la comprensin del sistema
Internaliza la estructura organizativa de la empresa
Permite compartir supuestos y resultados entre el modelador y el experto
Proporciona un entorno gil para el anlisis y la sensibilidad
Indica la direccin de mejora en las decisiones

En este captulo se tratar exclusivamente de modelos de optimizacin, es
decir, aquellos donde existe un conjunto de variables de decisin que deben
maximizar/minimizar una funcin objetivo sometidas a un conjunto de
restricciones. Los modelos de programacin lineal son ms utilizados que todos
los otros tipos de optimizacin juntos y abarcan cualquier tipo de actividad
humana como micro y macroeconoma, finanzas, marketing, economa de la
energa, organizacin de la produccin, planificacin de la operacin, seleccin
de procesos, asignacin de tareas, ingeniera qumica, forestal, agrnoma,
comercio internacional, desarrollo econmico, etc. Como referencias generales de
modelado de problemas de optimizacin que se pueden utilizar en la enseanza
de pregrado o postgrado cabe citar a [Schrage, 1997] y [Williams, 1999].
I.2.2. Etapas en el desarrollo de un modelo
Las etapas que componen el ciclo de vida de un modelo son las siguientes:
Identificacin del problema
Consiste en la recoleccin y anlisis de la informacin relevante para el
problema, en el intercambio de informacin entre el modelador y el experto, en
establecer una relacin simbitica y una estrecha coordinacin entre ambos.
Los problemas reales suelen estar definidos en trminos vagos e imprecisos.
Se debe hacer la tarea de traduccin o interpretacin en frases precisas,
convertibles en ecuaciones matemticas. En esta etapa se establecen y
documentan los supuestos realizados que en etapas posteriores debern ser
validados.
Esta etapa es fundamental para que las soluciones proporcionadas, las
conclusiones obtenidas sean tiles, las decisiones adoptadas sean correctas. Los
datos suelen ser vitales para conseguir un realismo o aplicabilidad en las
soluciones. A menudo representan el cuello de botella del proceso de modelado.
Especificacin matemtica y formulacin
Escritura matemtica del problema de optimizacin, definiendo sus variables,
sus ecuaciones, su funcin objetivo, sus parmetros. En esta etapa se analiza el
tamao del problema, la estructura de la matriz de restricciones, su tipo (LP,
I OPTIMIZACIN
19/01/04 13
MIP, NLP). Es una etapa de creacin donde se debe prestar especial atencin a
la precisin en la formulacin y a la escritura de las ecuaciones que describen el
problema.
En LP la eleccin de una formulacin de un problema, aunque importante,
no afecta de manera significativa la resolucin del mismo. Sin embargo, en NLP
o MIP la eleccin de la formulacin es crucial. Pueden existir diversas
alternativas de modelado que afectan de manera fundamental en la resolucin
del mismo, existiendo un desarrollo cada vez mayor en la reformulacin de
problemas. En problemas MIP la calidad de una formulacin se mide por la
cercana entre la envoltura convexa del poliedro de soluciones enteras factibles y
la del poliedro del problema MIP relajado linealmente. En el apartado I.6.5.2 se
explica en ms detalle algunas tcnicas de reformulacin de problemas MIP.
La caracterizacin de un problema LP segn su tamao resulta difcil y ha
sufrido un gran cambio desde los recientes desarrollos de algoritmos simplex
mejorados y, sobre todo, desde la aparicin de los mtodos de punto interior. En
la tabla 1.1 se propone una clasificacin de tipos de problemas LP segn su
tamao. Esta clasificacin debe ser tomada como gua o referencia relativa
actual pero tngase en cuenta que los tamaos relativos de los problemas
cambiarn conforme evolucionen los cdigos de optimizacin. Actualmente se
puede afirmar que los cdigos de optimizacin lineal implantan algoritmos muy
eficientes, son fiables y numricamente robustos y estn ampliamente
disponibles.

Restricciones Variables
Caso ejemplo 100 100
Tamao medio 10000 10000
Gran tamao 100000 100000
Muy gran tamao > 100000 > 100000

Tabla 1.1 Tipos de problemas LP segn su tamao.

En lo referente a MIP o NLP ni siquiera se pueden dar criterios generales de
tamao ya que la dificultad de resolucin no tiene por qu estar ligada al
tamao del problema, puede ser incluso preferible reformular un problema
aunque aumenten las dimensiones, para lograr una resolucin ms eficiente.
Resolucin
Se trata de implantar un algoritmo de obtencin de la solucin numrica
(muy prxima a la matemtica) ptima o cuasiptima. El algoritmo puede ser
de propsito general (mtodo simplex) o especfico. Puede haber diferentes
I.2 MODELOS DE OPTIMIZACIN
14 19/01/04
mtodos de solucin de un problema o diferentes implantaciones de un mismo
mtodo. El tiempo de resolucin de un problema tambin puede depender
drsticamente de cmo est formulado.
La solucin ptima debe ser suficientemente satisfactoria, debe ser una gua
de actuacin para el experto.
Verificacin, validacin y refinamiento
Esta etapa conlleva la eliminacin de los errores en la codificacin, es decir,
conseguir que el modelo haga lo que se ha especificado matemticamente en la
etapa anterior mediante su escritura en un lenguaje informtico (depurar y
verificar). Es necesario comprobar la validez de las simplificaciones realizadas a
travs de los resultados obtenidos, incluso contrastando stos con situaciones
reales ya transcurridas (validar) o comprobando que los resultados son
coherentes con respecto a lo que sucedera en la realidad.
Esta etapa de verificacin, validacin y comprobacin da lugar a nuevas
necesidades de refinamiento en el modelado para mejorar la capacidad de
representacin del sistema. Por ejemplo, eliminar la linealidad y hacer el modelo
no lineal o hacer el modelo estocstico si la realidad lo fuera. Adems, tambin
se puede abordar el refinamiento matemtico en la formulacin del problema
para hacerla ms eficaz.
Interpretacin y anlisis de los resultados
Esta etapa consiste en proponer soluciones. Permite conocer en detalle el
comportamiento del modelo al hacer un anlisis de sensibilidad en los
parmetros de entrada, estudiar diferentes escenarios plausibles de los
parmetros, detectar soluciones alternativas cuasiptimas pero suficientemente
atractivas, comprobar la robustez de la solucin ptima.
Implantacin, documentacin y mantenimiento
sta es una etapa fundamental del desarrollo de un modelo para garantizar
su amplia difusin. La documentacin ha de ser clara, precisa y completa. El
manual de usuario debe incluir la especificacin tcnica funcional, matemtica e
informtica. El propio cdigo debe incluir una buena documentacin para
facilitar la tarea del mantenimiento. Pinsese que la mayor parte del ciclo de
vida de un modelo no est en el desarrollo sino en la fase de uso y
mantenimiento.
En esta etapa se incluye tambin la tarea de formacin para los usuarios del
modelo.
I OPTIMIZACIN
19/01/04 15
I.2.3. Referencias
Schrage, L. (1997) Optimization Modeling with LINDO. Duxbury Press.
Williams, H.P. (1999) Model Building in Mathematical Programming. 4th
Edition. John Wiley and Sons.
I OPTIMIZACIN
19/01/04 17
I.3. Formulacin de problemas de optimizacin
I.3.1. Modelos caractersticos de programacin lineal
A continuacin se presentan algunos problemas caractersticos de
programacin lineal y entera. stos se utilizan como referencia y clasificacin
para otros problemas. En particular, para los problemas enteros existen
numerosas referencias de investigacin dedicadas a la solucin de los mismos. A
pesar de la enorme atencin que se ha dedicado a su solucin su importancia
prctica es limitada.
Problema de la dieta
El problema por excelencia de programacin lineal es el de asignacin ptima
de recursos. Un caso particular de ste es el denominado problema de la dieta.
Consiste en determinar la composicin de la dieta de mnimo coste que satisface
las necesidades especficas de nutrientes. Pongamos un caso particular muy
sencillo de alimentacin de ganado bovino.
Aprovechamos este ejemplo para seguir paso a paso las etapas en el
desarrollo de un modelo.

En primer lugar hay que identificar el problema.
Se ha determinado que las necesidades mnimas diarias en la alimentacin de
una ternera son de 700 g de protenas, 28 g de calcio y 150 mg de vitaminas.
Los alimentos disponibles son pienso y forraje con un coste unitario de 0.30 y
0.35 /kg respectivamente. La composicin nutritiva por kg de alimento se
muestra en la siguiente tabla.

Protenas
(g)
Calcio
(g)
Vitaminas
(mg)
Pienso 30 2 10
Forraje 45 1 5

Se trata de determinar la cantidad diaria ptima de cada alimento para
minimizar el coste total de alimentacin.

A continuacin se especifica matemticamente y se formula el
problema.
I.3 FORMULACIN DE PROBLEMAS DE OPTIMIZACIN
18 19/01/04
Para ello analizamos y organizamos los datos del problema. Sean i los
alimentos disponibles (pienso y forraje) y sean j los nutrientes (protenas,
calcio y vitaminas). Sea
j
b la cantidad mnima diaria requerida de cada
nutriente. Sea
ij
a la cantidad de nutriente por kg de alimento
correspondiente a los valores de la tabla dada. Sea
i
c el coste unitario de
cada alimento. A continuacin definimos las variables. Sea
i
x la cantidad
diaria en kg de cada alimento i . Adems indicamos la funcin objetivo y las
restricciones del problema. La funcin objetivo es la minimizacin del coste
diario de la dieta
min
i
i i
x
i
c x

(1.1)
Las restricciones corresponden a satisfacer con la mezcla de alimentos las
necesidades mnimas diarias de cada nutriente y, por consiguiente, habr
tantas restricciones de este tipo como nutrientes.

ij i j
i
a x b j

(1.2)
Adems hay que aadir la restriccin natural de que la cantidad de cada
alimento ha de ser no negativa.
0
i
x (1.3)
Particularizando estas ecuaciones para los datos previos se obtiene.
1 2
1 2
,
1 2
1 2
1 2
1
2
min 0.30 0.35
30 45 700
2 28
10 5 150
0
0
x x
x x
x x
x x
x x
x
x
+
+
+
+



Despus viene la resolucin.
Vamos a resolver grficamente el problema. Para ello se dibujan las
ecuaciones en forma de igualdad en el espacio de las variables y se indica la
regin factible del problema. Es decir, el conjunto de puntos que cumple
todas las restricciones. Se traza la recta de la funcin objetivo para un valor
cualquiera y se desplaza paralela a s misma en el sentido de minimizar dicho
valor hasta el ltimo punto de la regin factible. Dicho punto ser el ptimo
del problema.
I OPTIMIZACIN
19/01/04 19

Las etapas de verificacin (comprobacin de que el modelo es correcto) y
validacin (comprobacin de que la realidad se representa adecuadamente)
son inmediatas en un modelo tan sencillo como ste.

Seguidamente se realiza la interpretacin y anlisis de los resultados.
Los resultados indican que la decisin ptima es comprar 18.83 kg de pienso
y 8.33 kg de forraje cada da. Con estas decisiones el coste diario de los
alimentos es de 6.1667 .
Al ganadero le ha llegado una oferta de otro fabricante de piensos a un
precio de 0.25 /kg pero con menor contenido en calcio, 1.5 g de calcio por
kg de pienso, y tiene inters en analizar si le interesa comprar o no a dicho
fabricante. Para ello planteamos este nuevo problema de optimizacin
1 2
1 2
,
1 2
1 2
1 2
1
2
min 0.25 0.35
30 45 700
1.5 28
10 5 150
0
0
x x
x x
x x
x x
x x
x
x
+
+
+
+


La solucin ptima para este nuevo problema es comprar 14.93 kg de pienso
y 5.6 kg de forraje diariamente con un coste de 5.6933 . Luego, esta oferta
es atractiva econmicamente.

La etapa de implantacin, documentacin y mantenimiento se da por
satisfecha en este modelo sencillo con este apartado donde se explica el
modelo.
Problema de transporte
Se trata de minimizar el coste total de transporte de un cierto producto
desde los diferentes orgenes a los destinos, satisfaciendo la demanda de cada
destino sin superar la oferta disponible en cada origen (ver ejemplo en I.4.2.1
Ejemplo de transporte). Se supone que todos los m orgenes estn conectados
con los todos los n destinos. Sea
i
a la oferta de producto en el origen i ,
j
b la
demanda de producto en el destino j y
ij
c el coste unitario de transporte desde
el origen i al destino j .

I.3 FORMULACIN DE PROBLEMAS DE OPTIMIZACIN
20 19/01/04
1
1
a
2
a
m
a
1
b
2
b
n
b
2
m
1
2
n
1
1
a
2
a
m
a
1
b
2
b
n
b
1
1
a
2
a
m
a
1
b
2
b
n
b
2
m
1
2
n


El problema de optimizacin consiste en determinar las unidades de
producto 0
ij
x transportadas desde i hasta j , , i j , que minimizan los costes
de transporte sujeto a las restricciones de oferta disponible en cada origen i (m
restricciones de oferta) y demanda en cada destino j (n restricciones de
demanda)

1 1
1
1
min
1, ,
1, ,
0
ij
m n
ij ij
x
i j
n
ij i
j
m
ij j
i
ij
c x
x a i m
x b j n
x
= =
=
=
= =
= =

(1.4)
Implcitamente en esta formulacin, se supone que la oferta del producto es
igual a la demanda del mismo
1 1
m n
i j
i j
a b
= =
=

. Si
1 1
m n
i j
i j
a b
= =
>

se aade
un sumidero universal con coste nulo. Si
1 1
m n
i j
i j
a b
= =
<

se aade una fuente
universal conectada con todos los destinos con coste muy elevado.
La estructura que presenta la matriz de restricciones del problema tiene el
siguiente aspecto.


11
x
12
x
1n
x
21
x
22
x
2n
x
1 m
x
2 m
x
mn
x
1 1 1

1
2 1 1


m
1 1

1
1 1 1

1
2 1 1


n
1 1

1

Si tanto las ofertas
i
a como las demandas de los productos
j
b son nmeros
enteros, entonces el valor ptimo de
ij
x es entero por ser la matriz totalmente
I OPTIMIZACIN
19/01/04 21
unimodular
3
, por lo que no se necesita recurrir a mtodos especficos de
resolucin de problemas de programacin entera.
Problema de transbordo
Consiste en determinar en una red con n nodos las cantidades ptimas para
llevar unidades de un producto desde sus orgenes a sus destinos pasando por
puntos de transbordo intermedios.
Cada origen genera 0
i
b > unidades, cada destino consume 0
i
b < unidades y
cada transbordo ni genera ni consume unidades 0
i
b = . El coste unitario de
transporte desde el origen i hasta el destino j en dicho sentido es
ij
c .
Hay que determinar las unidades de producto transportadas desde i a j ,
0
ij
x , , i j , que minimizan los costes de transporte teniendo en cuenta la
restriccin de balance o conservacin del flujo en cada nudo i .

1 1
1 1
min
1, ,
0
ij
n n
ij ij
x
i j
n n
ij ki i
j k
ij
c x
x x b i n
x
= =
= =
= =


(1.5)
Implcitamente en esta formulacin, se supone que la oferta es igual a la
demanda del producto, es decir,
1
0
n
i
i
b
=
=

.
Esta matriz tambin es totalmente unimodular por lo que el problema
tambin puede ser resuelto mediante programacin lineal.
Problema de asignacin
Se trata de asignar la realizacin de n tareas a n personas (mquinas, etc.).
Este problema es un caso particular del problema de transporte. Por
consiguiente las variables toman valores enteros sin exigir esta condicin en la
formulacin del problema.
Consiste en minimizar el coste total de realizar las tareas sabiendo que cada
tarea i debe ser hecha por una sola persona y cada persona j debe realizar una
nica tarea, siendo
ij
c el coste de realizar la tarea i por la persona j . Las
variables del problema son
1 si se asigna la tarea a la persona
0 en cualquier otro caso
ij
i j
x
'
1
1
=
!
1
1
+
, , i j .

3
Una matriz es totalmente unimodular si toda submatriz cuadrada tiene determinante 0, 1
1. Si la matriz de un problema lineal es totalmente unimodular y las cotas de las restricciones
son enteras, entonces todos los puntos extremos del poliedro tienen coordenadas enteras (se
denomina politopo entero).
I.3 FORMULACIN DE PROBLEMAS DE OPTIMIZACIN
22 19/01/04

1 1
1
1
min
1 1, ,
1 1, ,
0
ij
n n
ij ij
x
i j
n
ij
j
n
ij
i
ij
c x
x i n
x j n
x
= =
=
=
= =
= =

(1.6)
I.3.2. Modelos caractersticos de programacin entera
Los problemas de programacin entera surgen en numerosos mbitos de
decisin.

Por ejemplo, cuando se necesita representar nmero entero de productos o
unidades enteras o indivisibles de recursos (aviones, personas, mquinas,
etc.).
Tambin cuando se quieren imponer restricciones lgicas (si se fabrica el
producto A tambin debe fabricarse el B y el C).
Otro tercer mbito son los denominados problemas combinatoriales, como
por ejemplo los de secuenciacin de tareas en mquinas, equilibrado de lneas
de produccin, asignacin de tripulaciones, localizacin de almacenes o
factoras, programacin temporal de actividades.
As mismo surgen cuando hay funciones de naturaleza no lineal, como las de
coste fijo o no convexas en general.
Por ltimo, tambin aparecen problemas enteros en teora de grafos, por
ejemplo el problema del tetracoloreado de un mapa.

En este apartado se presentan algunas tcnicas de modelado que facilitan la
formulacin de problemas de optimizacin con variables enteras. No existe una
manera sistemtica de formular este tipo de problemas y plantear un buen
modelado es, a menudo, un arte. Por esta razn, el mtodo de aprendizaje se
basa en la realizacin de ejemplos que muestren las posibles formulaciones de
problemas caractersticos que aparecen con ms frecuencia de lo que podra
aparecer por su nombre. Algunos de los mencionados anteriormente se describen
en este apartado y otro aparecen como problemas al final del captulo.
En los problemas que siguen, la envoltura convexa definida para el conjunto
de soluciones ya no tiene soluciones enteras en los vrtices como suceda en los
del apartado anterior, por lo que para su resolucin hay que acudir a
I OPTIMIZACIN
19/01/04 23
procedimientos especficos de programacin entera que se exponen en el
apartado I.6.
Problema de la mochila (knapsack)
Se trata de maximizar el valor total de la eleccin de un conjunto de n
proyectos sin sobrepasar el presupuesto b disponible, siendo
j
v y
j
c el valor y
coste de cada proyecto j respectivamente. El nombre procede de la decisin que
toma un montaero que trata de maximizar el valor de lo que introduce en su
mochila con una restriccin de mximo peso admisible. Las variables del
problema son
1 si se elije el proyecto
0 en cualquier otro caso
j
j
x
'
1
1
=
!
1
1
+
. sta es una utilizacin habitual
de las variables binarias como forma de seleccionar una alternativa, un proyecto
en este caso. La formulacin del problema es la siguiente

{ }
1
1
max
0,1
j
n
j j
x
j
n
j j
j
j
v x
c x b
x
=
=

(1.7)
Problema de recubrimiento (set covering)
Existen m caractersticas y n combinaciones (subconjuntos) de dichas
caractersticas. La eleccin de una combinacin implica realizar todas las
caractersticas de la misma. Se trata de minimizar el coste total de las
combinaciones elegidas de manera que se cubra o posea cada caracterstica i al
menos una vez. Los datos son
j
c el coste de elegir la combinacin j y la matriz
de pertenencia de cada caracterstica i a cada combinacin j ,
1 si pertenece a
0 si no pertenece
ij
i j
a
'
1
1
=
!
1
1
+
. Denominamos las variables
1 si se elige la combinacin
0 en cualquier otro caso
j
j
x
'
1
1
=
!
1
1
+
. El problema se formula de la siguiente
manera

{ }
1
1
min
1 1, ,
0,1
j
n
j j
x
j
n
ij j
j
j
c x
a x i m
x
=
=
=

(1.8)
I.3 FORMULACIN DE PROBLEMAS DE OPTIMIZACIN
24 19/01/04



Figura 1.1 Representacin grfica de un recubrimiento, una particin y un
empaquetado, respectivamente.

Veamos a continuacin un ejemplo de recubrimiento: asignacin de
tripulaciones, tomado de [Hillier y Lieberman, 2002]. Una compaa area
necesita asignar sus tripulaciones para cubrir todos sus vuelos. En particular,
quiere resolver el problema de asignar tres tripulaciones con base en San
Francisco a los vuelos listados en la primera columna de la tabla. Las otras
columnas muestran las 12 secuencias factibles de vuelos para una tripulacin
cualesquiera. Los nmeros de cada columna indican el orden de los vuelos. Se
necesita elegir tres secuencias (una por tripulacin) de manera que se cubran
todos los vuelos. Se permite tener ms de una tripulacin en un vuelo, donde
la/s tripulacin/es extra viajan como pasajeros, pero por convenio laboral la
tripulacin extra cobra como si estuviera trabajando. El coste de asignacin de
una tripulacin a cada secuencia de vuelos se da en millones de euros en la
ltima fila. El objetivo es minimizar el coste total de asignacin de las tres
tripulaciones para cubrir todos los vuelos. Resolver el mismo problema para el
caso en que no se permite el vuelo de una tripulacin fuera de servicio en un
vuelo.

Secuencias factibles
1 2 3 4 5 6 7 8 9 10 11 12
SF LA 1 1 1 1
SF Denver 1 1 1 1
SF Seattle 1 1 1 1
LA Chicago 2 2 3 2 3
LA SF 2 3 5 5
Chicago Denver 3 3 4
Chicago Seattle 3 3 3 3 4
Denver SF 2 4 4 5
Denver Chicago 2 2 2
Seattle SF 2 4 4 5
I OPTIMIZACIN
19/01/04 25
Seattle LA 2 2 4 4 2
Coste (M) 2 3 4 6 7 5 7 8 9 9 8 9

Se definen las variables del problema como
1 si se asigna la secuencia
0 en cualquier otro caso
j
j
x
'
1
1
=
!
1
1
+
, { } 0,1
j
x 1, ,12 j =
La funcin objetivo ser
1 2 3 4 5 6 7 8 9 10 11 12
min 2 3 4 6 7 5 7 8 9 9 8 9 x x x x x x x x x x x x + + + + + + + + + + +
Cobertura de cada vuelo al menos una vez
1 4 7 10
2 5 8 11
3 6 9 12
1 (SF-LA)
1 (SF-Denver)
1 (SF-Seatlle)
x x x x
x x x x
x x x x
+ + +
+ + +
+ + +


Asignacin de las tres tripulaciones
12
1
3
j
j
x
=
=


Las soluciones ptimas son
3 4 11
1 x x x = = = y el resto 0
1 5 12
1 x x x = = =
y el resto 0, ambas con coste 18 millones de .
Si no se permite que una tripulacin fuera de servicio vuele en un avin las
restricciones de cobertura de mayor o igual pasan a ser de igualdad. Luego, se
trata de un problema de particin, cuya formulacin se ver a continuacin.
Problema de empaquetado (set packing)
Se tienen que realizar m proyectos divididos en n paquetes. La eleccin de
un paquete implica realizar todos los proyectos del mismo. Se trata de
maximizar el beneficio total de manera que cada proyecto i del conjunto de
todos los paquetes que lo incluyen no pueda ser elegido ms de una vez.
j
c es el
beneficio de elegir el paquete j , la matriz de pertenencia de cada proyecto i a
cada paquete j es
1 si pertenece a
0 si no pertenece
ij
i j
a
'
1
1
!
1
1
+
. Las variables del problema son
1 si se elige el paquete
0 en cualquier otro caso
j
j
x
'
1
1
!
1
1
+
. La formulacin del problema es la siguiente
I.3 FORMULACIN DE PROBLEMAS DE OPTIMIZACIN
26 19/01/04

{ }
1
1
max
1 1, ,
0,1
j
n
j j
x
j
n
ij j
j
j
c x
a x i m
x
=
=
=

(1.9)
Problema de particin (set partitioning)
La formulacin es similar al problema anterior pero en este caso exactamente
una caracterstica (proyecto) del conjunto de combinaciones (paquetes) que la
contienen debe ser elegida.

{ }
1
1
max
1 1, ,
0,1
j
n
j j
x
j
n
ij j
j
j
c x
a x i m
x
=
=
= =

(1.10)
Problema del viajante de comercio (Traveling Salesman Problem TSP)
El problema consiste en hacer un recorrido que pase por n ciudades sin
repetir ninguna y volviendo a la ciudad de partida de manera que la distancia (o
tiempo o coste) total sea mnima. Es un problema de asignacin pero con la
condicin de que la asignacin sea un ciclo. Es uno de los problemas ms
importantes en la historia de la programacin matemtica por todas las
investigaciones a las que ha dado lugar y por todas las aplicaciones que tiene,
tanto directamente o apareciendo como subproblema dentro de otros ms
complejos. En una noticia de Optima (Mathematical Programming Society
Newsletter) de junio de 1998, mencionaba que se haba conseguido resolver un
problema del viajante con 13509 ciudades. Los problemas de enrutamiento de
vehculos (expedicin o recogida de mercancas) pueden ser formulados de esta
manera.
Una de las caractersticas ms interesantes de este problema es que existen
muchas formulaciones conocidas para el mismo, ver [Williams, 1999] y
[Nemhauser, 1999]. Dos de ellas se presentan a continuacin, una tercera se
presenta en el apartado I.4.2.4 y se formulan en GAMS. Sea
ij
c la distancia
entre las ciudades i y j .

Formulacin 1 (clsica): Se definen las variables
I OPTIMIZACIN
19/01/04 27
1 si se va de la ciudad a la ciudad
0 en otro caso
ij
i j
x
'
1
1
=
!
1
1
+

La formulacin del problema es:

{ }
{ }
,
,
min
1
1
card( ) 1 1, , , 2 card( ) 2
0,1
ij
ij ij
x
i j
ij
i
ij
j
ij
i j U
ij
c x
x j
x i
x U U n U n
x

=
=


(1.11)
La primera restriccin indica que a una ciudad j slo se puede llegar una
vez desde cualquier ciudad i . La segunda dice que desde una ciudad i slo se
puede salir una vez a cualquier otra ciudad j .
Con esta formulacin el problema se resuelve iterativamente. Primero se
ignora el tercer tipo de restricciones. Se analiza la solucin y se determina si
contiene subciclos. En tal caso, se introducen restricciones para evitar subciclos
de longitud U con la estructura del tercer bloque y se resuelve de nuevo el
problema. Estos dos ltimos pasos se repiten hasta encontrar la solucin ptima.
El nmero de restricciones del tercer tipo crece exponencialmente ya que el
nmero de subciclos de longitud U es
,
card( )
m n
n
C
U
1


=



( )
y siempre que aparece
un subciclo de longitud U aparece otro de longitud n U . Por esta razn, su
adicin en la formulacin se hace especficamente para los subciclos que van
apareciendo y, usualmente, se necesita aadir solamente una pequea fraccin
de las mismas.

Formulacin 2: Se definen las variables
1
si se va de la ciudad a la ciudad en la etapa de recorrido
en otro caso 0
ijk
i j k
x
'
1
1
=
!
1
1
+

El problema queda
I.3 FORMULACIN DE PROBLEMAS DE OPTIMIZACIN
28 19/01/04

{ }
, ,
,
,
,
1
min
1
1
1
,
0,1
ijk
ij ijk
x
i j k
ijk
j k
ijk
i k
ijk
i j
ijk jrk
i r
ijk
c x
x i
x j
x k
x x j k
x
+
=
=
=
=


(1.12)
La primera restriccin indica que desde una ciudad i slo se puede salir una
vez a cualquier otra ciudad j en cualquier etapa k . La segunda dice que a una
ciudad j slo se puede llegar una vez desde cualquier ciudad i en cualquier
etapa k . La tercera muestra que en la etapa k slo se puede ir una vez de una
ciudad cualquiera i a otra cualquiera j . La ltima indica que si en la etapa k
estamos en la ciudad j habiendo venido de otra ciudad cualquiera i , en la
siguiente etapa 1 k + saldremos de la ciudad j a otra ciudad cualquiera r . Esta
ltima restriccin es necesaria para establecer la continuidad espacial entre
etapas sucesivas.
La pregunta que cabe plantearse, es cul de las dos formulaciones es mejor.
En este caso, las formulaciones desde un aspecto terico no son comparables,
aunque en la prctica resulta preferible la primera ya que tiene menos variables
(la primera tiene del orden de
2
n y la segunda
3
n ), aunque tiene muchas ms
restricciones.
Las comparaciones tericas de distintas formulaciones se presentan ms
adelante, dentro de lo que se denomina reformulacin de problemas en
programacin lineal entera.
Problema de coste fijo
Los problemas de coste fijo aparecen cuando el coste de una variable tiene
un trmino fijo con valor diferente de 0 si la variable toma un valor
estrictamente positivo. Es una funcin no lineal y discontinua.



0 0
( )
0
j
j j
j j j j
x
f x
k c x x
= '
1
1
=
!
1 + >
1
+


k
j
x
j
c
j
f
j
I OPTIMIZACIN
19/01/04 29


Este coste se puede modelar con ayuda de una variable binaria auxiliar
{ } 0, 1
j
y definida como
1 0
0 0
j
j
j
x
y
x
> '
1
1
=
!
= 1
1
+
, que indica la realizacin de la
actividad
j
x . Introduciendo la condicin
j j
x My , 1, , j n = , siendo M una
constante, cota superior de
j
x , cuyo valor depender del problema, se distingue
entre no realizar la actividad y realizarla al menos infinitesimalmente. El valor
de la constante M debe ser el menor posible ya que esto es computacionalmente
beneficioso. El problema lineal entero se formula como sigue
( )
{ }
,
1 1
min ( )
0
0,1
j j
n n
j j j j j j
x y
j j
j j
j
j
f x k y c x
x My
x
y
= =
= +



I.3.3. Modelado de restricciones con variables binarias
I.3.3.1. Modelado de algunas restricciones especiales
Supongamos que necesitamos considerar en un problema la condicin de que
si se produce el producto A tambin se debe producir el producto B. La
condicin de produccin de un producto j la representamos por la restriccin
1
j
x . Entonces, la implicacin es
1 1
A B
x x
Esta condicin no se puede introducir directamente en un problema lineal
porque hace que la estructura del problema (el que se considere o no una
restriccin ms 1
B
x ) depende de que se cumpla otra ( 1
A
x ) y esto slo se
conoce una vez que se ha determinado la solucin ptima. Un problema de
optimizacin no se puede redefinir endgenamente, es decir, en funcin de los
propios valores que toman las variables del problema.
En este apartado se van a modelar en un problema de optimizacin algunas
condiciones especiales (las restricciones lgicas entre ellas) que requieren el uso
de variables binarias para detectar o forzar el cumplimiento de restricciones.
I.3 FORMULACIN DE PROBLEMAS DE OPTIMIZACIN
30 19/01/04
Disyunciones
Las disyunciones implican una pareja de restricciones donde slo una
(cualquiera de las dos) debe satisfacerse, mientras que la otra no es necesario
que se cumpla. Debe cumplirse una al menos pero no necesariamente las dos.
( ) 0 f x ( ) 0 g x
Supongamos el ejemplo de esta disyuncin
1 2
3 2 18 0 x x +
1 2
4 16 0 x x +
Veamos cmo estas restricciones se pueden incorporar en un problema de
optimizacin. Aadir una constante de valor elevado M a una restriccin es
equivalente a eliminar (relajar) dicha restriccin (se supone que las variables son
positivas en estas restricciones), dado que los coeficientes de las variables son
tambin positivos.
1 2
1 2
3 2 18 0
4 16
x x
x x M
+
+

1 2
1 2
3 2 18
4 16 0
x x M
x x
+
+

Se define la variable binaria auxiliar y que selecciona la ecuacin
correspondiente,
1 se relaja la ecuacin 1
0 se relaja la ecuacin 2
y
'
1
1
=
!
1
1
+
. Luego las restricciones
disyuntivas se modelan en un problema de optimizacin como
1 2
1 2
3 2 18
4 16 (1 )
x x My
x x M y
+
+

Si 1 y = se relaja la restriccin 1 pero se obliga a cumplir la 2 y viceversa
para 0 y = .
Algunas implicaciones son un caso semejante a las restricciones disyuntivas
( ) 0 f x > ( ) 0 g x
es equivalente a
( ) 0 f x ( ) 0 g x
ya que P Q es equivalente a (No P ) Q.
Cumplir k de N ecuaciones
Se tiene un conjunto de N ecuaciones de las cuales se han de satisfacer al
menos k , siendo k N < . Las disyunciones son un caso particular de ste para
1 k = y 2 N = .
Sea el conjunto de N ecuaciones
I OPTIMIZACIN
19/01/04 31
1 1
2 1
1
( , , ) 0
( , , ) 0
( , , ) 0
n
n
N n
f x x
f x x
f x x


aadiendo una constante M y una variable binaria
i
y para cada ecuacin
tenemos
1 1 1
2 1 2
1
( , , )
( , , )
( , , )
n
n
N n N
f x x My
f x x My
f x x My


donde adems se impone la condicin de seleccionar solamente k ecuaciones.
1
N
i
i
y N k
=
=


{ } 0,1
i
y 1, , i N =
Seleccionar entre N valores
Sea una funcin con mltiples posibles valores y se desea elegir uno de ellos.
1
2
1
( , , )
n
N
d
d
f x x
d
'
1
1
1
1
1
1
=
!
1
1
1
1
1
1
+


La manera de modelarlo es introduciendo una variable binaria auxiliar
i
y
por cada valor y la condicin de eleccin nica.
{ }
1
1
1
( , , )
1
0,1 1, ,
N
n i i
i
N
i
i
i
f x x d y
y
y i N
=
=
=
=
=


I.3.3.2. Modelado de implicaciones lgicas
Las variables binarias se utilizan para indicar que el cumplimiento de una
restriccin implica el cumplimiento de otra.
I.3 FORMULACIN DE PROBLEMAS DE OPTIMIZACIN
32 19/01/04
Implicaciones sencillas
Retomemos el ejemplo de la restriccin que apareca en el problema de coste
fijo
x M
siendo M una cota superior positiva de x (por ejemplo, 10
6
), m x M y
la variable binaria. Por claridad en la explicacin en este apartado se utiliza la
letra griega para denominar a la variable binaria auxiliar.
Si 1 = la restriccin no obliga a nada ya que x M se cumple por
definicin. Si 0 = entonces 0 x . Luego esta restriccin permite modelar la
implicacin
0 0 x = (si 0 = entonces se cumple que 0 x )
Por otra parte, si 0 x > entonces 1 = . Si 0 x la restriccin no obliga a
nada.
0 1 x > = (si 0 x > entonces se cumple que 1 = )
Ambas son implicaciones equivalentes puesto que P Q es equivalente a
No No Q P . Luego, la restriccin lineal x M nos permite representar
dichas implicaciones en un problema lineal.
De forma anloga veamos la restriccin
x m
siendo m una cota inferior negativa de x (por ejemplo, 10
6
), m x M y
la variable binaria.
Si 1 = la restriccin no obliga a nada ya que x m se cumple por
definicin. Si 0 = entonces 0 x . Luego esta restriccin permite modelar la
implicacin
0 0 x = (si 0 = entonces se cumple que 0 x )
Por otra parte, si 0 x < entonces 1 = . Si 0 x la restriccin no obliga a
nada.
0 1 x < = (si 0 x < entonces se cumple que 1 = )
Nuevamente ambas son implicaciones equivalentes puesto que P Q es
equivalente a No No Q P .
En resumen, hasta ahora hemos visto la representacin en un problema
lineal de las siguientes implicaciones
I OPTIMIZACIN
19/01/04 33
0 0
0 1
x
x M
x

' =
1
1

!
1 > =
1
+

0 0
0 1
x
x m
x

' =
1
1

!
1 < =
1
+

A continuacin, vamos a generalizar la representacin de implicaciones para
cualquier tipo de restriccin genrica.
Implicaciones de una restriccin
La implicacin
1
j j
j
a x b =


es equivalente a
(1 )
j j
j
a x b M +


siendo M una cota superior de la restriccin para cualquier valor de cualquier
j
x ,
j j
j
a x b M

. Efectivamente de manera directa se deduce que si 1 =


se impone la restriccin original y si 0 = no implica nada (se relaja la
restriccin original). Anlogamente al caso anterior esta restriccin tambin
representa la implicacin
0
j j
j
a x b > =


La implicacin
1
j j
j
a x b =


se puede transformar en 0
j j
j
a x b = >

o bien en
0
j j
j
a x b = +

que es equivalente a
( )
j j
j
a x b m + +


siendo m una cota inferior de la restriccin para cualquier valor de cualquier
j
x ,
j j
j
a x b m

.
I.3 FORMULACIN DE PROBLEMAS DE OPTIMIZACIN
34 19/01/04
Implicaciones de una restriccin
De manera simtrica se pueden representar las implicaciones con
restricciones de tipo mayor o igual.
La implicacin
1
j j
j
a x b =


es equivalente a
(1 )
j j
j
a x b m +


siendo m una cota inferior de la restriccin para cualquier valor de cualquier
j
x ,
j j
j
a x b m

. Efectivamente de manera directa se deduce que si 1 =


se impone la restriccin original y si 0 = no implica nada (se relaja la
restriccin original). Anlogamente al caso anterior esta restriccin tambin
representa la implicacin
0
j j
j
a x b < =


La implicacin
1
j j
j
a x b =


se puede transformar en 0
j j
j
a x b = <

o bien en
0
j j
j
a x b =

que es equivalente a
( )
j j
j
a x b M + +


siendo M una cota superior de la restriccin para cualquier valor de cualquier
j
x ,
j j
j
a x b M

.
Implicaciones de una restriccin =
Para deducir las implicaciones de restricciones igualdad se transforman en
ecuaciones de tipo mayor o igual y menor o igual simultneamente.
La implicacin
1
j j
j
a x b = =


es equivalente a
I OPTIMIZACIN
19/01/04 35
1
1
j j
j
j j
j
a x b
a x b

=
=


Luego se representa por las ecuaciones
(1 )
(1 )
j j
j
j j
j
a x b M
a x b m

+
+


Efectivamente para 1 = se cumplen ambas restricciones y para 0 =
ambas se relajan.
La implicacin
1
j j
j
a x b = =


es una combinacin de los casos anteriores simultneamente
1
1
j j
j
j j
j
a x b
a x b

y adems 1 y 1 1

= = =
que se modela con las restricciones
( )
( )
j j
j
j j
j
a x b m
a x b M

+ +

+ +


y la restriccin adicional que indica el cumplimiento de ambas.
1

+
Implicaciones dobles
Para formular implicaciones dobles stas se desdoblan en las implicaciones
unidireccionales correspondientes.
1
j j
j
a x b =

es equivalente a
1
1
j j
j
j j
j
a x b
a x b

'
1 =
1
1
1
!
1
=
1
1
1
+


y lo mismo para los otros tipos de restricciones.
I.3 FORMULACIN DE PROBLEMAS DE OPTIMIZACIN
36 19/01/04
Como resumen se presentan en la siguiente tabla todas las implicaciones
lgicas de cumplimiento de cualquier tipo de restriccin y su variable binaria
asociada y su equivalencia en restricciones lineales.

1
j j
j
a x b =

(1 )
j j
j
a x b M +


1
j j
j
a x b =

( )
j j
j
a x b m + +


1
j j
j
a x b =

(1 )
j j
j
a x b m +


1
j j
j
a x b =

( )
j j
j
a x b M + +


1
j j
j
a x b = =

(1 )
(1 )
j j
j
j j
j
a x b M
a x b m

+
+


1
j j
j
a x b = =

( )
( )
1
j j
j
j j
j
a x b m
a x b M


+ +

+ +

+

1
j j
j
a x b =

(1 )
( )
j j
j
j j
j
a x b M
a x b m


+
+ +


1
j j
j
a x b =

(1 )
( )
j j
j
j j
j
a x b m
a x b M


+
+ +


1
j j
j
a x b = =

(1 )
(1 )
( )
( )
1
j j
j
j j
j
j j
j
j j
j
a x b M
a x b m
a x b m
a x b M




+
+

+ +

+ +

+


donde M y m son la menor constante superior y la mayor constante inferior de
la restriccin que cumplen
j j
j
a x b M

y
j j
j
a x b m

para cualquier
I OPTIMIZACIN
19/01/04 37
valor de cualquier
j
x . es una constante de valor muy pequeo, que en el caso
de restricciones con todas las variables binarias ser siempre 1.
I.3.3.3. Modelado de proposiciones condicionales y/o compuestas
Hasta ahora se han modelado disyunciones entre restricciones o implicaciones
del tipo si 1 = entonces se debe verificar tal restriccin o viceversa, si se
verifica esta restriccin entonces 1 = , o la doble implicacin. Se puede
necesitar el modelado de proposiciones condicionales y/o compuestas ms
complejas que las simples implicaciones o disyunciones anteriores. Por ejemplo,
si se fabrica el producto A o B (o ambos) entonces debe fabricarse tambin al
menos uno de los productos C, D o E. Este tipo de restricciones tambin se
modela con la ayuda de variables binarias.
Antes de entrar en el modelado de estas restricciones conviene recordar
algunas operaciones lgicas que pueden utilizarse para transformar las
proposiciones en otras cuyo modelado pueda resultar ms sencillo. Aqu se
muestra una tabla de equivalencias.

P Q no P o Q
P (Q y R) (P Q) y (P R)
P (Q o R) (P Q) o (P R)
(P y Q) R (P R) o (Q R)
(P o Q) R (P R) y (Q R)
no (P o Q) no P y no Q
no (P y Q) no P o no Q

Existen algunas proposiciones condicionales y/o compuestas que se
transforman de manera sencilla en restricciones, mediante el uso de variables
binarias. Si denominamos
i
X al cumplimiento de la restriccin i y
1 si se cumple la restriccin
0 si no se cumple
i
i

'
1
1
=
!
1
1
+
a la variable binaria auxiliar indicadora de
su cumplimiento, esta tabla se puede interpretar fcilmente.

1
X o
2
X
1 2
1 +
1
X y
2
X
1
1 = ,
2
1 =
no
1
X
1
0 =
1 2
X X
1 2
0
1 2
X X
1 2
0 =

I.3 FORMULACIN DE PROBLEMAS DE OPTIMIZACIN
38 19/01/04
La primera fila dice que se debe cumplir la restriccin 1 o la 2 (o ambas),
luego efectivamente al menos una de las dos variables
1
y
2
debe tomar valor
1 y la forma de expresarlo con una ecuacin lineal es
1 2
1 + . Adems tiene
que haber una restriccin que diga que si se satisface la restriccin i entonces
1
i
= , 0 1
i i
x > = . Esa condicin ha surgido ya para el problema de coste
fijo y su modelado como restriccin lineal es
i i
x M . Ya se ha visto en el
apartado anterior la manera generalizada de obtener las restricciones lineales
asociadas a las implicaciones de cumplimiento de una restriccin de cualquier
tipo y su variable binaria asociada.
Volviendo al ejemplo anterior. Si
i
X representa la fabricacin del producto i
(por ejemplo, controlado mediante el consumo de energa en una mquina por
encima de un cierto umbral) y
i
la variable binaria de cumplimiento de dicha
condicin de fabricacin, la implicacin lgica
( o ) ( o o )
A B C D E
X X X X X
se puede representar como
1 1
A B C D E
+ + +
Para poder modelar estas implicaciones lgicas, por complejas que sean, de
manera automtica la implicacin se separa en dos bloques
1 1
A B
+ =
1 1
C D E
= + +
donde es la variable binaria auxiliar indicadora del cumplimiento de la
primera restriccin.
Aplicando este procedimiento al ejemplo anterior, la implicacin
1 1
A B
+ = equivale a 2
A B
+
ya que 1 = y 1 M = y
1 1
C D E
= + + equivale a
C D E
+ +
siendo 1 m = .
Luego las restricciones lineales a introducir en el problema de optimizacin
son
2
A B
C D E


' +
1
1
!
1 + +
1
+

Alternativamente, la implicacin original
I OPTIMIZACIN
19/01/04 39
( o ) ( o o )
A B C D E
X X X X X
se poda haber transformado en sta
[ ] ( o o )
A C D E
X X X X y [ ] ( o o )
B C D E
X X X X
y el conjunto de restricciones resultantes habra sido
0
0
A
B
C D E



'
1

1
1
1
1

!
1
1
1
+ +
1
1+

que tambin es equivalente a
C D E A
C D E B


' + +
1
1
!
1 + +
1
+

Para esta implicacin se han encontrado tres formulaciones
matemticamente equivalentes.
Veamos a continuacin un ejemplo donde aparecen este tipo de
implicaciones. Un entrenador de baloncesto tiene 9 jugadores, a los que ha
evaluado de 1 a 3 de acuerdo con su manejo de pelota, tiro, rebote y defensa,
segn se indica en la tabla adjunta.

Jugador Posiciones Manejo de pelota Tiro Rebote Defensa
1 Pivot 2 1 3 3
2 Base 3 3 1 2
3 Pivot, Alero 2 3 2 2
4 Alero, Base 1 3 3 1
5 Pivot, Alero 1 3 1 2
6 Alero, Base 3 1 2 3
7 Pivot, Alero 3 2 2 1
8 Pivot 2 1 3 2
9 Alero 3 3 1 3

El equipo titular de 5 jugadores debe tener la mxima capacidad defensiva y
satisfacer las siguientes condiciones:

Por los menos dos jugadores deben estar en disposicin de actuar de pivot, al
menos dos de alero y por lo menos uno de base.
Su nivel medio, tanto en el manejo de pelota como de tiro y rebote, debe ser
no inferior a 2.
I.3 FORMULACIN DE PROBLEMAS DE OPTIMIZACIN
40 19/01/04
Si juega el jugador 3, entonces el jugador 6 no puede estar en pista.
Si el jugador 1 est en el equipo titular, tambin deber estar el 4 el 5,
pero en este caso no los dos a la vez. Si el jugador 1 no est en el equipo
titular, 4 y 5 pueden hacerlo, si interesa.
El jugador 8 el 9, pero no los dos a la vez, deben formar parte del equipo.

Formular un programa lineal que facilite la seleccin del equipo titular.

En primer lugar se definen las variables de decisin que se van a utilizar.
stas son
1 si se incluye el jugador en el equipo
0 en otro caso
j
j
x
'
1
1
=
!
1
1
+
1, , 9 j =
1 si se incluye el jugador en posicin
0 en otro caso
jk
j k
x
'
1
1
=
!
1
1
+
1, , 9 j = , , , k p a b =
Estas ltimas variables definidas slo para los jugadores con capacidad para
jugar en varias posiciones.

Maximizacin de la capacidad defensiva
1 2 3 4 5 6 7 8 9
max 3 2 2 2 3 2 3 x x x x x x x x x + + + + + + + +
Seleccin de cinco jugadores
1 2 3 4 5 6 7 8 9
5 x x x x x x x x x + + + + + + + + =
Seleccin de nmero mnimo de jugadores en cada posicin
1 3 5 7 8
3 4 5 6 7 9
2 4 6
2
2
1
p p p
a a a a a
b b
x x x x x
x x x x x x
x x x
+ + + +
+ + + + +
+ +

Niveles medios mnimos
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
2 3 2 3 3 2 3 10
3 3 3 3 2 3 10
3 2 3 2 2 3 10
x x x x x x x x x
x x x x x x x x x
x x x x x x x x x
+ + + + + + + +
+ + + + + + + +
+ + + + + + + +

Incompatibilidad entre dos jugadores
3 6
1 0 x x = = equivale a
3 6
0 0 x x
I OPTIMIZACIN
19/01/04 41
que, como disyuncin, se modela con las restricciones
3 1
6 1
1
x y
x y
'
1
1
!
1
1
+

o bien, modelando directamente la implicacin, con la restriccin siguiente
3 6
1 x x +
La formulacin con las dos ecuaciones
3 1
6 1
1
x y
x y
'
1
1
!
1
1
+
es ms fuerte (mejor) que
la de una nica ecuacin
3 6
1 x x + , porque la regin factible del problema
relajado es menor para el primer caso que para el segundo. En el apartado
I.6.5.2 se explican algunas tcnicas de reformulacin de problemas MIP para
conseguir soluciones ms fuertes.
Afinidad entre jugadores
1 4 5
1 1 x x x + = es equivalente a
1 4 5 4 5
0 ( 1 y 1) x x x x x + +
que, como disyuncin, se modela con las restricciones
1 2
4 5 2
4 5 2
1 (1 )
1 1(1 )
x y
x x y
x x y
'
1

1
1
1
1
+
!
1
1
1
+
1
1+

o bien, modelando directamente la implicacin, con la restriccin siguiente
4 5 1
4 5 1
2 x x x
x x x
+ '
1
1
!
+
1
1+

Al menos un jugador de entre varios
8 9
1 x x + =
Relacin de coherencia entre variables binarias
3 3 3
4 4 4
5 5 5
6 6 6
7 7 7
0
0
0
0
0
p a
a b
p a
a b
p a
x x x
x x x
x x x
x x x
x x x
+ =
+ =
+ =
+ =
+ =

{ } , 0,1
i i
x y
I.3 FORMULACIN DE PROBLEMAS DE OPTIMIZACIN
42 19/01/04
La solucin resulta ser
1 4 6 7 9
1 x x x x x = = = = = y el resto 0 y la defensa
total del equipo es 11.
I.3.3.4. Modelado de productos con variables binarias
Las variables binarias tambin se pueden utilizar para eliminar algunos
productos de variables que convertiran el problema en no lineal pero que con
esta transformacin resulta un problema lineal entero mixto, ms fcil de
resolver.
En la siguiente tabla se muestran algunas conversiones posibles. La primera
columna indica los productos de variables que se desea modelar. En la siguiente
la equivalencia para obtener las restricciones que se introducen en el problema
de programacin lineal, expresadas en la tercera columna.

1 2
0 =
{ } 0,1
i

1
0 =
2
0 =
{ }
1 2
1
0,1
i


1 2

{ } 0,1
i

Reemplazar
1 2
por
3

3 1 2
1 1 y 1 = = =
{ }
3 1
3 2
1 2 3
1
0,1
i


+ +


{ }
0
0,1
x
x


Reemplazar x por y
0 0
1
y
y x

= =
= =

0
0
y
y M
x y
x y M M
x M

+
+


I.3.4. Modelos caractersticos de programacin no lineal
Aunque la programacin lineal juega un papel fundamental en el campo de
la optimizacin ya que en multitud de problemas prcticos se pueden considerar
lineales todas las funciones que intervienen, esto no siempre es as. De hecho,
muchos economistas han encontrado que cierto grado de no linealidad es la
regla, y no la excepcin, en la mayora de los problemas de planificacin
econmica, por lo que se plantea como necesario manejar problemas de
programacin no lineal.
De forma muy aproximada, se puede afirmar que el tiempo de resolucin de
problemas de programacin no lineal es un orden de magnitud mayor que el de
I OPTIMIZACIN
19/01/04 43
un problema lineal del mismo tamao y, adems, los algoritmos de NLP son
menos fiables y robustos.
Veamos algunos ejemplos donde existen funciones objetivos o restricciones no
lineales.
Problemas de produccin con elasticidad en los precios y/o costes
En algunos problemas de produccin se puede suponer que hay una ganancia
unitaria fija asociada a cada producto, con lo que la funcin objetivo de
beneficio que se obtiene es lineal. Sin embargo, en otros problemas ciertos
factores introducen no linealidades en la funcin objetivo. Por ejemplo, un gran
fabricante puede encontrar precios elsticos mediante los cuales la cantidad que
se puede vender de un producto va en relacin inversa con el precio que se
cobra. La curva precio-demanda, ( ) p x , que representa el precio unitario que se
necesita para poder vender x unidades, sera una funcin no lineal decreciente,
nunca inferior al coste unitario de produccin c .
As el margen de contribucin de la empresa (ingreso bruto menos coste de
produccin, beneficio neto, EBITDA) vendra determinado por
( ) ( ) P x xp x cx =
Si, adems, la empresa tiene una funcin semejante para cada uno de los n
productos que puede fabricar la funcin objetivo global sera una suma de
funciones no lineales.
1 1
( ) ( ) ( )
n n
j j j j j j
j j
f x P x x p x c x
= =
l
= =
l


Otra razn por la que pueden surgir no linealidades en la funcin objetivo es
a causa de los costes de produccin, ya que stos pueden variar con el nivel de
produccin. Por ejemplo, el coste puede decrecer cuando aumenta el nivel de
produccin gracias al efecto de una curva de aprendizaje (mayor eficiencia con
ms experiencia) o aumentar por necesidad de tiempos extra o instalaciones ms
costosas.
Las restricciones tambin se pueden ver afectadas por estos tipos de no
linealidades. Una que surge inmediatamente es la restriccin de presupuesto, si
existe, cuando los costes de produccin varan como se ha descrito
anteriormente. Tambin sern funciones no lineales las asociadas a los recursos,
siempre que el uso de un determinado recurso no sea proporcional a los niveles
de los respectivos productos.
I.3 FORMULACIN DE PROBLEMAS DE OPTIMIZACIN
44 19/01/04
Problema de transporte con descuentos por volumen
El problema de transporte que se ha considerado hasta el momento supone
que el coste por unidad enviada de un origen a un destino dados es fijo,
independientemente de la cantidad mandada. Sin embargo, una situacin muy
habitual es que se disponga de descuentos por cantidad para volmenes grandes,
con lo que la funcin de coste unitaria sera una funcin no lineal con pendiente
no creciente. Una alternativa es aproximar esta funcin no lineal por una
poligonal.
As pues, el coste de embarcar x unidades viene dado por una funcin
poligonal, ( ) C x , continua, con pendiente en cada tramo igual al coste unitario
de transporte. En consecuencia, si cada combinacin de origen y destino tiene
una funcin semejante, la funcin objetivo sera
1 1
( ) ( )
m n
ij ij
i j
f x C x
= =
=


Al ser una funcin poligonal cncava en un problema de minimizacin se
modelar introduciendo variables binarias de seleccin del segmento de la
poligonal.
Seleccin de una cartera de inversiones
Actualmente, cuando se plantea la seleccin de una cartera de inversiones,
los inversores se preocupan tanto por el rendimiento esperado como por el riesgo
asociado a su inversin y para obtener un modelo que permita determinar una
cartera que, con ciertas suposiciones, combine de forma ptima estos factores se
utiliza la programacin no lineal.
Supongamos que se estn considerando n tipos de acciones para incluirlas en
la cartera; las variables de decisin
j
x , 1, , j n = representan el nmero de
acciones j que se van a incluir. Sean
j
y
jj
la media y la varianza del
rendimiento sobre cada accin de tipo j , en donde
jj
es una medida del riesgo
de estas acciones. Sea
ij
la covarianza del rendimiento sobre una accin de
cada tipo i y j . Entonces, el valor esperado ( ) R x y la varianza ( ) V x del
rendimiento total de la cartera son
1
1 1
( )
( )
n
j j
j
n n
ij i j
i j
R x x
V x x x

=
= =
=
=


con lo que la funcin objetivo del modelo resultante es
( ) ( ) ( ) f x R x V x =
I OPTIMIZACIN
19/01/04 45
donde se denomina factor de aversin al riesgo, ya que cuanto mayor sea
mayor importancia (negativa) se le da en la funcin objetivo a la variabilidad
(la volatilidad del rendimiento no es ms que su desviacin estndar) de la
inversin final.
Como restriccin se incluye la restriccin del presupuesto y la no negatividad
de las variables (
j
P representa el coste de cada accin de tipo j y B es el
presupuesto):
1
0 1, ...,
n
j j
j
j
Px B
x j n
=


Problemas de sistemas de energa elctrica
Un problema no lineal de sistemas de energa elctrica muy caracterstico es
el flujo de cargas ptimo en corriente alterna AC. Se trata de minimizar los
costes variables de operacin de los grupos de generacin sujeto al conjunto de
restricciones de la red y a las restricciones de seguridad preventiva y/o
correctiva. En este caso, tanto la funcin objetivo como las restricciones son no
lineales. La funcin objetivo porque los costes de generacin se suelen considerar
cuadrticos en funcin de la produccin. Las restricciones porque tanto la
potencia activa como la reactiva son funciones no lineales del mdulo y
argumento de las tensiones en los nudos.
I.3.5. Referencias
Hillier, F.S., Lieberman, G.J. (2002) Investigacin de Operaciones. 7 edicin.
McGraw Hill.
Nemhauser, G.L. and Wolsey, L.A. (1999) Integer and Combinatorial
Optimization. John Wiley and Sons.
Williams, H.P. (1999) Model Building in Mathematical Programming. 4th
Edition. John Wiley and Sons.
Wolsey, L.A. (1998) Integer Programming. John Wiley and Sons.
I.3.6. Biblioteca de problemas
PROBLEMA: AYUDA EN EMERGENCIAS
Tienen que transportarse sacos con alimentos mediante tres tipos de aviones
A1, A2, A3, desde un aeropuerto y arrojarse en las aldeas V1, V2, V3, V4, V5,
afectadas por inundaciones. La cantidad de alimentos (en unidades adecuadas)
I.3 FORMULACIN DE PROBLEMAS DE OPTIMIZACIN
46 19/01/04
que cada avin puede transportar a cada aldea en cada viaje, se da en la
siguiente tabla. El nmero de viajes que puede hacer cada avin se da en la
ltima columna y el nmero mximo de aviones que puede recibir diariamente
cada aldea en la ltima fila. Encontrar el nmero de viajes que deber hacer
cada avin a cada aldea de forma que se maximice la cantidad de alimento
distribuido por da.

V1 V2 V3 V4 V5
A1 10 8 6 9 12 50
A2 5 3 8 4 10 90
A3 7 9 6 10 4 60
100 80 70 40 20

PROBLEMA: CONSTRUCCIN DE ALMACENES
Una compaa planea construir varios almacenes para guardar un cierto
producto. Estos almacenes surtirn a dos grandes clientes con las unidades
demandadas mensualmente apuntadas en la ltima fila de la tabla. Se pueden
construir hasta tres almacenes, que se tienen como candidatos, con capacidades
expresadas en la ltima columna. Usando el coste estimado de construccin de
los almacenes, su vida til y el valor del dinero en el tiempo, los costes de
construccin por mes para los tres almacenes se han estimado en 8000, 12000 y
7000. A continuacin se dan los costes de transporte por unidad desde los tres
almacenes candidatos a los clientes.

Cliente 1 Cliente 2 Capacidad
Almacn 1 1.50 2.00 4000
Almacn 2 2.00 1.50 5000
Almacn 3 2.50 2.25 6000
Demanda 3000 5000

Determinar qu almacenes se deben construir y cmo se ha de satisfacer la
demanda de los clientes.

PROBLEMA: TRANSPORTE DE ELECTRODOMSTICOS
Una compaa tiene dos fbricas, una en Alicante y otra en Huelva. Las dos
fbricas producen frigorficos y lavadoras. Las capacidades de produccin de
estos artculos en Alicante son de 5000 y 7000, respectivamente, y en Huelva de
8000 y 4000. La compaa entrega estos productos a tres grandes clientes en las
ciudades de Barcelona, A Corua y Valencia, siendo las demandas:

I OPTIMIZACIN
19/01/04 47
Demanda/cliente Barcelona A Corua Valencia
Frigorficos 4000 5000 4000
Lavadoras 3000 3000 4000

Los artculos se transportan por ferrocarril. En la tabla siguiente se muestran
los costes unitarios de transporte y las limitaciones para enviar cualquiera de los
dos productos de cada fbrica a cada cliente:

Barcelona A Corua Valencia
Alicante Coste unitario 6 14 7
Mximo unidades 6000 3000 7500
Huelva Coste unitario 10 8 15
Mximo unidades 3000 9000 3000

Se desea minimizar el coste total de transporte.

PROBLEMA: LOGSTICA
Una empresa tiene dos factoras, F1 y F2, con las que abastece a tres
almacenes de distribucin, D1, D2 y D3, de dos artculos, A1 y A2.
Los costes de transporte de una unidad de cualquiera de los dos artculos
desde cada factora a cada almacn se dan en la tabla izquierda, en tanto que
los precios de venta unitarios de cada artculo en cada almacn se dan en la
tabla derecha.

Coste Tr D1 D2 D3 Precio D1 D2 D3
F1 4 7 5 A1 17 20 18
F2 6 5 7 A2 19 17 21

El tiempo, expresado en minutos, que se tarda en fabricar una unidad de
cada artculo en cada una de las factoras se refleja en la tabla izquierda, en
tanto que los costes unitarios de fabricacin de cada artculo en cada factora
aparecen en la tabla derecha.

Tiempo A1 A2 Coste Fb A1 A2
F1 6 7.5 F1 8 6
F2 10 5 F2 5 10

La capacidad de produccin de la factora 1 es de 260 horas y la de la
factora 2 de 240 horas.
I.3 FORMULACIN DE PROBLEMAS DE OPTIMIZACIN
48 19/01/04
Las demandas mnimas de cada uno de los artculos que en cada almacn
deben ser satisfechas son expresadas en la tabla siguiente.

D1 D2 D3
A1 600 800 500
A2 700 500 1200

Por ltimo y por cuestiones de tipo tcnico y de poltica de empresa, nunca
se pueden producir en cualquiera de las factoras ms de 500 unidades de un
artculo que de otro.
Se trata de elaborar un modelo que proporcione el mejor programa de
produccin y distribucin para maximizar el beneficio neto.
Se modifica la solucin si el tiempo de ejecucin de A2 en F1 se reduce en
medio minuto?

PROBLEMA: GESTIN DE AUTOBUSES
En una ciudad se intenta disminuir la contaminacin reduciendo la
circulacin interurbana. Un primer estudio busca determinar el mnimo nmero
de autobuses que satisfagan las necesidades de transporte. Despus de recoger la
informacin se observa que este nmero vara segn la hora del da, pero se
puede considerar constante en intervalos sucesivos de cuatro horas:

00:00 a.m. 4:00 a.m. 4 12:00 m. 4:00 p.m. 7
4:00 a.m. 8:00 a.m. 8 4:00 p.m. 8:00 p.m. 12
8:00 a.m. 12:00 m. 10 8:00 p.m. 00:00 a.m. 4

Los turnos de autobuses funcionan durante ocho horas seguidas y pueden
comenzar al principio de cualquiera de los seis periodos descritos anteriormente.
Adems, si en el turno que comienza a las 8:00 p.m. hay estrictamente ms de 4
autobuses, en el siguiente ha de haber tambin estrictamente ms de 4. Plantear
un problema de programacin lineal entera para determinar el mnimo nmero
de autobuses diario que satisface las necesidades anteriores.

PROBLEMA: ADQUISICIN DE CAMIONES
Una compaa de transportes tiene 10 camiones con capacidad 40000 kg y 5
camiones de 30000 kg. Los camiones grandes tienen un coste variable de
combustible de 0.30 /km y los pequeos de 0.25 /km.
En una semana la empresa debe transportar 400000 kg en un recorrido de
800 km. La posibilidad de otros compromisos recomienda que por cada dos
I OPTIMIZACIN
19/01/04 49
camiones pequeos mantenidos en reserva debe quedarse por lo menos uno de
los grandes.
Cul es el nmero ptimo de camiones de ambas clases que deben
movilizarse para ese transporte y teniendo en cuenta las restricciones?

PROBLEMA: PLANIFICACIN DEL METRO
En una determinada ciudad se va a construir la red del metro. La empresa
encargada ha de decidir qu lneas construir y para ello tiene varias opciones.
Existen 10 puntos claves por los que la red ha de pasar y se ha visto que son 8
las posibles lneas a construir. Las lneas posibles, los puntos clave por los que
pasara cada una y su coste estimado de construccin en unidades apropiadas,
son:

Puntos clave Coste
L1 P1 P2 P3 P4 4
L2 P1 P3 P5 P7 4
L3 P2 P3 P4 P6 4
L4 P5 P7 P9 P10 4
L5 P2 P7 P8 3
L6 P1 P4 P5 P10 4
L7 P3 P8 P9 3
L8 P2 P6 P10 3

Adems, por el punto P2 han de pasar al menos dos lneas; y, si los puntos
P3 y P7 no quedan conectados por una lnea directa, entonces debe existir un
transbordo en P8 de modo que pase una lnea que una este punto con el P3 y
otra con el P7. Plantear como un problema de programacin lineal entera el
problema de decidir qu lneas construir de la forma ms econmica con estas
restricciones teniendo en cuenta que por cada punto clave debe pasar al menos
una lnea.

PROBLEMA: OFICINA DE CORREOS
Una oficina de correos necesita distinto nmero de empleados de jornada
completa para cada da de la semana, tal como se da en la tabla adjunta. Las
reglas sindicales sealan que cada empleado de jornada completa tiene que
trabajar durante cinco das consecutivos y, a continuacin, descansar dos das.
Por ejemplo, un empleado que trabaje de lunes a viernes tiene que descansar
sbado y domingo. La oficina de correos quiere cumplir con sus requerimientos
diarios y utilizar slo empleados de jornada completa. Formular mediante
I.3 FORMULACIN DE PROBLEMAS DE OPTIMIZACIN
50 19/01/04
programacin matemtica un modelo que pueda utilizar la oficina de correos
para minimizar el nmero de empleados de jornada completa a contratar.

Empleados
Lunes 17
Martes 13
Mircoles 15
Jueves 19
Viernes 14
Sbado 16
Domingo 11

PROBLEMA: ABASTECIMIENTO
Una empresa abastecedora de agua tiene que llevar agua de un punto s a un
punto t y para realizar la conexin entre ambos puntos ha de pasar por unos
puntos intermedios. Cada conexin entre un par de puntos tiene un coste
estimado de construccin y, una vez construida, un coste unitario de envo de
cada litro y una capacidad por hora que se recogen en la siguiente tabla:

Conexin Coste
construccin
Coste envo
litro/min
Capacidad
litros/min
s1 100000 40 100
s2 200000 50 200
13 80000 60 50
1t 100000 70 30
23 200000 40 20
2t 200000 70 100
3t 150000 60 60

Plantear un problema de programacin matemtica si se quieren enviar 180
litros por minuto de la forma ms econmica posible, teniendo en cuenta que si
se construye la conexin de s a 2 ha de hacerse la de 2 a t .

PROBLEMA: ADQUISICIN DE MQUINAS TROQUELADORAS
Una compaa tiene tres tipos de mquinas troqueladoras de diferente
velocidad y precisin:

Velocidad
(piezas/hora)
Precisin
(%)
Coste
(/hora)
I OPTIMIZACIN
19/01/04 51
Tipo 1 20 99 2.00
Tipo 2 15 95 1.75
Tipo 3 10 99 1.50

Cada da (8 horas) se deben procesar por lo menos 3500 piezas y hay
disponibles 8 mquinas del tipo 1, 10 del tipo 2 y 20 del tipo 3.
Si cada pieza errnea le cuesta a la compaa 1 cntimo. Cuntas mquinas
de cada tipo se deben utilizar para minimizar los costes?

PROBLEMA: SECUENCIACIN DE TRABAJOS EN UNA MQUINA
Dados unos trabajos que realizar, una duracin de stos y una fecha de
entrega prevista, plantear un problema de programacin lineal entera para
encontrar la secuencia que minimiza el retraso o demora media con que los
trabajos son entregados, con los siguientes datos:

Tarea T1 T2 T3 T4
Tiempo de proceso 9 12 7 14
Fecha de entrega 15 19 23 31

PROBLEMA: PRODUCCIN II
En una empresa familiar se producen dos tipos de productos, 1 y 2,
procesando materia prima. Se pueden comprar hasta 90 kg de materia prima a
un coste de 10 /kg. Se puede usar un kilo de materia prima para producir un
kilo de producto 1 o para producir 1/2 kg del producto 2. Usar un kilo de
materia prima para producir el producto 1 requiere 2 horas de mano de obra.
Usar un kilo de materia prima para procesar el producto 2 requiere 3 horas de
mano de obra. Se dispone de 300 horas de mano de obra a 3 /hora. Se pueden
vender a lo sumo 40 kg. del producto 2. El producto 1 se vende a 29 /kg y el
producto 2 a 69 /kg.
Adems existen una limitacin inferior y superior en caso de que se produzca
alguna cantidad de cada artculo. Es decir, si se produce algo del producto 1 ha
de ser ms de 15 y menos de 30 kg y si se produce algo del producto 2 ha de ser
ms de 10 y menos de 20 kg. Plantear el problema y obtener la solucin ptima.

PROBLEMA: PRODUCCIN E INVENTARIO
Una empresa desea planear su poltica de produccin/inventario para los
meses de agosto, septiembre, octubre y noviembre. La demanda estimada del
producto para esos meses es de 500, 600, 800 y 1000 unidades, respectivamente.
En la actualidad, la capacidad de produccin mensual es de 600 unidades con un
coste de 2500 . La administracin ha decidido instalar un nuevo sistema de
I.3 FORMULACIN DE PROBLEMAS DE OPTIMIZACIN
52 19/01/04
produccin con capacidad mensual de 1100 unidades a un coste por unidad de
3000 . Sin embargo, el nuevo sistema no puede ser instalado hasta noviembre.
Supngase que el inventario inicial es de 250 unidades y que, durante cualquier
mes dado, se pueden almacenar a lo sumo 400 unidades. Si el coste mensual por
unidad por mantener en inventario es de 300 , minimizar el coste total de
produccin e inventario. Suponer que se debe satisfacer la demanda y que se
requiere tener 100 unidades en inventario al final de noviembre.

PROBLEMA: MISIN PACFICA
En una misin pacfica de las Naciones Unidas se dispone de 5 aviadores
para formar las tripulaciones de dos aviones biplaza. Estos aviadores son de
distintas nacionalidades: Espaol, Francs, Italiano, Griego y Portugus. Como
en toda cuestin diplomtica las relaciones internacionales son de gran peso,
cada una de las distintas composiciones de las tripulaciones conlleva un
beneficio, siendo stos:

Francs Italiano Griego Portugus
Espaol 2 5 4 3
Francs 4 4 2
Italiano 5 4
Griego 3

Por otra parte, estas mismas relaciones internacionales hacen que si una
tripulacin est formada por el aviador espaol y el italiano la otra ha de estar
formada por el aviador francs y el griego. Formular el problema de
programacin lineal entera.

PROBLEMA: MEZCLA DE CRUDO
La empresa Sunco Oil produce dos tipos de gasolina (1 y 2), cada una de
ellas mezclando dos tipos de crudo (1 y 2). Los precios de venta de cada barril
de gasolina son 7000 y 6000 , respectivamente. Por su parte, los precios de
compra de los dos tipos de crudo son de 4500 y 3500 por barril,
respectivamente. Se pueden comprar hasta 5000 barriles de cada crudo diarios.
Los dos tipos de gasolina difieren en su ndice de octano y en su contenido en
azufre. La mezcla del petrleo crudo que se utiliza para obtener la gasolina 1 ha
de tener un ndice de octano promedio de al menos 10 y a lo sumo un 1 % de
azufre. La mezcla que se obtiene para la gasolina 2 ha de tener un ndice
promedio de octano de por lo menos 8 y a lo sumo un 2 % de azufre. Los ndices
de octano y el contenido en azufre de los dos tipos de crudo son:

I OPTIMIZACIN
19/01/04 53
Crudo Octano Azufre
1 12 0.5
2 6 2.0

La transformacin de un barril de petrleo en un barril de gasolina cuesta
400 y la refinera de Sunco puede producir diariamente hasta 9000 barriles de
gasolina.
Los clientes de Sunco actualmente demandan 3000 barriles de la gasolina 1 y
2000 de la gasolina 2. Sin embargo, Sunco tiene la posibilidad de estimular la
demanda mediante la publicidad, de modo que cada euro invertido en la
publicidad de cada tipo de gasolina, aumenta la demanda diaria de ese tipo de
gasolina en 0.1 barriles (si por ejemplo gasta 1000 en publicidad de la gasolina
1 aumenta la demanda de gasolina 1 en 100 barriles). Formular un problema de
programacin lineal que permita a Sunco maximizar sus ganancias diarias.

PROBLEMA: PRODUCCIN VI
Una planta de produccin dispone de m mquinas para llevar a cabo su
produccin. La demanda semanal del producto es conocida para las siguientes n
semanas,
j
dem siendo j cada una de las semanas, y ha de ser satisfecha. Cada
una de las mquinas i puede estar arrancada y produciendo durante cada
semana o no, pero si lo est tiene un coste fijo por estar arrancada de
i
cf ,
siendo su produccin mxima
i
pm . Adems, el coste unitario de produccin con
cada una de las mquinas es variable con las semanas, siendo
ij
cv por unidad
de producto, y el coste de almacenamiento de una semana a otra est estimado
en calm por unidad de producto. Por otra parte, arrancar una mquina para
acoplarla una semana si no lo estaba la anterior tiene un coste de arranque
i
carr . Se supone que todas las mquinas inicialmente estn arrancadas (no hay
coste de arranque para la primera semana).

a) Plantear un modelo lineal para optimizar la planificacin de la produccin
siendo el horizonte de planificacin las n semanas.
b) Sobre la formulacin anterior supngase ahora que cuando una mquina
para, ha de hacerlo al menos dos semanas consecutivas por razones
tcnicas, cmo se modelara esta nueva condicin?

PROBLEMA: TRANSPORTE POR FERROCARRIL
Una empresa de transporte opera en una lnea ferroviaria con un
determinado material rodante que puede transportar un volumen mximo V y
un peso mximo P de mercancas, transportando distintas mercancas de otras
empresas. Para un determinado da dispone de distintas solicitudes de
I.3 FORMULACIN DE PROBLEMAS DE OPTIMIZACIN
54 19/01/04
mercancas, de modo que de cada mercanca i conoce la cantidad mxima a
transportar
i
mx , el volumen
i
v y peso
i
p unitarios, el pago que el propietario
de la mercanca est dispuesto a pagar a la empresa por cada unidad
transportada,
i
b , y el coste que estima la empresa por cada unidad a
transportar,
i
c . La empresa de transporte desea tener un modelo que le permita
elegir cada da las cantidades de las mercancas que le proporcionen mayor
beneficio a partir de estos datos diarios.
A su vez, puede variar la capacidad del material rodante, tanto en volumen
o peso, de modo que desea saber en cunto puede valorar cada unidad extra de
volumen y de peso de la que puede disponer, para saber cunto puede estar
dispuesto a pagar por un aumento de stos.
Por otra parte, a los propietarios de las mercancas que no son
transportadas, puede y debe informarles de la cantidad en la que deberan
aumentar su oferta para que su mercanca fuera transportada (en detrimento de
otras).

a) Presentar un modelo lineal para este problema, suponiendo que las
cantidades se pueden fraccionar. Qu elementos del modelo daras como
resultado para responder a las distintas preguntas planteadas?
b) Supngase ahora que la oferta conlleva un descuento por volumen de modo
que la cantidad que un propietario paga por cada unidad es de la forma
i i i
a g x , donde
i
x es la cantidad transportada. Plantear el nuevo modelo
c) Sobre el planteamiento del apartado a), supngase que lo que hay es una
capacidad de volumen y peso por vagn, V y P , y que hay que decidir
adems de cunto transportar, cuntos vagones hay que enganchar,
existiendo un coste unitario por vagn utilizado, cvag . Plantear el nuevo
modelo.

I.3.7. Resultados de la biblioteca de problemas
RESULTADO DEL PROBLEMA AYUDA EN EMERGENCIAS
,
max


0
ij
ij ij
x
i j
ij i
j
ij j
i
ij
a x
x a i
x v j
x


I OPTIMIZACIN
19/01/04 55
El avin A1 hace 50 viajes a la aldea V1, el avin A2 hace 70 a la aldea V3
y 20 a la V5 y el avin A3 hace 20 a la aldea V2 y 40 a la V4. La cantidad total
de alimentos repartidos es 1678.

RESULTADO DEL PROBLEMA CONSTRUCCIN DE ALMACENES
{ }
,
,
min
0, 0,1
ij i
ij ij i i
x y
i j i
ij i i
j
ij j
i
ij i
v x f y
x c y i
x d j
x y
+




Construir los almacenes 1 y 3 y servir 3000 unidades del almacn 1 al cliente
1 y 1000 unidades al cliente 2 y del almacn 3 4000 unidades al cliente 2.

RESULTADO DEL PROBLEMA TRANSPORTE DE ELECTRODOMSTICOS
, ,
min
,
,
,
0
ijk
ij ijk
x
i j k
ijk ik
j
ijk jk
i
ijk ij
k
ijk
c x
x a i k
x b j k
x t i j
x



Frigorficos Barcelona A Corua Valencia
Alicante 1500 0 3500
Huelva 2500 5000 500

Lavadoras Barcelona A Corua Valencia
Alicante 3000 0 4000
Huelva 0 3000 0

El coste total de transporte es de 176000 u.m.

RESULTADO DEL PROBLEMA LOGSTICA
I.3 FORMULACIN DE PROBLEMAS DE OPTIMIZACIN
56 19/01/04
, , , , , ,
,
1 2
max
,
500 500
0
ijk
jk ijk ik ijk ij ijk
x
i j k i j k i j k
ik ijk i
j k
ijk jk
i
ij ij
j j
ijk
v x f x c x
t x h i
x b j k
x x i
x





A1 D1 D2 D3
F1 600 0 500
F2 0 840 0

A1 D1 D2 D3
F1 0 0 1200
F2 700 500 0

El beneficio neto es de 29000.

RESULTADO DEL PROBLEMA GESTIN DE AUTOBUSES
{ }
1 2 3 4 5 6
1 6
1 2
2 3
3 4
4 5
5 6
5 6
1 6
min
4
8
10
7
12
4
4 12
5
, 0,1
i
x x x x x x
x x
x x
x x
x x
x x
x x
x x
x x
x

+
+ + + + +
+
+
+
+
+
+
+ +
+
Z

El nmero mnimo de autobuses es de 26.

RESULTADO DEL PROBLEMA ADQUISICIN DE CAMIONES
I OPTIMIZACIN
19/01/04 57
min(0.30 0.25 )800
10
5
40 30 400
2(10 - ) 5 -
,
x y
x
y
x y
x y
x y
+
+

Z


RESULTADO DEL PROBLEMA PLANIFICACIN DEL METRO
{
{ }
1 2 3 4 5 6 7 8
1 2 6
1 3 5 8
1 2 3 7
1 3 6
2 4 6
3 8
2 4 5
5 7
4 7
4 6 8
2
5 7 2
5 7
min 4 4 4 4 3 4 3 3
1
2
1
1
1
1
1
1
1
1
1
o bien 2 2
2 0
, 0,1
i
x x x x x x x x
x x x
x x x x
x x x x
x x x
x x x
x x
x x x
x x
x x
x x x
x
x x x
x x
x

+ + + + + + +
+ +
+ + +
+ + +
+ +
+ +
+
+ +
+
+
+ +
' +
1
1
+
!
1 +
1
+



RESULTADO DEL PROBLEMA OFICINA DE CORREOS
I.3 FORMULACIN DE PROBLEMAS DE OPTIMIZACIN
58 19/01/04
7
1
1 4 5 6 7
1 2 5 6 7
1 2 3 6 7
1 2 3 4 7
1 2 3 4 5
2 3 4 5 6
3
min
17
13
15
19
14
16

i
i
x
x x x x x
x x x x x
x x x x x
x x x x x
x x x x x
x x x x x
x x
=
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+

4 5 6 7
13
i
x x x
x
+
+ + +
Z


RESULTADO DEL PROBLEMA ABASTECIMIENTO
1 2 13 1 23 2 3
1 2 13
1 23 2 3
1 2
1 13 1
2 23 2
13 23 3
1 2 3
1 1
2 2
13
min 40 50 60 70 40 70 60
100000 200000 80000
10000 200000 200000 150000
180
180
100
200
50
s s t t t
s s
t t t
s s
s t
s t
t
t t t
s s
s s
x x x x x x x
y y y
y y y y
x x
x x x
x x x
x x x
x x x
x y
x y
x y
+ + + + + + +
+ + + +
+ + + +
+ =
= +
= +
+ =
+ + =

{ }
13
1 1
23 23
2 2
3 3
2 2
30
20
100
60
0, 0,1 ,
t t
t t
t t
t s
ij ij
x y
x y
x y
x y
y y
x y i j



Se eligen las conexiones (s1), (s2), (13), (1t), (2t) y (3t) y pasa un
flujo de 80, 100, 50, 30, 100 y 50 respectivamente. El coste total es 853300.

RESULTADO DEL PROBLEMA ADQUISICIN DE MQUINAS TROQUELADORAS
I OPTIMIZACIN
19/01/04 59
min(2 1.75 1.5 0.01 20 0.01 15 0.01 10 )8
20 8 15 8 10 8 3500
8
10
20
, ,
x y z x y z
x z z
x
y
z
x y z
+
+ + + + +
+ +

Z


RESULTADO DEL PROBLEMA SECUENCIACIN DE TRABAJOS EN UNA MQUINA
Denominamos
j
d al tiempo de proceso del trabajo j y
j
r a la fecha de
entrega del trabajo j .
Definimos las variables del problema como
1
0
si el trabajo se hace en la posicin
en otro caso
ij
j i
x
'
1
1
=
!
1
1
+


La funcin objetivo ser la minimizacin de la demora media
1
min
4
i
i
p


sujeto a estas restricciones
cada trabajo se hace una vez
1
ij
i
x j =


en cada posicin slo un trabajo
1
ij
j
x i =


Para cada posicin i se acaba un trabajo en ella y su fecha de entrega es
j ij
j
r x

.
Por otra parte, el trabajo j que acaba en esa posicin acaba en el instante
j kj
j k i
d x


. Las variables
i
n y
i
p , cuentan si acaba antes de tiempo
(adelantado) o despus (retrasado). Por eso
i
p , que es la demora, es la que
aparece en la funcin objetivo
j kj i i j ij
j k i j
d x n p r x i

+ =


{ } , 0 0,1
i i ij
n p x
I.3 FORMULACIN DE PROBLEMAS DE OPTIMIZACIN
60 19/01/04

RESULTADO DEL PROBLEMA PRODUCCIN II
{ }
1 2 1 2 1 2
1 2
1 2
2
1 1 1
2 2 2
1 2 1 2
max 2900 6900 600 1800 1000 2000
2 90
2 6 300
40
15 30
10 20
, 0, , 0,1
y y y y y y
y y
y y
y
u y u
u y u
y y u u
+
+
+



=

{ }
max
,
,
, 0, 0,1 ,
k k k k k
k k k
k
k
k k
k
k k k
k k k k
k
k k k
p y e t x c x
x x
t x t
y a x k
u y y u y k
x y u k

=

=



RESULTADO DEL PROBLEMA PRODUCCIN E INVENTARIO
( )
1
1 5
min
250, 100
, 0
i i
i
i i i i
i i
i i
i i
ci c p
i p d i
p p
i i
i i
i p
+

+
+ =

= =



RESULTADO DEL PROBLEMA MISIN PACFICA
I OPTIMIZACIN
19/01/04 61
max 2 5 4 3 4 4 2 5 4 3
1
1
1
1
1
2
, , ,
ef ei eg ep fi fg fp ig ip gp
ef ei eg ep
ef fi fg fp
ei fi ig ip
eg fg ig gp
ep fp ip gp
ef ei eg ep fi fg fp ig ip gp
ei fg
ef ei eg ep
x x x x x x x x x x
x x x x
x x x x
x x x x
x x x x
x x x x
x x x x x x x x x x
x x
x x x x
+ + + + + + + + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + + + + + + + + =

{ } , , , , , , 0,1
fi fg fp ig ip gp
x x x x x x


RESULTADO DEL PROBLEMA MEZCLA DE CRUDO
11 21 12 22 11 12 21 22
11 12 21 22 1 2
11 12
21 22
11 12 21 22
11 21 11 21
12 22 12 22
11 21 11 21
12
max 7000( ) 6000( ) - 4500( ) - 3500( )
-400( ) - -
5000
5000
9000
12 6 10( )
12 6 8( )
0.5 2
0.5 2
x x x x x x x x
x x x x y y
x x
x x
x x x x
x x x x
x x x x
x x x x
x x
+ + + + +
+ + +
+
+
+ + +
+ +
+ +
+ +
+
22 12 22
11 21 1
12 22 2
11 12 21 22 1 2
2( )
3000 0.1
2000 0.1
, , , , , 0
x x
x x y
x x y
x x x x y y
+
+ = +
+ = +



RESULTADO DEL PROBLEMA PRODUCCIN VI
a)
I.3 FORMULACIN DE PROBLEMAS DE OPTIMIZACIN
62 19/01/04
( )
{ }
{ }
1 0
1
0
min
( 0)
,
, 2
1
, 0, 0,1
0,1 0
j ij ij i ij i ij
j i
ij j j j
i
ij i ij
ij ij ij ij
i
ij j ij
ij ij
calm Al cv P cf carr Arr
P Al dem Al j Al
P pm i j
Arr Par i j
P Al
Arr Arr

l
l
+ + +
l
l
= + =

=
=



b)
1 1
1
1 , 2 1
o bien
2 2 ,1 1
ij ij ij
ij ij ij
i j n
Par i j n


+
+
+
+


RESULTADO DEL PROBLEMA TRANSPORTE POR FERROCARRIL
a)
max ( )
0
i i i
i
i i
i
i i
i
i i
z b c x
v x V
p x P
x mx i
=


Se deben dar las cantidades de las mercancas a transportar, el valor de la
variable dual de la primera restriccin para dar el valor de cada unidad de
volumen, el valor de la variable dual de la segunda restriccin para dar el valor
de cada unidad de peso y a cada propietario del que no se transporte nada el
coste reducido de su variable correspondiente que sera en lo que tendra que
aumentar su oferta para que se transporte algo de su mercanca.
b)
max ( )
0
i i i i i
i
i i
i
i i
i
i i
z a g x c x
v x V
p x P
x mx i
=


I OPTIMIZACIN
19/01/04 63
c)
{ }
,
max ( )
0, 0,1
i i ij j
i j j
i ij j
i
i ij j
i
ij i
j
ij j
z b c x cvag y
v x Vy j
p x Py j
x mx i
x y
=





o bien
max ( )
0
i i i
i
i i
i
i i
i
i i
z b c x cvag y
v x Vy
p x Py
x mx i
y
+
=


I OPTIMIZACIN
19/01/04 65
I.4. Codificacin de problemas de optimizacin
I.4.1. Lenguajes de modelado
(OAE)

I.4.1.1. Lenguajes de modelado
Las principales alternativas actuales para el desarrollo de modelos de
optimizacin suelen ser, Sharda (1995):

Lenguajes de programacin de propsito general (C, C++, Java, Visual
Basic, FORTRAN 90) que llaman a una biblioteca de optimizacin
Tienen sentido cuando el tiempo de solucin es crtico o el modelo es
ejecutado con mucha frecuencia o cuando se necesitan interfaces a medida
para la entrada de datos o salida de resultados o cuando el modelo tiene que
ser integrado en otra aplicacin o se necesitan algoritmos de optimizacin
especficos. Adems permiten la implantacin del modelo en un entorno
software o hardware especial. Como contrapartida requiere un tiempo de
desarrollo muy elevado y, sobre todo, presenta una gran dificultad y
consumo de recursos para el mantenimiento del cdigo.
Actualmente ya existen bibliotecas de componentes orientados a objetos
(clases C++) dedicadas exclusivamente a optimizacin, por ejemplo, Concert
de ILOG, LINDO API de LINDO Systems, OptiMax 2000 de Maximal
Software, FLOPC++ de Universidade de Aveiro.


Lenguajes o entornos de clculo numrico o simblico (hojas de clculo,
lenguajes para clculo numrico intensivo, como MATLAB, o para clculo
simblico, como Maple o Mathematica, etc.)
Los optimizadores de las hojas de clculo, por ser aplicaciones muy comunes
y conocidas, pueden ser un vehculo eficaz de difusin de un modelo entre
cierto tipo de usuarios y facilitan el manejo de datos que se encuentren ya en
dicho formato [Ragsdale, 1998]. Como ventajas especficas se pueden
mencionar: su facilidad de uso, su integracin total con la hoja de clculo, la
familiaridad con el entorno que facilita la explicacin del modelo y de sus
resultados, as como la facilidad de presentacin de resultados en grficos.
Sin embargo, no inducen una buena prctica de programacin, presentan la
dificultad de su desarrollo, verificacin, validacin, actualizacin,
I.4 CODIFICACIN DE PROBLEMAS DE OPTIMIZACIN
66 19/01/04
documentacin y, en general, el mantenimiento del modelo y no permiten
modelar problemas complejos o de gran tamao [Gass, 1995].
Los lenguajes de clculo numrico o simblico no son especficos de
problemas de optimizacin pero facilitan la manipulacin numrica o
simblica de matrices y vectores. Tambin disponen de funciones de
optimizacin.
Todas estas alternativas pueden ser utilizadas para desarrollo rpido de un
prototipo o una demostracin ya que presentan capacidades de presentacin
grfica que pueden ser aprovechadas. Son difcilmente utilizables cuando se
plantean problemas de optimizacin de tamao medio o superior.

Lenguajes algebraicos de modelado
Son las alternativas ms complejas y potentes por su capacidad de
indexacin de las variables y ecuaciones, permiten cambiar sin dificultad las
dimensiones del modelo, de forma natural separan datos de resultados. Desde
el punto de vista del modelador permiten la deteccin de errores de
consistencia en la definicin y verificacin del modelo. Desde el punto de
vista del usuario simplifican drsticamente su mantenimiento. Entre los
lenguajes de modelado ms conocidos se pueden mencionar: GAMS
(www.gams.com), AMPL (www.ampl.com) de origen estadounidense y MPL
(www.maximalsoftware.com) y AIMMS (www.aimms.com) y XPRESS-MP
(www.dash.co.uk) de origen europeo, por citar algunos. De algunos de ellos
se pueden descargar versiones de estudiante desde sus pginas web. GAMS
es el ms antiguo, pero con el conjunto de usuarios ms amplio, quiz por
eso con algunas limitaciones en sus capacidades de modelado. AMPL es ms
nuevo, muy potente para el modelado pero con un conjunto reducido de
usuarios. MPL es otro lenguaje de modelado robusto, cuya versin de
estudiante acompaa al libro [Hillier y Lieberman, 2002].
Existe una herramienta integrada denominada OPLStudio (www.ilog.com),
en la que se dispone de un lenguaje de modelado (OPL) y varios
optimizadores dependiendo del modelo propuesto. Est especialmente
desarrollada para problemas de programacin (scheduling) y planificacin,
aunque admite tambin cualquier modelo de optimizacin lineal y lineal
entera mixta. Es una herramienta integrada ya que adems del lenguaje de
modelado, incluye sus propios optimizadores, Scheduler, Solver, CPLEX,
estando los dos primeros basados en la programacin de restricciones
4
y el
ltimo en programacin matemtica.

4
Se denomina programacin de restricciones a un tipo de programacin lgica donde el
dominio de las variables viene definido por relaciones lgicas y por restricciones.
I OPTIMIZACIN
19/01/04 67
GAMS es el lenguaje ms ampliamente difundido comercialmente con su
propia lista de discusin de usuarios (gams-l@listserv.gmd.de) mientras que
AMPL se est potenciando mucho en las universidades estadounidenses.
Existe un proyecto denominado NEOS Server for Optimization
(http://www-neos.mcs.anl.gov/neos/server-solver-types.html) para el clculo
distribuido que permite el envo de problemas de optimizacin escritos en
AMPL o GAMS a travs de internet y stos son resueltos por optimizadores
especficos para el tipo de problema enviado en servidores de la red
devolviendo los resultados de la optimizacin.
Existen libros especficos que describen sus caractersticas y que sirven como
guas de usuario tanto para el lenguaje GAMS [Brooke, 1998], [McCarl,
1998], para AMPL, [Fourer, 2000], o para OPL [Van Hentenryck, 1999].
Incluso en Espaa se ha publicado un libro de optimizacin que se apoya en
GAMS para la presentacin de ejemplos [Mochol, 1996]. Los campos de
aplicacin de estos lenguajes son tan amplios como los de la optimizacin
propiamente dicha. Abarcan desde la micro y macroeconoma, a la economa
de la energa, a la planificacin energtica o elctrica, a la ingeniera qumica
o forestal, a la planificacin del desarrollo econmico o del comercio
internacional, a la cobertura de riesgos financieros, a problemas de
transporte y comunicaciones, a organizacin de la produccin o fabricacin o
a la planificacin de grandes proyectos. En el caso de la programacin de
restricciones sta aparece especialmente en problemas combinatorios para
modelar restricciones lgicas.
I.4.1.2. Lenguajes algebraicos de modelado
Los lenguajes algebraicos son lenguajes de alto nivel que han sido diseados
especficamente para el desarrollo e implantacin de modelos de optimizacin de
forma ms directa para los programadores y ms inteligible para los usuarios.
En consecuencia, el campo de actuacin y utilidad de los modelos de
optimizacin se ha ampliado tremendamente al utilizar estos lenguajes. Entre
sus caractersticas y ventajas principales destacan las siguientes:

Proporcionan una formulacin sencilla de modelos grandes y complejos
Facilitan sobremanera el desarrollo de prototipos
Mejoran sustancialmente la productividad de los modeladores al permitir
dedicar ms tiempo al diseo, ejecucin del modelo y anlisis de los
resultados y menos a la codificacin del mismo
Estructuran los buenos hbitos de modelado al exigir una representacin
concisa y exacta de los parmetros/variables y sus relaciones
Recogen simultneamente la estructura del modelo y su documentacin
I.4 CODIFICACIN DE PROBLEMAS DE OPTIMIZACIN
68 19/01/04
Separan de manera natural los datos de la estructura del modelo y sta de
los algoritmos de solucin
La formulacin del problema es independiente del tamao. Permiten el uso
de la estructura del modelo para diferentes casos
5

Los optimizadores pueden ser intercambiados sin dificultad, se pueden
probar nuevos optimizadores, nuevos mtodos o nuevas versiones
Por ejemplo, en el lenguaje GAMS se encuentran entre otros disponibles los
optimizadores CPLEX, OSL, XA y XPRESS para problemas LP y MIP,
MINOS y CONOPT para problemas NLP, DICOPT para problemas MINLP
y MILES y PATH para problemas MCP.
Permiten la realizacin de cambios en el modelo de manera sencilla y segura,
es decir, se puede afrontar un refinamiento continuo en la formulacin del
problema
Cualquier tipo de problemas de programacin lineal, no lineal, flujos en redes
o mixta complementaria resulta muy fcil implantar su formulacin
Permiten la implantacin de algoritmos avanzados, que incluyan varias
llamadas al optimizador o procedimientos especficos para el problema (como
por ejemplo los mtodos de descomposicin)
Permiten la portabilidad de los modelos entre plataformas y sistemas
operativos

Como desventajas principales se pueden mencionar las siguientes:

No son adecuados para la resolucin de problemas de pequeo tamao por
parte de usuarios espordicos por la barrera de entrada que supone el
aprendizaje de un nuevo lenguaje
No pueden utilizarse para la resolucin directa de problemas gigantescos
cuya formulacin completa incluso no se puede realizar (por ejemplo, a
partir de 1 milln de restricciones y/o variables)
En la ejecucin se incluye un tiempo de creacin del modelo y de interfaz
con el optimizador que ralentiza la obtencin de la solucin, por lo tanto no
es recomendable cuando el tiempo de ejecucin es un factor crtico.

Las tendencias o caractersticas ms actuales en el desarrollo de lenguajes
algebraicos se mueven hacia:


5
Una manera habitual de desarrollar es utilizar una maqueta (caso ejemplo) para la
depuracin y verificacin del modelo y una vez comprobada su validez utilizar el caso real a ser
resuelto.
I OPTIMIZACIN
19/01/04 69
Interfaces de entrada y salida de datos ms estrechamente relacionadas con
bases de datos u hojas de clculo
El desarrollo de interfaces grficas que faciliten al usuario la formulacin
visual y el entendimiento de problemas de optimizacin
Interfaz con lenguajes de propsito general para la incorporacin de
funciones externas definidas por el usuario dentro de la optimizacin
El avance en las capacidades de resolucin directa de problemas estocsticos
(con adicin de caractersticas especficas en el propio lenguaje y uso de
algoritmos de descomposicin en el optimizador) o problemas no lineales
complejos
La posibilidad de ocultar el cdigo fuente produciendo versiones ejecutables
para usuarios finales
La seleccin automtica del mtodo y optimizador

La experiencia personal por el uso de estos lenguajes de modelado ha sido
tremendamente positiva. En el Instituto de Investigacin Tecnolgica (IIT) de
la Escuela Tcnica Superior de Ingeniera se pas a partir del ao 1991 de
utilizar lenguajes de propsito general (como FORTRAN) para el desarrollo de
modelos de optimizacin a utilizar exclusivamente lenguajes de modelado (como
GAMS). Esto ha representado un salto importante en cuanto a la productividad
de los modeladores. Aplicaciones que antes requeran decenas de miles de lneas
de cdigo (en FORTRAN) ahora se desarrollan con una dcima parte de la
longitud original y con un esfuerzo muy inferior en tiempo (menos de la cuarta
parte). De hecho, el IIT ha desarrollado desde el ao 1993 numerosos modelos
de optimizacin para el sector elctrico y ha sido el precursor en Espaa del uso
de lenguajes algebraicos en el campo de la planificacin, operacin y economa
del sector elctrico. En este sector, cuya regulacin ha cambiado recientemente,
ha sido de vital importancia la capacidad de mantener o modificar de manera
muy sencilla los modelos de planificacin debido al uso de estos lenguajes.
I.4.1.3. Referencias
Brooke, A., Kendrick, D. and Meeraus, A. (1998) GAMS: A User's Guide.
GAMS Development Co.
Fourer, R., Gay, D.M. and Kernighan, B.W. (2000) AMPL: A Modeling
Language for Mathematical Programming. The Scientific Press. 2nd ed.
Ragsdale, C. T. (1998) Spreadsheet modeling and decision analysis: a practical
introduction to management science. South-Western College. 2nd ed.
I.4 CODIFICACIN DE PROBLEMAS DE OPTIMIZACIN
70 19/01/04
Gass, S.I., Hirshfeld, D.S. and Wasil, E.A. (1995) Model World: The
Spreadsheeting of OR/MS Interfaces pp. 72-81. September-October.
McCarl, B.A. and Spreen, Th.H. (1998) Applied Mathematical Programming
using Algebraic Systems. Technical Report.
Mochol, M. y Sala, R. (1996) Decisiones de optimizacin Tirant lo Blanch.
Valencia.
Sharda, R. and Rampal, G. (1995) Algebraic Modeling Languages on PCs
OR/MS Today pp. 58-63. June.
Van Hentenryck, P. (1999) The OPL Optimization Programming Language. The
MIT Press.
I.4.2. Modelado en GAMS
(OAE)

En este apartado se presentan varios ejemplos sencillos que permiten mostrar
algunas de las caractersticas del lenguaje GAMS. Sin embargo, el manual de
usuario contiene un captulo tutorial y la referencia de todas las caractersticas
del lenguaje.
I.4.2.1. Ejemplo de transporte
Veamos a continuacin un caso tpico de un problema de optimizacin lineal
clsico y cmo este problema se codifica en el lenguaje GAMS. En el apartado
de modelado en programacin lineal entera mixta se presenta formalmente este
problema y sus caractersticas. Sean i fbricas de envasado y j mercados de
consumo. Cada fbrica tiene una capacidad mxima de produccin de
i
a cajas y
cada mercado demanda una cantidad
j
b de cajas (se supone que la capacidad de
produccin total de las fbricas es superior a la demanda total para que el
problema sea factible). El coste de transporte entre cada fbrica i y cada
mercado j por cada caja es
ij
c . Se desea satisfacer la demanda de cada mercado
al mnimo coste. Las variables de decisin del problema sern las cajas
transportadas entre cada fbrica i y cada mercado j ,
ij
x . Las ecuaciones que
deben satisfacerse son:

Lmite de capacidad mxima de produccin de cada fbrica
ij i
j
x a

para cada fbrica i


Satisfaccin de la demanda de cada mercado
ij j
i
x b

para cada mercado j


I OPTIMIZACIN
19/01/04 71
La funcin objetivo ser la minimizacin de los costes totales de transporte
ij ij
i j
c x


sta es la forma algebraica de representacin de este problema de
optimizacin. La codificacin en lenguaje GAMS aparece a continuacin.

$TITLE MODELO DE TRANSPORTE

SETS
I fbricas de envasado / VIGO, ALGECIRAS /
J mercados de consumo / MADRID, BARCELONA, VALENCIA /

PARAMETERS
A(i) capacidad de produccin de la fbrica i [cajas]
/ VIGO 350
ALGECIRAS 700 /

B(j) demanda del mercado j [cajas]
/ MADRID 400
BARCELONA 450
VALENCIA 150 /

TABLE C(i,j) coste unitario transporte entre i y j [miles de euros por caja]
MADRID BARCELONA VALENCIA
VIGO 0.06 0.12 0.09
ALGECIRAS 0.05 0.15 0.11

VARIABLES
X(i,j) cajas transportadas entre fbrica i y mercado j [cajas]
CT coste de transporte [miles de euros]

POSITIVE VARIABLE X

EQUATIONS
COSTE coste total de transporte [miles de euros]
CAPACIDAD(i) capacidad mxima de cada fbrica i [cajas]
DEMANDA(j) satisfaccin demanda de cada mercado j [cajas] ;

COSTE .. CT =E= SUM[(i,j), C(i,j) * X(i,j)] ;

CAPACIDAD(i) .. SUM[j, X(i,j)] =L= A(i) ;

DEMANDA(j) .. SUM[i, X(i,j)] =G= B(j) ;

MODEL TRANSPORTE / COSTE, CAPACIDAD, DEMANDA /

SOLVE TRANSPORTE USING LP MINIMIZING CT

Se ha puesto especial cuidado en presentar de forma clara, concisa y limpia
el cdigo. El contenido de este cdigo resulta prcticamente autoexplicativo. El
resultado de la ejecucin del modelo de transporte se presenta a continuacin.

C o m p i l a t i o n

COMPILATION TIME = 0.000 SECONDS 0.7 Mb WIN-19-115

Equation Listing SOLVE TRANSPORTE USING LP FROM LINE 39

---- COSTE =E= coste total de transporte [miles de euros]

COSTE.. - 0.06*X(VIGO,MADRID) - 0.12*X(VIGO,BARCELONA) - 0.09*X(VIGO,VALENCIA)

- 0.05*X(ALGECIRAS,MADRID) - 0.15*X(ALGECIRAS,BARCELONA)

- 0.11*X(ALGECIRAS,VALENCIA) + CT =E= 0 ; (LHS = 0)

---- CAPACIDAD =L= capacidad mxima de cada fbrica i [cajas]

CAPACIDAD(VIGO).. X(VIGO,MADRID) + X(VIGO,BARCELONA) + X(VIGO,VALENCIA) =L= 350 ;

(LHS = 0)

CAPACIDAD(ALGECIRAS).. X(ALGECIRAS,MADRID) + X(ALGECIRAS,BARCELONA)
I.4 CODIFICACIN DE PROBLEMAS DE OPTIMIZACIN
72 19/01/04

+ X(ALGECIRAS,VALENCIA) =L= 700 ; (LHS = 0)

---- DEMANDA =G= satisfaccin demanda de cada mercado j [cajas]

DEMANDA(MADRID).. X(VIGO,MADRID) + X(ALGECIRAS,MADRID) =G= 400 ;

(LHS = 0, INFES = 400 ***)

DEMANDA(BARCELONA).. X(VIGO,BARCELONA) + X(ALGECIRAS,BARCELONA) =G= 450 ;

(LHS = 0, INFES = 450 ***)

DEMANDA(VALENCIA).. X(VIGO,VALENCIA) + X(ALGECIRAS,VALENCIA) =G= 150 ;

(LHS = 0, INFES = 150 ***)

Column Listing SOLVE TRANSPORTE USING LP FROM LINE 39

---- X cajas transportadas entre fbrica i y mercado j [cajas]

X(VIGO,MADRID)
(.LO, .L, .UP = 0, 0, +INF)
-0.06 COSTE
1 CAPACIDAD(VIGO)
1 DEMANDA(MADRID)

X(VIGO,BARCELONA)
(.LO, .L, .UP = 0, 0, +INF)
-0.12 COSTE
1 CAPACIDAD(VIGO)
1 DEMANDA(BARCELONA)

X(VIGO,VALENCIA)
(.LO, .L, .UP = 0, 0, +INF)
-0.09 COSTE
1 CAPACIDAD(VIGO)
1 DEMANDA(VALENCIA)

REMAINING 3 ENTRIES SKIPPED

---- CT coste de transporte [miles de euros]

CT
(.LO, .L, .UP = -INF, 0, +INF)
1 COSTE

Model Statistics SOLVE TRANSPORTE USING LP FROM LINE 39

MODEL STATISTICS

BLOCKS OF EQUATIONS 3 SINGLE EQUATIONS 6
BLOCKS OF VARIABLES 2 SINGLE VARIABLES 7
NON ZERO ELEMENTS 19

GENERATION TIME = 0.140 SECONDS 1.4 Mb WIN-19-115

EXECUTION TIME = 0.140 SECONDS 1.4 Mb WIN-19-115

S O L V E S U M M A R Y

MODEL TRANSPORTE OBJECTIVE CT
TYPE LP DIRECTION MINIMIZE
SOLVER CPLEX FROM LINE 39

**** SOLVER STATUS 1 NORMAL COMPLETION
**** MODEL STATUS 1 OPTIMAL
**** OBJECTIVE VALUE 93.5000

RESOURCE USAGE, LIMIT 0.401 1000.000
ITERATION COUNT, LIMIT 5 10000

GAMS/Cplex May 18, 2000 WIN.CP.CP 19.3 016.014.038.WAT For Cplex 6.6
Cplex 6.6.1, GAMS Link 16, Using a GAMS/Cplex demo license installed at runtime.

Optimal solution found.

Objective : 93.500000

LOWER LEVEL UPPER MARGINAL

---- EQU COSTE . . . 1.000

COSTE coste total de transporte [miles de euros]

---- EQU CAPACIDAD capacidad mxima de cada fbrica i [cajas]

LOWER LEVEL UPPER MARGINAL
I OPTIMIZACIN
19/01/04 73

VIGO -INF 350.000 350.000 -0.030
ALGECIRAS -INF 650.000 700.000 .

---- EQU DEMANDA satisfaccin demanda de cada mercado j [cajas]

LOWER LEVEL UPPER MARGINAL

MADRID 400.000 400.000 +INF 0.050
BARCELONA 450.000 450.000 +INF 0.150
VALENCIA 150.000 150.000 +INF 0.110

---- VAR X cajas transportadas entre fbrica i y mercado j [cajas]

LOWER LEVEL UPPER MARGINAL

VIGO .MADRID . . +INF 0.040
VIGO .BARCELONA . 350.000 +INF .
VIGO .VALENCIA . . +INF 0.010
ALGECIRAS.MADRID . 400.000 +INF .
ALGECIRAS.BARCELONA . 100.000 +INF .
ALGECIRAS.VALENCIA . 150.000 +INF .

LOWER LEVEL UPPER MARGINAL

---- VAR CT -INF 93.500 +INF .

CT coste de transporte [miles de euros]

**** REPORT SUMMARY : 0 NONOPT
0 INFEASIBLE
0 UNBOUNDED

EXECUTION TIME = 0.030 SECONDS 0.7 Mb WIN-19-115

**** FILE SUMMARY

INPUT D:\TR.GMS
OUTPUT D:\TR.LST
I.4.2.2. Ejemplo de planificacin de la produccin
A continuacin se presenta un ejemplo de planificacin de la produccin de
una fbrica de papel. Se dispone de varias mquinas para producir diferentes
tipos de papel. Se trata de determinar cules son las cantidades ptimas a
producir de cada tipo de papel en cada mquina para maximizar el beneficio. La
demanda de cada tipo de papel se considera fija y conocida y existen
limitaciones en el tiempo de produccin disponible en cada mquina.

$TITLE Planificacin de la produccin de una papelera

* la papelera puede producir cuatro tipos diferentes de papel en tres mquinas
* distintas. Dada una demanda fija se trata de determinar la produccin que
* maximiza los beneficios mensuales

SETS
M mquinas / maquina1 * maquina3 /
P tipos de papel / prensa, folio, imprenta, reciclado /

TABLE TASAPROD(p,m) tasa de produccin (tm por h)
maquina1 maquina2 maquina3
prensa 53 52 49
folio 51 49 44
imprenta 52 45 47
reciclado 42 44 40

TABLE COSTEPROD(p,m) coste de produccin ( por tm)
maquina1 maquina2 maquina3
prensa 76 75 73
folio 82 80 78
imprenta 96 95 92
reciclado 72 71 70

TABLE DATDEM(p,*) demanda y precio de venta
demanda precio
* (tm por mes)( por tm)
prensa 30000 77
folio 20000 81
I.4 CODIFICACIN DE PROBLEMAS DE OPTIMIZACIN
74 19/01/04
imprenta 12000 99
reciclado 8000 105

PARAMETER TIEMPOMAQ(m) tiempo disponible al mes de cada mquina (h)
/ maquina1 672
maquina2 600
maquina3 480 /

VARIABLES
PRODUCC(p,m) produccin de cada tipo papel en cada mquina (tm por mes)
BENEFICIO beneficio ( por mes)

POSITIVE VARIABLE PRODUCC

EQUATIONS
CAPACMAQ(m) capacidad de cada mquina (h por mes)
DEMANDAP(p) demanda de cada tipo de papel (tm por mes)
BENEF beneficio ( por mes) ;

CAPACMAQ(m) .. SUM[p, PRODUCC(p,m)/TASAPROD(p,m)] =L= TIEMPOMAQ(m) ;

DEMANDAP(p) .. SUM[m, PRODUCC(p,m)] =E= DATDEM(p,demanda) ;

BENEF .. BENEFICIO =E= SUM[p, DATDEM(p,demanda)*DATDEM(p,precio)]
- SUM[(p,m), COSTEPROD(p,m)*PRODUCC(p,m)] ;

MODEL PAPELERA / ALL /

SOLVE PAPELERA USING LP MAXIMIZING BENEFICIO
I.4.2.3. Ejemplo de secuenciacin de rdenes de trabajo
Dada una mquina y 5 trabajos que hay que realizar en ella, en cualquier
orden, se dispone del tiempo de ejecucin de cada trabajo

TR1 TR2 TR3 TR4 TR5
15 13 12 14 16

y del tiempo de ajuste de la mquina para pasar de ejecutar el trabajo i (fila) a
ejecutar el trabajo j (columna)

TR1 TR2 TR3 TR4 TR5
TR1 2 5 1 6
TR2 3 4 2 5
TR3 4 2 3 4
TR4 5 3 6 5
TR5 4 4 4 3

Resolver el problema de determinar cul es el menor tiempo posible para
completar los 5 trabajos y cmo hacerlo. Se considera un ciclo de trabajo
cerrado, que se repite y vuelve a comenzar.

$TITLE Secuenciacin de rdenes de trabajo

* La segunda formulacin evita subciclos de parejas de trabajos

SETS
I trabajos que se van a ejecutar / TR1 * TR5 /

ALIAS (i,j)

TABLE C(i,j) tiempo de ajuste para pasar del trabajo i al trabajo j
I OPTIMIZACIN
19/01/04 75
TR1 TR2 TR3 TR4 TR5
TR1 2 5 1 6
TR2 3 4 2 5
TR3 4 2 3 4
TR4 5 3 6 5
TR5 4 4 4 3

VARIABLES
X(i,j) paso del trabajo i al trabajo j
TT tiempo total en completar los trabajos

BINARY VARIABLE X

EQUATIONS
TIEMPO tiempo total de trabajo
ANTERIOR(i) de cada trabajo se parte una vez
POSTERIOR(j) a cada trabajo se llega una vez
PAREJAS(i,j) suma de los trabajos por parejas ;

TIEMPO .. TT =E= SUM[(i,j) $(NOT SAMEAS(i,j)), C(i,j)*X(i,j)] ;
ANTERIOR(i) .. SUM[j $(NOT SAMEAS(i,j)), X(i,j)] =E= 1 ;
POSTERIOR(j) .. SUM[i $(NOT SAMEAS(i,j)), X(i,j)] =E= 1 ;
PAREJAS(i,j) $(ORD(i) < ORD(j)) .. X(i,j) + X(j,i) =L= 1 ;

MODEL AJUSTE1 / TIEMPO, ANTERIOR, POSTERIOR /
MODEL AJUSTE2 / TIEMPO, ANTERIOR, POSTERIOR, PAREJAS /

SOLVE AJUSTE1 USING MIP MINIMIZING TT

* nmero de restricciones de parejas son C(5,2)=10

SOLVE AJUSTE2 USING MIP MINIMIZING TT
I.4.2.4. Ejemplo del viajante de comercio
Veamos tres posibles formulaciones del problema del viajante de comercio
escritas en GAMS. La primera formulacin es la denominada de Miller, Tucker
y Zemlin

{ }
,
,
min
1
1
[card( ) 1] card( ) 2 ,
0,1 , 0
ij i
ij ij
x u
i j
ij
i
ij
j
i j ij
ij i
c x
x j
x i
u u i x i i j
x u
=
=
+

(1.13)
y las dos ltimas a las presentadas previamente en la seccin I.3.2 de
formulacin de problemas de optimizacin lineal entera.

$TITLE Problema del viajante de comercio

SETS
I Ciudades
K Etapas

ALIAS(I,J,R,S)

PARAMETER
COSTE(i,j) Coste de ir de la ciudad i a la ciudad j []

VARIABLE
FOBJ Funcin objetivo []

BINARY VARIABLES
X1(i,j) Indica si se viaja de la ciudad i a la ciudad j
X2(i,j,k) Indica si se viaja de la ciudad i a la ciudad j en la etapa k

POSITIVE VARIABLE
I.4 CODIFICACIN DE PROBLEMAS DE OPTIMIZACIN
76 19/01/04
U(i) Etapa en que se visita una cierta ciudad

EQUATIONS
E_FOBJ1 Funcin objetivo
E_ORIGEN1(i) Cada ciudad es origen una sola vez
E_DESTINO1(j) Cada ciudad es destino una sola vez
E_SUBCICLO1(i,j) Restricciones para eliminar subciclos
E_SUBCICLO2(i,j) Restricciones para eliminar subciclos de orden 2
E_SUBCICLO3(i,j,r) Restricciones para eliminar subciclos de orden 3
E_SUBCICLO4(i,j,r,s) Restricciones para eliminar subciclos de orden 4

E_FOBJ2 Funcin objetivo
E_ORIGEN2(i) Cada ciudad es origen una sola vez
E_DESTINO2(j) Cada ciudad es destino una sola vez
E_ETAPA(k) En cada etapa se hace slo un recorrido
E_ORIG_DEST(j,k) La ciudad destino en k es origen en k+1 ;

E_FOBJ1 .. FOBJ =E= SUM[(i,j) $(NOT SAMEAS(i,j)), COSTE(i,j) * X1(i,j)];

E_ORIGEN1(i) .. SUM[j $(NOT SAMEAS(i,j)), X1(i,j)] =E= 1;

E_DESTINO1(j) .. SUM[i $(NOT SAMEAS(i,j)), X1(i,j)] =E= 1;

E_SUBCICLO1(i,j) $(ORD(i) > 1 AND ORD(j) > 1 AND NOT SAMEAS(i,j)) ..
U(i) - U(j) + [CARD(i) - 1] * X1(i,j) =L= CARD(i) - 2;

E_SUBCICLO2(i,j) $(NOT SAMEAS(i,j)) .. X1(i,j) + X1(j,i) =L= 1;

E_SUBCICLO3(i,j,r) $(NOT SAMEAS(i,j) AND NOT SAMEAS(j,r) AND NOT SAMEAS(r,i)) ..
X1(i,j) + X1(j,r) + X1(r,i) =L= 2;

E_SUBCICLO4(i,j,r,s) $(NOT SAMEAS(i,j) AND NOT SAMEAS(j,r) AND NOT SAMEAS(r,i) AND
NOT SAMEAS(r,s) AND NOT SAMEAS(s,i) AND NOT SAMEAS(s,j)) ..
X1(i,j) + X1(j,r) + X1(r,s) + X1(s,i) =L= 3;

E_FOBJ2 .. FOBJ =E= SUM[(i,j,k) $(NOT SAMEAS(i,j)), COSTE(i,j) * X2(i,j,k)];

E_ORIGEN2(i) .. SUM[(j,k) $(NOT SAMEAS(i,j)), X2(i,j,k)] =E= 1;

E_DESTINO2(j) .. SUM[(i,k) $(NOT SAMEAS(i,j)), X2(i,j,k)] =E= 1;

E_ETAPA(k) .. SUM[(i,j) $(NOT SAMEAS(i,j)), X2(i,j,k)] =E= 1;

E_ORIG_DEST(j,k) .. SUM[i $(NOT SAMEAS(i,j)), X2(i,j,k)] =E=
SUM[r $(NOT SAMEAS(j,r)), X2(j,r,k ++ 1)];

MODEL TSP1 / E_FOBJ1, E_ORIGEN1, E_DESTINO1, E_SUBCICLO1 /

MODEL TSP1B / E_FOBJ1, E_ORIGEN1, E_DESTINO1, E_SUBCICLO2, E_SUBCICLO3, E_SUBCICLO4 /

MODEL TSP2 / E_FOBJ2, E_ORIGEN2, E_DESTINO2, E_ETAPA, E_ORIG_DEST /

********************************************************************************
* Caso ejemplo: Schrage (1997) p. 319
* Esta informacin se podra introducir mediante ficheros de texto
* utilizando la instruccin $INCLUDE nombrefichero

SETS
I Ciudades
/ Atl, Chi, Cin, Hou, LA, Mon, NY, Phi, Pit, StL, SD, SF /

K Etapas
/ 1 * 12 /

TABLE COSTE(i,j) Coste de ir de la ciudad i a la ciudad j []
Atl Chi Cin Hou LA Mon NY Phi Pit StL SD SF
Atl 0 702 454 842 2396 1196 864 772 714 554 2363 5679
Chi 702 0 324 1093 2136 764 845 764 459 294 2184 2187
Cin 454 324 0 1137 2180 798 664 572 284 338 2228 2463
Hou 842 1093 1137 0 1616 1857 1706 1614 1421 799 1521 2021
LA 2396 2136 2180 1616 0 2900 2844 2752 2464 1842 95 405
Mon 1196 764 798 1857 2900 0 396 424 514 1058 2948 2951
NY 864 845 664 1706 2844 396 0 92 386 1002 2892 3032
Phi 772 764 572 1614 2752 424 92 0 305 910 2800 2951
Pit 714 459 284 1421 2464 514 386 305 0 622 2512 2646
StL 554 294 338 799 1842 1058 1002 910 622 0 1890 2125
SD 2363 2184 2228 1521 95 2948 2892 2800 2512 1890 0 500
SF 2679 2187 2463 2021 405 2951 3032 2951 2646 2125 500 0 ;

COSTE(i,j) = COSTE(i,j) / 1e3 ;

U.UP(i) = CARD(i) ;

OPTION OPTCR = 0

* Orden de ejecucin

SOLVE TSP1 USING MIP MINIMIZING FOBJ
I OPTIMIZACIN
19/01/04 77
DISPLAY X1.L, U.L

SOLVE TSP1B USING MIP MINIMIZING FOBJ
DISPLAY X1.L

SOLVE TSP2 USING MIP MINIMIZING FOBJ
DISPLAY X2.L
I.4.2.5. Ejemplo de asignacin de grupos trmicos
El problema de la asignacin de grupos trmicos de produccin de
electricidad consiste en la decisin de qu grupos trmicos hay que acoplar en
cada hora del da (o semana) de manera que:

Se minimicen los costes variables de generacin (incluyendo costes de
combustible y costes de arranque y parada)
Se suministre la demanda en cada hora
Se mantenga un cierto nivel de reserva rodante
Se respeten los parmetros de funcionamiento de los grupos trmicos
(mnimos tcnicos, potencia nominal, rampas de subida y bajada)

Datos
h
D demanda trmica en la hora h [MW]
R coeficiente de reserva rodante con respecto a la demanda [p.u.]

t
a trmino lineal del coste de combustible del grupo trmico t [/MWh]
t
b trmino fijo del coste de combustible del grupo trmico t [/h]
t
ca coste de arranque del grupo trmico t []
t
cp coste de parada del grupo trmico t []
t
P potencia mxima del grupo trmico t [MW]
t
P potencia mnima del grupo trmico t [MW]
t
rs rampa de subida del grupo trmico t [MW/h]
t
rb rampa de bajada del grupo trmico t [MW/h]

Variables
ht
P potencia producida por el grupo trmico t en la hora h [MW]
ht
A acoplamiento del grupo trmico t en la hora h [0,1]
ht
AR arranque del grupo trmico t en la hora h [0,1]
ht
PR parada del grupo trmico t en la hora h [0,1]

( )
1 1
min
H T
t ht t ht t ht t ht
h t
a P b A ca AR cp PR
= =
+ + +



I.4 CODIFICACIN DE PROBLEMAS DE OPTIMIZACIN
78 19/01/04
1
1
1
1
1

( )
2
( 1)
( 1)
( 1)
T
ht h
t
T
t ht ht h
t
t ht ht t ht
ht h t ht ht
ht h t t
h t ht t
P D H
PA P RD H
P A P PA HT
A A AR PR H T
P P rs H T
P P rb H T
=
=

=
=

=



0
ht
P { } , , 0,1
ht ht ht
A AR PR

$TITLE ASIGNACIN HORARIA DE GRUPOS TRMICOS

SETS
T grupos trmicos /GALICIA, CATALUNA, MADRID, VALENCIA,
EXTREMAD, ANDALUCI, CASTLEON/
H hora h /h1 * h5/

SCALAR
r porcentaje de reserva rodante sobre la demanda [p.u.] /0.2/

PARAMETERS
d(h) demanda cada hora [MW]
/h1 1000 , h2 1400 , h3 2400 , h4 2000 , h5 1000/
pmax(t) pot mxima de cada trmico [MW]
/GALICIA 400, CATALUNA 500, MADRID 700, VALENCIA 400,
EXTREMAD 300, ANDALUCI 800, CASTLEON 800/
pmin(t) pot mnima de cada trmico [MW]
/GALICIA 100, CATALUNA 150, MADRID 150, VALENCIA 50,
EXTREMAD 50, ANDALUCI 400, CASTLEON 200 /
rs(t) rampa de subida [MW por hora]
/GALICIA 200, CATALUNA 300, MADRID 500, VALENCIA 300,
EXTREMAD 100, ANDALUCI 500, CASTLEON 400/
rb(t) rampa de bajada [MW por hora]
/GALICIA 300, CATALUNA 300, MADRID 200, VALENCIA 100,
EXTREMAD 100, ANDALUCI 500, CASTLEON 400/
c(t) coste lineal de produccin [ por MWh]
/GALICIA 4, CATALUNA 4, MADRID 4, VALENCIA 4,
EXTREMAD 3, ANDALUCI 2, CASTLEON 7/
b(t) coste fijo de produccin []
/GALICIA 50, CATALUNA 30, MADRID 30, VALENCIA 25,
EXTREMAD 30, ANDALUCI 80, CASTLEON 70/
ca(t) coste de arranque
/GALICIA 10, CATALUNA 20, MADRID 10, VALENCIA 15,
EXTREMAD 20, ANDALUCI 10, CASTLEON 15/
cp(t) coste de parada
/GALICIA 5, CATALUNA 10, MADRID 5, VALENCIA 10,
EXTREMAD 5, ANDALUCI 15, CASTLEON 10/

VARIABLES
CT coste variable total del sistema [M]
A(t,h) acoplamiento del grupo t a las h horas [0-1]
AR(t,h) arranque del grupo t a las h horas [0-1]
PR(t,h) parada del grupo t a las h horas [0-1]
P(t,h) generacin producida por el grupo t a las h horas [MW]

BINARY VARIABLE A,AR,PR
POSITIVE VARIABLE P

EQUATIONS
COSTE costes variables de generacin-funcin objetivo []
DEMANDA(h) abastecimiento de la demanda [MW]
RESERVA(h) reserva rodante del sistema [MW]
COTASUP(t,h) cota superior de produccin del grupo t [MW]
COTAINF(t,h) cota inferior de produccin del grupo t [MW]
RAMPASUB(t,h) limitacin de rampa de subida del grupo t [MW]
RAMPABAJ(t,h) limitacin de rampa de bajada del grupo t [MW]
LOGICA(t,h) relacin lgica entre variables de acoplamiento arranque y parada ;

COSTE .. CT =E= SUM[(T,H), c(t)*P(t,h)+b(t)*A(t,h)+ca(t)*AR(t,h)+cp(t)*PR(t,h)] ;

I OPTIMIZACIN
19/01/04 79
DEMANDA(h) .. SUM[T, P(t,h)] =E= d(h) ;

RESERVA(h) .. SUM[T, A(t,h)*pmax(t)-P(t,h)] =G= d(h)*r;

COTASUP(t,h) .. P(t,h) =L= pmax(t)*A(t,h);

COTAINF(t,h) .. P(t,h) =G= pmin(t)*A(t,h);

RAMPASUB(t,h) .. P(t,h)-P(t,h-1) =L= rs(t);

RAMPABAJ(t,h) .. P(t,h-1)-P(t,h) =L= rb(t);

LOGICA(t,h) .. A(t,h)-A(t,h-1) =E= AR(t,h)-PR(t,h);

MODEL ASIGNA /COSTE,DEMANDA,RESERVA,COTASUP,COTAINF,RAMPASUB,RAMPABAJ,LOGICA/ ;

P.UP(t,h) = pmax(t)

OPTION OPTCR = 0

SOLVE ASIGNA USING MIP MINIMIZING CT
I.4.2.6. Ejemplo de flujo de cargas ptimo
Veamos a continuacin la formulacin de un ejemplo de sistemas de energa
elctrica. En particular, se trata de un flujo de cargas ptimo en corriente
continua con y sin prdidas hmicas que se formula como un problema de
optimizacin lineal y no lineal dependiendo de la consideracin o no de las
prdidas. Este ejemplo ilustra alguna caracterstica muy interesante del GAMS
como son los conjuntos dinmicos y su uso para restringir las variables y
ecuaciones del problema. Aunque no se entienda el significado fsico del
problema por carecer de los conocimientos adecuados en sistemas de energa
elctrica su formulacin en GAMS se puede seguir sin dificultad.
La estructura general de un modelo de optimizacin escrito en GAMS se
presenta en la tabla 1.2. Esta estructura es la que se ha empleado en este caso
ejemplo.

ndices y parmetros Todos los ndices y parmetros del modelo se
declaran al comienzo del mismo. Se inicializarn
a sus valores por omisin aquellos que sea
necesario.
Variables Definicin de las variables segn sean positivas,
libres, binarias, etc.
Ecuaciones Declaracin y definicin de las restricciones. Se
controlar con cuidado las condiciones de validez
u ocurrencia de las mismas.
Modelo Declaracin de las ecuaciones que componen el
modelo.
Inclusin y manipulacin
de datos de entrada
Los datos de entrada se introducen desde ficheros
independientes, despus se realizan los clculos de
parmetros auxiliares dependientes de los datos
de entrada.
I.4 CODIFICACIN DE PROBLEMAS DE OPTIMIZACIN
80 19/01/04
Acotamiento e
inicializacin de variables
Acotamiento de las variables a sus cotas fsicas e
inicializacin cuando tenga sentido.
Resolucin del problema de
optimizacin

Presentacin de resultados Presentacin de los resultados elaborados a partir
de la solucin del problema de optimizacin.

Tabla 1.2 Estructura de un modelo de optimizacin en GAMS.

Se trata de minimizar los costes variables de operacin en un intervalo
horario unitario compuestos por los costes variables de los grupos trmicos, los
costes de oportunidad de los grupos hidrulicos cuando producen por encima de
su potencia programada y el coste variable de la potencia no suministrada.
1 1 1
T H N
t t h h n n
t h n
v GTR v GHE v PNS
= = =
+ +


siendo datos
t
v el coste variable unitario de generacin del grupo trmico t ,
h
v
el coste de oportunidad unitario de la hidrulica de emergencia h y
n
v el coste
variable unitario de la potencia no suministrada en el nudo n . Las variables
son:
t
GTR potencia producida por el grupo trmico t ,
h
GHE potencia
hidrulica de emergencia del grupo hidrulico h y
n
PNS potencia no
suministrada en el nudo n . T , H y N son todos los grupos trmicos,
hidrulicos y nudos del sistema respectivamente.
Las restricciones que condicionan este problema se muestran a continuacin.
La primera ley de Kirchhoff que establece el balance entre generacin y
demanda en cada nudo:
1 1
( )
I J
t h h n i n n j n
t n h n i j
GTR GHP GHE PNS F F D

= =
+ + + + =


siendo t n , h n los grupos trmicos e hidrulicos localizados en el nudo n ,
h
GHP es la variable potencia hidrulica programada del grupo hidrulico h ,
i j
F

es la variable flujo de potencia que va del nudo i al nudo j y


n
D
corresponde al dato de la demanda de potencia en el nudo n .
La segunda ley de Kirchhoff nos dice que el flujo por una lnea es
proporcional a la diferencia de los ngulos de tensin de sus nudos extremos:
i j
i j i j
B
X
F
S

=
I OPTIMIZACIN
19/01/04 81
donde se conocen
i j
X

es la reactancia de la lnea que une los nudos i y j y
B
S es la potencia base del sistema y
i
es la variable de ngulo de tensin del
nudo i .
Algunas variables del problema estn acotadas entre ciertos valores. La
potencia trmica producida de cada grupo t se encuentra entre su valor mnimo
t
GTR y mximo
t
GTR .
t t t
GTR GTR GTR
La potencia hidrulica programada de cada grupo h puede tomar como
valor mximo
h
GHP , valor dado por un programa de coordinacin hidrotrmica
de jerarqua superior.
0
h h
GHP GHP
La potencia hidrulica de emergencia de cada grupo h puede alcanzar como
mximo el valor
( )
h h
GHM GHP , es decir, la potencia mxima del grupo menos
su potencia programada.
( )
0
h h h
GHE GHM GHP
La potencia no suministrada como mucho ser la demanda del nudo.
0
n n
PNS D
El flujo por la lnea est acotado en valor absoluto por
i j
F

.
i j i j i j
F F F


Adems de la formulacin anterior, se presenta otra donde se eliminan las
variables de flujo y se sustituyen por la expresin de la segunda ley de Kirchhoff
en funcin de los ngulos. La ecuacin de balance entre generacin y demanda
tiene ahora esta formulacin
1 1
( )
( ) / ( ) /
t h h n
t n h n
I J
i n B i n n j B n j n
i j
GTR GHP GHE PNS
S X S X D


= =
+ + + +
=



y las cotas de las variables de flujo se transforman ahora en restricciones
i j
i j i j
B
X
F
S


i j
i j i j
B
X
F
S


I.4 CODIFICACIN DE PROBLEMAS DE OPTIMIZACIN
82 19/01/04
En la primera formulacin se tienen ms variables pero menos restricciones
6

que en la segunda y el nmero total de elementos no nulos de la matriz de
restricciones ser menor.
En el cdigo escrito en GAMS se aade, adems, una formulacin del flujo
de cargas ptimo en corriente continua con prdidas hmicas. Las prdidas
hmicas de una lnea se modelan con una expresin no lineal en funcin del
coseno de la diferencia angular. Esto convierte el problema de optimizacin en
no lineal.
i 2 2
2 1 cos( )
i j i j
i j
i j B j
r
L S
r X

l
=
l
+

siendo
i j
r

la resistencia de la lnea que une los nudos i y j .


stas se incluyen como dos cargas adicionales iguales en los extremos de la
lnea. La primera ley de Kirchhoff tiene ahora esta expresin
1 1
( )
I J
t h h n i n n j n n
t n h n i j
GTR GHP GHE PNS F F D L

= =
+ + + + = +


siendo
n
L las prdidas en el nudo n
1 1
/2
I J
n i n n j
i j
L L L

= =
1

= +


( )


$TITLE Flujo de cargas en corriente continua con y sin prdidas

SETS
ND nudos
GR generadores
TR(gr) generadores trmicos
HD(gr) generadores hidrulicos
NDGR(nd,gr) localizacin de generadores en nudos
LN(nd,nd) lneas

CN caractersticas nudos / dem, cpns /
CG caractersticas generadores / coste, pmin, pmax, cshd, hdrpro, hdrmax /
CL caractersticas lneas / r, x, flmax /

ALIAS (nd, ni, nf) ;

SCALARS
SBASE potencia base [GW] / 0.1 /
OPCPRD opcin de modelado de las prdidas (no 0 si 1) / 0 /

* definicin de la estructura de datos sin incluir explcitamente stos

PARAMETERS
DATNUD(nd,cn) datos de los nudos
DATGEN(gr,cg) datos de los generadores
DATLIN(nd,nd,cl) datos de las lneas

* planteamiento matemtico del problema

VARIABLES
COSTE funcin objetivo [M]
TT(nd) ngulo de tensin en el nudo [rad]
FL(ni,nf) flujo de potencia [GW]

POSITIVE VARIABLES
GTR(gr) generacin trmica [GW]

6
Las cotas en las variables no cuentan como restricciones desde el punto de vista del tiempo
de clculo, ya que los algoritmos de optimizacin las tratan de forma especfica.
I OPTIMIZACIN
19/01/04 83
GHP(gr) generacin hidrulica programada [GW]
GHE(gr) generacin hidrulica de emergencia [GW]
PNS(nd) potencia no suministrada [GW]
PRDAS(nd) prdidas de las lneas conectadas al nudo [GW]

EQUATIONS
FO costes de generacin y de indisponibilidad [M]
KR1F(nd) primera ley de Kirchhoff para cada nudo en funcin de flujos
KR1A(nd) primera ley de Kirchhoff para cada nudo en funcin de ngulos
FLJ(ni,nf) flujo en funcin de ngulos de tensin
FLJP(ni,nf) diferencia angular mxima en cada lnea en un sentido
FLJN(ni,nf) diferencia angular mxima en cada lnea en otro sentido
EPRDAS(nd) prdidas de las lneas conectadas al nudo ;

FO .. COSTE =E= SUM[tr, DATGEN(tr,'coste') * GTR(tr)]
+ SUM[hd, DATGEN(hd,'cshd') * GHE(hd)]
+ SUM[nd, DATNUD(nd,'cpns') * PNS(nd)] ;

KR1F(nd) ..
SUM[NDGR(nd,tr), GTR(tr)] + SUM[NDGR(nd,hd), GHP(hd) + GHE(hd)]
+ SUM[LN(ni,nd), FL(ni,nd)] - SUM[LN(nd,nf), FL(nd,nf)]
+ PNS(nd) =E= DATNUD(nd,'dem') + PRDAS(nd) $OPCPRD ;

KR1A(nd) ..
SUM[NDGR(nd,tr), GTR(tr)]
+ SUM[NDGR(nd,hd), GHP(hd) + GHE(hd)]
+ SUM[LN(ni,nd), (TT(ni) - TT(nd)) / DATLIN(ni,nd,'x')] * SBASE
- SUM[LN(nd,nf), (TT(nd) - TT(nf)) / DATLIN(nd,nf,'x')] * SBASE
+ PNS(nd) =E= DATNUD(nd,'dem') + PRDAS(nd) $OPCPRD ;

FLJ(LN(ni,nf)) .. FL(ni,nf) * DATLIN(ni,nf,'x') / SBASE =E= TT(ni) - TT(nf) ;

FLJP(LN(ni,nf)) ..
TT(ni) - TT(nf) =L= DATLIN(ni,nf,'flmax') * DATLIN(ni,nf,'x') / SBASE ;

FLJN(LN(ni,nf)) ..
TT(ni) - TT(nf) =G= - DATLIN(ni,nf,'flmax') * DATLIN(ni,nf,'x') / SBASE ;

EPRDAS(nd) .. PRDAS(nd) =E=
SBASE * SUM[LN(ni,nd), (1-cos(TT(ni) - TT(nd)))*
DATLIN(ni,nd,'r')/(DATLIN(ni,nd,'r')**2+DATLIN(ni,nd,'x')**2)]
+ SBASE * SUM[LN(nd,nf), (1-cos(TT(nd) - TT(nf)))*
DATLIN(nd,nf,'r')/(DATLIN(nd,nf,'r')**2+DATLIN(nd,nf,'x')**2)] ;

MODEL FC / FO, KR1F, FLJ / ;
MODEL FCA / FO, KR1A, FLJP, FLJN / ;
MODEL FCP / FO, KR1F, FLJ, EPRDAS / ;

* caso de estudio
*** esta parte ira en ficheros independientes y se introducira con $include

SETS
ND nudos / nudo-1 * nudo-9 /
GR generadores / genr-1 * genr-9, genh-1 * genh-4 /
NDGR(nd,gr) localizacin de generadores en nudos
/
nudo-1 . genr-1
nudo-1 . genr-2
nudo-1 . genr-3
nudo-2 . genr-4
nudo-2 . genr-5
nudo-2 . genr-6
nudo-3 . genr-7
nudo-3 . genr-8
nudo-3 . genr-9
nudo-1 . genh-1
nudo-3 . genh-2
nudo-6 . genh-3
nudo-8 . genh-4
/ ;

TABLE DATNUD(nd,cn) datos de los nudos
dem cpns
* MW /kWh
nudo-1 1 1500
nudo-2 240 1500
nudo-3 40 1500
nudo-4 160 1500
nudo-5 240 1500
nudo-6 80 1500
nudo-7 100 1500
nudo-8 15 1500
nudo-9 100 1500

TABLE DATGEN(gr,cg) datos de los generadores
coste pmin pmax cshd hdrpro hdrmax
* /MWh MW MW /kWh MW MW
genr-1 65 0 75
I.4 CODIFICACIN DE PROBLEMAS DE OPTIMIZACIN
84 19/01/04
genr-2 70 30 125
genr-3 75 10 100
genr-4 59 10 100
genr-5 67 0 50
genr-6 74 0 50
genr-7 61 10 100
genr-8 76 0 50
genr-9 80 0 50
genh-1 10 300 300
genh-2 10 150 160
genh-3 10 120 150
genh-4 10 90 100

TABLE DATLIN(ni,nf,cl) datos de las lneas
r x flmax
* p.u. p.u. MW
nudo-1 . nudo-2 0.0777 0.2913 500
nudo-1 . nudo-4 0.0544 0.2041 500
nudo-2 . nudo-3 0.0424 0.1695 500
nudo-2 . nudo-4 0.1 0.4 500
nudo-2 . nudo-5 0.05 0.2 500
nudo-2 . nudo-6 0.1 0.4 500
nudo-3 . nudo-5 0.0248 0.099 500
nudo-3 . nudo-8 0.1 0.4 500
nudo-4 . nudo-6 0.15 0.6 500
nudo-5 . nudo-6 0.05 0.2 500
nudo-5 . nudo-8 0.1 0.4 500
nudo-6 . nudo-7 0.15 0.6 500
nudo-6 . nudo-9 0.05 0.2 500
nudo-7 . nudo-9 0.05 0.2 500 ;

*** hasta aqu son ficheros independientes

* activacin de generadores trmicos hidrulicos y lneas

TR(gr) $DATGEN(gr,'pmax') = YES ;
HD(gr) $DATGEN(gr,'hdrpro') = YES ;
LN(ni,nf) $DATLIN(ni,nf,'x') = YES ;

* escalacin de datos de potencia a GW

DATNUD(nd,'dem') = DATNUD(nd,'dem') / 1e3 ;
DATGEN(tr,'pmin') = DATGEN(tr,'pmin') / 1e3 ;
DATGEN(tr,'pmax') = DATGEN(tr,'pmax') / 1e3 ;
DATGEN(hd,'hdrpro') = DATGEN(hd,'hdrpro') / 1e3 ;
DATGEN(hd,'hdrmax') = DATGEN(hd,'hdrmax') / 1e3 ;
DATLIN(ln,'flmax') = DATLIN(ln,'flmax') / 1e3 ;

* acotamiento de las variables (cotas fsicas)

GTR.LO(tr) = DATGEN(tr,'pmin') ;
GTR.UP(tr) = DATGEN(tr,'pmax') ;

GHP.UP(hd) = DATGEN(hd,'hdrpro') ;
GHE.UP(hd) = DATGEN(hd,'hdrmax') - DATGEN(hd,'hdrpro') ;

PNS.UP(nd) = DATNUD(nd,'dem') ;

FL.LO(ln) = - DATLIN(ln,'flmax') ;
FL.UP(ln) = DATLIN(ln,'flmax') ;

* cotas algortmicas de los ngulos

TT.LO(nd) = - 1.5 ;
TT.UP(nd) = 1.5 ;

* nudo de referencia

TT.FX(nd) $(ORD(nd) EQ 1) = 0 ;

* opcin sin prdidas

OPCPRD = 0 ;

* flujo de cargas con variables de flujo

SOLVE FC USING LP MINIMIZING COSTE ;

* control sobre aprovechamiento de base previa

OPTION BRATIO = 1 ;

* flujo de cargas con variables de ngulos de tensin

SOLVE FCA USING LP MINIMIZING COSTE ;

* opcin con prdidas

I OPTIMIZACIN
19/01/04 85
OPCPRD = 1 ;

* flujo de cargas con variables de flujo

SOLVE FCP USING NLP MINIMIZING COSTE ;
I.4.3. Elementos de estilo de programacin
(DOCT)

En los ltimos aos se ha reconocido la programacin de computadores
como una disciplina cuyo dominio es bsico y crucial para el xito de muchos
proyectos de ingeniera Niklaus Wirth (1976).
I.4.3.1. Generales
La programacin no es un castigo divino para los humanos, es ciencia y arte.
Es ciencia en la medida que se pueden implantar modelos matemticos
complejos y que el pensamiento, la disciplina, la rigurosidad y la
experimentacin acompaan este desarrollo. El resultado es arte por la belleza,
elegancia, sensacin que puede transmitir un modelo y la profesionalidad de su
creador.
Una forma de aprender a escribir con estilo y estructura ordenada es
mediante la lectura de ejemplos ilustrativos o de cdigo ajeno. Una manera de
programar es por refinamiento gradual de los detalles. Es importante recordar
que en el desarrollo de una aplicacin el diablo se esconde en los detalles.
La potencia y concisin de los modelos escritos en un lenguaje de modelado
hacen que el propio cdigo forme parte de la documentacin. De hecho la
reutilizacin de modelos fue una de las causas que dieron origen a los lenguajes
de modelado. La etapa de diseo del modelo cobra gran importancia para
permitir posteriores ampliaciones. Por esta razn es importante el estilo en la
programacin, que incide en la calidad y mantenibilidad
7
del cdigo desarrollado.
Pinsese que el tiempo dedicado a mantenimiento y ampliacin de un modelo es
muy superior al inicial de desarrollo. El desarrollo y la depuracin del modelo se
debe hacer con una maqueta (caso ejemplo sencillo) para finalmente utilizar un
problema real.
He aqu algunas recomendaciones para la escritura de un modelo que inciden
en la calidad del desarrollo:

MODULARIDAD
Estructurar el modelo en diversos mdulos con diferentes propsitos. Por
ejemplo, la inclusin de los datos
8
y la escritura de resultados deben separarse en
diferentes ficheros que son convenientemente insertados mediante la instruccin

7
Se entiende por mantenibilidad la reutilizacin, reparacin o modificacin de un modelo.
8
Se recomienda la introduccin de los datos tal como son recogidos y entendidos por el
usuario y se hacen en el modelo los clculos auxiliares que sean necesarios.
I.4 CODIFICACIN DE PROBLEMAS DE OPTIMIZACIN
86 19/01/04
$include en el mdulo principal, que contiene la formulacin del problema de
optimizacin.
Utilizacin de las entidades (parmetros, escalares, etc.) con el mismo
propsito y significado en las diferentes partes del cdigo. Es decir, mantener la
definicin y uso de cada parmetro y escalar en todo el cdigo para evitar la
confusin del lector.
Comprobacin de la pertenencia de un subconjunto a un conjunto de forma
explcita en su definicin, es decir, evitar el uso de ndices comodn en vectores y
matrices. Esta es una manera de validar y evitar errores en la introduccin de
los datos.

ESCRIBIR CDIGO PARA FACILITAR SU LECTURA
Estas otras recomendaciones estn orientadas al cuidado exquisito de la
esttica. Es el primer paso en el desarrollo profesional de un modelo. Son
fundamentales, aunque aparentemente carecen de importancia para el
desarrollador, pero se hacen imprescindibles para su mantenimiento y
ampliacin. El cdigo debe ser limpio y claro para que pueda ser mantenido.
Mantener una coherencia en las reglas de escritura, de manera que se
observe una norma sistemtica en todo el cdigo. Por ejemplo, endentacin en
las instrucciones repetitivas, sangra de tres espacios cada vez que se realiza una
instruccin tipo LOOP, IF. Las palabras reservadas del lenguaje van en
maysculas (LOOP, IF, THEN, ELSE, SET, SCALAR, PARAMETER, TABLE, etc.). La
coma del final de instruccin va separada por un blanco. El signo de igualdad en
las asignaciones se separa por espacios en blanco a ambos lados.
Establecer paralelismos o rplicas entre instrucciones consecutivas
semejantes.
Las lneas de cdigo deben tener una longitud aproximada de 100 columnas,
no sobrepasando nunca las 110. Romper la instruccin en cuantas lneas sea
necesario para cumplir esta recomendacin.
Los comentarios deben ser suficientemente ilustrativos del contenido y estar
bien localizados. Deben ayudar a documentar la naturaleza y origen de los datos
Se deben utilizar nombres largos y descriptivos para las entidades del
modelo.
Los nombres y los ndices de los parmetros, variables y ecuaciones han de
ser acrnimos que representen su significado. Se recomienda una longitud de
hasta 10 caracteres para los primeros y de hasta 2 para los segundos. Los
comentarios explicativos pueden hacerse de hasta 80 caracteres.
Las definiciones de las entidades del modelo deben llevar las dimensiones
fsicas del problema.
I OPTIMIZACIN
19/01/04 87
Hacer un uso sistemtico de maysculas y minsculas con algn criterio
predefinido, que debe ser coherente y mantenerse a lo largo de todo el
programa. Por ejemplo, los nombres de los parmetros, variables y ecuaciones
van en maysculas. Los nombres de sus ndices van en minsculas.

REFORMULACIN MANUAL DEL PROBLEMA
Un primer estadio en la formulacin de un problema est en la eleccin de la
propia formulacin. A veces se pueden utilizar formulaciones semejantes con
coste computacional muy diferente. Por ejemplo, para la representacin de las
prdidas en un circuito elctrico se puede utilizar una funcin no lineal o una
poligonal aproximada. Habitualmente la formulacin poligonal convexa requiere
mucho menos tiempo.
Diferentes formulaciones matemticamente equivalentes de un mismo
problema de optimizacin pueden requerir tiempos de optimizacin muy
distintos. Esta afirmacin es especialmente relevante en problemas de
programacin lineal entera mixta y programacin no lineal. Por esta razn,
siempre es conveniente un ejercicio continuo de experimentacin y reformulacin
de los problemas.
Veamos estas tres formulaciones de un problema NLP
1 1
1
0
1
min
1
n n
ij i j
i j i
n
j
j
n
j j
j
q x x
x
r x r
= = +
=
=
=
=


1 1
1
0
1
min
1
n n
i ij j
i j i
n
j
j
n
j j
j
x q x
x
r x r
= = +
=
=
=
=


I.4 CODIFICACIN DE PROBLEMAS DE OPTIMIZACIN
88 19/01/04
1
1
1
0
1
min
1
n
i i
i
n
i ij j
j i
n
j
j
n
j j
j
x w
w q x
x
r x r
=
= +
=
=
=
=
=


La ventaja de la formulacin segunda con respecto a la primera es
inmediata. La formulacin 1 requiere para evaluar la funcin objetivo
aproximadamente 2
2
n
n multiplicaciones. En la formulacin 2 se necesitan
2
n
n n + aproximadamente. La tercera formulacin tiene esencialmente las
mismas multiplicaciones pero aparecen en restricciones lineales. El nmero de
restricciones aumenta sustancialmente pero todas son lineales y los mtodos de
manipulacin de restricciones lineales son extremadamente eficientes. La
formulacin 3 resulta ser la ms eficiente.
De hecho, algunos optimizadores realizan una etapa previa de preproceso
9
del
problema antes de su resolucin (parmetro de control presolve en el
CPLEX). Como ejemplo, el impacto en el tamao de dos problemas LP debido
al preproceso realizado por el optimizador CPLEX 6.0 se muestra en la tabla
1.3.

Caso 1 Caso 2
Restricc. Variables
Elementos
Restricc. Variables Elementos
Sin preproceso 19047 27262 81215 48971 63935 187059
Con preproceso 15744 21982 51079 40794 56133 135361
Decremento 17% 19% 37% 17% 12% 28%

Tabla 1.3 Reduccin de tamaos con la opcin de preproceso.

En la formulacin del problema la opcin profile muestra el tiempo y
memoria consumidos y el nmero de asignaciones realizadas o restricciones
creadas.
Entre las principales consideraciones para mejorar la formulacin de un
problema de optimizacin se pueden citar:


9
El desarrollo de las tcnicas de preproceso y reformulacin han originado avances muy
importantes en la resolucin de problemas MIP.
I OPTIMIZACIN
19/01/04 89
Clculo analtico del nmero de restricciones y variables
ste es una ayuda para ser consciente del tamao esperable del problema y
ver su dependencia en funcin de los elementos bsicos que lo componen. El
nmero real de restricciones para un caso concreto se muestra con la opcin
profile. Puede ser utilizado para detectar errores en la formulacin. Por
ejemplo, por excesivo nmero de ecuaciones al haber puesto dimensiones
superfluas no controladas convenientemente con conjuntos dinmicos.
Es conveniente tambin conocer la estructura de la matriz de restricciones,
es decir, los bloques que la componen. Existe alguna utilidad, citada en el
siguiente apartado, que lo permite hacer.

No crear variables ni ecuaciones superfluas.
Hay que tener cuidado con lo que se entiende por superfluas porque algunas
condiciones redundantes pueden realmente llevar a obtener un modelo ms
fuerte en el contexto de programacin entera. Sin embargo, el conocimiento
de la naturaleza del problema permite introducir condiciones lgicas
(mediante el uso del operador $) que eliminan algunas de ellas en la escritura
de las ecuaciones o de las variables. Por ejemplo, en el caso de una red se
suprimen variables o ecuaciones asociadas a lneas entre nudos no conectados
entre s. Aunque los optimizadores pueden detectar algunas de estas
ecuaciones/variables superfluas, es ms eficiente evitarlo mediante
condiciones expresas.
La opcin solprint=on o la utilidad gamschk puede ayudar en la deteccin
de las variables o ecuaciones superfluas (porque toman valor 0 o conocido
bajo toda circunstancia en la solucin).

Reduccin del nmero de restricciones y/o elementos de la matriz aun a
costa de aumentar el nmero de variables.
Una manera de reducir el nmero de ecuaciones o de variables es
introduciendo expresamente el conocimiento que se tiene del problema real
(casos particulares que pueden aparecer y sus implicaciones). Es ms
conveniente hacerlo manualmente a dejar que lo intente el preproceso del
optimizador.
Se puede hacer mediante sustitucin, definicin de nuevas variables,
reformulacin en general se debe intentar reducir el nmero de restricciones
y/o de elementos de la matriz.
Como norma general para la formulacin de problemas lineales es
conveniente saber que el tiempo necesario para su solucin por el mtodo
simplex depende aproximadamente del cubo del nmero de restricciones, no
siendo demasiado influyente el nmero de variables. En el mtodo de punto
I.4 CODIFICACIN DE PROBLEMAS DE OPTIMIZACIN
90 19/01/04
interior el tiempo de ejecucin depende principalmente del nmero de
elementos (densidad) de la matriz de restricciones.

Escalacin tanto de variables como de coeficientes y valores de restricciones
a nmeros alrededor de 1
Esto mejora el comportamiento numrico en la resolucin del problema y
reduce el tiempo de ejecucin. La escalacin resulta muy conveniente en
problemas LP de gran tamao pero es imprescindible en problemas NLP.
Implcitamente los valores por omisin de los parmetros de control de los
optimizadores estn fijados suponiendo que el problema est bien escalado
alrededor de 1. Con una escalacin razonable puede haber como mucho 6
rdenes de magnitud de diferencia (por ejemplo, coeficientes de las variables
entre 0.001 y 1000). La utilidad gamschk es una herramienta muy til para
observar los intervalos de variacin de los coeficientes de las variables en las
restricciones y de las costas de stas para detectar potenciales problemas de
escalado.
La escalacin se puede hacer manualmente expresando las variables,
parmetros y ecuaciones en unidades naturales con sentido fsico para el
problema o automticamente mediante las opciones disponibles en el
lenguaje (nombre_modelo.scaleopt=1) o en el optimizador (scale). La
escalacin manual requiere ms cuidado y control pero es preferible porque
conserva la naturaleza fsica del problema dentro del cdigo y es igual de
efectiva que la automtica.
En cualquier caso hay que tener cuidado al realizar el escalado,
especialmente en problemas no lineales, donde pueden existir efectos no
lineales que invaliden la nueva formulacin.

Acotamiento de las variables.
Las cotas en las variables no cuentan como restricciones desde el punto de
vista del tiempo de clculo, ya que los algoritmos de optimizacin las tratan
de forma especfica. Las cotas pueden tener sentido fsico (y, por tanto,
forman parte de la naturaleza del problema) o ser algortmicas (es decir,
cotas superfluas que nunca deben ser activas en la solucin ptima pero que
reducen el tiempo de optimizacin).
El preproceso generalmente incluye procedimientos para el fortalecimiento de
las cotas de las variables (reduccin de las cotas superiores y aumento de las
inferiores).

TRATAMIENTO EXPLCITO DE CONJUNTOS ORDENADOS SOSN
I OPTIMIZACIN
19/01/04 91
Los conjuntos ordenados (Special Ordered Sets SOS) son conjuntos de
variables que cumplen las siguientes condiciones:
Como mucho n elementos del conjunto toman valores diferentes de 0. El
resto de elementos ha de ser 0
Si hay n elementos que son diferentes de 0 deben ser contiguos

Los conjuntos ordenados tienen un tratamiento especial en la optimizacin,
por lo que su definicin puede mejorar mucho el tiempo requerido para la
resolucin.

SELECCIN DEL OPTIMIZADOR Y TIPO ALGORITMO DE OPTIMIZACIN
Un lenguaje de modelado permite utilizar diferentes optimizadores para la
resolucin de un mismo problema de optimizacin. Esta caracterstica
representa una gran ventaja por la flexibilidad que aporta en la seleccin del
optimizador ms adecuado a las caractersticas del problema.
En Internet (www-c.mcs.anl.gov/otc/guide/faq/linear-programming.html) y
en la revista OR/MS Today, Fourer (1999), se pueden encontrar opiniones y
revisiones del software disponible para la resolucin de problemas de
optimizacin de todo tipo. Entre los optimizadores a los que se ha tenido acceso
destacan CPLEX y OSL para LP, MINOS y CONOPT para NLP y MILES y
PATH para MCP.
El mejor mtodo para un problema concreto depende de las caractersticas
del problema, de los detalles de implantacin del mtodo simplex o del punto
interior y del ordenador utilizado. Por esta razn los paquetes comerciales de LP
importantes incluyen mtodos de punto interior (habitualmente primal-dual
predictivo-correctivo), mtodos simplex (en su versin primal y dual) y de
resolucin de flujos de redes (simplex de red). Se debe utilizar el mtodo de
optimizacin (punto interior o barrera, simplex primal o simplex dual) ms
adecuado al tipo o tamao del problema.
Como recomendacin general, para problemas de tamao medio (hasta
aproximadamente de 10000 x 10000) el mtodo ms adecuado es el simplex y
para problemas de gran tamao (desde 10000 x 10000 hasta 100000 x 100000) el
mejor mtodo es el de punto interior (especialmente en problemas degenerados).
Para problemas de tamao superior se requiere el uso de tcnicas de
optimizacin especficas (como, por ejemplo, las de descomposicin entre otras
[Ramos, 1996]). La seleccin de un mtodo u otro se debe realizar
principalmente en funcin del tamao del problema. [Bixby, 2000] es un artculo
prctico reciente donde se presentan algunas comparaciones entre mtodos de
solucin del optimizador CPLEX tanto para problemas lineales como enteros
mixtos.
I.4 CODIFICACIN DE PROBLEMAS DE OPTIMIZACIN
92 19/01/04
El mtodo simplex tambin resulta adecuado en la realizacin de anlisis de
sensibilidad, es decir, cuando se trata de resolver problemas similares
disponiendo de una solucin prxima y una base previa, como sucede en el
mtodo de ramificacin y acotamiento para resolver problemas lineales enteros.
A continuacin se presenta la tabla 1.4 de comparacin entre varios
optimizadores y mtodos de optimizacin. En la tabla 1.5 se muestra la
diferencia de funcionamiento entre las opciones de preproceso de dos
optimizadores.

Caso 1 Caso 2
Tiempo ndice Iter. Tiempo ndice Iter.
Punto interior 41.8 1.0 32 237.3 1.0 35
Simplex dual 99.8 1.4 12692 1812.6 6.6 48695

CPLEX 6.0
Simplex primal 156.2 3.7 21622 1217.5 5.1 50280
MINOS 5.3 Simplex primal 1863.6 44.6 23927
Punto interior 163.9 3.9 10798 774.4 3.3 19524
OSL 2.1 Simplex primal 530.9 12.7 12685 7426.6 31.3 62019

Tabla 1.4 Comparacin entre diferentes optimizadores en problemas LP.

Caso 1 Caso 2
Restricc. Variables Elementos Restricc. Variables Elementos
Sin prep 19047 27847 82295 49715 64679 189477
Prep CPLEX 14,8% 19,3% 36,2% 17,9% 13,2% 28,6%
Prep OSL 4,9% 0,0% 2,4% 15,6% 0,0% 9,1%

Tabla 1.5 Comparacin entre diferentes preprocesos.

Las diferencias en tiempo de resolucin que pueden encontrarse entre
mtodos de optimizacin o entre implantaciones de un mismo mtodo llegan a
ser significativas (de hasta 45 veces para una comparacin entre CPLEX 6.0
utilizando un mtodo de punto interior y MINOS 5.3 utilizando el mtodo
simplex para un problema de 19000 restricciones, 28000 variables y 82000
elementos no nulos). Para un mismo mtodo de optimizacin se han encontrado
diferencias de hasta 3 veces entre implantaciones.

UTILIZACIN DE LTIMAS VERSIONES
En general, las ltimas versiones aportan mejoras de tiempo o funcionalidad
con respecto a versiones previas.
I OPTIMIZACIN
19/01/04 93
En particular, una caracterstica muy atractiva de los lenguajes de modelado
es la posibilidad de actualizar la versin del optimizador o cambiar de
optimizador sin necesidad de realizar modificaciones en el cdigo del modelo. Ser
consciente de ello y aprovecharlo forma parte de un uso avanzado del lenguaje.

AJUSTE DE PARMETROS DE CONTROL DEL OPTIMIZADOR
Habitualmente los parmetros de control de un optimizador toman unos
valores por omisin generalmente adecuados para un problema estndar de
optimizacin. Sin embargo, cuando se trata de problemas difciles, como pueden
ser los LP de muy gran tamao o los NLP o MIP, son convenientes pruebas
especficas de ajuste con algunos parmetros. En particular, algunos
relacionados con la eficiencia y estabilidad numrica del algoritmo.
Los parmetros son propios de cada optimizador y tambin pueden serlo de
cada mtodo de optimizacin. Por mencionar algunos que pueden ser
importantes en MINOS (linesearch tolerance, penalty, major
iterations, minor iterations, factorization frequency) y en CPLEX
(epopt, eprhs, epmrk).
Como consejo para evitar errores o confusiones es conveniente la creacin de
los ficheros de parmetros de control del optimizador dentro del cdigo en lugar
de editarlos manualmente.

USO DE SOLUCIONES INICIALES Y/O BASES PREVIAS
El uso de puntos iniciales es particularmente importante en el caso de
problemas no lineales, donde se debe ejecutar un problema lineal cuya solucin
resulte cercana a la previsible solucin del problema no lineal.
Cuando se trata de ejecuciones sucesivas es conveniente, desde el punto de
vista de clculo, aprovechar en el algoritmo del simplex las bases de soluciones
previas del mismo problema u otro similar que haya sido resuelto previamente.
La base contiene la informacin relativa a las variables primales y duales del
problema. El aprovechamiento se controla con la opcin bratio que marca un
criterio de aceptacin o rechazo de la misma.
Como ejemplo del impacto en el tiempo de optimizacin del
aprovechamiento de la base, un problema LP de 8000 restricciones, 10000
variables y 30000 elementos requiere 10.3, 4.4, 4.7 y 2.6 segundos en sucesivas
resoluciones.
A pesar de ello esta ventaja puede no ser suficiente para ciertos tamaos
como para superar al mtodo de punto interior. Por ejemplo, aproximadamente
a partir de 20000 restricciones por 20000 variables el mtodo de punto interior
resulta ms competitivo que el simplex aun comenzando ste con una base
previa de un problema anterior.
I.4 CODIFICACIN DE PROBLEMAS DE OPTIMIZACIN
94 19/01/04

DETECCIN DE INFACTIBILIDADES
Un mtodo muy sencillo aunque laborioso y que puede producir problemas
de consistencia y de dimensiones, es introducir variables de holgura en cada
restriccin y penalizarlas en la funcin objetivo. Este procedimiento hace las
restricciones elsticas.
Alternativamente algunos optimizadores tienen un parmetro que detecta el
ncleo menor de restricciones infactibles de un problema (parmetro Irreducible
Infeasible Subsets iis) y, por consiguiente, ayudan a localizar su posible causa.
Una vez conocidas el desarrollador debe modificar o eliminar alguna del
conjunto para que el problema se haga factible. Un artculo reciente de John W.
Chinneck sobre algoritmos para encontrar este conjunto mnimo es [Guieu, 1999]

ANLISIS DE SENSIBILIDAD
Proporciona informacin adicional sobre la solucin de un problema de
optimizacin lineal.
Algunos optimizadores permiten realizar directamente un anlisis de
sensibilidad a cambios en los coeficientes de la funcin objetivo que no producen
una alteracin de la base ptima o a cotas de las restricciones que no producen
prdida de factibilidad (parmetros objrng, rhsrng).
I.4.3.2. Especficos de GAMS
Existe un informe tcnico que incluye un conjunto general de
recomendaciones para el desarrollo y la reparacin de modelos escritos en
GAMS, [McCarl, 1998].

USO AVANZADO PARA OPTIMIZACIN
En este apartado se desarrollan algunas consideraciones que permiten la
implantacin avanzada de modelos escritos en GAMS. Estas recomendaciones
recogen la experiencia prctica adquirida en aos de uso del lenguaje GAMS,
principalmente en modelos de optimizacin lineal y estocstica, de ah el valor
que tienen a la hora de implantar problemas de optimizacin de gran tamao.
Una implantacin ingenua (de novato, no profesional) de un problema de
optimizacin puede llevar aparejado un consumo excesivo de recursos
computacionales. Los ms relevantes son el tiempo de ejecucin y/o la memoria.
El tiempo de ejecucin de un modelo es especialmente crtico en aplicaciones de
muy gran tamao (e.g., a partir de 100000 restricciones por 100000 variables en
el caso lineal) o, sobre todo, en el caso de resolucin iterativa de numerosos
(e.g., ms de 100) problemas de optimizacin de mediano tamao (como sucede
en los mtodos de descomposicin o en la simulacin de Monte Carlo). Los
I OPTIMIZACIN
19/01/04 95
requisitos de memoria pueden ser limitativos en el caso de problemas de muy
gran tamao. Algunas de las acciones que permiten reducir tiempo tambin
disminuyen los requerimientos de memoria.
Los mtodos de descomposicin no son ms que tcnicas matemticas que
permiten resolver problemas gigantescos (por ejemplo, de ms de 1 milln de
restricciones y variables) con una estructura especial, que ni siquiera se pueden
formular explcitamente, mediante la solucin iterativa de problemas de menor
tamao. Como ejemplo se puede mencionar el caso de un problema de
coordinacin hidrotrmica en un sistema elctrico cuya resolucin se efecta
mediante descomposicin anidada estocstica, ver Jacobs (1995).
Los valores numricos que se aportan para contrastar el impacto de algunas
recomendaciones deben tomarse como indicaciones relativas de las mejoras
esperables nunca como seguros. Pinsese que cualquier mejora est asociada a
un tipo de problemas, no necesariamente es generalizable para todos.
El tiempo de ejecucin de un modelo escrito en GAMS se puede
descomponer en estos tres tipos principales
10
:

tiempo de creacin
formulacin del problema de optimizacin especfico, es decir, creacin de las
variables y de las restricciones.

tiempo de interfaz
escritura del problema de optimizacin en disco para su lectura por el
optimizador y viceversa.

tiempo de optimizacin
resolucin del problema de optimizacin por parte del optimizador.

Adems de stos hay que aadir el tiempo de compilacin del modelo. Sin
embargo, este tiempo se da nicamente una vez al comienzo y habitualmente es
despreciable frente al resto.
El valor e importancia de cada uno de estos tiempos se puede conocer con
las opciones stepsum, que resume el consumo de tiempo entre llamadas al
optimizador, y profile, que informa sobre el consumo de tiempo y memoria en
cada instruccin del cdigo. Antes de iniciar las acciones de mejora es necesario

10
Esta clasificacin del tiempo de ejecucin de un modelo en tres componentes es relevante
para los modelos escritos en GAMS. Quiz con otros lenguajes de modelado alguno de estos
tiempos puede ser despreciable.
I.4 CODIFICACIN DE PROBLEMAS DE OPTIMIZACIN
96 19/01/04
realizar un anlisis de los consumos de tiempo del modelo y de cmo se
reparten.
La relacin entre ellos depende de las diversas caractersticas del problema:
tamao y estructura de la matriz de restricciones, nmero de optimizaciones,
variacin de los parmetros en sucesivas optimizaciones, como ms importantes.
Las direcciones de mejora que se presentan a continuacin tienen una
orientacin o bien informtica o bien matemtica, aunque indudablemente en el
tiempo de ejecucin resultante influyen ambas. Las primeras estn basadas en el
uso del lenguaje GAMS. Las segundas modifican el problema o su resolucin. La
efectividad de cada mejora depender de las caractersticas del problema de
optimizacin. Se sugieren algunos criterios heursticos que permiten utilizarlas
adaptndose al caso concreto tal como se menciona posteriormente. stos han
de tomarse con cautela. En ningn momento se les quiere dar a estos criterios
ms que un valor indicativo, ajeno a cualquier tipo de generalizacin.

USO DE UN DISCO VIRTUAL
El tiempo de interfaz se debe a la escritura de los ficheros
11
de comunicacin
con el optimizador. El tiempo del proceso de escritura depende del hardware del
equipo utilizado, en particular, del manejo y tamao de la memoria cach
12
y del
tiempo de escritura en el disco. A su vez, el disco puede ser local (localizado en
la mquina que ejecuta el modelo) o remoto (conectado a travs de una red de
rea local).
La minimizacin del tiempo de interfaz exige un conocimiento detallado de
los recursos de hardware utilizables. Por ejemplo, uso de discos locales en lugar
de remotos, tamaos elevados memorias cach, etc. En cualquier caso, una
solucin sencilla en un PC es la creacin y uso de discos virtuales localizados en
memoria RAM (utilidad RAMDISK), siempre ms rpida que los discos
magnticos. Un tamao de 16 MB de disco RAM es suficiente para estos casos
de estudio.
La reduccin en tiempo esperable depende de la relacin entre el tiempo de
acceso al disco frente al acceso a la RAM. Por ejemplo, para el anterior PC se
ha obtenido una reduccin en tiempo de un 20 % del tiempo de interfaz.

CAMBIOS EN INSTRUCCIONES DE ASIGNACIN

11
En GAMS la comunicacin entre el lenguaje y los optimizadores se hace mediante ficheros.
En otros lenguajes esta relacin se establece a travs de variables localizadas en la memoria
principal.
12
La memoria cach mantiene una copia de la ltima informacin leda o escrita en disco, de
manera que pueden evitarse accesos a disco cuyo tiempo de acceso es superior.
I OPTIMIZACIN
19/01/04 97
GAMS es un lenguaje peligroso desde el punto de vista de consumo de
tiempo por su naturaleza intrnseca, ser muy compacto y de alto nivel. Es
relativamente fcil escribir instrucciones sencillas que involucren entidades con
mltiples dimensiones que consuman un tiempo y/o memoria elevada. La opcin
profile permite conocer el consumo de tiempo y memoria y el nmero de
asignaciones realizadas en cada instruccin.
Como recomendaciones especficas para no desperdiciar tiempo:

El orden de colocacin de los ndices/dimensiones debe ser consistente para
todos los parmetros, ecuaciones y variables.
Se debe pensar desde el punto de vista de una ordenacin natural de todos
los ndices para el conjunto del problema. Esta ordenacin influye tambin
en la formulacin de las ecuaciones.
El orden de colocacin de los ndices en las instrucciones reiterativas
(sumatorios, productorios, bucles) debe ser el mismo que en los parmetros,
variables o ecuaciones que se estn manipulando.
Se debe hacer un uso extensivo de la exclusin mediante condiciones en
asignaciones (uso del operador $) controladas preferentemente mediante
conjuntos dinmicos (mejor que con valores de parmetros), es decir, activar
slo las variables y restricciones necesarias. En el ejemplo previo del flujo de
cargas se observa que se consideran slo las lneas elctricas que existen y no
cualquier posible conexin entre dos nudos.

TAMAOS MXIMOS ALCANZADOS
Como referencia final una indicacin sobre el tamao de los problemas que se
estn resolviendo y a los que se ha llegado aplicando estas recomendaciones. Se
han podido resolver sin dificultad problemas de 150000 restricciones por 227000
variables con 566000 elementos no nulos en la matriz de restricciones en 300
segundos en un PC con procesador Pentium III Mobile a 1 GHz.

ALGUNAS INSTRUCCIONES ADICIONALES
A continuacin se presenta una miscelnea de instrucciones de GAMS que
no estn suficientemente documentadas en el manual de usuario o se han
utilizado con otra perspectiva.

Mxima supresin de informacin de salida
La supresin de la informacin de salida en el nombre_fichero.lst se
consigue con las siguientes opciones.
$OFFSYMLIST, OFFSYMXREF, OFFUELLIST, OFFUELXREF
OPTION LIMROW=0, LIMCOL=0, SOLPRINT=OFF, SYSOUT=OFF
nombre_modelo.SOLPRINT=2 ;
I.4 CODIFICACIN DE PROBLEMAS DE OPTIMIZACIN
98 19/01/04
y escribiendo en la invocacin de GAMS
gams nombre_modelo.gms suppress 1
Adems, tambin se puede suprimir la informacin en pantalla que produce
el optimizador con los consiguientes parmetros (por ejemplo, para CPLEX
simdisplay 0 bardisplay 0 y mipdisplay 0).
gams nombre_modelo.gms ll 0 lo 0

Presentacin de informacin por pantalla
Las siguientes instrucciones permiten la definicin de la pantalla para
posteriormente escribir informacin en ella. En el uso real hay que tener en
cuenta posibles buffers que hacen que esta informacin no se muestre
inmediatamente.

$SET CONSOLA
$IF %system.filesys% == UNIX $SET CONSOLA /dev/tty
$IF %system.filesys% == MS95 $SET CONSOLA CON
$IF %system.filesys% == MSNT $SET CONSOLA CON
$IF %consola%. == . ABORT Fichero no reconocido ;
FILE PANTALLA / '%consola%' / ;

Opciones SAVE y RESTART.
Permiten la segregacin de una parte de cdigo para su depuracin evitando
su ejecucin completa.
Tambin permiten la creacin y distribucin de una versin ejecutable, es
decir, aqulla donde el usuario final no tiene acceso a la definicin del problema
de optimizacin. Para ello el cdigo se separa en dos partes. La primera contiene
las declaraciones y definiciones de variables y ecuaciones y la segunda la
inclusin de ficheros de datos y resolucin del problema.
Esta opcin tambin puede utilizarse para paralelizar bucles
13
. La parte
comn se genera con la instruccin SAVE en el procesador principal. Despus, la
parte paralelizada (cada ciclo del bucle) se ejecuta con un RESTART en cada
procesador independiente y asncronamente. Una vez terminadas todas las
ejecuciones se integran los resultados obtenidos.

Recorrido inverso de un ndice
La siguiente instruccin permite recorrer el parmetro PP en sentido inverso
PP(i+[card(i)-2*ord(i)+1])
empezando por card(i), card(i)-1, .... 2, 1.

Eliminacin de las variables fijas

13
El IIT ha desarrollado una utilidad que permite la ejecucin asncrona de scripts de UNIX
que pueden ser utilizados para la paralelizacin de aplicaciones en GAMS.
I OPTIMIZACIN
19/01/04 99
Se trata de aquellas variables cuyas cotas inferior y superior coinciden y el
mismo lenguaje las convierte en parmetros, de manera que no son consideradas
como tal por el optimizador. Por consiguiente, no se puede obtener informacin
dual sobre ellas.
nombre_modelo.HOLDFIXED = 1 ;

Otras caractersticas no documentadas en el manual
SAMEAS(elemento_de_set1.elemento_de_set2)
Funcin que devuelve verdadero si las cadenas de caracteres de los nombres
de los elementos de set son iguales o falso en caso contrario.
DIAG(elemento_de_set1.elemento_de_set2)
Devuelve 1 en el caso de igualdad y 0 en caso contrario.
$CALL
Llamada externa que se ejecuta en el momento de la compilacin.
$EXECUTE
Llamada externa a una aplicacin que devuelve el control a GAMS cuando
sta finaliza.
option SOLSLACK = 1
Presenta el valor de las variables de holgura de las restricciones en lugar del
valor de la restriccin como tal.

Utilidades complementarias
Existen algunas aplicaciones conectadas con GAMS que aaden
funcionalidad, facilitan la interfaz con el lenguaje o la presentacin de
resultados. Las nueve primeras se apoyan en la instruccin $libinclude. Entre
ellas cabe citar:

Aplicaciones de anlisis, depuracin y mejora de modelos
gams-f
Permite definir funciones que posteriormente son sustituidas mediante un
preproceso en las definiciones de parmetros o ecuaciones.
gamschk
Aplicacin que permite examinar empricamente modelos escritos en GAMS
para detectar posibles errores.
gamsbas
Aplicacin que permite guardar la informacin relativa a la base que
posteriormente puede ser utilizada para modelos subsiguientes.

Exportacin del modelo a otros sistemas
GAMS permite la exportacin del problema de optimizacin en formato
MPS o LP que pueden ser ledos por numerosos optimizadores. En el fichero
MPS se define la matriz de restricciones del problema, vista por columnas, y las
cotas de las variables. Los nombres de las restricciones y de las variables estn
I.4 CODIFICACIN DE PROBLEMAS DE OPTIMIZACIN
100 19/01/04
limitados a 8 caracteres y el formato de los datos es fijo por columnas. En el
fichero LP se define el problema de forma ms natural al poner directamente las
expresiones de las ecuaciones pero utilizando nombres de las variables no
indexados.

Interfaz con una hoja de clculo
ssimport.gms
Lee datos de una hoja de clculo durante la compilacin.
ssdump.gms
Escribe datos y etiquetas en una hoja de clculo. Admite tamaos dinmicos.
ssexport.gms
Escribe datos en una hoja de clculo. Los intervalos de escritura son fijos.

Interfaz de presentacin de resultados
Algunas de estas utilidades se pueden usar para realizar interfaces ms
sencillas con bases de datos.
gams2tbl.gms
Facilita la escritura automtica de informes en forma de tablas.
gams2txt.gms
Escribe en un fichero los valores de parmetros, variables, ecuaciones o sets.
gams2prm.gms
Escribe en un fichero la declaracin y valores de parmetros, variables.
ecuaciones o sets.
gams2zip.gms
Escribe en un fichero comprimido la declaracin y valores de parmetros,
variables, ecuaciones o sets.
zip2gams.gms
Recupera de un fichero comprimido la declaracin y valores de parmetros,
variables, ecuaciones o sets.
gnuplot.gms
Permite la creacin de grficos con GNUPLOT que representen valores de
parmetros.

Interfaz con MATLAB
matout.gms y gams.dll
Permite el uso desde MATLAB de las capacidades de optimizacin que
proporciona GAMS y la facilidad de visualizacin de MATLAB de los resultados
de una optimizacin.
I.4.3.3. Referencias
Bixby, R.E., Fenelon, M., Gu, Z., Rothberg, E. and Wunderling, R. (2000)
MIP: Theory and Practice - Closing the Gap. Technical Report.
I OPTIMIZACIN
19/01/04 101
Guieu, O. and Chinneck, J.W. (1999) Analyzing Infeasible Mixed-Integer and
Integer Linear Programs, INFORMS Journal on Computing, vol. 11, no. 1,
pp. 63-77.
Fourer. R. (1999) Linear Programming OR/MS Today pp. 64-71. August.
McCarl. B. A. (1998) So Your GAMS Model Didnt Work Right. A Guide to
Model Repair. Technical Report.
Jacobs. J., Freeman. G., Grygier. J., Morton. D., Schultz. G., Staschus. K. and
Stedinger. J. (1995) SOCRATES: A system for scheduling hydroelectric
generation under uncertainty Annals of Operations Research 59. pp. 99-
133.
Ramos. A. et al. (1996) Computational Experience with Optimization for a
Bulk Production Cost Model 12th PSCC. Dresden, Germany.
I OPTIMIZACIN
19/01/2004 103
I.5. Optimizacin lineal
I.5.1. Introduccin
La programacin lineal (LP) es la aplicacin clsica por excelencia y la ms
desarrollada de la optimizacin. En cada momento se estn ejecutando miles de
aplicaciones basadas en LP. Los modelos de LP son ms utilizados que todos los
otros tipos de optimizacin juntos. Abarcan cualquier tipo de actividad humana
como economa, finanzas, marketing, organizacin de la produccin,
planificacin de la operacin, seleccin de procesos, asignacin de tareas, etc. Su
importancia se debe a la existencia de tcnicas potentes, estables y robustas
para encontrar el ptimo que han permitido su uso en multitud de aplicaciones.
Sea el siguiente problema de programacin lineal genrico en forma estndar:

min
0
j
j j
x
j
ij j i
j
j
z c x
a x b
x
=
=

(1.14)
Las variables reciben tambin el nombre de actividades, decisiones o
columnas. Las restricciones se denominan tambin recursos o filas.
La programacin lineal se sustenta en las siguientes hiptesis sobre las
ecuaciones y variables que conforman el problema matemtico:

Proporcionalidad
La contribucin de cada actividad (variable)
j
x al valor de la funcin
objetivo z es proporcional al nivel de la actividad,
j j
c x . La contribucin de
cada actividad
j
x al valor de la parte izquierda de cada restriccin es
proporcional al nivel de la actividad,
ij j
a x .

Aditividad
Cada ecuacin en un problema LP es la suma de las contribuciones
individuales de las respectivas actividades.

Divisibilidad
Cualquier variable puede tomar cualquier valor, no necesariamente entero,
que satisfaga las restricciones incluyendo las de no negatividad.

I.5 OPTIMIZACIN LINEAL
104 19/01/2004
Certidumbre
Los parmetros (constantes) de un problema LP se suponen conocidos con
certidumbre (pueden ser estimaciones, pero stas se tratan como valores
conocidos).
I.5.2. Solucin grfica
Supongamos el siguiente problema de programacin lineal en un espacio
bidimensional, que grficamente queda representado en la figura adjunta.




1 2
1
2
1 2
1 2
max 3 5
4
2 12
3 2 18
, 0
z x x
x
x
x x
x x
= +







Figura 2.1 Solucin grfica de un problema LP.

La regin factible est encerrada por las tres rectas que constituyen las
restricciones ms los dos ejes, que son las rectas correspondientes a la no
negatividad de las variables. La solucin ptima se halla grficamente
desplazando paralela a s misma la recta de isofuncin objetivo en el sentido de
maximizacin (direccin del gradiente de la funcin objetivo, c ) hasta que se
alcanza el ltimo punto de la regin factible. sta corresponde al punto
1 2
( , ) (2, 6) x x = con un valor de la funcin objetivo 36 z = .
Otras posibilidades que pueden aparecer al resolver un problema de
programacin lineal son las siguientes: solucin con mltiples ptimos y solucin
no acotada. Por otra parte, si la regin factible es el conjunto vaco, el problema
es infactible.

1 2
3 5 x x +
(4,0)
(4,3)
(2,6)
(0,6)
(0,0)
x
2
x
1
Rectas de
isofuncin
objetivo
2
2 12 x
1
4 x
1 2
3 2 18 x x +
I OPTIMIZACIN
19/01/2004 105


Figura 2.2 Solucin grfica de un problema LP con mltiples ptimos.




Figura 2.3 Solucin grfica de un problema LP con solucin no acotada.

I.5.3. Geometra de la programacin lineal
Hay una serie de conceptos geomtricos que hay que definir antes de analizar
la geometra de un problema de programacin lineal.
Un hiperplano est definido por el conjunto de puntos
j
x que cumplen una
ecuacin cualquiera del problema LP,
ij j i
j
a x b =

. Un hiperplano en dos
dimensiones es una recta. El hiperplano divide el espacio en dos semiespacios
definidos por
ij j i
j
a x b

y
ij j i
j
a x b

.
Un poliedro es la regin definida por la interseccin de un conjunto finito de
semiespacios. La regin factible de un problema de programacin lineal es un
poliedro. Un politopo es un poliedro no vaco y acotado (por ejemplo, las
regiones factibles de las figuras 2.1 y 2.2).
Un vrtice o punto extremo de un poliedro se define como un punto que no
puede ponerse como combinacin lineal convexa de dos puntos diferentes del
conjunto. Se determina por la interseccin de n hiperplanos. En dos
dimensiones, son dos rectas.
I.5 OPTIMIZACIN LINEAL
106 19/01/2004
El contorno de una regin factible contiene las soluciones factibles que estn
en uno o ms hiperplanos. Arista es el segmento obtenido por solucin de 1 n
hiperplanos, siendo sus extremos soluciones factibles vrtices.

Teorema de existencia de puntos extremos
Sea { / , 0} S x Ax b x = = ,
m n
A

, ( ) r A m = . Entonces S tiene al
menos un punto extremo.

Teorema de representacin de un politopo
Sea { / , 0} S x Ax b x = = y acotado,
m n
A

, ( ) r A m = . Sean
1
, ,
k
x x los puntos extremos de S . Entonces x S si y slo si x se puede
expresar como una combinacin lineal convexa de los puntos extremos del
conjunto, es decir,
1
, , 0
k
, tales que 1
i
i
=

y
i i
i
x x =

. Cualquier
punto de un politopo se puede expresar como combinacin lineal convexa de los
vrtices del mismo.

Una aplicacin inmediata del resultado anterior es su aplicacin al problema
de programacin lineal, ya que es fcilmente demostrable que buscar en una
regin factible acotada el punto que optimiza una determinada funcin objetivo
es equivalente a buscar el punto extremo que lo hace. Es decir, entonces la
bsqueda del ptimo se limita a optimizar en un nmero finito de puntos: los
vrtices o puntos extremos.
Sin embargo, este resultado no es de una aplicacin inmediata ya que, por
un lado, el nmero total de vrtices o puntos extremos posibles del politopo (no
todos ellos son necesariamente factibles) puede ser muy grande (es de
,
!
!( )!
n m
n
n
C
m
m n m
1

= =



( )
y crece exponencialmente con el tamao del
problema) y, por otro lado, hay que calcular cules son los puntos extremos, que
si bien estn caracterizados y existe el procedimiento para hacerlo puede ser
largo y costoso. Adems en el caso de que no haya ningn punto factible, no
sera detectado hasta la prueba de todos los puntos candidatos a ser extremos
(
, n m
C puntos) y, en el caso de que la solucin sea no acotada, con tal
procedimiento no se detectara esta situacin.
Por lo tanto, se impone la bsqueda del ptimo de una forma dirigida, es
decir, con ciertos criterios que favorezcan esta bsqueda y que adems permitan
la deteccin de situaciones como las descritas en el apartado anterior. Estos
criterios se plasman en un mtodo o algoritmo de tipo algebraico que se describe
en la siguiente seccin.
I OPTIMIZACIN
19/01/2004 107
I.5.4. Mtodo simplex
El mtodo simplex, que debe su origen a George B. Dantzig en 1947, es un
procedimiento algebraico iterativo para resolver un problema de programacin
lineal que tiene conceptos geomtricos subyacentes. Recorre exclusivamente los
vrtices (o puntos extremos) de la regin factible. La idea geomtrica
subyacente se describe a continuacin. Partiendo de un vrtice inicial (luego se
describir el procedimiento para obtenerlo), se va moviendo de un vrtice a otro
vrtice adyacente mejorando la funcin objetivo. Se selecciona la arista con
mayor tasa de mejora de la funcin objetivo para alcanzar el vrtice adyacente,
hasta alcanzar un punto en el que no existe ninguna arista incidente por la que
mejorar. En el ejemplo anterior, partiendo del vrtice (0,0) con funcin objetivo
0 z = , el mtodo simplex llegara al ptimo (2,6) con funcin objetivo 36 z =
despus de pasar por el vrtice (0,6) con funcin objetivo 30 z = , tal como se
aprecia en la figura. Se comprueba la condicin de ptimo porque en dicho
vrtice las tasas de mejora de la funcin objetivo hacia vrtices adyacentes son
negativas.


1 2
3 5 x x +
(4,0)
(4,3)
(2,6)
(0,6)
(0,0)
x
2
x
1
Rectas de
isofuncin
objetivo
2
2 12 x
1
4 x
1 2
3 2 18 x x +

Figura 2.4 Representacin grfica del mtodo simplex.

Un problema de optimizacin lineal tiene la siguiente forma estndar
14
:

14
Por convencin en la formulacin los vectores son columna, su transposicin se representa
por un superndice T , las variables se ubican a la izquierda de las ecuaciones y los coeficientes
de las variables preceden a stas.
I.5 OPTIMIZACIN LINEAL
108 19/01/2004

min
0
T
z c x
Ax b
x
=
=

(1.15)
donde
n
x es el vector de las variables del problema,
m n
A

es la matriz
de restricciones del problema o matriz del lado izquierdo (left hand side LHS),
n
c es el vector de los coeficientes de las variables en la funcin objetivo o
vector de costes,
m
b es el vector del lado derecho (right hand side RHS) o
vector de cotas de las restricciones, siendo 0 b , y la variable z es el valor
de la funcin objetivo.
Por consiguiente,
11 12 1
21 22 2
1 2
n
n
m m mn
a a a
a a a
A
a a a
l
l
l
l
=
l
l
l
l
l

,
1
2
m
b
b
b
b
l
l
l
l
= l
l
l
l
l
l

,
1
2
n
c
c
c
c
l
l
l
l
=
l
l
l
l
l

y
1
2
n
x
x
x
x
l
l
l
l
=
l
l
l
l
l

.
El nmero de restricciones m, para el problema expresado en su forma
estndar, ha de ser estrictamente menor que el nmero de variables n, m n < , y
el rango de la matriz de restricciones mximo, ( ) r A m = .
La forma estndar se utiliza como base para introducir y desarrollar el
mtodo simplex, no es necesario que el problema se exprese de esta forma para
ser resuelto por un optimizador. Los cdigos comerciales no necesitan que los
problemas sean escritos de esta manera.
El ejemplo anterior expresado en la forma estndar aparece como:
1 2
1 3
2 4
1 2 5
1 2 3 4 5
min 3 5
4
2 12
3 2 18
, , , , , 0
z x x
x x
x x
x x x
x x x x x
=
+ =
+ =
+ + =


siendo
1 1
2 1
3 2 1
A
l

l
l
=
l
l
l

l
l
,
4
12
18
b
l
l
l
=
l
l
l
l
l
,
3
5
c
l
l
l
l
l

=
l
l

l
l

l
l
y
1
2
3
4
5
x
x
x
x
x
x
l
l
l
l
l
=
l
l
l
l
l
l
.

Para convertir un problema de programacin lineal cualquiera a su forma
estndar se efectan algunas transformaciones:

I OPTIMIZACIN
19/01/2004 109
Funcin objetivo
La direccin de maximizacin se trata como una minimizacin del valor
negativo de la funcin objetivo.
max min z z ( max min z z = )
Restricciones
En las restricciones de tipo se introduce una variable de holgura 0
i
u .
ij j i ij j i i
j j
a x b a x u b + =


En las restricciones de tipo se introduce una variable de exceso o de
holgura 0
i
v .
ij j i ij j i i
j j
a x b a x v b =


Variables
Si una variable es negativa y no acotada inferiormente 0
j
x ,
simplemente se sustituye por una variable que tome su valor opuesto
j j
x y = siendo 0
j
y .
Si la variable negativa est acotada inferiormente por un valor 0
j
L < ,
0
j j
L x , se desplaza en dicha cantidad
j j j
x y L = + siendo 0
j j
y L .
Posteriormente se ve cmo se tratan las variables acotadas.
Si la variable es libre (no acotada inferior ni superiormente,
j
x )
se sustituye por dos variables que corresponden a su componente positiva y
negativa
j j j
x x x
+
= siendo 0
j
x
+
y 0
j
x

.

Examinemos los tipos de soluciones del problema de programacin lineal:

Solucin factible
Aqulla que satisface todas las restricciones.
Cualquier punto del interior o del contorno de la regin factible.

Solucin infactible
Aqulla que viola al menos una restriccin.
Cualquier punto del exterior de la regin factible.

Solucin bsica factible
Una base de la matriz de restricciones o matriz del problema es una matriz
cuadrada no singular (es decir, tiene inversa) de rango mximo en A,
I.5 OPTIMIZACIN LINEAL
110 19/01/2004
( ) r A m = . Las variables asociadas a las columnas que forman la base se
denominan variables bsicas y el resto variables secundarias (o no bsicas).
Solucin bsica factible es aqulla con m variables bsicas que pueden tomar
valor diferente de 0 y ( ) n m variables no bsicas que toman valor 0, est
asociada a una base de la matriz. Los valores de las variables bsicas, si la
base es B , se calculan por resolucin de un sistema de m m ecuaciones, es
decir, se obtienen calculando
1
B b

.
Las variables no bsicas en un problema de programacin lineal con
variables acotadas superior e inferiormente se hallan en uno de sus lmites
mientras que las variables bsicas se encuentran estrictamente dentro de los
lmites. Este caso corresponde a una solucin bsica factible no degenerada.
Si alguna de las variables bsicas se encuentra en uno de sus lmites se
denomina solucin bsica factible degenerada.
Toda solucin bsica factible est asociada a un nico punto extremo o
vrtice y todo punto extremo est asociado a alguna solucin bsica factible.
Sin embargo, puede existir un punto extremo que corresponda a dos bases
diferentes en presencia de degeneracin.
Dos soluciones factibles vrtices son adyacentes si la lnea que los conecta es
una arista, es decir, si todas excepto una de sus variables son iguales. Cada
solucin factible vrtice tiene n soluciones factibles vrtices adyacentes.
Moverse de una solucin bsica factible a otra adyacente es cambiar de una
variable no bsica a bsica y al contrario para otra variable.

Solucin ptima
Aquella solucin bsica factible (vrtice) con mejor valor de la funcin
objetivo. Pueden existir mltiples soluciones ptimas. Esta situacin, que por
inspeccin del problema de dos dimensiones parecera infrecuente, es una
situacin habitual en la realidad por razn de que el criterio de optimalidad
se comprueba numricamente, es decir, cuando la tasa de mejora de la
funcin objetivo est por debajo de cierta tolerancia muy pequea pero no
cero.

Existe un resultado fundamental en el que se fundamenta la validez del
algoritmo del simplex,

Teorema fundamental de la programacin lineal
Dado un problema de programacin lineal en forma estndar, se tiene que:

Si admite una solucin factible, admite al menos una solucin bsica factible.
I OPTIMIZACIN
19/01/2004 111
Si admite una solucin ptima finita, admite al menos una solucin bsica
ptima.

El primer apartado es equivalente al teorema geomtrico de existencia de
puntos extremos y el segundo a la aplicacin del problema de representacin que
asegura que la solucin ptima se alcanza en un punto extremo (solucin
bsica). Si hay mltiples ptimos, en una regin factible acotada, al menos dos
deben ser soluciones factibles vrtices adyacentes.
El comportamiento del mtodo simplex en el peor caso es muy pobre. Sin
embargo, en la prctica recorre un nmero muy inferior al nmero total de
vrtices posibles. Para el problema anterior el mtodo simplex recorre 3 vrtices
(incluyendo el inicial) de un nmero total posible (factibles e infactibles) de
5,2
5
10
2
C
1


= =



( )
.
Como criterio aproximado se puede estimar que en media el nmero de
iteraciones necesarias para resolver un problema lineal por el mtodo simplex es
proporcional al nmero de restricciones m y el tiempo de solucin es
proporcional a
3
m .
Veamos a continuacin cmo se explica y desarrolla el mtodo simplex.
Supongamos que se dispone de una solucin bsica factible
T
T
B N
x x x
l
=
l
l
. Sea
B la base, A B N
l
=
l
l
y
T
T
B N
c c c
l
=
l
l
, siendo

m
B
x vector de variables bsicas
n m
N
x

vector de variables no bsicas
m m
B

matriz base
( ) m n m
N

matriz no bsica
m
B
c coeficientes de las variables bsicas en la funcin objetivo
n m
N
c

coeficientes de las variables no bsicas en la funcin objetivo

Reformulando el sistema de ecuaciones Ax b = y siempre que B sea no
singular

1 1 1
( )
B N B N N
Bx Nx b x B b Nx B b B Nx

+ = = = (1.16)
La funcin objetivo se puede expresar entonces como
1 1 1 1 T T T T T T T T
B B N N B B N N N B N B N
z c x c x c B b c B Nx c x c B b c c B N x

l
= + = + = +
l
(1.17)
Lo que se ha hecho es simplemente un cambio de base, es decir, expresar los
elementos del problema en funcin de la base B . En este caso, la solucin
bsica asociada a la base B , viene determinada por los valores de
B
x ya que las
I.5 OPTIMIZACIN LINEAL
112 19/01/2004
variables no bsicas
N
x toman valor 0 (es decir, se resuelve un sistema de
ecuaciones lineales para determinar el valor de las variables bsicas)

1

B
x b B b

= = (1.18)

1

T T
B B B
z c B b c x

= = (1.19)
Definamos

1 T T
B
w c B

(1.20)

1
Y B N

(1.21)

1

T T T T T T T
N N B N N B
c c c B N c w N c c Y

= = (1.22)
y para cada variable no bsica
j
x su coste reducido
j
c (o derivada direccional)
en particular sera

1

T T T
j j B j j j j B j j j
c c c B a c w a c c y c z

= = = (1.23)
siendo
j
a la columna correspondiente a la variable
j
x en la matriz A.
Conviene resaltar el significado del vector de costes reducidos
N
c , tal como
se desprende de la expresin de la funcin objetivo. Para ello reformulando la
expresin de la funcin objetivo en funcin de la base resulta
( )
N N
T
B B j j j j j
j I j I
z c x c x z c z x

= + = +


As, el coste reducido de una variable
j
c es el cambio en la funcin objetivo
debido a un incremento unitario de una variable no bsica. En el ptimo de un
problema de minimizacin todos los costes reducidos de las variables no bsicas
son positivos o nulos, ya que en tal caso incrementar una variable desde su valor
0 a otro mayor ir en contra de la minimizacin. Los costes reducidos de las
variables bsicas son cero. Si el coste reducido de una variable no bsica es cero
en la solucin ptima entonces pueden existir mltiples soluciones ptimas,
siendo al menos dos de ellas vrtices. En un apartado posterior se menciona
analiza expresamente esta posibilidad.
I OPTIMIZACIN
19/01/2004 113
Veamos a continuacin cmo se utilizan las expresiones derivadas
anteriormente. Si elegimos como variables bsicas
3
4
5
B
x
x x
x
l
l
l
=
l
l
l
l
y como no bsicas
1
2
N
x
x
x
l
l
=
l
l
entonces
B
c
l

l
l
=
l
l

l
l
,
3
5
N
c
l
l
=
l
l
,
1
1
1
1
B B


= =

l
l
l
l
l
y
1
2
3 2
N

=
l
l
l
l
l
.
Los valores que toman dichas variables sern
1
4

12
18
B
x b B b

l
l
l
= = =
l
l
l
l
l
y
N
x

l
l
=

l
l
,
1 T T
B
w c B

l
= =
l
l
, el valor de la funcin objetivo ser
1
0
T
B
z c B b

= = y los costes reducidos de las variables no bsicas


3 5
T T T
N N
c c w N
l
= =
l
l
.
Si alguna variable no bsica incrementara su valor desde 0, 0
N
x > , el valor
que tomaran las variables bsicas sera
1
1 1
2
4 1
12 2
18 3 2
B N
x
x B b B Nx
x

l

l
l
l
l
= =
l
l
l
l
l
l
l
l
l
l
l
l

y el de la funcin objetivo
1
1 1
2
0 3 5
T T T
B N B N
x
z c B b c c B N x
x

l
l
l l
= + = +
l l
l l
l

De acuerdo con esta ecuacin la funcin objetivo disminuye al incrementar
desde 0 cualquiera de las variables no bsicas
1
x o
2
x por ser negativos sus
costes reducidos 3 5
T
N
c
l
=
l
l
, es decir, la base actual no es ptima.
La prueba de optimalidad se basa en comprobar si existe algn coste
reducido negativo (en un problema de minimizacin) en la funcin objetivo. En
caso de que no exista, la solucin bsica actual es ptima. En otro caso, se
puede seleccionar una de las variables no bsicas con coste reducido negativo
para entrar en la base. La variable seleccionada
t
x , denominada variable bsica
entrante, ser la que tenga coste reducido negativo de mayor valor absoluto.
Para determinar hasta dnde se puede incrementar dicha variable sin violar
ninguna restriccin de no negatividad de las variables bsicas se observan las
ecuaciones de las variables bsicas
I.5 OPTIMIZACIN LINEAL
114 19/01/2004

1 1

B N N t t
x B b B Nx b Yx b y x

= = = (1.24)
siendo
t
a la columna de A correspondiente a
t
x e
1
t t
y B a

= la columna pivote.
Podemos escribir esta ecuacin componente a componente

( )
B i i it t
x b y x = (1.25)
Si 0
it
y > entonces ( )
B i
x disminuye cuando la variable bsica entrante
t
x
aumenta, hasta alcanzar el valor 0 para

/
t i it
x b y = ,

0
i
b > por ser el valor de la
variable bsica.
Para valores 0
it
y la variable ( )
B i
x aumenta o permanece igual. Si todos
los valores fueran 0
it
y el problema sera no acotado, puesto que la variable
bsica entrante se puede incrementar indefinidamente sin que una variable
bsica alcance el valor 0. La direccin de no acotamiento para dicha variable no
bsica
t
x es un vector formado por el vector
1
B t t
d y B a

= = para las
variables bsicas, 1
t
d = para la variable bsica entrante
t
x y 0
i
d = para el
resto de variables no bsicas. Esta direccin satisface la condicin 0 Ad = y
0 d , es un rayo extremo y pertenece al cono de recesin, que se define como el
conjunto de direcciones en las que el problema resulta no acotado. Obsrvese
que la deteccin de problema no acotado se puede hacer con cualquier variable
no bsica no necesariamente con la de coste reducido negativo de mayor valor
absoluto.
La variable
t
x puede aumentar su valor hasta
t
x mientras todas las
variables bsicas sigan siendo no negativas. As el mximo valor que puede
tomar y en el que adems una variable bsica se hace 0 y puede salir de la base
es

1

min : 0
i
t it
i m
it
b
x y
y

' '
1 1
1 1
= >
! !
1 1
1 1 + +
(1.26)
El valor mnimo
15
de la relacin previa identifica la variable bsica saliente,
es decir, la variable bsica que se hace no bsica (toma valor 0).
Despus del intercambio de variables la nueva solucin bsica factible es un
nuevo vrtice adyacente al anterior con mejor valor de la funcin objetivo. Para
la nueva base se calcula el nuevo valor de la funcin objetivo y de las variables
bsicas. El resto de variables, las no bsicas, siguen siendo cero.

t t
z z c x = + (1.27)

B t t
x b y x = (1.28)

15
Si existe ms de una relacin que alcance el valor mnimo al mismo tiempo usualmente se
toma aqul con mayor coeficiente en la columna pivote.
I OPTIMIZACIN
19/01/2004 115
El mtodo simplex consiste en el siguiente algoritmo, que realiza
iterativamente este cambio de base mejorando la funcin objetivo:

Inicializacin
Se supone que se dispone de una matriz base B correspondiente a una
solucin bsica factible inicial
1

0
B
x b B b

= = y una funcin objetivo


1

T T
B B B
z c B b c x

= = .

Prueba de optimalidad
Se calcula el vector de costes reducidos
1

T T T T T
N N B N B
c c c B N c c Y

= = . Si
todos los costes reducidos son no negativos 0
T
N
c la base actual es ptima.
En caso contrario, se selecciona
16
como variable bsica entrante
t
x una
variable con coste reducido estrictamente negativo 0
t
c < .
La prueba de optimalidad es local pero como los problemas de programacin
lineal son convexos, la solucin ptima ser global.

Iteracin
Sea
1
t t
y B a

= , la columna pivote t correspondiente a la variable bsica


entrante. Se busca la fila pivote s que verifica
1

min : 0
s i
it
i m
st it
b b
y
y y

' '
1 1
1 1
= >
! !
1 1
1 1 + +

y determina la variable bsica saliente
s
x y el elemento pivote
st
y .
Si 0
it
y para toda fila i entonces el problema es no acotado.

Pivotamiento
Actualizacin de la matriz
1
B

y del vector de variables bsicas y volver al


paso 2. Ms adelante al presentar la forma tabular se muestra cmo se
actualiza la matriz
1
B

en un nmero reducido de operaciones.



Sigamos aplicando el mtodo simplex al caso ejemplo anterior. Elegimos
2
x
como la variable bsica entrante por tener el coste reducido negativo con mayor
valor absoluto. Calculamos los elementos de la columna pivote

16
La variable bsica entrante seleccionada es la de coste reducido negativo de mayor valor
absoluto. Sin embargo, esta opcin no considera el clculo de la relacin mnima (es decir, el
incremento que se le va a dar a dicha variable) luego la mejora en la funcin objetivo puede ser
pequea. Tampoco tiene en cuenta el efecto del escalado de las variables en el problema. En
general, no existe manera prctica de predecir qu eleccin de variable bsica entrante puede
dar lugar al menor nmero de iteraciones.
I.5 OPTIMIZACIN LINEAL
116 19/01/2004
1
2 2
2
2
t
y y B a

l
l
= = =
l
l
l
l
l

Las relaciones correspondientes a los dos ltimos elementos de
t
y , los nicos
estrictamente positivos, son
2 22

12 2 6 b y = = y
3 32

18 2 9 b y = =
Como la primera relacin es la menor,
4
x ser la variable bsica saliente. Se
reemplaza en la base la variable bsica
4
x por la variable no bsica
2
x y
tendremos
3
2
5
B
x
x x
x
l
l
l
=
l
l
l
l
y
1
4
N
x
x
x
l
l
=
l
l

Entonces
1
2
2 1
B

=

l
l
l
l
l
,
1
1
1/2
1 1
B


=

l
l
l
l
l
y
1
1
3
N

l
l
l
l
l
. Los costes de la
variables bsicas son 5
T
B
c
l
=
l
l
y los de las no bsicas 3
T
N
c
l
=
l
l
.
El valor de las variables bsicas ser ahora
1
1
4 4

1/2 12 6
1 1 18 6
B
x b B b

l l

l l
l l
= = = =
l l
l l
l l

l l
l l
l
l
l
l
l

y el valor de la funcin objetivo ser
1
30
T
B
z c B b

= = .
Los coeficientes
1
1
5 1/2 5/2
1 1
T T
B
w c B


l l
= = =
l l
l l

l
l
l
l
l

y los costes reducidos
1
3 5/2 1 3 5/2
3
T T T
N N
c c w N
l

l
l
l l l
= = =
l
l l l
l l l
l
l

l
l
.
I OPTIMIZACIN
19/01/2004 117
Elegimos
1
x como la variable bsica entrante por ser la nica con un coste
reducido negativo. Calculamos los elementos de la columna pivote
1
1 1
1
1 1
1/2
1 1 3 3
t
y y B a

l l

l l
l l
= = = =
l l
l l
l l

l l
l l
l
l
l
l
l

Las relaciones correspondientes a los elementos de
t
y estrictamente positivos
son
1 11

4 1 4 b y = = y
3 31

6 3 2 b y = =
Como la segunda relacin es la menor
5
x ser la variable bsica saliente. Se
reemplaza en la base la variable bsica
5
x por la variable
1
x y tendremos
3
2
1
B
x
x x
x
l
l
l
=
l
l
l
l
y
5
4
N
x
x
x
l
l
=
l
l

Entonces
1 1
2
2 3
B

l
l
l
l
l
,
1
1 1/ 3 1/ 3
1/2
1/ 3 1/ 3
B

=

l
l
l
l
l
y 1
1
N

=

l
l
l
l
l
. Los costes
de la variables bsicas son 5 3
T
B
c
l
=
l
l
y los de las no bsicas
T
N
c
l
=
l
l
.
El valor de las variables bsicas ser ahora
1
1 1/ 3 1/ 3
4 2

1/2 12 6
18 2
1/ 3 1/ 3
B
x b B b

l l

l l
l l
= = = =
l l
l l
l l

l l
l l
l
l
l
l
l

y el valor de la funcin objetivo ser
1
36
T
B
z c B b

= = .
Los coeficientes
1
1 1/ 3 1/ 3
5 3 1/2 3/2 1
1/3 1/3
T T
B
w c B

l l
= = =
l l
l l

l
l
l
l
l

y los costes reducidos
I.5 OPTIMIZACIN LINEAL
118 19/01/2004
3/2 1 1 1 3/2
1
T T T
N N
c c w N
l

l
l
l l l
= = =
l
l l l
l l l
l
l

l
l

Como todos los costes reducidos son positivos no se puede mejorar la funcin
objetivo, es decir, se ha alcanzado la solucin ptima.
I.5.4.1. Problema de maximizacin
Si bien se ha dicho que un problema de maximizacin puede ser
transformado en uno de minimizacin para ser resuelto, tambin es cierto que el
algoritmo anterior es fcilmente adaptable al caso de maximizacin, ya que slo
afecta a la direccin de mejora y, por lo tanto, slo hay que modificar el criterio
de optimalidad y el de entrada en la base.
En tal caso, una solucin ser ptima si todos los costes reducidos son
menores o iguales que 0 y, en caso de que no sea as, la variable bsica entrante
es la que tenga coste reducido estrictamente positivo de mayor valor.
I.5.4.2. Mltiples ptimos
En algunos problemas no existe un nico ptimo, sino que puede haber
varios. Esta condicin es fcilmente detectable pues para que existan mltiples
ptimos al finalizar el algoritmo del simplex debe haber al menos una variable
no bsica cuyo coste reducido sea igual a 0, de modo que si la variable aumenta
su valor la funcin objetivo no se ve afectada, con lo que puede ser introducida
en la base.
Sin embargo, no es una condicin suficiente que el coste reducido sea 0, hay
que asegurar tambin que cuando esta variable entra en la base lo hace con
valor distinto de 0, pues en otro caso, si sustituye a una variable con valor 0, se
produce un cambio de base pero no de punto.
Una vez identificadas todas las soluciones bsicas factibles (puntos extremos)
ptimas, sern soluciones ptimas todas las combinaciones lineales convexas de
stas. Por ejemplo, si existen dos soluciones bsicas ptimas, todo el segmento
que une los puntos correspondientes son soluciones ptimas del problema.
En algunos problemas, identificar ms de una solucin ptima puede ser de
vital importancia, especialmente si existe ms de un criterio de optimizacin y
stos han sido jerarquizados (optimizacin multiobjetivo).
I.5.4.3. Convergencia del algoritmo
La convergencia del algoritmo est asegurada si no existe degeneracin. Sin
embargo, en caso de degeneracin de varias variables bsicas el algoritmo puede
I OPTIMIZACIN
19/01/2004 119
ciclar, movindose por una secuencia de bases que correspondan al mismo punto
extremo sin mejorar la funcin objetivo. Existen procedimientos, que aqu no se
presentan, para evitar esta situacin, siendo el ms popular de ellos, que no el
nico, el mtodo lexicogrfico.
I.5.4.4. Variables acotadas superiormente
Las cotas superiores no se deben tratar como restricciones, esto tiene
ventajas computacionales. En el mtodo simplex las cotas superiores no se deben
sobrepasar cuando la variable bsica entrante se incrementa hasta alcanzar un
nuevo vrtice.
Supongamos una variable acotada superiormente 0
j j
x u , entonces su
variable complementaria definida como
j j j
y u x = tambin est acotada por el
mismo valor 0
j j
y u . Si 0
j
x = ,
j
x es no bsica. Si
j j
x u = , entonces 0
j
y =
y, por tanto,
j
y ser no bsica.
En el mtodo simplex, la variable bsica saliente es la primera que alcanza
su cota 0 al incrementar la variable bsica entrante. Ahora esta comprobacin
se extiende para la variable bsica entrante a su cota
j
u . Cuando se alcanza la
cota superior se cambia la variable
j
x a
j
y como nueva variable no bsica.
I.5.4.5. Forma tabular
Una forma sencilla de presentar este mtodo y resolver ejemplos pequeos es
mediante la tabla del simplex. En esta tabla se refleja el problema en funcin de
la base actual en cada iteracin. La aportacin de esta tabla es que la
actualizacin de los valores para pasar de una base a otra (actualizacin de la
matriz B o
1
B

) se puede realizar por simple eliminacin gaussiana


17
, lo que
tambin se denomina pivotamiento.
Para el problema original la tabla tiene este aspecto

Variables bsicas
z
N
x
B
x
Cotas
z
1
T
N
c
T
B
c 0
B
x 0
N B b


17
La eliminacin gaussiana actualiza la tabla para que en ella aparezca un 1 en el elemento
pivote y 0 en el resto de la columna. Para aplicarla seguir los siguientes pasos:
1. Dividir la fila pivote por el elemento pivote
st
y
2. Restar a las dems filas de la tabla la nueva fila pivote multiplicada por el elemento que se
desea pase a ser cero, es decir, el elemento correspondiente de la columna pivote.
Adems, se han de hacer 0 los coeficientes de la funcin objetivo correspondientes a las
variables bsicas.
I.5 OPTIMIZACIN LINEAL
120 19/01/2004
Tabla 2.1 Tabla (A) del simplex en la primera iteracin.

y en una iteracin cualquiera en funcin de la base B (siendo B las columnas
bajo las variables bsicas actuales de la matriz original A y N las columnas de
las variables no bsicas actuales de la matriz original A) se tiene

Variables bsicas
z N
x
B
x Cotas
z
1
1 T T
N B
c c B N

0
1 T
B
c B b


B
x 0
1
B N

I
1
B b



Tabla 2.2 Tabla (A) del simplex en una iteracin cualquiera.

T
B
c y
T
N
c son los coeficientes de las variables bsicas y no bsicas actuales en
la funcin objetivo. La ecuacin de la funcin objetivo de las nuevas tablas
resulta de multiplicar las ecuaciones de las restricciones de las tablas originales
respectivas por
1 T T
B
w c B

= y restarla de la ecuacin de la funcin objetivo de


las tablas originales respectivas. Las ecuaciones de las restricciones de las nuevas
tablas resultan de multiplicar las de las tablas originales respectivas por
1
B

.
Si en la solucin inicial la base fuera una matriz identidad y los costes de las
variables bsicas fueran 0, la tabla original inicial sera la siguiente (por
notacin se designa con un apstrofo a lo que es inicial)

Variables bsicas
z
N
x

B
x
Cotas
z
1
T
N
c
0 0
B
x 0
N

I b

Tabla 2.3 Tabla (B) del simplex en la primera iteracin partiendo de una matriz
identidad.

y, manteniendo la asignacin (ordenacin) original por columnas de las
variables, la tabla de simplex tiene este aspecto para una iteracin cualquiera
(siendo N

las columnas de las variables no bsicas iniciales en la matriz


original A)

Variables bsicas
z
N
x

B
x
Cotas
z
1
1 T T
N B
c c B N

1 T
B
c B

1 T
B
c B b


B
x 0
1
B N


1
B


1
B b



Tabla 2.4 Tabla (B) del simplex en una iteracin cualquiera.

I OPTIMIZACIN
19/01/2004 121
Bajo las columnas de las variables bsicas originales inicialmente estaba la
matriz identidad I y ahora est la matriz inversa de la base
1
B

. Luego esta
matriz contiene las manipulaciones hechas a las restricciones hasta una iteracin
cualquiera.
T
N
c

son los coeficientes de las variables no bsicas iniciales y


T
B
c son
los coeficientes de las variables bsicas de cada iteracin.
Observando las tablas 2.1 y 2.2 se puede decir que el mtodo simplex
persigue hallar la particin adecuada entre variables bsicas y no bsicas que
cumplen la condicin de optimalidad
1
0
T T T
N N B
c c c B N

= . Observando las
tablas 2.3 y 2.4 consistira en hallar los valores que cumplen la condicin de
optimalidad del problema, es decir, coeficientes de la funcin objetivo no
negativos en el caso de minimizacin
1
0
T T T
N N B
c c c B N


= y
1
0
T T
B
w c B

= .
Veamos con un ejemplo las iteraciones del mtodo simplex en forma tabular.
La tabla inicial del problema anterior es:

Variables bsicas
z
1
x
2
x
3
x
4
x
5
x
Cotas Relacin
z
1 3 5 0
3
x 1 1 4
4
x 2 1 12 12/2=6
5
x 3 2 1 18 18/2=9

La solucin bsica factible inicial es
1 2 3 4 5
( , , , , ) (0, 0, 4,12,18) x x x x x = y 0 z = .
El recuadro dentro de la tabla identifica la matriz inversa de la base
1
B

.
Se toma
2
x como variable bsica entrante por tener el coste reducido
negativo de mayor valor absoluto. Luego su columna es la columna pivote.
Se toma
4
x como variable bsica saliente por tener la menor relacin. Luego
su fila es la fila pivote.
Se actualiza la tabla para anular los elementos de la columna pivote excepto
el elemento pivote que se hace 1 (es decir, se anula el coeficiente de la variable
bsica entrante en la funcin objetivo y se crea una columna de la matriz
identidad en dicha variable) para resolver el sistema de ecuaciones por
eliminacin gaussiana. Se hacen 0 los coeficientes de la funcin objetivo
correspondientes a las variables bsicas.

Variables bsicas
z
1
x
2
x
3
x
4
x
5
x
Cotas Relacin
z
1 3 5/2 30
3
x 1 1 4 4/1=4
2
x 1 1/2 6
5
x 3 1 1 6 6/3=2
I.5 OPTIMIZACIN LINEAL
122 19/01/2004

La nueva solucin bsica factible es
1 2 3 4 5
( , , , , ) (0, 6, 4, 0, 6) x x x x x = y 30 z = .
Se toma
1
x como variable bsica entrante por tener el nico coste reducido
negativo. Luego su columna es la columna pivote.
Se toma
5
x como variable bsica saliente por tener la menor relacin. Luego
su fila es la fila pivote.
Se vuelve a actualizar la tabla del simplex.

Variables bsicas
z
1
x
2
x
3
x
4
x
5
x
Cotas
z
1 3/2 1 36
3
x 1 1/3 1/3 2
2
x 1 1/2 6
1
x 1 1/3 1/3 2

La nueva solucin bsica factible es
1 2 3 4 5
( , , , , ) (2, 6, 2, 0, 0) x x x x x = y 36 z = .
sta es ya la solucin ptima por ser todos los costes reducidos,
correspondientes a las variables no bsicas
5 4
( , ) x x , no negativos 1 3/2
T
N
c
l
=
l
l
.
I.5.4.6. Solucin bsica factible inicial
El mtodo simplex parte de una solucin bsica factible y se mueve en cada
iteracin a otra hasta llegar a la solucin ptima. Resuelve este problema de
optimizacin lineal, presentado en su forma estndar

min
0
T
c x
Ax b
x
=

( ) P
Sin embargo, no siempre es fcil proporcionar una solucin bsica factible
inicial. Como se ha visto, la forma sencilla para hacerlo es partiendo de una
matriz identidad en los coeficientes de las variables bsicas iniciales.
Para ello en las restricciones de tipo se aprovechan las variables de
holgura. En las restricciones de tipo se introduce una variable de exceso (a
veces a sta tambin se la denomina de holgura) con signo negativo 0
i
v y
una variable artificial 0
i
w . Y en las restricciones de tipo = se introduce una
variable artificial 0
i
w .
ij j i ij j i i
j j
a x b a x u b + =


ij j i ij j i i i
j j
a x b a x v w b + =


I OPTIMIZACIN
19/01/2004 123
ij j i ij j i i
j j
a x b a x w b = + =


Con las variables de holgura y artificiales se parte de una matriz identidad
para las variables bsicas y el problema de optimizacin lineal a resolver es

min
, 0
T
a
a
c x
Ax Ix b
x x
+ =

( ( )) P a
siendo
a
x las variables artificiales.
Pero si la solucin incluye variables artificiales no es una solucin factible del
problema original. Por consiguiente, hay que eliminar esas variables
aprovechando el propio mtodo simplex, de modo que en su desarrollo estas
variables dejen de ser variables bsicas. Si al final no se consiguen anular las
variables artificiales el problema original ser infactible.
Obsrvese que en las hiptesis del mtodo simplex se ha supuesto que la
matriz era de rango mximo, sin embargo, esta hiptesis no se ha comprobado
nunca. La razn es que al partir de una matriz identidad de rango mximo la
hiptesis necesariamente se verifica. Sin embargo, si no se parte de una matriz
identidad habra que comprobar que se cumple esta condicin. Obsrvese
tambin que aunque el problema original no la cumpliera, al aadir las variables
artificiales s lo har.
Para lograr anular las variables artificiales se emplean habitualmente dos
mtodos:

el mtodo de la M mayscula
el mtodo de las dos fases

El mtodo de la M mayscula introduce las variables artificiales en la
funcin objetivo original pero penalizadas con un coeficiente M de valor muy
elevado. Este coeficiente de penalizacin puede introducir problemas numricos
por lo que, en general, es preferible el mtodo siguiente.
En el mtodo de las dos fases, la fase I del mtodo simplex tiene como
funcin objetivo la suma de las variables artificiales. Si esta fase I acaba con
valor de la funcin objetivo igual a cero entonces el problema original es factible
y se dispone de una solucin bsica factible siendo no bsicas las variables
artificiales. La fase II restablece la funcin objetivo original y aplica de nuevo el
mtodo simplex hasta alcanzar la solucin ptima a partir de la solucin bsica
factible del final de la fase I.
I.5 OPTIMIZACIN LINEAL
124 19/01/2004
Supngase el problema original ( ) P y el problema una vez que se han
introducido las variables artificiales ( ( )) P a . El mtodo de las dos fases consta de
los siguientes pasos:
Fase I: Resolver el problema
min
, 0
a
a
a
a
z x
Ax Ix b
x x

=
+ =


Existen dos posibles finales de esta fase
0 z

> , entonces el problema ( ) P no es factible.


0 z

= , entonces el problema ( ) P es factible y tenemos una solucin factible


inicial.
Sin embargo, todava es posible distinguir dos casos en esta situacin, antes
de pasar a la fase II:
1. No hay variables artificiales en la base se puede pasar a la fase II.
2. Hay variables artificiales en la base con valor 0 (degeneradas). En este caso,
la solucin obtenida no es una solucin bsica del problema original ya que
incluye variables artificiales. Para eliminarlas de la base, se sustituyen
mediante pivotamiento por cualquier variable original no bsica (incluyendo
de holgura y exceso) cuyo coste reducido sea 0 y cuyo elemento en la fila de
la variable artificial sea distinto de 0 (incluso puede ser negativo). Si
ninguna variable original tuviera un valor distinto de cero en esa fila (la fila
de la variable artificial tiene todo ceros en las variables originales), quiere
decir que esa fila es redundante y puede ser eliminada directamente.
Fase II: Eliminar las variables artificiales del problema
18
y retomar la funcin
objetivo original, recalculando los costes reducidos para la solucin bsica
factible obtenida en la fase I.
Veamos con un ejemplo el mtodo de las dos fases.
1 2
1 2
1 2
1 2
1 2
min 0.4 0.5
0.3 0.1 2.7
0.5 0.5 6
0.6 0.4 6
, 0
z x x
x x
x x
x x
x x
= +
+
+ =
+



18
En muchos casos no se eliminan estas variables, sino que se mantienen aunque no se
cuente con ellas para entrar en la base, ya que aportan informacin al final (
1
B

, ...).
I OPTIMIZACIN
19/01/2004 125
Se convierte el problema a la forma estndar y se aaden las variables
artificiales pertinentes
1 2
1 2 3
1 2 4
1 2 5 6
1 2 3 4 5 6
min 0.4 0.5
0.3 0.1 2.7
0.5 0.5 6
0.6 0.4 6
, , , , , 0
z x x
x x x
x x x
x x x x
x x x x x x
= +
+ + =
+ + =
+ + =


siendo
3
x una variable de holgura,
5
x una variable de exceso y
4
x y
6
x
variables artificiales.
La fase I del mtodo simplex minimiza la suma de las variables artificiales
4 6
1 2 3
1 2 4
1 2 5 6
1 2 3 4 5 6
min
0.3 0.1 2.7
0.5 0.5 6
0.6 0.4 6
, , , , , 0
z x x
x x x
x x x
x x x x
x x x x x x

= +
+ + =
+ + =
+ + =


Si esta fase acaba con la funcin objetivo con valor 0 significa que se ha
encontrado una solucin bsica factible inicial del problema original y se puede
seguir con la fase II. En caso contrario el problema es infactible.

Variables bsicas
z


1
x
2
x
5
x
3
x
4
x
6
x
Cotas
z


1 1 1
3
x 0.3 0.1 1 2.7
4
x 0.5 0.5 1 6
6
x 0.6 0.4 1 1 6

Se transforma la tabla para hacer 0 los coeficientes de las variables bsicas

Variables Bsicas
z


1
x
2
x
5
x
3
x
4
x
6
x
Valores Relacin
z


1 1.1 0.9 1 12
3
x 0.3 0.1 1 2.7 9
4
x 0.5 0.5 1 6 12
6
x 0.6 0.4 1 1 6 10

I.5 OPTIMIZACIN LINEAL
126 19/01/2004
Se elige
1
x como variable bsica entrante y entonces
3
x es la variable bsica
saliente. Se hacen 0 los elementos de la columna pivote excepto el elemento
pivote que se hace 1.

Variables Bsicas
z


1
x
2
x
5
x
3
x
4
x
6
x
Valores Relacin
z


1 0.53 1 3.67 2.1
1
x 1 0.33 3.33 9 27
4
x 0.33 1.67 1 1.5 4.5
6
x 0.2 1 2 1 0.6 3

Se elige
2
x como variable bsica entrante y entonces
6
x es la variable bsica
saliente. Se hacen 0 los elementos de la columna pivote excepto el elemento
pivote que se hace 1.

Variables Bsicas
z


1
x
2
x
5
x
3
x
4
x
6
x
Valores Relacin
z


1 1.67 1.67 2.67 0.5
1
x 1 1.67 6.67 1.67 8 1.2
4
x 1.67 1.67 1 1.67 0.5 0.3
2
x 1 5 10 5 3

Existen dos variables no bsicas
3
x y
5
x con igual coeficiente negativo de
mayor valor absoluto en la funcin objetivo. Se puede elegir cualquiera de ellas
como variable bsica entrante. Arbitrariamente, se elige
3
x y, por tanto,
4
x es
la variable bsica saliente. Se hacen 0 los elementos de la columna pivote
excepto el elemento pivote que se hace 1.

Variables Bsicas
z


1
x
2
x
5
x
3
x
4
x
6
x
Valores
z


1 1 1
1
x 1 5 4 5 6
3
x 1 1 0.6 1 0.3
2
x 1 5 6 5 6

La solucin
1 2 3 4 5 6
( , , , , , ) (6, 6, 0.3, 0, 0, 0) x x x x x x = es ptima y como 0 z

=
sta es una solucin bsica factible inicial para el problema original.
Se plantea entonces la fase II donde se introduce la funcin objetivo original.

Variables Bsicas
z
1
x
2
x
5
x
3
x
4
x
6
x
Valores
z
1 0.4 0.5
1
x 1 5 4 5 6
I OPTIMIZACIN
19/01/2004 127
3
x 1 1 0.6 1 0.3
2
x 1 5 6 5 6

Se deben hacer 0 los coeficientes de las variables bsicas
1
x ,
2
x y
3
x en la
funcin objetivo

Variables Bsicas
z
1
x
2
x
5
x
3
x
4
x
6
x
Valores Relacin
z
1 0.5 1.4 0.5 5.4
1
x 1 5 4 5 6
3
x 1 1 0.6 1 0.3 0.3
2
x 1 5 6 5 6 1.2

A partir de ahora se ignoran los coeficientes de las variables artificiales para
elegir la variable bsica entrante para evitar que stas tomen valor positivo. Por
tanto, se elige
5
x como variable bsica entrante y entonces
3
x es la variable
bsica saliente. Se hacen 0 los elementos de la columna pivote excepto el
elemento pivote que se hace 1.

Variables Bsicas
z
1
x
2
x
5
x
3
x
4
x
6
x
Valores
z
1 0.5 1.1 5.25
1
x 1 5 1 7.5
5
x 1 1 0.6 1 0.3
2
x 1 5 3 4.5

Como no aparecen costes reducidos negativos (excepto en una variable
artificial) la solucin
1 2 3 4 5 6
( , , , , , ) (7.5, 4.5, 0, 0, 0.3, 0) x x x x x x = es ptima y el valor
de la funcin objetivo es 5.25 z = .
I.5.4.7. Mtodo simplex revisado
(DOCT)

El mtodo simplex en formato tabular efecta ms clculos de los
estrictamente necesarios en cada iteracin. De hecho en una iteracin cualquiera
slo se necesitan los coeficientes de la variable bsica entrante (la columna
pivote) no los del resto de variables no bsicas. El mtodo simplex revisado
calcula en cada iteracin slo la informacin que necesita en dicha iteracin. Por
consiguiente, requiere menos clculo y menos almacenamiento.
En forma tabular el mtodo simplex revisado se desarrolla sobre una tabla
de dimensiones ( 1) ( 1) m m + + , siendo m el nmero de restricciones. La tabla
del mtodo simplex revisado es la siguiente:

I.5 OPTIMIZACIN LINEAL
128 19/01/2004
B
x

Valores
1 T T
B
w c B

=
1

T
B
z c B b

=
1
B

b B b

=

Tabla 2.5 Tabla (B) del simplex revisado en una iteracin cualquiera.

En cada iteracin se calculan los costes reducidos de las variables no bsicas
(
T
j j j j j
c c z c w a = = ) fuera de la tabla para aplicar el criterio de
optimalidad y, en su caso, determinar la variable entrante,
t
x . Igualmente, se
calcula la columna pivote fuera de la tabla (
1
t t
y B a

= ) para aplicar el criterio


de salida y determinar la variable bsica saliente (
1

min : 0
s i
it
i m
st it
b b
y
y y

' '
1 1
1 1
= >
! !
1 1
1 1 + +
). El
pivotamiento se hace sobre la tabla actual, suponiendo que existe una columna
adicional (realmente no es aadida) que es la columna pivote.
Obsrvese que todos los elementos necesarios de la iteracin anterior estn
recogidos en esta tabla del simplex revisado y que de una iteracin a otra los
elementos que se obtienen mediante pivotamiento son los mismos, pero
actualizados con la nueva base (consecuencia de la eliminacin gaussiana).
I.5.4.8. Forma producto de la inversa
(DOCT)

El mayor esfuerzo computacional del mtodo simplex se lo llevan los clculos
asociados a la inversa de la base
1
B

. La razn estriba en que, mientras la


matriz base B para problemas grandes suele ser cuasivaca, la inversa tiende a
ser densa. En primer lugar, este hecho disuade del clculo explcito de
1
B

a
partir de B en cada iteracin. En segundo lugar, B cambia slo ligeramente en
cada iteracin luego ser posible actualizar tanto B como
1
B

sin necesidad de
recalcularlas en cada paso tal como se hace en el mtodo simplex explicado
hasta ahora. Para ello se utiliza el mtodo denominado forma producto de la
inversa, que es un avance del mtodo simplex revisado.
Como el cambio en la matriz base B se produce en una columna en cada
iteracin es fcil actualizar dicha matriz y tambin la inversa. Si en una
iteracin cualquiera la columna pivote corresponde a
t
x y la fila pivote es la s ,
la nueva matriz base B se puede calcular a partir de la matriz B anterior
mediante transformaciones elementales simplemente reemplazando la columna s
por la columna pivote
t
y . Como
1
t t
y B a

= o
t t
By a = entonces
B BF = (1.29)
siendo
I OPTIMIZACIN
19/01/2004 129
1
1
t
y
F
1
l


l


l

l
=


l

l


l
( ) l


obtenida a partir de la matriz identidad reemplazando la columna s por
t
y .
Si denominamos
1
E F

= la nueva matriz inversa


1
B

se obtendr a partir
de la anterior premultiplicando por la matriz E .

1 1
B EB

= (1.30)
donde
1
1
E

1
l


l


l

l
=


l

l


l
( ) l

siendo
1
1
t st
st
mt st
y y
y
y y

l
l
l
l
l
=
l
l
l
l
l

l
l

.
La matriz E se llama matriz elemental y esta forma de actualizar la matriz
inversa se denomina forma producto, porque representa la inversa de la base en
cualquier iteracin k como un producto de matrices elementales
k
E de las
iteraciones ( 1, 2, , 2,1) k k , suponiendo que la matriz base inicial es la
matriz identidad.

1
1 2 2 1 k k k
B E E E E


= (1.31)
Veamos la actualizacin de la inversa de la base del ejemplo anterior con la
forma producto de la inversa. En la primera iteracin la columna pivote es
( )
2 2
T
t
y = y el elemento pivote es el segundo, 2 s = . Luego
1
1 2
1



( )
,
1
1
1 2
1 1
E
1




( )
y
1 1
2 1 1 1
1
1 2
1 1
B E B E

1



= = =



( )

En la segunda iteracin la columna pivote es
( )
1 3
T
t
y = y el elemento
pivote es el tercero, 3 s = . Luego
I.5 OPTIMIZACIN LINEAL
130 19/01/2004
2
1 3
1 3



( )
,
2
1 1 3
1
1 3
E
1




( )
y
1
3 2 1
1 1 3 1 3
1 2
1 3 1 3
B E E


= =



( )

En la implantacin informtica ms que actualizar en cada iteracin la
matriz se almacenan las transformaciones elementales de manera compacta.
Cuando el almacenamiento ocupado es excesivo se elimina y se vuelve a
refactorizar la matriz
1
B

desde el principio.
De hecho, ni siquiera es necesario disponer de la inversa de la matriz base
1
B

sino utilizarla en productos de dicha matriz por vectores. Puede ser


postmultiplicacin por un vector como para el clculo del valor de las variables
bsicas
1

b B b

= o de la columna pivote
1
t t
y B a

= o premultiplicacin por un
vector como en el caso del clculo de
1 T T
B
w c B

= .
La postmultiplicacin por un vector se realiza secuencialmente de esta forma

1
1 2 3 2 1
( ( ( ( ( )) )))
k k k k
B a E E E E E a


= (1.32)
premultiplicando en primer lugar el vector a por la matriz elemental
1
E , el
vector resultante premultiplicndolo por
2
E y as sucesivamente. Esta operacin
se denomina transformacin hacia delante (FTRAN) porque recorre hacia delante
las matrices elementales.
La premultiplicacin por un vector se realiza secuencialmente de esta forma

1
1 2 3 2 1
(( ((( ) ) ) ) )
T T
k k k k
c B c E E E E E


= (1.33)
postmultiplicando en primer lugar el vector
T
c por la matriz elemental
1 k
E

, el
vector resultante postmultiplicndolo por
2 k
E

y as sucesivamente. Esta
operacin se denomina transformacin hacia atrs (BTRAN) porque recorre hacia
atrs las matrices elementales.
Cada una de estas operaciones de producto matriz-vector es muy rpida y
simple. Sea E una matriz elemental con un vector en su columna s . El
producto genrico Ea resulta ser

1 1 1 1
1
0
1
s s s
s
m m
m m
a a
a
Ea a
a
a

1
1
1 1







= = +











( ) ( )
( )
( )

(1.34)
I OPTIMIZACIN
19/01/2004 131
de manera que ni siquiera la matriz elemental E necesita ser formada
explcitamente. Se reemplaza el trmino s del vector a por 0 y a dicho vector
se le aade el vector multiplicado por el escalar
s
a .
El producto genrico
T
c E resulta ser

( )
( )
1
1 2
1 2 1 1
1
1
1
T
s m
s
m
T
s s m
c E c c c c
c c c c c c

+
1



( )
=





(1.35)
dejando el vector c sin modificacin excepto en el trmino s que es
reemplazado por el escalar
T
c .
I.5.4.9. Factorizacin de la matriz base
(DOCT)

En cada iteracin del mtodo simplex se realiza el clculo de los costes
reducidos de las variables no bsicas, del valor de las variables bsicas y de la
columna pivote en funcin de la inversa de la base
1
B



1
1
1

T T
B
t t
w c B
b B b
y B a

=
=
=
(1.36)
Estos clculos se pueden expresar tambin como sistemas de ecuaciones en
funcin de la matriz base B

T T
B
t t
w B c
Bb b
By a
=
=
=
(1.37)
La factorizacin LU de la matriz base expresa sta como producto de dos
matrices
B LU = (1.38)
donde L y U son matrices triangular inferior y superior respectivamente. Estas
matrices mantienen la condicin de ser cuasivacas como la matriz A original.
I.5 OPTIMIZACIN LINEAL
132 19/01/2004
Por consiguiente, se pueden aplicar tcnicas especficas de manejo de dichas
matrices.
Con la factorizacin la resolucin de un sistema de ecuaciones se realiza en
dos etapas sin necesidad de invertir la matriz. Por ejemplo, para el clculo del
valor de las variables bsicas

Bb b
LUb b
=
=
(1.39)
Si denominamos
1

b Ub = se resuelve primeramente este sistema triangular
hacia delante para calcular
1

b

1

Lb b = (1.40)
y despus se resuelve este otro sistema triangular hacia atrs para calcular

b

1

Ub b = (1.41)
En cada iteracin del mtodo simplex se actualiza la matriz base B
mediante una matriz elemental F
B BF = (1.42)
siendo
1
1
t
y
F
1
l


l


l

l
=


l

l


l
( ) l


obtenida a partir de la matriz identidad reemplazando la columna s por
t
y .
Tambin se pueden calcular las nuevas matrices L y U .
B LU = (1.43)
Luego, en una iteracin cualquiera, stas se pueden obtener como producto
de matrices elementales y de las matrices originales de la factorizacin de
manera anloga a como se hace en la forma producto de la inversa.
Alternativamente a la factorizacin LU se puede utilizar la descomposicin
de Cholesky

T
B R R = (1.44)
donde R es una matriz triangular superior.
I OPTIMIZACIN
19/01/2004 133
I.5.4.10. Estrategias de clculo de costes reducidos
(DOCT)

Para aplicar el criterio de optimalidad en cada iteracin es necesario calcular
los costes reducidos de las variables no bsicas.
1

T T T
N N B
c c c B N


Hasta ahora se supona que se calculaban los costes reducidos de todas las
variables no bsicas y se seleccionaba como variable bsica entrante a aqulla
con coste reducido de menor valor negativo. Existen otras estrategias de clculo
de costes reducidos y de seleccin de la variable bsica entrante (denominadas
pricing strategies en ingls).
La primera gran divisin es calcular los costes reducidos de todas las
variables no bsicas (full pricing) o slo de algunas (partial pricing). En el
primer caso, se hace mayor esfuerzo computacional en cada iteracin y, en
principio, menor nmero de iteraciones del simplex. En el segundo, lo contrario.
Entre las alternativas para la seleccin de la variable bsica entrante t
estn:

La de coste reducido de menor valor negativo
j
c
La primera con coste reducido negativo
j
c
La de mayor decremento de la funcin objetivo calculado como
j j
c x , siendo

j
c el coste reducido de la variable no bsica y
1

min : 0
i
j ij
i m
ij
b
x y
y

' '
1 1
1 1
= >
! !
1 1
1 1
+ +

La de mayor decremento de la funcin objetivo por incremento unitario de la
variable no bsica calculado como

1
j ij
ij
c y
y +
. Esta estrategia es la ms
utilizada habitualmente, en ingls se denomina steepest-edge.
I.5.5. Dualidad
Supongamos un problema de programacin lineal, denominado problema
primal ( ) P , expresado en forma estndar como

min
0
T
z c x
Ax b
x
=
=

( ) P (1.45)
Supngase que se quiere calcular una cota inferior de la funcin objetivo de
este problema antes de resolverlo. Una forma de hacerlo sera operar con las
filas de la matriz, multiplicndolas por algn valor
T T
y Ax y b = y sumndolas
entre ellas de modo que no se superen los coeficientes de la funcin objetivo
I.5 OPTIMIZACIN LINEAL
134 19/01/2004
T T
y A c , en tal caso el lado derecho resultante de tales operaciones sera una
cota inferior para el valor de la funcin objetivo
T T
y b c x . Desde luego
desearemos que esa cota sea lo ms alta posible, ya que se podra asegurar que
la funcin objetivo no puede ser menor que ese valor.
Por lo tanto, el problema de encontrar esa cota inferior, sera el problema de
encontrar coeficientes
1
y a
m
y para las filas de la matriz tales que al
multiplicarlos por las filas y sumarlos no superen los coeficientes de la funcin
objetivo, es decir, tales que
T
A y c
y tal que el resultado obtenido en el lado derecho al operar sea mximo. Este
nuevo problema planteado a raz del anterior se denomina problema dual ( ) D

0
max
T
T
y b y
A y c
=

( ) D (1.46)
siendo
m
y el vector de variables del problema dual o variable duales.
Cualquier problema de programacin lineal denominado primal tiene
asociado a l otro problema tambin de programacin lineal llamado dual. Tal
como se observa en la tabla siguiente, si el problema primal es de maximizacin
con m restricciones y n variables, el problema dual es de minimizacin con n
restricciones y m variables. Se elige este caso particular de optimizacin para
facilitar la presentacin de la dualidad pero son generalizables a cualquier
problema de optimizacin lineal.

Primal ( ) m n Dual ( ) n m
max
0
T
x
z c x
Ax b
x
=



0
min
0
T
y
T
y b y
A y c
y
=


1
1
max
1, ,
0 1, ,
j
n
j j
x
j
n
ij j i
j
j
z c x
a x b i m
x j n
=
=
=
=
=


0
1
1
min
1, ,
0 1, ,
i
m
i i
y
i
m
ij i j
i
i
y b y
a y c j n
y i m
=
=
=
=
=



Para el ejemplo habitual el problema primal y dual son los siguientes

Primal Dual
I OPTIMIZACIN
19/01/2004 135
1 2
1
2
1 2
1 2
max 3 5
4
2 12
3 2 18
, 0
z x x
x
x
x x
x x
= +


0 1 2 3
1 3
2 3
1 2 3
min 4 12 18
3 3
2 2 5
, , 0
y y y y
y y
y y
y y y
= + +
+
+


1
2
1
2
1
2
max 3 5
1 4
2 12
3 2 18
0
0
x
z
x
x
x
x
x
l
l
l
=
l
l l
l
l l

l l
l
l l
l

l l
l
l l
l
l l
l l
l l
l
l
l
l

l
l
l l
l


1
0 2
3
1
2
3
1
2
3
min 4 12 18
1 3 3
5
2 2
0
0
0
y
y y
y
y
y
y
y
y
y
l
l
l
l
=
l l
l
l
l
l
l
l
l l
l
l
l

l
l
l

l
l
l l
l
l
l
l
l
l
l
l

l
l
l
l
l
l
l l
l


A continuacin se muestra la tabla completa (vista de izquierda a derecha o
viceversa segn sea el problema primal) que permite la transformacin de un
problema primal cualesquiera en su dual y viceversa.

min max
Variable Restriccin
0
0
no restringida




=
Restriccin Variable


=


0
0
no restringida

Tabla 2.6 Tabla de conversin entre primal y dual.

Como caso ejemplo general para observar la conversin entre primal y dual
se presenta el siguiente problema.
I.5 OPTIMIZACIN LINEAL
136 19/01/2004
1 2 3
1 1 2 2 3 3
, ,
11 1 12 2 13 3 1
21 1 22 2 23 3 2
31 1 32 2 33 3 3
1 2 3
min
0, 0, libre
x x x
c x c x c x
a x a x a x b
a x a x a x b
a x a x a x b
x x x
+ +
+ +
+ +
+ + =


1 2 3
1 1 2 2 3 3
, ,
1 11 2 21 3 31 1
1 12 2 22 3 32 2
1 13 2 23 3 33 3
1 2 3
max
0, 0, libre
y y y
y b y b y b
y a y a y a c
y a y a y a c
y a y a y a c
y y y
+ +
+ +
+ +
+ + =


Existe un conjunto de propiedades bsicas de dualidad que ligan las
soluciones del primal y dual.

Teorema: El dual del problema dual es el problema primal.

Propiedad de la simetra
Para cualquier problema primal y su dual, todas las relaciones entre ellos son
simtricas porque el dual de su dual es el primal.

Implcitamente las propiedades que siguen se muestran suponiendo que el
primal es de maximizacin y el dual de minimizacin, pero son completamente
generalizables.

Propiedad dbil de la dualidad
Si x es una solucin factible del primal e y es una solucin factible del dual,
se verifica que
T T
c x b y .

Propiedad fuerte de la dualidad
Si x es una solucin ptima del primal e y es una solucin ptima del dual,
se verifica que
T T
c x b y = .

Propiedad de soluciones bsicas complementarias
En cada iteracin del mtodo simplex se encuentra una solucin bsica
(vrtice) factible del primal y una solucin bsica complementaria infactible del
dual tal que
T T
c x b y = o
0
z y = . Si x no es ptima para el primal y no es
factible para el dual.
Si la solucin bsica del primal est asociada a la base B , la solucin dual
complementaria tiene la expresin
1 T T
B
y c B

. Ntese que son los coeficientes


que aparecen en la expresin de los costes reducidos del problema primal
(denotados entonces por
T
w ) y aparecen, cambiados de signo, en la tabla del
mtodo simplex bajo las variables bsicas iniciales
B
x

. Luego, las variables


duales son los coeficientes de las variables bsicas iniciales en la funcin objetivo
cambiados de signo.
I OPTIMIZACIN
19/01/2004 137

Variables bsicas
z
N
x

B
x
Cotas
z
1
1 T T
N B
c c B N

1 T
B
c B

1 T
B
c B b


B
x 0
1
B N


1
B


1
B b



Tabla 2.7 Tabla (B) del simplex en una iteracin cualquiera.

A partir de esta expresin la comprobacin de la propiedad enunciada es
inmediata y se explican las relaciones de transformacin de un problema a otro.

Propiedad de solucin bsica ptima complementaria
En la iteracin final se encuentra simultneamente la solucin bsica ptima
x del primal y la bsica ptima complementaria y del dual y se verifica

T T
c x b y = o
0
z y = . Es decir, en el ptimo del problema primal la solucin dual
complementaria es tambin ptima para el problema dual.
Adems, esta solucin dual puede ser fcilmente identificada en la forma
tabular del simplex, corresponde a los coeficientes de las variables bsicas
iniciales (variables de holgura y artificiales) en la funcin objetivo. Para las
variables de holgura, la solucin dual complementaria puede ser vista en los
costes reducidos de estas variables, simplemente cambiando el signo. Si la
variable fuera de exceso es todava ms directo, ya que no habra que cambiar el
signo. Slo en el caso de las restricciones donde no se hayan introducido
variables de holgura o exceso, es decir, restricciones de igualdad (o si se
hubieran eliminado las variables artificiales tras la fase I) no es posible ver el
valor de las variables duales asociadas a esas restricciones.

Variables bsicas
z
N
x

B
x
Cotas
z
1 variables duales de
exceso y de holgura
variables duales
originales
1 T
B
c B b


B
x 0
1
B N


1
B


1
B b



Propiedad de la complementariedad de holguras
Si una solucin ptima del primal tiene una variable de holgura o exceso > 0
en una restriccin (es decir, es variable bsica > 0), la variable dual asociada a
esa restriccin tiene valor 0 y, de la misma forma, si una variable original del
primal (no las de holgura, exceso o artificiales) en el ptimo tiene valor > 0, su
correspondiente restriccin del dual no tiene holgura (es decir, su variable
asociada del dual es 0). Por el contrario, si una variable de holgura o exceso del
primal es 0 en el ptimo, la variable dual asociada a dicha restriccin tiene valor
distinto de 0 (positivo o negativo segn corresponda al tipo de restriccin y de
I.5 OPTIMIZACIN LINEAL
138 19/01/2004
funcin objetivo maximizacin o minimizacin) en el ptimo del problema
dual.
Supongamos, los problemas primal y dual ya mencionados
min
0
T
z c x
Ax b
x
=
=

( ) P
0
max
T
T
y b y
A y c
=

( ) D
Introducimos variables de holgura en las restricciones del problema dual
0
max
0
T
T
y b y
A y s c
s
=
+ =


Alternativamente, la propiedad de la complementariedad de holguras para
las soluciones ptimas se puede expresar como
0 1, ,
j j
x s j n = = (1.47)
Esta propiedad impide que los valores de
j
x y de
j
s en las soluciones
ptimas de primal y dual sean simultneamente diferentes de 0. Por otra parte,
permite que ambos sean 0.
Sean dos puntos factibles del problema primal y dual, es decir, que cumplen

0
0
T
Ax b x
A y s c s
=
+ =
(1.48)
Se define el intervalo de dualidad (duality gap) como la diferencia

1
n
T T T
j j
j
c x b y x s x s
=
= =

(1.49)
Para las respectivas soluciones ptimas del problema primal y dual este
intervalo de dualidad es 0 segn la propiedad de la complementariedad de
holguras.

Teorema de dualidad
Las nicas relaciones posibles entre primal y dual son:

I OPTIMIZACIN
19/01/2004 139
Si un problema tiene soluciones ptimas factibles entonces tambin las tiene
el otro. Se pueden aplicar las propiedades dbil y fuerte de dualidad.
Si un problema tiene soluciones factibles y funcin objetivo no acotada, el
otro problema no tiene soluciones factibles.
Si un problema no tiene soluciones factibles, el otro o no tiene soluciones
factibles o no tiene funcin objetivo acotada.

Otra forma de expresar estas mismas relaciones entre primal y dual es el
lema de Farkas. Sea el problema en su forma estndar

min
0
T
c x
Ax b
x
=

(1.50)
Entonces exactamente uno de los dos sistemas de ecuaciones siguientes tiene
solucin.

Sistema 1:
T
A x b = y 0 x para algn
n
x
Sistema 2: 0
T
A y y 0
T
b y > para algn
m
y

Veamos estas propiedades en el caso ejemplo.
1 2
1
2
1 2
1 2
max 3 5
4
2 12
3 2 18
, 0
z x x
x
x
x x
x x
= +

( ) P
El problema dual de ste es
0 1 2 3
1 3
2 3
1 2 3
min 4 12 18
3 3
2 2 5
, , 0
y y y y
y y
y y
y y y
= + +
+
+

( ) D
Sea el problema primal anterior en su forma estndar y la tabla inicial
correspondiente
I.5 OPTIMIZACIN LINEAL
140 19/01/2004
1 2
1 3
2 4
1 2 5
1 2 3 4 5
min 3 5
4
2 12
3 2 18
, , , , , 0
z x x
x x
x x
x x x
x x x x x
=
+ =
+ =
+ + =


Variables bsicas
z
1
x
2
x
3
x
4
x
5
x
Cotas
z
1 3 5 0
3
x 1 1 4
4
x 2 1 12
5
x 3 2 1 18

El problema dual en forma estndar, aunque sin aadir variables artificiales
porque no lo queremos resolver por el mtodo simplex tal como se ha explicado,
y la tabla inicial correspondiente son
0 1 2 3
1 3 4
2 3 5
1 2 3 4 5
min 4 12 18
3 3
2 2 5
, , , , 0
y y y y
y y y
y y y
y y y y y
= + +
+ =
+ =


Variables bsicas
0
y
4
y
5
y
1
y
2
y
3
y
Cotas
0
y 1 4 12 18 0
4
y 1 1 3 3
5
y 1 2 2 5

La solucin bsica factible inicial para el problema primal es
1 2 3 4 5
( , , , , ) (0, 0, 4,12,18) x x x x x = , siendo
3 4 5
T
B
x x x x
l
=
l
l
y
1 2
T
N
x x x
l
=
l
l
, y la
funcin objetivo 0 z = . Para el problema dual la solucin bsica infactible
correspondiente es
1 2 3 4 5
( , , , , ) (0, 0, 0, 3, 5) y y y y y = , siendo
4 5
T
B
y y y
l
=
l
l
y
1 2 3
T
N
y y y y
l
=
l
l
, con funcin objetivo
0
0 y = .
Los valores de las variables del problema dual (variables duales)
corresponden a los coeficientes de las variables del problema primal en la
funcin objetivo. Las variables originales del problema dual en las columnas
correspondientes a las variables bsicas iniciales del problema primal y las
variables de exceso del problema dual en las columnas de las variables no
bsicas iniciales del primal. En cualquier iteracin, excepto la ltima, del
mtodo simplex aplicado al problema primal algn coste reducido de las
I OPTIMIZACIN
19/01/2004 141
variables no bsicas toma valor negativo luego existe una variable dual
negativa, luego el problema dual para esa solucin bsica es infactible.
En el ptimo del problema primal se tienen la siguiente tabla

Variables bsicas
z
1
x
2
x
3
x
4
x
5
x
Cotas
z
1 3/2 1 36
3
x 1 1/3 1/3 2
2
x 1 1/2 6
1
x 1 1/3 1/3 2

La solucin bsica ptima del primal es
1 2 3 4 5
( , , , , ) (2, 6, 2, 0, 0) x x x x x = y
36 z = para el de minimizacin, 36 z = para el original de maximizacin.
sta es la solucin ptima porque los costes reducidos de las variables no
bsicas 1 3/2
T
N
c
l
=
l
l
son no negativos. Las variables duales de este problema
de minimizacin son
1 2 3
( , , ) (0, 3/2, 1) y y y = , los costes reducidos de las
variables bsicas originales cambiados de signo. Las variables duales del
problema original de maximizacin son las opuestas
1 2 3
( , , ) (0, 3/2,1) y y y = .
Para el problema dual la tabla final es la siguiente

Variables bsicas
0
y
4
y
5
y
1
y
2
y
3
y
Cotas
0
y 1 2 6 2 36
3
y 1/3 1/3 1 1
2
y 1/3 1/2 1/3 1 3/2

La solucin bsica ptima del dual es
1 2 3 4 5
( , , , , ) (0, 3/2,1, 0, 0) y y y y y = e
0
36 y = . sta es la solucin ptima porque los costes reducidos de las variables
no bsicas 2 6 2
T
N
c
l
=
l
l
son no negativos. Las variables duales de este
problema son
1 2
( , ) (2, 6) x x = , corresponden a los costes reducidos de las
variables de exceso
4
y e
5
y sin cambiar de signo.
En el ptimo del problema primal la primera restriccin no es activa, por ser
su variable de holgura
3
x estrictamente positiva, mientras que las dos ltimas
restricciones lo son por ser nulas las variables de holgura correspondientes,
4
x y
5
x . Efectivamente, en el problema dual la variable
1
y asociada a la primera
restriccin toma valor 0, mientras que las variables
2
y y
3
y correspondientes a
la segunda y tercera toman valor no nulo.
En cuanto a la interpretacin de las variables duales, stas tienen un claro
sentido econmico en el propio problema primal. Obsrvese que dadas las
relaciones existentes entre ambos problemas se ha dicho que los valores ptimos
I.5 OPTIMIZACIN LINEAL
142 19/01/2004
de ambos problemas son iguales, es decir, suponiendo un problema primal de
maximizacin se tiene que
max min
T T
c x b y =
o lo que es lo mismo,
max min
j j i i
j i
c x b y =


Por lo tanto, si se incrementa una unidad la disponibilidad de un recurso
i
b
el ptimo de la funcin objetivo se ver incrementado en
i
y unidades, es decir,
las variables duales representan el valor marginal de cada recurso, tambin
llamado precio sombra o precio justo, ya que representa la cantidad mxima que
se podra llegar a pagar por una unidad ms de recurso.
Las variables bsicas son estrictamente positivas. Si alguna de las variables
de holgura o exceso es bsica entonces la variable dual de dicha restriccin es 0
(propiedad de la complementariedad de holguras). Econmicamente es evidente,
ya que si hay holgura de un recurso su precio marginal es cero, no se est
dispuesto a pagar por disponer de una unidad ms.
Hay que tener precaucin con esta interpretacin pues todo tiene un lmite,
es decir, esto ser cierto mientras no cambie el valor de las variables duales, lo
que se puede asegurar mientras la base actual sea ptima (ya que como hemos
visto las variables duales tienen la expresin
1 T T
B
y c B

= , luego no dependen de
b ). De ah que una interpretacin completa de una solucin requiera tambin el
anlisis de los lmites en que puede darse esta interpretacin. El clculo de estos
lmites corresponden a lo que se denomina anlisis de sensibilidad que se
presenta en la siguiente seccin.
Veamos a continuacin un ejemplo muy sencillo de planificacin de la
operacin de sistemas de energa elctrica escrito en GAMS. El problema primal
es la minimizacin de los costes variables de explotacin de un sistema para una
hora, denominado problema de despacho econmico. El problema dual
corresponde a la maximizacin de la funcin de utilidad de consumidores y
generadores.
Se trata de un sistema elctrico con tres generadores cuya potencia mxima
es de 200, 200 y 100 MW y con costes variables de 30, 50 y 70 /MWh. La
demanda a cubrir es de 300 MW.
I OPTIMIZACIN
19/01/2004 143
1 2 3
1 1 2 2 3 3
, ,
1 2 3
1 1 1
2 2 2
3 3 3
1 2 3
min
:
:
:
:
, , 0
P P P
c P c P c P
P P P d
P P
P P
P P
P P P

+ +
+ +


1 2 3
1 1 2 2 3 3
, , ,
1 1 1
2 2 2
3 3 3
1 2 3
max
:
:
:
0 , , 0
d P P P
c P
c P
c P






+ + +
+
+
+


set i grupos de generacin / g1 * g3 /

parameter
cv(i) coste variable / g1 30, g2 50, g3 70 /
ptmx(i) potencia mxima / g1 200, g2 200, g3 100 /

scalar dem demanda / 300 /

positive variables P(i) potencia producida
variable coste

equations
fo coste variable total
demanda cobertura de la demanda
prodmax(i) limitacin de la potencia producida ;

fo .. coste =E= sum[i, cv(i) * P(i)] ;
demanda .. sum[i, P(i)] =G= dem ;
prodmax(i) .. P(i) =L= ptmx(i) ;

model opera / all /

solve opera using lp minimizing coste

Solution Report SOLVE opera Using LP From line 23


S O L V E S U M M A R Y

MODEL opera OBJECTIVE coste
TYPE LP DIRECTION MINIMIZE
SOLVER CPLEX FROM LINE 23

**** SOLVER STATUS 1 NORMAL COMPLETION
**** MODEL STATUS 1 OPTIMAL
**** OBJECTIVE VALUE 11000.0000

RESOURCE USAGE, LIMIT 0.530 1000.000
ITERATION COUNT, LIMIT 0 10000

GAMS/Cplex May 15, 2003 WIN.CP.CP 21.0 023.025.041.VIS For Cplex 8.1
Cplex 8.1.0, GAMS Link 23

Optimal solution found.
Objective : 11000.000000


LOWER LEVEL UPPER MARGINAL

---- EQU fo . . . 1.0000
---- EQU demanda 300.0000 300.0000 +INF 50.0000

fo coste variable total
demanda cobertura de la demanda

---- EQU prodmax limitacin de la potencia producida

LOWER LEVEL UPPER MARGINAL

g1 -INF 200.0000 200.0000 -20.0000
g2 -INF 100.0000 200.0000 .
g3 -INF . 100.0000 .

---- VAR P potencia producida

LOWER LEVEL UPPER MARGINAL

g1 . 200.0000 +INF .
I.5 OPTIMIZACIN LINEAL
144 19/01/2004
g2 . 100.0000 +INF .
g3 . . +INF 20.0000

LOWER LEVEL UPPER MARGINAL

---- VAR coste -INF 11000.0000 +INF .

set i grupos de generacin / g1 * g3 /

parameter
cv(i) coste variable / g1 30, g2 50, g3 70 /
ptmx(i) potencia mxima / g1 200, g2 200, g3 100 /

scalar dem demanda / 300 /

positive variable LA precio marginal
negative variables MU(i) precio marginal
variable benef

equations
fo remuneracin total
prgrupo(i) limitacin del pago al grupo ;

fo .. benef =E= dem * LA + sum[i, ptmx(i) * MU(i)] ;
prgrupo(i) .. LA + MU(i) =L= cv(i) ;

model opera / all /

solve opera using lp maximizing benef

Solution Report SOLVE opera Using LP From line 22


S O L V E S U M M A R Y

MODEL opera OBJECTIVE benef
TYPE LP DIRECTION MAXIMIZE
SOLVER CPLEX FROM LINE 22

**** SOLVER STATUS 1 NORMAL COMPLETION
**** MODEL STATUS 1 OPTIMAL
**** OBJECTIVE VALUE 11000.0000

RESOURCE USAGE, LIMIT 0.030 1000.000
ITERATION COUNT, LIMIT 2 10000

GAMS/Cplex May 15, 2003 WIN.CP.CP 21.0 023.025.041.VIS For Cplex 8.1
Cplex 8.1.0, GAMS Link 23

Optimal solution found.
Objective : 11000.000000


LOWER LEVEL UPPER MARGINAL

---- EQU fo . . . 1.0000

fo remuneracin total

---- EQU prgrupo limitacin del pago al grupo

LOWER LEVEL UPPER MARGINAL

g1 -INF 30.0000 30.0000 200.0000
g2 -INF 50.0000 50.0000 100.0000
g3 -INF 50.0000 70.0000 .

LOWER LEVEL UPPER MARGINAL

---- VAR LA . 50.0000 +INF .

LA precio marginal

---- VAR MU precio marginal

LOWER LEVEL UPPER MARGINAL

g1 -INF -20.0000 . .
g2 -INF . . 100.0000
g3 -INF . . 100.0000

LOWER LEVEL UPPER MARGINAL

---- VAR benef -INF 11000.0000 +INF .
I OPTIMIZACIN
19/01/2004 145

El coste variable total resultante es de 11000 . El grupo 1 produce sus 200
MW y el grupo 2 produce 100 MW y es el marginal. Para este problema, la
variable dual de la ecuacin de la demanda indica el incremento en costes
variables del sistema por incremento marginal de la demanda. Tiene un valor de
50 /MWh, lo que quiere decir que si la demanda se incrementara en 1 MW el
coste variable total se incrementara en 50 . Corresponde al coste variable del
grupo marginal.
Una aplicacin directa de la dualidad se plantea a la hora de resolver un
problema ya que, como se ha visto, resolviendo uno u otro se obtiene la misma
solucin ptima. Entonces, dado un problema primal cualquiera y sabiendo que
se puede obtener su dual y resolverlo, cul de los dos se debe resolver?
Sabiendo que el tiempo de resolucin crece proporcionalmente a
3
m , si m n
entonces se resolver el problema primal y si m n se resolver el problema
dual en estas etapas: (i) se pasa del primal al dual, (ii) se resuelve el dual y (iii)
se pasa de nuevo del dual al primal.
I.5.6. Anlisis de sensibilidad
El anlisis de sensibilidad o de postoptimalidad estudia los efectos sobre la
solucin ptima debidos a cambios en cualquier parmetro del problema de
optimizacin lineal A, b o c partiendo de la solucin ptima ya alcanzada.
Observando la tabla 2.8, tabla del simplex en cualquier iteracin, se advierte
que las columnas de la tabla bajo las variables bsicas iniciales
B
x

no dependen
de los parmetros del problema original. Entonces, si stos cambian (b b ,
A A o
N N
c c

) se debern recalcular para los nuevos valores solamente los
bloques de la tabla que se alteran y continuar a partir de ah con el mtodo
simplex.

Variables Bsicas
z
N
x

B
x
Valores
z
1
1 T T
N B
c c B N

1 T
B
c B


1 T
B
c B b


B
x 0
1
B N


1
B


1
B b



Tabla 2.8 Tabla del simplex (B) en una iteracin cualquiera con cambios en
parmetros.

Tambin se pueden determinar los cambios de manera incremental. Si
(b b b + , A A A + y
N N N
c c c

+ ) la tabla presenta ahora este
aspecto

I.5 OPTIMIZACIN LINEAL
146 19/01/2004
Variables Bsicas
z
N
x


B
x


Valores
z

1 T T
N B
c c B N



1 T
B
c B b


B
x
1
B N



1
B b



Tabla 2.9 Cambios incrementales en la tabla del simplex (B) en una iteracin
cualquiera con cambios en parmetros.

Luego las modificaciones de los bloques correspondientes se pueden escribir
como
1

T T T
N N B
c c c B N


= ,
T
z w b = ,
1

b B b

=
El procedimiento genrico completo de anlisis de sensibilidad tiene estas
etapas:

1. introduccin de los cambios en los bloques correspondientes de la tabla del
simplex
2. preparacin para adecuarla a una iteracin del simplex (funcin objetivo con
coeficientes nulos en variables bsicas y matriz identidad en las columnas de
dichas variables)
3. prueba de factibilidad (todas las variables bsicas no negativas)
4. prueba de optimalidad (costes reducidos de las variables no bsicas no
negativos en un problema de minimizacin)
5. nueva iteracin del mtodo simplex o del mtodo simplex dual (ste se ve en
un siguiente apartado)

En el ejemplo habitual se ha hecho mediante GAMS anlisis de sensibilidad
con respecto a las cotas de las restricciones y a los coeficientes de la funcin
objetivo y da estos resultados.
1 2
1
2
1 2
1 2
max 3 5
4
2 12
3 2 18
, 0
z x x
x
x
x x
x x
= +


positive variables x1, x2
variable z

equations fo, r1, r2, r3 ;

fo .. z =e= 3 * x1 + 5 * x2 ;
r1 .. x1 =l= 4 ;
r2 .. 2 * x2 =l= 12 ;
r3 .. 3 * x1 + 2 * x2 =l= 18 ;

model caso / all / ;

caso.optfile= 1

solve caso maximazing z using lp
I OPTIMIZACIN
19/01/2004 147

Solution Report SOLVE caso Using LP From line 15


S O L V E S U M M A R Y

MODEL caso OBJECTIVE z
TYPE LP DIRECTION MAXIMIZE
SOLVER CPLEX FROM LINE 15

**** SOLVER STATUS 1 NORMAL COMPLETION
**** MODEL STATUS 1 OPTIMAL
**** OBJECTIVE VALUE 36.0000

RESOURCE USAGE, LIMIT 0.010 1000.000
ITERATION COUNT, LIMIT 0 10000

GAMS/Cplex May 15, 2003 WIN.CP.CP 21.0 023.025.041.VIS For Cplex 8.1
Cplex 8.1.0, GAMS Link 23


User supplied options:
objrng all
rhsrng all

Optimal solution found.
Objective : 36.000000



EQUATION NAME LOWER CURRENT UPPER
------------- ----- ------- -----
fo -INF 0 +INF
r1 2 4 +INF
r2 6 12 18
r3 12 18 24


VARIABLE NAME LOWER CURRENT UPPER
------------- ----- ------- -----
x1 -3 0 4.5
x2 -3 0 +INF
z 0 1 +INF



LOWER LEVEL UPPER MARGINAL

---- EQU fo . . . 1.000
---- EQU r1 -INF 2.000 4.000 .
---- EQU r2 -INF 12.000 12.000 1.500
---- EQU r3 -INF 18.000 18.000 1.000

LOWER LEVEL UPPER MARGINAL

---- VAR x1 . 2.000 +INF .
---- VAR x2 . 6.000 +INF .
---- VAR z -INF 36.000 +INF .

A continuacin se analizan especficamente algunos cambios: en las cotas de
las restricciones, en un coeficiente de una variable en las restricciones o en la
funcin objetivo, introduccin de una nueva variable o restriccin.
I.5.6.1. Cambios en cotas de restricciones
Observando la tabla 2.8 se ve que los cambios en las cotas de las
restricciones slo afectan al valor de la funcin objetivo y a los valores de las
variables bsicas. Como stos se pueden hacer negativos se puede perder
factibilidad. En este caso, se aplica el mtodo simplex dual que se ver ms
adelante.
Geomtricamente, los cambios en las cotas de las restricciones suponen
desplazar paralelas a s mismas las restricciones. Dado que el punto ptimo
I.5 OPTIMIZACIN LINEAL
148 19/01/2004
viene dado por las restricciones que son activas, al realizar este desplazamiento
tambin se desplaza el punto ptimo. El nuevo punto puede seguir dentro de la
regin factible, en cuyo caso sigue siendo el ptimo o quedar fuera, con lo que
hay que aplicar el mtodo denominado simplex dual para volver a la regin
factible, es decir, recuperar la factibilidad.
Veamos un ejemplo de cambio de la cota en la segunda restriccin del
problema. Las cotas pasan de ser
4
12
18
b
l
l
l
=
l
l
l
l
l
a tomar el valor
4
24
18
b
l
l
l
=
l
l
l
l
l
. La inversa
de la matriz base en la iteracin final era
1
1 1/ 3 1/ 3
1/2
1/ 3 1/ 3
B

=

l
l
l
l
l
y las
variables duales
1
3/2 1
T T
B
y c B

l
= =
l
l
.
El nuevo valor de la funcin objetivo ser
1
4
3/2 1 24 54
18
T T
B
z c B b y b

l
l
l
l
= = = =
l
l
l
l
l
l
l
y el de las variables bsicas
1
1 1/ 3 1/ 3 4 6

1/2 24 12
18 2
1/3 1/3
B
x b B b

l l

l l
l l
= = = =
l l
l l
l l


l l
l l
l
l
l
l
l
, que resulta ser infactible por
tomar un valor negativo.
Estos cambios se pueden realizar tambin de forma incremental
36 3/2 1 12 36 18 54
T
z z z z y b
l

l
l l
= + = + = + = =
l l
l
l

l
l

1
1 1/ 3 1/ 3
2 2 4 6
6 1/2 12 6 6 12
2 2 2 4 1/ 3 1/ 3
B B B B
x x x x B b

l l l l
l

l l l l
l
l l l l
l
= + = + = + = + =
l l l l
l
l l l l
l
l l l l
l
l l l l l
l l l l
l
l
l
l
l

Es interesante determinar tambin el intervalo de valores para los que la
solucin bsica ptima se mantiene factible cambiando nicamente el valor de
i
b
en el problema.
I OPTIMIZACIN
19/01/2004 149
Continuando con el ejemplo de incremento de la cota de la segunda
restriccin
1
2
1/ 3
2

6 1/2 0
2
1/3
b b B b b

l
l
l
= + = +
l
l
l

l
l
l
l
l
l
l
. Por tanto,
2
2
2
2 /3 0
6 /2 0
2 / 3 0
b
b
b
' '
1 1
+
1 1
1 1
1 1
1 1
+
! !
1 1
1 1
1 1

1 1
1 1 + +
.
Es decir,
2
6 b ,
2
12 b y
2
6 b . Luego,
2
6 6 b da el
intervalo de modificacin de la cota de la segunda restriccin sin que se pierda
factibilidad con la misma solucin bsica factible.
I.5.6.2. Cambio en un coeficiente de una variable no bsica
Se analiza el cambio en los coeficientes de una variable no bsica en la
iteracin final o bien en la funcin objetivo
1

T T T
N N B
c c c B N


= o bien en las
restricciones
1
B N

. Estos cambios no afectan a la factibilidad de la solucin


pero pueden afectar a la optimalidad. Geomtricamente, el cambio de un
coeficiente de una variable en la funcin objetivo, sea bsica o no, supone un
cambio de direccin de optimizacin, pero no afecta a la regin factible. As
pues, lo nico que puede ocurrir es que el punto ptimo actual deje de serlo y
haya que iterar para encontrar el nuevo ptimo.
Si
1
0
T T T
N N B
c c c B N


= la solucin sigue siendo ptima. Se puede
determinar el intervalo de valores del coeficiente de la variable no bsica en la
funcin objetivo (cambiando solamente ste) para los que se mantiene la
optimalidad. En caso contrario la solucin no es ptima, sta ser la nueva
variable bsica entrante y se debe continuar con el mtodo simplex.
De acuerdo con esta expresin el coste reducido se puede interpretar como la
cantidad mnima en que tiene que reducirse el coeficiente de la variable en la
funcin objetivo para que interese realizar esa actividad (incrementar desde 0),
o bien como el mximo decremento permisible de dicho coeficiente para
mantener la actual solucin bsica factible como ptima.
I.5.6.3. Introduccin de una nueva variable
Es un caso particular de la situacin anterior. Una variable que no existe es
equivalente a una variable no bsica en la solucin final (igual a 0) a la que se le
cambian los coeficientes de la funcin objetivo y de las restricciones.
Para introducir una nueva variable se calcula el coste reducido de la variable
y si ste es menor que 0 ser una variable cuyo valor interese aumentar su valor
y por lo tanto hay que introducirla en la tabla. Para ello se calcula
1
j
B a

y se
aade como columna de esa variable en la tabla y su coste reducido en la fila de
la funcin objetivo. A continuacin se sigue con las iteraciones del simplex.
I.5 OPTIMIZACIN LINEAL
150 19/01/2004
I.5.6.4. Cambio en un coeficiente de una variable bsica
El cambio en un coeficiente de una variable bsica en la iteracin final (que
era una variable no bsica en la iteracin inicial) en la funcin objetivo supone
un cambio en todos los costes reducidos de las variables no bsicas que han de
ser actualizados. Una vez hecho esto, la solucin actual puede seguir siendo
ptima (con diferente valor de la funcin objetivo) o no, en cuyo caso hay que
seguir iterando con el mtodo simplex (prdida de optimalidad).
El cambio de algn coeficiente de una variable bsica en la matriz de
restricciones
1
B

altera la tabla del simplex de manera que se requiere ponerla


de nuevo en la forma adecuada para eliminacin gaussiana. Esto puede causar
prdida de factibilidad (resuelto mediante mtodo simplex dual) y/o de
optimalidad (resuelto mediante mtodo simplex), e incluso las variables bsicas
actuales pueden dejar de formar una base, requiriendo la introduccin de una
variable artificial que la sustituya en la base.
I.5.6.5. Introduccin de nueva restriccin
Al introducir una nueva restriccin se comprueba si sta se satisface para la
solucin ptima. Si lo hace, la solucin sigue siendo ptima. Si no, se introduce
la restriccin en la tabla final del simplex con la variable de holgura, por exceso
o artificial, que se toma como variable bsica. Se prepara la tabla para
eliminacin gaussiana y se sigue con el mtodo simplex dual ya que se ha
perdido factibilidad.
Es importante apuntar, que dado que la solucin ptima actual no verifica la
restriccin aadida, al introducirla en la tabla y adaptar sta para la
eliminacin gaussiana, necesariamente el valor de la variable bsica en esa
restriccin ha de ser negativo, pues en caso contrario, es que la solucin actual s
verificaba la restriccin.
I.5.7. Mtodo simplex dual
El mtodo simplex dual es conveniente utilizarlo cuando:

Se necesitan introducir muchas variables artificiales para construir una
solucin bsica factible inicial
Se hace infactible la solucin ptima tras una perturbacin en anlisis de
sensibilidad

Opera en el problema primal como si el mtodo simplex se aplicara
simultneamente al problema dual. Maneja soluciones bsicas que satisfacen la
condicin de optimalidad del primal (la solucin dual complementaria es
I OPTIMIZACIN
19/01/2004 151
factible), aunque no sean factibles para el primal, y se mueve hacia la solucin
ptima para conseguir factibilidad del primal, sin perder nunca la factibilidad
dual (optimalidad primal). Es decir, mantiene los coeficientes de la ecuacin de
la funcin objetivo mayores o iguales que cero y los de las cotas de las
restricciones con alguno estrictamente negativo, excepto en el ptimo en que
logra la factibilidad primal.
Este mtodo, por lo tanto, se mueve por fuera de la regin factible,
movindose por vrtices exteriores (infactibles) con mejor valor de la funcin
objetivo que el ptimo que luego alcanza y entra en la regin factible slo al
alcanzar el ptimo.
A continuacin se presenta el procedimiento del mtodo simplex dual

Inicializacin
Se parte de una solucin bsica que cumpla el criterio de optimalidad (dual
factible), es decir, cuyos costes reducidos sean todos mayores o iguales que 0.
Si la solucin es factible (todas las variables bsicas tienen valor 0), la
solucin es ptima. En caso contrario, iterar.

Iteracin
o Determinar la variable bsica saliente (variable bsica con valor
negativo) que determina la fila pivote s .
Se suele elegir dentro de las negativas la mayor en valor absoluto, aunque
esto no garantiza una convergencia ms rpida.
o Determinar la variable bsica entrante
Se ha de utilizar un criterio de relacin semejante al del mtodo simplex
primal para asegurar que se mantiene la factibilidad dual. De entre las
variables que tienen coeficientes < 0 en la fila pivote se selecciona aqulla
que minimice en valor absoluto la relacin entre el coste reducido y su
coeficiente en la fila pivote s :
1
min : 0
j j
sj
j n
sj
c z
y
y

' '
1 1

1 1
<
! !
1 1
1 1
+ +

En el caso de que no haya ningn elemento estrictamente menor que cero
en la fila pivote, quiere decir que el problema dual no est acotado y, por
lo tanto, el problema primal es infactible.
o Determinar la nueva solucin bsica por eliminacin gaussiana.

Veamos con un ejemplo el mtodo simplex dual. Sea el siguiente problema de
programacin lineal
I.5 OPTIMIZACIN LINEAL
152 19/01/2004
1 2
1 2
1 2
1 2
1 2
min 4
3 3
4 3 6
2 4
, 0
x x
x x
x x
x x
x x
+
+
+
+


Como las restricciones son de tipo habra que introducir muchas variables
artificiales y emplear el mtodo de las dos fases para solucionarlo. En su lugar,
se transforman las restricciones en tipo y se aplica el mtodo simplex dual.
1 2
1 2
1 2
1 2
1 2
min 4
3 3
4 3 6
2 4
, 0
x x
x x
x x
x x
x x
+



Una vez transformado en la forma estndar se obtiene el siguiente problema y la
siguiente tabla del simplex
1 2
1 2 3
1 2 4
1 2 5
1 2 3 4 5
min 4
3 3
4 3 6
2 4
, , , , 0
x x
x x x
x x x
x x x
x x x x x
+
+ =
+ =
+ =


Variables Bsicas
z
1
x
2
x
3
x
4
x
5
x Valores
Relacin 1 1/3
z
1 4 1
3
x 3 1 1 3
4
x 4 3 1 6
5
x 1 2 1 4

Obsrvese cmo la tabla tiene las caractersticas necesarias para utilizar el
simplex dual: coeficientes de la funcin objetivo mayores o iguales que 0
(factibilidad del dual, optimalidad del primal) y alguna cota de las restricciones
negativa (no optimalidad del dual, infactibilidad del primal).
Se elige
4
x como variable bsica saliente por tener el mayor coeficiente
negativo en la funcin objetivo del dual (mayor valor negativo de cota). sta
define la fila pivote. Se calcula la relacin entre los coeficientes de la funcin
objetivo y los estrictamente negativos de la fila pivote. Se elige como variable
I OPTIMIZACIN
19/01/2004 153
bsica entrante
2
x , aqulla con menor relacin en valor absoluto, ser la
primera que alcance valor 0 al incrementar
4
x . Se realizan ahora las
transformaciones sobre la tabla para prepararla para la eliminacin gaussiana.

Variables Bsicas
z
1
x
2
x
3
x
4
x
5
x Valores
Relacin 8/5 1
z
1 8/3 1/3 2
3
x 5/3 1 1/3 1
2
x 4/3 1 1/3 2
5
x 5/3 2/3 1

Se elige
3
x como variable bsica saliente y
4
x como variable bsica entrante
y se hacen las transformaciones pertinentes.

Variables Bsicas
1
x
2
x
3
x
4
x
5
x Valores
z
1 1 1 3
4
x 5 3 1 3
2
x 3 1 1 3
5
x 5 2 1 2

sta es la solucin ptima
1 2 3 4 5
( , , , , ) (0, 3, 0, 3, 2) x x x x x = y la funcin objetivo
3 z = . Las variables duales son
1 2 3
( , , ) ( 1, 0, 0) y y y = para las restricciones de
, para las restricciones originales sern
1 2 3
( , , ) (1, 0, 0) y y y = .
Veamos el problema dual del problema original y la tabla inicial del simplex
para este problema
0 1 2 3
1 2 3
1 2 3
1 2 3
max 3 6 4
3 4 4
3 2 1
, , 0
y y y y
y y y
y y y
y y y
= + +
+ +
+ +


Variables Bsicas
0
y
1
y
2
y
3
y
4
y
5
y
Valores Relacin
0
y 1 3 6 4
4
y 3 4 1 1 4 1
5
y 1 3 2 1 1 1/3

Entra la variable
2
y y sale la variable
5
y . Reorganizando la matriz de
restricciones queda la siguiente tabla.

Variables Bsicas
0
y
1
y
2
y
3
y
4
y
5
y
Valores Relacin
I.5 OPTIMIZACIN LINEAL
154 19/01/2004
0
y 1 1 2 2
4
y 5/3 5/3 1 4/3 8/3 8/5
2
y 1/3 1 2/3 1/3 1/3 1

Entra la variable
1
y y sale la variable
2
y . Reorganizando la matriz de
restricciones queda la siguiente tabla, que corresponde a la solucin ptima.

Variables Bsicas
0
y
1
y
2
y
3
y
4
y
5
y
Valores
0
y 1 3 2 3 3
4
y 5 5 1 3 1
1
y 1 3 2 1 1

La solucin ptima es
1 2 3 4 5
( , , , , ) (1, 0, 0,1, 0) y y y y y = y funcin objetivo
0
3 y =
para el problema de maximizacin. Las variables duales son
1 2
( , ) (0, 3) x x = . Es
decir, el mtodo simplex dual es equivalente a aplicar el mtodo simplex al
problema dual.
I.5.8. Programacin lineal paramtrica
As como el anlisis de sensibilidad determinaba los cambios en la solucin
ptima del problema original por cambios discretos en los valores de algn
parmetro, el anlisis paramtrico determina el cambio en la funcin objetivo en
funcin de cambios continuos en los parmetros. Se presenta a continuacin el
anlisis paramtrico frente a cambios en los coeficientes de la funcin objetivo y
cotas de las restricciones.
I.5.8.1. Cambios simultneos en coeficientes de la funcin objetivo
Suponemos la funcin objetivo
1
n
j j
j
z c x
=
=

. Se desea conocer el cambio en


la funcin objetivo ptima
( )
1
( )
n
j j j
j
z c x
=
= +

al cambiar el parmetro
desde 0, supuestos conocidos los pesos
j
para cada variable
j
x .

1. Resolver hasta optimalidad el problema con 0 = por el mtodo simplex.
2. Mediante anlisis de sensibilidad introducir
j j
c = .
3. Modificar la ecuacin de la funcin objetivo para hacer 0 los coeficientes de
las variables bsicas en la funcin objetivo. Aplicar la condicin de
optimalidad (coeficientes de variables no bsicas 0) para obtener el valor
de .
4. Incrementar hasta anular un coeficiente de variable no bsica. sta es la
nueva variable bsica entrante.
I OPTIMIZACIN
19/01/2004 155
5. Encontrar la nueva solucin ptima mediante el algoritmo simplex primal. Ir
al paso 3.

Obsrvese que en este tipo de anlisis la regin factible no cambia, slo se va
modificando la direccin de optimizacin y para los distintos valores del
parmetro se va detectando un nuevo punto ptimo. El proceso de anlisis
lleva a definir zonas del espacio paramtrico, siendo el ptimo en cada una de
ellas un punto extremo diferente.
I.5.8.2. Cambios simultneos en cotas de las restricciones
Se desea conocer el cambio en la funcin objetivo ptima z al cambiar
desde 0 en las cotas de las restricciones
i i
b + , supuestos conocidos los pesos
i
. Los cambios en las cotas
i
b son equivalentes a cambios en coeficientes de la
funcin objetivo del problema dual.

1. Resolver hasta optimalidad el problema con 0 = por el mtodo simplex.
2. Mediante anlisis de sensibilidad introducir
i i
b = .
3. Expresar la condicin de optimalidad de las variables del dual (cotas de las
restricciones 0).
4. Incrementar hasta anular las cotas de las restricciones (la solucin se hara
infactible). sta es la nueva variable bsica saliente en el simplex dual.
5. Encontrar la nueva solucin ptima mediante el algoritmo simplex dual. Ir al
paso 2.

Obsrvese en este caso, que los diferentes valores del parmetro
determinan diferentes regiones factibles, as el espacio paramtrico es dividido
en intervalos de modo que en cada uno de ellos hay una base que es ptima
(unas restricciones activas que determinan el punto extremo ptimo). En este
caso, el proceso de anlisis acaba con un intervalo donde para cualquier valor
del parmetro hay una base que es ptima o con un intervalo del parmetro
donde el problema resulta no factible.
I.5.9. Mtodo de punto interior primal-dual
(DOCT)

La investigacin en mtodos de punto interior aplicados a programacin
lineal naci a consecuencia del terico mal comportamiento del mtodo simplex
en el peor caso (cuando ha de recorrer todos los vrtices del contorno de la
regin factible).
El mtodo simplex requiere un nmero de iteraciones proporcional al nmero
de ecuaciones. Sin embargo, el nmero de iteraciones puede aumentar
I.5 OPTIMIZACIN LINEAL
156 19/01/2004
sustancialmente en problemas degenerados o disminuir drsticamente si se
dispone de una base inicial. Cada iteracin del simplex es poco costosa.
Esencialmente es el clculo de una actualizacin de la inversa de la matriz base.
Los mtodos de punto interior requieren pocas iteraciones para resolver un
problema lineal. Sin embargo, estas iteraciones son muy costosas. Esencialmente
cada iteracin conlleva la resolucin de un sistema de ecuaciones lineales, como
se ver ms adelante.
En 1979 Khachiyan present el mtodo del elipsoide y en 1984 Karmarkar
describi un mtodo proyectivo, reclamando ambos un requerimiento de tiempo
polinmico. De hecho, los mtodos barrera fueron desarrollados originalmente
para programacin no lineal en los aos 60 por Fiacco y McCormick.
El mtodo primal-dual, que se presenta a continuacin, es un caso particular
de ellos y ha dado muy buenos resultados en la prctica. Se denomina as
porque resuelve simultneamente el problema primal y el dual.
Supongamos un problema lineal en su forma estndar

min
0
T
z c x
Ax b
x
=
=

( ) P (1.51)
y su correspondiente problema dual

0
max
T
T
y b y
A y c
=

( ) D (1.52)
siendo
m n
A

,
m
b ,
n
c ,
n
x e
m
y .
Aadiendo variables de holgura en las restricciones del dual tenemos

0
max
0
T
T
y b y
A y s c
s
=
+ =

( ) D (1.53)
Sea x una solucin factible del problema primal ( ) P y ( , ) y s una solucin
factible del problema dual ( ) D , no necesariamente bsicas. Sern ptimos en sus
respectivos problemas si cumplen la propiedad de la complementariedad de
holguras
0 1, ,
j j
x s j n = = (1.54)
I OPTIMIZACIN
19/01/2004 157
La idea principal del mtodo primal-dual es moverse por una secuencia de
soluciones estrictamente factibles
19
en ambos problemas tratando de que se
verifiquen las condiciones de complementariedad de holguras. Especficamente,
se trata de encontrar ( ) x , ( ) y y ( ) s para 0 > que satisfagan el siguiente
sistema de ( ) m n + ecuaciones lineales (denominadas condiciones de
factibilidad) y n ecuaciones no lineales (denominadas condiciones de
complementariedad)

0
0

T
j j
Ax b
x
A y s c
s
x s j
=

+ =

=
(PD) (1.55)
El valor del parmetro se va reduciendo hasta lograr la convergencia.
Mientras 0 > la condicin
j j
x s = implica que 0 x > y 0 s > , es decir, que
ambos son puntos estrictamente factibles. Este mismo avance se puede ver como
una reduccin del intervalo de dualidad (duality gap) hasta alcanzar el valor
cero en la solucin ptima
( )
T T T T T T T T T
c x b y A y s x b y y Ax s x b y x s n = + = + = = (1.56)
El mtodo primal-dual se puede interpretar como una variante del mtodo
de Newton de programacin no lineal que resuelve iterativamente un sistema de
ecuaciones no lineales donde las direcciones de movimiento corresponden a
k
x ,
k
y y
k
s . Para ello se pasa de una solucin estrictamente factible 0
k
x > y
0
k
s > en la iteracin k a otra en la iteracin 1 k + que mantenga estricta
factibilidad (de ah el nombre de mtodo de punto interior) y disminuya el
intervalo de dualidad
1 k k k
x x x
+
+ ,
1 k k k
y y y
+
+ y
1 k k k
s s s
+
+

( )
( )
0
0
k k k
T k k k k T k k
A x x b A x
A y y s s c A y s
+ = =
+ + + = + =
(1.57)
que es un sistema de ( ) m n + ecuaciones lineales en funcin de
k
x ,
k
y e
k
s .
Adems se deben satisfacer las condiciones de complementariedad de
holguras para cada dimensin j

19
Se define una solucin como estrictamente factible en el poliedro Ax b = , 0 x a
aqulla que verifica Ax b = y 0 x > .
I.5 OPTIMIZACIN LINEAL
158 19/01/2004

1 1 1
1
( )( )
k k k k k k k
j j j j j j
k k k k k k k k k
j j j j j j j j
x s x x s s
s x x s x s x s

+ + +
+
= + + =
+ + =
(1.58)
que es un sistema de n ecuaciones no lineales en funcin de
k
j
x y
k
j
s . Para
obtener un sistema de ecuaciones lineales despreciamos el trmino
k k
j j
x s ya
que se supone que los incrementos de las variables en cada iteracin sern
pequeos

1 k k k k k k k
j j j j j j
s x x s x s
+
+ = (1.59)
Representemos la condicin de complementariedad de holguras en forma
matricial en funcin de diag( ) X x = , matriz diagonal donde
j
x ocupa la
posicin j, diag( ) S s = y
( )
1 1
T
e = . Luego x Xe = , s Se = y, por
consiguiente,
XSe e = (1.60)
De forma completa, una iteracin cualquiera del mtodo primal-dual resuelve
este sistema de ecuaciones lineales
0
0
T
S x X s e XSe
A x
A y s
+ =
=
+ =
(1.61)
Obteniendo s en funcin de y de la tercera ecuacin y sustituyendo en
la primera

0
T
S x XA y e XSe
A x
=
=
(1.62)
Premultiplicando por
1
AS

y aprovechando la segunda ecuacin obtenemos


este sistema de ecuaciones lineales para determinar y

1 1
( )
T
AS XA y AS e XSe

= (1.63)
Si definimos la matriz diagonal
1
D S X

y ( ) v e XSe = , los otros


vectores solucin se pueden calcular secuencialmente de esta manera

1
( )
T
s A y
x S v D s

=
=
(1.64)
El coste computacional ms importante de este mtodo est en la resolucin
del sistema de ecuaciones lineales para el clculo de la direccin de movimiento
I OPTIMIZACIN
19/01/2004 159
y . En el caso de columnas densas de A la matriz
T
ADA tiene muchos ms
elementos no nulos que la misma matriz A.
Si en el mtodo simplex tanto el manejo de matrices cuasivacas como la
factorizacin de la inversa son fundamentales para una buena implantacin en
problemas de gran tamao estas tcnicas resultan crticas en el mtodo de punto
interior.
El algoritmo completo parte de una solucin estrictamente factible en la
iteracin k para 0
k
x > ,
k
y y 0
k
s > . Se calculan las direcciones de movimiento
k
x ,
k
y e
k
s que definen las nuevas soluciones
k k
x x + ,
k k
y y + y
k
s s + . Entonces se reduce el valor del parmetro
1 k

+
de la siguiente
iteracin 1 k + y se repite el proceso. El parmetro se puede disminuir
rpidamente (hasta un orden de magnitud en cada iteracin) siempre que se
mantenga estricta factibilidad. Para ello se modifica la manera de actualizar las
soluciones

( , )
( , )
( , )
P P
D D
D D
x x x
y y y
s s s



= +
= +
= +
(1.65)
donde
( )
0
min
j
P j j
x
x x
<
= y
( )
0
min
j
D j j
s
s s
<
= son las longitudes del paso
que aseguran 0 x > y 0 s > . Una estrategia habitual es tomar una longitud de
paso nica min( , )
P D
=

0
0
0
j j
j j
j j
x x
y y
s s

+
+
+
(1.66)
Si adems de asegurar estricta factibilidad en la seleccin de
P
y
D
se
satisface la condicin de centralidad
( , )
k k k
x s C (1.67)
siendo
{ }
( , ) : , 1, ,
k k k
j j
C x s x s j n = = para (0,1) estamos en la
estrategia path following del mtodo primal-dual.
La seleccin de valores adecuados de la longitud de paso , parmetro de
centrado e intervalo de dualidad en cada iteracin son imprescindibles
para obtener en la prctica un comportamiento robusto del algoritmo.
La obtencin de un punto factible inicial puede ser difcil. Sin embargo, las
transformaciones anteriores se pueden modificar para incluir puntos iniciales no
factibles.
I.5 OPTIMIZACIN LINEAL
160 19/01/2004

( )
P
T T
D
S x X s e XSe v
A x b Ax r
A y s c A y s r
+ =
=
+ =
(1.68)
siendo
P
r y
D
r precisamente los residuos de las ecuaciones del primal y dual
respectivamente. Entonces, el clculo de los vectores de actualizacin en el
mtodo primal-dual para puntos iniciales infactibles queda de esta manera

1 1
1
( ) ( )
( )
T
D P
T
D
y ADA AS v ADr r
s A y r
x S v D s

l
=
l
= +
=
(1.69)
El mtodo primal-dual predictivo-correctivo de Mehrotra est diseado para
no ignorar los trminos de segundo orden
j j
x s que anteriormente se haban
despreciado. Esto se realiza en dos etapas. En la etapa predictiva o afn se
predicen (calculan) los valores de x y de s junto con un valor del
parmetro relacionado con los valores de x y de s segn el sistema de
ecuaciones anterior. En la etapa correctiva con paso de Newton (i.e., segunda
derivada) se utilizan estos valores para resolver el siguiente sistema de
ecuaciones lineales

( )
P
T T
D
S x X s e XSe X Se v
A x b Ax r
A y s c A y s r
+ =
=
+ =
(1.70)
donde diag( )
j
X x = e diag( )
j
S s = son los valores obtenidos en la etapa
predictiva.
Los mtodos de punto interior no producen soluciones bsicas ptimas. Por
ello cuando llegan al ptimo se suele cambiar (crossover) al mtodo simplex
para determinar la solucin bsica ptima.
Veamos a continuacin la resolucin de este problema por el mtodo primal-
dual.
1 2
1
2
1 2
1 2
max 3 5
4
2 12
3 2 18
, 0
z x x
x
x
x x
x x
= +


I OPTIMIZACIN
19/01/2004 161
Lo convertimos en un problema de minimizacin con restricciones de
igualdad
1 2
1 3
2 4
1 2 5
1 2 3 4 5
min 3 5
4
2 12
3 2 18
, , , , 0
x x
x x
x x
x x x
x x x x x

+ =
+ =
+ + =


Su problema dual ser el siguiente
1 2 3
1 3
2 3
1
2
3
max4 12 18
3 3
2 2 5
0
0
0
y y y
y y
y y
y
y
y
+ +
+
+


y pasndolo a la forma estndar
1 2 3
1 3 1
2 3 2
1 3
2 4
3 5
1 2 3 4 5
max4 12 18
3 3
2 2 5
0
0
0
, , , , 0
y y y
y y s
y y s
y s
y s
y s
s s s s s
+ +
+ + =
+ + =
+ =
+ =
+ =


I.5.10. Referencias
Bazaraa, M.S. and Jarvis, J.J. (1998) Programacin Lineal y Flujo en Redes.
Limusa.
Bertsimas. D. and Tsitsiklis. J.N. (1997) Introduction to Linear Optimization.
Athena Scientific.
Chvtal. V. (1983) Linear Programming. W.H. Freeman and Co.
Dantzig, G. and Thapa, M. (1997) Linear Programming. Introduction. Springer.
I.5 OPTIMIZACIN LINEAL
162 19/01/2004
Gill, P.E., Murray, W. and Wright, M.H. (1991) Numerical Linear Algebra and
Optimization. Addison Wesley.
Nash. S.G. and Sofer. A. (1996) Linear and Nonlinear Programming. McGraw-
Hill.
Ros Insa, S. (1996) Investigacin operativa. Programacin lineal y
aplicaciones Ed. Centro de estudios Ramn Areces.
Ros Insa, S., Ros Insa, D., Mateos, A. y Martn, J. (1997) Programacin
lineal y aplicaciones. Ejercicios resueltos Ed. Ra-Ma.
Rivier, M. (1998) Modelo probabilista de explotacin de un sistema elctrico:
contribucin a la teora marginalista. Tesis doctoral. Universidad Pontificia
Comillas.
Vanderbei. R.J. (1996) Linear Programming: Foundations and Extensions.
Kluwer Academic Pusblishers.
I.5.11. Biblioteca de problemas
PROBLEMA 1
Dado el problema de programacin lineal:
1 2 3
1 3
2 3
1 2 3
min 3
3 5
1
, , 0
x x x
x x
x x
x x x
+
=
=


Se pide:
a) Dar todas las soluciones bsicas factibles.
b) Comparar la funcin objetivo para todas las soluciones bsicas factibles y
decir cul es la mejor de todas ellas.
c) Es el vector (1335, 4001, 4000) x = una solucin para el problema anterior?
Es mejor solucin que la obtenida en el apartado anterior?
d) Comprobar que la base
3
1
B
1


=


( )
est asociada a una solucin no acotada.
PROBLEMA 2
Resolver los siguientes problemas de programacin lineal, utilizando el
mtodo de penalizaciones y el mtodo de las dos fases, cuando sea necesario.
1. Discutir el problema geomtricamente
I OPTIMIZACIN
19/01/2004 163
max 3 2
4 16
4 16
5 6 30
, 0
x y
x y
x y
x y
x y
+
+
+
+


2. Discutir el problema geomtricamente
max 3 8
2 4
3
, 0
y z
y z
z
y z
+
+ =


3. Discutir el problema geomtricamente
max 3 2
5 0
0
x y
x y
y x
+
+


4.
min 3 5 4 6
2 6
4 9
2 2 3
, , , 0
x y z t
x z t
y z t
z t
x y z t
+ +
+ =
+ + =
=


5.
1 2 3
1 2 3
1 2 3
2 3
3
1 2 3
min 2 3
6
2 4
2 3 10
2
, , 0
x x x
x x x
x x x
x x
x
x x x
+
+ + =
+ + =
+ =



PROBLEMA 3
Dados los siguientes problemas de programacin lineal, plantear los
correspondientes problemas duales:
1.
I.5 OPTIMIZACIN LINEAL
164 19/01/2004
1 2 3
1 2 3
1 2 3
1 2
3
min 3 2
5
7 4
, 0
libre
x x x
x x x
x x x
x x
x
+
+
+


2.
1 2
1 2
1 2
1 2
max 3 4
7
3
, libres
x x
x x
x x
x x
+

+

3.
1 2 3
1 2
1 3
1 2
max
5
8
, 0
x x x
x x
x x
x x
+ +

+ =



PROBLEMA 4
Dados los siguientes problemas
(i)
1 2 3 4
1 2 3
1 3 4
1 2 3
min
2 4
2 3
, , 0
x x x x
x x x
x x x
x x x
+ + +
+ =
+ =


(ii)
1 2 3
1 2 3
1 3
1 2 3
max 2 3
2 5
3
, , 0
x x x
x x x
x x
x x x
+ +
+
=


Se pide:
a) Resolverlos mediante el algoritmo primal.
b) Plantear el dual y resolverlo.
c) Comprobar la relacin existente entre ambas soluciones.

PROBLEMA 5
I OPTIMIZACIN
19/01/2004 165
Dado el problema de programacin lineal
1 2 3 4
1 2 3
1 3 4
1 2 3
min
2 4
2 3
, , 0
x x x x
x x x
x x x
x x x
+ + +
+ =
+ =


Se pide: (cada apartado es independiente de los dems)
a) La solucin ptima del problema si se aade la restriccin
1 2 3
2 x x x + =
b) Idem si se aade la restriccin
1 2 3
3 x x x + =
c) Idem al cambiar el vector
4
3
b
1


=



( )
por
3
1
b
1


=



( )

d) Aadir
5
x con coste
5
3 c = y
5
1
1
a
1


=



( )


PROBLEMA 6
Dado el problema
1 1 2 2 3 3
1 2 3
1 3
1 2 3
min
2 5
2 8
, , 0
c x c x c x
x x x
x x
x x x
+ +
+
+


donde
1
2
3
3 3
2 2
1 1
c
c
c

1 1
1










= +








( )
( ) ( )
[ ] 0,

PROBLEMA 7
Dado el problema de programacin lineal
1 2 3
1 2 3
1 3
1 2 3
min 3 2 4
3 2 5
3
, , 0
x x x
x x x
x x
x x x
+ +
+
+ =


Se pide:
a) La solucin ptima.
I.5 OPTIMIZACIN LINEAL
166 19/01/2004
b) Resolver el problema paramtrico asociado si el trmino independiente es
( ) (5, 3) (4,1)
T T T
b = + , [0, )

PROBLEMA 8
Un ama de casa, tpico ejemplo de la economa sumergida, hace en sus ratos
domsticos libres dos clases de salsa de tomate que vende en jarras de barro al
supermercado de al lado. La primera requiere utilizar 3 kg de tomates y 4 tazas
de vinagre por jarra de salsa. La segunda requiere 5 kg de tomates y 2 tazas de
vinagre. La primera salsa le produce un beneficio neto de 0.4 por jarra y la
segunda 0.5.
El supermercado que evaca su produccin casera hacia los circuitos
comerciales (no sabemos con qu beneficio relativo) le impone a nuestra amiga
las siguientes condiciones:
Que produzca como mnimo 3 jarras a la semana.
Que le compre como mximo 24 kg de tomate y 3 botellas de vinagre a la
semana.
Sabiendo que una botella de vinagre equivale a 16 tazas y que el
supermercado monopoliza la venta de tomate y vinagre en la regin, analizar los
precios a los que estara dispuesta a pagar el tomate y el vinagre nuestra ama de
casa a un primo suyo contrabandista, que se los puede proporcionar recurriendo
a otro de los variados mecanismos de la economa subterrnea.

PROBLEMA 9
Dado el siguiente problema de programacin lineal
1 2 3
1 2 3
1 2 3
1 2 3
max 2 17
5 2 31 1
3 19 0
, , 0
x x x
x x x
x x x
x x x

+
+


Se pide:
a) Resolver por el algoritmo dual.
b) Resolver por el algoritmo primal.
c) Obtener, usando postoptimizacin, la solucin para
1
1 b = .

PROBLEMA 10
Dado el siguiente problema de programacin lineal:
I OPTIMIZACIN
19/01/2004 167
1 2 3
1 2 3
1 2 3
1 2 3
max 2 0.5
2 2 2
1
, , 0
x x x
x x x
x x x
x x x
+ +
+ +


a) Resolver por el algoritmo primal.
b) Identificar razonadamente, en la tabla ptima anterior, el valor de las
variables duales.
c) Verificar las condiciones de holgura complementaria.
d) Hacer una iteracin ms del algoritmo primal, qu ocurre?

PROBLEMA 11
Dado el siguiente problema y su correspondiente tabla ptima
max 4 2
5
2 7
3
, 0
x y
x y
x y
x
x y
+
+
+



x
y
1
s
2
s
3
s
z
0 0 0 2 0 14
1
s 0 0 1 1 1 1
y 0 1 0 1 2 1
x
1 0 0 0 1 3

Se pide:
a) Resolverlo grficamente.
b) La solucin es nica? Si no es as, dar todas las posibles soluciones.
c) Plantear el problema dual.
d) Dar los precios sombra de los recursos.
e) Comprobar las relaciones existentes entre las soluciones primal y dual.
f) Obtener la nueva solucin ptima, sin resolver todo el problema de nuevo, si
se modifica la primera componente del vector b , cambiando de
1
5 b = a
1
4 b = .
g) Obtener la solucin ptima, sin resolver todo el problema de nuevo, si se
aade la restriccin 5 3 15 x y + .
h) Si se parametriza el vector de coeficientes de la funcin objetivo en la
direccin (1,2), es decir, (4, 2) (1, 2) c = + , 0 , para qu valores del
parmetro la solucin actual sigue siendo ptima?
I.5 OPTIMIZACIN LINEAL
168 19/01/2004

PROBLEMA 12
Dado el siguiente problema lineal
1 2
1 2
1 2
1 2
max 2 2
3
2 4
, 0
z x x
x x
x x
x x
= +
+
+


Se pide:
a) Resolverlo grficamente.
b) Resolverlo aplicando el mtodo simplex. Razonar la aplicacin y el resultado.
c) Qu valores del coeficiente de
2
x en la funcin objetivo mantienen la base
ptima?
d) Cul es la solucin si el lado derecho de la segunda restriccin pasa a ser
10? Resolverlo mediante postoptimizacin.
e) Obtener los precios duales de los dos recursos. Cul es su significado? cul
es el sentido de su signo?
f) Determinar, mediante postoptimizacin, la solucin ptima si aadimos al
problema original la restriccin
1 2
2 2 x x + .

PROBLEMA 13
En una fbrica se producen dos tipos de artculos. La semana siguiente se
estima que han de producirse al menos 50 artculos en total. Para producirlos se
usan dos tipos de materia prima, cuyo coste unitario es de 100 y 200 ,
respectivamente. El problema que se plantea para maximizar los beneficios de la
empresa y su tabla ptima son los siguientes:
max 200 400
50
2 80
60
, 0
x y
x y
x y
x y
x y
+
+
+
+



x
y
1
s
2
s
3
s
z
0 0 0 200 0 16000
x
1 0 2 1 0 20
y 0 1 1 1 0 30
3
s 0 0 1 0 1 10

I OPTIMIZACIN
19/01/2004 169
a) Resolver el problema grficamente.
b) Hallar todas las posibles soluciones analticamente.
c) Interpretar todos los elementos del problema y las soluciones.
d) Dar los precios sombra e interpretarlos.
e) Hallar mediante postoptimizacin la nueva solucin si se dispone de 120
unidades de la primera materia en lugar de 80.
f) Estudiar mediante postoptimizacin qu ocurre si la produccin del segundo
producto se limita a 10 unidades.

PROBLEMA 14
Dado el siguiente problema de programacin lineal:
max 2
2
4 16
3 15
, 0
x y
x y
x y
x y
x y
+
+
+
+


a) Resolver el problema mediante el algoritmo del simplex.
b) Obtener la nueva solucin mediante postoptimizacin al aadir la restriccin
4 x y + .

PROBLEMA 15
En una fbrica se producen dos productos, P1 y P2, cuyos beneficios
unitarios son 20 y 70, respectivamente. En la produccin se utilizan dos
materias primas, disponiendo de 30 y 60 unidades cada una. La demanda total
es de al menos 20 productos y ha de ser satisfecha. El planteamiento del
problema es:
max 20 70
3 30
2 4 60
20
, 0
x y
x y
x y
x y
x y
+
+
+
+


a) Resolver mediante el algoritmo del simplex.
b) Dar los valores e interpretacin de las variables originales, las de holgura, las
artificiales (si existen), las duales, de los costes reducidos y de la funcin
objetivo, si la tabla ptima fuera

I.5 OPTIMIZACIN LINEAL
170 19/01/2004

x
y
1
s
2
s
3
s
z
0 0 25 0 5 650
y 0 1 1/2 0 1/2 5
2
s 0 0 1 1 1 10
x
1 0 1/2 0 3/2 15

c) Surge ahora en el mercado la posibilidad de fabricar un tercer producto, P3.
Este producto requiere 1 unidad de la primera materia prima (de la que se
dispone de 30) y 1 unidad de la segunda, siendo su beneficio unitario de 60.
La demanda total sera de 20 unidades igualmente. Sin embargo, este
producto requiere del alquiler de un tipo de maquinaria cuyo coste es de 100
unidades monetarias, independientemente del tiempo que sea usada y de la
cantidad que se produzca. Adems, si se produce alguna cantidad de este
producto P3 han de producirse al menos 8 unidades del producto P2.
Plantear un problema de programacin lineal entera para maximizar el
beneficio de la empresa.

PROBLEMA 16
Dado el siguiente problema de programacin lineal
1 2 3
1 2 3
1
2
3
1 2 3
min 3 5 7
300
200
200
100
, , 0
x x x
x x x
x
x
x
x x x
+ +
+ +


Se pide:
a) Resolver por el algoritmo primal.
b) Resolver el problema dual por el algoritmo primal.

PROBLEMA 17
Dado el siguiente problema de programacin lineal
1 2
1 2
1 2
1 2
1 2
min 4
3 3
4 3 6
2 4
, 0
x x
x x
x x
x x
x x
+
+
+
+


I OPTIMIZACIN
19/01/2004 171
Se pide:
a) Resolver por el algoritmo dual.
b) Resolver el problema dual por el algoritmo primal.

PROBLEMA 18
Convertir el siguiente problema a uno de programacin lineal en forma
estndar
min
1
2 3
x y z
x y
x z
+ +
+
+ =


PROBLEMA 19
Un cierto tipo de funciones poligonales se puede representar como
{ }
1 1 2 2
( ) max , , ,
T T T
p p
f x c x d c x d c x d = + + +
donde
1 2
, , , ,
n
p
x c c c y
1 2
, , ,
p
d d d
Para tal funcin se considera el problema
min ( )
0
f x
Ax b
x
=
=

Mostrar cmo se puede convertir este problema en uno de programacin
lineal.

PROBLEMA 20
Un fabricante desea producir 90 toneladas de una aleacin de modo que el
porcentaje del metal A est entre el 60 y el 70%. En el mercado hay cinco
aleaciones, cuya composicin y precio se indican a continuacin, a partir de las
cuales el metalrgico desea conseguir al precio ms barato la aleacin deseada.

Aleacin Al1 Al2 Al3 Al4 Al5
%A 10 25 50 75 90
%otros 90 75 50 25 10
Precio/tm () 25 40 65 55 30

A tal efecto, el metalrgico modela la situacin con el siguiente problema de
programacin lineal
I.5 OPTIMIZACIN LINEAL
172 19/01/2004
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5 1 2 3 4 5
1 2 3 4 5 1 2 3 4 5
1 2 3 4 5
min 25 40 65 55 30
90
0.1 0.25 0.5 0.75 0.9 0.7( )
0.1 0.25 0.5 0.75 0.9 0.6( )
, , , , 0
x x x x x
x x x x x
x x x x x x x x x x
x x x x x x x x x x
x x x x x
+ + + +
+ + + + =
+ + + + + + + +
+ + + + + + + +


que tras agrupar trminos en cada restriccin, aadir dos variables de holgura
(
2
s y
3
s en la segunda y tercera restriccin, respectivamente) y resolver
(aadiendo una variable artificial en la primera restriccin,
1
a ), proporciona la
siguiente tabla ptima


1
x
2
x
3
x
4
x
5
x
2
s
3
s
1
a Cotas
j j
c z 0 14.0625 37.5 25.9375 0 0 6.25 28.125 2531.25
5
x 0 0.1875 0.5 0.8125 1 0 1.25 0.625 56.25
2
s 0 0 0 0 0 1 1 0.1 9
1
x 1 0.8125 0.5 0.1875 0 0 1.25 0.375 33.75

A la vista de los resultados, se pide (cada apartado es independiente de los
dems):
1. Determinar mediante postoptimizacin las cantidades ptimas y el nuevo
valor de la funcin objetivo si se tuvieran que producir 100 toneladas. A la
vista de lo obtenido qu conclusin puedes sacar?
2. Si el metalrgico pudiera comprar una tonelada de aleacin en el mercado
con los porcentajes deseados del metal A para satisfacer su demanda sin
tener que producirlo l, a qu precio mximo la pagara? por qu? hasta
qu cantidad?
3. Qu precios mximos tendran que tener las aleaciones no utilizadas para
que interesara incluirlas en la aleacin final?
4. Qu ocurrira si en el mercado aparece una nueva aleacin con un 40 % del
metal A y a un precio por tonelada de 30 ?
5. Qu ocurrira si en el mercado slo hay disponible 30 toneladas de la
aleacin Al1?

PROBLEMA 21
Un artesano fabrica trenes y camiones de juguete muy sencillos a base de
tornillos, bloques de plstico y ruedas. Para la prxima semana dispone de 8000,
6000 y 6300 unidades de las citadas componentes. La adquisicin de estas
componentes y los gastos semanales de operacin y amortizacin del local y
utillaje ascienden a 40 .
I OPTIMIZACIN
19/01/2004 173
La estructura de producto de trenes y camiones se refleja en la siguiente
tabla y los beneficios unitarios que reportan son de 1.6 y 1.4 respectivamente.

Tornillos Bloques Ruedas
Tren 10 15 18
Camin 20 10 6

El objetivo del artesano es el de determinar qu gama de produccin le
generar la mayor cantidad de ingresos esta semana. Para ello modela la
situacin con el siguiente modelo lineal
1 2 3 4 5
1 2 3
1 2 4
1 2 5
1 2 3 4 5
max 1.6 1.4 0 0 0
10 20 =8000
15 10 =6000
18 6 =6300
, , , , 0
z x x x x x
x x x
x x x
x x x
x x x x x
= + + + +
+ +
+ +
+ +


del que se adjunta la ltima tabla del mtodo simplex de la que se deduce la
solucin ptima:


1
x
2
x
3
x
4
x
5
x Cotas
j j
c z 0 0 0.025 0.09 0 740
5
x 0 0 0.45 1.5 1 900
2
x 0 1 0.075 0.05 0 300
1
x 1 0 0.05 0.1 0 200

Situmonos sucesivamente e independientemente en los siguientes supuestos
y tomemos las decisiones pertinentes utilizando, cuando corresponda, el anlisis
de postoptimalidad (o sensibilidad):

1. El beneficio unitario de los trenes baja a 1 euro y el de camiones aumenta a
2.2 .
2. Por otro lado existe la posibilidad de adquirir 200 tornillos con un precio
unitario incrementado sobre el precio normal de adquisicin 0.05 . Merece
la pena adquirirlos? Se adquiriran los 200 tornillos si el citado incremento
fuera tan slo de 0.02 ? Por qu?
3. Parece que una de las razones por las que los juguetes han perdido atractivo
es que son un poco pobres de ornamentacin. Cabe la posibilidad de
aadirles algunas ventanillas como adornos: los trenes necesitan 7 ventanillas
por unidad y los camiones 4. El artesano puede adquirir para la prxima
I.5 OPTIMIZACIN LINEAL
174 19/01/2004
semana un mximo de 2100 ventanillas. Cmo afecta esta incidencia a la
produccin ptima de juguetes?
4. Otro enterado en estos asuntos le sugiere la posibilidad de ampliar la gama
de juguetes con la fabricacin de aviones. Un avin necesita 8 tornillos, 12
bloques y 3 ruedas y proporciona un beneficio unitario de 1.1 . Interesa
fabricar el nuevo juguete?
I.5.12. Resultados de la biblioteca de problemas
RESULTADO DEL PROBLEMA 1
a) Slo una:
1 2
( , ) B a a = , solucin (5/3,1,0)
b) Valor de la funcin objetivo 8/3
c) S, es solucin factible (verifica las restricciones) con funcin objetivo
1335+400112000=6664, luego es mejor solucin.
d)
1
1/3
1
B

1


=



( )
,
1
3 3
1/3
1
y B a

1


= =



( )
es un vector con todos sus
componentes < 0 y el coste reducido de
3
x es menor que 0,
3
5/ 3 c = .

RESULTADO DEL PROBLEMA 2
1. ( , ) (66/19, 40/19) x y =
2. No hay solucin factible.
3. Solucin no acotada, direccin (1,1) siendo x y = .
4. ( , , , ) (12/5, 0, 21/10, 3/5) x y z t =
5.
1 2 3
( , , ) (2, 2, 2) x x x =

RESULTADO DEL PROBLEMA 3
1.
1 2
1 2
1 2
1 2
1 2
max 5 4
- 3
- 2
- 7 -1
, 0
w w
w w
w w
w w
w w
+

+ =


2.
1 2
1 2
1 2
1 2
min 7 3
3
- 4
, 0
w w
w w
w w
w w
+
+ =
+ =


I OPTIMIZACIN
19/01/2004 175
3.
1 2
1 2
1
2
1
min 5 8
1
- 1
1
0
w w
w w
w
w
w
+
+



RESULTADO DEL PROBLEMA 4
i.a)
1 2 3 4
( , , , ) (2, 0, 0, -1) x x x x = , 1 z =
i.b)
1 2
( , ) (1, -1) w w = , 1 z =
i.c) Se cumplen las condiciones de holgura complementaria.
ii.a) Solucin no acotada, direccin (1/3,1,1/3).
ii.b) Dual no factible (observar geomtricamente).
ii.c) Obvias.

RESULTADO DEL PROBLEMA 5
a) La solucin verifica la restriccin, sigue siendo ptima.
b)
1 2 3 4
( , , , ) (7 / 3, 2/ 3, 0, -2/ 3) x x x x =
c)
1 2 3 4
( , , , ) (3/2, 0, 0,1/2) x x x x =
d) Solucin no acotada.

RESULTADO DEL PROBLEMA 6
0 1
1 2 3
( , , ) (0, 9/2, 4) x x x = -13 13 z = +
1
1 2 3
( , , ) (6, 0,1) x x x = 17 - 17 z =

RESULTADO DEL PROBLEMA 7
a)
1 2 3
( , , ) (2, 0,1) x x x =
b) 0 4
1 2 3
( , , ) (2 5/ 4 , 0,1 - 1/ 4 ) x x x = + 4
1 2 3
( , , ) (3 , 0, 0) x x x = +

RESULTADO DEL PROBLEMA 8
1 2
1 2 1
1 2 2
1 2 3
1 2
max 0.4 0.5
3 :
3 5 24 :
4 2 3 16 :
, 0
x x
x x y
x x y
x x y
x x
+
+
+
+


Por kg de tomate
2
0.4 / 3 y = /kg e
3
0 y = /taza por el vinagre.
I.5 OPTIMIZACIN LINEAL
176 19/01/2004

RESULTADO DEL PROBLEMA 9
a) (0, 0.5, 0) x =
b) (0, 0.5, 0) x =
c) (0, 0, 0) x =

RESULTADO DEL PROBLEMA 10
a)
1
1 x = ,
2
0 x = ,
3
0 x =
b)
1
1 w = ,
2
0 w =
c) Comprobar que se verifican, evidente con estas soluciones.
d) Al introducir la segunda de holgura, cambia la base pero no la solucin.

RESULTADO DEL PROBLEMA 11
a) No. Las soluciones son (2,3)+(1- )(3,1) .
b)
c)
1 2 3
1 2 3
1 2
1 2 3
min 5 7 3
2 4
2
, , 0
w w w
w w w
w w
w w w
+ +
+ +
+


d) ( )
1 2 3
, , (0, 2, 0) w w w =
e) Mismo valor de la funcin objetivo y condiciones de holgura complementaria.
f) ( , ) (3,1) x y = , slo cambia la holgura que ahora es 0.
g) ( , ) (3, 0) x y =
h) Tan slo para 0 = .

RESULTADO DEL PROBLEMA 12
b) Mltiples soluciones, (2,1) (1 - )(3, 0) + [0,1] 6 z = .
c) La solucin (2,1) sigue siendo ptima para valores entre 2 y 4, y la solucin
(3,0) sigue siendo ptima para valores menores que 2.
d) Mltiples soluciones, (0, 3) (1 - )(3, 0) + [0,1] 6 z = .
e)
1
2 w = ,
2
0 w =
f)
1 2
( , ) (0, 2) x x =

RESULTADO DEL PROBLEMA 13
b) Mltiples soluciones ( , ) (20, 30) (1 - )(40, 20) x y = + [0,1] 16000 z =
d)
1 2 3
( , , ) (0, 200, 0) w w w =
e) ( , ) (0, 60) x y = , 24000 z =
f) ( , ) (50,10) x y = , 14000 z =
I OPTIMIZACIN
19/01/2004 177

RESULTADO DEL PROBLEMA 14
a) ( , ) (4, 3) x y = , 11 z =
b) ( , ) (4, 0) x y = , 8 z =

RESULTADO DEL PROBLEMA 20
1.
1
100 0.625 0 1.25 100 62.5
0 0.1 1 1 0 10
0 0.375 0 1.25 0 37.5
B

1 1 1 1









= =








( ) ( )( ) ( )

Se puede concluir que son los porcentajes de la Al1 (37.5) y de la Al5 (62.5)
sea cul sea la cantidad a producir.
2. La pagara a lo sumo a 28.125 que es el valor de la primera variable dual, y
para cualquier cantidad hasta la demanda (es decir, hasta las 90 toneladas)
ya que nunca se har negativa ninguna variable bsica.
3. Son sus costes menos los costes reducidos, es decir,
Al2: 4014.0625=25.9375, Al3: 6537.5=27.5, Al4:5525.9375=29.0625
4.
1
1 0.375 0.375
0.4 0.7 0 , 30 (30 0 25) 0 3.125
0.625 0.625 0.6 0.4
B

1 1 1








= =







( ) ( ) ( )

Nada, no interesa producir con la nueva.
5. Habra que aadir la restriccin:
1
30 x , quedando (quitando la artificial):


1
x
2
x
3
x
4
x
5
x
2
s
3
s
4
s Cotas
j j
c z 0 14.0625 37.5 25.9375 0 0 6.25 0
2531.25
5
x 0 0.1875 0.5 0.8125 1 0 1.25 0 56.25
2
s 0 0 0 0 0 1 1 0 9
1
x 1 0.8125 0.5 0.1875 0 0 1.25 0 33.75
4
s 1 0 0 0 0 0 0 1 30

Reorganizando (a la ltima restar la penltima solamente):


1
x
2
x
3
x
4
x
5
x
2
s
3
s
4
s Cotas
j j
c z 0 14.0625 37.5 25.9375 0 0 6.25 0 2531.25
I.5 OPTIMIZACIN LINEAL
178 19/01/2004
5
x 0 0.1875 0.5 0.8125 1 0 1.25 0 56.25
2
s 0 0 0 0 0 1 1 0 9
1
x 1 0.8125 0.5 0.1875 0 0 1.25 0 33.75
4
s 0 0.8125 0.5 0.1875 0 0 1.25 1 3.75

Aplicando el dual entra la tercera de holgura y sale la cuarta


1
x
2
x
3
x
4
x
5
x
2
s
3
s
4
s Cotas
j j
c z 0 10 35 25 0 0 0 5 2550
5
x 0 1 1 1 1 0 0 1 60
2
s 0 0.65 0.4 0.15 0 1 0 0.8 6
1
x 1 0 0 0 0 0 0 1 30
4
s 0 0.65 0.4 0.15 0 0 1 0.8 3

RESULTADO DEL PROBLEMA 21
1.

1
x
2
x
3
x
4
x
5
x Cotas
j j
c z

0 0 0.115 0.01 0 860
5
x 0 0 0.45 1.5 1 900
2
x 0 1 0.075 0.05 0 300
1
x 1 0 0.05 0.1 0 200

Cambia la solucin actual:


1
x
2
x
3
x
4
x
5
x Cotas
j j
c z 0.1 0 0.11 0 0 880
5
x 15 0 0.3 0 1 3900
2
x 0.5 1 0.05 0 0 400
4
x 10 0 0.5 1 0 2000

2. Incrementando en 0.05 no interesa, la variable dual es 0.025. Incrementando
0.02 s interesa y la nueva solucin es
1
0.45 1.5 1 8200 990
0.075 0.05 0 6000 315
0.05 0.1 0 6300 190
B b

1 1 1









= =








( )( ) ( )
.
El nuevo beneficio es 740+200*(0.0250.020)=741.
I OPTIMIZACIN
19/01/2004 179
3. Hay que aadir la restriccin
1 2
7 4 2100 x x + que no es verificada por la
solucin actual. La tabla que se tendra sera:
4.
1
x
2
x
3
x
4
x
5
x
6
x Cotas
j j
c z 0 0 0.025 0.09 0 0 740
5
x 0 0 0.45 1.5 1 0 900
2
x 0 1 0.075 0.05 0 0 300
1
x 1 0 0.05 0.1 0 0 200
6
x 0 0 0.05 0.5 0 1 500

Resultando la siguiente tabla ptima:

1
x
2
x
3
x
4
x
5
x
6
x Cotas
j j
c z 0 0 0.034 0 0 0.18 650
5
x 0 0 0.3 0 1 3 2400
2
x 0 1 0.07 0 0 0.1 350
1
x 1 0 0.04 0 0 0.2 100
4
x 0 0 0.1 1 0 2 1000
5. El coste reducido sera:
8
1.1 (0.025 0.09 0) 12 0.18
3
1



( )
. No interesa.
I OPTIMIZACIN
19/01/2004 181

Вам также может понравиться