Sie sind auf Seite 1von 148

Universidad de Manizales

INTRODUCCIN A LA PROGRAMACIN LINEAL


JULIAN GONZLEZ LPEZ
ALVARO SALAS SALAS
UNIVERSIDAD DE MANIZALES
INTRODUCCIN A LA PROGRAMACIN LINEAL
JULIN GONZLEZ LPEZ
Profesor Asociado
Universidad de Manizales Departamento de Matemticas
Universidad de Caldas - Facultad de Ciencias Exactas y Naturales
Departamento de Matemticas
ALVARO SALAS SALAS
Profesor Auxiliar
Universidad de Caldas - Facultad de Ciencias Exactas y Naturales
Departamento de Matemticas
Manizales, Octubre de 2000
UNIVERSIDAD DE MANIZALES
4
INTRODUCCIN A LA PROGRAMACIN LINEAL
5
TABLA DE CONTENIDO
CAPTULO I. PROGRAMACIN LINEAL.
INTRODUCCIN 1
1.1. Modelos de programacin lineal 3
1.1.1. Forma matricial del modelo de programacin lineal 4
1.1.2. Forma estndar de un modelo de programacin lineal 4
1.2. Formulacin de modelos de programacin lineal 8
Ejercicios propuestos 20
CAPTULO II. MTODO GRFICO PARA RESOLVER MODELOS DE
PROGRAMACIN LINEAL CON DOS VARIABLES DE DECISIN.
INTRODUCCIN 23
2.1. Mtodo grfico para el caso de dos variables de decisin 23
2.1.1. Graficacin de un sistema de desigualdades 24
2.1.2. Isocuantas de la funcin objetivo 27
Ejercicios propuestos 32
UNIVERSIDAD DE MANIZALES
6
CAPTULO III. MTODO SMPLEX.
INTRODUCCIN 35
3.1. Preparacin para el mtodo smplex 37
3.1.1. Variables de holgura
3.2. Forma algebraica del mtodo smplex 41
3.3. Forma tabular del mtodo smplex 56
3.4. Mtodo smplex usando la tcnica M (mtodo de penalizacin) 67
Ejercicios propuestos 71
HOJA DE RESPUESTAS 73
BIBLIOGRAFIA 76
INTRODUCCIN A LA PROGRAMACIN LINEAL
7
PRESENTACIN
La Investigacin de Operaciones y en particular una de sus reas la programacin lineal ha
tenido bastante difusin y aplicacin en los ltimos aos. La necesidad de asignar en forma
ptima, entre diversas actividades, recursos en general escasos como; dinero, mano de obra,
energa, materia prima y muchos otros factores limitados; es importante para el profesional
que en su ejercicio diario requiere tomar decisiones.
La programacin matemtica dentro de la cual se encuentran los modelos de programacin
lineal difiere de los mtodos de optimizacin clsica, ya que enfrenta problemas donde las
limitaciones o restricciones se expresan como desigualdades, lo que le imprime mayor realis-
mo a los modelos; en estos casos los mtodos clsicos basados en el clculo no funcionan.
Este libro presenta de una manera sencilla, los conceptos bsicos de la programacin lineal y
algunas de sus mltiples aplicaciones; va dirigido a estudiantes de las ciencias econmico-
administrativas y solo requiere de parte del lector conocimientos bsicos de lgebra matricial.
En el captulo I se exponen los modelos de programacin lineal y la solucin de problemas
cuyo planteamiento conduce a este tipo de modelos. El captulo II presenta la solucin de
modelos de programacin lineal con dos variables de decisin a travs del mtodo grfico.
El captulo III desarrolla el algoritmo simplex inicialmente en forma algebraica con lo cual se
busca una mejor comprensin de ste por parte del estudiante y posteriormente en su forma
tabular ms eficiente desde el punto de vista computacional.
El captulo IV muestra la implementacin del algoritmo simplex en la plataforma del paquete
MATHEMATICA a travs de un programa interactivo, el cual permite adems analizar los
casos especiales que se presentan en estos modelos tales como; modelos sin solucin, con
soluciones ptimas alternativas y no acotados, se proporcionan tambin los criterios para
detectar en el desarrollo del algoritmo la presencia de stas situaciones.
Agradecemos a nuestros lectores sus sugerencias y comentarios a fin de mejorar este mate-
rial en futuras ediciones.
JULIAN GONZALEZ LOPEZ
ALVARO SALAS SALAS
Manizales, septiembre de 2000
UNIVERSIDAD DE MANIZALES
8
INTRODUCCIN A LA PROGRAMACIN LINEAL
9
CAPTULO I
PROGRAMACIN LINEAL
INTRODUCCIN
Uno de los problemas fundamentales en la toma de decisiones es elegir dentro de un conjunto
posible de alternativas (soluciones factibles de un problema de inters), la mejor decisin, o la
ptima, segn un criterio previamente definido.
La optimizacin es una tcnica que busca, con base en distintos modelos matemticos,
la asignacin eficiente de recursos, siempre escasos, requeridos en diversas activida-
des productivas que compiten entre s, con el propsito de satisfacer los objetivos de-
seados en el sector productivo, financiero, agrcola, entre otros, y que suelen ser la
maximizacin o minimizacin de alguna cantidad tal como: costo, beneficio, tiempo,
desperdicio, etc.
Existen varios mtodos de optimizacin; algunos clsicos utilizan el clculo diferencial y fun-
cionan bien en muchos casos; los no clsicos, cuyo desarrollo es ms reciente, se basan en
una serie de modelos llamados Modelos de Programacin Matemtica, como los modelos
de programacin lineal, modelos de programacin entera, modelos de programacin no li-
neal, etc.
Los modelos de programacin matemtica relacionan una variable de inters Z que se
desea optimizar en trminos de un conjunto de variables x
1,
x
2,
, x
n,
denominadas
variables de decisin, conformando una funcin objetivo que matemticamente se ex-
presa as:
UNIVERSIDAD DE MANIZALES
10
Z = f (x
1,
x
2,
x
n
)
La optimizacin de la variable Z normalmente est sujeta o condicionada a un conjunto de
restricciones que son impuestas por el medio, o que reflejan limitaciones reales. Dichas
restricciones se expresan en funcin de las variables de decisin a travs de ecuaciones o
inecuaciones segn el tipo de limitacin. Matemticamente una restriccin se expresa de la
siguiente forma:
g
i
(x
1,
x
2,
, x
n
) = b
i
con i = 1, 2, 3, , n
Por la naturaleza de las variables de decisin x
1
, x
2
, x
n
, puede ser necesario agregar
restricciones adicionales; por ejemplo, que sean enteras, o que sean no negativas.
Resumiendo, un modelo de programacin matemtica adopta la siguiente forma:
maximizar o minimizar. [ Z = f (x
1,
x
2,
, x
n
)] Funcin Objetivo
Sujeta a:
g
1
(x
1,
x
2,
, x
n
) = b
1
g
2
(x
1,
x
2,
, x
n
) = b
2
. Restricciones Principales
.
.
g
m
(x
1,
x
2,
, x
n
) = b
m
x
1
0, x
2
0, , x
n
0 Restricciones de no Negatividad
En este modelo de programacin matemtica los mtodos clsicos de optimizacin basados
en el clculo diferencial no funcionan debido a la presencia de restricciones expresadas como
INTRODUCCIN A LA PROGRAMACIN LINEAL
11
desigualdades, por lo cual es necesario desarrollar nuevos mtodos para encontrar la solu-
cin ptima.
Los mtodos de optimizacin no clsicos utilizan tcnicas iterativas (paso a paso) los que
en la actualidad con ayuda de los ordenadores resultan relativamente fciles de implementar,
permitiendo la solucin de problemas donde intervienen gran cantidad de variables y de
restricciones.
1. 1. MODELOS DE PROGRAMACIN LINEAL
Un modelo de programacin lineal es un modelo de programacin matemtica donde
la funcin objetivo y las restricciones son lineales; es decir, tiene la forma:
max. o min. [ Z = c
1
x
1
+ c
2
x
2
+ c
3
x
3
+ + c
n
x
n
]
Sujeta a:
a
11
x
1
+ a
12
x
2
+ + a
1n
x
n
= b
1
a
21
x
1
+ a
22
x
2
+ + a
2n
x
n
= b
2
. . .
. . .
. . .
a
m1
x
1
+ a
m2
x
2
+ + a
mn
x
n
= b
m
x
1
0, x
2
0 x
n
0
Las restricciones de no negatividad no son estrictamente necesarias, sin embargo, en proble-
mas de naturaleza econmica o financiera, entre otros, suelen estar presentes.
UNIVERSIDAD DE MANIZALES
12
En el modelo de programacin lineal se tiene que: Z es la funcin objetivo o variable a
optimizar, x
1
, x
2
, , x
n
son las variables de decisin y c
1
, c
2
, , c
n
, a
11
, a
12
, , a
mn
,
b
1
, b
2
, , b
m
son los parmetros.
Los parmetros se pueden interpretar segn el contexto donde surja el modelo; de esta forma
se tiene que: c
1
, c
2
, , c
n
, son beneficios unitarios, costos unitarios o precios unitarios, entre
otros, a
i j
para i= 1, 2, , m ; j = 1, 2, , n son los coeficientes tecnolgicos y b
1
, b
2
, , b
m
pueden representar recursos disponibles, o bien demandas, etc.
1.1.1. FORMA MATRICIAL DEL MODELO DE PROGRAMACIN LINEAL
El modelo de programacin lineal puede escribirse de una manera ms compacta usando la
notacin matricial, as:
C=
c
1
c
2
.
.
.
c
n
, A=
a
11
a
12
. . . a
1n
a
21
a
22
. . . a
2n
. . . . . .
. . . . . .
. . . . . .
a
m1
a
m2
. . . a
mn
, X=
x
1
x
2
.
.
.
x
n
, B=
b
1
b
2
.
.
.
b
m
c
1
c
2
.
.
.
c
n
INTRODUCCIN A LA PROGRAMACIN LINEAL
13
El modelo queda:
max. o min. [ Z = CX ]
Sujeta a
0 X
B AX


con C = Matriz transpuesta de C
1.1.2. FORMA ESTNDAR DE UN MODELO DE PROGRAMACIN LINEAL.
Un modelo de programacin lineal puede escribirse de tal forma que sus restricciones princi-
pales sean todas de igualdad, es decir, que formen un sistema lineal de ecuaciones. Lo
anterior es necesario para su solucin por el mtodo Smplex. El modelo de programacin
lineal as expresado se conoce como Modelo de Programacin Lineal en Forma Estndar.
Para escribir una desigualdad como igualdad es necesario sumar o restar una variable adicio-
nal segn sea del tipo menor o igual o mayor o igual, as:
g
i
(x
1,
x
2,
, x
n
) b
i


g
i
(x
1,
x
2,
, x
n
) + X
i
= b
i
g
k
(x
1,
x
2,
, x
n
) b
k
g
k
(x
1,
x
2,
, x
n
) - X
k
= b
k
Las variables X
i
o X
k
se denominan Variables de holgura y excedente, deben ser no
negativas y su significado o interpretacin econmica se hace en el contexto de un problema
real.
Un modelo de programacin lineal est en forma estndar si cumple las siguientes condicio-
nes:
UNIVERSIDAD DE MANIZALES
14
Todas las restricciones, con excepcin de las restricciones de no negatividad son igualdades.
Los elementos del lado derecho de cada igualdad son no negativos ( 0).
Todas las variables son no negativas ( 0).
Se tiene como objetivo maximizar o minimizar Z.
Ejemplo 1.1. Escriba el siguiente modelo de programacin lineal en su forma estndar.
min. [Z = x
1
- 3x
2
]
sujeta a:
-x
1
+ 2x
2
5
x
1
+ 3x
2
= 10
x
1
, x
2
son irrestrictas en signo.
Nota: Cuando se dice que una variable es irrestricta en signo, significa que ella puede tomar
valores positivos, negativos o cero.
Solucin: Se debe obtener un modelo con todas las variables de decisin no negativas,por
lo cual se definen x
1
, x
2
en terminos de las variables x
1
+
, x
1
-
, x
2
+
, x
2
-
no negativas.
x
1
= x
1
+
- x
1
-
con x
1
+
0 y x
1
-
0 .
x
2
= x
2
+
- x
2
-
con x
2
+
0 y x
2
-
0 .
Reemplazando x
1
, x
2
, el modelo queda:
min. [ Z = x
1
+
- x
1
-
- 3x
2
+
+ 3x
2
-
]
sujeta a:
-x
1
+
+ x
1
-
+ 2x
2
+
- 2x
2
-
5
x
1
+
- x
1
-
+ 3x
2
+
- 3x
2
-
= 10
x
1
+
, x
1
-
, x
2
+
, x
2
-
0
INTRODUCCIN A LA PROGRAMACIN LINEAL
15
Nota: Si al resolver este modelo se obtienen valores para x
1
+
, x
1
-
entonces en el modelo
original el valor de x
1
ser x
1
= x
1
+
- x
1
-
La misma aclaracin es vlida para las dems
variables.
Llevando la primera restriccin a igualdad sumndole una variable de holgura X
3
en el lado
izquierdo, obtenemos la forma estndar:
min. [Z = x
1
+
- x
1
-
- 3x
2
+
+ 3x
2
-
]
sujeta a:
-x
1
+
+ x
1
-
+ 2x
2
+
- 2x
2
-
+ X
3
= 5
x
1
+
- x
1
-
+ 3x
2
+
- 3x
2
-
= 10
x
1
+
, x
1
-
, x
2
+
, x
2
-
, X
3
0
Ejemplo 1.2. Obtenga la forma estndar del modelo de programacin lineal:
max. [Z = x
1
- 2x
2
+ x
3
]
sujeta a:
x
1
+ x
2
+ x
3
- 3
2x
1
+ x
2
- x
3
1
x
1
+ x
3
3
x
1
, x
2
0 , x
3
0
Solucin:
Se define x
3
*
= - x
3
con lo que se obtiene x
3
*
0
UNIVERSIDAD DE MANIZALES
16
Reemplazando x
3
*
y

multiplicando por (-1) la primera restriccin se llega al modelo:
max. [Z = x
1
- 2x
2
-x
3
*
]
- x
1
- x
2
+ x
3
*
3
2x
1
+ x
2
+ x
3
*
1
x
1
- x
3
*
3
x
1,
x
2,
x
3
*
0
Se agregan las variables de holgura X
4
, X
5
, X
6
para obtener la forma estndar:
max. [Z = x
1
- 2x
2
- x
3
*
]
sujeta a:
- x
1
- x
2
+x
3
*
- X
4
= 3
2x
1
+ x
2
+x
3
*
- X
5
= 1
x
1
- x
3
*
+ X
6
= 3
x
1
, x
2
,

x
3
*
, X
4
, X
5
, X
6
0
1.2. FORMULACIN DE MODELOS DE PROGRAMACIN LINEAL
Sin duda la formulacin de un modelo matemtico para una situacin real o un fenmeno
natural no es algo fcil. Sin embargo, existen algunas pautas que pueden orientar al alumno en
este proceso. No existen frmulas mgicas ni recetas, pero s estrategias que ayudan a
abordar los problemas.
Un problema de optimizacin, a menudo formulado verbalmente, debe expresarse en trmi-
nos matemticos. Se recomienda la siguiente estrategia:
INTRODUCCIN A LA PROGRAMACIN LINEAL
17
Con base en una lectura cuidadosa, comprender el problema e identificar las variables
involucradas (variable a optimizar, variables de decisin) y el objetivo (maximizar o mi-
nimizar).
Separar la informacin necesaria de la informacin que no se requiere en la construccin
del modelo. Si es necesario organice adecuadamente la informacin en cuadros o tablas.
Definir en forma apropiada las variables de decisin x
1
, x
2
, , x
n
y la funcin objetivo.
Puede realizarse de varias formas, aunque una buena definicin de las variables facilita la
construccin del modelo, mientras que otras pueden complicar innecesariamente este
proceso.
Construir la funcin objetivo en trminos de las variables de decisin. No olvide conside-
rar el anlisis de dimensiones, el cual consiste en verificar que las unidades del lado iz-
quierdo de una igualdad o desigualdad coincidan con las unidades del lado derecho. No
tiene sentido, por ejemplo, una igualdad o desigualdad donde el lado izquierdo tiene
unidades de tiempo y el lado derecho unidades de longitud.
Construir las restricciones en trminos de las variables de decisin, de acuerdo con los
aspectos mencionados en el numeral anterior. Cercirese de que para usted es claro el
significado de expresiones como: por lo menos, a lo sumo, como mximo, cuando mu-
cho, al menos, como mnimo, entre otras. No olvide incluir todas las restricciones.
Exprese las restricciones implcitas o que aparecen disimuladas en el problema, pero que
son claras por la naturaleza de las variables. Por ejemplo, las variables por su naturaleza
pueden requerir que sean no negativas o enteras, o pueden carecer de restricciones.
Sin ser exhaustivas, las anteriores recomendaciones, a pesar de que no garantizan xito en la
formulacin de modelos, son de gran ayuda en el proceso. Recuerde que el factor principal
es el ingenio y la creatividad en combinacin con la experiencia.
UNIVERSIDAD DE MANIZALES
18
Veamos algunos ejemplos de formulacin de modelos de programacin lineal, en distintos
campos.
Ejemplo 1.3. Planeacin de la Produccin.
Una planta industrial puede manufacturar 5 productos (A, B, C, D, E) en cualquier combina-
cin. Cada producto requiere tiempo en 3 mquinas como se muestra en la tabla. Cada
mquina est disponible 128 horas a la semana. Los productos son netamente competitivos
y cualquier cantidad fabricada puede venderse a $5, $4, $5, $4, $4 la libra respectivamente.
Los costos variables por hora de trabajo son $4 para las mquinas 1 y 2, y $3 para la
mquina 3. Los costos de material para cada lnea de producto son $2 para A y C y $1 para
B, D, E por libra.
Construya un modelo de programacin lineal que permita determinar el nivel ptimo de pro-
duccin (ver Cuadro Ejemplo 1.3)
Solucin:
El nivel ptimo de produccin es el nmero de unidades (libras) a producir de cada producto
A, B, C, D, E, con el fin de obtener la mayor utilidad.
Definicin de variables.
Variable a optimizar :
Z :Utilidad en pesos.
Variables de decisin:
x
1
, x
2
, x
3
, x
4
, x
5
: Nmero de libras a producir de A, B,C,D y E, respectivamente.
La informacin bsica del sistema de produccin se presenta en el siguente cuadro.
INTRODUCCIN A LA PROGRAMACIN LINEAL
19
Tiempo en minutos/libra
MQUINA
PRODUCTO 1 2 3 Precio Venta Costo Materia Prima
$/Libra $/Libra
A 12 8 5 5 2
B 7 9 10 4 1
C 8 4 7 5 2
D 10 0 3 4 1
E 7 11 2 4 1
Cuadro Ejemplo 1.3
Construccin de la funcin objetivo: Para construir la funcin objetivo se requiere cono-
cer la utilidad por libra de cada producto.
Costos por libra de cada producto:
Una libra de producto A requiere:
Materia prima $ 2
12 Minutos en la mquina A a
hora
$
4
da
hora
$
4 horas
60
12

= $ 0.8
8 Minutos en la mquina B a
hora
$
4
da
hora
$
4 horas
60
8

= $ 0.53
UNIVERSIDAD DE MANIZALES
20
5 Minutos en la mquina C a
hora
$
3
da
hora
$
3 horas
60
5

= $ 0.25
Total Costo Libra producto A $ 3.583
De igual forma obtenemos los costos por libra de los otros productos que aparecen en la tabla.
La utilidad por libra de cada producto se obtiene restando del precio de venta por libra el
costo por libra. Se propone al lector la verificacin de las cifras en la siguiente tabla:
PRODUCTO Precio

Libra en $ Costo

Libra en $ Utilidad

