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

T

ecnicas Cl
asicas de Optimizaci
on.
Parte I: Programacion Lineal y No Lineal
Mara Merino Maestre

Facultad de Ciencia y Tecnologa


Departamento de Matematica Aplicada y
Estadstica e Investigacion Operativa
UPV/EHU

Indice general
Pr
ologo

Programaci
on Lineal y No Lineal

1 Programaci
on Lineal
1.1 Introduccion a la Investigacion Operativa . .
1.1.1 Definiciones . . . . . . . . . . . . . .
1.1.2 Clasificacion . . . . . . . . . . . . . .
1.1.3 Metodologa . . . . . . . . . . . . . .
1.2 Introduccion a la Programacion Lineal . . .
1.2.1 Formulacion matematica . . . . . . .
1.2.2 Transformaciones . . . . . . . . . . .
1.2.3 Clasificacion . . . . . . . . . . . . . .
1.2.4 Resolucion grafica . . . . . . . . . . .
1.3 El metodo Smplex . . . . . . . . . . . . . .
1.3.1 Resolucion algebraica . . . . . . . . .
1.3.2 Resolucion tabular . . . . . . . . . .
1.3.3 Casos especiales . . . . . . . . . . . .
1.3.4 Identificacion de SBF iniciales . . . .
1.3.5 Teora del Metodo Smplex . . . . . .
1.4 Teora de dualidad y analisis de sensibilidad
1.4.1 Propiedades de la Teora de Dualidad
1.4.2 Interpretacion economica . . . . . . .
1.4.3 Analisis de sensibilidad . . . . . . . .

7
7
7
8
10
11
12
13
16
16
20
21
27
30
34
36
48
49
51
53

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

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

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

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

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

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

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

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

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

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

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

2 Programaci
on No Lineal
57
2.1 Introduccion a la Programacion No Lineal . . . . . . . . . . . . 57
2.2 Tipos de problemas de PNL . . . . . . . . . . . . . . . . . . . . 62
i

INDICE GENERAL
2.3 Optimizacion no restringida . . . . . . . . .
2.4 Optimizacion restringida: condiciones KKT
2.5 Programacion cuadratica . . . . . . . . . . .
2.5.1 Formulacion cuadratica . . . . . . . .
2.5.2 Condiciones KKT para programacion
2.5.3 Metodo Smplex Modificado . . . . .

1
. . . . . .
. . . . . .
. . . . . .
. . . . . .
cuadratica
. . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

67
72
73
73
75
77

INDICE GENERAL

Pr
ologo
La asignatura T
ecnicas Cl
asicas de Optimizaci
on forma parte del Master
en Modelizacion e Investigacion Matematica, Estadstica y Computacion, vease
http://riemann.unizar.es/matg5/.
Esta asignatura pretende introducir al alumnado en metodologas modernas
que contribuyen a resolver problemas de decision donde hay que optimizar el
uso de recursos limitados en contextos aplicados (industriales, economicos, ...).
La asignatura esta dividida en tres partes:
Parte I: Programacion Continua (Lineal y No Lineal).
Parte II: Programacion Entera.
Parte III: Programacion Estocastica.
Se recomienda consultar la siguiente bibliografa y enlaces: para Optimizacion los libros [1, 2, 3, 4, 5], para Optimizacion No Lineal [6, 7], para
Optimizacion Estocastica [8, 9, 10].
Sobre software de Optimizacion pueden consultarse las siguientes referencias:
COIN-OR: el codigo abierto de la Comunidad de Investigacion Operativa
COmputational INfrastructure for Operations Research se puede consultar en [11] y una gua en [12].
CPLEX: el optimizador de IBM ILOG CPLEX se puede consultar en [13],
as como una gua en [14].
XPRESS: la edicion de estudiante del sofware FICO Xpress Optimization
suite esta disponible en la web [15].
GUSEK: el GLPK Under Scite Extended Kit esta disponible en la pagina
[16].

INDICE GENERAL

Parte I
Programaci
on Lineal y No
Lineal

Captulo 1
Programaci
on Lineal
1.1
1.1.1

Introducci
on a la Investigaci
on Operativa
Definiciones

En que consiste la Investigacion Operativa? Veamos algunas de las definiciones dadas:


Un metodo cientfico para dotar a los departamentos ejecutivos de una
base cuantitativa para las decisiones que tengan que ver con las operaciones bajo su control (McCord y Kimball, 1951)
El uso de la logica y de la matematica de forma que no interfieran con
el sentido com
un (Woolsey, 1980).
La ciencia que estudia el modelado de sistemas probabilsticos y determinsticos que se originan en la vida real desde un punto de vista de
toma de decisiones optimas (Hillier y Lieberman, 1990).
El estudio de como formular modelos matematicos para problemas complejos de administracion e ingeniera y como analizarlos para tener una
vision de las posibles soluciones (Rardin, 1998).
Un enfoque cientfico para la toma de decisiones ejecutivas, que consiste
en el arte de modelar situaciones complejas, la ciencia de desarrollar
tecnicas para resolver dichos modelos y la capacidad de comunicar efectivamente los resultados (Lawrence y Pasternak, 1998).
7

LINEAL
CAPITULO 1. PROGRAMACION

Rama interdisciplinaria de la Matematica Aplicada que emplea la modelizacion matematica, estadstica y algoritmos de optimizacion para alcanzar soluciones optimas (o cuasi-optimas) a complejos sistemas reales,
con la finalidad de mejorar su funcionamiento. Ayuda en el proceso de
toma de decisiones utilizando metodos cientficos (Wikipedia [17], 2013).
Esta disciplina, tambien conocida como Ciencia de la Gestion, Teora de la
Toma de Decisiones, Programacion Matematica, Optimizacion, Ciencia para
la Mejora, cuenta con aplicaciones en m
ultiples campos tan amplios como el
industrial, economico y cientfico (vease [18]). En cuanto a las aplicaciones en
beneficio de la Humanidad y de la Sociedad, pueden consultarse libros como
por ejemplo, [19] y [20] de Russell Lincoln Ackoff (1919-2009), de la Universidad
de Penssylvania y Charles West Churchman (1913-2004), de la Universidad de
California, Berkeley.
Las Sociedades de Investigacion Operativa estan organizadas bajo la federacion mundial fundada en 1959 IFORS (International Federation of Operational Research Societies, [21]) a la que pertenecen unas 30000 personas y
cuya mision es la promocion de la Investigacion Operativa como disciplina
academica y como profesion. La Federacion agrupa unos 45 pases en cuatro regiones geograficas: Asia Pacfico, Europa, America del Norte y America
Latina. Cada region a su vez cuenta con su propia asociacion que agrupa
las sociedades creadas en su entorno, las primeras constitudas a mediados del
siglo XX: en Europa se encuentra EURO (Association of European Operational
Research Societies, 1976) a la que pertenece la espa
nola SEIO (Sociedad de
Estadstica e Investigacion Operativa, 1962); America del Norte cuenta con
la Asociacion NORAM (Association of North American Operations Research
Societies, 1987) y el Instituto INFORMS (Institute for Operations Research
and Management Sciencies, 1995); a Asia Pacfico pertenece APORS (Association of Asian-Pacific Operational Research Societies, 1985); y por u
ltimo en
Latinoamerica se establece ALIO (Asociacion Latino-Iberoamericana de Investigacion Operativa, 1982).

1.1.2

Clasificaci
on

Los problemas que aborda la Investigacion Operativa se pueden clasificar de


diferentes formas.
Atendiendo a la certidumbre de los datos, se dividen en:
(a) modelos determinsticos, en los cuales todos los datos se suponen conocidos;

A LA INVESTIGACION
OPERATIVA
1.1. INTRODUCCION

(b) modelos probabilsticos, cuando los datos se consideran inciertos y vienen


dados por distribuciones de probabilidad; y
(c) modelos hbridos, como combinacion de los anteriores.
Seg
un el objetivo del problema se pueden clasificar en modelos de optimizacion, cuando el objetivo es maximizar o minimizar una cantidad, sujeta a
una serie de limitaciones que restringen la decision; y modelos de prediccion,
cuando el objetivo es predecir o describir sucesos dadas ciertas condiciones.
Entre los modelos de optimizaci
on, se encuentran:
Problemas de secuenciacion, como puede ser decidir el orden a procesar
en el mnimo tiempo un n
umero de trabajos en varias maquinas que
requieren tiempos diferentes.
Problemas de localizacion, como los problemas de asignacion que consisten en asignar recursos limitados (materias primas, inversion, horasmaquina, horas-hombre) de la manera mas eficiente (costo mnimo, mnimo
tiempo, mnimo de desperdicios) o los problemas de transporte o transbordo, que distribuyen objetos desde ciertos orgenes a varios destinos.
Problemas de rutas, tratan de encontrar la ruta optima desde un origen
a un destino cuando existen varias alternativas posibles, como el del
viajante de comercio que tiene que visitar varias ciudades una u
nica vez
antes de volver a su origen.
Problemas de b
usqueda de informacion para tomar una decision, como
realizar exploraciones de la tierra para encontrar recursos naturales.
En cuanto a ejemplos de modelos de predicci
on, estan los siguientes:
Problemas de reemplazamiento o sustitucion, se pueden realizar de manera preventiva o correctiva, por vejez, desgaste o muerte s
ubita. Se ocupan de decidir el tiempo adecuado para reemplazar los equipos que fallan o se deterioran, como decidir cuando cambiar de coche, ordenador o
maquinaria.
Problemas de inventario o existencias, consisten en determinar la cantidad ideal de productos que se deben tener disponibles en una tienda
o almacen. Responden a las decisiones de cuantos artculos reponer y
cuando hacerlo.

LINEAL
CAPITULO 1. PROGRAMACION

10

Problemas de colas o lneas de espera, se ocupan de estudiar el n


umero
de clientes que solicita un servicio en funcion del tiempo de llegada del
cliente y de espera hasta ser atendido. Buscan el n
umero de instalaciones
necesarias para minimizar la espera, como puede ser la atencion en un
banco o supermercado.
Problemas de competencia o teora de juegos, cuando dos o mas sujetos
compiten por un recurso. Como la obtencion de un contrato para prestar
un servicio, la efectividad de las campa
nas publicitarias o la lealtad de
los clientes frente a la aparicion de otra marca.

1.1.3

Metodologa

En cuanto a la metodologa que emplea la Investigacion Operativa, puede


reducirse a los siguientes pasos:
1. Analisis de la realidad y formulacion del problema, el analista debe observar desde diferentes puntos de vista, consciente de las realidades sociopolticas y economicas, para definir de forma clara los objetivos y
limitaciones.
2. Modelado matematico representativo, se deben identificar las variables
de decision, la funcion objetivo y las restricciones del problema
3. Resolucion del modelo, en esta fase se elige la tecnica de resolucion y se
generan las soluciones.
4. Presentacion de resultados, se lleva a cabo el analisis y verificacion de
soluciones, se analiza la representatividad del modelo y se realiza analisis
de sensibilidad.
5. Implementacion de resultados: ejecucion, se preparan los informes y presentaciones y se supervisa la aplicacion.
Como la realidad es compleja, muchos de estos modelos presentan las siguientes caractersticas:
1. Son de dimensiones enormes, en terminos del n
umero de variables de
decision o del n
umero de condiciones.
2. Son estocasticos, es decir, hay parametros cuyos valores no pueden ser
controlados por la persona que toma la decision y son desconocidos.

A LA PROGRAMACION
LINEAL
1.2. INTRODUCCION

11

La incertidumbre puede deberse a carencia de datos fiables, errores de


medida o parametros que representan informacion sobre el futuro.
3. Son enteros, es decir, intervienen variables enteras. Esto ocurre en
muchas situaciones de la vida real: las variables representan objetos indivisibles; o en particular problemas binarios en los que aparecen decisiones
de tipo s/no, comprar/vender, etc.
4. Son no lineales, es decir, tanto la funcion objetivo como alguna de las
condiciones son funciones no lineales.
Cada una de estas caractersticas, dimension, estocasticidad, integralidad y no
linealidad, dificultan enormemente la resolucion del problema, considerandose
problemas de complejidad computacional elevada.

La solucion es clave para guiar a muchas organizaciones en areas tales como


la toma de decisiones en planificacion de inversiones financieras, gestion de activos y pasivos, planificacion y distribucion de la produccion, planificacion de
cadenas de montaje, planificacion de la generacion de energa, planificacion
de los recursos hidraulicos, control del trafico aereo, asignacion de rutas de
vehculos, agricultura y poltica p
ublica, por citar algunos de los muchos campos de aplicacion. Los problemas con las caractersticas anteriores se transforman en modelos matematicos de optimizacion.

1.2

Introducci
on a la Programaci
on Lineal

La toma de decisiones es inherente a la mayora de los aspectos de las finanzas,


la economa, la empresa, la industria y las actividades sociales y polticas. En
la actualidad, los procesos de decision basados en modelos son esenciales como
buena practica de la gestion y organizacion de las empresas.
Una de las herramientas que actualmente proporciona decisiones mas fiables es la Optimizacion, campo en el que confluyen las Matematicas y las
Ciencias de la Computacion. El proposito de esta es construir y resolver de
forma efectiva modelos realistas de la situacion que se estudia, con objeto de
permitir que los tomadores de decisiones exploren una amplia variedad de posibles alternativas. Mas concretamente, la Optimizacion se refiere al analisis y
resolucion de problemas en que se debe tomar una solucion entre un conjunto
de soluciones factibles. El objetivo es encontrar la mejor solucion (no necesari-

12

LINEAL
CAPITULO 1. PROGRAMACION

amente u
nica) y las elecciones se comparan de acuerdo a una cierta funcion,
llamada funci
on objetivo.
Entre los objetivos de esta ciencia interdisciplinaria, estan los clasicos de
maximizacion de beneficios o rendimiento y minimizacion de perdida, costes o
riesgo, a los que se suman -entre otros- los objetivos de eficiencia (asignacion de
recursos a actividades), la optimizacion espacio-temporal (por ejemplo, mnima
espera en una cola o mnima distancia a recorrer en un viaje) y la mejora en
terminos de equidad (como la minimizacion de diferencias entre individuos en
cuanto al reparto de trabajo o la distribucion de vacaciones).
El reconocimiento de la importancia de este tipo de problemas coincidio
con el desarrollo en 1947 de un metodo eficiente, el metodo smplex por George
Bernard Dantzig (1914-2005) y un medio, el ordenador, para aplicarlo. Una
gran parte de los fundamentos de la Programacion Lineal se descubrio entre
1947 y 1949, un periodo sorprendentemente corto de tiempo de intensa labor de investigacion y desarrollo. En la actualidad, el algoritmo smplex es
una herramienta estandar que ha ahorrado enormes cantidades de dinero a la
mayora de las empresas en los pases industrializados y su extension a otros
sectores de la sociedad avanza rapidamente. A comienzos del milenio, este algoritmo aparece en la revista Computing in Science & Engineering [22] elegido
por John F. Nash como uno de los diez algoritmos de mayor influencia en el
desarrollo y la practica de la ciencia y la ingeniera en el siglo XX.

1.2.1

Formulaci
on matem
atica

Una de las areas mas importantes y activas de la Optimizacion es la Programacion Lineal. Los problemas que trata se basan en la optimizacion (minimizacion o maximizacion) de una funcion lineal conocida como funcion objetivo, sujeta a una serie de restricciones lineales de igualdad o desigualdad.
Matricialmente, un problema de PL en notacion estandar (con igualdades)
se puede expresar como:
max
z = cx
s.a
Ax = b
(1.1)
x0
donde cx es la funcion objetivo a maximizar (o minimizar), x IR+n representa
el vector de variables a determinar, c IRn es el vector de costos asociado a
las variables, A Mmn es la matriz de coeficientes y b IR+m el vector
de terminos independientes (o rhs) relativos a las restricciones. Es decir, el
problema (1.1) es equivalente al problema (1.2) en notacion extendida:

A LA PROGRAMACION
LINEAL
1.2. INTRODUCCION

13

maximizar z = c1 x1 + c2 x2 + . . . + cn xn
sujeto a

a11 x1 + a12 x2 + . . . + a1n xn = b1


a21 x1 + a22 x2 + . . . + a2n xn = b2

am1 x1 + am2 x2 + . . . + amn xn = bm

(1.2)

x1 , x2 , . . . , xn 0
Definici
on 1.1. Se llama regi
on factible del problema al conjunto de posibles
valores que satisfacen todas las restricciones, R = {x IRn : Ax = b, x 0}.
Una soluci
on del problema (1.1) se dice soluci
on factible si satisface todas
las restricciones del mismo, es decir, x R. Una solucion factible se dice
soluci
on
optima si proporciona el valor mas favorable a la funcion objetivo,
es decir, x R es optima si x R, cx cx.
La funcion objetivo puede representar un problema de maximizacion o
minimizacion. En un problema concreto, las restricciones pueden venir dadas
en terminos de igualdad o desigualdad ( o ) y las variables pueden ser no
negativas (x 0), no restringidas (x IR) o acotadas (l x u). Sin
embargo, dichas variantes pueden transformarse en el problema dado en forma
estandar en (1.1) a
nadiendo variables adicionales. A lo largo de este curso,
consideraremos problema en notacion estandar (con desigualdades) a:
max
s.a

z = cx
Ax b
x0
y su version equivalente en notacion extendida:

(1.3)

maximizar z = c1 x1 + c2 x2 + . . . + cn xn
sujeto a

a11 x1 + a12 x2 + . . . + a1n xn b1


a21 x1 + a22 x2 + . . . + a2n xn b2

am1 x1 + am2 x2 + . . . + amn xn bm


x1 , x2 , . . . , xn 0

1.2.2

Transformaciones

Transformar un problema a notacion estandar:

(1.4)

14

