Documentos de Académico
Documentos de Profesional
Documentos de Cultura
10 de Septiembre de 2002
2
ndice General
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
I TEORA 11
1 Introduccin a la teora de optimizacin 13
1.1 Orgenes y desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.1.1 Orgenes de la Investigacin operativa . . . . . . . . . . . . . 14
1.1.2 La Teora de Juegos . . . . . . . . . . . . . . . . . . . . . . . 16
1.1.3 La Programacin Lineal . . . . . . . . . . . . . . . . . . . . . 16
1.1.4 La Investigacin Operativa . . . . . . . . . . . . . . . . . . . 17
1.2 Modelizacin de un problema de P. L. . . . . . . . . . . . . . . . . . 18
1.2.1 Formulacin de los modelos . . . . . . . . . . . . . . . . . . . 19
1.3 Modelizacin de diversos problemas de I.O. . . . . . . . . . . . . . . 20
1.4 Modelos de programacin matemtica . . . . . . . . . . . . . . . . . 25
1.5 El mtodo geomtrico . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.5.1 Descripcin del mtodo geomtrico . . . . . . . . . . . . . . . 28
1.5.2 Resumen del mtodo geomtrico . . . . . . . . . . . . . . . . 32
2 Programacin Lineal 33
2.1 Modelo general de programacin lineal . . . . . . . . . . . . . . . . . 33
2.2 Nociones previas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.3 Definiciones sobre las soluciones de un problema . . . . . . . . . . . 39
2.4 Algunos resultados sobre las soluciones . . . . . . . . . . . . . . . . . 43
2.5 El algoritmo del Simplex . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.6 Algoritmo del Simplex en forma de tabla (max) . . . . . . . . . . . . 51
2.7 Algoritmo del Simplex en forma de tabla (min) . . . . . . . . . . . . 55
2.8 Bsqueda de soluciones iniciales . . . . . . . . . . . . . . . . . . . . . 57
2.8.1 Mtodo de las Penalizaciones . . . . . . . . . . . . . . . . . . 62
2.9 Algoritmo del Simplex en forma matricial . . . . . . . . . . . . . . . 64
2.9.1 Mtodo del Simplex en forma matricial (caso maximizante) . 66
2.10 Adaptacin algebraica del algoritmo del Simplex . . . . . . . . . . . 67
2.10.1 Algoritmo del Simplex (enfoque algebraico) . . . . . . . . . . 68
2.10.2 Mtodo del Simplex en forma de tabla (Usando zj cj en la
ltima fila) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.11 Otros algoritmos de programacin lineal . . . . . . . . . . . . . . . . 76
2.11.1 Mtodo de las dos fases . . . . . . . . . . . . . . . . . . . . . 77
3
4 NDICE GENERAL
II EJERCICIOS 249
1 Introduccin a la optimizacin 251
1.1 Ejercicios Resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
1.2 Ejercicios Propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
1.3 Soluciones de los Ejercicios Propuestos . . . . . . . . . . . . . . . . . 275
BIBLIOGRAFA 499
INTRODUCCIN
Este libro est concebido con el propsito de cubrir los conceptos y tcnicas
bsicas de la Investigacin Operativa y pone el mayor nfasis en sus aplicaciones
a problemas reales. Los destinatarios de este texto son las personas, estudiantes o
profesionales, que se inicien en el estudio de las distintas tcnicas que la Investigacin
Operativa nos suministra para el estudio de los problemas de optimizacin que surgen
a diario en el mundo de la empresa y de la administracin, problemas que pretenden
dar el mximo rendimiento a los recursos disponibles y, por lo general, limitados.
Est especialmente diseado para alumnos de las Escuelas de Ingeniera o para
estudios de Ciencias Econmicas y Empresariales y es fruto de la experiencia de
los autores, ambos profesores de Estadstica e Investigacin Operativa de la Escuela
Superior de Ingeniera de la Universidad de Cdiz.
El libro est organizado en tres secciones:
Una primera parte terica donde se recogen sobre todo los conceptos fundamen-
tales y los algoritmos ms usuales en la resolucin de problemas de optimizacin,
ilustrando todos los aspectos mencionados con abundantes ejemplos. En los cuatro
primeros temas se trata la Programacin Lineal, la Dualidad en Programacin Li-
neal y los problemas de Sensibilidad del algoritmo de Simplex. Los siguientes temas
estn dedicados a algoritmos especiales de optimizacin, incluyndose el problema
de transporte, problemas de redes y programacin con variable entera o binaria. El
libro contiene tambin un captulo de Teora de Colas, as como otro que trata los
temas ms bsicos de las Tcnicas de Simulacin, incluyendo programas en Fortran
y en otros lenguajes de Programacin.
La segunda parte, dedicada a problemas sobre los temas tratados en la teora,
contiene una seccin de ejercicios totalmente resueltos y otra de ejercicios propuestos
con su solucin.
La tercera parte contiene diversos problemas realizados con el Programa LINGO
publicado por LINDO SYSTEMS. INC., incluyendo instrucciones de uso de los co-
mandos de este programa.
Esperamos que los lectores encuentren til este manual para el estudio y las
aplicaciones de la Investigacin Operativa y sean capaces de resolver los problemas
que se les planteen en este campo. De esta forma, veremos cumplido nuestro objetivo.
LOS AUTORES
9
Parte I
TEORA
11
Tema 1
Introduccin a la teora de
optimizacin
En los siglos XVII y XVIII, grandes matemticos como Newton, Leibnitz, Bernoulli
y, sobre todo, Lagrange, que tanto haban contribuido al desarrollo del clculo infini-
tesimal, se ocuparon de obtener mximos y mnimos condicionados de determinadas
funciones.
Posteriormente el matemtico francs Jean Baptiste-Joseph Fourier (1768-1830)
fue el primero en intuir, aunque de forma imprecisa, los mtodos de lo que actual-
mente llamamos programacin lineal y la potencialidad que de ellos se deriva.
Si exceptuamos al matemtico Gaspar Monge (1746-1818), quien en 1776 se in-
teres por problemas de este gnero, debemos remontarnos al ao 1939 para encon-
trar nuevos estudios relacionados con los mtodos de la actual programacin lineal.
En este ao, el matemtico ruso Leonodas Vitalyevich Kantarovitch publica una
extensa monografa titulada Mtodos matemticos de organizacin y planificacin
de la produccin en la que por primera vez se hace corresponder a una extensa gama
de problemas una teora matemtica precisa y bien definida llamada, hoy en da,
programacin lineal.
En 1941-1942 se formula por primera vez el problema de transporte, estudiado in-
dependientemente por Koopmans y Kantarovitch, razn por la cual se suele conocer
con el nombre de problema de Koopmans-Kantarovitch.
Tres aos ms tarde, G. Stigler plantea otro problema particular conocido con el
nombre de rgimen alimenticio optimal.
13
14 TEMA 1. INTRODUCCIN A LA TEORA DE OPTIMIZACIN
tiva que colabor con las empresas espaolas a introducir la Investigacin Operativa
en la resolucin de sus problemas. De esta forma, se reconoci la importancia de
esta materia, y como consecuencia se incorpor a los planes de estudio de facultades
y escuelas universitarias.
Destacamos asimismo a Sixto Ros que ha jugado un papel fundamental en el
campo de la Estadstica y la Investigacin Operativa en Espaa. Tambin se puede
destacar el gran nmero de discpulos de este profesor, incluidos sus propios hijos,
que han contribuido y contribuyen al desarrollo de la Estadstica y la Investigacin
Operativa en las universidades espaolas, aportando un gran nmero de trabajos y
publicaciones.
En el siglo XX se produce la aparicin de nuevas ramas de las matemticas, por
lo que es preciso resaltar algunos aspectos que la caracterizan:
Teora de Juegos.
La Programacin Lineal.
La Investigacin Operativa.
lgebra Computacional.
As como la Teora de la Probabilidad surgi del estudio de los juegos de azar y del
deseo de los jugadores profesionales de encontrar formas de mejorar sus ventajas,
la teora de juegos nace al intentar dar precisin a la nocin de comportamiento
racional". El estudio matemtico de los juegos ofrece la posibilidad de nuevas formas
de comprensin y precisin en el estudio de la Economa.
La Teora de Juegos utiliza herramientas bsicas de las matemticas, el Algebra,
en concreto las matrices, la probabilidad e incluso el teorema del punto fijo de
Brouwer para demostrar que existe un nico plan de accin estable" o racional
que representa la estrategia ptima. Actualmente se aplica en Economa y en la
Estrategia Militar.
gracias al desarrollo de los medios informticos que son los que posibilitan resolver
los problemas en la prctica, como gestin de grandes conjuntos econmicos, orga-
nizacin sistemtica de tareas complejas o controlar toda una red elctrica nacional.
Debido al xito de la Investigacin Operativa en el campo militar, los industria-
les recurrieron a sta para solucionar los problemas generados por la complejidad y
especializacin que iba en aumento dentro de sus organizaciones. En 1951, la Inves-
tigacin Operativa ya se haba introducido por completo en la industria britnica
y estaba en proceso de hacerlo en la estadounidense. Desde entonces, su desarrollo
ha sido muy rpido, en gran medida gracias a la ayuda del ordenador que, desde
el momento de su aparicin, queda irremediablemente unido a la Teora de la Pro-
babilidad, a la Estadstica y especialmente a la propia Investigacin Operativa y
aument enormemente las posibilidades de la Ciencia.
Segn Hillier y Lieberman (1991), en esencia la contribucin del enfoque de la
Investigacin Operativa proviene principalmente de:
Introduciremos las lneas generales del modelo de Programacin Lineal (P.L.) ilus-
trndolo con el siguiente ejemplo:
en la tabla siguiente:
A B C D
M 100 100 200
N 100 200 100
Un animal debe consumir diariamente al menos 0,4 Kg del componente A, 0,6 Kg del
componente B, 2 Kg. del componente C y 1,7 Kg. del componente D. El compuesto
M cuesta 20 pts/kg y el N 8 pts/kg. Qu cantidades de piensos M y N deben
adquirirse para que el gasto de comida sea el menor posible?
T1 T2 T3
A 1 2 4
B 3 2 1
xi = no de unidades transportadas.
Problema equilibrado (Oferta=Demanda):
T1 T2 T3 Disponibilidad
A x1 x2 x3 5
B x4 x5 x6 10
Demanda 8 5 2
x1 = nmero de naranjos.
x2 = nmero de perales.
x3 = nmero de manzanos.
22 TEMA 1. INTRODUCCIN A LA TEORA DE OPTIMIZACIN
1. Si se produce un incremento del precio de los naranjos que hace elevar el be-
neficio de cada naranjo a 120. Sigue siendo vlida la solucin?
2. Si desciende el beneficio de los perales hasta situarse en 10. Se modificar la
solucin del problema?
3. Al agricultor se le plantea la posibilidad de cultivar limoneros que necesitan
12m2 de tierra, 20 horas anuales de mano de obra, proporcionando un beneficio
de 30 u.m. Cul ser ahora la situacin?
4. A causa de la sequa, el agricultor tiene restricciones para el riego: Le han
asignado 200m3 de agua anuales. Las necesidades son de 2m3 por naranjo,
1m3 por peral y 1m3 por manzano cada ao. Cmo repercute esta nueva
situacin en la solucin inicial?
5. Se compra una parcela contigua de 160m2 . Cul ser en este caso la nueva
solucin?
6. De acuerdo con un estudio tcnico, para el tratamiento ptimo de los perales
se necesitan 10m2 y 15 horas de mano de obra anuales. Sigue siendo vlida
la solucin?
Ejemplo 8 Localizacin.
Una empresa tiene la exclusiva para la distribucin de un producto en 4 pobla-
ciones. En un estudio de mercado se ha determinado la demanda potencial:
Poblacin 1 Poblacin 2 Poblacin 3 Poblacin 4
3000 unidades 2000 unidades 2500 unidades 2700 unidades
Se sabe que los costes de transporte son de dos pesetas por Km y unidad transportada.
La distancia entre los pueblos es la que figura en la tabla siguiente:
1 2 3 4
1 - 25 35 40
2 - - 20 40
3 - - - 30
4 - - - -
Para abaratar los costes de transporte se decide instalar un almacn con capacidad
para 6000 unidades en dos de estas cuatro ciudades.
1.4. MODELOS DE PROGRAMACIN MATEMTICA 25
Max(Min): Z = c1 x1 + c2 x2 + cn xn
sujeto a: a11 x1 + a12 x2 + + a1n xn (=) b1
...........................
am1 x1 + am2 x2 + + amn xn (=) bm
x1 0; x2 0; . . . xn 0.
donde tanto la funcin objetivo como las restricciones son funciones lineales.
Si la funcin objetivo y/o las restricciones no fueran funciones lineales diremos
que el problema es de programacin no lineal.
En la programacin cuadrtica la funcin objetivo es de segundo grado y las
restricciones si existen son lineales.
En el caso particular de un problema de programacin lineal en el que las variables
de decisin tomen valores enteros, se llama programacin entera.
Cuando las variables slo toman valores 0,1 se llama programacin booleana.
Los modelos de programacin lineal se incluyen en una clase ms amplia, la clase
de modelos de optimizacin en los que se optimiza una funcin de las variables
de decisin, denominada funcin objetivo, sujeta a un conjunto de limitaciones o
restricciones sobre las variables de decisin.
26 TEMA 1. INTRODUCCIN A LA TEORA DE OPTIMIZACIN
Opt Z = f (x1 , x2 , . . . , xn )
sujeto a gj (x1 , . . . , xn ) 0; j = 1, . . . , m donde,
f(x1 , x2 , . . . , xn ) = c1 x1 + + cn xn = C t X
gj (x1 , . . . , xn ) = aj1 x1 + + ajn xn bj
Ejemplo 9
Max Z = 2x1 + x2
s.a.: 5x1 + 2x2 10
3x1 + 5x2 15
x1 , x2 0.
x1 = 0 x2 = 5
5x1 + 2x2 = 10
x1 = 2 x2 = 0
x1 = 0 x2 = 3
3x1 + 5x2 = 15
x1 = 5 x2 = 0
Paso 2. Se representa la regin del plano que verifica simultneamente todas las
restricciones. Esta regin se conoce con el nombre de regin factible. La regin
factible est marcada en la figura siguiente:
1.5. EL MTODO GEOMTRICO 27
Paso 3.
Representamos la recta correspondiente al valor 0 de la funcin objetivo:
x1 = 0 x2 = 0
Z = 2x1 + x2 = 0; 2x1 + x2 = 0
x1 = 1 x2 = 2
x2 = 45/19
19x2 = 45
x1 = 20/19.
28 TEMA 1. INTRODUCCIN A LA TEORA DE OPTIMIZACIN
2) Representar las regiones del plano que cumplen cada una de las restricciones,
incluidas las de no negatividad. La interseccin de estas regiones nos dara la
regin de soluciones o regin factible (si la interseccin es el problema no
tiene solucin).
Ejemplo 10
Max Z = 6x1 + 10x2
s.a.: 5x1 + 2x2 10
3x1 + 5x2 15
x1 , x2 0.
Paso 1.
x1 = 0 x2 = 5
5x1 + 2x2 = 10
x1 = 2 x2 = 0
x1 = 0 x2 = 3
3x1 + 5x2 = 15
x1 = 5 x2 = 0
x1 = 0 x2 = 0
6x1 + 10x2 = 0
x1 = 1 x2 = 35
Paso 3.
La recta paralela a 6x1 + 10x2 = 0 que pasa por (1, 0) es 6x1 + 10x2 = 6 con
valor del objetivo Z = 6 1 + 10 0 = 6.
Tiene soluciones mltiples pues, las dos rectas:
3x1 + 5x2 = 15
6x1 + 10x2 = 0
tienen la misma pendiente, son paralelas y, en todos los puntos desde A hasta
B se obtiene el mismo valor para la funcin objetivo.
20 45
A , y B(0, 3)
19 19
El valor del objetivo en el segmento AB es Z = 6 0 + 10 3 = 30.
Ejemplo 11
Min Z = x1 4x2
s.a.: x1 + x2 6
x1 2x2 2
4x1 + 3x2 12
x1 , x2 0
30 TEMA 1. INTRODUCCIN A LA TEORA DE OPTIMIZACIN
Paso 1.
x1 = 0 x2 = 6
x1 + x2 = 6
x1 = 6 x2 = 0
x1 = 0 x2 = 1
x1 2x2 = 2
x1 = 2 x2 = 0
x1 = 0 x2 = 4
4x1 + 3x2 = 12
x1 = 3 x2 = 0
x1 = 0 x2 = 0
x1 4x2 = 0
x1 = 4 x2 = 1
Paso 3.
La recta paralela a x1 4x2 = 0 que pasa por (1,0) sera x1 4x2 = 1 con
Z = x1 4x2 = 1 1 4 0 = 1.
1.5. EL MTODO GEOMTRICO 31
x1 + x2 = 6 6 36
A x1 = , x2 = .
4x1 + 3x2 = 12 donde, 7 7
Ejemplo 12
Max Z = 2x1 x2
s.a.: x1 x2 2
5x1 2x2 16
x1 , x2 0
Paso 1.
x1 = 0 x2 = 2
x1 x2 = 2
x1 = 2 x2 = 0
x1 = 2 x2 = 3
5x1 2x2 = 16
x1 = 16
5 x2 = 0
x1 = 0 x2 = 0
2x1 x2 = 0
x1 = 1 x2 = 2
Paso 3.
La recta paralela a 2x1 x2 = 0 que pasa por (1, 0) toma el valor Z = 210 =
2. Luego la solucin ptima es el punto A, que se obtiene como:
x1 x2 = 2
A donde, x1 = 4, x2 = 2.
5x1 2x2 = 16
Y la funcin objetivo vale Z = 2x1 x2 , y por tanto la solucin ptima vale
Z = 8 2 = 6. Si en el problema hubisemos tenido que minimizar la solucin
sera ilimitada.
Programacin Lineal
33
34 TEMA 2. PROGRAMACIN LINEAL
c1 x1 b1
c2 x2 b2
donde c= .. , X = .. , b = .. y
. . .
cn xn bm
a11 ... a1n
A= .. .. .. .
. . .
am1 ... amn
Tambin puede aparecer en forma vectorial:
Opt. Z = ct X
s.a.: a1 x1 + a2 x2 + + an xn = b
X0
xr = xr xr ; xr 0; xr 0
n
n
aij xj bi = aij xj + si = bi ; si 0
n
n
aij xj bi = aij xj ti = bi ; ti 0
Max Z = 3x1 + x2
x1 + x2 8
s.a.: 2x1 + 5x2 20
x1 , x2 0
Max Z = 3x1 + x2
x1 + 2x2 + x3 = 8
s.a.: 2x1 + 5x2 + x4 = 20
x1 , x2 , x3 , x4 0
36 TEMA 2. PROGRAMACIN LINEAL
Max Z = x1 + x2
x1 + 5x2 5
s.a.: 2x1 x2 4
x1 , x2 0
Max Z = x1 + x2
x1 + 5x2 + x3 = 5
s.a.: 2x1 + x2 x4 = 4
x1 , x2 , x3 , x4 0
Paso 1: No es necesario.
Paso 2: x2 = x2 x2 ; x2 , x2 0
Paso 3:
Min Z = 5x1 + 2x2 2x2
6x1 + x2 x2 x3 = 6
s.a.: 4x1 + 3x2 3x2 + x4 = 5
x1 , x2 , x2 , x3 , x4 0
n
n
Max z = cj xj Min z = (cj )xj ; z = z
n
n
Min z = cj xj Max z = (cj )xj ; z = z
2.1. MODELO GENERAL DE PROGRAMACIN LINEAL 37
x1 2x2 4 x1 2x2 4
x1 2x2 = 4
x1 2x2 4 x1 + 2x2 4
3x1 + x3 3 3x1 + x3 3
3x1 + x3 = 3
3x1 + x3 3 3x1 x3 3
{A IRn /A = A1 + (1 )A2 ; 0 1}
1 x1 + 2 x2 + ... + n xn
Demostracin:
Sea S = {(x1 , x2 , ...xn ) IRn / 1 x1 + 2 x2 + ... + n xn }. Sean Y y Z dos
puntos de S, entonces se cumple:
2.3. DEFINICIONES SOBRE LAS SOLUCIONES DE UN PROBLEMA 39
Y + (1 )Z S ; 01
Pero
Y + (1 )Z = (y1 , y2 , . . . , yn ) + (1 )(z1 , z2 , . . . , zn ) =
= (y1 + (1 )z1 , y2 + (1 )z2 , . . . , yn + (1 )zn )
Luego
Y + (1 )Z S.
A1 , A2 , . . . , Ak puntos extremos de C , A C =
A = 1 A1 + 2 A2 + + k Ak
siendo 1 + 2 + + k = 1.
Ax = b; x 0
F = {x IRn / Ax = b; x 0}
x1 + 2x2 + x3 = 4
2x1 + x2 + 5x3 = 5
1 2 1
A= ; r(A) = 2.
2 1 5
En este
caso
las
variables
bsicas son x1 y x2 . La base est formada por los
1 2
vectores y .
2 1
Para calcular la solucin bsica correspondiente a la matriz B igualamos a 0 la
variable no bsica, x3 = 0.
1 2 x1 4
BXB = b ; = = =
2 1 x2 5
x1 + 2x2 = 4
2x1 + x2 = 5
1
1 x1 1 2 4 2
XB = B b = =
x2 2 1 5 1
x1 = 2; x2 = 1; x3 = 0.
y por tanto x2 = 0
1 1 x1 4 x1 + x3 = 4
= =
2 5 x2 5 2x1 + 5x3 = 5
42 TEMA 2. PROGRAMACIN LINEAL
1
x1 1 1 4 5
XB = B 1 b = = =
x3 2 5 5 1
x1 = 5; x2 = 0; x3 = 1.
Otra submatriz
2 1
B= 2 , 3 =
1 5
y por tanto x1 = 0
1
x2 2 1 4 5/3
XB = B 1 b = = = .
x3 1 5 5 2/3
n
Si A es una matriz de dimensin m n y n > m, tendr soluciones
m
3
bsicas como mximo. En el ejemplo anterior = 3, y como hemos visto
2
anteriormente, hay 3 soluciones bsicas exactamente. A veces este nmero mxi-
mo de soluciones bsicas no se alcanza porque algunas de las submatrices tienen
determinante nulo.
Si XB es una solucin bsica y se cumple que los valores de las variables bsicas
son mayores o iguales que cero, decimos que la solucin es bsica factible y que
la base B es una base factible.
Si en una solucin factible bsica, alguna de las variables bsicas vale cero, deci-
mos que la solucin es factible bsica degenerada.
Soluciones bsicas factibles adyacentes son dos soluciones bsicas factibles
que tienen en comn m 1 variables bsicas.
2.4. ALGUNOS RESULTADOS SOBRE LAS SOLUCIONES 43
Demostracin
Suponemos F = {x IRn / Ax = b; x 0}
x1 , x2 F probaremos que x = x1 + (1 )x2 F ; 01
= b + (1 )b = b + b b = b.
Veamos que x 0
x1 + (1 )x2 0 son sumas de dos productos 0; por tanto es 0.
Luego se verifica que x1 + (1 )x2 F. Luego F es convexo.
Demostracin
= Supongamos, sin prdida de generalidad, que X = (x1 , x2 , . . . , xm ; 0, 0, . . . , 0)
es una solucin bsica factible, y B = {a1 , a2 , . . . , am } la base asociada a esta solu-
cin.
44 TEMA 2. PROGRAMACIN LINEAL
(x1 , x2 , . . . , xm ; 0, . . . , 0) =
= (y1 , y2 , . . . , ym ; ym+1 , . . . , yn ) + (1 )(z1 , z2 , . . . , zm ; zm+1 , . . . , zn ).
Si operamos tenemos:
(x1 , x2 , . . . , xm ; 0, . . . , 0) =
Luego
ym+1 + (1 )zm+1 = 0
=
yn + (1 )zn = 0
ym+1 = 0 zm+1 = 0
= y
yn = 0 zn = 0
Por definicin sabemos que los escalares tienen que ser cero, pues {a1 , a2 , . . . , am }
forman una base, y por tanto son linealmente independientes, por lo que se deduce:
2.4. ALGUNOS RESULTADOS SOBRE LAS SOLUCIONES 45
y1 z1 = 0
y1 = z1
y2 z2 = 0 y2 = z2
= = y = z.
ym zm = 0 ym = zm
Pero esto es absurdo pues habamos supuesto que y = z. Y por tanto hemos llegado
a una contradiccin, esto implica que X es punto extremo.
= Supongamos que X es un punto extremo de F que tiene k componentes es-
trictamente mayores que 0. Suponemos sin prdida de generalidad que son las k
primeras X = (x1 , x2 , . . . , xk ; 0, . . . , 0).
Como tiene que verificar el sistema tendremos:
x1 a1 + x2 a2 + + xk ak = b (2.1)
1 a1 + 2 a2 + + k ak = 0
1 a1 + 2 a2 + + k ak = 0 (2.2)
y = (x1 + 1 , x2 + 2 , . . . , xk + k , 0, . . . , 0)
z = (x1 1 , x2 2 , . . . , xk k , 0, . . . , 0)
xi + i 0 y0
xi i 0 z0
Por tanto y, z verifican el sistema y adems son mayores o iguales a cero, entonces
y, z F .
46 TEMA 2. PROGRAMACIN LINEAL
1 1
Pero si calculamos y + z tenemos:
2 2
1 1 1 1 1 1 1 1
y+ z = x1 + 1 , x2 + 2 , . . . , xk + k , 0, . . . , 0 + (2.3)
2 2 2 2 2 2 2 2
1 1 1 1 1 1
+ x1 1 , x2 2 , . . . , xk k , 0, . . . , 0 =
2 2 2 2 2 2
= (x1 , x2 , . . . , xk , 0, . . . , 0) = X
Pero esto contradice que X sea punto extremo de F . Luego {a1 , a2 , . . . , ak } son
vectores linealmente independientes y k m.
Si k < m se completan las columnas que faltan formando una base, entonces
ser solucin bsica factible degenerada.
Demostracin
Sea el programa lineal
M ax z = ct X
s.a. AX = b
X0
X = 1 E1 + 2 E2 + + k Ek / 1 + 2 + + k = 1.
Entonces:
Z = ct X = ct (1 E1 + 2 E2 + + k Ek ) =
= 1 ct E1 + 2 ct E2 + + k ct Ek 1 M + 2 M + + k M
= (1 + 2 + + k ) M = 1 M = M.
2.4. ALGUNOS RESULTADOS SOBRE LAS SOLUCIONES 47
x1 = 0 x2 = 5/3 x3 = 2/3.
Z = ct X = ct (1 x1 + 2 x2 + + k xk ) =
= 1 ct x1 + 2 ct x2 + + k ct xk =
= 1 M + 2 M + + k M =
= (1 + 2 + + k ) M = 1 M = M.
Los puntos extremos son A(4, 0), B(4, 2), C(3, 3), D(0, 3), E(0, 0) que aparecen
en la siguiente figura.
Luego B y C son soluciones ptimas, y por tanto todos los puntos del segmento
lineal BC tambin son soluciones ptimas.
3. Hallar una nueva solucin bsica adyacente a la anterior que mejore el valor
de la funcin objetivo. Ir al paso 2.
Max z = x1 + x2
x1 + x2 2
x1 + 2x2 6
s.a.:
2x1 + x2 6
x1 , x2 0
Como el problema tiene slo dos variables podra resolverse por el procedimiento
geomtrico. Se puede comprobar que la regin factible es el polgono de vrtices O,
A, B, C, D. Las coordenadas de los vrtices y los valores de la funcin objetivo de
cada uno de ellos son:
Por lo tanto el valor ptimo va a ser C con un valor ptimo de 4 para la funcin
objetivo.
Ahora queremos resolver este problema por un procedimiento analtico.
Lo primero que vamos a hacer es formular el problema en forma estndar, intro-
duciendo variables de holgura:
Max z= x1 + x2
x1 +x2 +h1 = 2
x1 +2x2 +h2 = 6
s.a.:
2x 1 +x 2 +h 3 = 6
x1 0 x2 0 h1 0 h2 0 h3 0
Paso 1 Partir de una solucin bsica factible. (Un vrtice de la regin factible). En
este caso es muy fcil partir de una solucin bsica factible. Si tomamos como
variables bsicas las variables de holgura, y damos a las no bsicas x1 y x2 el
valor cero tenemos la solucin bsica factible de partida (x1 , x2 , h1 , h2 , h3 ) =
(0, 0, 2, 6, 6) con un valor para z = x1 + x2 = 0. Los valores anteriores cumplen
50 TEMA 2. PROGRAMACIN LINEAL
x1 +x2 +h1 = 2
x1 +2x2 +h2 = 6
2x1 +x2 +h3 = 6
z x1 x2 = 0
x1 0 x2 0 h1 0 h2 0 h3 0
Puede observarse que todos los valores de las variables bsicas, y tambin el
valor de z, aparecen en los trminos independientes de este sistema.
x1 +h1 = 2
x1 +h2 = 6
2x1 +h3 = 6
x1 0 h1 0 h2 0 h3 0
es decir
h1 = 2 + x1 0
h2 = 6 x1 0
h3 = 6 2x1 0
Paso 3 Hallar una nueva solucin bsica adyacente a la actual que mejore el valor de
la funcin objetivo.
Si tomamos x1 = 3, h3 = 6 2x1 = 0 . Por lo tanto la variable h3 sal-
dr de la base entrando en su lugar x1 . La nueva solucin es (x1 , x2 , h1 , h2 , h3 ) =
(3, 0, 5, 3, 0) con un valor para z = x1 + x2 = 3 + 0 = 3, mejorndose por tanto
el valor de z. Con el objeto de que la actual solucin aparezca de nuevo en
el lugar de los trminos independientes del sistema realizamos las transforma-
ciones adecuadas para que los coeficientes de x1 del sistema sean 0, 0, 1, 0, que
eran los coeficientes que antes tena h3 . Para ello dividimos la tercera ecuacin
por el coeficiente de x1 , que es 2 (pivote), y realizamos las transformaciones
del mtodo de Gauss a las restantes ecuaciones, de modo que los restantes
coeficientes de x1 sean nulos. De esta forma se obtiene el sistema siguiente:
2.6. ALGORITMO DEL SIMPLEX EN FORMA DE TABLA (MAX) 51
3
2 x2 +h1 + 12 h3 = 5
3
2 x2 +h2 12 h3 = 3
x1 + 12 x2 + 12 h3 = 3
z 12 x2 + 12 h3 = 3
x1 0 x2 0 h1 0 h2 0 h3 0
5 3 3 10
3 x2 , 3 x2 , 1 x2 ; x2 , 2 x2 , 6 x2
2 2 2
3
h2 h1+h3 = 2
x2 + 3 h2 13 h3
2
= 2
x1 13 h2 + 23 h3 = 2
z + 13 h2 + 13 h3 = 4
x1 0 x2 0 h1 0 h2 0 h3 0
Opt. Z = c1 x1 + c2 x2 + + cn xn
s.a.: a11 x1 + a12 x2 + + a1n xn +xn+1 = b1
a21 x1 + a22 x2 + + a2n xn +xn+2 = b2
: : ... : ...
am1 x1 + am2 x2 + + amn xn +xn+m = bm
xi 0 i = 1, 2, . . . , n.
0. Construir la tabla inicial: Esta tabla se construye tomando en cada fila los
coeficientes de cada restriccin seguido del correspondiente trmino indepen-
diente de la forma estndar. Aadimos una ltima fila con los coeficientes que
resultan si se trasponen los trminos de la funcin objetivo hasta igualarlos
a cero. En la parte superior de la tabla aparecen los costes y las variables.
En la parte izquierda de la tabla aparecen estos mismos datos referentes a las
variables bsicas. La tabla inicial presentara el siguiente aspecto:
Max z = x1 + x2
x1 + x2 2
x1 + 2x2 6
s.a.:
2x1 + x2 6
x1 , x2 0
1 Como se ver la tabla va evolucionando durante el algoritmo. En general usaremos la siguiente
notacin:
1 1 0 0 0
x1 x2 h1 h2 h3
0 h1 -1 1 1 0 0 2
0 h2 1 2 0 1 0 6
0 h3 2 1 0 0 1 6
-1 -1 0 0 0 0
Paso 1 Partimos de una base cannica. La solucin bsica factible inicial es:
(x1 , x2 , h1 , h2 , h3 ) = (0, 0, 2, 6, 6)
1 1 0 0 0
x1 x2 h1 h2 h3
3 1
0 h1 0 2 1 0 2 5
3
0 h2 0 2 0 1 12 3
1 1
1 x1 1 2 0 0 2 3
0 12 0 0 1
2 3
Paso 4 Hallar una nueva solucin bsica adyacente a la actual que mejore el valor de
la funcin objetivo.
Pivoteando se obtiene la siguiente tabla:
1 1 0 0 0
x1 x2 h1 h2 h3
0 h1 0 0 1 -1 1 2
2
0 x2 0 1 0 3 13 2
1 x1 1 0 0 - 13 2
3 2
1 1
0 0 0 3 3 4
n
n
Min z = cj xj Max z = (cj )xj ; z = z
La solucin asociada a esta base es ptima pues todos los rj 0, la solucin es:
x1 = 0 x2 = 4 x3 = 5 x4 = 0 x5 = 0 x6 = 11 ; Z = 11.
n
n
aij xj = bi = aij xj + ri = bi
j=1 j=1
n
n
aij xj bi = aij xj ti + ri = bi
j=1 j=1
Cuarto, quinto y sexto caso. (Se reducen a los tres primeros casos).
Cambiando el signo de las restricciones el cuarto caso se transforma en el tercero,
el quinto se transforma en el segundo y el sexto en el primero.
A continuacin aplicamos algunas de estas reglas en varios ejemplos:
2.8. BSQUEDA DE SOLUCIONES INICIALES 59
Tomamos como variables bsicas las de holgura: x4 , x5 , x6 . Por tanto una solucin
bsica factible inicial es:
x1 = 0 x2 = 0 x3 = 0 x4 = 10 x5 = 9 x6 = 12 ; Z0 = 0
Entra en
la base
x2 porque le corresponde el ms negativo de los rj . Y sale x4
3 4 4
pues: min ; = = 2.
1 2 2
Si hacemos las transformaciones:
Multiplico la fila 1 por 1/2.
Sumo a la fila 2 la fila 1 multiplicada por (-1/2).
Obtenemos la siguiente tabla:
La solucin asociada a esta base es ptima pues todos los rj 0, la solucin es:
x1 = 6 x2 = 2 x3 = 0 ; Z = 22.
Max Z = x1 + 2x2
x1 2x2 + x3 = 4
s.a.: x1 5x2 + x4 = 8
x1 , x2 , x3 , x4 0
2.8. BSQUEDA DE SOLUCIONES INICIALES 61
La solucin es no acotada o ilimitada pues todos los yi2 < 0 ya que y11 = 2 < 0,
y12 = 5 < 0. Podemos hallar una direccin (Rayo ptimo) cuyos puntos son
todos soluciones factibles y la funcin objetivo mejora cuando aumenta el valor de
las variables. Sustituyendo en el sistema el valor x1 = 0 obtenemos una de estas
direcciones:
x = 0
1
x2 = x2
x = 4 + 2x2
3
x4 = 8 + 5x2
Nota: Este programa lineal puede resolverse usando el mtodo geomtrico estudiado
en el Tema 1. Puede observarse entonces que la regin factible es no acotada y el
valor de la z puede mejorar tanto como queramos.
Caso Maximizante. A las variables artificiales se les pone costo muy bajo (m)
en la funcin objetivo (Z), para que salgan rpidamente de la base.
Caso Minimizante. A las variables artificiales se les pone costo muy alto (m)
+ en la funcin objetivo (Z), para que salgan rpidamente de la base.
Para ilustrar este mtodo y este teorema realizamos dos ejemplos. En el primero,
continuamos con el ejemplo 30.
x1 = 0 x2 = 0 x3 = 4 x4 = 6 x5 = 0 x6 = 18; Z0 = 18m
Para que x6 pueda actuar como variable bsica tendra que tener un cero en su
coste reducido. Para conseguirlo podemos sumar a la ltima fila la tercera multipli-
cada por m, obtenindose:
T abla I 3 5 0 0 0 m sol. bsica
Min x1 x2 x3 x4 x5 x6 factible
x3 0 1 0 1 0 0 0 4
x4 0 0 1 0 1 0 0 6
x6 m 3 2 0 0 1 1 18
rj 3m 3 2m 5 0 0 m 0 Z0 = 18m
2.8. BSQUEDA DE SOLUCIONES INICIALES 63
Entra en la base x2 por ser r2 el mayor, y sale de la base x6 pues es el que hace
mnimo el cociente 6/1 y 6/2. Si construimos la nueva tabla del Simplex:
x1 = 0 x2 = 0 x3 = 0 x4 = 2 x5 = 1; Z0 = 3m
As, entra en la base x3 por ser r3 el mayor y sale de la base a5 , pues hace mnimo
el cociente 2/3 y 1/4. Si construimos la nueva tabla del Simplex obtenemos:
siendo
c1 x1 b1
a11 ... a1n
c2 x2 b2 .. .. .
..
c= .. ,X = .. ,b = .. y A= . . .
. . .
am1 ... amn
cn xn bm
XB
Max Z = (cB , cN ) X = cB XB + cN XN
XB N
s.a.: B N XN = BXB + N XN = b
X0
B 1 BXB + B 1 N XN = B 1 b
y por tanto
XB = B 1 b B 1 N XN
XB
Z = (cB , cN ) XN = cB XB + cN XN = cB B 1 b B 1 N XN + cN XN =
= cB B 1 b + cN cB B 1 N XN .
0
XB = B 1 b = XB y Z = cB B 1 b = Z 0
que son los valores de las variables bsicas y de la funcin objetivo correspondiente
a una solucin bsica factible inicial.
Por lo tanto, en general se cumplir para cualquier otra solucin factible:
0
XB = XB B 1 N XN ,
Z = Z 0 + cN cB B 1 N XN = Z 0 cB B 1 N cN XN .
Dependiendo de los valores de los elementos de la matriz cB B 1 N cN el
valor de la funcin objetivo, Z, se podr mejorar o no. As, si el problema fuera
de maximizacin, se podra mejorar la solucin anterior si algn elemento de esta
matriz fuera negativo, aumentando el valor del xj XN dentro de las condiciones
de factibilidad XB
0
B 1 N XN 0.
66 TEMA 2. PROGRAMACIN LINEAL
Vamos a aplicar este enfoque del mtodo del Simplex al ejemplo que aparece a
continuacin.
1 2
B = (a1 , a2 ) = =
2 1
1/3 2/3 1
= B 1 = , N = (a3 ) =
2/3 1/3 5
1/3 2/3 1 2 1 4 1 0 3 2
=
2/3 1/3 2 1 5 5 0 1 -1 1
0 2 2
XB = B 1 b = , Z 0 = cB B 1 b = 2 3 =1
1 1
2.10. ADAPTACIN ALGEBRAICA DEL ALGORITMO DEL SIMPLEX 67
3
cB B 1 N cN = 2 3 (10) = (9 10) = (1) .
1
1 0 3 2
0 1 -1 1
1 1
0 3 3 1
B= = 1
1 1 3 0
1
1 5
3 1 1 0 3 2 3 1 0 3
1 = 1 2
3 0 0 1 -1 1 3 0 1 3
0 5
x2 0 1 3
= XB =B b= 2 ,
x3 3
0
5 5
Z = cB B 1 b = 3 10 3
2 = .
3 3
1
cB B 1 N cN = 3 10 3
1 2 = 13 .
3
ymj
Partimos de una solucin factible bsica inicial, y a partir de ella se pasa a otra
solucin bsica factible adyacente que se consigue cambiando una sola columna de
la base. Este cambio se hace mediante un criterio lgico basado en:
x1 = x1 x2 = x2 x3 = x3 xj = 0.
siendo alguna de las variables x1 , x2 , x3 igual a cero y el resto son mayores o iguales
a cero.
Como ambas soluciones deben ser factibles tendr que cumplirse:
x01 a1 + x02 a2 + x03 a3 = b
=
x1 a1 + x2 a2 + x3 a3 + aj = b
x01 a1 + x02 a2 + x03 a3 = (x1 + y1j )a1 + (x2 + y2j )a2 + (x3 + y3j )a3
0
x1 = x1 + y1j x1 = x01 y1j
0
x = x2 + y2j y despejando queda x2 = x02 y2j (2.7)
20
x3 = x3 + y3j x3 = x03 y3j
o equivalentemente
x01 x02 x03
= = = (2.8)
y1j y2j y3j
Como ha de ser positivo o cero, y x01 , x02 , x03 lo son, podemos desechar las columnas
para las que yij 0.
Para las que cumplen que yij > 0 tendremos que como x1 , x2 , x3 han de ser
mayores o iguales que cero, y por tanto de (2.7) deducimos que:
x01
y1j
x01 y1j 0
x0
x02 y2j 0 = 2 (2.9)
y2j
x03 y3j 0
x0
3
y3j
70 TEMA 2. PROGRAMACIN LINEAL
Y sta es la regla para la variable de salida, aquella que hace mnimo el cociente
x0i
tal que yij > 0, siendo xj la variable de entrada en la base.
yij
Como regla de la variable de salida tenemos que dada la solucin bsica factible
XB = B 1 b, siendo el vector aj que entra en la base, yij > 0 para algn i, entonces
saldr de la base aquel vector ak que verifique:
0
x0k xi
= min ; yij > 0 .
ykj yij
Sea B = (a1 , a2 , a3 ) y sea aj que no est en la base B. Si las variables toman los
valores:
x1 = x01
x = x02 = Z0 = c1 x01 + c2 x02 + c3 x03 .
2 0
x3 = x3
Al introducir aj en la nueva base tendremos:
x1 = x1
x2 = x2
= Z = c1 x1 + c2 x2 + c3 x3 .
x = x3
3
xj = .
Soluciones no acotadas.
Demostracin:
Supongamos que la base consta de 3 vectores, y que stos son los tres primeros. As:
x1 = x01 y1j
x2 = x02 y2j
x3 = x03 y3j
xj =
Como es arbitrario, puedo hacerlo tan grande como quiera, es decir no acotarlo.
La solucin ptima aumentar al aumentar .
Si B = Im = yj = B 1 aj = aj .
2.10. ADAPTACIN ALGEBRAICA DEL ALGORITMO DEL SIMPLEX 73
Una vez que tengamos la tabla (caso maximizante), los pasos a seguir son:
Paso 0:
Construir la tabla inicial y la solucin inicial.
Paso 1:
Considerar la solucin actual.
Paso 2:
Si todos los zj cj 0, la solucin es ptima Fin
Si zj cj < 0 para alguna variable, ir al paso 3.
Paso 3a:
Seleccionar para entrar en la base la columna con zj cj ms negativo. Sea sta la
ak .
Paso 3b:
x0i
Seleccionar para salir de la base el que haga mnimo el cociente para los yik > 0.
yik
Sea la fila r.
(Si todos los yik 0, el problema es no acotado) Fin . Si no es as, ir al paso
4.
Paso 4:
Realizar transformaciones en la tabla para conseguir una nueva matriz unitaria
tomando yrk como pivote. Calcular zj cj usando la expresin
m
ci yij cj (2.14)
i=1
Paso 5:
Volver al paso 2.
T abla I
3 2 2 1 Sol. bsica
x1 x2 x3 x4 factible
x3 2 2 3 1 0 12
x4 1 2 1 0 1 8
zj cj 5 7 0 0 Z0 = 16
Entra en la base a1 por ser z1 c1 < 0 el nico negativo. Como variable de salida
hacemos:
4 4
min ; = min{6, 3} = 3.
2/3 4/3
Y por tanto sale de la base a4 .
Hacemos las transformaciones siguientes:
Multiplico por 3/4 la fila 3.
Resto a la fila 1 la fila 2 por 2/3.
Obtenemos la siguiente tabla:
La base ptima es
3 2 1/2 1/2
B = (a2 , a1 ) = = B 1 =
1 2 1/4 3/4
Si observamos la Tabla III del Simplex tenemos que la matriz B 1 son las columnas
que formaban la base inicial.
Haciendo las transformaciones adecuadas, tambin podemos obtener el algoritmo
correspondiente para el caso minimizante.
La fila de los costes reducidos se obtiene por medio de la expresin 2.14. Por
ejemplo:
5 1 5 1
z2 c2 = 0 3 +0 1 =
2 2 2 2
La base ptima es
3 1 0 2/5 1/10 0
B = (a2 , a3 , a6 ) = 2 4 0 = B 1 = 1/5 3/10 0 .
4 3 1 1 1/2 1
Este algoritmo suele utilizarse cuando hay igualdades o desigualdades del tipo ,
y por tanto sera necesario aadir variables artificiales. Consta de dos fases: La
primera de ellas consiste en minimizar la suma de las variables artificiales. En esta
primera fase todas las variables artificiales han de resultar nulas. En caso contrario
el problema no tiene solucin (es infactible).
Fase 1:
Fase 2:
T abla I 0 0 0 0 0 1
Min x1 x2 x3 x4 x5 x6
x3 0 1 0 1 0 0 0 4
x4 0 0 1 0 1 0 0 6
x6 1 3 2 0 0 1 1 18
zj cj 3 2 0 0 1 0 Z0 = 18
As, entra en la base a1 por ser z1 c1 el mayor y sale de la base a3 , pues hace
mnimo el cociente 4/1 y 18/3. Si construimos la nueva tabla del Simplex obtenemos:
T abla II 0 0 0 0 0 1
Min x1 x2 x3 x4 x5 x6
x1 0 1 0 1 0 0 0 4
x4 0 0 1 0 1 0 0 6
x6 1 0 2 3 0 1 1 6
zj cj 0 2 3 0 1 0 Z =6
T abla III 0 0 0 0 0 1
M in x1 x2 x3 x4 x5 x6
x1 3 1 0 1 0 0 0 4
x4 0 0 0 3/2 1 1/2 1/2 3
x2 5 0 1 3/2 0 1/2 1/2 3
zj cj 0 0 0 0 0 1 Z =0
Fase 2
Como en la base ptima no aparece ninguna variable artificial, segn el paso 3,
prescindimos de esta variable. As la nueva tabla queda:
2.11. OTROS ALGORITMOS DE PROGRAMACIN LINEAL 79
T abla IV 3 5 0 0 0
M in x1 x2 x3 x4 x5
x1 3 1 0 1 0 0 4
x4 0 0 0 3/2 1 1/2 3
x2 5 0 1 3/2 0 1/2 3
zj cj 0 0 9/2 0 5/2 Z = 27
Paso 0: Escribir el problema en forma estndar y obtener una matriz bsica inicial.
Paso 2: Seleccionar el vector que entra en la base, que ser el que proporcione un
valor ms negativo de zj cj . Sea ste ak .
B = (a3 , a4 ) = I2 = B 1 = I2
80 TEMA 2. PROGRAMACIN LINEAL
s = cB B 1 = cB I2 = cB = (2, 1).
2
z1 c1 = (2, 1) 3 = 2 3 = 5
2
3
z2 c2 = (2, 1) 2 = 5 2 = -7
1
Si calculamos yk = B 1 ak y xB = B 1 b tenemos:
3 12
y2 = B 1 a2 = I2 a2 = a2 = ; xB = B 1 b = b =
1 8
2
z1 c1 = (1/3, 1) 3 = 8/3 3 = 1/3
2
1
z3 c3 = (1/3, 1) (2) = 1/3 + 2 = 7/3.
0
Si calculamos yk = B 1 ak y xB = B 1 b tenemos:
1 1/3 0 2 2/3
y1 = B a1 = = ;
1/3 1 2 4/3
1 1/3 0 12 4
xB = B b = = .
1/3 1 8 4
2.11. OTROS ALGORITMOS DE PROGRAMACIN LINEAL 81
Entra en la base a1 por ser z1 c1 < 0 el nico negativo. Como variable de salida
hacemos:
4 4
min ; = min{6, 3} = 3.
2/3 4/3
Y por tanto sale de la base a4 .
1
z3 c3 = (1/4, 5/4) (2) = 1/4 + 2 = 9/4
0
0
z4 c4 = (1/4, 5/4) 1 = 5/4 1 = 1/4.
1
La solucin ya es ptima.
Si calculamos xB = B 1 b tenemos:
1/2 1/2 12 2
xB = B 1 b = =
1/4 3/4 8 3
La base ptima es
3 2 1 1/2 1/2
B = (a2 , a1 ) = = B =
1 2 1/4 3/4
1/3 2/3 1 3 y13
y3 = B 1 a3 = = =
2/3 1/3 5 1 y23
x03 x0i
= min ; yi3 > 0
yk3 yi3
Como y13 = 3 y y23 = 1, slo puede salir de la base a1 pues y23 es negativo.
Al salir de la base a1 tenemos:
2 1 1 5/9 1/9
B = (a2 , a3 ) = = B =
1 5 1/9 2/9
As, directamente obtengo una solucin bsica factible asociada a esta base pues:
1 10
XB = B b = = x1 = 10 x2 = 15 x3 = 0 x4 = 0.
15
z1 c1 = 0
z2 c2 = 0
2
z3 c3 = (1, 1) 10 = 3 10 = 13
5
5
z4 c4 = (1, 1) (6) = 2 + 6 = 8.
3
x03 x0i
= min ; yi3 > 0 en nuestro caso j = 3.
yk3 yi3
Como y13 = 2 y y23 = 5:
x03 10 15
== min ; = min{5, 3} = 3.
yk3 2 5
x02
Luego el mnimo corresponde a , y por tanto sale de la base a2 . Al cambiar de
y23
base tenemos:
1 2 1 1 2/5
B = (a1 , a3 ) = = B =
0 5 0 1/5
z1 c1 = 0
2/5
z2 c2 = (1, 10) (1) = 8/5 + 1 = 13/5
1/5
z3 c3 = 0
19/5
z4 c4 = (1, 10) (6) = 49/5 + 6 = 79/5.
3/5
x1 = 4 x2 = 0 x3 = 3 x4 = 0 ; Z = 4 0 + 10(3) 0 = 34.
Tema 3
Dualidad en programacin
lineal
Max Z = C t X
sujeto a AX b
X 0
donde,
A es una matriz de dimensin m n
C es un vector columna de dimensin n 1
b es un vector columna de dimensin m 1
X es un vector columna de dimensin n 1
llamado Programa Primal, se llama Programa Dual del mismo al programa
lineal:
Min W = bt Y
sujeto a At Y C
Y 0
85
86 TEMA 3. DUALIDAD EN PROGRAMACIN LINEAL
Sean:
2 1 1 2 t 18
A= c = (2, 1, 2, 1) b = .
3 4 2 1 24
Por lo tanto
y1
W = bt Y = (18, 24)
y2
2 3 2
1 4 1
At Y = y1
1 2 y2 2
2 1 1
Max
Min x1 x2 x3 x4
y1 2 1 1 2 18
y2 3 4 2 1 24
2 -1 2 1
x1 x2 1 x1 x2 1
x1 x2 = 1
x1 x2 1 x1 + x2 1
x3 x4 46 x3 + x4 46.
Max
Min x1 x2 x3 x4
y1 1 1 2 3 5
y2 1 1 0 0 1
y3 1 1 0 0 1
y4 0 0 1 1 46
3 8 2 4
y2 = y2 y3
y3 = y3
tenemos:
Llamando
A
b
A = A y b = b
El problema se transforma en
Max Z = C t X sujeto a A x b , X 0
Min W = (b )t Y , sujeto a (A )t Y C, Y 0
Realizando operaciones
b t Y1 A t Y1
Min W = b Y2 , s. a. A Y2 C, Y 0
t
Min W = bt , bt YY12 , s. a. A , At YY12 C, Y 0
Min W = bt Y1 bt Y2 , s.a.: At Y1 At Y2 , C, Y1 , Y2 0.
3.1. FORMAS DE LA DUALIDAD 89
x2 = x2 , x3 = x3 x4
Realizamos ahora las transformaciones para que todas las restricciones sean de
signo
Su dual es
y3 y4 = y3 , y2 = y2
x2 = x1 x2
x3 = x3
Max
Min x1 x2 x2 x3
y1 3 4 -4 -2 3
y2 3 -2 2 1 7
2 3 -3 1
2y1 + y2 1 2y1 y2 1
3.1. FORMAS DE LA DUALIDAD 91
4y1 2y2 3
4y1 2y2 = 3
4y1 2y2 3
Con el objeto de no tener que realizar todas estas transformaciones en cada problema
conviene tener una serie de reglas para escribir el problema dual conociendo el primal.
Las reglas de conversin son las siguientes:
1. Funcin objetivo:
(a) Los coeficientes de coste del dual son los trminos independientes de las
restricciones del primal.
(b) Los trminos independientes de las restricciones del dual son los coefi-
cientes de coste del primal.
Primal de Maximizacin
Dual de Minimizacin
0
restriccin 0 variables
= libre
0
variable 0 restriccin
libre =
Dual de Maximizacin Primal de Minimizacin
El problema dual que se obtiene con ayuda de la siguiente tabla y de las reglas
de signo de variables y restricciones es:
Max
Min x1 x2
y1 1 -1 1
y2 2 1 3
y3 3 -1 5
3 9
Ejemplo 45 Hallar el dual del problema siguiente realizando previamente las trans-
formaciones necesarias para expresarlo en la forma cannica minimizante. Compro-
3.1. FORMAS DE LA DUALIDAD 93
Min Z = 2x1 x2
s.a.: 4x1 + 7x2 10
3x1 4x2 8
x1 0, x2 no restringida
Llamamos x2 = x2 x2 :
Min Z = 2x1 x2 + x2
s.a.: 4x1 + 7x2 7x2 10
3x1 4x2 + 4x2 8
x1 , x2 , x2 0
Max
Min x1 x2 x2
y1 -4 -7 7 -10
y2 3 -4 4 8
2 -1 1
Si llamamos y1 = y1 tenemos:
7y1 4y2 1
7y1 4y2 = 1
7y1 4y2 1
El dual ser:
94 TEMA 3. DUALIDAD EN PROGRAMACIN LINEAL
a
1 x1 0
restriccin del dual variables del primal
a
2 = x2 libre
y2 0 2a
variable del dual restriccin del primal
y1 0 1a
Dual de Maximizacin Primal de Minimizacin
Max Z = C t X
sujeto a AX b
X0
Min W = bt Y
sujeto a At Y C
Y 0
Como no hemos demostrado las reglas de los signos su uso no puede ser considerado
una demostracin, no obstante si las aplicramos se obtendra este resultado de
inmediato. As tendremos que el problema dual de este ltimo es el primitivo:
Max Z = C t X Max Z = C t X
sujeto a (A ) X b sujeto a AX b
t t
X 0 X 0
A continuacin exponemos una demostracin de esta propiedad.
Para calcular el dual de
min W = bt Y
sujeto a At Y C
y0
3.2. PROPIEDADES DE LA RELACIN DE DUALIDAD 95
W = W = bt Y
max W=max (-W) = bt Y
sujeto a At Y C
y0
Su dual es:
min (-Z) = C t X
sujeto a AX b
X0
es decir:
max Z = C t X
sujeto a AX b
X0
que es el problema primitivo.
Demostracin.
Los problemas son:
Max Z = ct X Min W = bt Y
Primal sujeto a AX b Dual sujeto a At Y c
X0 y0
Ax0 b; x0 0 (3.1)
At y0 c; y0 0 (3.2)
b1 y10
b2 y20
0
y0 b = (y10 , y20 ...ym ) = (b1 , b2 ...bm ) = bt y0
0
bm ym )
a) Cualquier valor que tenga la funcin objetivo primal es cota inferior para la
funcin objetivo dual.
b) Cualquier valor que tenga la funcin objetivo dual es cota superior para la funcin
objetivo primal.
Demostracin.
e) Si existen soluciones factibles para los problemas primales y duales que dan el
mismo valor para las respectivas funciones objetivo entonces dichas soluciones
son ptimas para sus respectivos problemas.
Demostracin.
Supongamos dos soluciones factibles para cada uno de los problemas primal y
dual respectivamente x e y , llamamos Z = ct x e W = bt y . y Z = W .
Max Z = C t X Min W = bt Y
sujeto a Ax b y su dual sujeto a At Y C
X 0 y0
B base ptima = XB = B 1 b y CB t
B 1 (A | I ) (C t | 0 ) 0 porque los costes
reducidos son no negativos si la base es ptima.
Separando los costes reducidos de las variables primitivas y de las variables de
holgura tenemos:
t
CB B 1 A C t 0; . t
CB B 1 I 0 0
98 TEMA 3. DUALIDAD EN PROGRAMACIN LINEAL
De la segunda obtenemos
t t t
CB B 1 I = CB B 1 = (Y ) 0
Luego Y es una solucin factible del problema dual. Veamos que es adems
ptima:
W = bt Y = Y t b = CB
t t
B 1 b = CB tXB = Z
t
Y t = CB B 1 = S (vector multiplicador del simplex)
Si se emplea el algoritmo del simplex la solucin coincide con los costes reduci-
dos de las variables de holgura:
t
Y t = CB B 1 .
El dual es:
5 3 0 0 0
Max x1 x2 x3 x4 x5
x3 0 1* 0 1 0 0 2
x4 0 5 2 0 1 0 12
x5 0 3 8 0 0 1 12
Zj cj -5 -3 0 0 0 z=0
5 3 0 0 0
Max x1 x2 x3 x4 x5
x1 5 1 0 1 0 0 2
x4 0 0 2 -5 1 0 2
x5 0 0 8* -3 0 1 6
Zj cj 0 -3 5 0 0 z=10
5 3 0 0 0
Max x1 x2 x3 x4 x5
x1 5 1 0 1 0 0 2
x4 0 0 0 -17/4 1 -1/4 1/2
x2 3 0 1 -3/8 0 1/8 3/4
Zj cj 0 0 31/8 0 3/8 z=49/4
Nota: En este ejemplo las soluciones del dual coinciden con los valores de las
variables de holgura. No obstante, en los casos en que la base unitaria primitiva
no proceda de una variable de holgura puede haber tener algn coste no nulo en
la el objetivo. En este caso la solucin del dual correspondiente a tal variable
de holgura habra que obtenerla con la expresin rj = zj cj . Es decir:
zj = rj + cj . Aqu tambien se debe usar esta expresin, lo que pasa es que
c3 = c4 = c5 = 0. En el siguiente ejemplo resolveremos un caso en que alguna
de las variable de holgura no tiene coeficiente nulo en la funcin objetivo.
100 TEMA 3. DUALIDAD EN PROGRAMACIN LINEAL
Hacemos el cambio x3 = x3 x3
Max
Min x1 x2 x3 x3
y1 2 1 -1 1 2
y2 1 -2 3 -3 6
y3 -1 2 -3 3 -6
y4 -1 -3 -4 4 -10
2 3 -1 1
El problema dual es
y1 + 3y2 3y3 4y4 1
= y1 3y2 + 3y3 + 4y4 = 1.
y1 3y2 + 3y3 + 4y4 1
Si hacemos el cambio:
y2 = y2 y3
y4 = y4
2 3 1 1 0 m m 0
Min x1 x2 x3 x3 x4 x5 x6 x7
x5 m 2 1 1 1 1 1 0 0 2
x6 m 1 2 3 3 0 0 1 0 6
x7 0 1 3 4 4 0 0 0 1 10
Zj cj 3m 2 m 3 2m + 1 2m 1 m 0 0 0 8m
2 3 1 1 0 m m 0
Min x1 x2 x3 x3 x4 x5 x6 x7
x1 2 1 1/2 1/2 1/2 1/2 1/2 0 0 1
x6 m 0 5/2 7/2 7/2 1/2 1/2 1 0 5
x7 0 0 5/2 9/2 9/2 1/2 1/2 0 1 9
7m m
Zj cj 0 5m
2 2 2
7m
2 2 1
3m
2 +1 0 0 5m + 2
2 3 1 1 0 m m 0
Min x1 x2 x3 x3 x4 x5 x6 x7
x1 2 1 1/7 0 0 3/7 3/7 1/7 0 12/7
x3 1 0 5/7 1 1 1/7 1/7 2/7 0 10/7
x7 0 0 40/7 0 0 1/7 1/7 9/7 1 18/7
Zj cj 0 2 0 0 1 1m m 0 2
102 TEMA 3. DUALIDAD EN PROGRAMACIN LINEAL
ui yi = 0 i = 1 , 2 , .., m v j xj = 0 j = 1 , 2 , .., n
Demostracin.
Max Z = C t X Min W = bt Y
sujeto a AX b y su dual sujeto a At Y C
X0 y0
Tenemos:
Y t AX + Y t U = Y t b
(3.6)
Y t U = Y t b Y t AX
At Y V = C = multiplicamos por X
Y t AX V t X = V t X
(3.7)
V t X = C t X Y t AX
C t X = bt Y . (3.8)
Y t U = V t X = Y t U + V t X = 0
u1 x1
u2 x2
(y1 , y2 , .., ym )
+ (v1 , v2 , .., vn )
=0
um xn
m
n
yi ui + vj xj = 0
i=1 j=1
yi ui = 0 i = 1, 2, .., m
vj xj = 0 j = 1, 2, .., n
m
n
yi ui + vj xj = 0
i=1 j=1
Y t U + V t X = 0
pero
AX + U = b = U = b AX (1)
AY V = C = Y t A V t = C t = V t = Y t A C t .
Y t (b AX ) + (Y t A C t )X = 0
Y t b Y t AX + Y t AX C t X = 0
Y t b = C t X
Nota: Este teorema puede utilizarse para deducir la solucin del dual conociendo
la del primal, vemoslo por medio del siguiente ejemplo:
x1 + u1 = 2
5x1 + 2x2 + u2 = 12
3x1 + 8x2 + u3 = 12
El dual ser:
Min W: = 2y1 + 12y2 + 12y3
s.a.:y1 + 5y2 + 3y3 5
2y2 + 8y3 3
y1 , y2 , y3 0
v1 x1 = 0 x1 = 2 > 0
vj xj = 0 y como =
v2 x2 = 0 x2 = 3/4 > 0
u1 = 0
v1 = 0
= y u2 = 12
v2 = 0
u3 = 0
u1 y1 = 0
ui yi = 0 u2 y2 = 0 y como y2 = 0
u3 y3 = 0
y1 + 3y3 = 5 8 31
= y3 = , y1 =
8y3 = 3 3 8
3.3. INTERPRETACIN ECONMICA DE LA DUALIDAD 105
Las variables duales nos indican como vara la funcin objetivo al cambiar los recur-
sos.
En efecto: Si la base ptima es B; XB
= B 1 b; Z = CBt
XB , cambian los
recursos a b + b, y el valor b es suficientemente pequeo para que no haya cambio
en la base ptima, entonces:
XB = B 1 (b + b) = B 1 b + B 1 (b)
t t
Z = CB
XB = CB B 1 b + CB B 1 (b) = Z + Y t (b) =
m
= Z +
yi (b) = Z + y1 (b1 ) + y2 (b2 ) + + ym (bm ) (3.9)
i=1
Planteamiento:
x1 = nmero de bolsos,
x2 = nmero de cinturones,
x3 = nmero de monederos.
Supongamos que otro empresario desea adquirir los materiales y las horas de
trabajo disponibles, y debe hacer una oferta que no sea rechazada por el anterior
propietario, pero que al mismo tiempo sea lo ms ventajosa posible para l. Cuanto
deber pagar por el material y las horas de trabajo disponibles?
Sean y1 , y2 , y3 los precios a los que va a pagar la unidad de piel, la hora de
trabajo del personal de diseo-confeccin y la hora de trabajo de acabado, respecti-
vamente. Lo que debera pagar el comprador ser 48y1 + 20y2 + 8y3 , y naturalmente
desear que esta cantidad sea lo menor posible. Supone, que como es de esperar, el
actual dueo no se la vender si esto le supone alguna prdida. Por eso, el precio que
pague por el material y horas que permitan hacer cada objeto deber ser al menos
3.4. ALGORITMO DUAL DEL SIMPLEX. (CASO MAXIMIZANTE) 107
igual que la ganancia que el dueo actual saca por este producto. En resumen, el
problema que el comprador ha de resolver es el siguiente:
Este mtodo es til a veces para no tener que introducir variables artificiales. Este
algoritmo se aplica cuando puede obtenerse una solucin bsica, que tiene costes
reducidos positivos, pero que no es factible porque tiene algunas soluciones negativas.
Es decir, se aplica en el caso de una tabla en la que todos los zj cj 0, pero con
algn xi < 0. Este tipo de soluciones se llaman dual factible.
Paso 1
Si xB solucin bsica factible cumpliendo xB 0, entonces la solucin es ptima.
Paso 2 (Seleccin de la variable de salida)
Seleccionar como variable de salida aquella variable bsica con valor ms negativo.
Sea xr .
Paso 3 (Seleccin de la variable de entrada)
Determinar para las columnas no bsicas los cocientes pj = zjyc
rj
j
para los yrj < 0.
Si todos los yrj 0 el programa dual es no acotado y el primal es no factible. FIN.
Si hay algn yrj < 0, entra la variable de mayor cociente (o menor valor absoluto).
Sea xk .
Paso 4
Establecer una nueva tabla con yrk como pivote y volver al Paso 1.
2 1 4 0 0
Max x1 x2 x3 x4 x5
x4 0 3 2 5 1 0 15
x5 0 1 3 2 0 1 7
zj cj 2 1 4 0 0 z = 0
As pues, se cumplen las condiciones para poder aplicar el algoritmo dual del
simplex, pues el primal es infactible (xB < 0); y el dual es factible pues zj cj 0.
El trmino independiente ms negativo es -15. El pivote correspondiente est en la
segunda columna, ya que:
2
2 1 4 1 4 1
max 3 , 2 , 5 = min 3, 2, 5 = 2
2 1 4 0 0
Max x1 x2 x3 x4 x5
3 5
x2 -1 2 1 2 - 12 0 15
2
7 11
x5 0 2 0 2 - 32 1 31
2
1 3 1
zj cj 2 0 2 2 0
Min Z = x1 + x2 + x3
s.a.: x1 x2 + 3x3 1
2x1 x2 + x3 0
x1 + x2 x3 2
x1 , x2 , x3 0
El problema dual sera
x1 x2 x3 Max W = y1 + 2y3
y1 1 1 3 1 s.a.: y1 + 2y2 + y3 1
y2 2 1 1 0 y1 y2 + y3 1
y3 1 1 1 2 3y1 + y2 y3 1
1 1 1 y1 , y2 , y3 0
Para calcular la solucin del primal cambiamos previamente el signo de las de-
sigualdades, lo que va a implicar un cambio de signo en las variables duales:
Min Z = x1 + x2 + x3
s.a.: x1 + x2 3x3 1
2x1 + x2 x3 0
x1 x2 + x3 2
x1 , x2 , x3 0
:
Min Z = x1 + x2 + x3
s.a.: x1 + x2 3x3 + x4 = 1
2x1 + x2 x3 + x5 = 0
x1 x2 + x3 + x6 = 2
x1 , x2 , x3 , x4 , x5 , x6 0
1 1 1 0 0 0
Min x1 x2 x3 x4 x5 x6
x4 0 1 1 3 1 0 0 1
x5 0 2 1 1 0 1 0 0
x6 0 1 1 1 0 0 1 2
zj cj 1 1 1 0 0 0 z=0
1 1 1 0 0 0
Min x1 x2 x3 x4 x5 x6
x4 0 0 2 4 1 0 1 1
x5 0 0 3 3 0 1 2 4
x1 1 1 1 1 0 0 1 2
zj cj 0 0 2 0 0 1 z=2
110 TEMA 3. DUALIDAD EN PROGRAMACIN LINEAL
x1 = 2 , x2 = 0 , x3 = 0 , z = 2.
Como hemos cambiado de signo las restricciones del primal tenemos que la solu-
cin ptima del dual es:
y1 = 0 , y2 = 0 , y3 = 1 , w = 2.
Como hemos dicho hay un coste reducido cero en una variable no bsica (z2 c2 = 0),
y por tanto si se introduce la variable x2 sale x4 . Si se hacen las transformaciones
correspondientes usando como pivote 2, obtenemos la nueva tabla:
1 1 1 0 0 0
Min x1 x2 x3 x4 x5 x6
x2 1 0 1 4 1/2 0 1/2 1/2
x5 0 0 0 3 3/2 1 1/2 5/2
x1 1 1 0 1 1/2 0 1/2 3/2
zj cj 0 0 2 0 0 1 z=2
x1 = 3/2 , x2 = 1/2 , x3 = 0 , z = 2.
El valor del objetivo coincide, como era de esperar con la obtenida en la tabla
anterior. Por tanto, el problema primal tiene infinitas soluciones. Sin embargo, para
el problema dual se obtiene ahora la misma solucin que anteriormente.
Tema 4
Anlisis de sensibilidad
111
112 TEMA 4. ANLISIS DE SENSIBILIDAD
Para realizar este estudio se supone que se tiene una solucin ptima del proble-
ma, y que debido a las fluctuaciones del mercado han variado los precios de alguno
de los productos, o se han producido cambios en los recursos disponibles. Partimos
de una solucin ptima del problema precedente, pero es necesario realizar algunas
modificaciones debido a los cambios producidos. Por este motivo, el Anlisis de
Sensibilidad se conoce tambin con el nombre de Anlisis de Post-optimalidad.
cB x1 x2 x2 h1 h2 h3
h1 0 8 6 1 1 0 0 48
h2 0 4 2 1.5 0 1 0 20
h3 0 2 1.5 0.5 0 0 1 8
60 30 20 0 0 0 Z =0
4.2. CAMBIOS DISCRETOS 113
60 30 20 0 0 0
x1 x2 x3 h1 h2 h3
0 h1 0 2 0 1 2 8 24
20 x3 0 2 1 0 2 4 8
60 x1 1 1.25 0 0 0.5 1.5 2
0 5 0 0 10 10 Z = 280
. . . . . .
B 1 B .. N .. b = B 1 B .. B 1 N .. B 1 b = I .. B 1 N .. B 1 b
y que los costes reducidos de las variables no bsicas son cB B 1 N cN , siendo nulos
los costes reducidos de las variables bsicas. La solucin del problema es:
0
XB = B 1 b Z 0 = cB B 1 b
qu era ptima si
cB B 1 N cN 0
Por lo tanto, como slo vamos a cambiar el coste de una variable no bsica, slo puede
alterarse en todo el proceso anterior esta ltima expresin. nicamente tendremos
que recalcular z2 c2 , resultara:
2
z2 c2 = 0 20 60 2 (30 + ) = 5.0 .
1.25
La tabla quedara en este caso en la siguiente forma:
60 30 + 20 0 0 0
x1 x2 x3 h1 h2 h3
0 h1 0 2 0 1 2 8 24
20 x3 0 2 1 0 2 4 8
60 x1 1 1.25 0 0 0.5 1.5 2
0 5 0 0 10 10 280
c2 , puede aumentar hasta 35. Tambin el valor de la funcin objetivo ser en este
caso el mismo ya que Z 0 = cB B 1 b y ninguna de estas matrices cambia si c2 35.
Igualmente, c2 puede disminuir todo lo que se quiera, pues no hay restriccin para
por la izquierda.
Si no se cumpliera esta condicin y c2 pasara a ser, por ejemplo 40, la tabla final
del simplex quedara:
Max 60 40 20 0 0 0
x1 x2 x3 h1 h2 h3
0 h1 0 2 0 1 2 8 24
20 x3 0 2 1 0 2 4 8
60 x1 1 1.25 0 0 0.5 1.5 2
0 5 0 0 10 10 280
Max x1 x2 x3 h1 h2 h3
0 h1 1.6 0 0 1 1.2 5.6 27.2
20 x3 1.6 0 1 0 1.2 1.6 11.2
30 x2 0.8 1 0 0 0.4 1.2 1.6
4 0 0 0 8 16 Z = 288
60 + 30 20 0 0 0
x1 x2 x3 h1 h2 h3
0 h1 0 2 0 1 2 8 24
20 x3 0 2 1 0 2 4 8
60 + x1 1 1.25 0 0 0.5 1.5 2
0 5 + 1.25 0 0 10 0. 5 10 + 1. 5 280 + 2
La base se mantiene ptima si se verifica que todos las componentes del vector
5.0 + 1. 25 10.0 . 5 10.0 + 1. 5
son no negativas:
5
5.0 + 1. 25 0 1.25 = 4.0
10 0. 5 0 = 20 =
10.0 + 1. 5 0 10
1.5 = 6. 666 7
= 4 20
Es decir que c1 puede variar entre 56 y 80 mantenindose ptima la base y la
solucin anterior.
El valor del objetivo ser:
Z = (60 + ) 2 + 30 0 + 20 8 = 280 = 280 + 2.
Si pasamos estos lmites la solucin deja de ser ptima. Supongamos que c1 toma
el valor 100 y por tanto = 40. La tabla sera:
100 30 20 0 0 0
x1 x2 x3 h1 h2 h3
0 h1 0 2 0 1 2 8 24
20 x3 0 2 1 0 2 4 8
100 x1 1 1.25 0 0 0.5 1.5 2
0 55 0 0 10 70 360
que no es ptima.
Habra que continuar el problema a partir de esta tabla hasta obtener todos los
costes reducidos positivos.
Entra h2 y sale x3 , y aplicamos el algoritmo del simplex:
100 30 20 0 0 0
x1 x2 x3 h1 h2 h3
0 h1 0 2 0 1 2 8 24
20 x3 0 2 1 0 2 4 8
100 x1 1 1.25 0 0 0.5 1.5 2
0 55 0 0 10 70 360
La solucin ptima del nuevo problema es:
x1 = 4, x2 = 0, x3 = 0, con z = 400.
116 TEMA 4. ANLISIS DE SENSIBILIDAD
Ahora vamos a cambiar un recurso sin cambiar la base, por lo tanto permanece
el valor de B. Revisando las formulas que nos dan la evolucin de la tabla, ob-
servamos que los cambios slo pueden darse en la ltima columna, ya que XB 0
=
B b y Z = cB B b son las nicas frmulas donde intervienen los recursos.
1 0 1
cB x1 x2 x3 h1 h2 h3
h1 0 8 5 1 1 0 0 48
h2 0 4 2 1.5 0 1 0 20
h3 0 2 2 0, 5 0 0 1 8
60 43 20 0 0 0 z=0
4.3. INCORPORACIN DE UNA NUEVA ACTIVIDAD 117
Esto slo originara un cambio en la columna 2 de la tabla final, que quedara como
sigue:
1 2 -8 5 7
0 2 -4 2 = 4 ,
0 -0.5 1.5 2 2
y en el coste reducido de esta columna sera:
7
z2 c2 = (0, 20, 60) 4 43 = 3.
2
Y por tanto la tabla quedara:
60 30 20 0 0 0
x1 x2 x2 h1 h2 h3
0 h1 0 7 0 1 2 8 24
20 x3 0 4 1 0 2 4 8
60 x1 1 2 0 0 0.5 1.5 2
0 3 0 0 10 10 z = 280
En este caso cambia la base ptima, ya que hay un coste reducido negativo. Con-
tinuamos aplicando el mtodo del Simplex, hasta obtener todos los costes reducidos
no negativos.
Si aplicamos el algoritmo del Simplex a la ltima tabla, obtenemos la solucin
ptima del programa modificado, con los cambios en la columna de la segunda
variable. Dicha solucin ptima es:
Incluimos en este caso una nueva variable en el problema con sus correspondientes
caractersticas. Esto equivale a aadir una nueva columna en la tabla de simplex
inicial, que es la nica que va a cambiar. Por ejemplo, aadiendo una nueva variable
x4 con c4 = 15 y at4 = (1, 1, 1), tenemos:
118 TEMA 4. ANLISIS DE SENSIBILIDAD
cB x1 x2 x3 x4 h1 h2 h3
h1 0 8 6 1 1 1 0 0 48
h2 0 4 2 1.5 1 0 1 0 20
h3 0 2 1.5 0, 5 1 0 0 1 8
60 30 20 15 0 0 0
Si partimos de la misma base slo hay que cambiar la columna nueva. Permanece
la solucin si
1
z4 c4 = cB B 1 1 15 resulta no negativo.
1
En este caso podemos usar la solucin del dual cB B 1 = (0, 10, 10). As que
1
z4 c4 = (0, 10, 10) 1 15 = 5, la solucin sigue siendo ptima y no hace
1
falta introducir la nueva actividad en la base.
Si no fuera as calcularamos la nueva columna de coeficientes. En este caso no es
necesario calcular dicha columna. No obstante, para ilustrar lo que sera necesario
hacer si el coste reducido de la nueva actividad resultara negativo, la calculamos de
todos modos. Entonces la cuarta columna quedara:
1 2 -8 1 6
0 2 -4 1 = 2 .
0 -0.5 1.5 1 1
La nueva tabla quedara:
60 30 20 15 0 0 0
x1 x2 x3 x4 h1 h2 h3
0 h1 0 2 0 6 1 2 8 24
20 x3 0 2 1 2 0 2 4 8
60 x1 1 1.25 0 1 0 0.5 1.5 2
0 5 0 5 0 10 10 z = 280
Cuando incluimos nuevas restricciones y la solucin anterior verifica las nuevas re-
stricciones, esta solucin sigue siendo ptima. Las restricciones que no son verificadas
por la solucin actual hay que incluirlas en la tabla.
Para ilustrarlo, proponemos el ejemplo anterior, en el que incluimos la restriccin:
x1 + x2 + x3 7 = x1 + x2 + x3 + h4 = 7, donde h4 es una variable de holgura.
Como la solucin ptima XB del problema original es: x1 = 2, x2 = 0, x3 = 8,
4.5. PROGRAMACIN PARAMTRICA 119
Para conservar x1 y x3 en la base hay que hacer nulos los elementos sealados
con asterisco en la tabla anterior. Para conseguirlo, basta restar a la fila cuarta la
suma de las dos anteriores. Posteriormente actualizamos la fila de costes reducidos,
obteniendo la Tabla II, que aparece a continuacin.
Tabla II 60 30 20 0 0 0 0
x1 x2 x3 h1 h2 h3 h4
0 h1 0 2 0 1 2 8 0 24
20 x3 0 2 1 0 2 4 0 8
60 x1 1 1.25 0 0 0.5 1.5 0 2
0 h4 0 1.75 0 0 1.5 2.5 1 3
0 5 0 0 10 10 0 280
Para continuar el problema hay que emplear el algoritmo dual del simplex. El nico
elemento que puede hacer de pivote es el sealado con un recuadro en la tabla
anterior.
Realizando las transformaciones correspondientes, llegamos a la solucin ptima.
La solucin ptima es x1 = 3, x2 = 0, x3 = 4, Z = 260.
t
Max Z = C t + C 0 X
sujeto a AX b
X 0
El problema consiste en optimizar Z segn los valores de .
Los valores anteriores representan:
parmetro real,
C coeficientes independientes de la funcin objetivo,
120 TEMA 4. ANLISIS DE SENSIBILIDAD
3 1
C= ; C0 =
2 3
t
C t = (3, 2); C 0 = (1, 3)
t
j )() = (CB
(Zj C t 0
+ CB )yj (Cj + Cj0 ) = (4.1)
t
t 0
= CB yj Cj + (CB yj Cj ) =
0
= Zj Cj + (Zj Cj0 ).
t t
t 0 t 0
Z() = (CB + CB )xB = CB xB + CB xB = Z + Z 0 (4.2)
donde hemos denominado:
0
Zj0 Cj0 t
= CB yj Cj
0
Z0 t
= CB xB
Vamos ahora a concretar cuales son los pasos a seguir para aplicar el algoritmo de
programacin paramtrica. Este algoritmo viene sugerido por las expresiones (4.1)
y (4.2) para los costes reducidos y la funcin objetivo, que marcan una separacin
entre la parte paramtrica y la no paramtrica.
j 0 (caso max-
Paso 1: Imponer a la tabla la condicin de optimalidad Zj C
imizante), determinando el recorrido del parmetro para el cual la tabla per-
manece ptima.
4.5. PROGRAMACIN PARAMTRICA 121
Paso 2: Sustituir por aquellos valores extremos que sean finitos y aplicar el
algoritmo del simplex hallando la solucin correspondiente. Introducid las
= 0.
columnas no bsicas con Zj Cj
Paso 3: Repetir los pasos 1 y 2 hasta que no puedan hallarse nuevas soluciones.
t
Tenemos que C t = (4, 7, 3) C 0 = (1, 1, 1)
Iteracin 1 Paso 0: Si lo revolvemos para = 0, tenemos:
4 7 3 0 0
Max x1 x2 x3 x4 x5 XB
x4 0 2 1 2 1 0 30
x5 0 1 2 2 0 1 45
Zj Cj 4 7 3 0 0 Z=0
min = { 30 45
1 , 2 }=
45
2 .
4 7 3 0 0
Max x1 x2 x3 x4 x5 XB
x4 0 3/2 0 1 1 -1/2 15/2
x2 7 1/2 1 1 0 1/2 45/2
Zj Cj 1/2 0 4 0 7/2 Z = 315/2
Iteracin 1 Paso 1:
j )() tenemos:
Si calculamos (Zj C
j )()
(Zj C = (Zj Cj ) + (Zj0 Cj0 )
3 )()
(Z3 C = 13/3 + (1) = 13/3 0
(Z4 C4 )() = 1/3 + (1) = 1/3 + 0
5 )()
(Z5 C = 10/3 + (1) = 10/3 0
13/3
1/3
10/3
Para 13 10
3 la solucin ptima es :
Iteracin 1 Paso 2:
Para = 1/3 hay una solucin mltiple provocada por la cuarta columna, que
corresponde a una variable no bsica con coste reducido nulo.
j = (0, 0, 13/3 1/3, 1/3 1/3, 10/3 (1/3)) = (0, 0, 14 , 0, 11 )
Zj C 3 3
2/3
y4 =
1/3
t
Tabla II C0 1 1 1 0 0
Ct 4 7 3 0 0
t
0 t
CB CB x1 x2 x3 x4 x5 XB
0 x4 0 3/2 0 1 1 1/2 15/2
1 x2 7 1/2 1 1 0 1/2 45/2
Zj Cj 1/2 0 4 0 7/2 Z = 315/2
Zj0 Cj0 3/2 0 2 0 1/2 Z() = 45/2
Iteracin 2 Paso 1
j )()
(Zj C = (Zj Cj ) + (Zj0 Cj0 )
1 )()
(Z1 C = 1/2 3/2 0
3 )()
(Z3 C = 4 2 0
5 )()
(Z5 C = 7/2 1/2 0
4.5. PROGRAMACIN PARAMTRICA 123
Si 1/3 todos estos costes reducidos son no negativos., as que en este caso
la solucin ptima es:
Iteracin 2 Paso 2:
Para = 10/3 hay una solucin mltiple provocada por la quinta columna, que
corresponde a una variable no bsica con coste reducido nulo.
Zj Cj = (0, 0, 13
3
10 1
3 , 3 + 10 10
3 , 3 10
3 )) = (0, 0, 1, 11
3 , 0).
1/3
y5 =
2/3
t
Tabla III C0 1 1 1 0 0
Ct 4 7 3 0 0
t
0 t
CB CB x1 x2 x3 x4 x5 XB
1 x1 4 1 1/2 1 1/2 0 15
0 x5 0 0 3/2 1 1/2 1 30
Zj Cj 0 5 1 2 0 Z = 60
Zj0 Cj0 0 3/2 0 1/2 0 Z() = 15
Iteracin 3 Paso 1
j )()
(Zj C = (Zj Cj ) + (Zj0 Cj0 )
2 )()
(Z2 C = 5 + (3/2) 0
3 )()
(Z3 C = 1 0
4 )()
(Z4 C = 2 + (1/2) 0
Iteracin 3 Paso 2:
Ya no hay ms soluciones posibles.
En resumen la solucin del problema paramtrico es:
x1 = 0
1 x2 = 45
Si 2
3
x3 = 0
Z = 315 2
45
2
124 TEMA 4. ANLISIS DE SENSIBILIDAD
x = 5
1 10 1
x2 = 20
Si
3 3
x3 = 0
Z = 160 15
x1 = 15
10
x2 = 0
Si
3
x3 = 0
Z = 60 + 15
Max Z = C t X
sujeto a AX b + b0
X0
Si definimos
XB () = B 1 (b + b0 ) = B 1 b + B 1 b0 = XB + XB0
XB 0
= B 1 b0
t t 0 t t 0
Z() = CB XB = CB (XB + XB ) = CB XB + CB XB = Z + Z 0
siendo Z 0 = CB t 0
XB .
Paso 0: Calcular la solucin ptima para = 0 y aadir a la tabla final una columna
con los XB0
y Z0.
Paso 2: Sustituir por aquellos valores extremos que sean finitos y aplicar el
algoritmo dual del simplex a las filas con XB () = 0.
Paso 3: Repetir los pasos 1 y 2 hasta que no puedan hallarse nuevas soluciones.
Paso 0:
La tabla final con = 0 es la que aparece en el ejemplo anterior.
Ct 4 7 3 0 0
t
CB x1 x2 x3 x4 x5 XB
x1 4 1 0 2/3 2/3 -1/3 5
x2 7 0 1 2/3 -1/3 2/3 20
Zj Cj 0 0 13/3 1/3 10/3 Z = 160
Iteracin 1. Paso 1:
0
XB () = XB + XB
Si imponemos la condicin de factibilidad XB () 0 tendremos
50
XB () 0 = = 20.
20 0
Ct 4 7 3 0 0
t 0
CB x1 x2 x3 x4 x5 XB XB
x1 4 1 2 2 0 1 45 -2
x4 0 0 -3 -2 1 -2 -60 3
Zj Cj 0 1 5 0 4 Z = 180 Z 0 =-8
Paso 3
Iteracin 3 Paso 1. As tendremos que imponiendo la condicin de factibilidad
45 2 0 45/2
XB () 0 = =
60 + 3 0 20
Iteracin 2 Paso 2.
Para = 45/2
Ct 4 7 3 0 0
t
CB x1 x2 x3 x4 x5 XB
x1 4 1 2 2 0 1 0
15
x4 0 0 -3 -2 1 -2 2
Zj Cj 0 1 5 0 4 Z=0
45 15
XB ( ) = x1 x4 = 0 2
2
El problema de transporte
5.1 Introduccin
Este problema se plantea cuando han de distribuirse bienes o servicios que se pro-
ducen en diferentes lugares (orgenes) y que son demandados en diferentes ubica-
ciones (destinos). El propsito del problema de transporte es minimizar los gastos
que se producen al transportar los artculos desde los orgenes a los destinos.
Ilustramos el problema con el esquema del siguiente ejemplo (ver figura 5.1):
Tambin se suelen resumir los datos en una tabla, como se muestra en el ejemplo
que sigue.
Ejemplo 58 Una empresa dispone de tres almacenes que debe servir sacos de ce-
mento a cuatro clientes. La demanda de cada cliente, la capacidad de cada almacen
y el coste de enviar un saco desde cada almacen a cada uno de las clientes vienen
dados en la tabla:
127
128 TEMA 5. EL PROBLEMA DE TRANSPORTE
7 1 15
30 A
4
5
2
5
5
B 2
15
3 3 25
1. El problema de transporte tiene al menos una solucin factible: xij = aiMbj donde
M es la cantidad total transportada, ai la disponibilidad del origen i y bj la demanda
del destino j.
2. Si las demandas y disponibilidades son enteras se llama solucin bsica factible
de un problema de transporte a una solucin entera que verifica las restricciones de
disponibilidad y demanda con a lo sumo m + n 1 variables distintas de cero (m =
no de orgenes, n = no de destinos). Este problema de transporte tiene siempre
solucin bsica factible.
3. Si para un problema de transporte se determina una solucin bsica factible
inicial, entonces todas las que se obtengan de ella por el mtodo de simplex son
bsicas factibles.
4. El problema de transporte es acotado.
Este mtodo nos conduce a una solucin factible con, a lo sumo, m + n 1 variables
no negativas.
Hay que aplicar el siguiente algoritmo:
1) Partiendo de la esquina superior izquierda de la tabla (la esquina Noroeste) con
i = j = 1 hacer xij = min(ai , bj ) y restar esta cantidad a ai , bj de modo que bien
una fila o una columna de la tabla quede satisfecha. Se elimina esta fila o columna
de la tabla.
2) Si no queda fila o columna parar. En caso contrario aplicar de nuevo el paso 1 a
la tabla resultante
3) Igualad a ceros las xij que no tienen valor asignado.
Aplicamos este mtodo al problema de transporte del ejemplo 58 de la pgina
127.
Ejemplo 59
Destino 1 Destino 2 Destino 3 Destino 4 Produccin
Origen1 8 6 10 9 35
Origen 2 9 12 13 7 50
Origen 3 14 9 16 5 40
Demanda 45 20 30 30 125
Los valores de la solucin inicial para las variables de la primera fila quedan ya
decididos y se deja de considerar esta fila en los siguientes pasos del algoritmo.
Origen 2 50
Origen 3 40
Demanda 45 10 20 30 30
5.5. DETERMINACIN DE UNA SOLUCIN INICIAL 131
Origen 2 10 50 40
Origen 3 40
Demanda 45 10 0 20 30 30
Origen 2 10 20 50 40 20
Origen 3 - 40
Demanda 45 20 0 30 30
Seleccionamos ahora la esquina NO, que es la celda (2,2). De este modo queda
eliminada la segunda columna, por quedar fijados los valores de sus variables en la
salucin inicial..
Origen 2 10 20 20 50 40 20 0
Origen 3 - - 40
Demanda 45 20 30 10 30
O rig e n 2 10 20 20 - 50
Origen 3 - - 10 40 30
Demanda 45 20 30 10 0 30
O rig en 2 10 20 20 - 50
Origen 3 - - 10 30 40 30 0
Demanda 45 20 30 30 0
132 TEMA 5. EL PROBLEMA DE TRANSPORTE
O r ig e n 2 10 20 20 - 50
O r ig e n 3 - - 10 30 40
Demanda 45 20 30 30
358 06 010 09
109 2012 2013 07
014 09 1016 305
Los subndices son los costes correspondientes a la casilla.
Esta solucin, que tiene 3 + 4 1 = 6 variable no nulas, es una solucin bsica
factible.
El valor del objetivo para esta solucin es:
8 35 + 9 10 + 12 20 + 13 20 + 16 10 + 5 30 = 1180 u.m.
3. Si se han agotado todas las ofertas o demandas, igualad a cero las xij que no
tienen valor asignado y ya tenemos la solucin bsica factible inicial. En caso
contrario, volver al paso 1.
Seleccionamos ahora la (1,2), que es la celda de menor coste, 6, entre las cel-
das que permanecen, asignndole el valor 20 = min(35, 20), con lo la segunda
columna.queda decidida y deja de considerarse.
8 20 10 - 35 15
9 - 13 - 50
14 - 16 30 40 ,10
45 20 30 30
9 - 13 - 50
14 - 16 30 10
45 30 20 30 30
30 - 13 - 50 20
- - 16 30 10
45 20 30 30
15 20 - - 35
30 - 20 - 50
- - 16 30 10
45 20 30 10 30
15 20 - - 35
30 - 20 - 50
- - 10 30 50
45 20 30 30
134 TEMA 5. EL PROBLEMA DE TRANSPORTE
8 15 + 6 20 + 9 30 + 13 20 + 16 10 + 5 30 = 1080 u.m.
Aunque este mtodo requiere ms esfuerzo, suele suministrar una solucin inicial
ms cercana a la ptima.
La aplicacin del mtodo de Vogel requiere seguir los siguientes pasos:
1. Definimos la Penalizacin por fila y columna como la diferencia (en valor ab-
soluto) entre los dos costes menores de esta fila o columna..
Pen col 1 3 3
Pen col 1 3 3
Demanda 45 20 30 30
Pen col 1 3
136 TEMA 5. EL PROBLEMA DE TRANSPORTE
Demanda 45 0 20 30 30
Pen col 1 3
Demanda 45 20 30 30
Pen col 3
Demanda 45 20 30 5 30
Pen col 3
D1 D2 D3 D4
O1 08 106 251 0 09
O2 459 01 2 51 3 07
O3 01 4 109 01 6 305
6 10 + 10 25 + 9 45 + 13 5 + 9 10 + 5 30 = 1020 u.m.
Una vez se conoce alguna solucin bsica factible, obtenida por uno de los tres
mtodos anteriores, o por cualquier otro, se puede iniciar, el algoritmo de transporte,
de igual forma que se hace en el mtodo de simplex, aceptando la solucin actual si
es la ptima, o hallando una solucin mejorada si este no fuera el caso. Para pasar
de una solucin bsica a otra es importante el concepto de ciclo que se da en el
siguiente apartado.
5.6. DEFINICIN DE CICLO 137
(a) Resolver el sistema ui + vj cij = 0 (una ecuacin para cada una de las
variables bsicas de la solucin actual). Las incgnitas de este sistema son
ui y vj , siendo cij el coste asignado al transporte en la celda (i, j) de la
base. Dar arbitrariamente el valor 0 a una de las incgnitas.
(b) Determinar el coste reducido (ui + vj cij ) de las variables no bsicas
usando las soluciones del sistema resuelto en el paso 2.a. Si todos estos
costes redocidos son no positivos (valores nulos o negativos) la solucin
actual es ptima y hemos resuelto el problema. Si no es as la variable
que entra en la base es la que corresponde al mayor coste reducido.
(c) Construccin de una nueva solucin bsica: Partiendo de la posicin de
la variable de entrada hallada en el paso anterior construir un ciclo que
incluya esta variable y alguna de las variables de la solucin bsica actual.
Usar a continuacin sobre este ciclo el siguiente procedimiento: A la celda
de la variable de entrada le asignaremos + y a las restantes del ciclo
alternativamente los signos , +, , +... Localizamos la celda, entre las
sealadas con , con menor valor para la solucin Restamos este valor
a la solucin de estas celdas y se lo sumamos al de las marcadas con +.
Si ms de una celda tuviera este menor valor de xij , elegir la de menor
costo. Con esto una variable quedar a nivel 0 y por tanto saldr de la
base. Hemos obtenido de esta forma una nueva solucin bsica.
3. Ir al paso 2
D1 D2 D3 D4 Produccin
O1 35 35
O2 10 20 20 50
O3 10 30 40
Demanda 45 20 30 30
8 35 + 9 10 + 12 20 + 13 20 + 16 10 + 5 30 = 1180 u.m.
v1 = 8, u2 = 1, v2 = 11, v3 = 12, u3 = 4, v4 = 1
D1 D2 D3 D4 ui
(35) 5 2 -8
O1 0
8 6 10 9
(10) (20) (20) -5
O2 1
9 - 12 + 13 7
-2 6* (10) (30)
O3 4
14 + 9 - 16 5
vj 8 11 12 1
D1 D2 D3 D4 ui
(35) 5* 2 2
O1 0
- 8 + 6 10 9
(10) (10) (30) 1
O2 1
+ 9 - 12 13 7
8 (10) 6 (30)
O3 2
14 9 16 5
vj 8 11 12 7
u1 + v1 = 8, u2 + v1 = 9 , u2 + v2 = 12, u2 + v3 = 13, u3 + v2 = 9, u3 + v4 = 5
v1 = 8, u2 = 1, v2 = 11, v3 = 12, u3 = 2, v4 = 7
8 35 + 9 10 + 12 10 + 13 30 + 9 10 + 5 30 = 1120 u.m.
D1 D2 D3 D4
O1 25 10
O2 20 30
O3 10 30
D1 D2 D3 D4 ui
(25) 10 2* 7
O1 0
- 8 6 + 10 9
(20) 5 (30) 4
O2 1
+ 9 12 - 13 7
3 (10) 1 (30)
O3 3
14 9 16 5
vj 8 6 12 2
Ahora el valor mnimo de las celdas sealadas con es 25. Este valor se resta
a las marcadas con y se le suma a las marcadas con +, obtenindose la nueva
solucin:
D1 D2 D3 D4
O1 10 25
O2 45 5
O3 10 30
D1 D2 D3 D4 ui
2 10 25 7
O1 0
8 6 10 9
(45) 3 5 2
O2 3
9 12 13 7
5 (10) 3 (30)
O3 3
14 9 16 5
vj 6 6 10 2
Una solucin bsica se llama degenerada cuando contiene menos de m+n1 variables
bsicas no nulas.
Para aplicar el algoritmo de transporte es necesario partir de una solucin no
degenerada, es decir, que contenga m + n 1 celdas no nulas. En el caso de que la
solucin disponible sea degenerada, es preciso completar la base con algunas celdas
hasta completar las m + n 1 posiciones requeridas. Para ello se acta del siguiente
modo:
Intentar construir un ciclo comenzando en una celda vaca. Asignar la variable
correspondiente a esta celda a la base si no es posible construir un ciclo. Si hay varias
posibilidades es mejor seleccionar las de precio ms bajo y asignar a esta posicin el
valor , que se supone que es un nmero positivo muy pequeo. Usar esta posicin
y el valor de la asignado como si fuera una variable bsica. Cuando los costes
reducidos son todos no positivos se llega igualmente a la solucin ptima y entonces
damos a el valor 0.
Planta 3 2 1 1 (6)3
Completad las 5 posiciones no nulas con una nueva celda para llegar a una solucin
bsica factible no degenerada (con 6 elementos no nulos).
El mayor valor del coste reducido es 7, que est en la posicin (2,1) que entrar en
la base. En el ciclo marcado los valores sealados con signo menos son (5,2,3) de los
cuales el menor coste es 2 por lo que sale de la base la variable de la posicin (2,2),
quedando la nueva tabla:
En esta ltima tabla el pivote est en (1,3) que entra en la base saliendo la (1,1)
con menor valor (2) entre las marcadas con signo menos.
Ciudad 1 Ciudad 2 Ciudad 3 Ciudad 4 ui
-4 3 2 6
Planta 1 0
3 4 1 2
5 -2 4 -3
Planta 2 2
1 5 3 7
-3 +5 1 -1
Planta 3 0
2 1 1 3
vj -1 1 1 2
Todos los costes reducidos son no positivos. La solucin optima resulta por tanto:
Ciudad 1 Ciudad 2 Ciudad 3 Ciudad 4
Planta 1 2 6
Planta 2 5 4
Planta 3 5 1
obtenida trs poner a 0 el valor de .
El valor del objetivo es de 37 u.m.
Demostracin:
min i,j (k cij ) xij min i,j kxij ) + i,j (cij xij
min k i,j (xij ) + i,j (cij )xij min constante + i,j (cij )xij
La ltima igualdad se deduce del hecho de que la suma de todas las varia-
bles es igual a la oferta o demanda total. As que el problema de minimizar
z = i,j (k cij ) xij es equivalente al problema de maximizar z = i,j cij xij .
Ambos problemas dan lugar a la misma solucin ptima para las variables xij . No
obstante la relacin entre las respectivas funciones objetivos es:
z = k i,j (xij ) + i,j (cij )xij = k i,j (xij )+ i,j (cij )xij = k i,j (xij )
z . Por lo tanto el problema de maximizacin tiene un valor del objetivo
z = k i,j (xij ) z
Otra variacin de este problema se presenta cuando alguna de las rutas no tenga
asignado flujo, es decir que alguna de las rutas directas desde un cierto origen a un
destino est prohibida. En este caso, si el problema es de minimizacin, se le asigna
al arco (o celda) correspondiente un coste muy alto (en relacin con los restantes
costos). Si el problema es de maximizacin se asignar un coste muy pequeo.
1 2 B DISP
A 2 3 2 40
B 5 7 0 50+90
1 0 2 0+90
DEM. 35+90 55 0+90
5.10. EL PROBLEMA DE TRANSBORDO 145
1 2 B DISP
A 40 40
B 50 90 50+90
1 75 15 0+90
DEM. 35+90 55 0+90
Para interpretar la solucin se ignoran los elementos que conectan un nodo con-
sigo mismo, que aparecen enmarcados en la tabla. Leyendo en horizontal obtenemos
la interpretacin de la solucin: pasamos 40 unidades desde A a 2 y 50 unidades
desde B al destino 1. Desde este destino (1) transportamos 15 unidades al destino
2.
146 TEMA 5. EL PROBLEMA DE TRANSPORTE
Este problema consiste en asignar n individuos a n tareas de modo que todos los
individuos realicen una tarea y todas las tareas se realicen. Se exige adems que el
costo total sea mnimo.
Ejemplo 62 Una empresa tiene 4 mquinas y debe completar cuatro tareas. Cada
mquina puede y debe realizar una y slo una de de las tareas. La tabla siguiente
nos da el tiempo que tarda cada mquina en completar cada trabajo.
Asignar una tarea a cada mquina de modo que la suma de los tiempos trabajados
por las cuatro mquinas sea mnimo.
Paso 1: Encontrar el mnimo de cada fila. Construir una nueva matriz restando de
cada fila el mnimo coste de sta. Para esta nueva matriz realizar la misma
operacin por columnas. Esta nueva matriz se llama matriz de coste reducido.
Paso 2: Considerando esta ltima matriz y procurando comenzar por las filas
o columnas con menor nmero de ceros se recuadra un cero en cada fila y
columna y se tachan los dems ceros de estas filas o columnas. Se repite este
proceso hasta que no queden ceros sin tachar o recuadrar.
Paso 4: Tachar con el menor nmero de lneas (filas o columnas) todos los ceros de
la matriz.
Paso 5: Se resta a todos los elementos sin tachar el menor de ellos. Los elementos
de la parte tachada se dejan igual salvo los que estn tachados dos veces, a los
que se les suma ese nmero.
Paso 6: Volver al paso 2
Paso 1:
11 1 2 3 1
10 0 1 2
3 12 4 5 3
0 9 1 2
8 8 1 9 1
7 7 0 8
3 4 4 10 3
0 1 1 7
min
10 0 1 2
10 0 1 0
0 9 1 2
0 9 1 0
7 7 0 8
7 7 0 6
0 1 1 7
0 1 1 5
0 0 0 2 min
10 0 3o 1 0x
0x 9 1 0 4o
7 7 0 1o 6
0 2o 1 1 5
18 0 6 0
0 20 8 2
8 10 0 8
0 4 8 12
18 0 2o 6 0x
0 3o 20 8 2
8 10 0 1o 8
0x 4 8 12
Como hay menos ceros recuadrados que filas (o columnas) continuamos con el si-
guiente paso.
Paso 4 a, b, c.
Est indicado en la tabla el orden en que se han marcado las filas y columnas.
18 0 6 0x
0 20 8 2 ***3o
8 10 0 8
0x 4 6 12 ***1o
***2o
18 xx 0 6 0 x xxx
0 20 8 2
8 xx 10 0 8 xxx
0 x 4 8 12
xxx
Paso 5
20 0 6 0
0 18 6 0
10 10 0 8
0 2 6 10
Vuelta al paso 2.
Se indica el orden en que se han recuadrado los ceros.
20 0 4o 6 0x
0x 18 6 0 3o
10 10 0 1o 8
0 2o 2 6 10
cadas con un 1.
T1 T2 T3 T4 T5 T6 Disponibilidades
1 1 1 1
2 1 1 1
3 1 1
4 1 1 1 1
5 1 1 1
Ind. ficticio 1 1 1 1 1 1 1
Demandas 1 1 1 1 1 1
0 2o 1 1 0 1 1
0 0 3o 1 1 1 1
1 1 1 0 1o 1 1
1 0 0 4o 1 1 0
1 1 1 0 0 5o 1
0 0 0 0 0 0 6o
Este es otro tipo de problemas que puede resolverse por el algoritmo de transporte.
Se dispone de un producto que puede producirse en n periodos de tiempo, y que
5.13. PROBLEMA DE PLANIFICACIN DE LA PRODUCCIN 151
puede ser inmediatamente vendido o, por el contrario, puede ser almacenado para
venderlo posteriormente. En este caso se suele asignar un coste que viene justificado
por el gasto de almacenaje, posible deterioro del producto, producto obsoleto o en
desuso, etc.
Consideraremos el ejemplo siguiente:
Tomo como pivote la posicin (1,5) que es la nica con coste reducido positivo.
La solucin actual es ptima, ya que los costos reducidos son no positivos. Esta
solucin no es nica, ya que hay una variable no bsica con costo reducido nulo (la de
la posicin (1,2)). Introduciendo esta variable en la base pueden hallarse soluciones
alternativas.
Multiplicando la solucin obtenida por 100, para recuperar la escala inicial de
los valores, se obtiene:
5.13. PROBLEMA DE PLANIFICACIN DE LA PRODUCCIN 153
Primer mes : fabricar 1400 unidades (las 600 unidades correspondientes a la de-
manda ficticia no se fabrican). Con ellas se cubre la demanda del primer mes
(900) y se almacena 500 unidades hasta el tercer mes.
Segundo mes : fabricar 2500 unidades, 2000 de ellas cubren la demanda del mes
y 500 se guardan para el siguiente mes.
Tercer mes : fabricar 4000 unidades y vender las almacenadas de los meses ante-
riores (500 + 500), completando la demanda que es 5000.
Cuarto mes : se fabrican 2000, que coincide con la demanda de este mes (no
se alcanza la produccin mxima, ya que hay 500 unidades asignadas a una
demanda ficticia).
Modelos de Redes
0
n
155
156 TEMA 6. MODELOS DE REDES
0 1 2 n
0 1 1
1 1 1
2 1 1
n
0
A A
A
3 3
B B B
0
Una cadena es una sucesin de arcos adyacentes (arcos consecutivos que tienen
en comn un vrtice).
Un camino o ruta es una sucesin de arcos adyacentes del mismo sentido (el
extremo de un arco es el origen del siguiente).
Un ciclo, circuito o camino cerrado es un camino en el cual el ltimo extremo
coincide con el primer origen.
Suponemos que cada arco de la red tiene asociado un nmero que podra interpretarse
como la distancia entre su origen y extremo (longitud del arco). La longitud de un
camino es la suma de las longitudes de sus arcos. El problema dej camino de longitud
mnima consiste en seleccionar entre todos los caminos que unen dos nodos concretos,
el camino ms corto para ir de uno de los nodos al otro.
En el problema de longitud mnima, el nmero asociado a cada arco puede tener
otras interpretaciones (tiempo, coste, etc...).
El problema de longitud mnima puede interpretarse como un problema de trans-
bordo de la forma expresada en el siguiente ejemplo.
Planta 2
15
20
1
4
15 10 10
3 6
15 10 Cliente
5
transbordo donde hay que transportar una unidad desde la planta de produccin
(Origen) al cliente (Destino). Los cruces de carretera (Vrtices de la red) son puntos
de transbordo. En este caso la tabla inicial sera:
158 TEMA 6. MODELOS DE REDES
Nodos 2 3 4 5 6 dispon.
1 20 15 M M M 1
2 0 M 15 10 M 1
3 M 0 M 15 M 1
4 M M 0 M 10 1
5 M M M 0 10 1
deman. 1 1 1 1 1
Como las disponibilidades y las demandas son siempre 1 tambin puede inter-
pretarse como un problema de asignacin.
Tambin puede plantearse como un problema de Programacin lineal Binario:
El camino mnimo esta formado por los arcos cuyo valor en la solucin sea 1. Es
posible que el problema tenga varias soluciones.
Paso 2: Poner una etiqueta a cada vrtice Ei por orden ascendente de numeracin
del modo siguiente:
siendo aij la longitud del arco que une el nodo i con el nodo j, considerando
para j slo los arcos directamente unidos al nodo i.
B D G
E H J
A
C I
F
Mostramos los pasos del algoritmo en una tabla. En lugar de eliminar los unos
del nodo ya anotado, se ha incluido una nueva columna con las modificaciones. La
fila tachada se marca con x:
160 TEMA 6. MODELOS DE REDES
no
A B C D E F G H I J de
unos
A 1 1 2 1 0
B 1 1 2 1 0 x
C 1 1 1 3 2 1 0 x
D 1 1 0 x
E 1 1 1 1 4 3 1 0 x
F 1 1 0 x
G 1 1 2 1 0 x
H 1 1 0 x
I 1 1 2 1 0 x
J 0 x
J H G D E B C A
10 9 7 5 4 3 2 1
3 5 7
4 9 10
1
2 8
6
4
4 3 5 8 7 14
6
2
4 6 2 7
11
0 2 1
4 8 9 10
1 2
10
5 5
3 1 4
3
2 8
3 8
6 13
1
4
Este algoritmo es vlido para redes con arcos no negativos. No necesita ser acclica,
aunque s dirigida. Si no lo es, puede hacerse la transformacin indicada en el
principio del tema, aunque es ms sencillo sustituir los arcos de doble sentido por
dos arcos, uno para cada sentido.
Para determinar el camino mnimo de 1 a n suponiendo que 1 es el origen y n el
destino, podemos usar el siguiente algoritmo de Dijkstra:
Paso1
Asignamos al vrtice Origen de camino una etiqueta permanente igual a 0.
Paso 2
Asignamos a los otros vrtices etiquetas temporales igual a su distancia directa
al origen, si existe el arco directo desde el vrtice a 1. Si no es as, le asignamos
la etiqueta temporal .
Paso 3
Elegir como permanente la mnima de las etiquetas temporales. Si hay varias
que coincidan, elegir una de ellas arbitrariamente.
Paso 4
162 TEMA 6. MODELOS DE REDES
31
31
12 12 12 12
0 1 2 3 4 5
7 7 7 7 7
21 21 21
44
Para mayor claridad expresamos la longitud de los distintos arcos en una tabla:
1 2 3 4 5
0 7 12 21 31 44
1 7 12 21 31
2 7 12 21
3 7 12
4 7
En las siguiente tabla puede leerse, por lineas, las evolucin de las etiquetas de
los vertices cuando se aplica el algoritmo de Dijkstra. Las etiquetas temporales se
indican con * y las permanente estn recuadradas.
6.5. PROBLEMA DEL FLUJO MXIMO 163
0 1 2 3 4 5
0 7 12 21 31 44
7 12 21 31 44
7 12, 14 21, 19 31, 28 44, 38
7 12 19, 19 28, 24 38, 33
7 12 19 24, 26 33, 31
7 12 19 24 31, 31
7 12 19 24 31
En este problema se supone que hay que enviar una determinada cantidad de un
producto (Flujo) desde un nodo que denominamos Fuente a otro que denominamos
Sumidero. Se denomina Capacidad de un arco a la cantidad mxima de producto
que puede enviarse a travs de ste y Flujo a la cantidad de producto realmente se
enva.
Ejemplo 70 En la red de la figura 6.8, deseamos calcular el flujo mximo que puede
enviarse de F a S.
4 3
1
1
2
3
F S
3 2 2
xn0
x01 2, x02 3, x13 4, x12 3, x2n 2, x3n 1
xno (x01 + x02 ) = 0
x01 (x13 + x12 ) = 0
s.a.: x12 + xo2 x2n = 0
x13 x3n = 0
x3n + x2n xno = 0
xij 0
cadas con un 1.
T1 T2 T3 T4 T5 T6
1 1 1
2 1 1
3 1
4 1 1 1
5 1 1
Ind. ficticio 1 1 1 1 1 1
1 T1
2 T2
F
S
3 T3
4
T4
5
T5
T6
Teorema 13 (de Ford Fulkerson) El flujo mximo coincide con la capacidad del
corte que tenga menor capacidad.
Dada una solucin factible del problema de flujo mximo se definen como arcos A
los arcos no saturados (que no aprovechan al mximo su capacidad y podran tomar
valores ms altos) y como arcos D los arcos cuyo flujo es positivo (por lo tanto
pueden tomar valores ms bajos).
El Algoritmo de Ford-Fulkerson se usa para calcular el flujo mximo que puede
circular por una red. Consiste en:
Paso 0
Obtener una solucin factible. Se puede comenzar poniendo todos los flujos
xij =0. Es preferible comenzar con una solucin mejor que se puede conseguir
recorriendo caminos y asignando el flujo mximo permitido a sus arcos (los
arcos saturados no intervendrn en nuevos caminos a los efectos de formar
esta solucin inicial).
Paso 1
Sealar los arcos con A y/o D segn la regla anterior. Etiquetar la fuente con
la etiqueta (+0).
Paso 2
Etiquetar los nodos de la forma siguiente:
Si el arco (i, j) es miembro de A, el nodo i tiene etiqueta y el nodo j no la
tiene, etiquetar el nodo j con +i (arco directo).
Si el arco (i, j) es miembro de D, el nodo j tiene etiqueta y el nodo i no la
tiene, etiquetar el nodo i con j (arco inverso).
Continuar as hasta que se etiquete el sumidero o no haya ms vrtices sin
etiqueta. Si no se puede alcanzar el sumidero la presente solucin es ptima.
En caso contrario ir al paso 3.
Paso 3
Si se ha alcanzado el sumidero, tendremos una cadena etiquetada. Mejoramos
la solucin anterior del modo siguiente: Calculamos para cada arco directo de
la cadena marcada la cantidad (aij xij ) en que el flujo puede ser aumentado y
para los arcos inversos la cantidad en que puede disminuir que es xij . Sea k el
6.6. ALGORITMO DE FORD-FULKERSON 167
A,1,0
A,2,0
A,3,0
[+0] F S [+3]
A,3,0
2 A,2,0
Flujo = 0
En este camino todos los arcos pueden aumentarse en 1. Por tanto, obtenemos
la solucin de la figura mejorada con flujo 1.
D,1,1
A,D,2,1
A,3,0
[+0] F S [+3]
A,3,0
2 A,2,0
Flujo = 1
168 TEMA 6. MODELOS DE REDES
1 A,D,4,1 3
D,1,1
A,D,2,1
A,3,0
[+0] F S [+2]
A,D,3,2
2 D,2,2
Flujo = 1+2=3
[+F]
[+F] 1 A,4,0 3
A,1,0
D,2,2
A,D,3,2
[+0] F S [+2]
A,3,0
2 D,2,2
Flujo = 2
[+1]
A,1,0
D,2,2
A,D,3,2
[+0] F S [+3]
A,3,0
2 D,2,2
Flujo = 2
[+F]
D,1,1
D,2,2
A,D,3,1
[+0] F S [+3]
A,D,3,1
2 D,2,2
Flujo = 2+1=3
[+F]
1. Debe haber un nodo inicial (1) que representa el comienzo del proyecto. Los
arcos que parten del nodo 1 representan las actividades que no tienen prede-
cesoras.
2. Debe haber un nodo final (n) que representa la terminacin del proyecto.
a
c
sino de la forma:
6.7. CPM Y PERT 171
a c
b
artificial
a c
1 24 3 32 5 48 6
f
b 28
36 d e
art.
40
0
2 4
Para el algoritmo de CPM definimos para cada actividad los tiempos siguientes:
P C = lo ms pronto que puede comenzar.
P T = lo ms pronto que puede terminarse.
T C = lo ms tarde que puede comenzar sin que se retrase el fin del proyecto.
172 TEMA 6. MODELOS DE REDES
T T = lo ms tarde que puede terminar sin que se retrase el fin del proyecto.
El algoritmo consta de los pasos siguientes:
Paso 1: Comenzando con las actividades que parten del origen tomamos P C = 0 y
P T = su duracion.
Paso 2: Proceder del modo siguiente con las dems actividades. Su valor PC es el mayor
PT de las actividades precedentes. Su valor P T = P C+ duracion de la actividad.
Cuando todas las actividades tengan P C y P T ir al paso 3.
Paso 3: Comenzar con las actividades que terminen en el fin del proyecto (de mayor
P T ). T T es el mayor P T obtenido en el paso anterior y T C = T T su
duracion.
Paso 4: Proceder de la siguiente forma con las actividades anteriores siguiendo un orden
decreciente. Su valor T T es el menor T C de las actividades que le siguen. Su
valor T C = T T . Cuando todas las actividades estn etiquetadas ir al paso
5.
Paso 5: Las actividades con P T = T T forman el Camino Crtico (son las actividades
que no pueden sufrir retrasos ni adelantos sin que afecte al tiempo de conclusin
del proyecto). El resto de las actividades tienen holgura (holgura = T T P T ),
y pueden adelantarse o retrasarse en el valor de la holgura sin afectar al tiempo
global de ejecucin del proyecto.
Las actividades que forman el camino crtico son las que tienen holgura nula.
Por lo tanto este camino es: b act. ficticia d e f. Las actividades a y
c pueden retrasarse como mximo en el valor dado por su holgura. La longitud de
este camino es 152 (tiempo mnimo necesario para terminar el proyecto).
Obsrvese que el camino crtico es el camino ms largo que podemos recorrer
para ir del inicio (nodo 1) al fin del proyecto (nodo 6).
Este problema puede tambin resolverse por programacin lineal. Sea tj el valor
PC de las actividades que parten de j (la hora en la que se han terminado todas las
6.7. CPM Y PERT 173
a+4m+b (ba)2
E (Tij ) = 6 var (Tij ) = 36 .
El primer paso del mtodo PERT es aplicar el mtodo CPM, asignando a las ac-
tividades una duracin que es la estimacin de su media, E (Tij ) . Tambin se puede
optar por hallar el camino ms largo desde el inicio al final del proyecto. Si las du-
raciones de las distintas actividades son v. a. independientes, la media y la varianza
del tiempo requerido para realizar el proyecto completo est dado por las sumas de
las duraciones medias correspondientes a las actividades crticas (suponiendo que las
fluctuaciones aleatorias en el tiempo de ejecucin de las actividades no afecten al
establecimiento de las actividades que son crticas). Por tanto, si el problema tiene
un gran nmero de actividades se puede considerar que el tiempo total empleado en
la ejecucin de las actividades que forman el camino crtico es una variable aleatoria
que se distribuye normalmente, y por tanto se puede hallar la probabilidad de que
el tiempo de ejecucin del proyecto est dentro de un intervalo dado.
1.
i
6 7
j
e
g
a b c d f h k
1 2 3 4 5 8 9 10
1+42+4 1 + 4 1.5 + 3
2. ta = = 2. 166 7; tb = = 1. 666 7;
6 6
3 + 4 5 + 10 4 + 4 6 + 11
tc = = 5. 5, td = = 6. 5;
6 6
2+44+6 1 + 4 1.5 + 3
te = = 4.0; tf = = 1. 666 7
6 6
0.5 + 4 1 + 2 5+46+9
tg = = 1. 083 3; th = = 6. 333 3,
6 6
2+43+4 1 + 4 1.5 + 2
ti = = 3.0; tj = = 1. 5,
6 6
1+41+2
tk = = 1. 166 7.
6
Hallamos el camino ms largo. Las etiquetas que corresponden a los nodos
son:
6.7. CPM Y PERT 175
Programacin Entera
7.1 Introduccin
177
178 TEMA 7. PROGRAMACIN ENTERA
La solucin por redondeo sera (0, 2), con valor 66 para la funcin objetivo, que
no es ptima, ya que puede comprobarse que (7, 0) es una solucin factible para el
problema entero y su valor para la funcin objetivo es z = 70 que es mejor que 66.
Puede tambin desecharse la aproximacin por exceso (0, 3) ya que no es solucin
factible.
No obstante, si la solucin del problema relajado fuese entera sta sera obvia-
mente la solucin ptima del problema de programacin entera.
Ejemplo 75 El peso mximo que puede entrar en una mochila es de 28 Kg. Podemos
elegir los objetos siguientes con los pesos y utilidad descrita en la tabla:
Elegir los objetos que se han de meter en la mochila para obtener mxima utilidad.
Ejemplo 77 Un viajante tiene que visitar n ciudades slo una vez y volver a su
ciudad de origen. El orden en que se visiten las ciudades no es relevante. El objetivo
es minimizar la distancia total recorrida.
Las variables pueden ser xij con valor 1 si viaja de i a j y 0 si no viaja por este
trayecto, cij es la distancia entre la ciudad i y la ciudad j y n es el nmero total de
ciudades que han de visitarse. El planteamiento del problema podra ser:
min c x
ij ij
xij = 1 i
j=1,n
sa :
xij = 1 j
i=1,n
xij = 0, 1
1 3
2 4
Problema 1
max z = 5x1 + 6x2
sa : 10x1 + 3x2 52
2x1 + 3x2 18
x1 , x2 0
17 19
La solucin de este problema es x1 = 4 , x2 = 6 , z = 40.25.
La regin factible de este problema es la de la figura 7.2.
182 TEMA 7. PROGRAMACIN ENTERA
Elegimos una variable con solucin no entera. Sea sta la variable x1 = 17 4 = 4.25.
Consideremos los dos valores enteros ms cercanos a esta solucin (4 y 5). Dividimos
la regin factible en tres partes correspondiente a las regiones x1 4, 4 < x1 < 5 y
x1 5. La regin intermedia, que corresponde a 4 < x1 < 5, no ha de considerarse
puesto que no puede contener ningn punto con x1 entera. Ramificar un problema
quiere decir dividir su regin factible en partes y hallar la solucin de cada una de las
partes. Como una de las regiones no contiene soluciones factibles solamente tenemos
que resolver los dos subproblemas siguientes:
Problema 2 Problema 3
max z = 5x1 + 6x2 max z = 5x1 + 6x2
sa : 10x1 + 3x2 52 sa : 10x1 + 3x2 52
y
2x1 + 3x2 18 2x1 + 3x2 18
x1 4 x1 5
x1 , x2 0 x1 , x2 0
7.3.1 Resumen
Reglas de Ramificacin:
Problema 1.A
x1 = 17/4, x2 = 9/6, Z = 161/4
cota =0
x1 4 x1 5
x2 3
x2 4
x1 x2 h1 h2
1
x1 1 0 8 81 17
4
1 5 19
x2 0 1 12 12 6
1 15
0 0 8 8
x1 + 81 h1 18 h2 = 17
4
186 TEMA 7. PROGRAMACIN ENTERA
Definimos parte entera de x, E [x] , como el mayor entero que es menor o igual
que x. Si x = E [x] + f [x], f [x] es la parte fraccionaria de x.
Aplicamos esta descomposicin a todos los nmeros que aparecen en la ecuacin
anterior obtenindose:
x1 + (0 + 81 )h1 + (1 + 78 )h2 = 4 + 1
4
x1 h2 4 = 18 h1 78 h2 + 1
4
81 h1 78 h2 + 1
4 0
(1) La solucin primitiva del problema relajado ha sido eliminada con este corte de
la regin factible.
(2) Ninguna solucin entera del problema original es eliminada por este corte.
1 7 1
x1 h2 4 = h1 h2 +
8 8 4
han de ser enteros. El segundo trmino de la igualdad ser siempre menor o igual
que 14 , y por ser entero ha de ser menor o igual que cero.
En este ejemplo hay que resolver el problema que resulta de aadir el corte a
las restricciones iniciales del problema, obtenindose ya una solucin entera. El
problema conviene resolverlo a partir del anterior por el simplex dual:
x1 x2 h1 h2 s3
1
x1 1 0 8 18 0 17
4
1 5 19
x2 0 1 12 12 0 6
1
s3 0 0 8 78 1 14
1 15
0 0 8 8 0
7.4. ALGORITMO DE CORTE O DE GOMORY 187
Usando el algoritmo Dual del Simplex resulta que hay que pivotear sobre el
elemento marcado. Se obtiene la tabla siguiente:
x1 x2 h1 h2 s3
x1 1 0 0 1 1 4
x2 0 1 0 1 23 10
3
h1 0 0 1 7 8 2
0 0 0 1 1
22
3 x1 + 3 x2 22 = x1 + x2 3
2 10 1 1
x2 + h2 s3 = = x2 + h2 + 1 + s3 = 3 + =
3 3 3 3
1 1
x2 + h2 + (1) s3 3 = s3 +
3 3
x1 x2 h1 h2 s3 s4
x1 1 0 0 1 1 0 4
x2 0 1 0 1 23 0 10
3
h1 0 0 1 7 8 0 2
s4 0 0 0 0 13 1 13
0 0 0 1 1 0
x1 x2 h1 h2 s3 s4
x1 1 0 0 1 0 3 3
x2 0 1 0 1 0 2 4
h1 0 0 1 7 0 24 10
s3 0 0 0 0 1 3 1
0 0 0 1 0 3
6. Use el dual del simplex para resolver el problema que resulta de aadir, al
problema relajado, la restriccin correspondiente al corte. Si la solucin hal-
lada es entera, es la solucin ptima buscada. En caso contrario, ir al paso 2
para realizar un nuevo corte en el problema actual.
x = 22 y1 + 2y2 + y3 , yi = 0, 1
190 TEMA 7. PROGRAMACIN ENTERA
xi {0, 1} i = 1, 2, 3, 4
Ordenando la funcin objetivo por el valor absoluto de sus coeficientes, y tomando
x4 = y1 , x2 = y2 , x3 = y3 , x1 = y4 ,
se obtiene el problema equivalente:
max z = 4y1 + 5y2 + 6y3 + 9y4
sa : 2y1 + 3y2 + 5y3 + 6y4 10
y1 + y3 1
y3 y4 0
y1 y2 0
yi {0, 1} i = 1, 2, 3, 4
El esquema de resolucin de este problema puede verse en la figura 7.8 de la
pgina 194.
La solucin ptima resulta y1 = 0, y2 = 1, y3 = 0, y4 = 1, con z = 14.
Deshaciendo el problema transformado tenemos que la solucin ptima del problema
inicial es:
x1 = 1, x2 = 1, x3 = 0, x4 = 0, con z = 14.
194 TEMA 7. PROGRAMACIN ENTERA
x1=0 x1=1
1001; z=13;
x3=0 x3=1 Terminal;
z=13<CI=14
x3=1
x3=0
0001; z=9; 0010; z=6;
Terminal; z=9<CI=14 Terminal; z=6<CI=14
1110;
1100; z=9; z=15;
Terminal 9<14 Infactible y
final de la
rama
Teora de Colas
8.1 Introduccin
195
196 TEMA 8. TEORA DE COLAS
Sistemas de Colas
Disciplina de la cola
mecanismo de
Llegadas Cola
servicio
Salidas
Las llegadas pueden ser de personas, cartas, carros, incendios, ensambles intermedios
en una fbrica, etc... En la siguiente tabla se muestran algunos ejemplos de varios
sistemas de colas.
8.2 Terminologa
(a) (b)
(c)
(d)
Aparte de estas caractersticas fsicas de las colas, consideramos otros aspectos que
afectan a su funcionamiento o dinmica como son: la distribucin del intervalo de
tiempo entre llegadas, la distribucin de los tiempos de servicio, o tiempos empleados
por el servidor para prestar los servicios requeridos por cada uno de los clientes, las
distintas formas en que se reorganizan las colas en el supuesto de que haya varias
cadenas o varias fases y la disciplina de la cola que es la forma en que los clientes
que estn esperando acceden al servidor. Frecuentemente se considera que el primero
que ha llegado es el primero al que se le presta servicio. No obstante en algunas
circunstancias esto no es as. Otras disciplinas de colas pueden ser aleatorias, como
la forma en que suben al tren los viajeros que esperan en una estacin. En este caso,
el orden de entrada depende de lo cerca que haya quedado la puerta de cada viajero.
Tambin puede haber algunas prioridades en determinados servicios, etc...
Tambin se ha de considerar si existe abandono de la cola, es decir, elementos que
al ver una cola demasiado larga no se deciden a esperar, o elementos que habiendo
esperado un cierto tiempo no desean esperar ms y abandonan la cola.
8.3. MODELOS DE LLEGADAS Y DE TIEMPO DE SERVICIO 201
El sistema se dice que tiene una capacidad limitada si slo admite, como mximo,
un cierto nmero de elementos.
la probabilidad de que una llegada ocurra en un tiempo t < c unidades despus que
la anterior es:
c c
1
Se puede comprobar que la media de esta distribucin es 1/, y la varianza 2
.
El parmetro hay que interpretarlo como el nmero promedio de elementos que
llegan al sistema por unidad de tiempo.
60 pacientes 60 pacientes
Tomamos para = hora = 60 minutos = 1 paciente
minutos
1
!1
P (t < 1) = et dt = et !0 = 1 e1 = 0.632;
0
P (t h) = P (t c + h/t c) .
(t)n exp(t)
P (Nt = n) = , n = 1, 2, 3....
n!
E(Nt ) = V ar(Nt ) = t
(60)50 exp(60)
P (Nt = 50) = = 0.02327 .
50!
1 o(t) denota un infinitsimo de orden superior a t
204 TEMA 8. TEORA DE COLAS
b) Los clientes acuden a la tienda a razn de 30 personas por hora, as que la fun-
cin densidad de la exponencial asociada es 30 exp(30t). Por tanto, la probabilidad
es :
4/60
4/60 4/60
30 exp(30t)dt = exp(30t)|2/60 = exp(30t)|2/60 = e1 e2 = 0.23254
2/60
A veces se modelan los intervalos de llegadas con una distribucin de Erlang, inge-
niero dans que aplic a principios del siglo XX esta distribucin al estudio de las
aglomeraciones que se producan en las llamadas telefnicas. La funcin de densidad
de esta distribucin viene dada por dos parmetros:
R(Rt)k1 exp(Rt) k k
f(t) = (k1)! , t 0 , donde E(t) = R y V ar(t) = R2
k (kt)k1 exp(kt)
f(t) = , t0 (8.1)
(k 1)!
1 k 1
siendo en este caso E(t) = y V ar(t) = (k)2 = k2
Se suelen emplear los mismos modelos que para los intervalos entre llegadas; es decir,
la distribucin exponencial o la de Erlang. A veces puede ocurrir que la duracin
del servicio sea determinista. Por ejemplo, si todos los clientes vienen a solicitar un
mismo servicio que tarda en realizarse una cantidad de tiempo constante.
2. La probabilidad de una salida entre t y t+t (siempre que haya algn elemento
recibiendo servicio en el instante t) puede darse por t + o(t). Una salida
disminuye en 1 el estado del sistema.
P0 (t) (1 t + o(t)).
3. Los casos restantes requieren que al menos dos sucesos (entradas o salidas)
ocurran en el intervalo de tiempo t. Segn la propiedad 5, esta probabilidad
es de orden superior a t.
Por lo tanto
0 = P0 + P1 ,
P1 = P0 = P0
Pj ( + ) = Pj1 + Pj+1
En concreto si j = 1
P1 ( + ) = P0 + P2
P0
Sustituyendo P1 = obtenemos :
P0
( + ) = P0 + P2
y despejando P2
2 P0
P2 = 2 = 2 P0
j P0
Pj = j
1
Pi = 1 = P0 + P0 + 2 P0 + .... = P0 (1 + + 2 + ....) = P0 1
i=0
1
1 + + 2 + .... = 1
Luego
1
P0 1 =1
Pj = (1 ) j
8.6. TEOREMA DE LITTLE 209
L = E(j) = jPj = j(1 )j = (1 ) jj = (1 )S
j=0 j=0 1
siendo S = jj y j la variable aleatoria que denota el nmero de elementos en el
1
sistema.
Para hallar S se parte de la igualdad S S = 1 , de donde se deduce S =
(1)2
. Sustituyendo esta expresin en la de L obtenemos para el nmero medio de
elementos en el sistema
L= 1
En este caso hay que hallar la media de j, que es la variable aleatoria que denota el
nmero de elementos en la cola. Su promedio es
Lq = 0 (P0 + P1 ) + 1P2 + 2P3 + 3P4 + ...= (j 1)Pj = (j 1)(1 )j =
j=1 j=1
2
= (1 ) (j 1)j1 = (1 )S = 1 .
1
2 (1 )
Ls = L Lq = = =
1 1 1
L = W, Lq = W q, Ls = W s
210 TEMA 8. TEORA DE COLAS
1 1
1
W = = = ,
( )2
2
1
Wq = 1
= =
( )
Ls 1
Ws = = =
1. Un pasajero tiene que esperar si, cuando llega, hay alguien en el sistema; es
decir, si el nmero de personas en el sistema no es 0.
As que la solucin es 1 P0 = 1 (1 ) = = 10/12 = 0. 833 333.
2 2 102
2. Lq = 1 = = = 4.16 667 es el nmero medio de
( ) 12(12 10)
individuos en la cola.
1 1
3. W = = = 0.5 minutos tendrn que esperar los pasajeros por
12 10
trmino medio.
Son los modelos de espera que slo admiten un nmero mximo c de clientes en
el sistema. En este epgrafe se tratar el modelo de una cola, que con arreglo a la
notacin de Kendall se representa como M/M/1/fcfs/c/.
8.7. SISTEMAS CON CAPACIDAD LIMITADA 211
Para hallar la probabilidad de cada uno de los estados se pueden repetir los
razonamientos del prrafo 8.5.1, pero hay que tener en cuenta que el estado del
sistema nunca ser mayor que c.
Se tiene por tanto
j P0
Pj = j si 0 < j c
Pj = 0 si j > c
En este caso el estado estacionario puede lograrse aunque no sea menor que 1
ya que el sistema se autorregula por el nmero mximo c de clientes en la cola. Los
posibles estados del sistema son: 0, 1, 2, 3,...., c. por lo tanto
c
c+1 1
Pi = 1 = P0 + P0 + 2 P0 + .... + c P0 = P0 1 si = 1
i=0
1 (1)
P0 = c+1 1 y Pj = (c+1 1)
j
Por tanto
c
c
1 (1)
c
(1)
jj c+1 1 = jj =
L = E(j) = jPj = c+1 1 c+1 1 S
j=0 j=0 1
c
siendo j el nmero de elementos en el sistema y S = 1 j
j
c+1
S S = 1 cc+1
luego
y por tanto
Ls = 0 P0 + 1(P1 + P2 + ... + Pc ) = 1 P0
212 TEMA 8. TEORA DE COLAS
1
P0 = c+1 = P1 = P2 = P3 = ... = Pc
L = 0 P0 + 1P1 + 2P2 + ... + cPc ) =
= P0 (1 + 2 + 3 + .... + c) = P0 1+c
2 c=
1 1+c
c+1 2 c = c
2
L = W, Lq = W q, Ls = W s
No obstante, debe sustituirse en este caso por la tasa media real de llegada
(R ) , que ser menor que , puesto que est limitada la afluencia de clientes. La
tasa real se obtendr ahora restando del promedio de llegadas por unidad de tiempo
el promedio de entradas en el sistema que se pierden por exceder su capacidad.
El promedio de llegadas perdidas es Pc ya que Pc se puede interpretar como la
proporcin de llegadas por unidad de tiempo que no ingresan en el sistema. Es decir
que:
R = Pc
L = (1 Pc ) W, Lq = (1 Pc ) Wq , Ls = (1 Pc ) Ws
a) Todos los clientes que entran son atendidos, por lo tanto coincide con la tasa
real de llegadas a la peluquera. (1 Pc ) = 20(1 P10 ), Pj = ((1)
c+1 1) , as que
j
P10 = (4(41)
11 1) 4
10
= 0.75. Por lo tanto el nmero medio de clientes atendidos por
hora es 20(1 0.75) = 5.
Por promedio, cada hora hay 15 clientes que no pueden entrar en la peluquera.
8.8. MODELO CON S SERVIDORES 213
L
= 9.67/5 = 1.93 horas.
20(1 P10 )
P0 = P1
y por tanto
P0
P1 =
2 P0
P0 P0 + 2P2 = 0
y despejando P2 :
2 P0
P2 = 22 = 12 2 P0
P1 ( + ) P2 + 2P3 = 0
3 P0
P3 = 43 = 14 3 P0 .
3 P0 1
Pj = 43 = j
2j1 P0 si j = 0.
8.8.2 Clculo de P0
Pi = 1 = P0 + P0 + 21 2 P0 + .... + 1 j
2j1 P0 + ... =
i=0
= P0 1 + + 12 2 + .... + 1
2j1
j
+ ...
entonces
2
P0 = .
2+
Por tanto:
1 j 1 j2
Pj = 2j1 P0 = 2j1 2 .
+
8.8. MODELO CON S SERVIDORES 215
1 j+2
Lq = 0(P0 + P1 + P2) + 1P3 + 2P4 + . . . = j=1 jPj+2 = j=1 j 2j+1 P0 =
2 j 2 3
= P0 2 j=1 j 2 = P0 2 2
2
= P0 (2+)2
(1 2 )
3 2 3 3
= (2+)2
= (2+)(2+) = 42
2+
3 4
L = Lq + Ls = 42 += 42 .
Para calcular los tiempos medios se pueden emplear las frmulas de Little:
Lq L Ls 1
Wq = , W = , Ws = =
s+1
Lq = 2 P0
s s! 1 s
L
L = Lq + Ls W =
Ejemplo 89 Consideremos una sucursal bancaria con dos cajeros. Los clientes
acuden al banco a razn de 80 por trmino medio cada hora. Cada cajero tarda una
media de 1.2 minutos en servir a un cliente. Hallar:
a) Nmero medio de clientes en el banco.
b) Tiempo promedio de espera en el banco por cliente.
c) Fraccin del tiempo en que un cajero determinado est ocupado.
Por lo general un sistema de colas tiene dos costes: El de tener clientes esperando
y el de tener elementos sirviendo a stos. Ilustramos esta situacin en el siguiente
ejemplo.
8.9. EL COSTE DE UN SISTEMA DE COLAS 217
Ejemplo 90 En una lnea de produccin es frecuente que haya un almacn para las
herramientas ms caras. Los trabajadores que necesitan alguna de ellas esperan a que
un empleado del almacn se las suministre. Si hay muchos trabajadores solicitando
herramientas se formarn colas y se perder tiempo de trabajo, lo que conlleva un
gasto. Esto se resolvera poniendo ms empleados en el almacn, pero este arreglo
tambin supondra un mayor gasto en sueldos de estos empleados. El problema es
disear un sistema que minimice los costes. Suponemos que las llegadas de empleados
al almacn siguen una distribucin de Poisson de razn de llegada = 15 (nmero
de personas que llegan por unidad de tiempo) y de razn de servicio = 18 (nmero
de elementos que pueden ser servidos en cada unidad de tiempo). Se supone que los
trabajadores que esperan a que el empleado les suministre las herramientas ganan 10
u. m. por hora, y los empleados que se las suministran tienen un sueldo de 9 u.m.
por hora.
Para resolver este problema consideramos los siguientes casos, obtenidos variando
el nmero de servidores (empleados en el almacen que se ocupan de suministrar las
herramientas).
3. Caso de 3 servidores:
1 1
P0 = s1 i = = 0. 432 13
s ( 15 i
) ( 15
18 )
3
i=0 i! + s!(1 )
31
i=0
18
+
s i!
3!
( )
1 18
15
15 3+1
s+1 18
Lq = 2 P0 = 0.43213 =
15 2
s s! 1 s
18
3 3! 1 3
625
= 12 168 0.43213 = 0.0 221 96
L = 0.0222 + 15/18 = 0. 855 533
Coste por hora = 0.855533 10 + 3 9 = 35. 555 u.m.
218 TEMA 8. TEORA DE COLAS
Por lo tanto lo ms econmico es emplear dos servidores con un coste por hora
de 28. 08 u.m.
Tema 9
Introduccin a la Simulacin
219
220 TEMA 9. INTRODUCCIN A LA SIMULACIN
69 56 30 32 66 79 55 24 80 35 10 98 92 92 88 82 13 04 86 31
Demanda Alta (00 a 29) Media (30 a 74) Baja (75 a 99)
3 0.05 (00 a 04) 0.10 (00 a 09) 0.15 (00 a 14)
4 0.10 (05 a 14) 0.20 (10 a 29) 0.25 (15 a 40)
5 0.25 (15 a 39) 0.30 (30 a 59) 0.35 (41 a 74)
6 0.30 (40 a 69) 0.25 (60 a 84) 0.15 (75 a 90)
7 0.20 (70 a 89) 0.10 (85 a 89) 0.05 (90 a 94)
8 0.10 (90 a 99) 0.05 (90 a 99) 0.05 (95 a 99)
Generamos la demanda para el primer da: usando el primer nmero aleatorio (69)
que est entre 30 y 74, con lo que obtenemos para el da 1 una demanda media.
Ahora tendremos que determinar la cantidad demandada. Para generar el nmero
de cajas demandada en este da empleamos el segundo nmero (56). Mirando la
columna que corresponde a la demanda media vemos que est entre 30 y 59, as que
seleccionamos una demanda de 5 cajas para el primer da. La ganancia obtenida en
este caso ser 40 5 25 5 = 75 euros, ya que en este da la demanda es igual que
222 TEMA 9. INTRODUCCIN A LA SIMULACIN
la oferta. De forma similar se obtiene la ganancia de los das siguientes, segn est
indicado en la siguiente tabla.
Compra al
Sorteo tipo Sorteo
DIA: principio Ganancia da
de demanda demanda
del da
1 5 69 media 56 (5) 405 - 255 = 75
2 5 30 media 32 (5) 405 - 255 = 75
3 5 66 media 79 (6) 405 - 255-151 = 60
4 5 55 media 24 (4) 404 - 255+101 = 45
5 5 80 baja 35 (4) 404 - 255+101 = 45
6 5 10 alta 98 (8) 405 - 255-153 = 30
7 5 92 Baja 92 (7) 405 - 255-152 = 45
8 5 88 Baja 82 (6) 405 - 255-151 = 60
9 5 13 Alta 04 (3) 403 - 255+102 = 15
10 5 86 baja 31 (4) 404 - 255+101 = 45
paso 1
Determinar el tipo de demanda (alta media, baja)
Se genera un nmero aleatorio entre 0 y 1. Si este nmero es menor
que 0.30 la demanda es alta, si est entre 0.30 y 0.75 la demanda es
media. Demanda baja en otro caso.
paso 2
Se genera otro numero aleatorio.
9.3. MTODO MONTECARLO 223
Como este valor medio se realiza para todos los pedidos (de 3 a 8 cajas) se puede
estimar cul es la mejor eleccin.
Con un programa realizado en FORTRAN, y con una simulacin de 365 das,
hemos estimado la ganancia media diaria en funcin del nmero de cajas pedidas,
llegando a los resultados siguientes:
Cajas del
3 4 5 6 7 8
pedido
Beneficio
10.119 36.04 53.71 58.56 51.70 39.78
medio
Estos resultados nos permiten decidir que un pedido de 6 cajas diarias es el que
reportara mayor beneficio diario medio.
Aunque las tcnicas de Simulacin pueden ser deterministas, es decir que se pueden
simular fenmenos que no sean aleatorios, lo ms frecuente, como ocurre en el ejem-
plo anterior, es que el fenmeno que se pretende simular tenga algn componente
aleatorio. En este caso decimos que se usa el mtodo Montecarlo. La esencia del
mtodo Montecarlo es la experimentacin con nmeros aleatorios. El procedimiento
usado consiste en disear juegos de azar con estos nmeros, esperando obtener de
su observacin conclusiones tiles para la resolucin del problema que se est estu-
diando. Aunque se han publicado algunos trabajos relacionados con el mtodo de
Montecarlo que no han precisado el uso de ordenadores, lo cierto es que la utilidad
del mtodo de Montecarlo se ha visto enormemente incrementada con el uso de las
modernas computadoras.
Resulta difcil creer que basndose en el puro azar puedan obtenerse conclusiones
que merezcan la pena y, de hecho, algunos investigadores desconfan todava de las
estimaciones que se consiguen con este mtodo, a pesar de sus mltiples xitos en el
campo de la Investigacin Operativa, de la Fsica y de otras ramas de las Ciencias,
como la Biologa, la Qumica, e incluso la Medicina.
Los mtodos de Montecarlo suelen clasificarse en dos tipos: probabilistas y de-
terministas.
224 TEMA 9. INTRODUCCIN A LA SIMULACIN
P = 2L/d
Aos mas tarde, en 1886, Laplace sugiri que este procedimiento podra ser til
para calcular experimentalmente el valor del nmero . Este momento es conside-
rado en ocasiones como el punto de partida de las aplicaciones serias del mtodo
Montecarlo.
Otros trabajos pioneros sobre Montecarlo fueron los de Thompson (Lord Kelvin)
en 1901, sobre la evaluacin de algunas integrales de uso en la teora de los gases.
Gosset -con el seudnimo de Student- aplic el mtodo Montecarlo para obtener la
distribucin del coeficiente de correlacin (1908). En 1930 Fermi emple el mtodo
Montecarlo para sus trabajos sobre difusin y transporte de los neutrones, que re-
sultaron esenciales para el desarrollo de las bombas y centrales nucleares.
Como ya se ha apuntado, durante la segunda guerra mundial se trabaj en estos
9.5. GENERACIN DE NMEROS ALEATORIOS 225
temas. Aparte de Von Neuman, ya citado, cabe resaltar las aportaciones de Fermi,
Ulam y Metrpolis. Durante esa poca, la aparicin de las primeras computadoras
digitales dio un fuerte impulso al desarrollo del mtodo Montecarlo. Paradjicamente
estos trabajos propiciaron a la vez un cierto descrdito del mtodo, pues se aplic a
casi cualquier cosa, sin tener en cuenta para nada los problemas de eficiencia que le
son inherentes.
En los ltimos aos, debido al avance experimentado en el campo de los orde-
nadores, a la aparicin de diversas tcnicas para reducir la varianza de las estima-
ciones obtenidas, y al muestreo de Metrpolis, el mtodo de Montecarlo parece haber
entrado en un nuevo periodo de florecimiento.
Von Neumann sugiri el mtodo del centro del cuadrado: Partiendo de un nmero
de n cifras, generalmente un nmero par de cifras, realizar su cuadrado (suponemos
que tiene 2n cifras) y extraemos el nmero formado por las n cifras centrales. Los
nmeros sucesivos se obtienen tomando el cuadrado del nmero precedente y ex-
trayendo los dgitos centrales. Por ejemplo si se parta del nmero 5332, para obtener
el siguiente se hallaba 52322 =27373824. El siguiente nmero era el subrayado. Este
procedimientones lento, tiende a formar ciclos cortos y si se obtiene un nmero con
tres ceros en el centro no podemos conseguir ya nmeros distintos.
Fueron sugeridos por Lehmer en 1949. Se basan en calcular los residuos mdulo m
de una transformacin lineal.
La relacin de congruencia fundamental es:
Xi+1 (aXi + c) (mod m)
siendo a, c y m enteros no negativos. Los mtodos que usan esta relacin se llaman
congruenciales mixtos.
Dado un valor inicial llamado semilla X0 , se obtienen diferentes nmeros todos
ellos menores que m. Obviamente la cantidad de nmeros distintos generados de
esta forma es menor o igual que m. Por ejemplo, para a = 5, c = 0 y X0 = 3 y
m = 8 la secuencia generada es 3, 7, 3, 7. Esta secuencia es cclica con periodo
2 < 8.
9.5. GENERACIN DE NMEROS ALEATORIOS 227
C -
C SUBPROGRAMA RND
C -
SUBROUTINE RND(MIDUM,RAN)
IMPLICIT REAL*8(A-H,O-Z)
228 TEMA 9. INTRODUCCIN A LA SIMULACIN
PARAMETER (MBIG=1000000000,MSEED=161803398,MZ=0,FAC=1./MBIG)
DIMENSION MA(55)
IDUM=-MIDUM
IF(IDUM.LT.0.OR.IFF.EQ.0)THEN
IFF=1
MJ=MSEED-IABS(IDUM)
MJ=MOD(MJ,MBIG)
MA(55)=MJ
MK=1
DO 11 I=1,54
II=MOD(21*I,55)
MA(II)=MK
MK=MJ-MK
IF(MK.LT.MZ)MK=MK+MBIG
MJ=MA(II)
11 CONTINUE
DO 13 K=1,4
DO 12 I=1,55
MA(I)=MA(I)-MA(1+MOD(I+30,55))
IF(MA(I).LT.MZ)MA(I)=MA(I)+MBIG
12 CONTINUE
13 CONTINUE
INEXT=0
INEXTP=31
IDUM=1
ENDIF
INEXT=INEXT+1
IF(INEXT.EQ.56)INEXT=1
INEXTP=INEXTP+1
9.6. MTODO DE LA TRANSFORMACIN INVERSA 229
IF(INEXTP.EQ.56)INEXTP=1
MJ=MA(INEXT)-MA(INEXTP)
IF(MJ.LT.MZ)MJ=MJ+MBIG
MA(INEXT)=MJ
RAN=MJ*FAC
MIDUM=-IDUM
RETURN
END
Despejando x se obtiene:
230 TEMA 9. INTRODUCCIN A LA SIMULACIN
x = h1 L(1 ).
x = h1 L.
Los sistemas de colas suelen modelarse con la distribucin exponencial. En este caso
puede hacerse uso de la expresin anterior, lo que nos va a permitir contrastar los
resultados analticos con los obtenidos por medio de una simulacin de la cola. Por
este motivo incluiremos ahora un ejemplo de simulacin de una cola de este tipo
(modelo exponencial).
A veces es posible estudiar los fenmenos de espera analticamente, pero esto
ocurre solamente en los casos ms simples, as que es frecuente acometer el anlisis y
estudio de los sistemas de colas por simulacin. El siguiente ejemplo es lo suficiente-
mente sencillo como para que pueda realizarse analticamente, lo que nos permitir
contrastar los resultados obtenidos en la simulacin con los que se obtienen por va
terica.
Ejemplo 92 Simular una cola de una sola lnea y un solo servidor siendo la razn
de llegada =15 (nmero de personas que llegan por unidad de tiempo) y la razn
de servicio = 18 (nmero de elementos servidos en cada unidad de tiempo).
1
1 = 15 ln 1 ,
1
1 = 15 ln 1 60,
1
2 = 18 ln 2 60.
1 1
1 = 15 ln 1 60 = 15 ln(1.83156 102 ) 60 = 16.0 minutos.
Inicio
Reloj=0
N1li0oc=1
Ncola=0
Tiproll=0
Tiproser=9999
Tipo=llegada
(un individuo entra
Tipo=partida en el sistema)
(un individuo sale NO SI
reloj =
del sistema)
tiproll < tiproser =reloj+tiproll
reloj =
=reloj+tiproser
SI SI
Ser=1
Tiproser=9999 Ncola=ncola+1 Ser=0
Ncola =0
NO
NO
Ser=0 Ser=0
Tiproser=reloj+ts Tiproll = reloj+tell Tiproser=reloj+ts
Ncola=ncola-1
SI NO
Tiproll duracin
y
Tiproser duracin STOP
Figura 9.1: Diagrama de flujo del programa de simulacin de una cola M/M/1.
9.7. SIMULACIN DE UNA COLA M/M/1 233
c ***este programa simula una cola con una unica cadena y una sola fase
c esperar para ser atendido. Esta estima cin se basa en una simulacion,
c-
INTEGER NLLEGA,NESPERA,NCOLA
CHARACTER*10 TIPO
OPEN(6,FILE=COLA.RES)
READ(*,*)VLLPORH
READ(*,*) SERPORH
READ(*,*)TITOT
READ(*,*)IX
NSEMILLA=IX
WRITE(6,*) -
WRITE(6,*)
WRITE(6,*)
234 TEMA 9. INTRODUCCIN A LA SIMULACIN
WRITE(*,*) -
WRITE(*,*)
30 NLLEGA=0
RELOJ=0
NESPERA=0
N1LI0OC=1
TISEROC=0
TIESPERA=0
NCOLA=0
TIPO= INICIO
c demandando servicio***
CALL RND(IX,YFL)
TIPR0LL=-ALOG(1.-YFL)/VLLPORH
c duracion de la simulacion***
TIPR0SER=TITOT
c *** el tiempo del proximo suceso se toma como el minimo del tiempo
c terminar la simulacion***
WRITE(6,100)VLLPORH,SERPORH,TITOT,NSEMILLA
60 TIPSUC=AMIN1(TIPR0LL,TIPR0SER,TITOT)
9.7. SIMULACIN DE UNA COLA M/M/1 235
TISEROC=TISEROC+N1LI0OC*(TIPSUC-RELOJ)
TIESPERA=TIESPERA+NCOLA*(TIPSUC-RELOJ)
RELOJ=TIPSUC
IF (TIPSUC.EQ.TITOT) GO TO 90
IF (TIPSUC.EQ.TIPR0SER) GO TO 80
NLLEGA=NLLEGA+1
CALL RND(IX,YFL)
TIPR0LL=RELOJ-ALOG(1.-YFL)/VLLPORH
IF (N1LI0OC.EQ.1) GO TO 70
NESPERA=NESPERA+1
NCOLA=NCOLA+1
TIPO = LLEGADA
236 TEMA 9. INTRODUCCIN A LA SIMULACIN
50 FORMAT(A10,F10.2,I10,I10,F10.2,F10.2)
GO TO 60
c es el siguiente suceso***
70 N1LI0OC=0
CALL RND(IX,YFL)
TIPO = LLEGADA
GO TO 60
80 IF (NCOLA.GT.0) GO TO 85
c arbirariamente alto.
N1LI0OC=1
TIPR0SER=TITOT
TIPO= LLEGADA
GO TO 60
85 NCOLA=NCOLA-1
CALL RND(IX,YFL)
TIPR0SER=RELOJ-ALOG(1.-YFL)/SERPORH
TIPO= PARTIDA
GO TO 60
90 ACTIV=(TITOT-TISEROC)/TITOT
VMNCOLA=TIESPERA/TITOT
VMPES=VMNCOLA+ACTIV
VMTEC=TIESPERA/NLLEGA
PRESPE=1.*NESPERA/NLLEGA
WRITE(6,*)
WRITE(6,*)
WRITE(*,100)VLLPORH,SERPORH,TITOT,NSEMILLA
WRITE (*,110)ACTIV,VMNCOLA,VMPES,VMTEC,PRESPE
WRITE(6,*)
WRITE(6,*)
WRITE (6,110)ACTIV,VMNCOLA,VMPES,VMTEC,PRESPE
100 FORMAT (
4 SEMILLA: ,I5/)
STOP
END
*****************************************************************************
0 g(x) c, x [a, b]
Sea el rectngulo
y sea (X, Y ) una variable aleatoria uniformemente distribuida sobre con funcin
de densidad:
1
c(ba)si (x, y)
fXY =
0 en otro caso
"b
I= a g(x)dx.
b
area S g(x)dx I
P= area = a
c(ba) = c(ba)
Por tanto
I = c(b a)P
9.8. INTEGRACIN MONTECARLO. MTODO DE XITO-FRACASO 241
g(x)
c
* Fracaso
* Exito
x
a b
Mtodo MC de xito-fracaso.
Figura 9.2:
P = Nh
N
siendo Nh el nmero de estos puntos que se verifica g(xi ) > yi (es decir, que caen
dentro del rea que quiere calcularse). Por lo tanto un valor aproximado de I puede
obtenerse de la forma siguiente
I = c(b a)P
Describimos algunos programas de simulacin que han sido realizados por algunos
alumnos, y que pueden servir para sugerir la realizacin de otros similares y para
mostrar que estas simulaciones son susceptibles de ser realizadas dentro del mbito
acadmico.
Ejemplo 1
PROPSITO:
Aplicar el mtodo de integracin Montecarlo, xito-fracaso, de forma prctica.
Se limita a funciones polinmicas de 2o grado.
UN EJEMPLO DE APLICACIN
En la salida del programa siguiente se puede observar que el programa obtiene
como valor aproximado de
"2
2
(x2 + 2x + 3)dx
OPERATORIA
Se sigue el orden siguiente :
(1) Introducir los lmites de integracin a y b.
(2) Indicar los coeficientes de la funcin polinmica de 2o grado.
9.9. EJEMPLOS DE PROGRAMAS DE SIMULACIN 243
Ejemplo 3
PROPSITO: Calcular los parmetros de una cola con una sola lnea de espera
y un solo servidor (distribuciones exponenciales).
El programa presenta una evolucin visual de la cola, como se ve en la siguiente
figura.
244 TEMA 9. INTRODUCCIN A LA SIMULACIN
Ejemplo 4
PROPSITO: Estudio detallado de diversos sistemas de colas, con intervalos
entre llegadas y tiempos de servicios generados por distintas distribuciones.
9.9. EJEMPLOS DE PROGRAMAS DE SIMULACIN 245
Figura 9.3:
Figura 9.4:
Figura 9.5:
9.9. EJEMPLOS DE PROGRAMAS DE SIMULACIN 247
tiempos entre las llegadas de los aviones se distribuyen segn una ley exponencial
(0,04 min-1) y que los tiempos de maniobra en el aterrizaje se distribuyen como una
uniforme (14 min., 20 min) en la pista 1, exponencial (0.02 min-1) en la pista 2 y
una Erlang (15, 6.5 min) en la pista 3. Si se produce una llegada y las pistas estn
ocupadas, el avin se mantendr en vuelo en espera de aterrizar.
Mostramos a continuacin los resultados obtenidos por el programa para este
problema usando simulaciones cada vez ms largas. Puede observarse que los par-
metros de la cola son bastante estables.