Libra en $
A 5 3.583 1.417
B 4 2.567 1.433
C 5 3.150 1.850
D 4 1.817 2.183
E 4 2.300 1.700
Por lo tanto la funcin de utilidad se construye sumando la utilidad total obtenida para x
1
libras
de A, x
2
libras de B, x
3
libras de C, x
4
libras de D, x
5
libras de E obtenindose:
Z = 1.417x
1
+ 1.433x
2
+ 1.85x
3
+ 2.183x
4
+ 1.7x
5
Construccin de las restricciones: Cada mquina impone una restriccin, pues la disponi-
bilidad en horas a la semana est limitada a 128 horas o sea 7680 minutos.
INTRODUCCIN A LA PROGRAMACIN LINEAL
21
Totalizando el nmero de minutos que se ocupa la mquina 1 en la produccin de x
1
libras
de A, x
2
libras de B, x
3
libras de C, x
4
libras de D, x
5
libras de E, ste no debe
sobrepasar el tiempo total disponible, es decir debe ser menor o a lo sumo igual a 7680
minutos.
Mquina 1.
7680 x 7 x 10 x 8 B libra x
B libra
min
7 A libra x
A libra
min
12
5 4 3 2 1
+ + + +
La restriccin queda:
12x
1
+ 7x
2
+ 8x
3
+ 10x
4
+ 7x
5
7680.
De igual forma se tiene restriccin de tiempo para el uso de las mquinas 2 y 3 as:
Mquina 2 8x
1
+ 9x
2
+ 4x
3
+ 10x
5
7680
Mquina 3 5x
1
+ 10x
2
+ 7x
3
+ 3x
4
+ 2x
5
7680
Se deja como ejercicio la deduccin de estas dos ltimas restricciones.
Como las variables de decisin son el nmero de libras a producir de cada producto, sta
debe ser una cantidad no negativa, es decir, 0 (cero) o positiva, por lo que son necesarias las
restricciones de no negatividad sobre las variables de decisin.
UNIVERSIDAD DE MANIZALES
22
El modelo de programacin lineal finalmente queda:
max [ Z = 1.417x
1
+ 1.433x
2
+ 1.85x
3
+ 2.183x
4
+ 1.7x
5
]
sujeta a:
12x
1
+ 7x
2
+ 8x
3
+ 10x
4
+ 7x
5
7680
8x
1
+ 9x
2
+ 4x
3
+ + 11x
5
7680
5x
1
+ 10x
2
+ 7x
3
+ 3x
4
+ 2x
5
7680
x
1
, x
2
, x
3
, x
4
, x
5
0
Ejemplo 1.4. Planeacin Financiera
Un empresario tiene la opcin de invertir su dinero en dos planes: el plan A le garantiza que
cada peso invertido ganar 70 centavos dentro de un ao, el plan B le ofrece que en 2 aos
su dinero se triplica, pero exige que las inversiones sean por periodos mltiplos de dos aos.
Construya un modelo de programacin lineal para saber cul ser un plan de inversin para
$1.000.000 con el fin de obtener el mximo dinero posible en el ao 3.
Solucin:
Con un diagrama de tiempo se definen las variables en forma apropiada, las flechas hacia
abajo son las inversiones y hacia arriba representan las rentas o ingresos.
Plan A
INTRODUCCIN A LA PROGRAMACIN LINEAL
23
Plan B (Inversiones por perodos mltiplos de dos aos)
B 0
X
B 1
X
B 0
X 3
B 1
X 3
0 1 2 3
Aos
Sea X
i j
: Cantidad de dinero a invertir en el plan j (j = A , B) en el ao i ( i = 0, 1, 2 )
El objetivo es maximizar la suma de dinero disponible en el ao 3. Sea Z suma de dinero a
retirar en el ao 3, es decir Z = 1.7X
2A
+ 3X
1B
Las restricciones se relacionan con la cantidad de dinero disponible en cada perodo anual.
En 0 hay disponible 1000000. Por lo tanto, X
0A
+ X
0B
1000000
En 1 hay disponible 1.7X
OA .
Por lo tanto, X
1A
+ X
1B
1.7X
OA
En 2 hay disponible 1.7X
1A
+ 3X
OB
, luego X
2A
1.7X
1A
+ 3X
0B
Adems, X
0A,
X
1A,
X
2A,
X
0B ,
X
1B
0 , X
2B
= 0
UNIVERSIDAD DE MANIZALES
24
El modelo de programacin lineal queda:
max [ Z = 1.7X
2A
+ 3X
1B
]
Sujeta a:
X
0A
+ X
0B
< << << 1000000
1.7X
0A
- X
1A
- X
1B
0
1.7X
1A
- X
2A
+ 3X
OB
0
X
0A
, X
1A
, X
2A
, X
0B
, X
1B
0
Ejemplo 1.5. Puntos de Equilibrio Mltiple
La compaa ATI S.A. fabrica dos tipos de productos A y B. La firma ha contratado
800 unidades de A y desea saber cul es el punto de equilibrio ptimo teniendo la siguiente
informacin:
Precio $/Unidad Costo $/Unidad Costos Fijos
Producto A 500 300 180000
Producto B 750 340 270000
Solucin:
Sean X
1
: Nmero de unidades del producto A vendidas y producidas.
X
2
: Nmero de unidades del producto B vendidas y producidas
Y : Ingresos por la venta del nmero de unidades producidas de A y B.
C : Costo de producir X
1
unidades de A y X
2
unidades de B.
El equilibrio se logra cuando los ingresos son iguales a los costos.
INTRODUCCIN A LA PROGRAMACIN LINEAL
25
Como Y = 500X
1
+ 750X
2
$ (Ingresos)
C = 300X
1
+ 340X
2
+ 450000 $ (costos)
Equilibrio Y - C = 0
Recta de Equilibrio: 200X
1
+ 410X
2
= 450000
Si dibujamos la recta de equilibrio tenemos:
Para buscar el punto de equilibrio debe asumirse algn criterio.
Caso 1: Si el criterio es maximizar los ingresos se tiene el siguiente modelo:
max [ Y = 500X
1
+ 750X
2
]
Sujeta a:
200X
1
+ 410X
2
= 450000 (Equilibrio)
X
1
800 (Demanda comprometida)
X
1
, X
2
0
UNIVERSIDAD DE MANIZALES
26
Caso 2: Si el criterio es minimizar costos se obtiene el modelo.
min. [ C = 300X
1
+ 340X
2
]
sujeta a:
200X
1
+ 410X
2
= 450.000
X
1
800
X
1
, X
2
0
Ejemplo 1.6. Mezclas.
Un vinatero desea mezclar vino de 5 aos diferentes para fabricar tres tipos de vino mezclados.
La oferta disponible en galones del ao i (con i = 1, 2, 3, 4, 5) es de 800, 900, 500, 900
y 600 respectivamente. La mezcla A se considera especial por lo que no se producirn ms
de 200 galones (ver Tabla Ejemplo 1.6)
Cuntos galones debe producir de cada mezcla para maximizar el beneficio? Elabore un
modelo de programacin lineal.
Solucin:
Para definir las variables de decisin en este caso conviene usar doble subndice.
Sea X
ij
: Cantidad en galones del ao i (i = 1, 2, 3, 4 , 5) utilizados en la mezcla j ( j = A,
B, C). Luego se tienen 15 variables de decisin a saber:
X
1A
X
2A
X
3A
X
4A
X
5A
X
1B
X
2B
X
3B
X
4B
X
5B
X
1C
X
2C
X
3C
X
4C
X
5C
INTRODUCCIN A LA PROGRAMACIN LINEAL
27
La siguiente tabla da los requerimientos y el beneficio por galn para cada tipo de vino
mezclado.
MEZCLA REQUISITO Beneficio por Galn en $
A Al menos el 60% debe provenir 4000
de los aos 1 y 2 y no ms del
10% de los aos 4 y 5.
B Al menos el 50% debe provenir 3000
de los aos 1, 2 y 3.
C No ms del 50% del ao 5. 2500
Tabla Ejemplo 1.6
Funcin Objetivo: Z (utilidad en $)
Objetivo: Maximizar utilidad.
Se tiene adems que:

5
1 i
iA X
; Cantidad total de galones producidos de la mezcla A.

5
1 i
iB X
; Cantidad total de galones producidos de la mezcla B.

5
1 i
iC X
; Cantidad total de galones producidos de la mezcla C.
UNIVERSIDAD DE MANIZALES
28
La funcin utilidad queda entonces:
Z = 4.000

5
1 i
iA X
+ 3.000

5
1 i
iB X
+ 2.500

5
1 i
iC X
Restricciones asociadas con la calidad del vino mezclado: Las restricciones determinan
la calidad del la mezcla.
Para el vino mezclado tipo A: Por lo menos el 60% de los aos 1 y 2;
6 . 0
X
X X
5
1 i
iA
A 2 A 1

Se obtiene la restriccin lineal:


0.6

5
1 i
iA X
- X
1A
- X
2A
0
No ms del 10% de los aos 4 y 5:
1 . 0
X
X X
5
1 i
iA
A 5 A 4

Se obtiene la restriccin lineal:


0.1

5
1 i
iA X
- X
4A
- X
5A
0
INTRODUCCIN A LA PROGRAMACIN LINEAL
29
Para el vino mezclado tipo B: Al menos el 50% debe provenir de los aos 1, 2 , 3:
5 . 0
X
X X X
5
1 i
iB
B 3 B 2 B 1

+ +

Se obtiene la restriccin lineal



:
0.5

5
1 i
iB X
- X
1B
- X
2B
- X
3B
0
Para el vino mezclado tipo C: No ms del 50% del ao 5.
5 . 0
X
X
5
1 i
iC
C 5

De donde resulta la restriccin lineal:


0.5

5
1 i
iC X
- X
5C
0.
Restricciones debido a la disponibilidad de recursos:
Oferta de vino del ao 1 X
1A
+ X
1B
+ X
1C
800
Oferta de vino del ao 2 X
2A
+ X
2B
+ X
2C
700
Oferta de vino del ao 3 X
3A
+ X
3B
+ X
3C
500
Oferta de vino del ao 4 X
4A
+ X
4B
+ X
4C
900
Oferta de vino del ao 5 X
5A
+ X
5B
+ X
5C
600
UNIVERSIDAD DE MANIZALES
30
De la mezcla A no se producirn ms de 200 galones.
X
1A
+ X
2A
+ X
3A
+ X
4A
+ X
5A
200
Restricciones de no negatividad: Todas las variables deben ser no negativas.
X
ij
0 para i = 1, 2, 3, 4, 5; j = A, B, C.
Finalmente, el modelo de 15 variables con 10 restricciones queda:
max [Z = 4.000

5
1 i
iA X
+ 3.000

5
1 i
iB X
+ 2.500

5
1 i
iC X
]
sujeto a:
0.6 (

5
1 i
iA X
) - X
1A
- X
2A
0
0.1 (

5
1 i
iA X
) - X
4A
- X
5A
0
0.5 (

5
1 i
iB X
) - X
1B
- X
2B
- X
3B
0
0.5 (

5
1 i
iC X
) - X
5C
0
X
1A
+ X
1B
+ X
1C
800
X
2A
+ X
2B
+ X
2C
700
INTRODUCCIN A LA PROGRAMACIN LINEAL
31
X
3A
+ X
3B
+ X
3C
500
X
4A
+ X
4B
+ X
4C
900
X
5A
+ X
5B
+ X
5C
600
X
1A
+ X
2A
+ X
3A
+ X
4A
+ X
5A
200
X
ij
0 i = 1, 2, 3, 4, 5 j = A, B, C
EJERCICIOS PROPUESTOS
1.1. Un inversionista puede elegir entre los planes de inversin A o B disponibles al
comienzo de cada uno de los prximos cinco aos. Cada peso invertido en el plan A al
iniciar un ao le redita el 42% dos aos ms tarde, y el plan B le redita por cada peso
invertido a principio de ao 0.60 pesos tres aos ms tarde, cantidades que puede
reinvertir. Adems cuenta con los planes C y D disponibles una sola vez sin posibilidad
de reinvertir. Cada peso invertido en C al comienzo del segundo ao le produce $2
cuatro aos ms tarde. Cada peso invertido en D al final del tercer ao, le produce
$1.70 dos aos despus. El inversionista comienza con $300.000 y desea conocer cul
es el plan ptimo de inversin que le maximice la cantidad de dinero al final del
quinto ao. Construya un modelo de programacin lineal y resulvalo con el paquete
que le recomiende su profesor.
1.2. Un editor imprime un nuevo libro, para lo cual considera dos alternativas de
empastado, en cartn duro o encolado. Un libro en cartn duro deja una utilidad de
$4.000, mientras que en pasta blanda o encolado la utilidad es de tan slo $900. Para
empastar un libro en cartn duro se requieren 15 minutos y con pasta ordinaria 8 minutos.
Se dispone de 70 horas para empastar y se estima que las ventas sern hasta 200
UNIVERSIDAD DE MANIZALES
32
copias para el libro con pasta dura y 400 copias a lo sumo del libro encolado. Formule
un modelo de programacin lineal que permita saber el nmero de libros a empastar de
cada clase.
1.3. Un restaurante que presta servicio las 24 horas del da, requiere las siguientes
meseras:
Horas del da 2 - 6 6 - 10 10 - 14 14 - 18 18 - 22 22 - 2
No. Mnimo 4 8 11 6 12 4
de Meseras
Cada mesera trabaja 8 horas consecutivas al da. Elabore un modelo de programacin
lineal que permita hallar el nmero ptimo (mnimo requerido) de meseras para cumplir
los requisitos anteriores.
1.4. Una tienda de animales ha determinado que cada Hamster debe recibir al da por
lo menos 78 unidades de protena, 110 unidades de carbohidratos y 16 unidades de
grasa. Si la tienda vende los 4 tipos de alimentos mostrados. Qu mezcla de alimento
satisface las necesidades nutricionales de los Hamster a un mnimo costo para la tienda?
Elabore un modelo de programacin lineal.
Alimento Proteinas Carbohidratos Grasa Costo
Unidad/Onza Unidad/Onza Unidad/Onza Centavo/Onza
I 30 30 9 4
II 40 25 12 8
III 27 23 8 10
IV 18 45 5 3
INTRODUCCIN A LA PROGRAMACIN LINEAL
33
1.5.Una persona hereda US$6.000 y desea invertirlos. Al or esta noticia dos amigos
distintos le ofrecen la oportunidad de participar como socio en dos negocios, cada uno
planeado por cada amigo. En ambos casos la inversin significa dedicar un poco de
tiempo el siguiente verano, al igual que invertir en efectivo. Con el primer amigo
tendra que invertir U$5.000 y 400 horas y la ganancia estimada (ignorando el valor
del tiempo) sera U$4.500. Las cifras correspondientes a la proposicin del segundo
amigo son U$4.000 y 500 horas, con una ganancia de U$4.500. Sin embargo, ambos
amigos son flexibles y le permitirn entrar en el negocio con cualquier fraccin de la
sociedad; la participacin en las utilidades sera proporcional a esa fraccin. Como el
heredero est buscando un trabajo interesante para el verano (600 horas a lo sumo) ha
decido participar en una o ambas propuestas, con la combinacin que maximice la
ganancia total estimada. Formule el modelo de programacin lineal para este problema.
1.6. Una compaa manufacturera descontinu la produccin de cierta lnea de productos
no redituable, lo cual cre un exceso considerable en la capacidad de produccin. La
gerencia quiere dedicar esta capacidad a uno o ms de tres productos, llmense productos
1, 2 y 3. En la siguiente tabla se resume la capacidad disponible de cada mquina que
puede limitar la produccin.
Tipo de mquina Disponibilidad Coeficiente de productividad
Horas - Mquina/Semana Horas - Mquina/Unidad
Prod.1 Prod.2 Prod.3
FRESADORA 500 9 3 5
TORNO 350 5 4 0
RECTIFICADORA 150 3 0 2
UNIVERSIDAD DE MANIZALES
34
El departamento de ventas ha indicado que las ventas potenciales para los productos
1 y 2 exceden la tasa mxima de produccin y que las ventas potenciales del producto
3 son 20 unidades por semana. La ganancia unitaria sera de $50, $20 y $25
respectivamente para los productos 1, 2 y 3. El objetivo es determinar cuntos productos
de cada tipo debe producir la compaa para maximizar la ganancia. Formule un modelo
de programacin lineal para este problema.
1.7. En el ejemplo 1.3, verificar los datos del cuadro para la utilidad por libra de cada
producto y deducir las restricciones para las Mquinas 2 y 3.
INTRODUCCIN A LA PROGRAMACIN LINEAL
35
CAPTULO II
MTODO GRFICO PARA RESOLVER
MODELOS DE PROGRAMACIN LINEAL CON
DOS VARIABLES DE DECISIN
INTRODUCCIN
Cuando un modelo de programacin lineal tiene dos variables de decisin, las restricciones
determinan regiones del plano. El conjunto de m restricciones define por lo tanto una
regin del plano que contiene todos los puntos (x
1 ,
x
2
) que las satisfacen. Esta regin del
plano se denomina regin de soluciones factibles, ya que cualquier punto de ella satisface
las restricciones y por lo tanto es una solucin del problema.
De entre todas las soluciones factibles se trata de buscar la solucin ptima, es decir,
aquella que maximice o minimice la funcin objetivo.
2.1. MTODO GRFICO PARA EL CASO DE DOS VARIABLES DE DECISIN
Los pasos a seguir para resolver un modelo de programacin lineal de dos variables de
decisin usando el mtodo grfico son:
Paso 1: Dibujar la regin de soluciones factibles.
Paso 2: Dibujar algunas isocuantas de la funcin objetivo, es decir curvas en el plano donde
para cualquier punto sobre cada una de ellas la funcin objetivo tiene un valor constante.
Las ecuaciones de estas curvas son de la forma Z = const.
UNIVERSIDAD DE MANIZALES
36
Paso 3: Ubicar el vrtice de la regin factible donde ocurre el mximo o el mnimo
dependiendo de la direccin en que crecen o decrecen las isocuantas. Una isocuanta crece
en la direccin en que la funcin objetivo aumenta su valor y decrece en la direccin en que la
funcin objetivo disminuye su valor.
2.1.1. GRAFICACIN DE UN SISTEMA DE DESIGUALDADES
Para determinar la regin del plano que satisface una desigualdad de la forma
aX
1
+ bX
2
+ ++ ++ c 0 se procede de la siguiente manera:
Se dibuja en primer lugar la ecuacin ignorando la desigualdad, es decir, graficamos
aX
1
+ bX
2
+ c = 0:
La recta aX
1
+ bX
2
+ c = 0 determina en el plano dos semiplanos denominados I y II.
Los puntos sobre la recta satisfacen la igualdad aX
1
+ bX
2
+ c = 0, los puntos fuera de la
recta en los semiplanos I y II satisfacen las desigualdades (
>

<
).
c
_ __
a
INTRODUCCIN A LA PROGRAMACIN LINEAL
37
Para determinar cul de los dos semiplanos satisface la desigualdad
aX
1
+ bX
2
+ c < 0 se escoge un punto arbitrario del semiplano I o del II, y se reemplaza en
la desigualdad.
Por ejemplo, puede escogerse el origen (0, 0); si ste satisface la desigualdad, entonces
todos los puntos del semiplano I que contiene a (0, 0) la satisfacen, en caso contrario la
desigualdad la verifican los puntos de la regin II.
Ejemplo 2.1. Grficar la regin del plano que satisface la desigualdad 2x
1
+ 3x
2
6
Solucin: Se grafica la ecuacin 2x
1
+ 3x
2
= 6 :
I
II
1
X
2
X
I
II
6 X 3 X 2
2 1
= +
UNIVERSIDAD DE MANIZALES
38
Tomamos (0, 0) como punto de prueba:
2(0) + 3(0) < 6
0 < 6 Verdadero
Por lo tanto la regin sombreada que contiene el punto de prueba, satisface la desigualdad y
los puntos sobre la recta satisfacen la igualdad.
Ejemplo 2.2. Dibujar la regin del plano cuyos puntos satisfacen las restricciones.
2x
1
+ x
2
4
x
1
+ x
2
1
x
1
0 , x
2
0
Solucion:
2x
1
+ x
2
= 4 ;
Punto de prueba (0, 0); 0 4 Verdadero
INTRODUCCIN A LA PROGRAMACIN LINEAL
39
x
1
+ x
2
= 1 :
Punto de prueba (0, 0): 0 1 Falso.
x
1
0 y x
2
0 , primer cuadrante:
UNIVERSIDAD DE MANIZALES
40
Por lo tanto, la regin del plano que satisface las restricciones dadas es la interseccin de las
tres regiones anteriores:
INTRODUCCIN A LA PROGRAMACIN LINEAL
41
Para mayor claridad, la regin se muestra en la grfica siguiente:
2.1.2. ISOCUANTAS DE LA FUNCIN OBJETIVO
Para un modelo de programacin lineal con dos variables de decisin se tiene que la funcin
objetivo es:
Z = c
1
x
1
+ c
2
x
2
Esta es la ecuacin de un plano en el espacio tridimensional.
Las isocuantas (curvas de nivel) se obtienen dando valores fijos a la variable Z obtenindose
una familia de rectas en el plano x
1-
x
2
. Si Z = k con k constante tenemos:
c
1
x
1
+ c
2
x
2
= k , distintos valores de k darn diferentes elementos de la familia de rectas.
UNIVERSIDAD DE MANIZALES
42
Ejemplo 2.3. Dibujar las Isocuantas de la funcin Z = 3x
1
+ 2x
2
,cuando Z = 6, Z =
12, Z = 18 en el mismo plano.
Solucin:
Si Z = 6 3x
1
+ 2x
2
= 6
Si Z = 12 3x
1
+ 2x
2
= 12
Si Z = 18 3x
1
+ 2x
2
= 18
Ejemplo 2.4. Resolver el modelo de programacin lineal.
max. [Z = 2x
1
+ x
2
]
Sujeto a:
x
2
10 I
2x
1
+ 5x
2
10 II
x
1
+ x
2
14 III
5x
1
- 3x
2
20 IV
x
1
, x
2
0
INTRODUCCIN A LA PROGRAMACIN LINEAL
43
Solucin: Dibujamos la regin de soluciones factibles. Las restricciones de no negatividad
indican que la regin de soluciones factibles se encuentra en el primer cuadrante.
En el mismo plano se dibujan dos isocuantas de Z = 2x
1
+ x
2
Si Z = 4 se tiene: 4 = 2x
1
+ x
2
Z = 16 se tiene: 16 = 2x
1
+ x
2
UNIVERSIDAD DE MANIZALES
44
Si visualmente se sigue la direccin en que crece Z se observa que el mximo valor de
Z se obtiene en el vrtice C . Las coordenadas del vrtice C se obtienen resolviendo
por la regla de Cramer, el sistema de ecuaciones correspondientes a las restricciones III y
IV.
Solucion del sistema de ecuaciones, para hallar las coordenadas del vertice C:
x
1
+ x
2
= 14 III
5x
1
- 3x
2
= 20 IV
3 - 5
1 1
3 20
1 14
X
1