LINEAL
CAPITULO 1. PROGRAMACION
1. Transformaciones sobre la funcion objetivo:
Transformar un problema de mnimo en un problema de maximo:
max(z) = min z
2. Transformaciones sobre las restricciones:
Transformar una restriccion con rhs negativo:
si existe i tal que bi < 0, entonces basta multiplicar por (1) la
restriccion.
Transformar desigualdades en igualdades:
si aparece una restriccion del tipo ai1 x1 + ai2 x2 + . . . + ain xn bi ,
entonces definimos una nueva variable de holgura xn+1 0 con costo
nulo, cn+1 = 0, de manera que reemplazamos la desigualdad por la
siguiente igualdad de forma equivalente:
ai1 x1 + ai2 x2 + . . . + ain xn + xn+1 = bi .
Transformar desigualdades en igualdades:
si aparece una restriccion del tipo ai1 x1 + ai2 x2 + . . . + ain xn bi ,
entonces definimos una nueva variable de superavit xn+1 0 con
costo nulo, cn+1 = 0, de manera que reemplazamos la desigualdad
por la siguiente igualdad de forma equivalente:
ai1 x1 + ai2 x2 + . . . + ain xn xn+1 = bi .
3. Transformaciones sobre las variables:
Transformar una variable no positiva en una variable no negativa:
si existe j tal que xj 0, entonces la reemplazamos por una nueva
variable no negativa
xj = xj ,

xj 0.

Transformar una variable no restringida en dos variables no negativas:


si existe j tal que xj IR (no restringida), entonces la reemplazamos
por la diferencia entre dos variables no negativas:

xj = x+
j xj , xj 0, xj 0.

A LA PROGRAMACION
LINEAL
1.2. INTRODUCCION

15

Transformar una variable acotada inferiormente en una variable no


negativa:
si existe j tal que xj lj , entonces la reemplazamos por una nueva
variable no negativa
xj = xj lj ,

xj 0.

Transformar una variable acotada superiormente en una variable no


negativa:
si existe j tal que xj uj , entonces la reemplazamos por una nueva
variable no negativa
xj = uj xj ,

xj 0.

Ejemplo 1.1. Transformar a notacion estandar (con desigualdades) el siguiente problema de PL:
min
s.a. :

x1
4x1

z = 3x1 + 5x2
+x2 4
+8x2 = 10
x1 IR, x2 0

(1.5)

Desdoblamos la variable no restringida y la restriccion en igualdad, as:


max
s.a. :

x+
1
4x+
1
4x+
1

z = 3x+
1 + 3x1 5x2

x1
x2 4
4x
+8x
10
2
1

+4x1 8x2 10

x+
1 , x1 , x2 0

(1.6)

Ejemplo 1.2. Transformar a notacion estandar (con igualdades) el siguiente


problema de PL:
min
z = z1 + z2
s.a. : 15 4x1 +4x2 u1
z1
0
30 +4x1 8x2 2u1
z2 0
x1 +2x2
30
0
x1 , x2 , u1 , z1 , z2 0
A
nadimos las variables de holgura y1 , y2, v1 y obtenemos:

(1.7)

LINEAL
CAPITULO 1. PROGRAMACION

16

max
s.a. :

1.2.3

z = z1 z2
+u1 y1
+2u1
y2

4x1 4x2
+z1
= 15
4x1 +8x2
+z2 = 30
x1 +2x2
+v1
= 30
x1 , x2 , u1 , y1 , y2, v1 z1 , z2 0

(1.8)

Clasificaci
on

Los problemas de optimizacion pueden clasificarse, seg


un el caracter de las
variables, en:
Problemas lineales generales, si todas sus variables de decision son continuas, es decir, toman valores en el espacio de n
umeros reales IR. Se
denominaran simplemente problemas lineales y se denotaran por P L.
Problemas enteros, si todas sus variables de decision son enteras, es decir,
toman valores en el espacio de n
umeros enteros Z. Tambien se conocen
como problemas enteros puros lineales, y se denotan por P E. En particular, se tiene un problema entero 01, si todas sus variables son
binarias, es decir, toman valores en el conjunto {0, 1}.
Problemas mixtos, si tienen variables de decision tanto continuas como enteras. Tambien se conocen como problemas enteros mixtos lineales, y se
denotaran por P M. En particular, un problema mixto 01 es aquel
que contiene tanto variables continuas como variables binarias.

1.2.4

Resoluci
on gr
afica

Ejemplo 1.3. Formulacion matematica y resolucion grafica de un problema


de PL
En la Compa
na Wyndor Glass se producen artculos de vidrio de alta calidad, incluidas ventanas y puertas de vidrio. Consta de tres plantas. En la
Planta 1 se hacen marcos y molduras de alumnio, en la Planta 2 marcos y
molduras de madera y la Planta 3 se produce el vidrio y se ensamblan de los
productos. Debido a una reduccion de las ganancias, la Direccion ha decidido
reorganizar la lnea de produccion de la compa
na. Se dejara libre una parte
de la capacidad de produccion para emprender la fabricaci
on de dos productos
nuevos cuyas ventas potenciales son muy prometedoras:
Producto 1: una puerta de vidrio de 240cm con marco de aluminio

A LA PROGRAMACION
LINEAL
1.2. INTRODUCCION

17

Producto 2: una ventana corrediza con marco de madera de 120cm x


180cm
El producto 1 requiere parte de la capacidad de produccion en las plantas 1 y
3 y nada en la planta 2. El producto 2 solo necesita trabajo en las plantas
2 y 3. La division de comercializacion ha concluido que la compa
na puede
vender todos los productos que se puedan fabricar en las plantas. Sin embargo,
como ambos productos competiran por la misma capacidad de produccion en
la planta 3, no esta claro que combinacion de productos sera la mas rentable.
Por lo tanto, se ha formado un Equipo de Optimizacion para estudiar este
problema. El grupo comenzo por reunirse con la Direccion para identificar los
objetivos del estudio. Como consecuencia desarrollo la siguiente definicion del
problema:
Determinar que tasas de produccion deben tener los dos productos con el fin
de maximizar las utilidades totales, sujetas a las restricciones impuestas por
las capacidades de produccion limitadas disponibles en las tres plantas. (Cada
producto se fabricara en lotes de 20 unidades, de manera que la tasa de produccion esta definida como el n
umero de lotes que se producen a la semana.)
Se permite cualquier combinacion de tasas de produccion que satisfaga estas
restricciones, incluso no fabricar uno de los productos y elaborar todo lo que
sea posible del otro.
El Equipo de Optimizacion tambien identifico los datos que necesitaba reunir:
1. N
umero de horas de produccion disponibles por semana en cada planta
para fabricar estos nuevos productos. (Casi todo el tiempo de estas plantas esta comprometido con los productos actuales, lo que limita la capacidad para manufacturar nuevos productos.)
2. N
umero de horas de fabricacion que se emplea para producir cada lote de
cada artculo nuevo en cada una de las plantas.
3. La ganancia por lote de cada producto nuevo. (Se escogio la ganancia por
lote producido como una medida adecuada una vez que el equipo llego a
la conclusion de que la ganancia incremental de cada lote adicional producido sera, en esencia, constante, sin que importase el n
umero total de
lotes producidos. Debido a que no se incurre en costos sustanciales para
iniciar la produccion y la comercializacion de estos nuevos productos, la
ganancia total de cada uno es aproximadamente la ganancia por lote que
se produce multiplicada por el n
umero de lotes.)

18

LINEAL
CAPITULO 1. PROGRAMACION

La obtencion de estimaciones razonables de estas cantidades requirio del


apoyo de personal clave en varias unidades de la compa
na. El personal de la
division de manufactura proporciono los datos de la primera categora mencionada. En la segunda categora, el desarrollo de estimaciones requirio un
analisis de los ingenieros de manufactura involucrados en el dise
no de los procesos de produccion para elaborar los nuevos artculos. Al analizar los datos de
costos que se obtuvieron, junto con la decision sobre los precios de la division
de marketing, el departamento de contabilidad calculo las estimaciones para la
tercera categora.
La Tabla 1.1 resume los datos reunidos. De inmediato, el Equipo de Optimizacion reconocio que se trataba de un problema de programacion lineal del
tipo clasico de mezcla de productos y procedio a la formulacion del modelo
matematico correspondiente.

Planta
1
2
3
Ganancia

Tabla 1.1: Datos del Ejemplo 1.3


Tiempo de produccion por lote Tiempo de produccion
Producto 1 Producto 2
disponible por semana
1 hora
0 horas
4 horas
0 horas
2 horas
12 horas
3 horas
2 horas
18 horas
3000 euro
2000 euro

Consideraremos x1 y x2 el n
umero de lotes del producto 1 y 2, respectivamente, producidas por semana y z la ganancia semanal total (en miles de
euros) generada por estos dos productos. Por tanto, x1 y x2 son las variables
de decision del modelo y el objetivo es elegir los valores que maximicen
z = 3x1 + 5x2
sujeto a las restricciones impuestas sobre dichos valores limitadas por la disponibilidad de capacidad de las plantas. Seg
un la Tabla 1.1 cada lote de producto 1
producida por semana emplea 1 hora de produccion en la Planta 1, donde solo
se dispone de 4 horas semanales. Esta restriccion se expresa matematicamente
por la desigualdad x1 4. Analogamente la Planta 2 impone la restriccion
2x2 12. El n
umero de horas de produccion usadas a la semana en la Planta 3
consumido por elegir x1 y x2 como las nuevas tasas de produccion de los productos sera 3x1 + 2x2 . Por tanto, la restriccion para la Planta 3 es 3x1 + 2x2 18.
Finalmente, como las tasas de produccion no pueden ser negativas, es necesario
a
nadir: x1 0 y x2 0. En resumen, en el lenguaje matematico de la PL, el
problema consiste en elegir los valores x1 y x2 solucion de:

A LA PROGRAMACION
LINEAL
1.2. INTRODUCCION

19

max z = 3x1 +5x2


sujeto a
x1
4
2x2 12
(1.9)
3x1 +2x2 18
x1 0, x2 0
Como es un problema peque
no con tan solo dos variables de decision se
puede representar graficamente en el espacio de dos dimensiones, donde los
ejes corresponden a las variables de x1 y x2 . En primer lugar, identificamos
los valores (x1 , x2 ) posibles dadas las restricciones, que estan representados en
la region coloreada de la Figura 1.1 conocida como region factible. Para ello se
dibujan las rectas correspondientes a las restricciones en igualdad y finalmente
la region correspondiente. Para encontrar la mejor solucion (x1 , x2 ), es decir,
la que maximice la funcion objetivo z = 3x1 + 2x2 , vamos dando valores a
z = 10, 20, 30, . . . y dibujamos las rectas asociadas 10 = 3x1 + 2x2 , 20 =
3x1 +2x2 , 30 = 3x1 +2x2 , . . . A medida que ascendemos conseguimos mejorar la
funcion objetivo (ya que se trata de un problema de maximo), de esta manera
observamos que la mejor solucion es la que corresponde al punto (2, 6) que
reporta un beneficio de z = 36. Esto indica que la empresa debera producir los
productos 1 y 2 a tasas de 2 y 6 por semana, respectivamente con un beneficio
resultante de 36000 epor semana. A
un mas, ninguna otra combinacion es
mejor, respecto a este modelo. Llegados a este punto, el Departamento de
I.O. estara listo para evaluar la validez del modelo y realizar un analisis de
sensibilidad sobre las estimaciones de la Tabla 1.1.
10

3x1 + 2x2 = 18

x1 = 4
z = 36 = 3x1 + 5x2

2x2 = 12

z = 20 = 3x1 + 5x2

z = 10 = 3x1 + 5x2

0
0

Figura 1.1: Region factible del ejemplo 1.3

LINEAL
CAPITULO 1. PROGRAMACION

20

1.3

El m
etodo Smplex

El metodo Smplex es un algoritmo para la resolucion de PL. Consiste en


un proceso algebraico en el que cada iteracion calcula una solucion factible.
Mediante un criterio de parada en el que se chequea la optimalidad de la
solucion, se encuentra la solucion optima. Ademas, tiene una interpretacion
geometrica muy u
til. Si recordamos el Ejemplo 1.3 y su Figura 1.1 asociada,
tenamos 5 restricciones lineales y 5 puntos interseccion claves, (0, 0), (0, 6),
(2, 6), (4, 3) y (4, 0), ya que son los puntos-extremos de la region factible y
por tanto, soluciones factibles de punto-extremo del problema. Dos soluciones
factibles de punto-extremo se dice que son adyacentes si estan conectadas por
un u
nico segmento en la frontera de la region factible.
El metodo smplex se basa en tres propiedades claves de las soluciones
factibles de punto-extremo, bajo el supuesto de que el problema tiene solucion
factible y acotada,

1. Si hay exactamente una u


nica solucion optima, debe ser una solucion
factible de punto-extremo. Si hay soluciones optimas m
ultiples, entonces
al menos dos deben ser soluciones de punto extremo adyacentes.

2. Hay un n
umero finito de soluciones factibles de punto-extremo.

3. Si una solucion factible de punto-extremo es igual o mejor (en terminos


de z) que todas sus soluciones factibles adyacentes, entonces es igual o
mejor que todas las soluciones factibles de punto extremo, es decir, es
solucion optima.

La propiedad 1 implica que la b


usqueda se reduce a un n
umero finito de
soluciones y la propiedad 3 da la clave para el test de optimalidad. El metodo
explota estas tres propiedades examinando solo una cantidad relativamente
peque
na de soluciones factibles punto-extremo y parando tan pronto como
el test de optimalidad se satisfaga. En cada iteracion se mueve de manera
eficiente de un punto extremo a otro adyacente mejor. El procedimiento puede
resumirse en el esquema algortmico de la Figura 1.2.


1.3. EL METODO
SIMPLEX

21

Paso inicial
B
usqueda de solucion SFPE inicial

Paso iterativo
Mover a solucion SFPE adyacente mejor

Test de optimalidad
Ninguna SFPE adyacente
es mejor?

no

Parar

Figura 1.2: Esquema del algoritmo Smplex

1.3.1

Resoluci
on algebraica

Vamos a resolver el Ejercicio 1.3 utilizando el metodo smplex, para ello necesitamos transformar el modelo a forma estandar con igualdades, por lo que
convertimos las restricciones de desigualdad en igualdad a
nadiendo 3 variables
de holgura. As, el problema 1.9 en forma estandar con igualdades es:
sujeto a

max z = 3x1 + 5x2


x1
+x3
=4
2x2
+x4
= 12
3x1 +2x2
+x5 = 18
xi 0, i = 1, 2, 3, 4, 5

(1.10)

Esta formulacion es mucho mas conveniente para la manipulacion algebraica y la identificacion de soluciones factibles punto extremo.
Definici
on 1.2. Una soluci
on aumentada es una solucion de un problema originariamente con restricciones de desigualdad transformado en prob-

22

LINEAL
CAPITULO 1. PROGRAMACION

lema de igualdades mediante la incorporacion de las variables de holgura necesarias. Una soluci
on b
asica es una solucion punto extremo aumentada. Una
soluci
on b
asica factible es una solucion factible punto extremo aumentada.

En el ejemplo, la solucion (3, 2) tiene su correspondiente solucion aumentada (3, 2, 1, 8, 5). La solucion (4, 6) es solucion infactible punto extremo y
(4, 6, 0, 0, 6) es solucion basica mientras que (0, 6) es solucion factible puntoextremo y por tanto, (0, 6, 4, 0, 6) es solucion basica factible.
Estas definiciones son esenciales en el vocabulario de la PL, por lo que
aclararemos sus propiedades algebraicas. Observese que en la forma estandar
(1.10) del ejemplo, el sistema tiene 5 variables y 3 restricciones, se dice entonces
que tiene 2 grados de libertad, ya que dos variables pueden fijarse a un valor
arbitrario, y resolver las 3 ecuaciones en funcion de las 3 variables restantes. El
smplex utiliza el 0 para este valor arbitrario. Las variables que se fijan a 0 se
llaman variable no basicas y el resto variables basicas. En terminos generales, el
n
umero de variables no basicas corresponde al n
umero de grados de libertad del
sistema y el n
umero de variables basicas al de ecuaciones. La solucion completa
se llama solucion basica y si todas las variables basicas son no negativas, la
solucion se llama solucion basica factible. Para cualquier solucion basica, la
correspondiente solucion punto extremo se obtiene eliminando las variables de
holgura. Dos soluciones factibles basicas son adyacentes si todas menos una de
las variables no basicas son las mismas y lo mismo para las variables basicas.
Por lo que moverse de una solucion basica factible a otra adyacente, supone
cambiar una variable basica por una no basica y viceversa.
El algoritmo necesita manipular la funcion objetivo por lo que conviene
reescribir de nuevo el problema (1.10) como:

(0) z 3x1 5x2


(1)
x1
+x3
(2)
2x2
+x4
(3)
3x1 +2x2
+x5

=0
=4
= 12
= 18

(1.11)

As, la funcion objetivo sera tratada como la ecuacion (0) y z como una
variable basica adicional permanente. Denotaremos por E(i) la ecuacion iesima del problema. Hay varias cuestiones a las que ir respondiendo:


1.3. EL METODO
SIMPLEX

23

Pasos del algoritmo Smplex


Paso inicial: Como seleccionar una SFPE (solucion factible basica)
inicial?
Paso iterativo: Como moverse a una SFPE adyacente (solucion
factible basica adyacente) mejor?
Fase 1: Que variable no basica entra en la base?
Fase 2: Que variable basica sale de la base?
Fase 3: Como identificar la nueva solucion?
Test de optimalidad: Como determinar que la SFPE actual es
mejor que cualquiera adyacente?

Vamos a explicar el procedimiento algebraico resolviendo el ejemplo.