4
31
8
62
5 3
20 42

.
3 - 5
1 1
20 5
14 1
X
2

4
25
8
50
5 3
70 20

.
Por lo tanto los valores ptimos de x
1
y x
2
son: X
1
= 31/4 y X
2
= 25/4 y el mximo valor
de Z es, Z
max
=87/4 .
INTRODUCCIN A LA PROGRAMACIN LINEAL
45
Ejemplo 2.5. Resolver el modelo de programacin lineal.
min. [Z = 50x
1
+ 20x
2
]
Sujeta a:
2x
1
- x
2
0 I
x
1
+ 4x
2
80 II
x
1
+ x
2
40 III
4x
1
+ 3x
2
240 IV
x
1
, x
2
0
Solucin: Dibujamos la regin de soluciones factibles y dos isocuantas.
UNIVERSIDAD DE MANIZALES
46
Isocuantas de Z = 50x
1
+ 20x
2
Si Z = 1500 1500 = 50x
1
+ 20x
2
Z = 1700 1700 = 50x
1
+ 20x
2
Se observa que el valor mnimo de Z se alcanza en el vrtice A. Para obtener las coordenadas
de A resolvemos el sistema:
2x
1
- x
2
= 0
x
1
+ x
2
= 40
obteniendose como solucin x
1
= 40/3 , x
2
= 80/3.
Luego, el nivel ptimo se alcanza cuando, X
1
= 40/3 , X
2
= 80/3 y Z min = 1200 .
EJERCICIOS PROPUESTOS DEL CAPTULO II
2.1. Una pequea firma maneja dos procesos para combinar cada uno de dos productos:
fluido para marcha y fluido para encendedor. La firma est tomando la decisin de
cuntas horas correr cada proceso. Por una hora del proceso I se consumen 3 unidades
de kerozeno y 9 de benceno para producir 15 unidades de fluido para marcha y 6
unidades de fluido para encendedor. Por una hora del proceso II se consumen 12 unidades
de kerozeno y 6 de benceno para producir 9 y 24 unidades de los dos tipos de fluidos
respectivamente. Debido a un programa federal de asignaciones, la mxima cantidad
de kerozeno y benceno disponibles son 300 y 400 unidades respectivamente. Los
compromisos de venta requieren que se produzcan al menos 600 unidades de fluido
INTRODUCCIN A LA PROGRAMACIN LINEAL
47
para marcha y 225 de fluido para encendedor. Las utilidades por hora que reditan los
procesos I y II son 10 y 12 dlares por hora respectivamente. Formule un modelo de
programacin lineal para maximizar la utilidades y resulvalo usando el mtodo grfico.
2.2. Resolver los siguientes modelos de programacin lineal.
a) max [ Z = 3x
1
+ 4x
2
]
sujeta a: -x
1
+ x
2
3
x
1
+ 2x
2
9
3x
1
+ 2x
2
13
x
1
- x
2
1
x
1
+ x
2
1
x
1
, x
2
0
b) min [Z = 9x
1
+ 9x
2
]
sujeta a: x
1
+ x
2
10
5x
1
+ x
2
8
x
1
+ 2x
2
12
x
2
8
x
1
, x
2
0
c) min [ Z = 5x
1
+ 2x
2
]
sujeta a: 3x
1
+ 6x
2
18
5x
1
+ 4x
2
20
8x
1
+ 2x
2
16
7x
1
+ 6x
2
42
x
1
, x
2
0
UNIVERSIDAD DE MANIZALES
48
2.3. Una dieta se disea de forma que contenga al menos 6 gramos de V
1
y 15 gramos
de V
2
(V
1
y V
2
son dos tipos de vitaminas). Estos requerimientos mnimos van a
obtenerse a partir de dos tipos de alimentos: F
1
que contiene 1 gramo por libra de V
1
y
2 gramos por libra de V
2
, y de F
2
que contiene 1 gramo por libra de V
1
y 5 gramos por
libra de V
2
. Si el costo de F1 y F2 es de 1.20 y 1.80 pesos por libra, Qu cantidad de
cada tipo de cada tipo de alimento deber comprarse y consumirse para satisfacer los
requerimientos mnimos de la dieta de la forma ms econmica?
2.4. Resolver el modelo del ejemplo 1.1.
2.5. Resolver los modelos del ejemplo 1.5.
2.6. Resolver el modelo del ejercicio propuesto 1.2.
2.7. Resolver el modelo del ejercicio propuesto 1.5.
2.8. Un propietario quiere pintar su casa y desea que sea suficiente con una pasada.
Para satisfacer este requisito la pintura debe tener una viscosidad de por lo menos 200
unidades. Otro requerimiento para obtener un nivel deseado de brillo es que debe
incluir como mnimo 14 gramos de un ingrediente qumico Y por galn de
pintura. Adems, para asegurar cierta durabilidad, tambin deber tener por lo menos
30 gramos de una sustancia Z por cada galn de pintura. Hay dos tipos de pintura
(I y II) a su disposicin. El tipo I cuesta 6 dlares y el tipo II 4 dlares por galn. Las
especificaciones de cada una de ellas son:
INTRODUCCIN A LA PROGRAMACIN LINEAL
49
PINTURA I PINTURA II
(Por galn) (Por galn)
Viscosidad (Unidades) 400 100
Y (Gramos) 20 10
Z (Gramos) 20 60
El propietario decide mezclar I y II a efecto de cumplir con las tres condiciones a un costo
mnimo. Qu cantidad de I y II han de mezclarse? Cul es el costo mnimo de la mezcla?
2.9. Una empresa local est planificando anunciar una venta especial de aniversario por radio
y televisin durante una semana, y para ello se aprueba un presupuesto mximo de 16.000
dlares. Se sabe que el costo por 30 segundos de anuncio en la radio comercial es de 800
dlares. Por otra parte, la televisin comercial cuesta 4.000 dlares por anuncio. A causa
de la fuerte demanda, solamente pueden realizarse 4 anuncios de televisin en la semana
prevista. Sobre la base del grado estimado de audiencia y otros factores, se cree que un
anuncio de televisin es 6 veces ms efectivo que un anuncio de radio sobre los potenciales
consumidores. Cmo distribuira la empresa su publicidad para atraer el mayor nmero
posible de consumidores potenciales?
UNIVERSIDAD DE MANIZALES
50
INTRODUCCIN A LA PROGRAMACIN LINEAL
51
Captulo III
MTODO SMPLEX
INTRODUCCIN
El mtodo smplex es un procedimiento general para resolver problemas de programacin
lineal. Desarrollado por George Dantzig en 1947, ha probado ser un mtodo extraordi-
nariamente eficiente que se usa en forma rutinaria para resolver problemas grandes en las
computadoras de hoy en da. Excepto en el caso de problemas muy pequeos, su ejecucin
se hace siempre en una computadora y existe una amplia gama de complejos paquetes de
software para ello. Este captulo describe y ejemplifica la caractersticas principales del
mtodo smplex en su forma tanto algebraica como tabular. El mtodo smplex es un
algoritmo. Aun cuando el lector no haya oido este nombre, sin duda se ha encontrado con
muchos algoritmo por ejemplo, el procedimiento familiar para hacer una divisin larga, es un
algoritmo. Tambin lo es el procedimiento para calcular la raz cuadrada. De hecho, cual-
quier procedimiento iterativo de solucin es un algoritmo. Entonces, un algoritmo es
simplemente un proceso en el que se repite (se itera) un procedimiento sistemtico una y
otra vez hasta obtener el resultado deseado. Cada vez que se lleva a cabo el procedimiento
sistemtico se realiza una iteracin. (Puede el lector ver cul es la iteracin para el algorit-
mo de la divisin?).
UNIVERSIDAD DE MANIZALES
52
Este mtodo se emplea para resolver el problema de programacin lineal (forma estndar)
(ver Captulo I, Seccin 1.1.2)
TERMINOLOGIA PARA LAS SOLUCIONES DEL MODELO
Es posible que para el lector el trmino solucin signifique la respuesta final a un problema,
pero en programacin lineal la convencin es bastante distinta. Mas an, cualquier conjunto
de valores especficos para las variables de decisin x
1
, x
2
, ... x
n
se llama solucin, sin
importar si es una posibilidad deseable o ni siquiera permitida. Los diferentes tipos de solu-
ciones se identifican usando un adjetivo apropiado.
Una solucin factible es aquella para la que todas las restricciones se satisfacen. La regin
factible es la coleccin de todas las soluciones factibles (puede suceder que esta regin sea
el conjunto vaco). Una solucin ptima es una solucin factible que lleva al valor ms
favorable de la funcin objetivo. El valor ms favorable es el valor ms grande o ms
pequeo, dependiendo si el objetivo es maximizar o minimizar, de modo que una solucin
ptima maximiza / minimiza la funcin objetivo sobre toda la regin factible.
En programacin lineal, un problema puede tener ms de una solucin ptima, aunque en la
prctica slo hay una solucin ptima. Otra posibilidad es que el problema carezca de solu-
ciones ptimas. Esto ocurre slo si: a) no tiene soluciones factibles o b) las restricciones no
impiden que el valor de la funcin objetivo Z crezca indefinidamente en la direccin favora-
ble (positiva o negativa).
INTRODUCCIN A LA PROGRAMACIN LINEAL
53
3.1. PREPARACION PARA EL METODO SMPLEX.
3.1.1. Variables de holgura.
El primer paso en el mtodo simplicial es llevar el modelo de programacin lineal a su forma
estndar (ver Captulo I, Seccin 1.1.2), mediante la introduccin de variables adicionales
llamadas variables residuales o variables de holgura, con lo que se obtiene para las res-
tricciones un sistema de m ecuaciones con n incgnitas, de la forma:

a
11
x
1
+ a
12
x
2
+ . . . + a
1s
x
s
+ x
s+1
b
1
a
12
x
1
+ a
12
x
2
+ . . . + a
2s
x
s
+ + x
s+2
b
2
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
a
m1
x
1
+ a
m2
x
2
+ . . . + a
ms
x
s
+ x
s+m
b
m

x
1
m 0, x
2
m 0, . . ., x
s
m 0, x
s+1
m 0, . . ., x
s+m
m 0
Aqu,
x
s+1
, x
s+2
, . . ., x
s+m
son las variables de holgura.
El sistema de ecuaciones as obtenido puede escribirse en forma matricial como b x A ,
con
0 x
, en donde:
A =
a
11
a
12
. . . a
1s
1 0 . . . 0
a
21
a
22
. . . a
2s
0 1 . . . 0
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
a
m1
a
m2
. . . a
ms
0 0 . . . 1
, x =
x
1
x
2
.
.
.
x
s+m
, b =
b
1
b
2
.
.
.
b
m
a
11
x
1
+ a
12
x
2
+ . . . + a
1s
x
s
+ x
s+1
b
1
a
12
x
1
+ a
12
x
2
+ . . . + a
2s
x
s
+ + x
s+2
b
2
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
a
m1
x
1
+ a
m2
x
2
+ . . . + a
ms
x
s
+ x
s+m
b
m
x
1
m 0, x
2
m 0, . . ., x
s
m 0, x
s+1
m 0, . . ., x
s+m
m 0
UNIVERSIDAD DE MANIZALES
54
Esta forma es mucho ms conveniente para la manipulacin algebraica y la identificacin de
las soluciones factibles en un vrtice. Esta se llama forma aumentada del problema, ya
que la forma original se ha aumentado con algunas variables adicionales necesarias (las
variables de holgura) para aplicar el mtodo smplex..
Una solucin aumentada es una solucin para las variables originales que se ha aumenta-
do con los valores correspondientes de las variables de holgura. Una solucin bsica es
una solucin en un vrtice aumentada. Ahora, una solucin bsica factible es una solucin
factible en un vrtice aumentada. La nica diferencia entre las soluciones bsicas y las solu-
ciones en un vrtice (o entre soluciones bsicas factibles y soluciones factibles en un vrtice)
es el que estn incluidos los valores de las variables de holgura. El siguiente ejemplo ser
utilizado para ilustrar el mtodo smplex en su forma tanto algebraica como tabular para
maximizar una funcin lineal en cinco variables. Lo llamaremos ejemplo prototipo.
Si el problema consiste en minimizar una funcin Z = c
1
x
1
+ c
2
x
2
+ c
3
x
3
+ + c
n
x
n
, se
maximiza la funcin Y= -Z , de modo que si Y* es el maximo de Y, entonces el minimo de
Z de -Y* .
INTRODUCCIN A LA PROGRAMACIN LINEAL
55
EJEMPLO 3.1. En el Ejemplo 1.3 del Captulo I sobre plan de produccin se debe
resolver el problema de maximizar la funcin
Z = 1.417x
1
+ 1.433x
2
+ 1.85x
3
+ 2.183x
4
+ 1.7x
5
sujeta a las restricciones
12x
1
+ 7x
2
+ 8x
3
+ 10x
4
+ 7x
5
7680
8x
1
+ 9x
2
+ 4x
3
+ + 11x
5
7680
5x
1
+ 10x
2
+ 7x
3
+ 3x
4
+ 2x
5
7680
x
1,
x
2,
x
3,
x
4,
x
5
0
En nuestro caso, s = 5 , m = 3. Introducimos tres variables de holgura
6 1 s
x x
+
,
7 2 s
x x
+
y
8 n m s
x x x
+
para convertir las tres restricciones de desigualdad en
un conjunto de tres ecuaciones lineales con ocho incgnitas junto con las restricciones de no
negatividad:
12x
1
+ 7x
2
+ 8x
3
+ 10x
4
+ 7x
5
+ x
6
= 7680
8x
1
+ 9x
2
+ 4x
3
+ + 11x
5
+ x
7
= 7680
5x
1
+ 10x
2
+ 7x
3
+ 3x
4
+ 2x
5
+ x
8
= 7680
x
1,
x
2,
x
3,
x
4,
x
5,
x
6,
x
7,
x
8
0
UNIVERSIDAD DE MANIZALES
56
La forma matricial de este sistema es b x A ,
0 x
, en donde:

,
_

1
0
0

0
1
0

0 2 3
0 11 0
1 7 10

7 10 5
4 9 8
8 7 12
A
,

,
_

8
7
6
5
4
3
2
1
x
x
x
x
x
x
x
x
x
,

,
_

7680
7680
7680
b
.
En este ejemplo el sistema de restricciones funcionales tiene cinco variables ms (en total son
ocho variables) que ecuaciones (de las cuales tenemos tres). Este hecho proporciona cinco
grados de libertad o cinco variables libres para resolver el sistema, pues se pueden elegir
cinco variables cualesquiera y asignarles cualquier valor arbitrario para resolver las tres
ecuaciones en trminos de las tres variables restantes (con esto se excluyen redundancias). El
mtodo smplex usa cero para este valor arbitrario. Las variables que por el momento se
hacen igual a cero se llaman variables no bsicas, todas las dems se llaman variables
bsicas. La solucin que resulta es una solucin bsica. Si todas las variables bsicas son no
negativas, entonces se tiene una solucin bsica factible.
En trminos generales, el nmero de variables no bsicas de una solucin bsica siempre es
igual a los grados de libertad del sistema de ecuaciones y el nmero de variables bsicas
siempre es igual al nmero de restricciones funcionales.
INTRODUCCIN A LA PROGRAMACIN LINEAL
57
Dos soluciones bsicas factibles son adyacentes si todas menos una de sus variables no
bsicas son las mismas (de manera que la misma aseveracin se cumple para sus variables
bsicas). Entonces, transladarse de una solucin bsica factible a una adyacente significa
cambiar el estado de una variable no bsica a bsica y viceversa para otra variable.
Sea 0 c
i s

+
, i = 1,2,...,m. Entonces
Z x c x 0 x 0 x c x c x c
s
1 j
j j
n
1 j
n 1 s s s 1 1 j j

+
+ + + + + L L
(3.1.2)
La relacin entre las soluciones del problema original y el problema en su forma aumentada
viene dada por el siguiente teorema.
Teorema. Supongamos que x* = (x
1
*
, x
2
*
,... , x
s
*
, x
*
s+1
, x
*
s+2
, ... , x
*
s+m
) es una solucin
maximal factible para las restricciones transformadas ) 1 . 1 . 3 ( y la funcin objetivo ) 2 . 1 . 3 ( ,
siendo el mximo valor

Z
. Entonces los primeros s elementos x
1
*
, x
2
*
,... , x
s
*
de

x
representan una solucin maximal factible al modelo de programacin lineal en la que

Z
es el valor mximo. Adems, cada solucin factible x de ) 1 . 1 . 3 ( y ) 2 . 1 . 3 ( se
corresponde con una y slo una solucin factible del modelo; a saber, la solucin que contie-
ne los primeros s elementos de x y cada solucin maximal factible

x
de ) 1 . 1 . 3 ( y
) 2 . 1 . 3 ( se corresponde con una nica solucin maximal factible del modelo, o sea, la
UNIVERSIDAD DE MANIZALES
58
solucin que contiene los primeros s elementos de

x
.
Segn el teorema anterior, si podemos encontrar una solucin que maximice ) 2 . 1 . 3 ( sujeta
a las restricciones ) 1 . 1 . 3 ( , hemos resuelto el problema de la programacin lineal.
De esta manera, dada cualquier solucin bsica, la solucin en el vrtice correspondiente se
obtiene con slo quitar las variables de holgura.
Al trabajar con el problema en forma de igualdades conviene tomar en cuenta y manipular la
ecuacin de la funcin objetivo al mismo tiempo que las nuevas ecuaciones de las restriccio-
nes. Antes de comenzar con el mtodo smplex es necesario escribir el problema una vez ms
en una forma equivalente:
Maximizar Z ,
sujeta a;
(0) Z -1.417x
1
- 1.433x
2
- 1.85x
3
- 2.183x
4
- 1.7x
5
= 0
(1) 12x
1
+ 7x
2
+ 8x
3
+ 10x
4
+ 7x
5
+ x
6
= 7680
(2) 8x
1
+ 9x
2
+ 4x
3
+ + 11x
5
+ x
7
= 7680
(3) 5x
1
+ 10x
2
+ 7x
3
+ 3x
4
+ 2x
5
+ x
8
= 7680
x
1
, x
2
, x
3
, x
4
, x
5
, x
6
, x
7
, x
8
0
Es justo como si la ecuacin (0) fuera una de las restricciones originales que, como ya se
encuentra en forma de igualdad, no necesita variable de holgura. Con esta interpretacin, las
INTRODUCCIN A LA PROGRAMACIN LINEAL
59
soluciones bsicas no cambian, excepto que Z puede verse como una variable bsica adi-
cional permanente.
3.2. FORMA ALGEBRAICA DEL METODO SMPLEX.
Una vez adaptado el problema inicial a la forma descrita por ) 1 . 1 . 3 ( y ) 2 . 1 . 3 ( debe-
mos proceder a contestar las siguientes preguntas:
Paso inicial: Cmo se selecciona la solucin factible en un vrtice (la solucin
bsica factible) inicial?
Paso iterativo: al buscar un traslado a una solucin factible en un vrtice adyacente
(una solucin bsica factible adyacente)
1. Cmo se selecciona la direccin del traslado? (Qu variable no bsica se
selecciona para que se convierta en bsica ?)
2. A qu lugar se hizo el traslado? (Cul variable bsica se convierte en no
bsica?)
3. Cmo se identifica la nueva solucin?
Prueba de optimalidad: Cmo se determina que la solucin factible en un vrtice
actual (solucin bsica factible) no tiene soluciones factibles en un vrtice adyacen-
tes (soluciones bsicas factibles adyacentes) que sean mejores?
UNIVERSIDAD DE MANIZALES
60
En la presente seccin se respondern estas preguntas. Para propsitos didcticos, se mos-
trar el procedimiento en la solucin del problema del ejemplo prototipo (ejemplo 3.1).
Paso inicial.
El mtodo smplex puede comenzar en cualquier solucin factible en un vrtice (solucin
bsica factible), de manera que se escoge una que sea conveniente. Antes de tomar en
cuenta las variables de holgura, esta eleccin es el origen (con todas las variables
originales iguales a cero), es decir
) 0 , 0 , 0 , 0 , 0 ( ) x , x , x , x , x (
5 4 3 2 1

(la notacin ) a , a , a , a , a ( ) x , x , x , x , x (
5 4 3 2 1 5 4 3 2 1
significa que
1 1
a x ,
2 2
a x , etc)
1
. En consecuencia, despus de introducir las variables de holgura, las
variables originales son variables no bsicas y las variables de holgura son las varia-
bles bsicas de la solucin bsica factible inicial. Esta eleccin se muestra en el siguiente
sistema de ecuaciones en el que las variables bsicas se escribieron con mayscula:
12x
1
+ 7x
2
+ 8x
3
+ 10x
4
+ 7x
5
+ X
6
= 7680
8x
1
+ 9x
2
+ 4x
3
+ + 11x
5
+ X
7
= 7680
5x
1
+ 10x
2
+ 7x
3
+ 3x
4
+ 2x
5
+ X
8
= 7680
1
Ntese que al escoger el origen el lado izquierdo de todas las restricciones funcionales en el problema original es igual
a cero. por lo tanto, bajo las suposiciones actuales sobre la forma del modelo, incluyendo restricciones del tipo y
lados derechos positivos, esta solucin en un vrtice es automticamente factible
INTRODUCCIN A LA PROGRAMACIN LINEAL
61
Como las variables no bsicas son iguales a cero, el resto de la solucin se lee como si no
existieran: entonces, 7680 X
6
, 7680 X
7
y 7680 X
8
, de ah que la solu-
cin bsica factible inicial resulta igual a ) 7680 , 7680 , 7680 , 0 , 0 , 0 , 0 , 0 ( .
Ntese que la razn por la que esta solucin se puede leer de inmediato es porque cada
ecuacin tiene slo una variable bsica, que tiene coeficiente + 1, y que esta variable bsica
no aparece en ninguna otra ecuacin. Pronto se ver que cuando el conjunto de variables
bsicas cambia, el mtodo smplex utiliza un procedimiento algebraico (el de eliminacin de
Gauss) para poner las ecuaciones en esta forma tan conveniente para leer igual todas las
soluciones bsicas factibles subsecuentes. Esta forma se llama la forma apropiada de eli-
minacin gaussiana.
Paso iterativo.
En cada iteracin el mtodo smplex se mueve de la solucin bsica factible actual a una
solucin factible bsica adyacente mejor. Este movimiento consiste en convertir una varia-
ble no bsica (llamada variable bsica entrante) en variable bsica, y al mismo tiempo
convertir una variable bsica (llamada variable bsica que sale) en variable no bsica, y en
identificar la nueva solucin bsica factible.
PREGUNTA 1. Cul es el criterio para seleccionar la variable bsica entrante ?
Los candidatos para la variable bsica entrante son las s variables bsicas actuales. La que
UNIVERSIDAD DE MANIZALES
62
se elija, cambiar su estado de no bsica a bsica, por lo que su valor aumentar de cero a
algn valor positivo y las otras se mantendrn en nivel cero. Como se requiere que la nueva
solucin bsica factible sea mejor (un valor ms grande de Z) que la actual, es necesario que
la tasa de cambio en Z al aumentar el valor de la variable bsica entrante sea positivo.
Usando la ecuacin (0) para expresar Z slo en trminos de las variables no bsicas, el
coeficiente de cada una de estas variables es la tasa a la que Z cambiara si se incrementara
el valor de esa variable. Se elige como variable bsica entrante
2
la que tiene el coeficien-
te positivo mayor, ya que es la que hace que Z se incremente a la tasa ms rpida.
Como aclaracin, los cinco candidatos para variable bsica entrante en nuestro ejemplo son
las variables no bsicas actuales
4 3 2 1
x , x , x , x y
5
x . Como la funcin objetivo ya
est escrita slo en trminos de estas variables, puede analizarse tal como est:
Z = 1.417x
1
+ 1.433x
2
+ 1.85x
3
+ 2.183x
4
+ 1.7x
5
Todas las variables tienen coeficientes positivos, as que al aumentar cualquiera de ellas, el
valor de Z aumenta pero con tasas distintas, iguales a 1.417 , 1.433 , 1.85, 2.183 y 1.7
por cada unidad de aumento en la variable. La mayor de estas tasas es 2.183 , la cual
corresponde a la variable
4
x , as que esta variable se convierte en variable bsica en-
trante. As, se incrementar el valor de
4
x y el de las dems variables no bsicas se dejar
en cero.
2
Ntese que este criterio no garantiza la eleccin de la variable que ms aumenta a Z debido a que puede ser que las
restricciones no permitan que esta variable aumente tanto como otras. No obstante, los clculos adicionales que se
requieren para verificar esto hacen que no valga la pena hacerlo.
INTRODUCCIN A LA PROGRAMACIN LINEAL
63
PREGUNTA 2. Cmo se identifica la variable bsica que sale ?
Al aumentar el valor de
4
x mientras que el de las dems variables no bsicas
3 2 1
x , x , x
y
5
x se mantiene en cero, una o todas las variables bsicas actuales
7 6
X , X y
8
X
deben cambiar sus valores para mantener satisfecho el sistema de ecuaciones. Algunas de
estas variables decrecern al crecer
4
x . La solucin bsica factible adyacente se alcanza
cuando la primera variable bsica (variable bsica que sale), llega a cero. Ah se debe
detener para evitar la no factibilidad. Entonces, una vez elegida la variable bsica entrante, la
variable bsica que sale no es cuestin de eleccin. Debe ser la variable bsica actual cuya
restriccin de no negatividad impone la cota superior ms pequea, sobre cunto puede
aumentar el valor de la variable bsica entrante, como se ilustra enseguida.
En nuestro ejemplo, las posibilidades para la variable bsica que sale son las variables
bsicas actuales
7 6
X , X y
8
X . Al hacer las dems variables iguales a cero, excepto

4
x , el conjunto de restricciones se convierte en
10x
4
+ X
6
= 7680
X
7
= 7680
3x
4
+ X
8
= 7680
0 X , 0 X , 0 X , 0 x
8 7 6 4
.
La primera ecuacin junto con la restriccin 0 X
6
nos proporcionan la desigualdad
UNIVERSIDAD DE MANIZALES
64
4 6
x 10 7680 X 0 , y equivale a
10
7680
x
4

, lo cual nos dice que si


10
7680
x
4
>
entonces 0 X
6
< , que violara la condicin de no negatividad sobre
6
X . La segunda de estas ecuaciones nos dice que
4
x puede crecer sin lmite sin afectar el
valor de X
7
, mientras que la tercera ecuacin nos dice que
4
x debe cumplir la condicin
3
7680
x
4

para que x
8
sea no negativa.. De esta manera, tenemos dos cotas superiores
para
4
x :
10
7680
x
4

impuesta por la variable bsica


6
X y
3
7680
x
4

impuesta
por
8
X . De estas cotas, la menor es
10
7680
, as que la variable bsica que sale es
6
X . Por lo tanto, en la nueva solucin factible debe ser 0 x
6
(no bsica) y
10
7680
X
4

(bsica).
La variable bsica que sale se puede determinar en trminos de la matriz A y el vector
b;

,
_

,
_

,
_

7680
7680
7680
b
b
b
b ,
1
0
0

0
1
0

0 2 3
0 11 0
1 7 10

7 10 5
4 9 8
8 7 12
A
X X X x x x x x
3
2
1
8 7 6 5 4 3 2 1
INTRODUCCIN A LA PROGRAMACIN LINEAL
65
Dado que
4
x es la variable bsica entrante, observamos que sus coeficientes en las ecuaciones
vienen dados por la cuarta columna de la matriz
A
, es decir, por el vector:

,
_

,
_

3
0
10
a
a
a
A
34
24
14
4
.
Enseguida calculamos los cocientes
4 i
i
a
b
para 3 , 2 , 1 i ;
768
10
7680
a
b
14
1

,

0
7680
a
b
24
2
,
2560
3
7680
a
b
34
3

.
Escogemos el menor cociente, el cual corresponde a
1 i
. Esto nos indica que la variable
bsica saliente est ubicada en la primera fila de la matriz A. En nuestro caso, dicha variable
es , X
6
pues en la primera fila su coeficiente es
1
y el de las dems es
0
.
PREGUNTA 3. Cmo puede identificarse la nueva solucin bsica factible en una
forma conveniente?
Despus de identificar las variables bsicas entrante y saliente (incluyendo el nuevo valor de
la variable bsica entrante), todo lo que se necesita hacer para identificar la nueva solucin
bsica factible es encontrar los nuevos valores de las variables bsicas restantes. Con este
propsito reducimos el sistema de ecuaciones a la misma forma apropiada de eliminacin
UNIVERSIDAD DE MANIZALES
66
de Gauss que se tena en el paso inicial (aquella en la que cada ecuacin tiene slo una
variable bsica con coeficiente
1 +
, y esta variable bsica no aparece en ninguna otra ecua-
cin). Esta conversin se realiza con dos tipos de operaciones algebraicas:
Operaciones algebraicas para resolver un sistema de ecuaciones lineales
1. Multiplicar (o dividir) una ecuacin por una constante diferente de cero.
2. Sumar (o restar) un mltiplo de una ecuacin a otra.
Estas operaciones son legtimas porque aplican slo: 1) multiplicar cosas iguales (ambos
lados de una ecuacin) por la misma constante y 2) sumar cosas iguales a cosas iguales.
Por tanto, una solucin satisfar un sistema de ecuaciones despus de estas operaciones si y
slo si lo haca antes de realizarlas.
Para ilustrar, considrese el sistema de ecuaciones original, en donde las nuevas variables
bsicas se muestran en mayscula (y donde Z tiene el papel de variable bsica en la
ecuacin de la funcin objetivo):
(0) Z -1.417x
1
- 1.433x
2
- 1.85x
3
- 2.183X
4
- 1.7x
5
= 0
(1) 12x
1
+ 7x
2
+ 8x
3
+ 10X
4
+ 7x
5
+ x
6
= 7680
(2) 8x
1
+ 9x
2
+ 4x
3
+ + 11x
5
+ X
7
= 7680
(3) 5x
1
+ 10x
2
+ 7x
3
+ 3X
4
+ 2x
5
+ X
8
= 7680
INTRODUCCIN A LA PROGRAMACIN LINEAL
67
As,
4
x ha sustituido a
6
X en la ecuacin (1). Es necesario resolver este sistema de
ecuaciones para encontrar los valores de Z, X
4
, X
7
y X
8
(Obsrvese que X
4 4
x ,
X
7 7
x y X
8 8
x . La escritura en mayscula es para distinguir las variables bsicas de
las no bsicas).
Como
4
X tiene coeficiente
10
en la ecuacin (1) (se escoge la ecuacin (1) y no otra
porque esta ecuacin contiene a la variable que sale, la cual es
6
x ), sta ecuacin se
dividir por
10
para que la nueva variable bsica tenga un coeficiente igual a 1 (este es
un ejemplo de operacin algebraica 1), de lo cual resulta el sistema:
(0) Z -1.417x
1
- 1.433x
2
- 1.85x
3
- 2.183X
4
- 1.7x
5
= 0
(1)
10
12
x
1
+
10
7
x
2
+
10
8
x
3
+ X
4
+
10
7
x
5
+
10
1
x
6
= 768
(2) 8x
1
+ 9x
2
+ 4x
3
+ 11x
5
+ X
7
= 7680
(3) 5x
1
+ 10x
2
+ 7x
3
+ 3X
4
+ 2x
5
+ X
8
= 7680
Ahora debe eliminarse
4
X de las otras ecuaciones en que aparece. Con este fin realizamos
las siguientes operaciones:
a. Multiplicamos la ecuacin (1) por 2.183 y la sumamos a la ecuacin (0) .
b. Multiplicamos la ecuacin (1) por - 3 y la sumamos a la ecuacin (3) .
UNIVERSIDAD DE MANIZALES
68
Una vez realizadas estas operaciones se obtiene el sistema:
(0)* Z +1.2026 x
1
+0.0951x
2
- 0.1036x
3
- 0.1719x
5
+ 0.2183
6
x 1676.54
(1)*
10
12
x
1
+
10
7
x
2
+
10
8
x
3
+ X
4
+
10
7
x
5
+
10
1
x
6
= 768
(2)* 8x
1
+ 9x
2
+ 4x
3
+ 11x
5
+ X
7
= 7680
(3)*
5
7
x
1
+
10
79
x
2
+
5
23
x
3

10
1

x
5

6
x
10
3

+ X
8
= 5376
Ahora, al comparar este ltimo conjunto de ecuaciones con el conjunto inicial que se obtuvo
en el paso inicial, se observa que se encuentra en la misma forma apropiada de eliminacin
de Gauss que permite leer de inmediato la solucin bsica factible actual despus de ver que
las variables no bsicas x
1,
x
2
, x
3
, x
5
y x
6
son iguales a cero. Igualando estas variables a
cero en las ecuaciones (1)*, (2)* y (3)* obtenemos de manera inmediata los valores de
las variables bsicas; X
4
= 768, X
7
= 7680 y X
8
= 5376.. Se cuenta ahora con la nueva
solucin bsica factible:
( x
1
, x
2
, x
3
, x
4
, x
5
, x
6
, x
7
, x
8
) = (0,0,0,768,0,0,7680,5376), lo que significa un valor de
Z = 1676.54 .
Para dar una perspectiva ms amplia a este procedimiento algebraico, se acaba de resolver el
conjunto original de ecuaciones para obtener la solucin general para Z, x
4
, x
7
y x
8
en
INTRODUCCIN A LA PROGRAMACIN LINEAL
69
trminos de x
1
, x
2
, x
3
, x
5
y x
6
. Esto se logra despejando Z , x
4
, x
7
y x
8
en las ecuaciones
(0)*, (1)*, (2)* y (3)*, pero no se har aqu. Despus se obtuvo una solucin especfica (la
solucin bsica factible) haciendo de x
1
, x
2
, x
3
, x
5
y x
6
(las variables no bsicas) iguales
a cero. Este procedimiento para obtener la solucin simultnea de ecuaciones lineales se
llama mtodo de eliminacin de Gauss Jordan o, en forma corta, eliminacin gaussiana.
El concepto clave de este mtodo es usar dos tipos de operaciones algebraicas para reducir
el sistema de ecuaciones original a la forma apropiada de eliminacin de Gauss , en
donde cada variable bsica se elimina de todas las ecuaciones menos una (su ecuacin) y en
esa ecuacin tiene coeficiente +1 . Una vez obtenida la forma apropiada de eliminacin
de Gauss, la solucin para las variables bsicas se puede leer directamente en el lado dere-
cho de las ecuaciones.
Cmo se identifica la nueva solucin?
Prueba de optimalidad.
Para determinar si la solucin bsica factible actual es ptima, se usa la ecuacin (0) para
reescribir la funcin objetivo, slo en trminos de las variables no bsicas actuales,
Z = - 1.2026 x
1
- 0.0951x
2
+ 0.1036x
3
+ 0.1719x
5
- 0.2183
6
x + 1676.54 ( )
Aumentar el valor de cualquiera de estas variables no bsicas (con el ajuste de los valores de
las variables bsicas para que cumplan todava con el sistema de ecuaciones) significa tras-
ladarse a una de las dos soluciones bsicas factibles adyacentes.
UNIVERSIDAD DE MANIZALES
70
En trminos generales, la solucin bsica factible actual es ptima si y slo si todas las varia-
bles no bsicas tienen coeficientes no positivos ( 0 ) en la forma actual de la funcin
objetivo. Esta forma actual se obtiene despejando Z en la ecuacin (0)* (ecuacin (0)
actual) despus de haber convertido todas las ecuaciones a la forma apropiada de elimina-
cin de Gauss (que elimina las variables bsicas de esta ecuacin). En nuestro caso, esta es
la ecuacin
( ) . De acuerdo a esto, la solucin bsica factible actual
x = ( x
1
, x
2
, x
3
, x
4
, x
5
, x
6
, x
7
, x
8
) = (0,0,0,768,0,0,7680,5376),
no es ptima ya que, por ejemplo, en la ecuacin
( ) el coeficiente de
3
x es positivo.
En forma equivalente, sin despejar Z, la prueba de optimalidad consiste en que todas las
variables no bsicas tengan coeficientes no negativos ( 0 ) en la ecuacin (0) actual.
La razn para usar la forma actual de la funcin objetivo en lugar de la original es que la
forma actual contiene todas las variables no bsicas y ninguna variable bsica. Se
necesitan todas las variables no bsicas para poder comparar todas las soluciones bsicas
factibles adyacentes con la solucin actual. Las variables bsicas no deben aparecer, pues
sus valores pueden cambiar cuando se incrementa alguna variable no bsica, en cuyo caso el
coeficiente de la variable no bsica ya no indica la tasa de cambio de Z. A causa de las
ecuaciones de las restricciones en forma de igualdad, las dos formas de la funcin objetivo
son equivalentes, por lo que se usa la que contiene toda la informacin necesaria.
INTRODUCCIN A LA PROGRAMACIN LINEAL
71
La ecuacin (0) se incluye desde el principio en el sistema de ecuaciones de restriccin y
despus en el proceso de eliminacin de Gauss precisamente para poder obtener esta nueva
forma, ms conveniente, de la funcin objetivo.
Puesto que, segn vimos, la solucin bsica actual no es ptima, debemos proseguir con el
mtodo smplex hasta lograr una solucin ptima, es decir, debemos proseguir con la si-
guiente iteracin. Antes de realizarla, conviene hacer un resumen del mtodo smplex.
Resumen del mtodo smplex
1. PASO INICIAL.
Se introducen las variables de holgura. Si el modelo no se ajusta a la forma estndar del
problema general de programacin lineal, se deben hacer los ajustes necesarios. Para obte-
ner la solucin bsica factible inicial, se seleccionan las variables originales como las variables
no bsicas (es decir, iguales a cero) y las variables de holgura como las variables bsicas (y
por tanto, iguales al lado derecho de las ecuaciones). Se realiza la prueba de optimalidad.
2. PASO ITERATIVO.
Parte 1: se determina la variable bsica entrante; para esto se selecciona la variable no
bsica que, al aumentar su valor, aumente el valor de Z ms rpidamente. Esta eleccin se
UNIVERSIDAD DE MANIZALES
72
puede hacer usando la ecuacin (0) para expresar Z slo en trminos de las variables no
bsicas y eligiendo aquella cuyo coeficiente positivo sea el mayor.
3
Parte 2: se determina la variable bsica que sale: se elige la variable bsica que primero
alcanza el valor cero cuando se incrementa la variable bsica entrante. Cada variable bsica
aparece slo en su ecuacin, de manera que esta ecuacin se usa para determinar cundo
llega a cero esta variable bsica si se aumenta el valor de la que entra. Un procedimiento
algebraico formal para realizarlo es el siguiente: sea j el subndice de la variable bsica
entrante . Sea
'
j
a su coeficiente actual en la ecuacin (i) y sea
'
i
b
el lado derecho actual
de esta ecuacin i=1,2...,m. Entonces la cota superior para
j
x en la ecuacin (i) es

'

>
+