Ejemplo 1.4. Resolucion algebraica del algoritmo Smplex
Paso inicial
Cuando el problema original esta en forma de desigualdades, se comienza
en el origen, solucion xN (x1 , x2 ) = (0, 0). As, tras introducir variables
de holgura, las variables originales se consideran no basicas y las variables de
holgura variables basicas, xB (x3 , x4 , x5 ). Como las no basicas se fijan a
cero, la soluci
on basica factible inicial es (0, 0, 4, 12, 18). Observar que esta
soluci
on es inmediata porque cada restriccion tiene una u
nica variable basica
con coeficiente +1 y no aparece en ninguna otra restriccion.
Paso iterativo 1: qu
e variable entra en y cu
al abandona la base?
Para movernos de la actual SBF a otra adyacente mejor, debemos reemplazar una variable no basica (entrante) por una nueva variable (saliente).
Las candidatas a entrar en la base son las variables no basicas, como al
entrar su valor pasara de nulo a positivo (excepto en casos degenerados), la
candidata es la que en mayor medida pueda mejorar la funcion objetivo z, es
decir, la que tenga el coeficiente positivo mayor en la funci
on objetivo. En el
ejemplo, como c1 = 3 < c2 = 5, la candidata a entrar en la base es la variable
x2 .
Como x1 permanece a 0, geometricamente nos movemos a lo largo del
semieje positivo x2 . La SFPE adyacente es (0, 6) Las posibles variables a
abandonar la base son x3 , x4 y x5 . Necesitamos analizar en que situacion
x2 aumentara lo mas posible antes de que ninguna variable sea negativa, ver

LINEAL
CAPITULO 1. PROGRAMACION

24

Tabla 1.2. Como x4 impone la menor cota superior para x2 , la variable que
abandona la base es x4 , que se fija a 0 y as x2 = 6 entra en la nueva base.
Tabla 1.2: Determinacion de la variable a abandonar la base en la iteracion 1
xB
x3
x4
x5

Ecuacion
(1) x3 = 4 x1
(2) x4 = 12 2x2
(3) x5 = 18 3x1 2x2

Cota superior para x2


x2
= 6 (minimo)
x2 12
2
x2 18
=9
2

Como xN (x1 , x4 ) = (0, 0), entonces xB (x3 , x2 , x5 ) = (4, 6, 6).


De cara a la siguiente iteracion, nos interesa convertir el sistema en uno
similar al de la primera iteracion, es decir, donde cada ecuacion tenga una u
nica
variable basica con coeficiente +1 y que no aparezca en ninguna otra ecuacion.
Esto se logra realizando dos tipos de operaciones algebraicas legtimas:
Multiplicar una ecuacion por una constate no nula:
E(i) := k E(i)
A
nadir un m
ultiplo de una ecuacion a otra ecuacion:
E(j) := E(j) + k E(i)
Para obtener el coeficiente +1 en la nueva variable basica x2 hacemos
1
E(2) := E(2)
2
Para eliminar x2 del resto de ecuaciones:
(2)
E(0) := E(0) + (5) E
(2)
E(1) := E(1) + (0) E
(3) := E(3) + (2) E(2)
E
As, el sistema (1.11) se transforma en el siguiente sistema equivalente:
+ 52 x4

(0) z 3x1
(1)

x1

(2)
(3)

+x3
x2

3x1

= 30
=4

+ 21 x4

=6

x4 +x5 = 6

(1.12)


1.3. EL METODO
SIMPLEX

25

Intercambiando la posicion de x2 y x4 para ilustrar el resultado:


(0) z 3x1 + 25 x4
(1)

x1

+x3
1
x
2 4

(2)
(3)

= 30

3x1

x4

=4
+x2

=6

(1.13)

+x5 = 6

As, la nueva SBF es (x1 , x2 , x3 , x4 , x5 ) = (0, 6, 4, 0, 6) que obtiene un beneficio de z = 30. Este metodo algebraico es similar al Metodo de eliminacion
Gauss Jordan.
Test de optimalidad
Para determinar si la solucion es optima, reconvertimos la ecuacion (0),
en funci
on objetivo: z = 30 + 3x1 25 x4 . Como el coeficiente de x1 es positivo,
podriamos movernos a una SBF adyacente mejor que la actual, por lo que la
soluci
on obtenida no es optima. En general, las SBF es optima si y solo si
todas las variables no basicas tienen coeficientes no positivos ( 0) en la forma
actual de la funci
on objetivo. Es por ello que se utiliza la funcion objetivo en
la forma de la ecuacion (0) ya que contiene todas las variables no basicas y
ninguna basica.
Paso iterativo 2: qu
e variable entra en y cu
al abandona la base?
Mirando a los coeficientes de la funcion objetivo, el mayor (y u
nico) coeficiente positivo implica que x1 es la variable a entrar en la nueva base.
Analizando la menor cota superior para x1 , ver Tabla 1.3, la variable a
entrar en la base es x5 .
Tabla 1.3: Determinacion de la variable a abandonar la base en la iteracion 2
xB
x3
x2
x5

Ecuacion
(1) x3 = 4 x1
(2) x2 = 6 12 x4
(3) x5 = 6 3x1 + x4

Cota superior para x2


x1 14 = 4
x1
x1 36 = 2 (minimo)

Tras eliminar la variable x1 de todas las ecuaciones excepto E(3) con el


metodo algebraico:
1
E(3) := E(3)
3
(3)
E(0) := E(0) + (3) E

LINEAL
CAPITULO 1. PROGRAMACION

26

(1) := E(1) + (1) E(3)


E

(3)
E(2) := E(2) + (0) E

As, el sistema (1.13) se transforma en el siguiente sistema equivalente:

(0) z
(1)

x3

(2)
(3)

x2
x1

3
x
2 4
+ 31 x4

13 x5 = 2

+ 21 x4

=6

+x5 = 36
(1.14)

13 x4 + 13 x5 = 2

As, la soluci
on factibe basica es (x1 , x2 , x3 , x4 , x5 ) = (2, 6, 2, 0, 0), con un
beneficio de z = 36.
Test de optimalidad
Como la funci
on objetivo z = 36 23 x4 x5 tiene todos los coeficientes de
las variables no basica negativos, la solucion es optima.

Resumiendo, el esquema para la resolucion algebraica es el siguiente:


1.3. EL METODO
SIMPLEX

27

Resolucion algebraica del algoritmo Smplex


Paso inicial: Introducir las variables de holgura como basicas y las
originales como no basicas a 0. Ir al Test de Optimalidad.
Paso iterativo: Consta de 3 fases:
Fase 1: Determinar la variable a entrar en la base, chequeando la
magnitud de los coeficientes de la funcion objetivo reescrita
en terminos de las variables no basicas.
Fase 2: Determinar la variable a salir de la base, seleccionando la
variable basica que se anula primera al aumentar la variable
basica entrante recien seleccionada.
Fase 3: Determinar la nueva SBF, utilizando el metodo de eliminacion Gauss Jordan para reescribir el sistema de manera
que cada variable basica aparezca en una u
nica restriccion
con el signo +1.
Test de optimalidad: Chequear si z puede aumentar al aumentar
una variable no basica, que sera candidata a entrar en la nueva
base. Si es posible, ir al Paso iterativo; en caso contrario, se ha
encontrado la solucion optima, parar.

1.3.2

Resoluci
on tabular

La resolucion tabular es matematicamente equivalente a la forma algebraica,


pero mas conveniente a la hora de realizar calculos a mano, ya que representaremos en la tabla solo la informacion esencial, es decir: los coeficientes de
las variables, los terminos rhs de las ecuaciones y las variables basicas de cada
ecuacion.

Ejemplo 1.5. Resolucion tabular del algoritmo Smplex


Resolvamos el ejemplo mediante la resolucion tabular.
Paso inicial:
Representamos el sistema (1.11) en forma de tabla de la siguiente manera:

LINEAL
CAPITULO 1. PROGRAMACION

28

Tabla 1.4: Tabla smplex inicial


xB Ec. num.
z
(0)
x3
(1)
x4
(2)
x5
(3)

z x1 x2 x3 x4 x5 rhs
1 3 5 0 0 0
0
0
1
0 1 0 0
4
0
0
2 0 1 0 12
0
3
2 0 0 1 18

Observamos que esta en la forma apropiada, es decir, las variables basicas


(variables de holgura) aparecen con coeficiente +1 una u
nica vez, por lo que
la soluci
on es inmediata ya que las variables no basicas (variables iniciales)
toman el valor cero: (x1 , x2 , x3 , x4 , x5 ) = (0, 0, 4, 12, 18).
Test de optimalidad
La actual SBF es optima si y solo si todos los coeficientes de la ecuacion (0)
son no negativos ( 0). Como no es el caso, comienza la primera iteracion.
Paso iterativo 1
Entre las variables negativas, se considera la de mayor valor absoluto, como
max{| 3|, | 5|} = 5, entonces la variable x2 entra en la base y a la columna
asociada se la llama columna pivote.
Ahora, entre los coeficientes positivos se considera el mnimo cociente entre
el rhs correspondiente y dicho coeficiente, como min{ 12
, 18 } = 6, entonces la
2 2
variable x4 sale de la base y a dicha fila se la llama fila pivote, en este caso
E(2) . A la interseccion entre la fila y la columna pivote, se le llama elemento
pivote, en esta iteracion el n
umero 2, los pivotes se han representado en rojo
en la Tabla 1.5.
Tabla 1.5: Tabla smplex inicial con columna, fila y elemento pivote
xB Ec. num.
z
(0)
x3
(1)
x4
(2)
x5
(3)

z x1 x2 x3 x4 x5 rhs
1 3 5 0 0 0
0
0
1
0 1 0 0
4
0
0
2 0 1 0 12
0
3
2 0 0 1 18

Para determinar la nueva SBF se construye la tabla apropiada. Para ello


la fila pivote se divide por el elemento pivote:
(p) := E(p) E(2) := E(2)
E
p
2


1.3. EL METODO
SIMPLEX

29

Para el resto de las filas, la nueva fila se calcula como la antigua menos el
coeficiente de la columna pivote por la nueva fila pivote:

(2)
E(0) := E(0) (5) E

i = p, E(i) := E(i) (aip ) E(p)


E := E(1) (0) E(2)
(1)
E(3) := E(3) (2) E(2)
De esta forma se obtiene la Tabla 1.6, completandose asi la primera iteracion. Como cada variable no basica es nula, cada basica toma el valor rhs
y as (x1 , x2 , x3 , x4 , x5 ) = (0, 6, 4, 0, 6) con beneficio z = 30.
Tabla 1.6: Tabla smplex iteracion 1
xB Ec. num.
z
(0)
x3
(1)
x2
(2)
x5
(3)

z x1 x2 x3 x4 x5 rhs
1 3 0 0 5/2 0 30
0
1 0 1
0 0
4
0
0 1 0 1/2 0
6
0
3 0 0 1 1
6

Test de optimalidad:
Como hay un coeficiente negativo, la solucion actual no es optima.
Paso iterativo 2:
max{| 3|} = 3, entonces la variable x1 entra en la base (columna pivote).
Y por el test de mnimo cociente: min{ 41 , 36 } = 2, entonces la variable x5 sale
de la base (fila pivote). As, el elemento pivote es 3, ver Tabla 1.7.
Tabla 1.7: Tabla smplex iteracion 1 con columna, fila y elemento pivote
xB Ec. num.
z
(0)
x3
(1)
x2
(2)
x5
(3)

z x1 x2 x3 x4 x5 rhs
1 3 0 0 5/2 0 30
0
1 0 1
0 0
4
0
0 1 0 1/2 0
6
0
3 0 0 1 1
6

Las operaciones algebraicas a realizar son ahora:

E(3) := 3(3)


E(0) := E(0) (3) E(3)

E(1) := E(1) (1) E(3)

E := E (0) E
(3)
(3)
(3)

LINEAL
CAPITULO 1. PROGRAMACION

30

Como vemos en la Tabla 1.8, la nueva SBF es (x1 , x2 , x3 , x4 , x5 ) = (2, 6, 2, 0, 0)


con beneficio z = 36.
Tabla 1.8: Tabla smplex iteracion 2
xB Ec. num.
z
(0)
x3
(1)
x2
(2)
(3)
x1

z x1 x2 x3
x4
x5 rhs
1 0 0 0
3/2
1 36
0 0 0 1
1/3 1/3
2
0 0 1 0
1/2
0
6
0 1 0 0 1/3
1/3
2

Test de optimalidad
Como ning
un coeficiente de la ecuacion (0) es negativo, el algoritmo termina, la soluci
on actual es optima, x1 = 2 y x2 = 6.
Observese que los valores 0, 32 y 1 son los precios sombra de los tres
recursos, es decir, el valor marginal o tasa a la que z podra aumentar si se
aumenta la capacidad disponible b1 , b2 y b3 , respectivamente. Por ejemplo, si
la capacidad disponible para la Planta 2 aumentara una unidad, de b2 = 12
a b2 = 13, entonces la solucion pasara de ser (2, 6) con valor z = 36 a ser
( 35 , 13
) con valor z = 37 21 . Efectivamente, z aumentara ligeramente en 23 .
2

1.3.3

Casos especiales

Veamos algunos casos ambiguos, que no han sido abordados hasta el momento.
(a) Empates para la variable b
asica a entrar
En la primera fase del paso iterativo, se elige variable candidata a entrar en
la base entre las variables no basicas con coeficiente negativo en la ecuacion (0)
cuyo valor absoluto sea mayor. Por ejemplo, si la funcion objetivo del ejemplo
fuera z = 3x1 + 3x2 . Como resolver el empate? La respuesta es: arbitrariamente. La solucion optima se alcanzara independientemente de dicha eleccion.
En este caso, se encontrara el optimo (2, 6) en tres iteraciones si elegimos
en primer lugar x1 como variable a entrar en la base, y en dos iteraciones si
eligieramos a x2 en primer lugar.
(b) Empates para la variable b
asica a abandonar: degeneraci
on
Cuando se elige la variable basica a abandonar la base, tambien podra
haber empates. Supongamos que el empate ocurre entre dos o mas variables
basicas cuando se elige la variable que sale en la segunda fase del paso iterativo Importa cual se escoge? En teora, s, pero de forma crtica debido a lo


1.3. EL METODO
SIMPLEX

31

que podra ocurrir. Primero, todas las variables empatadas se hacen cero al
mismo tiempo cuando aumenta el valor de la variable entrante. Por lo tanto,
aquellas que no se eligieron como variable basica saliente tambien tendran un
valor de cero en la nueva SBF. Las variables basicas con valor 0 se llaman
degeneradas,y la correspondiente SBF se llama soluci
on factible b
asica
degenerada. Segundo, si una de estas variables basicas degeneradas sigue
con valor de cero hasta que se selecciona como variable basica que sale en una
iteracion posterior, la variable basica entrante debera tambien quedar con valor
de cero (ya que no puede crecer sin que la variable basica que sale se vuelva
negativa), por lo que el valor de z no cambiara. Tercero, si z permanece igual
en lugar de mejorar en cada iteracion, el metodo smplex puede caer en un
bucle que repite la misma secuencia de soluciones de forma periodica, en lugar
de aumentar en alg
un momento para llegar a la solucion optima. En realidad,
se han construido ejemplos artificiales que se quedan atrapados en un bucle
infinito de este tipo. Afortunadamente, aunque el buble es teoricamente posible, muy raramente ocurre en problemas en la practica. Si ocurriera un bucle
siempre se puede salir de el al cambiar la eleccion de la variable basica que sale.
En ejercicios practicos se recomienda romper los empates de modo arbitrario
y seguir el proceso sin preocuparse de las variables degeneradas que puedan
resultar. Ademas se han construido reglas especiales para deshacer empates
de manera que se eviten bucles infinitos, por lo que no debemos preocuparnos
por las variables basicas degeneradas.
(c) Inexistencia de variable b
asica a abandonar: soluci
on inacotada
En la segunda fase del paso iterativo podria ocurrir otra posibilidad que no
hemos comentado a
un: que no haya variables candidatas a abandonar la base.
(Observese que esto no sera un problema en la primera fase, como sabemos,
por el test de optimalidad). Esto puede ocurrir si la variable basica candidata
a entrar podra aumentar indefinidamente sin que ninguna de las variables
basicas llegue a dar valores negativos. En la forma tabular observaramos que
en la columna pivote todos los coeficientes son nulos o negativos.

Ejemplo 1.6. Resolucion de un problema inacotado


Si en el Ejemplo 1.3 eliminamos las dos u
ltimas restricciones nos encontraramos con esta situacion.

LINEAL
CAPITULO 1. PROGRAMACION

32

Tabla 1.9: Tabla smplex inicial del Ejemplo 1.6


xB Ec. num. z x1 x2 x3 rhs
z
(0)
1 3 5 0
0
x3
(1)
0
1
0 1
4

max z = 3x1 + 5x2


sujeto a x1
+x3
xi 0, i = 1, 2, 3

=4

(1.15)

10

0
0

Figura 1.3: Region factible inacotada del Ejemplo 1.6


Esto se interpreta de la siguiente manera: las restricciones no impiden el
crecimiento indefinido de la funcion objetivo, as que el algoritmo parara con
el mensaje de que z es inacotado. Como la PL no ha descubierto la manera de
conseguir beneficios infitos, el mensaje real para los problemas en la practica
es que hay alg
un error! Probablemente en la modelizacion del problema: por
haber omitido restricciones relevantes o haberlas formulado incorrectamente.
(d) Soluciones
optimas m
ultiples
En muchas aplicaciones de PL el problema tiene soluciones optimas multiples, que aportan el mismo valor a la funcion objetivo. Cuando el algoritmo
smplex encuentra una SBF optima, como reconoce si hay otras y como las
encuentra?


1.3. EL METODO
SIMPLEX

33

Cuando un problema tiene mas de una SBF optima, al menos una de las
variables no basicas tiene coeficiente 0 en la ecuacion (0), as que aumentar
dicha variable no vara el valor de z. As, que se pueden encontrar otras soluciones, realizando iteraciones adicionales del algoritmo, eligiendo una variable
no basica con coeficiente cero como candidata a entrar en la base.

ultiples
Ejemplo 1.7. Resolucion de un problema de soluciones m
Si en el Ejemplo 1.3 modificamos levemente la funcion objetivo, z = 3x1 +
2x2 , nos encontraramos con esta situacion. Cada problema tiene al menos
dos soluciones factibles de punto extremo optimas (SBF), en el ejemplo (2, 6)
y (4, 3), por lo que todas las soluciones en el segmento son optimas.

10

0
0

Figura 1.4: Region factible del Ejemplo 1.7

Veamos la resolucion tabular del algoritmo smplex para este ejemplo en la


Tabla 1.10.

LINEAL
CAPITULO 1. PROGRAMACION

34