0 a si
a
b
0 a si
x
'
ij
'
ij
'
i
'
ij
j
,
en donde la variable bsica de esta ecuacin se hace cero en esta cota superior. Entonces se
determina la ecuacin con la cota superior ms pequea y se elige la variable bsica actual
en esta ecuacin como la variable bsica que sale.
3
En forma equivalente la ecuacin (0) actual se puede usar en forma directa, en cuyo caso se seleccionara la variable
no bsica con el coeficiente mas negativo. Esto es lo que se hace en la forma tabular del mtodo simplex que se presenta
mas adelante.
INTRODUCCIN A LA PROGRAMACIN LINEAL
73
Parte 3: se determina la nueva solucin bsica factible: comenzando con el conjunto
actual de ecuaciones, se despejan las variables bsicas y Z en trminos de las soluciones no
bsicas por el mtodo de eliminacin de GaussJordan. Las variables no bsicas se igualan
a cero y cada variable bsica (y Z) es igual al nuevo lado derecho de la ecuacin en que
aparece (con coeficiente +1).
3. PRUEBA DE OPTIMALIDAD. Se determina si la solucin es ptima: se verifica si el
valor de Z puede aumentar al hacer que una de las variables no bsicas crezca. Esto se
puede realizar al reescribir la funcin objetivo en trminos de las variables no bsicas y pasar
estas variables al lado derecho de la ecuacin (0) (es decir, despejando Z en esta ecuacin)
y al observar el signo de los coeficientes de cada una. Si todos los coeficientes son negativos
o cero, entonces la solucin es ptima, y el proceso termina. De otra manera, se regresa al
paso iterativo.
A manera de aclaracin, se aplicar este resumen a la siguiente iteracin de nuestro
ejemplo prototipo.
UNIVERSIDAD DE MANIZALES
74
ITERACIN 2 DEL EJEMPLO.
Parte 1: Como la ecuacin (0) actual (o sea, la ecuacin (0)*) da
Z = - 1.2026 x
1
- 0.0951x
2
+ 0.1036x
3
+ 0.1719x
5
- 0.2183
6
x + 1676.54,
elegimos a
5
x como la variable bsica entrante, pues sta posee el mayor coeficiente
positivo.
Parte 2: Los lmites superiores (o cotas superiores) sobre
5
x se muestran en la siguiente
tabla:
Variable Nmero de Coeficiente Parte derecha Cota superior
bsica ecuacin
'
5 i
a
de
5
x
'
i
b
para
5
x
4
x 1 0.7 768 1097.14
7
x 2 11 7680 698.18
8
x 3 -0.1 5376 +
A partir de esta tabla se concluye que la menor cota superior para
5
x es igual a 4.698, la
cual corresponde a la variable bsica
7
x , es decir
7
x tiene la menor cota superior sobre
5
x . Por lo tanto, la variable
7
x se convierte en variable bsica que sale para dar lugar a la
variable entrante
5
x .
Parte 3: Debemos eliminar la variable
5
x de todas las ecuaciones, excepto de la ecuacin
(2)* en la cual
5
x sustituye a
7
x . El sistema correspondiente, junto con las nuevas
INTRODUCCIN A LA PROGRAMACIN LINEAL
75
variables bsicas, las cuales aparecen en mayscula, antes de dicha eliminacin es
(0)* Z +1.2026 x
1
+ 0.0951x
2
- 0.1036x
3
- 0.1719X
5
+ 0.2183
6
x = 1676.54
(1)*
10
12
x
1
+
10
7
x
2
+
10
8
x
3
+ X
4
+
10
7
X
5
+
10
1
x
6
= 768
(2)* 8x
1
+ 9x
2
+ 4x
3
+ 11X
5
+ x
7
= 7680
(3)*
5
7
x
1
+
10
79
x
2
+
5
23
x
3
-0.1X
5

6
x
10
3

+ X
8
= 5376
Se procede a eliminar
5
x de las ecuaciones (0)*, (1)* y (3)* por medio de las siguientes
operaciones:
Se dividen ambos miembros de la ecuacin (2)* por el coeficiente de
5
x en dicha
ecuacin, es decir, por 11 para obtener la ecuacin
2 . 698 x 091 . 0 X x 364 . 0 x 818 . 0 x 727 . 0
7 5 3 2 1
+ + + + (2)**
Se multiplica la ecuacin (2)** por 0.1719 y se suma a la ecuacin (0)*.
Se multiplica la ecuacin (2)** por - 0.7 se suma a la ecuacin (1)*.
Se multiplica la ecuacin (2)** por 0.1 y se suma a la ecuacin (3)*.
Una vez realizadas estas operaciones se obtiene el sistema :
5446
2 . 698
3 . 279
1797
X x 009 . 0
x 091 . 0
x 06 . 0
x 016 . 0
x 3 . 0
x 1 . 0
x 218 . 0
X
X
x 636 . 4
x 364 . 0
x 545 . 0
x 04 . 0
x 982 . 7
x 818 . 0
x 127 . 0
x 236 . 0
x 473 . 1
x 727 . 0
x 691 . 0
x 328 . 1 Z
* * ) 3 (
* * ) 2 (
* * ) 1 (
* * ) 0 (
8 7
7
7
7
6
6
6
5
4
3
3
3
3
2
2
2
2
1
1
1
1

+ +

+
+
+
+
+
+
+
+
+

+
+
+
+ +
UNIVERSIDAD DE MANIZALES
76
As, la nueva solucin factible bsica es
:
) 5446 , 0 , 0 , 2 . 698 , 3 . 279 , 0 , 0 , 0 ( ) x , x , x , x , x , x , x , x ( x
8 7 6 5 4 3 2 1

Esta solucin no es ptima, dado que en la ecuacin (0)** el coeficiente de
3
x es
negativo. Por consiguiente, debemos realizar una iteracin adicional..
ITERACIN 3 DEL EJEMPLO.
Parte 1: La ecuacin (0)** es equivalente a
1797 x 016 . 0 x 218 . 0 x 04 . 0 x 236 . 0 x 328 . 1 Z
7 6 3 2 1
+ + .
La variable con mayor coeficiente positivo ( y nico !) es
3
x , as que la escogemos como
variable bsica entrante.
Parte 2: Los lmites superiores (o cotas superiores) sobre
3
x se muestran en la siguiente
tabla:
Variable bsica Nmero Coeficiente
'
i
a
Parte derecha Cota superior
de ecuacin de
3
x
'
i
b
para
3
x
4
x 1 0.545 279.3 512.477
5
x 2 0.364 698.2 1918.13
8
x 3 4.636 5446 1174.72
A partir de esta tabla se deduce que la variable que impone la menor cota superior sobre
3
x
es
4
x , as que esta variable se convierte en variable que sale y en su lugar entra
3
x .
3
INTRODUCCIN A LA PROGRAMACIN LINEAL
77
Parte 3: Debemos eliminar la variable
3
x de todas las ecuaciones, excepto de la ecuacin
(1)** en la cual
3
x sustituye a
4
x . Procediendo de manera semejante a como se hizo en
la segunda iteracin, se obtiene el sistema
3072
512
512
1818
X x 55 . 0
x 133 . 0
x 12 . 0
x 011 . 0
x 15 . 1
x 07 . 0
x 183 . 0
x 226 . 0
X
x 5 . 8
x 67 . 0
x 833 . 1
x 075 . 0
X
x 9 . 6
x 733 . 0
x 233 . 0
x 245 . 0
x 4 . 4
x 267 . 0
x 267 . 1
x 38 . 1 Z
8 7
7
7
7
6
6
6
6
5
4
4
4
4
3
2
2
2
2
1
1
1
1

+ +
+

+
+
+
+ +
+
+
+
+
+ +
De esta manera, la nueva solucin factible bsica es:
) 3072 , 0 , 0 , 512 , 0 , 512 , 0 , 0 ( ) x , x , x , x , x , x , x , x ( x
8 7 6 5 4 3 2 1
.
Afortunadamente, esta solucin es ptima, pues todos los coeficientes de las variables no
bsicas en la primera ecuacin son positivos. En forma equivalente, al escribir la primera
ecuacin del ltimo sistema en la forma
7 6 4 2 1
x 011 . 0 x 226 . 0 x 075 . 0 x 245 . 0 x 38 . 1 1818 Z .
Observamos que ningn coeficiente de las variables no bsicas es positivo, lo cual prueba
que la solucin obtenida es ptima. Aqu termina la aplicacin del mtodo smplex..
Conclusin: La solucin deseada para la forma original del problema es 0 x
1
, 0 x
2
,
512 x
3
, 0 x
4
y 512 x
5
, lo cual nos proporciona para la funcin objetivo un
mximo de
1818 Z
.
UNIVERSIDAD DE MANIZALES
78
3.3. FORMA TABULAR DEL MTODO SMPLEX.
La forma algebraica del mtodo smplex presentada en la seccin 3.2 puede ser la mejor para
entender la lgica que fundamenta el algoritmo. Sin embargo, no es la ms conveniente para
realizar los clculos necesarios. Para resolver un problema a mano (o en computadora), se
recomienda la forma tabular descrita en esta seccin.
La forma tabular del mtodo smplex es matemticamente equivalente a la forma algebraica,
nada ms que en lugar de escribir cada conjunto de ecuaciones con todo detalle, se usa una
tabla smplex para registrar slo la informacin esencial, a saber: 1) los coeficientes de las
variables, 2) las constantes del lado derecho de las ecuaciones y 3) las variables bsicas que
aparecen en cada ecuacin. Esto ahorra la escritura de los smbolos de las variables, pero es
ms importante al permitir hacer que sobresalgan los nmeros usados en los clculos aritm-
ticos y registrarlos en forma muy compacta.
Expondremos la forma tabular del mtodo smplex en la solucin del ejemplo prototipo sobre
un problema de produccin (Ejemplo 3.1.1). En este problema el sistema de ecuaciones es:
(0) Z -1.417x
1
- 1.433x
2
- 1.85x
3
- 2.183x
4
- 1.7x
5
= 0
(1) 12x
1
+ 7x
2
+ 8x
3
+ 10x
4
+ 7x
5
+ x
6
= 7680
(2) 8x
1
+ 9x
2
+ 4x
3
+ + 11x
5
+ x
7
= 7680
(3) 5x
1
+ 10x
2
+ 7x
3
+ 3x
4
+ 2x
5
+ x
8
= 7680
x
1,
x
2,
x
3,
x
4,
x
5,
x
6,
x
7,
x
8
0
INTRODUCCIN A LA PROGRAMACIN LINEAL
79
Este sistema de ecuaciones se representa en la siguiente tabla:
Variable Ec. Coeficiente de Lado
bsica Nm.
Z
1
x
2
x
3
x
4
x
5
x
6
x
7
x
8
x derecho
Z 0 1 -1.417 -1.433 -1.85 -2.183 -1.7 0 0 0 0
6
x 1 0 12 7 8 10 7 1 0 0 7680
7
x 2 0 8 9 4 0 11 0 1 0 7680
8
x 3 0 5 10 7 3 2 0 0 1 7680
Tabla 3.3.1. Etapa inicial del mtodo smplex
Esta tabla contiene la distribucin de cualquier tabla smplex, donde la columna de la iz-
quierda indica la variable bsica que aparece en cada ecuacin de la solucin bsica factible
actual (aunque slo las variables
j
x
son bsicas o no bsicas, Z juega el papel de variable
bsica para la ecuacin (0)). Por ejemplo, la columna de la variable bsica de la tabla 3.3.1
indica que la solucin bsica factible inicial tiene las variables
6
x ,
7
x y
8
x , es decir, las
variables no bsicas son las que no estn en la lista:
1
x ,
2
x ,
3
x ,
4
x y
5
x .
Despus de establecer 0 x
1
, 0 x
2
, 0 x
3
, 0 x
4
y 0 x
5
, la columna
denominada lado derecho proporciona la solucin para las variables bsicas, de manera que
la solucin bsica factible inicial es:
) x , x , x , x , x , x , x , x ( x
8 7 6 5 4 3 2 1
) 7680 , 7680 , 7680 , 0 , 0 , 0 , 0 , 0 ( con
0 Z
.
UNIVERSIDAD DE MANIZALES
80
La razn por la que la columna lado derecho siempre da los valores de las variables bsicas
en la solucin bsica factible actual, es que el mtodo smplex requiere que la tabla smplex al
iniciar (o terminar) cada iteracin est en la forma apropiada de eliminacin de Gauss. En
esta forma, cada columna de cada variable bsica contiene slo un coeficiente distinto de
cero y este coeficiente es 1 en el rengln o fila de esta variable bsica (las columnas de las
variables no bsicas pueden tener cualquier elemento). Obsrvese en la tabla 3.3.1 que las
columnas de
6
x ,
7
x y
8
x (lo mismo que la de Z) se ajustan a este patrn especial. En
consecuencia, cada ecuacin contiene exactamente una variable bsica con coeficiente dis-
tinto de cero, en donde este coeficiente es 1, por lo que esta variable bsica es igual a la
constante en el lado derecho de esta ecuacin (recurdese que las variables no bsicas son
iguales a cero).
Segn las suposiciones actuales (establecidas al comenzar el captulo) sobre la forma original
del modelo, la tabla smplex inicial queda automticamente en la forma apropiada de
eliminacin gaussiana. Cuando el mtodo smplex se traslada de la solucin bsica factible
actual a la siguiente, la parte 3 del paso iterativo utiliza la eliminacin de Gauss para restable-
cer esta forma para la nueva solucin.
El mtodo smplex construye una tabla smplex para cada solucin bsica factible que se
obtiene, hasta alcanzar la solucin ptima. A continuacin se describe el procedimiento, que
INTRODUCCIN A LA PROGRAMACIN LINEAL
81
es slo una representacin tabular del procedimiento algebraico presentado en la
seccin 3.2.
PASO INICIAL. Se introducen las variables de holgura. Si el modelo no se encuentra
en la forma estndar del problema general de programacin lineal, se deben hacer los
ajustes necesarios. De otra manera, se seleccionan las variables originales como
variables no bsicas iniciales (se igualan a cero) y las variables de holgura como
las variables bsicas iniciales. Este paso est representado en la tabla 3.3.1 para
nuestro ejemplo prototipo, en donde la solucin factible bsica inicial es
) 7680 , 7680 , 7680 , 0 , 0 , 0 , 0 , 0 ( . Ahora debe realizarse la prueba de optimalidad
para determinar si la solucin es ptima.
PRUEBA DE OPTIMALIDAD. La solucin bsica factible actual es ptima si y slo si
todos los coeficientes de la ecuacin (0) son no negativos (
0
). Si es as, el proceso termina,
de lo contrario, se lleva a cabo otra iteracin para obtener la nueva solucin bsica factible, lo
que significa el cambio de una variable no bsica por una bsica (parte 1) y viceversa (parte 2),
y despus despejar las variables de la nueva solucin (parte 3). Apreciando la tabla 3.3.1,
observamos cinco coeficientes negativos en al ecuacin (0), lo cual indica que la solucin
bsica factible actual no es optimal (basta con al menos un coeficiente negativo en la ecuacin
(0) para que la solucin no sea ptima). Con esta informacin debe irse al paso iterativo.
UNIVERSIDAD DE MANIZALES
82
PASO ITERATIVO.
Parte 1: se determina la variable bsica entrante mediante la eleccin de la variable
(automticamante se refiere a una variable no bsica) con el coeficiente negativo que tiene
el mayor valor absoluto en al ecuacin (0) (o sea, se escoge la variable no bsica con el
coeficiente ms negativo). Se enmarca o sombrea la columna correspondiente a este coefi-
ciente y se le da el nombre de columna pivote.
En nuestro ejemplo, el coeficiente negativo ms grande (en trminos de valor absoluto) es
183 . 2
para
4
x , por lo que
4
x debe convertirse en variable bsica. Este cambio se
indica en la tabla 3.3.2 con un sombreado en la columna de
4
x abajo del
183 . 2
.
Variable Ec. Coeficiente de Lado
bsica Nm.
Z
1
x
2
x
3
x
4
x
5
x
6
x
7
x
8
x derecho
Z 0 1 -1.417 -1.433 -1.85 -2.183 -1.7 0 0 0 0
6
x 1 0 12 7 8 10 7 1 0 0 7680
7
x 2 0 8 9 4 0 11 0 1 0 7680
8
x 3 0 5 10 7 3 2 0 0 1 7680
Tabla 3.3.2. Seleccin de la variable bsica entrante
INTRODUCCIN A LA PROGRAMACIN LINEAL
83
Parte 2: se determina la variable bsica que sale; para lograrlo, a) se toma cada coeficien-
te estrictamente positivo de la columna sombreada; b) se divide el lado derecho de cada
rengln entre estos coeficientes; c) se identifica la ecuacin con el menor cociente, y d) se
selecciona la variable bsica para la ecuacin (esta variable bsica es la que llega a cero
primero cuando se incrementa la variable bsica entrante). Se sombrea o enmarca el rengln
de esta ecuacin en la tabla smplex sin incluir la columna Z y se le da el nombre de
rengln pivote (de aqu en adelante se usar el trmino rengln para hacer referencia a los
nmeros de ese rengln que se encuentran a la derecha de la columna Z, y que incluyen las
constantes del lado derecho; los renglones se etiquetan con los nmeros en la columna deno-
minada Ec. Nm.). El nmero que est en la interseccin de ambos recuadros se llama
nmero pivote.
Variable Ec. Coeficiente de Lado
bsica Nm.
Z
1
x
2
x
3
x
4
x
5
x
6
x
7
x
8
x der. Cociente
Z 0 1 -1.417 -1.433 -1.85 -2.183 -1.7 0 0 0 0
6
x 1 0 12 7 8 10 7 1 0 0 7680 768
Mnimo
7
x 2 0 8 9 4 0 11 0 1 0 7680 ___
8
x 3 0 5 10 7 3 2 0 0 1 7680 2560
Tabla 3.3.3. Seleccin de la variable bsica que sale.
Primera Tabla Smplex
UNIVERSIDAD DE MANIZALES
84
En la tabla 3.3.3 se muestran los resultados de las partes 1 y 2 para el ejemplo; la prueba
del cociente mnimo para determinar la variable bsica que sale se muestra a la derecha de
la tabla (en su ltima columna). En el rengln 2, el coeficiente de la columna pivote es cero,
as que los nicos dos coeficientes estrictamente positivos se encuentran en los renglones 1
y 3 (en el rengln 1 el coeficiente es 10, mientras que el coeficiente en el rengln 2 es 3 ).
Las razones para estos renglones son
768
10
7680

(para el rengln 1) y
2560
3
7680