Tabla 1.10: Tabla smplex para soluciones m


ultiples
Iteracion xB Ec. num.
0
z
(0)
x3
(1)
x4
(2)
x5
(3)
1
z
(0)
x1
(1)
(2)
x4
x5
(3)
2
z
(0)
(1)
x1
x4
(2)
x2
(3)
Extra
z
(0)
(1)
x1
x3
(2)
x2
(3)

z x1 x2
x3
x4
x5 rhs Optima?
1 3 2
0
0
0
0
No
0
1
0
1
0
0
4
0
0
2
0
1
0 12
0
3
2
0
0
1 18
1
0 2
3
0
0 12
No
0
1
0
1
0
0
4
0
0
2
0
1
0 12
0
0
2
3
0
1
6
1
0
0
0
0
1 18
S
0
1
0
1
0
0
4
0
0
0
3
1
1
6
0
0
1 3/2
0
1/2
3
1
0
0
0
0
1 18
S
0
1
0
0 1/3
1/3
2
0
0
0
1
1/3 1/3
2
0
0
1
0
1/2
0
6

Por lo que las dos SBF optimas encontradas son (4, 3, 0, 6, 0) y (2, 6, 2, 0, 0),
cada una alcanza un beneficio de z = 18. Observese que la variable x4 tambien
presenta coeficiente 0 en la ecuacion (0), pero entrar en la base supondra volver
a la iteracion 2. El resto de soluciones optimas son promedio ponderado de
ambas, es decir, todas las que se encuentran en el segmento entre (2, 6) y (4, 3),
es decir,
{(2, 6) + [(4, 3) (2, 6)] : [0, 1]} = {(2 + 2, 6 3) : [0, 1]}

1.3.4

Identificaci
on de SBF iniciales

El u
nico problema real que pueden acarrear las diferentes formulaciones de
las restricciones es el calculo de la SBF inicial. La tecnica que se emplea
en estos casos es la tecnica de variables artificiales. Este procedimiento consiste en introducir variables artificiales (dummy) con el fin de convertirse en
variables basicas iniciales. Se les asigna un peso M en la funcion objetivo
exorbitante (penalizacion), con el fin de que el metodo las vaya expulsando


1.3. EL METODO
SIMPLEX

35

automaticamente, hasta que todas queden fuera (fijadas a 0) y se resuelva el


problema real. A esto se le conoce como el metodo de la gran M.
Ejemplo 1.8. Identificacion de soluciones iniciales
Consideremos que en el Ejemplo 1.3 se requiere utilizar la Planta 3 a capacidad completa. Es decir, la restriccion (3) se da en igualdad. Graficamente
la region factible, es tan solo el segmento (2, 6) a (4, 3).
Tras introducir las dos variables de holgura en la inecuaciones (1) y (2) el
modelo resultante viene dado en (1.16).
sujeto a

max z = 3x1 + 5x2


x1
+x3
2x2
+x4
3x1 +2x2
xi 0, i = 1, 2, 3, 4

=4
= 12
= 18

(1.16)

No hay una SBF obvia ya que ha desaparecido la variable de holgura de


la ultima restriccion. Por ello, introducimos una variable artificial, xM 0.
Y obtenemos una SBF inicial (x1 , x2 , x3 , x4 , xM ) = (0, 0, 4, 12, 18). De esta
manera hemos aumentado la region factible del problema. El modelo resultante
sera equivalente siempre que la solucion de la variable artificial sea nula, es
decir, xM = 0. Por lo que utilizaremos el metodo de la gran M para garantizar
que la soluci
on caiga en la region factible inicial. Es decir, reformulamos
el modelo (1.16) como (1.17), donde M es un valor positivo suficientemente
grande
sujeto a

max z = 3x1 + 5x2 MxM


x1
+x3
=4
2x2
+x4
= 12
3x1 +2x2
+xM = 18
x1 , x2 , x3 , x4 , xM 0

(1.17)

La ecuacion (0) sera entonces


E(0) : z 3x1 5x2 + MxM = 0.
Sin embargo, el algoritmo no puede aplicarse a
un, recordemos que para el test
de optimalidad y para la fase 1 del paso iterativo cada variable basica debe tener
un coeficiente 0 en la funcion objetivo y no lo satisface la variable ficticia xM .
Como en la fase 3 del paso iterativo, vamos a reemplazar la fila 0 por
(0) := E(0) M E(3)
E

LINEAL
CAPITULO 1. PROGRAMACION

36
As,

E(0) : z + (3 3M)x1 + (5 2M)x2 = 18M

De esta forma se completa el trabajo adicional que requiere el paso inicial


del algoritmo para problemas de este tipo. A partir de aqu, el algoritmo se
resuelve como hemos visto. Las cantidades relativas a M solo apareceran en
la ecuacion (0), por lo que solo afectaran al test de optimalidad y a la fase 1
del paso iterativo. La resolucion tabular viene expresada en la Tabla 1.11.
Tabla 1.11: Tabla smplex con variables artificiales
It xB Ec. num.
0 z
(0)
x3
(1)
x4
(2)
xM
(3)
1 z
(0)
x1
(1)
x4
(2)
xM
(3)
2 z
(0)
x1
(1)
x4
(2)
x2
(3)
3 z
(0)
x1
(1)
x3
(2)
(3)
x2

z
x1
x2
x3
x4
xM
rhs
1 3 3M 5 2M
0
0
0
18M
0
1
0
1
0
0
4
0
0
2
0
1
0
12
0
3
2
0
0
1
18
1
0 5 2M 3 + 3M
0
0 12 6M
0
1
0
1
0
0
4
0
0
2
0
1
0
12
0
0
2
3
0
1
6
1
0
0
9/2
0 5/2 + M
27
0
1
0
1
0
0
4
0
0
0
3
1
1
6
0
0
1
3/2
0
1/2
3
1
0
0
0
3/2
1+M
36
0
1
0
0 1/3
1/3
2
0
0
0
1
1/3
1/3
2
0
0
1
0
1/2
0
6

La soluci
on que se obtiene es (x1 , x2 , x3 , x4 , xM ) = (2, 6, 2, 0, 0).

1.3.5

Teora del M
etodo Smplex

En esta seccion vamos a revisar los fundamentos teoricos del algoritmo smplex
y presentar el metodo smplex revisado. Este metodo fue dise
nado a partir del
metodo anterior y fue desarrollado para que la ejecucion computacional sea
eficiente.
Recordemos la formulacion matricial del modelo general de PL (1.3):


1.3. EL METODO
SIMPLEX

37

max
s.a

z = cx
Ax b
x0

donde c es el vector fila


c = (c1 c2 . . . cn ),
x, b, 0 son los vectores columna:


x1
b1
x2
b2


x = .. , b = .. ,
.
.
xn
bm
y A es la matriz

a11
a21

A = ..
.

a12
a22
..
.


0
0

0 = .. ,
.
0

. . . a1n
. . . a2n

..
.

am1 am2 . . . amn

Para convertirlo en un problema de igualdades introducimos las m variables


de holgura en cada restriccion:

xn+1
xn+2

xh = ..
.
xn+m
as que las restricciones del modelo en forma estandar son:
AI

x
xh

=by

x
xh

donde I es la matriz identidad m m y el vector 0 tiene ahora n + m


elementos.
Recordemos que el metodo consiste en encontrar SBF hasta llegar a la
optima. Una vez identificadas las variables basicas xB y las no basicas xN , la
solucion basica es el resultado del sistema de m ecuaciones
AI

x
xh

=b

LINEAL
CAPITULO 1. PROGRAMACION

38

x
que seran
xh
igualadas a 0. Al eliminar esas n variables, se obtiene un conjunto de m
ecuaciones y m incognitas (las variables basicas xB ). Denotemos este conjunto
de ecuaciones como
BxB = b

donde las xN seran n variables elegidas de entre las n + m de

donde la matriz basica B y

B11
B21

B = ..
.
Bm1

el vector de variables basicas xB son

B12 . . . B1m
xB1
xB2
B22 . . . B2m

,
x

..
..
B ..

.
.
.
Bm2 . . . Bmm
xBm

donde la matriz B se obtiene eliminando las columas correspondientes a las


coeficientes de las variables xN de (A I). Para resolver BxB = b, multiplicamos
por B 1 a ambos lados y se tiene
xB = B 1 b.
Sea cB el vector que se obtiene al eliminar los coeficientes de las variables
no basicas de (c 0) y cN el correspondiente a las no basicas, el valor de la
funcion objetivo es
z = cB xB + cN xN = cB xB = cB B 1 b
Ejemplo 1.9. Formulacion matricial del algoritmo Smplex
En el Ejemplo 1.3 tenemos m = 3 ecuaciones y n = 2 variables originales:



1 0 1 0 0
4
x3
x1

c = (3 5), (A I) = 0 2 0 1 0 , b = 12 , x =
, xh = x4 .
x2
3 2 0 0 1
18
x5

Como vimos en la resolucion la secuencia de SBF obtenidas iterativamente


son:
Iteracion inicial

x3
1 0 0
xB = x4 , B = 0 1 0 , B 1 = I,
x5
0 0 1

4
1

xB = B b = b = 12 , cB = (0 0 0) z = cB xB = 0.
18


1.3. EL METODO
SIMPLEX

39

Iteracion 1

x3
xB = x2 ,
x5

1 0 0
B = 0 2 0 ,
0 2 1


4
xB = B 1 b = 6 ,
6

B 1

1 0 0
= 0 21 0 ,
0 1 1

cB = (0 5 0) z = cB xB = 30.

Iteracion 2


x3
xB = x2 ,
x1

1 0 1
B = 0 2 0 ,
0 2 3


2
xB = B 1 b = 6 ,
2

B 1

1 13 31
0 ,
= 0 12
1
0 3 31

cB = (0 5 3) z = cB xB = 36.

El conjunto de ecuaciones original es

z
1 c 0
x =
0 A I
xh

0
.
b

(1.18)

Esto corresponde a la iteracion inicial al comienzo de la Tabla 1.12. Tras cada


iteracion xB = B 1 b y z = cB B 1 b, as que
z
xB

1 cB B 1
0 B 1

0
b

cB B 1 b
.
B 1 b

Por tanto, si premultiplicamos el conjunto de ecuaciones (1.18) por la misma


1 cB B 1
, obtenemos para cada iteracion
matriz
0 B 1
1

1 cB B A c cB B
0
B 1 A
B 1

z
x=
xh

cB B 1 b
.
B 1 b

40

LINEAL
CAPITULO 1. PROGRAMACION
Tabla 1.12: Tabla smplex en forma matricial
Iteracion xB Ec. num.
0
z
(0)
xB (1) (m)
i
z
(0)
xB (1) (m)

z
x
xh
rhs
1
c
0
0
0
A
I
b
1
1
1
1 cB B A c cB B
cB B b
1

0
B A
B 1
B 1 b

Hay dos implicaciones rese


nables que se deducen de la forma matricial. La
primera es que dados los parametros originales A, b, cB , solo se necesita calcular
B 1 para obtener todos los n
umeros necesarios. La segunda es que no hace
falta obtener todos los n
umeros, sino tan solo los necesarios.

Definici
on 1.3. Dados dos puntos x , x IRn , se denomina segmento lineal de x a x al conjunto de puntos {x + (1 )x : (0, 1)}. Los
puntos del segmento se dice que son combinacion lineal convexa de x y x .

Definici
on 1.4. Un conjunto S IRn se dice conjunto convexo si para todo
par de puntos del conjunto, el segmento que los une esta totalmente contenido
en el conjunto; es decir,

x , x S, x + (1 )x S, (0, 1).

Es decir, si para todo par de puntos, el segmento rectilneo que une dichos
puntos esta dentro de la region.


1.3. EL METODO
SIMPLEX

41

regi
on convexa

regi
on convexa

regi
on no convexa

regi
on no convexa

(a)

(b)

(c)

(d)

Figura 1.5: Convexidad de regiones


Definici
on 1.5. Un poliedro es un conjunto de puntos comunes a uno o mas
semiespacios. Un poliedro siempre es convexo.
Definici
on 1.6. Un punto extremo de un conjunto convexo es un punto z
tal que si z = x + (1 )x para un cierto (0, 1), entonces x = x = z.
Es decir, no puede ponerse como combinacion lineal convexa de ning
un par de
puntos distintos del conjunto.
Definici
on 1.7. Dado un conjunto convexo cerrado S IRn , un vector no nulo
d IRn se llama direcci
on si x+d S, 0, x S. Dos direcciones d1
y d2 son direcciones distintas si d1 = d2 , 0. Una direccion d se dice
direcci
on extrema si no puede ponerse como combinacion lineal positiva de
dos direcciones distintas, esto es, si existe 1 , 2 > 0 tal que d = 1 d1 + 2 d2 ,
entonces d1 = d2 para alg
un > 0.
Teorema 1.1. Sea S = {x IRn : Ax = b, x 0} donde A Mmn es
una matriz de rango m y b IRm es un vector columna. Un punto x IRn
es un punto extremo de S si y solo si A puede descomponerse, tras reordenar
xB
B 1 b
sus columnas, en la forma A = BN cumpliendo que x =
=
,
xN
0
donde B Mmm es una matriz inversible tal que B 1 b 0.

LINEAL
CAPITULO 1. PROGRAMACION

42

Demonstraci
on.
Supongamos que A puede descomponerse, tras reordenar sus columxB
B 1 b
nas, en la forma A = BN cumpliendo que x =
=
, donde
xN
0
B Mmm es una matriz inversible tal que B 1 b 0. Obviamente, x S.
Supongamos que existen x , x S, (0, 1) tales que x = x + (1 )x , si
expresamos los puntos x , x en funcion de la factorizacion anterior, tenemos
B 1 b
0

=x=

xB
xN

xB
xN

+ (1 )

xB
xN

xB + (1 )xB
xN + (1 )xN

Como xN , xN 0 y , (1 ) > 0, entonces xN = xN = 0 y esto implica que


xB = xB = B 1 b ya que b = Ax = A(xB , xN )t = BxB + NxN = BxB + 0 =
BxB y analogamente para x . As, x = x = x , por lo que x es un punto
extremo de S.
Supongamos que x es un punto extremo de S. Sin perdida de generalidad, supongamos que x = (x1 , x2 , . . . , xk , 0, . . . , 0) con x1 , . . . , xk > 0. Demostraremos que las columnas correspondientes A1 , . . . Ak de A son linealmente
independientes. Por reduccion al absurdo, supongamos que no es as, entonces
k
existiran 1 , . . . , k escalares no todos nulos tales que
j=1 j Aj = 0, sea
= (1 , . . . , k , 0, . . . , 0). Construimos los siguientes dos vectores x = x+
y x = x , donde > 0 se elige de manera que x , x 0. Entonces,
k

Ax =

(xj + j )Aj =
j=1

xj Aj +
j=1

j Aj = b
j=1

y
k

Ax =

(xj j )Aj =
j=1

xj Aj
j=1

j Aj = b
j=1

Resumiendo, x , x S, x = x ya que > 0 y ademas x = 21 x + 21 x y esto


contradice el hecho de que x es un punto extremo. Por lo que A1 , . . . , Ak son
linealmente independientes y pueden elegirse m k columnas del resto de n k
columnas que sean linealmente independientes con estas k columnas, ya que el
rango de A es m. Supongamos que estas son Ak+1 , . . . , Am , podemos escribir
A = B N donde B = A1 . . . Ak Ak+1 . . . Am , ademas B 1 b =
(x1 , x2 , . . . , xk , 0, . . . , 0)t 0, entonces B 1 b 0 y la demostracion del teorema
esta completa. En efecto, Ax = B N x = BxB + NxN = b, B 1 b = xB .
Corolario. El n
umero de puntos extremos de S es finito.


1.3. EL METODO
SIMPLEX

43

Teorema 1.2. Sea S = {x IRn : Ax = b, x 0} no vaco y A Mmn es


una matriz de rango m y b IRm es un vector columna, entonces S tiene al
menos un punto extremo.
Teorema 1.3. Sea S = {x IRn : Ax = b, x 0} y A Mmn es una
matriz de rango m y b IRm es un vector columna. Un vector d es una
direccion extrema de S si y solo si A puede descomponerse en B N tal que
B 1 Aj 0 para alguna columna Aj de la matriz N y d es un m
ultiplo positivo
1
de d = B Aj ej , ej es un n m vector de ceros excepto en la posicion
j donde tiene un 1.
Corolario. El n
umero de direcciones extremas de S es finito.
El siguiente resultado permite representar cualquier punto de un poliedro
como sumas de puntos y direcciones extremas.
Teorema 1.4. Teorema de representaci
on
n
Sea S = {x IR : Ax = b, x 0} un poliedro no vaco y A Mmn es
una matriz de rango m y b IRm es un vector columna. Sean x1 , x2 , . . . , xk
IRn los puntos extremos de S y d1 , d2 , . . . , dl las direcciones extremas de S.
Entonces x S si y solo si
k

x=
k
j=1

j dj

j x +
j=1

donde

l
j

k=1

j = 1, j 0, j = 1, . . . , k y j 0, j = 1, . . . , l.

Corolario. Sea S = {x IRn : Ax = b, x 0} un poliedro no vaco


y A Mmn es una matriz de rango m y b IRm es un vector columna.
Entonces S tiene al menos una direccion extrema si y solo si es no acotado.
Teorema 1.5. Condiciones de optimalidad en Programaci
on Lineal
Sea el problema de PL
max
z = cx
s.a
Ax = b
x0
cuya region factible es no vaca, donde x1 , x2 , . . . , xk IRn son los puntos
extremos de la region factible S = {x IRn : Ax = b, x 0}, y d1 , d2 , . . . , dl
las direcciones extremas de S. Una condicion necesaria y suficiente para que
exista una soluci
on optima finita del problema es que
cdj 0, j = 1, . . . , l
En este caso existe un punto extremo que es solucion optima del problema.

LINEAL
CAPITULO 1. PROGRAMACION

44

Demonstraci
on. Por el Teorema de representacion, Teorema 1.4, Ax = b y
x 0 es equivalente a que x se puede escribir como
k

l
j

x=

j dj

j x +
j=1

k=1

donde kj=1 j = 1, j 0, j = 1, . . . , k y j 0, j = 1, . . . , l. Por tanto el


problema de PL puede ponerse como
max
s.a

z = c( kj=1 j xj +
k
j=1 j = 1
j , j 0

l
j
k=1 j d )

Si existe alg
un j tal que cdj > 0, entonces j puede elegirse arbitrariamente grande, proporcionando una solucion no acotada. Esto demuestra que
una condicion necesaria y suficiente para que haya solucion optima finita es
cdj 0, j = 1, . . . , l.
Supongamos que cdj 0, k = 1, . . . , l, como queremos maximizar la
funci
on objetivo, elegimos j = 0, j, con lo que el problema se reduce a
max
s.a

z = c( kj=1 j xj )
k
j=1 j = 1
j 0

Esta claro que la solucion optima de este problema es finita y se encuentra


haciendo i = 1, j = 0, j = i, donde el ndice i viene dado por cxi =
max1jk cxj . Observese que la solucion del problema se alcanza en el punto
extremo i-esimo, con lo que queda demostrado el teorema.
A continuacion revisitaremos los pasos del Algoritmo Smplex, cuyo resumen puede observarse en el esquema de la Figura 1.6.
Paso inicial
Analicemos si la SBF de cualquier iteracion es o no optima.
Sea x un punto extremo y por tanto SBF, se puede escribir como
x =

xB
xN

B 1 b
0

con B 1 b 0 y A = B N . El valor de la funcion objetivo es cx =


cB xB + cN xN = cB xB = cB B 1 b.


1.3. EL METODO
SIMPLEX

45

Consideremos que las variables correspondientes a la base son x1 , x2 , . . . , xm


y las variables no basica son xm+1 , xm+2 , . . . , xm+n .
xB
Sea x un punto factible cualquiera, x puede factorizarse como x =
xN
y se pueden realizar las siguientes operaciones. Como Ax = BxB + NxN = b,
entonces xB = B 1 b B 1 NxN . El valor de la funcion objetivo en el punto x
puede expresarse como cx = cB xB + cN xN = cB (B 1 b B 1 NxN ) + cN xN =
cB B 1 b + (cN cB B 1 N)xN . Pero B 1 b = xB , luego cx = cB xB + (cN
cB B 1 N)xN , ademas cx = cB xB + cN xN = cB xB . As,
m+n

cx = cx + (cN cB B 1 N)xN = cx +

(cj cB B 1 Aj )xj
j=m+1

Pueden ocurrir dos situaciones:


1. Como xN 0 para cualquier solucion factible, si cj cB B 1 Aj 0, j =
1
m + 1, . . . , m + n, entonces m+n
Aj )xj 0 y por tanto
j=m+1 (cj cB B

cx cx , x factible, por lo que x es la solucion optima del problema.


2. Si por el contrario, existe j tal que cj cB B 1 Aj > 0, entonces si tomamos
una solucion en la que xj > 0 toma valor y el resto se quedan como estan,
entonces,
m+n

cx = cx + (cN cB B 1 N)xN = cx +

(cj cB B 1 Aj )xj > cx


j=m+1

y por tanto, la solucion x mejorara a la solucion x .


Paso iterativo: fase 1
Si hemos llegado a este paso, es porque existe al menos una variable xj
tal que cj cB B 1 Aj > 0. Sean j1 , j2 , . . . , jr los ndices de las variables que
satisfacen dicha desigualdad. Sabemos que
m+n

cx = cx + (cN cB B

N)xN = cx +

(cj cB B 1 Aj )xj
j=m+1

Como vamos a pasar una SBF adyacente, consideraremos todas las variables basicas de x excepto una. Como ya hemos comentado, entrara en la
nueva base aquella variable que mejore en mayor cantidad el valor de la funcion
objetivo, es decir,

LINEAL
CAPITULO 1. PROGRAMACION

46

xe {xj1 , . . . , xjr } : ce cB B 1 Ae = maxj1,...,jr {cj cB B 1 Aj }


ya que por cada unidad de xj la funcion objetivo aumentara en cj cB B 1 Aj .
Esta regla es heurstica.
Paso iterativo: fase 2
Supongamos que e {j1 , . . . , jr } es el ndice de la variable no basica que
entra en la nueva base. Construimos un nuevo punto de la forma x = x + de ,
B 1 Ae
y ee es un vector nulo de dimension n m, excepto
donde de =
ee
en la posicion e que tiene un 1.
B 1 Ae
= BB 1 Ae + Ae = 0 y por tanto,
Como Ade = B N
ee
Ax = A(x + de ) = Ax + Ade = b, . En conclusion, cualquier punto x de
la forma x = x + de verifica Ax = b, y para que sea factible, debera verificar
ademas x 0, es decir,
x = x + de = x +

B 1 Ae
ee

xB
0

B 1 Ae
ee

0.

Si > 0, entonces la coordenada correspondiente a xe es mayor que cero.


Pueden ocurrir dos situaciones:
1. Si B 1 Ae 0 para todas sus coordenadas, entonces B 1 Ae 0 y
(B 1 Ae ) 0, 0, por lo que x es factible para cualquier .
2. Si por el contrario, existe alguna coordenada tal que B 1 Ae > 0, la
situacion no es tan sencilla y habra que elegir tal que
1

(B b)1 (B 1 A)1e
..

.
1

(B b)m (B 1 A)me

0
B 1 b + (B 1 Ae )
0.
x=
=
.

..
ee

..

.
0
Por hipotesis, existe al menos un i tal que (B 1 A)ie > 0. Para satisfacer
x 0 bastara con que (B 1 b)i (B 1 A)ie 0 para aquellos i en los que


1.3. EL METODO
SIMPLEX

47
1

(B b)i
Observese
(B 1 A)ie > 0, es decir, que para estos i se cumpla (B
1 A)
ie
1
1
1
que si (B A)ie 0, siempre se tiene (B b)1 (B A)1e 0. Por lo
que se debe cumplir,

(B 1 b)i
, i : (B 1 A)ie > 0
1
(B A)ie

Si tomamos como el mnimo de dichos cocientes, se tiene la condicion,


as
(B 1 b)s
(B 1 b)i
=
= min1im { 1
: (B 1 A)ie > 0}
1
(B A)se
(B A)ie
As, (B 1 b)s (B 1 A)se = 0 y x tiene las variables que tena x menos
xs que pasa a tomar valor 0 y en su lugar aparece la variable xe que toma
(B 1 b)s
1
valor , el resto de variables toma valor (B 1 b)i (B
A)ie . Y
1 A) (B
se
hemos construido una SBF adyacente a la anterior en la que xe toma
valor como deseabamos.
As el nuevo punto x = x + de aporta a la funcion objetivo el valor
B 1 Ae
B 1 Ae
=
= cx + cB cN
cx = cx + cde = cx + c
ee
ee
cx + (cB B 1 Ae + ce ) donde recordemos que = xe . Cual es el valor de
la funcion objetivo en cada una de las dos posibles situaciones?
1. Si B 1 Ae 0 para todas sus coordenadas, independientemente del valor
la solucion es factible, por lo que ce cB B 1 Ae > 0 y cx = cx +
(cB B 1 Ae + ce ) cuando 0 < , y el problema tiene
B 1 Ae
es una direccion
solucion no acotada. En este caso, de =
ee
extrema cumpliendo que cde = ce cB B 1 Ae > 0, luego estamos en las
condiciones del Teorema 1.5 de condiciones de optimalidad en PL que
nos permite concluir nuevamente que estamos ante solucion no acotada.
2. Si por el contrario, existe alguna coordenada tal que B 1 Ae > 0. En
este caso, el valor de la nueva SBF habra mejorado en |cx cx| =
|ce cB B 1 Ae | y como xe = la funcion objetivo habra mejorado en
|ce cB B 1 Ae | unidades por cada unidad de xe .

48

LINEAL
CAPITULO 1. PROGRAMACION

Paso inicial
b
usqueda de SBF inicial

Test de optimalidad
j, cj cB B 1 Aj 0?

Parar
optimo

no
Paso iterativo: fase 1
xe xN :
max
{cj cB B 1 Aj }
1
cj cB B

Aj >0

(B 1 A)e < 0?

Parar
inacotado

no
Paso iterativo: fase 2
(B 1 b)i
xs xB :
min
{
}
(B 1 A)ie >0 (B 1 A)ie

Paso iterativo: fase 3


Pivotaje para nueva SBF

Figura 1.6: Esquema del algoritmo Smplex


.

1.4

Teora de dualidad y an
alisis de sensibilidad

Uno de los descubrimientos mas importantes durante el desarrollo inicial de


la programacion lineal fue el concepto de dualidad y sus importantes ramificaciones. Este descubrimiento revelo que, asociado a todo problema de programacion lineal, existe otro problema lineal llamado dual. Desde distintos
puntos de vista las relaciones entre el problema dual y el original (llamado


1.4. TEORIA DE DUALIDAD Y ANALISIS
DE SENSIBILIDAD

49

primal) son muy u


tiles. Por ejemplo, se vera que, en realidad, la solucion
optima del problema dual es la que proporciona los precios sombra que se
describieron en la Seccion 1.3.2. Una de las aplicaciones mas importantes de
esta teora es la interpretacion y realizacion del analisis de sensibilidad. Es
una parte esencial de casi todos los estudios de programacion lineal, debido a
que la mayora de los valores de los parametros que se emplean en el modelo
original son solo estimaciones de las condiciones futuras, es necesario investigar
el efecto que tendran sobre la solucion optima en caso de que prevalecieran
otras condiciones. A
un mas, ciertos valores de estos parametros (como la cantidad de recursos) pueden representar decisiones administrativas, en cuyo caso
su eleccion debe ser el aspecto principal de la investigacion, el cual se puede
estudiar a traves del analisis de sensibilidad.
Dada nuestra forma estandar para el problema primal, que se presenta a
la izquierda (quiza despues de hacer conversiones cuando provienen de otras
formas), su problema dual tiene la forma que se muestra a la derecha.
max
s.a

z = cx
min
w = yb
Ax b
s.a
yA c
(1.19)
(1.20)
x0
y0
En general, la correspondencia entre ambos modelos viene dada en la Tabla
1.13.
Tabla 1.13: Correspondencia primal-dual
Funcion objetivo
Restricciones

Variables

1.4.1

max z
aij xj bi
aij xj = bi
aij xj bi
xj 0
xj IR
xj 0

min w
yi 0
yi IR
yi 0
aij yi cj
aij yi = cj
aij yi cj

Propiedades de la Teora de Dualidad

A continuacion se presenta un resumen de las importantes relaciones entre los


problemas primal y dual.
1. Propiedad de dualidad debil: Si x es una solucion factible para el prob-

50

LINEAL
CAPITULO 1. PROGRAMACION
lema primal y y es una solucion factible para el problema dual, entonces
cx yb.
2. Propiedad de dualidad fuerte: Si x es una solucion optima para el problema primal y y es una solucion optima para el problema dual, entonces
cx = y b.
3. Propiedad de soluciones complementarias: En cada iteracion, el metodo
smplex identifica de manera simultanea una solucion FEV, x, para el
problema primal y una solucion complementaria, y, para el problema
dual (que se encuentra en la fila (0), como los coeficientes de las variables
de holgura), donde
cx = yb.
Si x no es optima para el problema primal, entonces y no es factible para
el problema dual.
4. Propiedad de soluciones complementarias optimas: Al final de cada iteracion, el metodo smplex identifica de manera simultanea una solucion
optima x para el problema primal y una solucion optima complementaria y para el problema dual (que se encuentra en la fila (0) como los
coeficientes de las variables de holgura), donde
cx = y b.
Los valores de yi son los precios sombra para el problema primal.
5. Propiedad de simetra: En el caso de cualquier problema primal y su
problema dual, las relaciones entre ellos deben ser simetricas debido a
que el dual de este problema dual es este problema primal.

En consecuencia, todas las propiedades anteriores se cumplen sin que importe a cual de los dos problemas se le llame problema primal. (La direccion
de la desigualdad de la propiedad de dualidad debil requiere que el problema
primal se exprese o reexprese en la forma de maximizacion y el problema dual
en la forma de minimizacion.) Por tanto, el metodo smplex se puede aplicar a
cualquiera de los dos problemas e identificara al mismo tiempo las soluciones
complementarias (y en u
ltima instancia una solucion complementaria optima)
para el otro problema.


1.4. TEORIA DE DUALIDAD Y ANALISIS
DE SENSIBILIDAD

51

Hasta este punto se han estudiado las relaciones entre las soluciones factibles
u optimas para el problema primal y las soluciones correspondientes para el
problema dual. Sin embargo, es posible que el problema primal (o el dual)
no tenga soluciones factibles o bien tenga soluciones factibles pero no una
solucion optima (debido a que la funcion objetivo no este acotada). La u
ltima
propiedad resume las relaciones primal-dual de todas estas posibilidades.
Teorema 1.6. Teorema de la dualidad
Las siguientes son las u
nicas relaciones posibles entre los problemas primal
y dual.
1. Si un problema tiene soluciones factibles y una funcion objetivo acotada
(y, por ende, una solucion optima), entonces ocurre lo mismo con el otro
problema, de manera que se aplican tanto la propiedad de dualidad debil
como la fuerte.
2. Si uno de los problemas tiene soluciones factibles y una funcion objetivo
no acotada (es decir, no tiene solucion optima), entonces el otro problema
no tiene soluciones factibles.
3. Si un problema no tiene soluciones factibles, entonces el otro problema
no tiene soluciones factibles o bien la funcion objetivo es no acotada.

1.4.2

Interpretaci
on econ
omica

Recordemos la expresion del problema primal en notacion extendida dada en


1.21:
maximizar z =
sujeto a

n
j=1 cj xj

n
j=1 aij xj

bi , i = 1, 2, . . . , m

xj 0,

(1.21)

j = 1, 2, . . . , n

La interpretacion economica de los coeficientes, es como en el Ejemplo 1.3:


xj : Nivel de la actividad j
cj : Ganancia unitaria debida a la actividad j
z: Ganancia total debida a todas las actividades
bi : Cantidad disponible del recurso i

LINEAL
CAPITULO 1. PROGRAMACION

52

aij : Cantidad del recurso i consumida por cada unidad de la actividad j


El primal tiene su correspondiente problema dual en 1.22:
m
i=1 bi yi

minimizar w =
sujeto a

m
i=1

aij yi cj , j = 1, 2, . . . , n

yi 0,

(1.22)

i = 1, 2, . . . , m

La interpretacion economica es la siguiente:


yi : contribucion a la ganancia por unidad del recurso i (precio sombra)
bi yi : contribucion a la ganancia por disponer de bi unidades del recurso i
aij yi : contribucion a la utilidad de esa mezcla de recursos que se consumiran si se usara 1 unidad de la actividad (producir 1 lote del producto
j por semana)
aij yi cj : la contribucion actual a la utilidad de la mezcla anterior de recursos debe ser, por lo menos, tan grande como si 1 unidad de la actividad
j la utilizara; de otra manera no se llevara a cabo la mejor utilizacion
de estos recursos
yi 0: la contribucion a la utilidad por parte del recurso i debe ser no negativa, pues de lo contrario sera mejor no utilizar este recurso.
min w: minimizacion del valor total implcito de los recursos consumidos por
las actividades.
La asociacion entre las variables de los problemas primal y dual viene dada
en la Tabla 1.14:
Tabla 1.14: Correspondencia variables primal-dual
Variables primales
Variables duales
De decision x1 , . . . , xn
De superavit z1 c1 , . . . , zn cn
De holgura xn+1 , . . . , xn+m De decision
y1 , . . . , ym


1.4. TEORIA DE DUALIDAD Y ANALISIS
DE SENSIBILIDAD

1.4.3

53

An
alisis de sensibilidad

El analisis de sensibilidad consiste, en esencia, en la investigacion del efecto


que tiene sobre la solucion optima el hecho de hacer cambios en los valores de
los parametros del modelo aij , bi y cj . Sin embargo, al cambiar los valores de
los parametros en el problema primal se cambian tambien los valores correspondientes en el problema dual. Por tanto, se puede elegir que problema se
va a usar para investigar cada cambio.
Por ejemplo, suponga que los cambios que se hacen en el modelo original
ocurren en los coeficientes de una variable que era no basica en la solucion
optima original. Cual es el efecto de estos cambios sobre esta solucion? Todava es factible? Todava es optima? Como la variable en cuestion es no
basica (su valor es cero), el cambio en sus coeficientes no puede afectar la
factibilidad de la solucion, por lo cual, la pregunta que queda abierta en este
caso es si todava es optima. Una pregunta equivalente es si la solucion basica
complementaria para el problema dual todava es factible despues de hacer
estos cambios. Dado que los cambios afectan al problema dual nada mas en
una restriccion, la pregunta se puede responder de manera sencilla al verificar
si esta solucion basica complementaria satisface la restriccion revisada.
Las variables de decision del modelo suelen representar los niveles de las
distintas actividades en consideracion. En algunas situaciones, se seleccionan
algunas de ellas de entre un grupo grande de actividades posibles en el que
las restantes no fueron elegidas debido a que parecan ser menos atractivas. O
quizas estas otras actividades no fueron visibles sino hasta despues de formular
y resolver el modelo original. De cualquier manera, la pregunta en este caso es
si se justifica la inclusion de alguna de estas actividades no consideradas con
anterioridad. En otras palabras, cambiara la solucion optima original si se
agrega cualquiera de estas actividades? La inclusion de otra actividad equivale
a introducir en el modelo una nueva variable, con los coeficientes apropiados
en las restricciones funcionales y en la funcion objetivo. El u
nico cambio
que resulta en el problema dual es la introduccion de una nueva restriccion.
Una vez hechos estos cambios, la solucion optima original, junto con la nueva
variable igual a cero (no basica), sera todava optima para el problema primal?
Igual que en el caso anterior, una pregunta equivalente es si la solucion basica
complementaria todava es factible para el problema dual, e igual que antes,
esta pregunta se puede contestar con solo verifi car si esta solucion basica
complementaria satisface una restriccion, que en este caso se trata de la nueva
restriccion del problema dual.
El trabajo del equipo de investigacion de operaciones apenas comienza una

54

LINEAL
CAPITULO 1. PROGRAMACION

vez que se aplica con exito el metodo smplex para identificar una solucion
optima para el modelo. Un supuesto de programacion lineal es que todos
los parametros del modelo son constantes conocidas. En realidad, los valores
de los parametros que se usan en el modelo casi siempre son solo estimaciones
basadas en una prediccion de las condiciones futuras. Con frecuencia, los datos
que se obtienen para desarrollar estas estimaciones son bastante burdos o no
existen, as que los parametros de la formulacion original pueden representar
tan solo la opinion proporcionada por el personal correspondiente. Los datos
pueden incluso representar estimaciones optimistas o pesimistas que protegen
los intereses de los estimadores.
En consecuencia, un administrador razonable y el personal de investigacion
de operaciones deben mantener cierto escepticismo saludable respecto de los
n
umeros originales que les proporciona el ordenador y, en muchos casos, los
tomaran nada mas como un punto de partida para el analisis posterior del
problema. Una solucion optima lo es solo en lo que se refiere al modelo especfico que se usa para representar el problema real, y esa solucion no se
convierte en una gua confiable para la accion hasta verificar que su comportamiento es bueno tambien para otras representaciones razonables del problema. A
un mas, algunas veces los parametros del modelo (en particular las bi )
se establecen como resultado de decisiones basadas en polticas administrativas (por ejemplo, la cantidad de ciertos recursos que se ponen a disposicion
de las actividades), y estas decisiones deben revisarse despues de detectar sus
consecuencias potenciales.
Por estas razones es importante llevar a cabo un analisis de sensibilidad,
para investigar el efecto que tendra sobre la solucion optima que proporciona
el metodo smplex el hecho de que los parametros tomen otros valores posibles. En general, habra algunos parametros a los que se les pueda asignar
cualquier valor razonable sin que afecten la optimalidad de esta solucion. Sin
embargo, tambien habra parametros con valores probables que lleven a una
nueva solucion optima. Esta situacion es seria, en particular si la solucion
original adquiere valores muy inferiores en la funcion objetivo, o tal vez no
factibles.
Por tanto, un objetivo fundamental del analisis de sensibilidad es identificar
los par
ametros sensibles (es decir, los parametros cuyos valores no pueden
cambiar sin que cambie la solucion optima). Para coeficientes de la funcion
objetivo que no estan clasificados como sensibles, tambien puede resultar de
gran utilidad determinar el intervalo de valores del parametro para el que la
solucion optima no cambia. (Este intervalo de valores se conoce como intervalo permisible para ese coeficiente.) En algunos casos, el cambio del valor


1.4. TEORIA DE DUALIDAD Y ANALISIS
DE SENSIBILIDAD

55

de un parametro en la columna del lado derecho dentro de una restriccion


funcional puede afectar la factibilidad de la solucion BF optima. Para manejar tales parametros, es u
til determinar el intervalo de valores para el que la
SBF optima (con los valores ajustados de las variables basicas) seguira siendo
factible. (Este intervalorecibe el nombre de intervalo permisible por el
lado derecho involucrado.) Este rango de valores es tambien el rango dentro del cual el precio sombra actual de la restriccion correspondiente permanece
valido.
Tal informacion es de gran valor en dos sentidos. Primero, identifica los
parametros mas importantes, por lo que se debe tener un cuidado especial
para hacer estimaciones cercanas y seleccionar una solucion que tenga un buen
desempe
no para la mayora de los valores posibles. Segundo, identifica los
parametros que sera necesario controlar muy de cerca cuando el estudio se
implante. Si se descubre que el valor real de un parametro esta fuera de su
intervalo de valores permisibles, esta es una se
nal incontrastable de que es
necesario cambiar la solucion.
Para problemas peque
nos, la verificacion del efecto de una variedad de
cambios en los valores de los parametros es directa con solo aplicar de nuevo
el metodo smplex para ver si cambia la solucion optima.
Sin embargo, en problemas mas grandes como los que se encuentran en
la practica, el analisis de sensibilidad requerira de un esfuerzo computacional
exorbitante si fuera necesario volver a aplicar el metodo smplex desde el principio para investigar cada cambio en el valor de un parametro. Por fortuna, se
pueden analizar los cambios esenciales en la tabla smplex para analizar como
los cambios en el modelo original alteraran los n
umeros de la tabla smplex
final. Por tanto, despues de hacer unos cuantos calculos para actualizar esta
tabla smplex, se puede verificar si la SBF optima original ahora es no optima
(o no factible). Si es as, esta solucion se usara como solucion basica inicial
para comenzar de nuevo el smplex (o el smplex dual) y encontrar una nueva
solucion optima, si se desea. Si los cambios en el modelo no son muy grandes,
solo se requeriran unas cuantas iteraciones para obtener la nueva solucion
optima a partir de esta solucion basica inicial avanzada.
Resumen del procedimiento para analisis de sensibilidad:
1. Revision del modelo: se hacen los cambios deseados en el modelo que se
va a investigar.
2. Revision de la tabla smplex final: Se emplea la idea fundamental para
determinar los cambios que resultan en la tabla smplex final.

LINEAL
CAPITULO 1. PROGRAMACION

56

3. Conversion a la forma apropiada de eliminacion de Gauss: Se convierte


esta tabla en la forma apropiada para identificar y evaluar la solucion
basica actual, para lo cual se aplica (seg
un sea necesario) eliminacion de
Gauss.
4. Prueba de factibilidad: Se prueba la factibilidad de esta solucion mediante la verificacion de que todas las variables basicas de la columna del
lado derecho a
un tengan valores no negativos.
5. Prueba de optimalidad: Se verifica si esta solucion es optima (factible),
mediante la comprobacion de que todos los coeficientes de las variables
no basicas de la fila 0 contin
uen no negativos.
6. Reoptimizacion: Si esta solucion no pasa una de las pruebas, se puede
obtener (si se desea) la nueva solucion optima a partir de la tabla actual
como tabla smplex inicial (con las conversiones necesarias) por el metodo
smplex o el smplex dual.
Posibles casos a considerar:
Cambios en las bi
Cambios en los coeficientes de una variable no basica
Introduccion de una nueva variable
Cambios en los coeficientes de una variable basica
Introduccion de una nueva restriccion

Captulo 2
Programaci
on No Lineal
2.1

Introducci
on a la Programaci
on No Lineal

Como respuesta a dos de las crticas mas frecuentes de la PL, a saber, la restrictividad de la hipotesis de linealidad y la dificultad de definir una u
nica
funcion objetivo, surge la Programacion no lineal (PNL) y la Teora de la
Decision Multicriterio (que no abordaremos en este captulo). Efectivamente,
un supuesto importante en PL es que todas sus funciones (objetivo y restricciones) son lineales. Aunque, en esencia, este supuesto se cumple en el caso de
muchos problemas practicos, con frecuencia no es as. Por lo que es necesario
abordarlo desde la Programacion No Lineal (PNL).
De manera general, un problema de PNL consiste en encontrar x = (x1 , x2 , . . . , xn )
tal que
max
s.a

f (x)
gi (x) bi , i = 1, 2, . . . , m
x0

donde f (x) y gi (x) son funciones dadas de n variables de decision1 .


1

Analogamente, puede tratarse de un problema de minimizaci


on
min
s.a

f (x)
gi (x) bi , i = 1, 2, . . . , m
x0

57

NO LINEAL
CAPITULO 2. PROGRAMACION

58
En notacion extendida:
max
s.a

f (x1 , x2 , . . . , xn )
g1 (x1 , x2 , . . . , xn ) b1
g2 (x1 , x2 , . . . , xn ) b2
..
.
gm (x1 , x2 , . . . , xn ) bm
xj 0, j = 1, 2, . . . , n

Existen muchos tipos de problemas de PNL, en funcion de las caractersiticas


de estas funciones, por lo que se emplean varios algoritmos para resolver los
distintos tipos. Para ciertos casos donde las funciones tienen formas sencillas,
los problemas pueden resolverse de manera relativamente eficiente. En algunos
otros casos, incluso la solucion de peque
nos problemas representa un verdadero
reto.
Cuando un problema de PNL tiene solo una o dos variables, se puede representar en forma grafica. Si las funciones no son lineales, dibujaremos curvas
en lugar de rectas, por lo que funcion objetivo y region factible dejaran de
tener el aspecto que adquieren en la PL. La solucion no tiene porque estar
en un vertice de la region factible, ni siquiera tiene porque encontrarse en la
frontera de esta. Por lo que la desaparece ahora la gran simplificacion que se
utiliza en PL, que permite limitar la b
usqueda de solucion optima a las soluciones en los vertices. Ademas en PNL un maximo local no es necesariamente
un maximo global y en general, los algoritmos de PNL no pueden distinguir
cuando se encuentra en un optimo local o en uno global. Por tanto, es crucial
conocer las condiciones en las que se garantiza que un maximo local es un
maximo global en la region factible. Recuerde que en Analisis Matematico,
cuando se maximiza una funcion ordinaria (doblemente diferenciable) de una
sola variable f (x) sin restricciones, esta garanta esta dada cuando
x,

d2 f
0,
dx2

es decir, cuando la funcion es concava hacia abajo, o simplemente concava.


Ejemplo 2.1. Formulacion y resolucion grafica de un problema de PNL
Si se modifica ligeramente la funcion objetivo del Ejemplo 1.3, el problema
se convierte en uno de PNL. El problema dado en (2.1) se puede representar
graficamente por la Figura 2.1 y su solucion es el punto interior, (3, 3), de la
region factible.

A LA PROGRAMACION
NO LINEAL
2.1. INTRODUCCION

max 54x1 9x21 + 78x2 13x22


sujeto a
x1
4
2x2 12
3x1 +2x2 18
x1 0, x2 0

59

(2.1)

z = 198

(3, 3)
2

0
0

Figura 2.1: Region factible del ejemplo 2.1


Si un problema de PNL no tiene restricciones, el hecho de que la funcion
objetivo sea concava garantiza que un maximo local es un maximo global. (De
igual manera, una funcion objetivo convexa asegura que un mnimo local es un
mnimo global.) Si existen restricciones, se necesita una condicion mas para dar
esta garanta, a saber, que la region factible sea un conjunto convexo. Por esta
razon, los conjuntos convexos tienen un papel fundamental en la programacion
no lineal.
Recuerdese la Definicion 1.4 de conjunto convexo, es simplemente un conjunto de puntos tales que, para cada par de puntos de la coleccion, el segmento
de recta que los une esta totalmente contenido en ella. As, la region factible
en el problema original de la Wyndor Glass Co. (vea la Figura 2.1) es un
conjunto convexo. En realidad, la region factible de cualquier otro problema
de PL es un conjunto convexo. En general, la region factible de un problema
de PNL es un conjunto convexo siempre que todas las funciones gi (x) sean
convexas. Para garantizar que un maximo local sea un maximo global en un
problema de PNL con restricciones g1 (x) b1 , g2 (x) b2 , . . . , gm (x) bm y
x 0, la funcion objetivo f (x) debe ser concava y cada gi (x) debe ser convexa.
Un problema de este tipo se llama problema de programacion convexa y es una
de las clases mas importantes de la PNL.

NO LINEAL
CAPITULO 2. PROGRAMACION

60

Dada la importancia de las nociones de concavidad de funciones y regiones


en este captulo, veamos un resumen de sus definiciones y propiedades.
Definici
on 2.1. Sea una funcion de una sola variable f (x) y consideremos
cada par de valores de x, x y x
Se dice que es una funci
on convexa (o concava hacia arriba) si se
cumple
f (x + (1 )x ) f (x ) + (1 )f (x ), (0, 1).
Se dice que es una funci
on estrictamente convexa si se cumple
f (x + (1 )x ) < f (x ) + (1 )f (x ), (0, 1).
Se dice que es una funci
on c
oncava (o concava hacia abajo) si se
cumple
f (x + (1 )x ) f (x ) + (1 )f (x ), (0, 1).
Se dice que es una funci
on estrictamente c
oncava si se cumple
f (x + (1 )x ) > f (x ) + (1 )f (x ), (0, 1).
Observese que x + (1 )x es el segmento que une los dos puntos x
y x , por lo que en una funcion concava hacia arriba (convexa) el segmento
queda por encima de la funcion, mientras que en una funcion concava hacia
abajo (concava) el segmento queda por debajo. Por ejemplo, f (x) = x2 es
convexa, f (x) = x2 es concava, f (x) = x es simultaneamente concava y
convexa, f (x) = x3 no es ni concava ni convexa. En la Figura 2.2 observamos
graficamente los diferentes casos de funciones seg
un su concavidad.

convexa

concava y convexa

concava
(a)

ni concava ni convexa

(b)

(c)

Figura 2.2: Convexidad de funciones

(d)

A LA PROGRAMACION
NO LINEAL
2.1. INTRODUCCION

61

Si f (x) tiene derivadas de segundo orden para todo x, la caracterizacion


de convexidad para funciones de una variable viene dada en la Tabla 2.1.
Tabla 2.1: Caracterizacion de convexidad para funciones de una variable

d2 f
dx2

Convexa Estrictamente convexa Concava Estrictamente concava


0
>0
0
<0

Definici
on 2.2. Sea una funcion de varias variables f (x) = f (x1 , x2 , . . . , xn ) y
consideremos cada par de puntos de x, x = (x1 , x2 , . . . , xn ) y x = (x1 , x2 , . . . , xn ),
dado que los puntos sobre el segmento que une x y x vienen dados por
x + (1 )x = (x1 + (1 )x1 , x2 + (1 )x2 , . . . , xn + (1 )xn )
las definiciones dadas en la Definicion 2.1 siguen siendo validas donde x, x , x
son vectores de n elementos.
Observese que en una funcion concava hacia arriba (convexa) el segmento
queda por encima de la grafica de la funcion, mientras que en una funcion
concava hacia abajo (concava) el segmento queda por debajo. Si f (x) tiene
derivadas parciales de segundo orden para todas sus variables xj , necesitamos
definir la matriz hessiana para expresar la caracterizacion de convexidad para
funciones de dos variables dada en la Tabla 2.2 y la generica para n variables
en la Tabla 2.3.
Definici
on 2.3. Sea la funcion f : D IRn IR con derivadas parciales de
segundo orden en el punto x D, entonces definimos
el gradiente como el vector de derivadas parciales de primer orden
f f
f
,
,...,
x1 x2
xn

f (x ) =
la matriz hessiana como

f (x ) =

2f
x21
2f
x1 x2

2f
x2 x1
2f
x22

2f
x1 xn

2f
x2 xn

..
.

..
.

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

|x

2f
xn x1
2f
xn x2

..
.

2f
x2n

|x

NO LINEAL
CAPITULO 2. PROGRAMACION

62

el determinante de orden k como el determinante que se obtiene de la


matriz hessiana al considerar las primeras k filas y k columnas, es decir,

Dk = det

2f
x21
2f
x1 x2

2f
x2 x1
2f
x22

2f
x1 xk

2f
x2 xk

..
.

..
.

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

2f
xk x1
2f
xk x2

..
.

2f
x2k

|x

Tabla 2.2: Caracterizacion de convexidad para funciones de dos variables

D1 =
D2 =

2f
x21
2f 2f
x21 x22

Convexa Est. convexa Concava Est. concava


0
>0
0
<0
2

( x 1fx2 )2

>0

>0

Tabla 2.3: Caracterizacion de convexidad para funciones de varias variables


D1
D2
D3
..
.
(si n par)Dn
(si n impar)Dn

2.2

Convexa Est. convexa Concava Est. concava


0
>0
0
<0
0
>0
0
>0
0
>0
0
<0
..
..
..
..
.
.
.
.
0
>0
0
>0
0
>0
0
<0

Tipos de problemas de PNL

Veamos las clases de problemas de PNL mas importantes:


Optimizaci
on no restringida: problema sin restricciones, es decir, el
problema se reduce a
maxf (x).

63

2.2. TIPOS DE PROBLEMAS DE PNL

Si f (x) es diferenciable, la condicion necesaria para que x = x sea


optima es
f
|x=x = 0, j = 1, 2, . . . , n.
xj
La condicion suficiente es que f (x) sea concava2 .
Optimizaci
on restringida linealmente: si todas las funciones de restricciones son lineales pero la funcion objetivo es no lineal. Se han
desarrollado extensiones del metodo smplex. Un caso particular, con
m = 0 es aquel en que hay variables no negativas. Por ejemplo,
max
s.a

f (x)
xj 0

Entonces la condicion necesaria cambiara a :


f
| =
xj x=x
f
|
xj x=x

0, xj > 0
0, xj = 0

Programaci
on cuadr
atica: problema restringido linealmente con funcion
objetivo cuadratica (contiene cuadrados de variables o/y productos de
variables, como la del Ejemplo 2.1)
f (x1 , x2 ) = a1 x21 + a2 x22 + a3 x1 x2 + a4 x1 + a5 x2 .
Se han desarrollado muchos algoritmos para f (x) concava, esta formulacion surge de manera natural en muchas aplicaciones.
Programaci
on convexa: abarca una amplia clase de problemas, entre
los cuales, como casos especiales, se puede mencionar todos los tipos
anteriores cuando f (x) es una funcion concava que debe maximizarse.
Los supuestos son: (i) f (x) es concava y (ii) cada gi (x) es convexa.
Estos supuestos aseguran que un maximo local es global3 .
2
3

Si el problema es de minimizaci
on la confici
on suficiente es que f (x) sea convexa.
Si el problema es de minimizaci
on
min
s.a

f (x)
gi (x) bi

f (x) convexa y g1 (x), g2 (x), . . . , gm (x) convexas aseguran que un mnimo local es global.

NO LINEAL
CAPITULO 2. PROGRAMACION

64

Programaci
on separable: es un caso especial de programacion convexa, en donde el supuesto adicional es: todas las funciones f (x) y gi (x)
son separables. Una funci
on separable es una funcion en la que cada
termino incluye una sola variable, por lo que la funcion se puede separar
en una suma de funciones de variables individuales. Por ejemplo, si f (x)
es una funcion separable, se puede expresar como
n

f (x) =

fj (xj )
j=1

donde cada fj (xj ) incluye solo los terminos con xj . Como en el Ejemplo 2.1, f (x1 , x2 ) = 54x1 9x21 + 78x2 13x22 es una funcion separable
porque puede ser expresada como f (x1 , x2 ) = f1 (x1 ) + f2 (x2 ) donde
f1 (x1 ) = 54x1 9x21 y f2 (x2 ) = 78x2 13x22 son cada una funciones de
una sola variable. Es importante distinguir estos problemas de otros de
programacion convexa, pues cualquier problema de programacion separable se puede aproximar muy de cerca mediante uno de programacion
lineal y, entonces, se puede aplicar el eficiente metodo smplex.
Programaci
on no convexa: incluye todos los problemas de PNL que
no satisfacen los supuestos de programacion convexa. En este caso, aun
cuando se tenga exito en encontrar un maximo local, no hay garanta
de que sea tambien un maximo global. Por lo tanto, no se cuenta con
un algoritmo que garantice encontrar una solucion optima para todos
estos problemas; sin embargo, existen algunos algoritmos bastante adecuados para encontrar maximos locales, en especial cuando las formas
de las funciones no lineales no se desvan demasiado de aquellas que se
supuso para programacion convexa. Ciertos tipos especficos de problemas de programacion no convexa se pueden resolver sin mucha dificultad
mediante metodos especiales.
Programaci
on geom
etrica: cuando se aplica PNL a problemas de
dise
no de ingeniera, muchas veces la funcion objetivo y las funciones de
restriccion toman la forma
N

ck Pk (x)

g(x) =
k=1

donde
Pk (x) = xa1k1 xa2k2 xankn , k = 1, 2, . . . , N

65

2.2. TIPOS DE PROBLEMAS DE PNL

En tales casos, ck y akj con frecuencia representan las constantes fsicas,


mientras que las xj son las variables de dise
no. Estas funciones por lo
general no son ni concavas ni convexas, por lo que las tecnicas de programacion convexa no se pueden aplicar en forma directa a estos problemas
de programacion geometrica. Sin embargo, existe un caso importante en
el que el problema se puede transformar en un problema de programacion
convexa equivalente. Este caso es aquel en el que todos los coeficientes
ck de cada funcion son estrictamente positivos, es decir, las funciones
son polinomios positivos generalizados (ahora llamados posinomios), y
la funcion objetivo se tiene que minimizar. El problema equivalente de
programacion convexa con variables de decision y1 , y2 , . . . , yn se obtiene
al establecer
xj = eyj , j = 1, 2, . . . , n
en todo el modelo original, de modo que ya se puede aplicar un algoritmo de programacion convexa. Se ha desarrollado otro procedimiento
de solucion para resolver estos problemas de programacion posinomial,
al igual que para problemas de programacion geometrica de otros tipos.
Programaci
on fraccional: si la funcion objetivo se encuentra en la
forma de una fraccion, esto es, como razon o cociente de dos funciones,
max

f (x) =

f1 (x)
f2 (x)

Estos problemas de programacion fraccional surgen, por ejemplo, cuando


se maximiza la razon de la produccion entre las horas-persona empleadas
(productividad), o la ganancia entre el capital invertido (tasa de rendimiento), o el valor esperado dividido entre la desviacion estandar de alguna medida de desempe
no de una cartera de inversiones (rendimiento /
riesgo). Se han formulado algunos procedimientos de solucion especiales
para ciertas formas de f1 (x) y f2 (x). Cuando es posible, el enfoque mas
directo para resolver un problema de programacion fraccional es transformarlo en un problema equivalente de alg
un tipo estandar que disponga
de un procedimiento eficiente. Para ilustrar este enfoque, suponga que
f (x) es de la forma de programacion fraccional lineal
f (x) =

cx + x0
dx + d0

donde c y d son vectores fila, x es un vector columna y c0 y d0 son


escalares. Tambien suponga que las funciones de restriccion gi (x) son

66

NO LINEAL
CAPITULO 2. PROGRAMACION
lineales, es decir, las restricciones en forma matricial son Ax b y x
0. Bajo algunos supuestos debiles adicionales, el problema se puede
transformar en un problema equivalente de programacion lineal si se
establece
1
x
y t=
y=
dx + d0
dx + d0
y
de manera que x = . Este resultado conduce a
t
max
s.a

z = cy + c0 t
Ay bt 0
dy + d0 t = 1
y 0, t 0,

que se puede resolver con el metodo smplex. En terminos generales, se


puede usar el mismo tipo de transformacion para convertir un problema
de programacion fraccional con f1 (x) concava, f2 (x) convexa y gi (x)
convexas, en un problema equivalente de programacion convexa.
Problema de complementariedad: Dadas las variables w1 , w2, . . . , wp
y z1 , z2 , . . . , zp , el problema de complementariedad encuentra una solucion
factible para el conjunto de restricciones
w = F (z),

w 0,

z0

que tambien satisface la llamada restricci


on de complementariedad,
w t z = 0.
Aqu, w y z son vectores columna, F es una funcion vectorial y el superndice t denota la transpuesta. El problema no tiene funcion objetivo,
de manera que, desde un punto de vista tecnico, no es un problema de
programacion no lineal completo. Se llama problema de complementariedad por las relaciones complementarias que establecen las tambien
conocidas como variables complementarias que
wi = 0

zi = 0 i = 1, 2, . . . , p.

Un caso en especial importante es el problema de complementariedad


lineal, donde
F (z) = q + Mz,

NO RESTRINGIDA
2.3. OPTIMIZACION

67

donde q es un vector columna dado y M es una matriz dada de orden


p p. Se dispone de algoritmos eficientes para resolver este problema
bajo algunos supuestos adecuados sobre las propiedades de la matriz M.
Uno de estos requiere pivotear de una solucion basica factible a la siguiente, en forma muy parecida a la del metodo smplex para programacion
lineal. Ademas de tener aplicaciones en programacion no lineal, los problemas de complementariedad se utilizan en teora de juegos, problemas
de equilibrio economico y problemas de equilibrio en ingeniera.

2.3

Optimizaci
on no restringida

Consideremos el caso de maximizar una funcion diferenciable de una variable


concava (f (x ) < 0) no sujeta a ninguna restriccion. Recordemos el resultado
de Analisis Matematico que nos dice que x es maximo global si y solo si
df (x )
= 0.
dx
Si se puede despejar x de modo directo, el problema llega a su fin; pero
si f (x) no es una funcion sencilla y su derivada no es una funcion lineal o
cuadratica, tal vez sea imposible resolver la ecuacion analtica. De ser as,
existe una cantidad de procedimientos de b
usqueda para resolver el problema
en forma numerica. El enfoque con cualquiera de estos procedimientos de
b
usqueda implica encontrar una serie de ensayos de solucion que conduzcan
hacia una solucion optima. En cada iteracion se comienza con la solucion de
prueba actual para llevar a cabo una b
usqueda sistematica, que culmina con
la identificacion de una nueva solucion de prueba mejorada. El procedimiento
contin
ua hasta que la solucion de prueba haya convergido hacia una solucion
optima, en caso de que exista una. Como el conocido procedimiento intuitivo
y directo M
etodo de Bisecci
on para resolver
f (x) = 0,
cuyo algoritmo viene dado a continuacion.

68

NO LINEAL
CAPITULO 2. PROGRAMACION
Metodo de Biseccion
Paso inicial: Seleccionar una toleracia 0 Encontrar x y x por
inspeccion, ubicar un valor con derivada positiva y otro con
derivada negativa. Seleccionar una solucion de prueba inicial
intermedia x(0) := x+x
, i := 0.
2
(i)

)
. Si es positivo,
Paso iterativo: Avanzar i := i + 1. Evaluar df (x
dx
(i)
redefinir x := x . Si es negativo, redefinir x := x(i) . Seleccionar
una nueva solucion intermedia: x(i) := x+x
.
2

Criterio de parada: Si x x 2, parar, x x(i) . Sino, ir al Paso


iterativo.

Ejemplo 2.2. Aplicacion del Metodo de Biseccion


Utiliza el Metodo de Biseccion con tolerancia = 0.01 para resolver el
problema:
max 12x 3x4 2x6
s.a : x 0
f (x) = 12x 3x4 2x6 . Como f (x) = 12(3x2 + 5x4 ) 0, f es concava
por lo que si encontramos un maximo local, sera maximo global. El maximo x
debe satisfacer f (x ) = 0, por lo que el problema de maximizacion se reduce a
resolver la ecuacon no lineal
12 12x3 12x5 = 0.

Tabla 2.4: Metodo de Biseccion


Iteracion f (x)
x
x
0
0
2
1
12
0
1
2
+10.12 0.5
1
3
+4.09 0.75
1
4
2.19 0.75
0.875
5
+1.31 0.8125
0.875
6
0.34 0.8125
0.84375
7
+0.51 0.828125 0.84375

en el ejemplo
x(i)
f (x(i) )
1
7
0.5
5.7812
0.75
7.6948
0.875
7.8439
0.8125
7.8672
0.84375
7.8829
0.828125 7.8815
0.8359375 7.8839

NO RESTRINGIDA
2.3. OPTIMIZACION

69

Dada dicha tolerancia, el algoritmo parara en la iteraci


on 7, ofreciendo un

resultado de x (0.828125, 0.84375) y x 0.8359375.


Presentamos a continuacion el esquema algortmico M
etodo de Newton
para resolver
f (x) = 0,
tecnica que juega un papel fundamental en la PNL.
Metodo de Newton
Paso inicial: Seleccionar una toleracia 0 Encontrar por inspeccion una solucion de prueba inicial, i := 0.
2
(i)
df (x(i) )
y d fdx(x2 )
dx
(i) )
.
x(i) ff(x
(x(i) )

Paso iterativo: Evaluar


solucion: x(i+1) :=

Redefinir una nueva

Criterio de parada: Si |x(i+1) x(i) | , parar, x x(i+1) . Sino,


avanzar i := i + 1, ir al Paso iterativo.

Ejemplo 2.3. Aplicacion del Metodo de Newton


Utiliza el Metodo de Newton con tolerancia = 0.00001 para resolver el
problema del Ejercicio 2.2 anterior:
Tabla 2.5: Metodo de
Iteracion x(i)
f (x(i) )
1
1
7
2
0.875
7.8439
3
0.84003 7.8838
4
0.83763 7.8839

Newton en el ejemplo
f (x(i) ) f (x(i) ) x(i+1)
12
96
0.875
2.1940 62.733 0.84003
0.1325 55.279 0.83763
0.0006 54.790 0.83762

Dada dicha tolerancia, el algoritmo parara en la iteraci


on 4, ofreciendo un

resultado de x 0.83762.
En solo cuatro iteraciones, este metodo ha convergido con un grado muy
alto de precision. Una comparacion de esta tabla con la Tabla 2.2 ilustra cuanto
mas rapido converge el metodo de Newton que el metodo de biseccion. Si se
aplica este u
ltimo, se requeriran cerca de 20 iteraciones para converger con el
mismo grado de precision. Aunque esta convergencia rapida es muy usual en
el metodo de Newton, su desempe
no vara de problema a problema.

70

NO LINEAL
CAPITULO 2. PROGRAMACION

Consideremos ahora el caso de maximizar una funcion diferenciable de


varias variables concava no sujeta a ninguna restriccion. Recordemos el resultado de Analisis Matematico que nos dice que x es maximo global si y solo
si
f (x )
f (x ) f (x )
,
,...,
= (0, 0, . . . , 0).
f (x ) =
x1
x2
xn
Supongamos que el sistema no se puede resolver en forma analtica, por lo que
debe emplearse un procedimiento de b
usqueda numerico. Igual que en el caso
de una variable, existen varios procedimientos de b
usqueda para resolver este
tipo de problema en forma numerica. Uno de estos, el M
etodo de b
usqueda
del gradiente, es muy importante porque identifica y utiliza la direccion de
movimiento, desde la solucion de prueba actual, que maximiza la tasa a la

cual se incrementa f (x). Esta


es una de las ideas clave de la programacion no
lineal. Las adaptaciones de esta idea para tomar en cuenta las restricciones
tambien son una caracterstica central de muchos algoritmos que se utilizan
para llevar a cabo una optimizacion restringida.
Metodo de b
usqueda del gradiente
Paso inicial: Seleccionar una toleracia 0 Encontrar por inspeccion una solucion de prueba inicial x . Ir al Criterio de
parada.
Paso iterativo: Consta de tres fases:
Expresar f (x + tf (x )) como funcion de t al establecer
xj = xj + t

f (x )
, j = 1, 2, . . . , n
xj

y sustituir estas expresiones en f (x).


Utilizar el procedimiento de b
usqueda en una dimension

para encontrar t = t que maximice f (x + tf (x )) para


t 0.
Establecer x := x + t f (x ). Ir al criterio de parada.

Criterio de parada: Evaluar f (x ).


Si | fx(xj ) | , j =
1, 2, . . . , n, parar, la aproximacion a la solucion optima es x .
Sino, ir al Paso iterativo.

NO RESTRINGIDA
2.3. OPTIMIZACION

71

La version general del metodo de Newton esta dise


nada para resolver problemas de optimizacion restringida con variables m
ultiples. La idea basica es la
misma, es decir, se trabaja con una aproximacion cuadratica de la funcion objetivo f (x), donde, en este caso, x = (x1 , x2 , . . . , xn ). Esta funcion cuadratica
de aproximacion se obtiene al truncar la serie de Taylor alrededor de la solucion
de prueba actual despues del termino de la segunda derivada. Despues, esta
funcion aproximada se maximiza (o minimiza) exactamente para obtener la
nueva solucion de prueba para iniciar la siguiente iteracion. Cuando la funcion
objetivo es concava y tanto la solucion de prueba actual x como su gradiente
f (x) se escriben como vectores columna, la solucion x que maximiza la
funcion cuadratica de aproximacion tiene la forma
x = x [2 f (x)]1 f (x)
donde [2 f (x)]1 es la inversa de esta matriz hessiana. Los algoritmos de
programacion no lineal que emplean el metodo de Newton (incluso aquellos que
lo adaptan para ayudar a tratar con problemas de optimizacion restringida)
por lo general aproximan el inverso de la funcion hessiana de varias maneras.
Estas aproximaciones del metodo de Newton son conocidas como metodos
cuasi-Newton (o metodos metricos variables).
Ejemplo 2.4. Aplicacion del Metodo de b
usqueda del gradiente
Utiliza el Metodo de B
usqueda del Gradiente para resolver el problema:
max 2x1 x2 + 2x2 x21 2x22
s.a : x1 0, x2 0
2 2
< 0, f
2 4
es concava por lo que si encontramos un maximo local, sera maximo global.
Consideremos (0, 0) la solucion inicial de prueba.
f (x) = (2x2 2x1 , 2x1 + 2 4x2 ). Como 2 f (x) =

Tabla 2.6: Metodo de B


usqueda del
Iteracion x
f (x ) x + tf (x )
1
(0, 0)
(0, 2)
(0, 2t)
2
(0, 1/2) (1, 0)
(t, 1/2)

Gradiente en el ejemplo
f (x + tf (x )) t
x + t f (x )
4t 8t2
1/4 (0, 1/2)
2
t t + 1/2
1/2 (1/2, 1/2)

En iteraciones sucesivas, se obtienen: ( 12 , 43 ), ( 43 , 43 ), ( 43 , 87 ), ( 87 , 78 ), . . . Esta


sucesion converge a (1, 1) que es la solucion optima, ya que f (1, 1) = (0, 0).

NO LINEAL
CAPITULO 2. PROGRAMACION

72

2.4

Optimizaci
on restringida: condiciones KKT

Hemos visto las condiciones de optimalidad para el caso no restringido, para


el caso restringido general, veremos las condiciones de Karush-Kuhn-Tucker
(condiciones KKT), que fueron desarrolladas de manera independiente por
Karush (tesis de master, 1939) y por Kuhn y Tucker (1951). En la Tabla 2.7
se resumen las condiciones de optimalidad para problema de PNL restringidos
o no.
Tabla 2.7: Condiciones de optimalidad
Condiciones necesarias
Condiciones suficientes
f (x) = 0
f (x) concava
f (x) = 0 & f (x) 0 si xj = 0 f (x) concava
condiciones KKT
f (x) concava y gi (x) convexas

Restricciones
No
xj 0
General

Teorema 2.1.
(Condiciones nesarias)
Sean f (x), g1 (x), g2 (x), . . . , gm (x) funciones diferenciables que satisfacen
ciertas condiciones de regularidad. Entonces, x = (x1 , x2 , . . . , xn ) puede
ser una solucion optima para el problema de PNL (2.1), solo si existen m
n
umeros u1 , u2 , . . . , um que satisfagan las siguientes condiciones KKT:
1.

f (x )
xj

2. xj

f (x )
xj

m
i=1

i (x
ui gx
j

m
i=1

0, j = 1, 2, . . . , n

i (x
ui gx
j

= 0, j = 1, 2, . . . , n

3. gi (x ) bi 0, i = 1, 2, . . . , m
4. ui (gi (x ) bi ) = 0, i = 1, 2, . . . , m
5. xj 0, j = 1, 2, . . . , n
6. ui 0, i = 1, 2, . . . , m
(Condiciones suficientes)
Sea f (x) concava y g1 (x), g2 (x), . . . , gm (x) convexas (es decir, se trata
de un problema de programacion convexa), donde todas estas funciones
satisfacen las condiciones de regularidad y x satisface las condiciones
KKT. Entonces, x es una solucion optima.
Veremos una aplicacion de las condiciones KKT en la Seccion 2.5.

CUADRATICA

2.5. PROGRAMACION

2.5

73

Programaci
on cuadr
atica

Como se ha mencionado en la clasificacion de problemas de PNL en la Seccion


2.2, la programacion cuadratica difiere de la programacion lineal nada mas en
que la funcion objetivo es una funcion cuadratica, es decir, incluye tambien
terminos cuadrados o productos de variables.

2.5.1

Formulaci
on cuadr
atica

Definici
on 2.4. Sea f : IRn IR, f es una funci
on cuadr
atica si

f (x1 , x2 , . . . , xn ) =
qij xi xj = (x1 x2 . . . xn )

i,j=1

q11 q12
q21 q22
..
..
.
.
qn1 qn2

. . . q1n

. . . q2n

.
..
. ..
. . . qnn

x1
x2
..
.
xn

Propiedad: Las funciones cuadraticas cumplen la propiedad


f (x1 , x2 , . . . , xn ) = 2 f (x1 , x2 , . . . , xn ).
Definici
on 2.5. Sea f : IRn IR una funcion cuadratica, se dice que es
definida positiva si f (x) > 0, x IRn {0},
semidefinida positiva si f (x) 0, x IRn ,
definida negativa si f (x) < 0, x IRn {0},
semidefinida negativa si f (x) 0, x IRn ,
indefinida si no entra en ninguna de las clasificaciones anteriores.
Recuerdese la caracterizacion de matrices definidas positivas: todos los
autovalores j son positivos, o equivalentemente, todos los determinantes de
los menores principales son positivos. Por el contrario, la caracterizacion de
matrices definidas negativas: todos los autovalores i son negativos, o equivalentemente, todos los determinantes de los menores principales tienen signos
alternos, siendo el primero negativo.

NO LINEAL
CAPITULO 2. PROGRAMACION

74

Tabla 2.8: Caracterizacion de definicion para funciones cuadraticas


Autovalores Semidefinida Positiva Semidefinida Negativa
positiva
negativa
1
0
>0
0
<0
2
0
>0
0
<0
3
0
>0
0
<0
..
..
..
..
..
.
.
.
.
.
0
>0
0
<0
n
En consecuencia, si se usa la notacion matricial el problema es encontrar x
para
max
s.a

f (x) = cx + 12 xt Qx
Ax b
x0

donde c IRn es un vector fila y x IRn y b IRn son vectores columna.


Q = (qij ) Mnn y A = (aij ) Mmn son matrices y el superndice t denota
la transpuesta. Los elementos qij de Q son constantes dadas tales que qij = qji
(es decir, Q es una matriz simetrica, Qt = Q). As, la funcion objetivo se
expresa en terminos de estas qij , los elementos cj de c y las variables xj , de la
siguiente manera:
1
f (x) = cx + xt Qx =
2

1
cj xj +
2
j=1

qij xi xj
i=1 j=1

Ejemplo 2.5. Formulacion de un problema cuadratico


Consideremos el siguiente problema cuadratico de dos variables:
max
s.a

f (x1 , x2 ) = 15x1 + 30x2 + 4x1 x2 2x21 4x22


x1 + 2x2 30
x1 0, x2 0

Si observamos la funcion objetivo:


1
1
x1
x1 x2
+
f (x) = cx + xt Qx = c1 c2
x2
2
2
1
= c1 x1 + c2 x2 + (q11 x21 + 2q12 x1 x2 + q22 x22 )
2

q11 q12
q12 q22

x1
x2

CUADRATICA

2.5. PROGRAMACION

75

Igualando coeficiente a coeficiente con la expresion:


1
f (x1 , x2 ) = 15x1 + 30x2 + (4x21 + 8x1 x2 8x22 )
2
tenemos
c = 15 30 ,

Q=

4 4
,
4 8

A= 1 2 ,

b = 30

Se dispone de varios algoritmos para el caso especial de un problema de


programacion cuadratica donde la funcion objetivo es una funcion concava. La
funcion objetivo f (x) = cx + 21 xt Qx es concava si + 21 xt Qx es concava, es decir,
si xt Qx es semidefinida negativa. En efecto, recuerdese la caracterizacion de
convexidad dada en la Tabla 2.3 y observese que
2 f (x) = Q.
Se describira uno de estos algoritmos, el metodo smplex modificado, que
es muy aceptado porque se basa en el metodo smplex con una peque
na modificacion. La clave de este enfoque es construir las condiciones KKT y despues
reexpresarlas de una manera conveniente que se parezca a programacion lineal.
Por esto, antes de describir el algoritmo, se desarrollara esta practica forma.

2.5.2

Condiciones KKT para programaci


on cuadr
atica

Ejemplo 2.6. Condiciones KKT en programacion cuadratica


Analicemos las condiciones KKT en el Ejemplo 2.5 anterior.
1. Para j = 1 : 15 + 4x2 4x1 u1 0
Para j = 2 : 30 + 4x1 8x2 2u1 0
2. Para j = 1 : x1 (15 + 4x2 4x1 u1 ) = 0
Para j = 2 : x2 (30 + 4x1 8x2 2u1) = 0
3. x1 + 2x2 30 0
4. u1 (x1 + 2x2 30) = 0
5. x1 0, x2 0
6. u1 0

76

NO LINEAL
CAPITULO 2. PROGRAMACION

Para poder reexpresar estas condiciones en una forma mas conveniente,


se mueven las constantes de las condiciones 1 y 3 al lado derecho y despues
se introducen variables de holgura no negativas (denotadas por y1 , y2 y v1 ,
respectivamente) para convertir estas desigualdades en ecuaciones.
4x1 +4x2 u1 + y1
4x1 8x2
2u1
x1 +2x2

+y2
+v1

= 15
= 30
= 30

Observe que la condicion 2 para j = 1 se puede reexpresar ahora en forma


simple como la necesidad de que se cumpla una de las dos, x1 = 0 o bien
y1 = 0; esto es,
x1 y1 = 0.
Exactamente en la misma forma, las condiciones 2 para j = 2 y 4 se pueden
sustituir por
x2 y2 = 0
u1 v1 = 0
Para cada uno de estos tres pares (x1 , y1), (x2 , y2 ) y (u1 , v1 ), las dos variables se llaman variables complementarias, porque solo una de las dos
podra ser diferente de cero. Estas nuevas formas de las condiciones 2 y 4 se
pueden combinar en una u
nica restriccion, llamada restricci
on de complementariedad:
x1 y1 + x2 y2 + u1 v1 = 0.
Despues de multiplicar las ecuaciones de las condiciones 1. por 1 para
obtener lados derechos no negativos, se obtiene la forma deseada del conjunto
completo de condiciones:
4x1 4x2 +u1 y1
= 15
4x1 +8x2 +2u1
y2
= 30
x1 +2x2
+v1 = 30
x1 , x2 , u1 , y1, y2 , v1 0
x1 y1 + x2 y2 + u1v1 = 0

(2.2)

Esta forma es en especial conveniente puesto que excepto por la restriccion


de complementariedad, estas condiciones son restricciones de programacion
lineal.
En cualquier problema de programacion cuadratica, sus condiciones KKT
se pueden reducir a la misma forma conveniente que contiene solo restricciones

CUADRATICA

2.5. PROGRAMACION

77

de programacion lineal y una restriccion de complementariedad. En notacion


matricial, esta forma general es
Qx + At u y = ct ,
Ax + v = b
x, u, y, v 0
xt y + ut v = 0
donde los elementos del vector columna u IRm son las ui de las condiciones
KKT y los elementos de los vectores columna y IRn y v IRm son variables
de holgura.
Como se supone que la funcion objetivo del problema original es concava y
como las funciones de restriccion son lineales y, por tanto, convexas, se puede
aplicar el Teorema 2.1. As, x es optima si y solo si existen valores de y,
u y v tales que los cuatro vectores juntos satisfacen todas estas condiciones.
As pues, el problema original se reduce al problema equivalente de encontrar una solucion factible para estas restricciones. Es interesante observar que
este problema equivalente es un ejemplo del problema de complementariedad
lineal que se introdujo en la Seccion 2.2, y que una restriccion clave de este
problema de complementariedad lineal es precisamente su restriccion de complementariedad.

2.5.3

M
etodo Smplex Modificado

El M
etodo Smplex Modificado explota el importante hecho de que, con
excepcion de la restriccion de complementariedad, las condiciones KKT expresadas en la forma conveniente que se acaba de obtener, no son otra cosa
que restricciones de programacion lineal. A
un mas, la restriccion de complementariedad simplemente implica que no es permisible que las dos variables
complementarias de un par dado sean basicas (no nulas) al considerar SBF (no
degeneradas). Por tanto, el problema se reduce a encontrar una SBF inicial
para cualquier problema de programacion lineal con estas restricciones, sujeta a la restriccion adicional sobre la identidad de las variables basicas. (Esta
solucion inicial basica factible puede ser la u
nica solucion factible en este caso.)
Como se analizo en la Subseccion 1.3.4, tal SBF inicial se encuentra casi
de modo directo. En el sencillo caso de que ct 0 (poco probable) y b 0, las
variables basicas iniciales son los elementos de y y v (se multiplica por 1 todo
el primer conjunto de ecuaciones), de manera que la solucion deseada es x = 0,
u = 0, y = ct , v = b. De otra manera, es necesario revisar el problema e
introducir una variable artificial en cada una de las ecuaciones donde cj > 0 (se

78

NO LINEAL
CAPITULO 2. PROGRAMACION

agrega la variable una variable artificial por la izquierda) o bi < 0 (se resta una
variable artificial por la izquierda y despues se multiplican los dos lados por
1), con el fin de usar estas variables artificiales (que se denotan por zj ) como
variables basicas iniciales del problema revisado. (Observe que esta seleccion de
variables basicas iniciales satisface la restriccion de complementariedad, puesto
que como variables no basicas x = 0 y u = 0, de manera automatica.) Despues
se utiliza la fase 1 del metodo de dos fases para encontrar una SBF para el
problema real; es decir, se aplica el metodo smplex (con una modificacion) al
siguiente problema de programacion lineal

min z =

zj
j

sujeta a las restricciones anteriores de programacion lineal que se obtuvieron de las condiciones KKT, pero con estas variables artificiales incluidas.
La modificacion del metodo smplex es el siguiente cambio en el procedimiento para elegir una variable basica entrante.
Regla de entrada restringida: cuando se elige la variable basica entrante, se excluye de las posibilidades cualquier variable no basica cuya variable
complementaria sea basica; la eleccion debe hacerse entre las otras variables
no basicas, seg
un el criterio normal del metodo smplex.
Esta regla asegura que la restriccion de complementariedad se satisface en
todo el curso del algoritmo.
Cuando se obtiene una solucion optima x , u , y , v y z = 0 para la fase 1
de este problema, x es la solucion optima deseada para el problema original
de programacion cuadratica. La fase 2 del metodo de dos fases no se necesita.

Ejemplo 2.7. Resolucion del Metodo Smplex Modificado


Vamos a aplicar el algoritmo en el Ejemplo 2.5. Como hemos visto, la
4 4
es definida negativa, por lo que la funcion objetivo a
matriz Q =
4 8
maximizar f (x) es concava. El punto de partida para resolver este ejemplo
son las condiciones KKT en la forma conveniente (2.2) que se obtuvo en el
Ejemplo 2.6. Una vez que se introducen las variables artificiales z necesarias,
el problema de programacion lineal que se resolvera en forma explcita por el
metodo smplex modificado es

CUADRATICA

2.5. PROGRAMACION

min

z = z1 + z2
+u1 y1
+2u1
y2

4x1 4x2
+z1
= 15
4x1 +8x2
+z2 = 30
x1 +2x2
+v1
= 30
x1 , x2 , u1, y1 , y2 , v1 z1 , z2 0

79

(2.3)

La restriccion de complementariedad adicional


x1 y1 + x2 y2 + u1 v1 = 0
no se incluye de manera explcita, porque el algoritmo garantiza que se satisfaga
esta restriccion de manera automatica con la regla de entrada restringida.
En particular, en cada uno de los tres pares de variables complementarias
siempre que una de las dos variables sea ya una variable basica, la otra se
excluye de las candidatas como variable basica entrante. Recuerde que solo
las variables diferentes de cero son variables basicas. Dado que el conjunto
inicial de variables basicas del problema de programacion lineal (z1 , z2 y v1 )
proporciona una SBF inicial que satisface la restriccion de complementariedad,
no hay manera de violar esta restriccion con ninguna de las SBF subsiguientes.
En la Tabla 2.9 se muestran los resultados de la aplicacion del metodo
smplex modificado a este problema.
En la iteracion inicial se presenta el sistema de ecuaciones inicial despues
de convertir de minimizacion de z a maximizacion de z y de eliminar algebraicamente las variables basicas iniciales de la ecuaci
on (0). Las tres iteraciones proceden igual que en el metodo smplex normal, excepto por la eliminacion de ciertos candidatos para la variable basica entrante, seg
un la regla
de entrada restringida. En la iteracion 1 se elimina u1 como candidato
porque su variable complementaria v1 es ya una variable basica (de todas maneras, habra entrado x2 puesto que | 4| > | 3|). En la iteracion 2 se
elimina tanto u1 como y2 (puesto que sus complementarias v1 y x2 son variables basicas) y de manera automatica se elige x1 como u
nico candidato con
coeficientes negativos en la fila (0), mientras que el metodo smplex normal
habra permitido la entrada de x1 o bien de u1 , porque estan empatadas con el
coeficiente mas negativo. En la iteracion 3 se eliminan y1 y y2 (porque x1 y x2
son variables basicas). Esta vez u1 no se elimina, puesto que v1 ya no es una
variable basica, as que se elige u1 como variable entrante. La solucion optima
que resulta para esta fase del problema es x1 = 12, x2 = 9, u1 = 3, mientras el resto de las variables son nulas. Ademas, se satisfacen las condiciones
KKT del problema original, por lo que la solucion optima para el problema de
programacion cuadratica es (x1 , x2 ) = (12, 9) con z = 270.

80

NO LINEAL
CAPITULO 2. PROGRAMACION

Tabla 2.9: Tabla Metodo Smplex Modificado


It. xB Ec.
0
z
(0)
z1 (1)
z2 (2)
v1 (3)
1
z
(0)
z1 (1)
x2 (2)
v1 (3)
2
z
(0)
z1 (1)
x2 (2)
x1 (3)
3
z
(0)
u1 (1)
x2 (2)
x1 (3)

z
x1 x2
u1
y1
y2
v1
z1
z2
rhs
1
0 4
3
1
1
0
0
0
45
0
4 4
1
1
0
0
1
0
15
0
4
8
2
0
1
0
0
1
30
0
1
2
0
0
0
1
0
0
30
1
2
0
2
1
1/2
0
0
1/2
30
0
2
0
2
1 1/2
0
1
1/2
30
0 1/2
1
1/4
0 1/8
0
0
1/8
15/4
0
2
0 1/2
0
1/4
1
0 1/4
45/2
1
0
0 5/2
1
3/4
1
0
1/4 15/2
0
0
0
5/2
1 3/4
1
1
3/4
15/2
0
0
1
1/8
0 1/16
1/4
0
1/16
75/8
0
1
0 1/4
0
1/8
1/2
0 1/8
45/4
1
0
0
0
0
0
0
1
1
0
0
0
0
1 2/5 3/10 2/5
2/5
3/10
3
0
0
1
0
1/20 1/40 3/10 1/20
1/40
9
0
1
0
0 1/10
1/20
2/5
1/10 1/20
12

Referencias
[1] H. Calvete and P. Mateo, Programacion lineal, entera y meta. Coleccion
Textos Docentes. Prensa Universitaria de Zaragoza, 1994.
[2] F. Hillier and G. Lieberman, Introduccion a la investigacion de operaciones. Editorial McGraw-Hill, 2001.
[3] J. J. Salazar, Programacion Matematica. Ed. Diaz de Santos, 2011.
[4] C. Maroto, J. Alcaraz, and R. Ruiz, Investigacion Operativa. Modelos y
Tecnicas de optimizacion. Editorial Universidad Politecnica de Valencia,
2002.
[5] W. L. Winston, Operations Research: Applications and Algorithms. International Thomson Publishing, 1994.
[6] J. Dennis and R. Schnable, Numerical methods for unconstrained optimization and nonlinear equations. Prentice-Hall, Inc., New Jersey, 1983.
[7] J. Nocedal and S. Wright, Numerical optimization. Springer, USA, 1999.
[8] J. Birge and F. Louveaux, Introduction to Stochastic Programming.
Springer, 1997.
[9] L. Escudero, A. Garin, M. Merino, and G. Perez, A general algorithm for
solving two-stage stochastic mixed 0-1 first-stage problems., Computers
and Operations Research, vol. 36, pp. 25902600, 2009.
[10] A. Ramos, A. Alonso-Ayuso, and G. P. (eds.), Optimizacion bajo incertidumbre. Publicaciones de la Universidad Pontificia Comillas, 2009.
[11] COIN-OR, COmputational INfrastructure for Operations Research.
Website. http://www.coin-or.org/.
81

82

REFERENCIAS

[12] G. Perez and M. Garn, On downloading and using COIN-OR for solving
linear/integer optimization problems, tech. rep., Working paper series
Biltoki, UPV/EHU. DT.2010.05, Basque Country University, Spain, 2010.
[13] IBM, ILOG CPLEX optimizer. Website
. http://www-01.ibm.com/software/integration/optimization/cplex-optimizer/.
[14] G. Perez and M. Garn, On Downloading and Using CPLEX within
COIN-OR for Solving Linear/Integer Optimization Problems, tech. rep.,
Working paper series Biltoki, UPV/EHU. DT.2011.08, Basque Country
University, Spain, 2011.
[15] FICO, XPRESS optimization suite - student edition. Website
. http://optimization.fico.com/student-version-of-fico-xpress.html.
[16] GUSEK (GLPK under scite extended kit). Website
. http://gusek.sourceforge.net/gusek.html.
[17] Wikipedia, OR. http://en.wikipedia.org/wiki/Operations_research/.
[18] INFORMS, Science of better. http://www.scienceofbetter.org/.
[19] R. L. Ackoff, El arte de resolver problemas: las fabulas de Ackoff. Noriega,
Limusa Wiley, 2007.
[20] C. Churchman, R. Ackoff, and E. Arnoff, Introduction to Operations Research. Wiley, New York, 1957.
[21] IFORS. http://www.ifors.org/.
[22] J. Nash, The (dantzig) simplex method for linear programming, Computing in Science & Engineering, pp. 2931.

Вам также может понравиться