(para el rengln 2), por lo que la razn mnima de 768 identifica al rengln 1 como el
rengln pivote (con 10 como nmero pivote). En consecuencia, la variable bsica que
sale es
6
x , es decir, la variable bsica del rengln 1 (las otras variables bsicas
7
x y
8
x no aparecen en este rengln, por cuanto sus coeficientes son 0).
Parte 3: se determina la nueva solucin bsica factible construyendo una nueva tabla
smplex en la forma apropiada de eliminacin de Gauss, debajo de la que se tiene. En la
nueva tabla, las primeras tres columnas son las mismas que en la tabla inicial, slo que la
variable bsica entrante sustituye a la variable bsica que sale en la columna de Variable
bsica . Para cambiar el coeficiente de la nueva variable bsica en el rengln pivote a 1 , se
divide todo el rengln entre el nmero pivote, as que
pivote nmero
antiguo pivote rengln
nuevo pivote Rengln
.
En el ejemplo, como el rengln pivote antiguo es el rengln 1 sombreado en la tabla 3.3.3,
INTRODUCCIN A LA PROGRAMACIN LINEAL
85
y el nmero pivote es 10, al aplicar la ltima frmula se obtiene el nuevo rengln pivote,
como se muestra en la tabla 3.3.4.
Para completar la primera iteracin es necesario seguir usando la eliminacin de Gauss para
obtener coeficientes de 0 para la nueva variable bsica
4
x en los otros renglones (incluso
el rengln 0) de la tabla 3.3.4. Como el segundo rengln ya tiene coeficiente 0 para
4
x
en la primera tabla smplex, este segundo rengln se puede copiar a la segunda tabla (que
corresponde a la iteracin 1) sin cambios. No as los renglones 0 y 3 que tienen coeficien-
tes en la columna pivote de
183 . 2
y 3 respectivamente, as que cada uno de ellos
necesita cambiarse usando la siguiente frmula:
nuevo) pivote rengln pivote columna la de te (coeficien antiguo Rengln
nuevo Rengln

Variable Ec. Coeficiente de Lado


bsica Nm.
Z
1
x
2
x
3
x
4
x
5
x
6
x
7
x
8
x derecho
Z 0 1 -1.417 -1.433 -1.85 -2.183 -1.7 0 0 0 0
6
x 1 0 1.2 0.7 0.8 1 0.7 0.1 0 0 768
7
x 2 0 8 9 4 0 11 0 1 0 7680
8
x 3 0 5 10 7 3 2 0 0 1 7680
Tabla 3.3.4. Preparacin para la primera iteracin del mtodo smplex.
UNIVERSIDAD DE MANIZALES
86
De otra forma, cuando el coeficiente de la columna pivote es negativo (como en el rengln
0), una expresin ms conveniente para esta frmula es
nuevo) pivote rengln ) pivote columna la de e coeficient ( ( antiguo Rengln
nuevo Rengln
+

A manera de ilustracin, los renglones que aparecen en la tabla 3.3.5 se obtienen como
sigue:
) 1677 , 0 0 218 . 0 17 . 0 0 1 . 0 095 . 0 203 . 1 (
0 rengln nuevo
__________ __________ __________ __________ __________ __________ __________
) 768 , 0 0 0.1 0.7 1 0.8 0.7 1.2 2.183)( (
) 0 , 0 0 0 7 . 1 183 . 2 85 . 1 433 . 1 417 . 1 ( : 0 Rengln

+

Rengln 2; Sin cambio porque el coeficiente de la columna pivote es cero.
) 1677 , 1 0 3 . 0 1 . 0 0 6 . 4 9 . 7 4 . 1 (
3 rengln nuevo
____ __________ __________ __________ __________ __________ __________
) 768 , 0 0 0.1 0.7 1 0.8 0.7 1.2 3)( (
) 7680 , 1 0 0 2 3 7 10 5 ( : 3 Rengln

INTRODUCCIN A LA PROGRAMACIN LINEAL


87
Estos clculos llevan a la nueva tabla smplex que se muestra en la tabla 3.3.5:
Variable Ec. Coeficiente de Lado
bsica Nm.
Z
1
x
2
x
3
x
4
x
5
x
6
x
7
x
8
x derecho
Z 0 1 1.203 0.095 - 0.1 0 - 0.17 0.218 0 0 1677
4
x 1 0 1.2 0.7 0.8 1 0.7 0.1 0 0 768
7
x 2 0 8 9 4 0 11 0 1 0 7680
8
x 3 0 1.4 7.9 4.6 0 - 0.1 - 0.3 0 1 5376
Tabla 3.3.5. Final de la primera iteracin..
Como las variables bsicas siempre son iguales al lado derecho de la ecuacin que les
corresponde, la nueva solucin bsica factible es :
) 5376 , 7680 , 0 , 0 , 7680 , 0 , 0 , 0 ( ) x , x , x , x , x , x , x , x ( x
8 7 6 5 4 3 2 1
,
con Z = 1677.
Este trabajo completa el paso iterativo, as que debe proseguirse con la prueba de optimalidad
para verificar si la nueva solucin bsica es ptima. Como el nuevo rengln (0) todava tiene
coeficientes negativos, la solucin no es ptima, por lo que se necesita una iteracin ms.
La tabla 3.3.6 nos muestra las variables entrante y la que sale en la siguiente iteracin:
UNIVERSIDAD DE MANIZALES
88
Variable Ec. Coeficiente de Lado
bsica Nm.
Z
1
x
2
x
3
x
4
x
5
x
6
x
7
x
8
x der. Cociente
Z 0 1 1.203 0.095 - 0.1 0 - 0.17 0.218 0 0 1677
4
x 1 0 1.2 0.7 0.8 1 0.7 0.1 0 0 768 1097.14
7
x 2 0 8 9 4 0 11 0 1 0 7680 698.18
Mnimo
8
x 3 0 1.4 7.9 4.6 0 - 0.1 - 0.3 0 1 5376
Tabla 3.3.6. Iteracin 1. Segunda Tabla Smplex
As, vemos que la variable entrante es
5
x y la saliente es
7
x . Procediendo como en la
primera iteracin, de la tabla 3.3.6 se obtiene la tabla 3.3.7.
Variable Ec. Coeficiente de Lado
bsica Nm.
Z
1
x
2
x
3
x
4
x
5
x
6
x
7
x
8
x derecho
Z 0 1 1.328 0.236 -0.04 0 0 0.218 0.016 0 1797
4
x 1 0 0.691 0.127 0.545 1 0 0.1 - 0.06 0 279.3
5
x 2 0 0.727 0.818 0.364 0 1 0 0.091 0 698.2
8
x 3 0 1.473 7.982 4.636 0 0 - 0.3 0.009 1 5446
Tabla 3.3.7. Final de la segunda iteracin.
INTRODUCCIN A LA PROGRAMACIN LINEAL
89
Dado que el rengln (0) an contiene coeficientes negativos, se debe realizar una iteracin
adicional. La tabla 3.3.8 nos muestra las variables entrante y saliente para la tercera itera-
cin:
Variable Ec. Coeficiente de Lado
bsica Nm.
Z
1
x
2
x
3
x
4
x
5
x
6
x
7
x
8
x der. Cociente
Z 0 1 1.328 0.236 - 0.04 0 0 0.218 0.016 0 1797
4
x 1 0 0.691 0.127 0.545 1 0 0.1 - 0.06 0 279.3 512.48
Mnimo
5
x 2 0 0.727 0.818 0.364 0 1 0 0.091 0 698.2 1918.1
8
x 3 0 1.473 7.982 4.636 0 0 - 0.3 0.009 1 5446 1174.7
Tabla 3.3.8. Tercera Tabla Smplex
Aplicando reduccin gaussiana se obtiene la tabla
Variable Ec. Coeficiente de Lado
bsica Nm.
Z
1
x
2
x
3
x
4
x
5
x
6
x
7
x
8
x derecho
Z 0 1 1.38 0.245 0 0.075 0 0.226 0.011 0 1818
3
x 1 0 1.267 0.233 1 1.833 0 0.183 - 0.12 0 512
5
x 2 0 0.267 0.733 0 - 0.67 1 - 0.07 0.133 0 512
8
x 3 0 - 4.4 6.9 0 - 8.5 0 - 1.15 0.55 1 3072
Tabla 3.3.9. Final de la tercera iteracin.
UNIVERSIDAD DE MANIZALES
90
El rengn (0) de esta ltima tabla no contiene coeficientes negativos, luego la solucin
obtenida 0 x
1
, 0 x
2
, 512 x
3
, 0 x
4
, 512 x
5
, 0 x
6
, 0 x
7
y
0 x
8
es ptima, dando un valor mximo para la funcin objetivo de Z = 1818 .
3.4. MTODO SMPLEX USANDO LA TCNICA M
(MTODO DE PENALIZACIN)
En los modelos de programacin lineal aparecen con frecuencia restricciones de tipo igual-
dad o desigualdades del tipo (

), por lo que no es posible en estos casos obtener una


solucin factible bsica de inicio con las variables de holgura.
Para disponer de una solucin bsica factible de inicio, se usan variables artificiales, las cuales
son no negativas y se suman al primer miembro de cada ecuacin en la forma estndar del
modelo que no contenga variables de holgura, que sirvan de variables bsicas de inicio.
Las variables artificiales desempean igual funcin que las variables de holgura. Sin embargo,
no tienen significado fsico ni econmico, de ah el nombre de artificiales.
Para que el proceso de optimizacin sea vlido se requiere que en la solucin ptima estas
variables valgan cero, y se logra penalizndolas en la funcin objetivo. El mtodo consiste en
INTRODUCCIN A LA PROGRAMACIN LINEAL
91
utilizar coeficientes positivos muy grandes M ( > ) 0 > para las variables artificiales en la
funcin objetivo, sumadas si el problema es de minimizacin o restadas si es de maximizacin.
Lo anterior se ver ms claro en los siguientes ejemplos.
OBSERVACIN. En los ejemplos que se resuelven en esta seccin, las variables de holgu-
ra se denotan por , S
1
, S
2
, ..., etc.
Ejemplo I. Resolver el problema
Max [
3 2 1
x 5 x 3 x 2 Z + ]
sujeta a

'


+ +
+
. 0 x , 0 x , 0 x
7 x x x
10 x x 5 x 2
3 2 1
3 2 1
3 2 1
Solucin: Escribimos el modelo en forma estndar
max [
2 1 3 2 1
MR MR x 5 x 3 x 2 Z + ]
sujeta a;

'

+ +
+ +
0 R , R , S , x , x , x
7 R + x x x
10 R S x x 5 x 2
2 1 1 3 2 1
2 3 2 1
1 1 3 2 1
UNIVERSIDAD DE MANIZALES
92
Construimos el siguiente tablero:
Variables Z
1
x
2
x
3
x
1
S
1
R
2
R Solucin
Bsicas
Z 1 -2 -3 5 0 M M 0
1
R 0 2 - 5 1 - 1 1 0 10
2
R 0 1 1 1 0 0 1 7
Tabla 3.4.1.
Para obtener el tablero inicial debemos obtener en el rengln Z coeficientes cero para las
variables artificiales
1
R y
2
R , multiplicando el rengln
1
R y
2
R por
M
y
sumndoselo a l rengln Z, con lo que se obtiene:
Variables Z
1
x
2
x
3
x
1
S
1
R
2
R Solucin
Bsicas
Z 1 - 3M - 2 4M - 3 - 2M + 2 M 0 0 - 17 M
1
R 0 2 - 5 1 - 1 1 0 10
2
R 0 1 1 1 0 0 1 7
Tabla 3.4.2. Tablero inicial.
Aplicando el mtodo smplex se obtiene la siguiente tabla ptima (los detalles se dejan al
lector):
INTRODUCCIN A LA PROGRAMACIN LINEAL
93
Variables Z
1
x
2
x
3
x
1
S
1
R
2
R Solucin
Bsicas
Z 1 0 0
7
50
7
1
7
1
M
7
16
M +
7
102
1
x 0 1 0
7
6
7
1

7
1
7
5
7
45
2
x 0 0 1
7
1
7
1
7
1

7
2
7
4
Tabla 3.4.3. Solucin ptima al Ejemplo I
Por lo tanto, la solucin ptima es:
7
102
= Z max
,
7
45
x
1

,
7
4
x
2

,
0 x
3

,
0 S
1

.
Ejemplo II. Resolver el problema
[ ] x 7 x 6 x 5 = Z min
3 2 1

sujeta a

'

+ +
+
+
0 x , x , x
5 x x x
20 x 10 x 6 x 5
15 x 3 x 5 x
3 2 1
3 2 1
3 2 1
3 2 1
Solucin: Reescribimos el modelo en forma estndar e incluimos las variables artificiales. El
problema se puede expresar en la siguiente forma equivalente:
2 1 3 2 1
MR MR x 7 x 6 x 5 Z min + +
UNIVERSIDAD DE MANIZALES
94
sujeto a
. 0 R , R , X , X , x , x , x
5 R x x x
20 X x 10 x 6 x 5
15 R X x 3 x 5 x
2 1 2 1 3 2 1
2 3 2 1
2 3 2 1
1 1 3 2 1

+ + +
+ +
+ +
Construimos el tablero:
VB Z
1
x
2
x
3
x
1
X
1
R
2
X
2
R Sol.
Z 1 - 5 6 7 0
M
0
M
0
1
R 0 1 5 - 3 - 1 1 0 0 15
X
2
0 5 -6 10 0 0 1 0 20
2
R 0 1 1 1 0 0 0 1 5
Tabla 3.4.4.
Enseguida obtenemos coeficientes cero para
1
R y
2
R en el rengln Z conformando
el tablero inicial;
VB Z
1
x
2
x
3
x
1
X
1
R
2
X
2
R Sol.
Z 1
5 M 2 6 M 6 + M 2 7 M
0 0 0
M 20
1
R 0 1 5 - 3 - 1 1 0 0 15
2
X 0 5 -6 10 0 0 1 0 20
2
R 0 1 1 1 0 0 0 1 5
Tabla 3.4.5. Tablero inicial para el ejemplo II.
INTRODUCCIN A LA PROGRAMACIN LINEAL
95
Ahora se aplica el mtodo smplex para obtener:
VB Z
1
x
2
x
3
x
1
X
1
R
2
X
2
R Sol.
Z 1 - 115 /10 0 0 - 1 / 8 1 / 8 - M 0 - M - 53 / 8 - 125 / 4
2
x 0 1 / 2 1 0 - 1 / 8 1 / 8 0 3 / 8 15 / 4
2
X 0 3 0 0 - 2 2 1 - 4 30
3
x 0 1 / 2 0 1 1 / 8 - 1 / 8 0 5 / 8 5 / 4
Tabla 3.4.6. Solucin ptima al Ejemplo II.
Este tablero es ptimo, puesto que los coeficientes de la funcin objetivo (Rengln Z) son
todos no positivos (
0
). Por lo tanto, se obtiene como solucin ptima factible
4
125
Z min
,
0 x
1

,
4
15
x
2

,
4
5
x
3

, , . X
*
1
= 0 , X
*
2
= 30 .
Existe otra tcnica alternativa para llevar a cabo el algoritmo smplex con variables artificiales
denominado TECNICA DE LAS DOS FASES, el cual no se discutir en este mdulo,
pero se recomienda su consulta al lector.
EJERCICIOS PROPUESTOS DEL CAPITULO III. METODO SMPLEX.
3.1. Obtener la tabla 3.4.2.
3.2. Obtener la tabla 3.4.6.
UNIVERSIDAD DE MANIZALES
96
3.3. Maximizar la funcin
2 1
x x Z +
sujeta a

'

+
+
. 0 x , x
6 x 2 x 7
5 x 3 x 2
2 1
2 1
2 1
3.4. Maximizar la funcin
3 2 1
x 3 x 5 x Z + +
sujeta a

'



+ +
. 0 x , 0 x , 0 x
4 x x 2
3 x x 2 x
3 2 1
2 1
3 2 1
Utilice una variable artificial en la segunda restriccin y use
3
x como variable bsica de
inicio.
3.5. Maximizar
3 2 1
x 3 x 2 x 3 Z + +
sujeta a

'


+ +
+ +
. 0 x , 0 x , 0 x
8 x 2 x 4 x 3
2 x x x 2
3 2 1
3 2 1
3 2 1
INTRODUCCIN A LA PROGRAMACIN LINEAL
97
3.6. Minimizar
2 1
x 4 x Z +
sujeta a

'

+
+
. 0 x , x
12 x 2 x 3
8 x 2 x
2 1
2 1
2 1
Resuelva este problema por medio de:
a. Mtodo grfico.
b. Mtodo Smplex.
Compare los resultados de a y b.
3.7. Minimcese la funcin
4 3 2 1
x 2 x 3 x x 6 Z + +
sujeta a

'


+ +
+
+
. 0 x , 0 x , 0 x , 0 x
30 x x 2 x
10 x x x 3 x 2
42 x x
4 3 2 1
4 3 1
4 3 2 1
2 1
3.8. Resolver el modelo del ejemplo 1.4.
UNIVERSIDAD DE MANIZALES
98
INTRODUCCIN A LA PROGRAMACIN LINEAL
99
4.1. PROGRAMA SIMPLEX EN MATHEMATICA
El programa Smplex y otros aqu presentados fueron escritos por Alvaro Salas. El propsito
de este captulo consiste en mostrar el algoritmo PASO A PASO y de una manera
INTERACTIVA entre el usuario y el computador. El programa se presenta al final en el
anexo y corre en MATHEMATICA, versiones 2.2 y posteriores. Los comandos creados,
junto con sus respectivos formatos, se presentan a continuacin :
1. Comando Smplex .
Sus formatos son :
Smplex[Max,funcin objetivo Z,
{restriccin 1, restriccin 2,...,restriccin k}] ( si se trata de maximizar Z)
Smplex[Min,funcin objetivo Z,
{restriccin 1, restriccin 2,...,restriccin k}] ( si se trata de minimizar Z)
Este programa proporciona el problema original e introduce en forma automtica las varia-
bles de holgura,artificiales y/o de supervit. Muestra el problema en forma estndar , en
donde todas las restricciones son ecuaciones junto con la tabla smplex inicial. Adems, el
programa supone que todas las variables son no negativas.
Captulo IV
IMPLEMENTACION DEL ALGORITMO SIMPLEX EN
MATHEMATICA
UNIVERSIDAD DE MANIZALES
100
EJEMPLO I.
Maximizar la funcin
2 1
x x Z +
sujeta a

'

+
+
. 0 x , x
6 x 2 x 7
5 x 3 x 2
2 1
2 1
2 1
In[1]:= T0=Smplex[Max,x1+x2,{2*x1+3*x2==5,7*x1+2*x2<=6}];
Out[1]=
Problema Original :
Maximizar : W = x1 + x2
Sujeta a :
2 x1 + 3 x2 == 5
7 x1 + 2 x2 <= 6
Forma Estndar del problema :
Maximizar :
Z =x1 + x2 - M R1
Sujeta a :
2 x1 + 3 x2 + R1 == 5
7 x1 + 2 x2 + S1 == 6
INTRODUCCIN A LA PROGRAMACIN LINEAL
101
Tipos de Variables :
Variables Originales ={x1, x2}
Variables de Holgura ={S1}
Variables Artificiales ={R1}
Variables Bsicas ={R1, S1}
Tabla Smplex inicial :
2. Comando sumar. Su formato es :
sumar[Tabla,i,k,j]
Esta instruccin multiplica la i -sima fila ( rengln ) de la tabla Tabla por k y la suma al
rengln j de la misma. Esta operacin se aplica, en particular, cuando se usa la tcnica de la
M (tcnica de la penalizacin) con el fin de volver consistente la tabla smplex inicial con el
valor que la funcin objetivo penalizada toma en la solucin bsica inicial.
UNIVERSIDAD DE MANIZALES
102
EJEMPLO II. Multipliquemos la fila 1 de la tabla T0 por -M y sumemos este resultado a
la fila 0 de dicha tabla :
In[2]:= T1= sumar[T0, 1,-M,0]
Out[2] =
3. Comando buscar. Su formato es :
buscar[Tabla]
Este comando se aplica cuando se tiene una tabla smplex consistente con el valor que la
funcin objetivo toma en la solucin bsica factible inicial. El comando buscar, como su
nombre lo indica, busca la variable que entra y la variable que sale en la primera iteracin.
INTRODUCCIN A LA PROGRAMACIN LINEAL
103
EJEMPLO III. Apliquemos el comando buscar a la tabla T1 :
In[3]:= T2 = buscar[T1];
Out[3]=
Sale R1; Entra x2. Aplique: iterar[%#salida,1,2]
3. Comando iterar. Su formato es :
iterar[Tabla,i,j]
Este comando convierte en uno el elemento que se encuentra en la interseccin del rengl
(fila) i y la columna j (el elemento pivote) y simultneamente crea ceros arriba y debajo del
pivote. Al mismo tiempo, ubica el nuevo elemento pivote ( si tal existe ).
UNIVERSIDAD DE MANIZALES
104
EJEMPLO IV. Apliquemos el comando iterar a la tabla T2 :
In[4]:= T3 = iterar[T2,1,2];
Out[4] =
Sale S1; Entra x1. Aplique : iterar[%#salida,2,1]
Una vez ms, apliquemos el comando iterar :
In[5]:= T4 = iterar[T3,2,1];
Out[5]=
Valores de las variables bsicas :
INTRODUCCIN A LA PROGRAMACIN LINEAL
105
CONCLUSION. Solucin ptima :
Como puede apreciarse, al aplicar el comando iterar reiteradamente, obtenemos la
conclusin. En el caso que tenemos, el mximo valor de
Z
es igual a
17
31
, el cual se alcanza
para
17
8
x
1

y
17
23
x
2

..
El siguiente ejemplo ilustra el aspecto geomtrico del algoritmo smplex. En las grficas se
puede apreciar la ruta del algoritmo, es decir, cmo pasa de un vrtice de la regin factible a
uno adyacente.
EJEMPLO V. Maximizar la funcin
2
x 2
1
x Z +
sujeta a :

'

+
+
+

+
0
2
x ,
1
x
39
2
x
1
x 6
15
2
x
1
x 2
10
2
x
1
x
6
2
x
3
2
x
1
x
UNIVERSIDAD DE MANIZALES
106
SOLUCION.
In[6]:= T0=Smplex[Max,x1+2x2,{-x1+x2<=3,x2<=6,x1+x2<=10,
12x1+x2<=15,6x1+x2<=39}]
Out[6]= Problema Original:
Maximizar : W=x1+2x2
Sujeta a:
-4x1 +x2 <= 0
-x1 +x2 <= 3
x2 <= 6
x1 +x2 <= 10
2x1 +x2 <= 15
6x1 +x2 <= 39
Forma estndar del problema :
Maximizar : Z = x1+2x2
Sujeta a :
-4x1 +x2+S1 ==0
-x1 +x2 +S2 ==3
x2 +S3 ==6
x1 +x2 +S4 ==10
2x1 +x2 +S5 ==15
6x1 +x2 +S6 ==39
INTRODUCCIN A LA PROGRAMACIN LINEAL
107
Tipos de variables:
Variables Originales = {x1,x2}
Variables de Holgura = {S1,S2,S3,S4,S5,S6}
Variables Bsicas = {S1,S2,S3,S4,S5,S6}
Tabla Smplex inicial :
Por cuanto esta tabla smplex es consistente (no se aplica la tcnica de la M, ya que todas las
restricciones tienen el signo

y los lados derechos de las mismas son no negativos)


procedemos a buscar la variable que entra y la que sale en la primera iteracin :
In[7]:= T1=buscar[T0];
Out[7]=
UNIVERSIDAD DE MANIZALES
108
Sale S1; Entra x2. Aplique : iterar[%#salida,1,2]
In[8]:= T2=iterar[T1,1,2];
Out[8]=
Sale S2; Entra x1. Aplique : iterar[%#salida,2,1]
INTRODUCCIN A LA PROGRAMACIN LINEAL
109
Interpretacin grfica :
In[9]:= T3 = iterar[T2,2,1];
Out[9]=
UNIVERSIDAD DE MANIZALES
110
Sale S3; Entra S1. Aplique : iterar[%#salida,3,3]
Interpretacin grfica :
In[10]:=T4=iterar[T3,3,3];
Out[10]=
Sale S4; Entra S2. Aplique : iterar[%#salida,4,4]
INTRODUCCIN A LA PROGRAMACIN LINEAL
111
Interpretacin grfica :
In[11]:= T5 = iterar[T4,4,4];
Out[11] =
UNIVERSIDAD DE MANIZALES
112
CONCLUSION. Solucin ptima : {Z->16,x1->4,x2->6}.
Interpretacin grfica :
4.2. CASOS ESPECIALES EN LA APLICACIN DEL MTODO SIMPLEX
Enseguida mostraremos la aplicabilidad del programa en diferentes situaciones (casos
especiales del mtodo smplex).
INTRODUCCIN A LA PROGRAMACIN LINEAL
113
4.2.1. PROBLEMAS SIN SOLUCIN
EJEMPLO VI ( Problema sin solucin factible ).
Un problema de programacin lineal no tiene solucin factible alguna cuando al aplicar la
tcnica de la M al menos una variable artificial es bsica y toma un valor positivo en la tabla
smplex final .
Esto significa que las restricciones no pueden ser satisfechas simultnaeamente.
Minimizar :
2 1
x 4 x Z
Sujeta a:

'


+
+
+
0 x , 0 x
6 x x
1 x x
2 x 2 x
2 1
2 1
2 1
2 1
SOLUCION.
Primero que todo, es evidente que el problema carece de solucines bsicas, por cuanto las
restricciones 1 x x
2 1
+ y 6 x x
2 1
+ son contradictorias. Verifiquemos esto usando el
algoritmo smplex :
In[12]:=T0 = Smplex[Min,x1-4x2,
{x1+2x2>=2,x1+x2<=1,x1+x2>=6}]
UNIVERSIDAD DE MANIZALES
114
Out[12] =
Problema Original :
Minimizar W = x1-4x2
Sujeta a :
x1+2x2>=2
x1 +x2<=1
x1 +x2>=6
Forma estndar del problema :
Maximizar : Z = x1-4x2-M*R1-M*R2
Sujeta a :
x1 +2x2 -Y1 +R1 ==2
x1 + x2 +S1 ==1
x1 + x2 -Y2 +R2 ==6
Tipos de variables :
Variables Originales = {x1,x2}
Variables de Holgura = {S1}
Variables Artificiales = {R1,R2}
Variables de Supervit = {Y1,Y2}
Variables Bsicas = {R1,S1,R2}
INTRODUCCIN A LA PROGRAMACIN LINEAL
115
Tabla smplex inicial :
Esta tabla nos proporciona la solucin bsica factible inicial
0 x
1
, 0 x
2
, 0 Y
1
, 1 S
1
, 2 R
1
, 6 R
2
.
Esta tabla no es consistente con el valor que la funcin objetivo
2 1 2 1
MR MR x 4 x Z
toma en la solucin bsica, el cual es
M 8 6 M 2 M 0 4 0 Z
. En la tabla
smplex inicial, el valor de
Z
es
0 Z
. Con el fin de volver consistente la tabla smplex es
preciso anular los coeficientes de
1
R y
2
R en la funcin objetivo.
Inicialmente anulamos el coeficiente de
1
R multiplicando la fila 1 por M y sumando este
resultado a la fila 0 :
In[13]:= T1 = sumar[T0,1,-M,0];
Out[13] =
Enseguida anulamos el coeficiente de
2
R multiplicando la fila 3 de la tabla T1 por M y
sumndola a la fila 0 :
UNIVERSIDAD DE MANIZALES
116
In[14]:= T2 = sumar[T1,3,-M,0];
Out[14] =
En este momento la tabla smplex es consistente. Por lo tanto, podemos empezar a aplicar el
algoritmo smplex, para lo cual usamos el comando buscar :
In[15]:= T3 = buscar[T2];
Out[15] =
Sale R1; Entra x2. Aplique : iterar[%#salida,1,2]
In[16]:= T4 = iterar[T3,1,2];
Out[16] =
Sale S1; Entra Y1. Aplique : iterar[%#salida,2,6]
INTRODUCCIN A LA PROGRAMACIN LINEAL
117
In[17]: = T5 = iterar[T4,2,6];
Out[17] =
CONCLUSION : El problema carece de solucin factible, por cuanto una de las variables
artificiales (R2) es bsica y toma un valor positivo en la tabla smplex final.
4.2.2. PROBLEMAS NO ACOTADOS
EJEMPLO VII ( Problema cuya funcin objetivo es no acotada ).
Minimizar :
2 1
x 4 x 3 W
Sujeta a :

'

+


0 x , x
6 x x
1 x 6 x
2 x 2 x
2 1
2 1
2 1
2 1
SOLUCION.
Al observar las restricciones podemos apreciar que si 0 x
1
y
2
x toma cualquier valor
positivo
6
, entonces
2
x 4 W decrece sin lmite y no se viola ninguna de las restricciones.
Por lo tanto, si 0 x
1
y
2
x es suficientemente grande, entonces
W
es suficientemente
grande y toma valor negativo. Geomtricamente, este hecho se ilustra como sigue :
UNIVERSIDAD DE MANIZALES
118
Matemticamente,
2
x 4 W cuando 0 x
1
y
2
x . Esto nos dice que la
funcin objetivo es no acotada en la direccin de
2
x . Por lo tanto,
- W Min
.
Veamos que la funcin es no acotada por medio del algoritmo smplex :
In[17]:= T0 = Smplex[Min,3x1-4x2,{x1-2x2<=2,x1-6x2<=1,x1+x2>=6}];
Out[17] =
Problema Original :
Minimizar : W = 3x1-4x2
Sujeta a :
x1-2x2<=2
x1-6x2<=1
x1 +x2>=6
INTRODUCCIN A LA PROGRAMACIN LINEAL
119
Forma Estndar del problema :
Maximizar : Z=-3x1+4x2-M*R1
Sujeta a :
x1-2x2+S1 ==2
x1-6x2 +S2 ==1
x1 +x2 -Y1+R1==6
Tipos de variables :
Variables Originales = {x1,x2}
Variables de Holgura = {S1,S2}
Variables Artificiales = {R1}
Variables de Supervit = {Y1}
Variables Bsicas = {S1,S2,R1}
Tabla Smplex inicial :
UNIVERSIDAD DE MANIZALES
120
Enseguida volvemos consistente la ltima tabla smplex :
In[18]:= T1 =sumar[T0,3,-M,0];
Out[18] =
En este momento procedemos a aplicar el algoritmo smplex :
In[19]:= T2 =buscar[T1];
Out[19] =
Sale R1; Entra x2. Aplique: iterar[%#salida,3,2]
In[20]:= T3 =iterar[T2,3,2];
Out[20] =
INTRODUCCIN A LA PROGRAMACIN LINEAL
121
CONCLUSION : LA FUNCION OBJETIVO ES NO ACOTADA.
El programa obtiene como conclusin que la funcin objetivo es no acotada. El criterio para
determinar la no acotabilidad de una funcin objetivo es que en la tabla smplex inicial ( que
sea consistente) o en determinada iteracin todos los coeficientes de alguna variable sean
menores o iguales a cero.
En el ejemplo que estamos trabajando, podemos observar que todos los coeficientes de la
variable Y1 (que se ubica en la columna 6 de la ltima tabla smplex) son negativos. De ah la
no acotabilidad de nuestra funcin objetivo.
4.2.3. PROBLEMAS CON SOLUCIONES PTIMAS ALTERNATIVAS
EJEMPLO VIII ( Optimos alternativos )
Maximizar :
3 2 1
x 25 x 12 x 20 W + +
Sujeta a :

'

+ +
0 x , 0 x , 0 x
1 x
1 x
1 x
4
47
x
4
25
x 3 x 5
3 2 1
3
2
1
3 2 1
UNIVERSIDAD DE MANIZALES
122
SOLUCION.
In[21]:= T0 =Smplex[Max,20x1+12x2+25x3,
{5x1+3x2+25/4*x3<=47/4,x1<=1,x2<=1,x3<=1}];
Out[21] =
Problema Original :
Maximizar W = 20x1+12x2+25x3
Sujeta a :
5x1+3x2+25x3/4<=47/4
x1<=1
x2<=2
x3<=3
Forma Estndar del problema :
Maximizar Z= 20x1+12x2+25x3
Sujeta a :
5 x1+3 x2+25/4 x3+S1 == 47/4
x1 +S2 == 1
x2 +S3 == 1
x3 +S4 == 1
INTRODUCCIN A LA PROGRAMACIN LINEAL
123
Tipos de Variables :
Variables Originales = {x1,x2,x3}
Variables de Holgura = {S1,S2,S3,S4}
Variables Bsicas = {S1,S2,S3,S4}
Tabla Smplex Inicial :
In[22]:= T1=buscar[T0];
Out[22]=
Sale S4; Entra x3. Aplique : iterar[%#salida,4,3]
UNIVERSIDAD DE MANIZALES
124
In[23]:= T2=iterar[T1,4,3];
Out[23] =
Sale S3; Entra x1. Aplique : iterar[%#salida,2,1]
In[24]:= T3 = iterar[T2,2,1];
Out[24] =
Sale S3; Entra x2. Aplique : iterar[%#salida,1,2]
In[25]:= T4 = iterar[T3,1,2];
Out[25] =
INTRODUCCIN A LA PROGRAMACIN LINEAL
125
CONCLUSION:
Solucin Optima :
Existen ptimos alternativos. Para obtenerlos, aplique sucesivamente :
OptAlt[%#salida,3,5]; OptAlt[%#salida,3,7]
In[26]:= T5 = OptAlt[T4,3,5];
Out[26] =
In[27]:= T6 = OptAlt[T4,3,7];
Out[27] =
UNIVERSIDAD DE MANIZALES
126
Lo anterior corresponde al resultado del programa al interactuar con el usuario. Observemos
la tabla T4 del ltimo ejemplo. Al observar las variables no bsicas S1,S2 y S4, vemos que
dos de ellas tienen coeficiente cero en la funcin objetivo. Esto significa que cualquiera de
ellas puede entrar en una nueva solucin bsica sin cambiar el valor de Z pero ocasionando
un cambio en los valores de las variables. La tabla T5 es el resultado de aplicar una iteracin
del mtodo smplex, escogiendo como pivote el elemento que se encuentra en la intersecciin
dela fila 3 y la columna 5 de la tabla T4, es decir, sale S3 y entra S2. En esta iteracin, se
escogi la variable S2 como la variable que entra por tener coeficiente cero en la columna
5 y para determinar que S3 es la variable que sale de la solucin bsica se ha aplicado el
criterio del cociente no negativo mnimo.
Esta iteracin nos proporciona una nueva solucin bsica ptima :
1 x , 1 x ,
2
1
x , 47 Z
3 2 1

.
De manera anloga, a partir de la tabla T4 se obtiene la tabla T6, en donde ha entrado S4 y
ha salido S3. La tabla T6 nos proporciona una nueva solucin ptima :
5
3
x , 1 x , 1 x , 47 Z
3 2 1

.
De esta manera, a partir de la tabla T4, la cual nos proporciona la solucin ptima
1 x ,
6
1
x , 1 x , 47 Z
3 2 1

,
se obtienen dos soluciones ptimas adicionales, dadas por las tablas T5 y T6. Estas solucio-
nes constituyen ptimos alternativos.
INTRODUCCIN A LA PROGRAMACIN LINEAL
127
Geomtricamente, estos ptimos alternativos se interpretan como sigue: Las lneas de nivel
de la funcin objetivo vienen dadas por ecuaciones de la forma
c x 25 x 12 x 20
3 2 1
+ + ,
en donde c es una constante. Las grficas de estas ecuaciones en el espacio tridimensional
3 2 1
x x x representan una familia de planos mutuamente paralelos. La funcin objetivo crece
en la direccin del vector ) 25 , 12 , 20 ( v , cuyas coordenadas son los coeficientes de
1
x ,
2
x y
3
x en la funcin objetivo, respectivamente. Entonces, al aumentar el valor de c ,
estamos moviendo el plano c x 25 x 12 x 20
3 2 1
+ + en la direccin del vector v .
De otro lado, la grfica de la regin factible, dada por las restricciones

'

+ +
0 x , 0 x , 0 x
1 x
1 x
1 x
4
47
x
4
25
x 3 x 5
3 2 1
3
2
1
3 2 1
es un cubo con uno de sus vrtices cortado en forma de tringulo. En un momento dado
uno de los planos coincide en parte con la superficie del tringulo. Cada uno de los vrtices

,
_

1 ,
6
1
, 1 P
,

,
_

1 1, ,
2
1
Q
y

,
_

5
3
1, , 1 R
del tringulo PQR representa una solucin
ptima para nuestro problema. Cabe anotar que cualquier punto
X
que se encuentre sobre
la superficie del tringulo tambin representa una solucin ptima para nuestro problema.
UNIVERSIDAD DE MANIZALES
128
La expresin general para
X
es
R ) 1 )( 1 ( Q ) 1 ( P X + +
( ) ( )
,
_

+ +

1
5
2
5
2
5
3
,
6
5
- 1 , 1
2
1
,
en donde
1 0
y
1 0
. En otras palabras, si
( )

1
2
1 x
1
,
6
5
1 x
2


y
( )

+ + 1
5
2
5
2
5
3
x
3
,
entonces 47 x 25 x 12 x 20 W
3 2 1
+ + .
El punto
P
se obtiene cuando
1
cualquiera que sea . El punto Q resulta al tomar y
0
. Finalmente,
R
se obtiene al hacer
0
y
0
.
De esta manera, el tringulo PQR y su superficie constituyen un conjunto de ptimos
alternativos.
En la siguiente grfica se ilustra lo anteriormente comentado:
INTRODUCCIN A LA PROGRAMACIN LINEAL
129
Ahora examinemos la ruta del algoritmo smplex : Las tablas T1, T2, T3 y T4 nos proporcionan
la siguiente sucesin de soluciones bsicas :
( ) ( ) ( ) ( )
43 42 1 43 42 1 43 42 1 43 42 1
4 3 2 1 T T T T
1 , 1/6 , 1 P 1 , 0 , 1 N 1 , 0 , 0 M 0 , 0 , 0 O
.
Esta sucesin corresponde a vrtices consecutivos de la regin factible (cubo) como se
ilustra a continuacin :
UNIVERSIDAD DE MANIZALES
130
ANEXO
CDIGO DEL PROGRAMA QUE REALIZA EL ALGORITMO SMPLEX
EN EL LENGUAJE DE MATHEMATICA
<<LinearAlgebraMatrixManipulatuions;
Mat[ecu_,Var_]:=Module[{coe,ind},
{coe[e_,v_]:=Map[Coefficient[e[[1]]-e[[2]],#]&,v],
i n d [ e _ , v _ ] : = ( - e [ [ 1 ] ] + e [ [ 2 ] ] ) / . A r r a y [ v [ [ # ] ] -
>0&,Length[v]]};
Map[Flatten[{coe[#,Var],ind[#,Var]}]&,ecu]];
ver0[Mat1_,Var_,Bas_]:=
Module[{SOLBA,pr,Mat,b,nv,MR,fila1,fila2,fila3,fila4,
fila5,Res},
{SetOptions[$Output,PageWidth->Infinity];
SOLBA[TT_]:=Module[{Art,Vorig,nn,k,zna,zna1,vb},
{Art=Select[Var,Level[#,{-1}][[1]]===R&],
Vorig=Select[Var,Not[Level[#,{-1}][[1]]===R||
Level[#,{-1}][[1]]===S||Level[#,{-1}][[1]]===Y]&],
nn=Delete[Var,Map[{#}&,
Flatten[Map[Position[Var,#]&,Bas]]]],
k=Length[nn],zna1=Flatten[TakeColumns[TT,{-1,-1}]],
INTRODUCCIN A LA PROGRAMACIN LINEAL
131
zna=Drop[zna1,1],vb=Inner[Rule,Bas,zna,List]};
Join[{Z->First[zna1]},vb]];
pr[uu_]:=uu,
Mat=Module[{f1,posli,f2},
{f1=Map[pr,Drop[Mat1[[1]],-1]],
posli=Last[Mat1[[1]]],f2=Insert[f1,posli,-1]};
ReplaceHeldPart[Mat1,f2,1]],
b=Length[Bas],nv=Length[Var],MR=Delete[Mat,1],
fila1=Flatten[Join[Insert[Var,{Vb.,|,#,|},1],
{|,Sol.,|,}]],
fila2=Join[{,|,,},Array[#&,nv],{,,,}],
fila3=Insert[Array[__&,nv+7],,-1],
fila4=Flatten[Join[Insert[
Flatten[Insert[
Mat[[1]],{Z,|,0",|},1]],|,-2],{|,Coc.}]],
fila5=Array[__&,nv+8],
demfi[ii_]:=Module[{ff},
{ff=Join[Insert[Join[{Bas[[ii]],|,ii,|},
MR[[ii]]],|,-2],{|,h[ii]}]};ff],
Res=Transpose[Drop[Transpose[Join[{fila1,fila2,fila3,
fila4,fila5},
Table[demfi[i],{i,1,Length[Bas]}]]],-2]];
Print[TableForm[Res,
TableAlignments->{Center,Center},
TableSpacing->{0,2}]];Print[];
Print[Valores de las variables bsicas:];
Print[SOLBA[Mat1]];};{{},{Mat,Var,Bas}}];
UNIVERSIDAD DE MANIZALES
132
ver[MM3_]:=ver0[MM3,Var,Bas];
sim[Mat1_,Var_,Bas_,Cocientes_]:=
Module[{pr,Mat,b,nv,MR,fila1,fila2,fila3,fila4,fila5},
{SetOptions[TableForm,TableAlignments->{Center,Center},
TableSpacing->{0,2}];
pr[uu_]:=uu,
Mat=Module[{f1,posli,f2},
{f1=Map[pr,Drop[Mat1[[1]],-1]],posli=Last[Mat1[[1]]],
f2=Insert[f1,posli,-1]};
ReplaceHeldPart[Mat1,f2,1]],
b=Length[Bas],nv=Length[Var],MR=Delete[Mat,1],
fila1=Flatten[Join[Insert[Var,
{Vb.,|,#,|},1],{|,Sol.,|,}]],
fila2=Insert[Array[__&,nv+7],,-1],
fila3=Flatten[Join[Insert[
Flatten[Insert[Mat[[1]],
{Z,|,,|},1]],|,-2],{|,Coc.}]],
fila4=Join[{,|,0",},Array[#&,nv],{,,,}],
fila5=Array[__&,nv+8],
demfi[ii_]:=Module[{ff},
{ff=Join[Insert[Join[{Bas[[ii]],|,ii,|},MR[[ii]]],
|,-2],{|,Cocientes[[ii]]}]};ff]};
Join[{fila1,fila2,fila3,fila4,fila5},
Table[demfi[i],{i,1,Length[Bas]}]]
](*El programa sim es auxiliar para las funciones
buscar e iterar.*);
INTRODUCCIN A LA PROGRAMACIN LINEAL
133
Hallmin[L_,MM_]:=Module[{L1,men1,L2,L3},
{L1=Map[Coefficient[Expand[#],MM]&,L],
men1=Flatten[Position[L1,Min[L1]]],
L2=L[[men1]],L3=Sort[L2,
Coefficient[#1,MM,0]<=Coefficient[#2,MM,0]&]};
First[L3]],
fila1=Drop[MA[[1]],-1],Clear[M];
polnieb=Flatten[Map[Position[Var,#]&,
Complement[Var1,Bas1]]],menor=Hallmin[fila1,M],
cM=Coefficient[Expand[menor],M],
cL=Coefficient[Expand[menor],M,0],
ncol=Flatten[Position[fila1,menor]][[1]],
ulc=Drop[Last[Transpose[MA]],1],
coi=Drop[Transpose[MA][[ncol]],1],
decidir=If[cM>0||cM===0&&cL>=0||Max[coi]<=0,{},menor],
crit[{a_,b_}]:=If[N[b]<0||N[a]<=0,*,N[b/a]],
otnosh=Map[crit[#]&,Inner[List,coi,ulc,List]]/.
{*->Infinity},
nfil=If[decidir==={}||Max[coi]<=0,{},
Flatten[Position[otnosh,Min[otnosh]]][[1]]],};
Which[decidir==={}&&posib==={},
{{},ver0[MA,Var1,Bas1];Otviet0[MA,Var1,Bas1];
{MA,Var1,Bas1}},
Not[decidir==={}]&&posib==={},
Print[TableForm[intro[sim[MA,Var1,Bas1,
otnosh/.{Infinity->*}],
nfil+5,ncol+4]]];
UNIVERSIDAD DE MANIZALES
134
Print[SequenceForm[Sale , Bas1[[nfil]],
; Entra ,Var1[[ncol]],
. Aplique: ,iterar,[%#salida,,
nfil,,,ncol,]]];{{nfil,ncol},{MA,Var1,Bas1}},
decidir==={}&&Not[posib==={}],
{{},ver0[MA,Var1,Bas1];
{MA,Var1,Bas1}}]];
buscar[LL_]:=Apply[buscar0,LL[[2]]];
iterar0[NN1_,Var1_,Bas1_,i1_,j1_,posib_:{}]:=
Module[{pr,NN,nuevas,uno,nuli},
{SetOptions[$Output,PageWidth->Infinity];
SetOptions[TableForm,TableAlignments->{Center,Center},
TableSpacing->{0,2}];pr[uu_]:=uu,
NN=Module[{f1,posli,f2},
{f1=Map[pr,Drop[NN1[[1]],-1]],posli=Last[NN1[[1]]],
f2=Insert[f1,posli,-1]};
ReplaceHeldPart[NN1,f2,1]],
nuevas=ReplaceHeldPart[Bas1,Hold[Var1[[j1]]],i1],
uno[i_,j_,A_]:=Module[{fn,A1},
{fn=If[A[[i,j]]===0,A[[i]],1/A[[i,j]]*A[[i]]],
A1=ReplaceHeldPart[A,Hold[fn],i]};
Chop[A1,10^-15]],
nuli[i_,j_,A_]:=Module[{a1,f1,A1,A2},
{a1=A[[i,j]],f1[s_]:=-A[[s,j]]*A[[i]]+a1*A[[s]],
A1[1]:=If[i===1,A,ReplaceHeldPart[A,Hold[f1[1]],1]],
INTRODUCCIN A LA PROGRAMACIN LINEAL
135
A1[kk_]:=A1[kk]=If[kk===i,A1[kk-1],
ReplaceHeldPart[A1[kk-1],Hold[f1[kk]],kk]],
A2=A1[Length[A]]};
Chop[A2,10^-15]];
V1=uno[i1+1,j1,NN],
V2=Map[Expand[#]&,nuli[i1+1,j1,V1],Infinity]};
buscar0[V2,Var1,nuevas,posib]];
iterar[LL_,ii_,jj_]:=iterar0[LL[[2]][[1]],LL[[2]][[2]],
LL[[2]][[3]],ii,jj];
OptAlt[LL_,ii_,jj_,posib_:{{}}]:=iterar0[LL[[2]][[1]],LL[[2]][[2]],LL[[2]][[3]],ii,jj,posib];
sumar0[A0_,Var_,Bas_,i1_,k1_,j1_]:=
Module[{i,j,m1,n1,f1,f2,A1,A2},
{SetOptions[TableForm,TableAlignments-
>{Center,Center},
TableSpacing->{0,2}];
SetOptions[$Output,PageWidth->Infinity];
i=i1+1,j=j1+1,f1=k1*A0[[i]],f2=f1+A0[[j]],
A1=ReplaceHeldPart[A0,Hold[f2],j],
ver0[Chop[A1,10^-15],Var,Bas]};
{{},{A1,Var,Bas}}];
sumar[A0_,i1_,k1_,j1_]:=sumar0[A0[[2]][[1]],
A0[[2]][[2]],A0[[2]][[3]],i1,k1,j1];
UNIVERSIDAD DE MANIZALES
136
Otviet0[M1_,Var_,Bas_]:=Module[
{Art,Vorig,polnieb,pobap,colni,crit,cociente,alt1,
alt,Hallmin,SOLBA,stroka,fila1,pequ,naim,col,stolb,
ulc,nec1},
{Art=Select[Var,Level[#,{-1}][[1]]===R&],
Vorig=Select[Var,Not[Level[#,{-1}][[1]]===R||
Level[#,{-1}][[1]]===S||Level[#,{-1}][[1]]===Y]&],
polnieb=Flatten[Map[Position[Var,#]&,
Complement[Var,Bas]]],pobap=Module[{c2,i3,i4},
{c2=Drop[Last[Transpose[M1]],1],i3=Select[c2,#>0&],
i4=Union[Flatten[Map[Position[c2,#]&,i3]]]};i4],
colni=Module[{Mt,xx},
{Mt=Transpose[M1],
xx[JJ_]:=First[JJ]};
Select[Map[{#,Mt[[#]]}&,
polnieb],Max[#[[2]]]>0&&xx[#[[2]]]===0&]],
crit[{a_,b_}]:=If[N[b]>0&&N[a]>0,b/a,Infinity],
cociente[col_,ul_]:=Module[{col1,ul1,coc,ii,jj},
{col1=Drop[col[[2]],1],ul1=Drop[ul,1],
coc=Map[crit[#]&,Inner[List,col1,ul1,List]],
ii=Flatten[Position[coc,Min[coc]]][[1]],
jj=col[[1]]};
If[Min[coc]===Infinity||colni===
}||ii==={},
{},{ii,jj}]],
alt1=Module[{L1},
{L1=Map[cociente[#,Last[Transpose[M1]]]&,colni]};
INTRODUCCIN A LA PROGRAMACIN LINEAL
137
If[Select[L1,Not[#==={}]&]==={},{},
Select[L1,Not[#==={}]&]]],
alt=If[alt1==={},{},alt1[[1]]],
Hallmin[L_,MM_]:=Module[{L1,men1,L2,L3},
{L1=Map[Coefficient[Expand[#],MM]&,L],
men1=Flatten[Position[L1,Min[L1]]],
L2=L[[men1]],
L3=Sort[L2,Coefficient[#1,MM,0]<=
Coefficient[#2,MM,0]&]};First[L3]];
SOLBA[TT_]:=Module[{Art,Vorig,int,nn,k,zna,
zna1,vb1,vno,vor,vb,sust},
{Art=Select[Var,Level[#,{-1}][[1]]===R&],
Vorig=Select[Var,Not[Level[#,{-1}][[1]]===R||
Level[#,{-1}][[1]]===S||Level[#,{-1}][[1]]===Y]&],
int=Intersection[Bas,Art],
nn=Delete[Var,Map[{#}&,
Flatten[Map[Position[Var,#]&,Bas]]]],
k=Length[nn],
zna1=Flatten[TakeColumns[TT,{-1,-1}]],
zna=Drop[zna1,1],vb1=Select[Inner[List,Bas,zna,List],
Not[Intersection[#,Vorig]==={}]&],
vno=Map[{#,0}&,Complement[Vorig,Map[#[[1]]&,vb1]]],
vor=Map[#/.{List->Rule}&,Union[vb1,vno]],
vb=Inner[Rule,Bas,zna,List],
sust=Module[{uu1,uu2},
UNIVERSIDAD DE MANIZALES
138
{uu1=Select[Inner[List,Bas,zna,List],
Not[Intersection[#,int]==={}]&],
uu2=Select[uu1,#[[2]]>0&]};uu2]};
If[sust==={},
Join[{Z->First[zna1]},vor],
Join[{{}
,{Z->First[zna1]},vor]]];
stroka=M1[[1]],fila1=stroka[[polnieb]],
pequ=Hallmin[fila1,M],naim=Limit[pequ,M->Infinity],
col=Flatten[Position[stroka,pequ]][[1]],
stolb=Drop[Transpose[M1][[col]],1],
ulc=Last[Transpose[M1]],
nec1=(Hallmin[Drop[ulc,1],M]/.{M->1})>=0};
If[Not[nec1],Print[Tabla incorrecta, puesto que en
la ltima columna\nhay nmeros negativos.],
Which[naim>0&&Not[SOLBA[M1][[1]]==={}],
Print[];Print[CONCLUSION :];
Print[Solucin ptima :];
Print[SOLBA[M1]],
naim>0&&SOLBA[M1][[1]]==={}||SOLBA[M1][[1]]==={},
Print[];Print[CONCLUSION :];
Print[El problema carece de solucin factible\npor
cuanto una de las variables artificiales es bsica\ny
toma un valor positivo en la tabla smplex final.],
naim===0&&alt==={},
Print[];Print[CONCLUSION :];
INTRODUCCIN A LA PROGRAMACIN LINEAL
139
Print[Solucin ptima :];
Print[SOLBA[M1]],
naim===0&&Not[alt==={}],
Print[];Print[CONCLUSION :];
Print[Solucin ptima :];
Print[SOLBA[M1]];
If[Length[alt1]===1,
Print[Existe un ptimo alternativo.];
Print[SequenceForm[Para obtenerlo, aplique :,
Map[SequenceForm[OptAlt[,% #salida,,#[[1]],,,
#[[2]],]]&,
alt1]]],
Print[Existen ptimos alternativos.];
Print[Para obtenerlos,
aplique sucesivamente:];
Print[TableForm[Map[SequenceForm[OptAlt[,%#salida,,#[[1]],,,
#[[2]],]]&,
alt1]]];
Print[]],
naim<0&&Max[stolb]<=0,
Print[];Print[CONCLUSION :];
Print[LA FUNCION OBJETIVO ES NO ACOTADA.]]]];
Otviet[M2_]:=Otviet0[M2[[2]][[1]],M2[[2]][[2]],
M2[[2]][[3]]];
UNIVERSIDAD DE MANIZALES
140
Smplex[prob_,obj_,res_]:=Module[
{transf,L,L1,k1,L2,k2,L3,k3,W1,W2,W3,W4,W,BASRESH,
coefob,pierem,Art,holgura,supervit,Vorig,Bas,Var,uravniniya,AA,mensaje,imprima},
{Clear[s,R,y,M],
transf[expr_,uu_,vv_,ii_]:=Append[ReplaceHeldPart[expr,
Hold[expr[[ii]]+uu],ii],vv],
L=Map[{Expand[#[[1]]],Head[#],#[[2]],Flatten[Position[res,#]][[1]]}&,res],
L1=Select[L,MemberQ[#,LessEqual]&],k1=Length[L1],
L2=Select[L,MemberQ[#,GreaterEqual]&],k2=Length[L2],
L3=Select[L,MemberQ[#,Equal]&],k3=Length[L3],
W1=If[k1===0,{},
Array[transf[L1[[#]],SequenceForm[S,#],
SequenceForm[S,#],1]&,k1]//.{LessEqual->Equal}],
W2=If[k2===0,{},
Array[transf[L2[[#]],-SequenceForm[Y,#]+
SequenceForm[R,#],SequenceForm[R,#],1]&,k2]
//.{GreaterEqual->Equal}],
W3=If[k3===0,{},
Array[transf[L3[[#]],
SequenceForm[R,k2+#],SequenceForm[R,k2+#],1]&,k3]],
W4=Sort[Join[W1,W2,W3],#1[[4]]<=#2[[4]]&],
W=Map[Equal[#[[1]],#[[3]]]&,W4],
BASRESH=Map[{#[[5]],#[[3]]}&,W4],
coefob=Complement[Level[obj,{-1}],
Select[Level[obj,{-1}],NumberQ[N[#]]&]];
pierem=Level[W,{-1}],
INTRODUCCIN A LA PROGRAMACIN LINEAL
141
Art=Array[SequenceForm[R,#]&,Count[pierem,R]],
holgura=Array[SequenceForm[S,#]&,Count[pierem,S]],
supervit=Array[SequenceForm[Y,#]&,Count[pierem,Y]],
Vorig=Union[ coefob,Complement[pierem,
Union[{R,S,Y},Select[pierem,NumberQ[N[#]]&]]]],
Bas=Map[#[[1]]&,BASRESH],
Var=Union[Join[
coefob,Vorig,supervit,holgura,Art]],
uravniniya=Which[prob===Max,
Prepend[W,-obj+Apply[Plus,M*Art]==0],
prob===Min,Prepend[W,obj+Apply[Plus,M*Art]==0],True,{}],
AA=Mat[uravniniya,Var],
mensaje={{Variables Originales =,Vorig},
{Variables de Holgura =,holgura},
{Variables Artificiales =,Art},
{Variables de Supervit =,supervit},
{Variables Bsicas =,Bas}},
imprima=Delete[mensaje,
Map[Flatten,Map[Position[mensaje,#]&,
Select[mensaje,#[[2]]==={}&]]]]};
Print[Problema Original :];Print[];
Which[prob===Max,
Print[Maximizar :];Print[];
Print[SequenceForm[W ,= ,obj]],
prob===Min,
Print[Minimizar :];Print[];
Print[SequenceForm[W ,= ,obj]]];Print[];
UNIVERSIDAD DE MANIZALES
142
Print[Sujeta a :];Print[];
Print[TableForm[res]];Print[];
Print[Forma Estndar del problema :];Print[];
Print[Maximizar :];Print[];
Which[prob===Max,
Print[SequenceForm[Z =,obj-Apply[Plus,M*Art]]],
prob===Min,
Print[SequenceForm[Z =,-obj-Apply[Plus,M*Art]]],
True,{}];Print[];
Print[Sujeta a :];Print[];
Print[TableForm[W]];Print[];
Print[Tipos de Variables : ];Print[];
Print[TableForm[Map[Apply[SequenceForm,#]&,imprima]]];
Print[];
Print[Tabla Smplex inicial:];Print[];
ver0[AA,Var,Bas]];
INTRODUCCIN A LA PROGRAMACIN LINEAL
143
SOLUCION A LOS PROBLEMAS PROPUESTOS
CAPITULO I
1.1. Z es no acotado. Esto significa que la cantidad de dinero a obtener al final del ao 5 es
no acotada (crece ilimitadamente), lo cual implica que las condiciones del problema no se
ajustan a la realidad. Deben imponerse otras restricciones.
1.2. El nmero ptimo de libros a empastar en cartn duro es de 200 y encolado 0. La
mxima utilidad obtenida ser entonces de 800.000 pesos.
1.3. El nmero ptimo de meseras (mnimo) que permite cumplir los requisitos del restaurante
para atender a sus clientes es de 27. Estas personas se han de distribuir de la siguiente
manera:
4 meseras que comienzan el turno a las 2 a.m.
11 meseras que comienzan el turno a las 6 a.m.
8 meseras que comienzan el turno a las 14 (2 p.m.)
4 meseras que comienzan el turno a las 18 (6 p.m..)
1.4. El nmero de onzas a mezclar de cada tipo de alimento para optimizar el costo (minimizarlo)
y satisfacer los requerimientos diarios mnimos de proteinas, carbohidratos y grasas de los
Hamster es:
1.88889 onzas de alimento y, 1.18519 onzas de alimento IV.Los alimentos II y III no se
utilizan en la mezcla.El costo mnimo en estas condiciones es 11.11 centavos.
1.5. La persona que hered los 6000 dlares debe invertir 5000 dlares en el plan de inver-
UNIVERSIDAD DE MANIZALES
144
sin que le propone el primer amigo y 400 horas de trabajo con lo que obtendr una utilidad
mxima de 4500 dlares.En el segundo plan no debe invertir.
1.6. La compaa manufacturera debe producir 20 unidades del producto 1, 62.5 unidades
del producto 2 y ninguna unidad del producto 3. La utilidad mxima obtenida es de 2250
pesos.
CAPITULO II
2.1. La pequea firma debe correr el proceso 1 durante 33.333 horas y el proceso 2 durante
16.6667 horas para combinar cada uno de los dos productos: fluido para marcha y fluido
para encendedor, con lo que obtendr una utilidad mxima de 533,333 dlares.
2.2.
a) Z
*
=Z
max
=20 con x
*
1
=2 y x
*
2
=3.5
b)
56 Z Z
min

con
4444 . 0 x
1

y
77778 . 5 x
2

.
c) Z
*
=Z
min
=12.727272 con x
*
1
=1.0909 y x
*
2
=3.6363
2.3. Para la dieta deben comprarse 5 libras del alimento F1 y 1 libra del alimento F2 con lo
que se obtendr el costo mnimo de 7.8 pesos y a la vez se satisfacen los requerimientos
mnimos de vitaminas en la dieta.
2.8. Para pintar la casa cumpliendo los requisitos exigidos a un mnimo costo el propietario
debe comprar slo 0.7 galones de pintura I, obteniendo un costo mnimo de 4.2 dlares. No
hay necesidad de mezclar.
2.9. La empresa debe contratar slo 4 anuncios en TV a la semana, lo cual agota su presu-
puesto mximo de 16.000 dlares y logra maximizar el nmero posible de clientes potencia-
les.
INTRODUCCIN A LA PROGRAMACIN LINEAL
145
CAPITULO III
3.3.
8235 . 1 Z Z
max

con
47059 . 0 x
1

y
35294 . 1 x
2

.
3.4. Z
*
=Z
max
=5 con x
*
1
=2 , x
*
2
=0 y x
*
3
=1
3.5.
4 Z Z
max

con
0 x x
3 1


,
2 x
2

.
3.6. Z
*
=Z
min
=8 con x
*
1
=8 , x
*
2
=0
3.7. Z
*
=Z
min
= -46.6667 con x
*
1
=0 , x
*
2
=13.333 , x
*
3
=0 y x
*
4
=30
3.8. El plan ptimo de inversin del milln de pesos con el fin de maximizar la suma a recibir
al final del ao 3 es: Invertir al inicio del primer ao 1000.000 de pesos en el plan A e
invertir al comienzo del segundo ao $ 1700.000 en el plan B. En las dems fechas no
se debe invertir en ninguno de los dos planes. Con lo anterior se logra obtener al final del
ao 3 un mximo de $ 5100.000.
UNIVERSIDAD DE MANIZALES
146
INTRODUCCIN A LA PROGRAMACIN LINEAL
147
BIBLIOGRAFIA
[1] Taha, Hamdy A. Investigacin de Operaciones. Alfaomega, Segunda Edicin.
[2] Davis K. Roscoe / Mc Keown Patrick G. Modelos Cuantitativos para Administracin.
Grupo Editorial Iberoamrica.
[3] Hillier F.S., Lieberman G.J. Introduccin a la Investigacin de Operaciones. Quinta
Edicin, Editorial Mc Graw Hill, 1991.
[4] Varela, Jaime E. Introduccin a la Investigacin de Operaciones. Fondo Educativo
Interamericano.
[5] G.D. Eppen, F.J. Gould. Investigacin de Operaciones en la Ciencia Administrativa.
Prentice Hall Hispanoamericana S.A.
[6] Alpha C., Chiang. Mtodos Fundamentales de Economa Matemtica. 3a. Edicin,
Editorial McGraw Hill.
[7] Bronson, Richard. Investigacin de Operaciones. Teora y 310 Problemas Resueltos.
Serie Schaum, Editorial McGraw Hill.
[8] Wolfram, Stephen. Mathematica. A system for doing mathematics by computer. Second
Edition, Addison Wesley, 1992.
UNIVERSIDAD DE MANIZALES
148

Das könnte Ihnen auch gefallen